@pie-element/math-inline 7.14.2-next.1 → 7.14.2-next.10

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.
Files changed (40) hide show
  1. package/configure/lib/configure.js +262 -0
  2. package/configure/lib/configure.js.map +1 -0
  3. package/configure/lib/defaults.js +176 -0
  4. package/configure/lib/defaults.js.map +1 -0
  5. package/configure/lib/general-config-block.js +653 -0
  6. package/configure/lib/general-config-block.js.map +1 -0
  7. package/configure/lib/index.js +201 -0
  8. package/configure/lib/index.js.map +1 -0
  9. package/configure/lib/response.js +431 -0
  10. package/configure/lib/response.js.map +1 -0
  11. package/configure/lib/utils.js +46 -0
  12. package/configure/lib/utils.js.map +1 -0
  13. package/configure/package.json +1 -1
  14. package/controller/lib/defaults.js +34 -0
  15. package/controller/lib/defaults.js.map +1 -0
  16. package/controller/lib/index.js +437 -0
  17. package/controller/lib/index.js.map +1 -0
  18. package/controller/lib/utils.js +12 -0
  19. package/controller/lib/utils.js.map +1 -0
  20. package/controller/package.json +1 -1
  21. package/lib/index.js +130 -0
  22. package/lib/index.js.map +1 -0
  23. package/lib/main.js +947 -0
  24. package/lib/main.js.map +1 -0
  25. package/lib/print.js +133 -0
  26. package/lib/print.js.map +1 -0
  27. package/lib/simple-question-block.js +195 -0
  28. package/lib/simple-question-block.js.map +1 -0
  29. package/lib/utils.js +12 -0
  30. package/lib/utils.js.map +1 -0
  31. package/module/configure.js +16629 -0
  32. package/module/controller.js +4563 -0
  33. package/module/demo.js +66 -0
  34. package/module/element.js +12765 -0
  35. package/module/index.html +21 -0
  36. package/module/manifest.json +14 -0
  37. package/module/print-demo.js +104 -0
  38. package/module/print.html +18 -0
  39. package/module/print.js +12514 -0
  40. package/package.json +3 -3
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/general-config-block.jsx"],"names":["registered","styles","theme","container","display","flexDirection","templateTitle","fontSize","title","addResponseButton","border","palette","grey","width","flexContainer","alignItems","justifyContent","selectContainer","flex","marginTop","spacing","unit","marginBottom","responseTemplate","responseEditor","maxWidth","height","minHeight","textAlign","padding","promptHolder","paddingTop","blockContainer","margin","blockContainerGeneric","blockResponse","fontFamily","color","background","borderRight","blockResponseGeneric","blockMath","tooltip","typography","whiteSpace","errorText","error","main","advancedResponse","REGEX","TEMPORARY_RESPONSE_FIELD","ANSWER_BLOCK_REGEX","NEWLINE_BLOCK","NEWLINE_LATEX","prepareForStatic","expression","answerBlocks","replace","prepareForModel","GeneralConfigBlock","props","name","evtOrValue","model","onChange","newModel","target","value","setState","showKeypad","responseAreas","state","root","Object","keys","length","forEach","responseId","idx","el","querySelector","indexEl","MQ","MathQuill","getInterface","StaticMath","textContent","responseIdCounter","newCounter","responses","find","response","id","validation","answer","alternates","concat","index","classes","window","registerEmbed","data","genericAnswerBlock","htmlString","text","latex","handleAnswerBlockDomUpdate","imageSupport","uploadSoundSupport","configuration","promptEnabled","rationaleEnabled","toolbarOpts","prompt","equationEditor","promptEquationEditor","responseType","rationale","spellCheckEnabled","errors","baseInputConfiguration","cRationale","cPrompt","ignoreOrder","cIgnoreOrder","allowTrailingZeros","cAllowTrailingZeros","maxResponseAreas","maxImageWidth","maxImageHeight","mathMlOptions","validationMessage","promptError","rationaleError","responsesErrors","responseAreasError","defaultImageMaxWidth","defaultImageMaxHeight","classNames","editor","mathToolbar","responsesToUse","ResponseTypes","advanced","slice","validationTooltip","marginLeft","r","label","onPromptFocus","inputConfiguration","language","select","onFocus","onDone","simple","map","onResponseChange","math","controlledKeypadMode","React","Component","PropTypes","object","isRequired","func","bool"],"mappings":"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","sourcesContent":["import * as React from 'react';\nimport PropTypes from 'prop-types';\nimport cx from 'classnames';\nimport { EditableHtml } from '@pie-lib/pie-toolbox/editable-html';\nimport { InputContainer } from '@pie-lib/pie-toolbox/config-ui';\nimport { withStyles } from '@material-ui/core/styles';\nimport InputLabel from '@material-ui/core/InputLabel';\nimport Select from '@material-ui/core/Select';\nimport MenuItem from '@material-ui/core/MenuItem';\nimport Response from './response';\nimport { MathToolbar } from '@pie-lib/pie-toolbox/math-toolbar';\nimport isEqual from 'lodash/isEqual';\nimport { ResponseTypes, generateValidationMessage, getPluginProps } from './utils';\nimport MathQuill from '@pie-framework/mathquill';\nimport Info from '@material-ui/icons/Info';\nimport Tooltip from '@material-ui/core/Tooltip';\n\nlet registered = false;\n\nconst styles = (theme) => ({\n container: {\n display: 'flex',\n flexDirection: 'column',\n },\n templateTitle: {\n fontSize: '0.85rem',\n },\n title: {\n fontSize: '1.1rem',\n },\n addResponseButton: {\n border: `1px solid ${theme.palette.grey['A100']}`,\n float: 'right',\n width: '150px',\n },\n flexContainer: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n },\n selectContainer: {\n flex: 'initial',\n width: '40%',\n marginTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n responseTemplate: {\n display: 'flex',\n flexDirection: 'column',\n },\n responseEditor: {\n display: 'flex',\n justifyContent: 'center',\n width: '100%',\n // minWidth: '500px',\n maxWidth: 'inherit',\n height: 'auto',\n minHeight: '130px',\n textAlign: 'left',\n padding: theme.spacing.unit,\n },\n promptHolder: {\n width: '100%',\n paddingTop: theme.spacing.unit * 2,\n marginBottom: theme.spacing.unit * 2,\n },\n blockContainer: {\n margin: theme.spacing.unit,\n display: 'inline-flex',\n border: '2px solid grey',\n },\n blockContainerGeneric: {\n margin: theme.spacing.unit / 2,\n },\n blockResponse: {\n fontFamily: 'Roboto, Helvetica, Arial, sans-serif !important',\n flex: 2,\n color: 'grey',\n background: theme.palette.grey['A100'],\n fontSize: '0.8rem',\n padding: theme.spacing.unit / 2,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRight: '2px solid grey',\n },\n blockResponseGeneric: {\n borderRight: 0,\n },\n blockMath: {\n color: theme.palette.grey[400],\n padding: theme.spacing.unit / 2,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flex: 8,\n '& > .mq-math-mode': {\n '& > .mq-hasCursor': {\n '& > .mq-cursor': {\n display: 'none',\n },\n },\n },\n },\n tooltip: {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre-wrap',\n },\n errorText: {\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing.unit,\n },\n advancedResponse: {\n marginBottom: theme.spacing.unit * 2.5,\n },\n});\n\nconst REGEX = /{{response}}/gm;\nconst TEMPORARY_RESPONSE_FIELD = /\\\\%response\\\\%/gm;\nconst ANSWER_BLOCK_REGEX = /\\\\embed\\{answerBlock\\}\\[r\\d*\\]/g;\nconst NEWLINE_BLOCK = /\\\\embed\\{newLine\\}\\[\\]/g;\nconst NEWLINE_LATEX = /\\\\newline/g;\n\nfunction prepareForStatic(expression) {\n if (expression) {\n let answerBlocks = 1; // assume one at least\n\n return expression\n .replace(REGEX, () => `\\\\embed{answerBlock}[r${answerBlocks++}]`)\n .replace(NEWLINE_LATEX, '\\\\embed{newLine}[]');\n }\n}\n\nfunction prepareForModel(expression) {\n if (expression) {\n return expression\n .replace(ANSWER_BLOCK_REGEX, () => '{{response}}')\n .replace(TEMPORARY_RESPONSE_FIELD, () => '{{response}}')\n .replace(NEWLINE_BLOCK, () => '\\\\newline');\n }\n}\n\nclass GeneralConfigBlock extends React.Component {\n static propTypes = {\n classes: PropTypes.object.isRequired,\n model: PropTypes.object.isRequired,\n imageSupport: PropTypes.object,\n uploadSoundSupport: PropTypes.object,\n configuration: PropTypes.object,\n onChange: PropTypes.func.isRequired,\n promptEnabled: PropTypes.bool,\n rationaleEnabled: PropTypes.bool,\n toolbarOpts: PropTypes.object,\n };\n\n constructor(props) {\n super(props);\n\n const responseAreas = {};\n\n if (props.model && props.model.expression) {\n let answerBlocks = 1; // assume one at least\n // build out local state model using responses declared in expression\n\n props.model.expression.replace(REGEX, () => {\n responseAreas[`r${answerBlocks++}`] = {\n value: '',\n };\n });\n }\n\n this.state = {\n showKeypad: false,\n responseAreas,\n responseIdCounter: Object.keys(responseAreas).length,\n };\n }\n\n onChange = (name) => (evtOrValue) => {\n const { model, onChange } = this.props;\n const newModel = { ...model };\n\n if (typeof evtOrValue === 'object') {\n newModel[name] = evtOrValue.target.value;\n } else {\n newModel[name] = evtOrValue;\n }\n\n if (name === 'expression') {\n newModel[name] = prepareForModel(evtOrValue);\n }\n\n onChange(newModel);\n };\n\n onDone = () => {\n this.setState({ showKeypad: false });\n };\n\n onFocus = () => {\n this.setState({ showKeypad: true });\n };\n\n onPromptFocus = () => {\n this.setState({ showKeypad: false });\n };\n\n UNSAFE_componentWillMount() {\n const { classes } = this.props;\n\n if (typeof window !== 'undefined') {\n // const MathQuill = require('@pie-framework/mathquill');\n let MQ = MathQuill.getInterface(2);\n\n if (!registered) {\n MQ.registerEmbed('answerBlock', (data) => {\n // not used until we implement individual answer tracking\n // const individualAnswerBlock = `<div class=\"${classes.blockContainer}\">\n // <div class=\"${classes.blockResponse}\" id=\"${data}Index\">R</div>\n // <div class=\"${classes.blockMath}\">\n // <span id=\"${data}\"></span>\n // </div>\n // </div>`;\n\n const genericAnswerBlock = `<div class=\"${cx(classes.blockContainer, classes.blockContainerGeneric)}\">\n <div class=\"${cx(classes.blockResponse, classes.blockResponseGeneric)}\" id=\"${data}Index\">Response</div>\n </div>`;\n\n return {\n htmlString: genericAnswerBlock,\n text: () => 'text',\n latex: () => `\\\\embed{answerBlock}[${data}]`,\n };\n });\n\n registered = true;\n }\n }\n }\n\n componentDidMount() {\n this.handleAnswerBlockDomUpdate();\n }\n\n componentDidUpdate() {\n this.handleAnswerBlockDomUpdate();\n }\n\n handleAnswerBlockDomUpdate = () => {\n const { model } = this.props;\n\n const responseAreas = {};\n\n if (model && model.expression) {\n let answerBlocks = 1; // assume one at least\n // build out local state model using responses declared in expression\n\n model.expression.replace(REGEX, () => {\n responseAreas[`r${answerBlocks++}`] = {\n value: '',\n };\n });\n }\n\n if (!isEqual(responseAreas, this.state.responseAreas)) {\n this.setState(\n {\n responseAreas,\n },\n () => {\n if (this.root && Object.keys(responseAreas).length) {\n Object.keys(responseAreas).forEach((responseId, idx) => {\n const el = this.root.querySelector(`#${responseId}`);\n const indexEl = this.root.querySelector(`#${responseId}Index`);\n\n if (el) {\n // const MathQuill = require('@pie-framework/mathquill');\n let MQ = MathQuill.getInterface(2);\n // We no longer have individual answers, so we cannot set text content of blocks\n // el.textContent = response.answer;\n MQ.StaticMath(el);\n indexEl.textContent = `R${idx + 1}`;\n }\n });\n }\n },\n );\n }\n };\n\n onAddResponse = () => {\n const { model, onChange } = this.props;\n const { responseIdCounter } = this.state;\n const newModel = { ...model };\n\n let newCounter = responseIdCounter;\n\n while (model.responses.find((response) => response.id === newCounter)) {\n newCounter++;\n }\n\n const response = {\n id: newCounter,\n validation: 'literal',\n answer: '',\n alternates: {},\n };\n\n newModel.responses = newModel.responses.concat(response);\n onChange(newModel);\n\n this.setState({\n responseIdCounter: response.id,\n });\n };\n\n onResponseChange = (response, index) => {\n const { model, onChange } = this.props;\n const newModel = { ...model };\n\n newModel.responses[index] = response;\n onChange(newModel);\n };\n\n render() {\n const {\n classes,\n model,\n imageSupport,\n uploadSoundSupport,\n configuration,\n promptEnabled,\n rationaleEnabled,\n toolbarOpts,\n } = this.props;\n const { showKeypad } = this.state;\n const {\n prompt,\n expression,\n equationEditor,\n promptEquationEditor = '8',\n responses,\n responseType,\n rationale,\n spellCheckEnabled,\n errors = {},\n } = model;\n const {\n baseInputConfiguration = {},\n rationale: cRationale = {},\n prompt: cPrompt = {},\n ignoreOrder: cIgnoreOrder = {},\n allowTrailingZeros: cAllowTrailingZeros = {},\n maxResponseAreas,\n maxImageWidth = {},\n maxImageHeight = {},\n mathMlOptions = {},\n } = configuration || {};\n const validationMessage = generateValidationMessage(configuration, model);\n const { prompt: promptError, rationale: rationaleError, responsesErrors, responseAreasError } = errors;\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const classNames = {\n editor: classes.responseEditor,\n mathToolbar: classes.mathToolbar,\n };\n\n const responsesToUse = responseType === ResponseTypes.advanced ? responses : responses.slice(0, 1);\n\n const validationTooltip = (\n <Tooltip\n classes={{ tooltip: classes.tooltip }}\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={validationMessage}\n >\n <Info fontSize={'small'} color={'primary'} style={{ marginLeft: '5px' }} />\n </Tooltip>\n );\n\n return (\n <div ref={(r) => (this.root = r || this.root)} className={classes.container}>\n {promptEnabled && (\n <InputContainer label={cPrompt.label} className={classes.promptHolder}>\n <EditableHtml\n onFocus={this.onPromptFocus}\n className={classes.prompt}\n markup={prompt || ''}\n onChange={this.onChange('prompt')}\n imageSupport={imageSupport}\n nonEmpty={false}\n error={promptError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(cPrompt?.inputConfiguration, baseInputConfiguration)}\n spellCheck={spellCheckEnabled}\n maxImageWidth={defaultImageMaxWidth}\n maxImageHeight={defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {promptError && <div className={classes.errorText}>{promptError}</div>}\n </InputContainer>\n )}\n\n {responseType === ResponseTypes.advanced && (\n <div className={classes.advancedResponse}>\n <div className={classes.flexContainer} style={{ justifyContent: 'flex-start' }}>\n <div className={classes.title}>Define Response</div>\n {validationTooltip}\n </div>\n\n <InputContainer\n key=\"templateEditorType\"\n label=\"Response Template Equation Editor\"\n className={classes.selectContainer}\n >\n <Select\n className={classes.select}\n onChange={this.onChange('promptEquationEditor')}\n value={promptEquationEditor}\n >\n <MenuItem value=\"non-negative-integers\">Numeric - Non-Negative Integers</MenuItem>\n <MenuItem value=\"integers\">Numeric - Integers</MenuItem>\n <MenuItem value=\"decimals\">Numeric - Decimals</MenuItem>\n <MenuItem value=\"fractions\">Numeric - Fractions</MenuItem>\n <MenuItem value={1}>Grade 1 - 2</MenuItem>\n <MenuItem value={3}>Grade 3 - 5</MenuItem>\n <MenuItem value={6}>Grade 6 - 7</MenuItem>\n <MenuItem value={8}>Grade 8 - HS</MenuItem>\n <MenuItem value={'geometry'}>Geometry</MenuItem>\n <MenuItem value={'advanced-algebra'}>Advanced Algebra</MenuItem>\n <MenuItem value={'statistics'}>Statistics</MenuItem>\n <MenuItem value={'item-authoring'}>Item Authoring</MenuItem>\n </Select>\n </InputContainer>\n\n <div className={classes.responseTemplate} key=\"templateHolder\">\n <InputLabel className={classes.templateTitle}>RESPONSE TEMPLATE</InputLabel>\n <MathToolbar\n classNames={classNames}\n allowAnswerBlock\n keypadMode={promptEquationEditor}\n controlledKeypad\n showKeypad={showKeypad}\n latex={prepareForStatic(expression) || ''}\n onChange={this.onChange('expression')}\n onFocus={this.onFocus}\n onDone={this.onDone}\n maxResponseAreas={maxResponseAreas}\n error={responseAreasError}\n />\n </div>\n\n {responseAreasError && <div className={classes.errorText}>{responseAreasError}</div>}\n </div>\n )}\n\n <div className={classes.flexContainer} style={{ justifyContent: 'flex-start' }}>\n <div className={classes.title}>Define Correct Response</div>\n {responseType === ResponseTypes.simple ? validationTooltip : null}\n </div>\n\n <InputContainer label=\"Equation Editor\" className={classes.selectContainer}>\n <Select className={classes.select} onChange={this.onChange('equationEditor')} value={equationEditor}>\n <MenuItem value=\"non-negative-integers\">Numeric - Non-Negative Integers</MenuItem>\n <MenuItem value=\"integers\">Numeric - Integers</MenuItem>\n <MenuItem value=\"decimals\">Numeric - Decimals</MenuItem>\n <MenuItem value=\"fractions\">Numeric - Fractions</MenuItem>\n <MenuItem value={1}>Grade 1 - 2</MenuItem>\n <MenuItem value={3}>Grade 3 - 5</MenuItem>\n <MenuItem value={6}>Grade 6 - 7</MenuItem>\n <MenuItem value={8}>Grade 8 - HS</MenuItem>\n <MenuItem value={'geometry'}>Geometry</MenuItem>\n <MenuItem value={'advanced-algebra'}>Advanced Algebra</MenuItem>\n <MenuItem value={'statistics'}>Statistics</MenuItem>\n <MenuItem value={'item-authoring'}>Item Authoring</MenuItem>\n </Select>\n </InputContainer>\n\n {responsesToUse.map((response, idx) => (\n <Response\n key={response.id}\n mode={equationEditor}\n response={response}\n defaultResponse={responseType === ResponseTypes.simple}\n onResponseChange={this.onResponseChange}\n index={idx}\n cIgnoreOrder={cIgnoreOrder}\n cAllowTrailingZeros={cAllowTrailingZeros}\n error={responsesErrors && responsesErrors[idx]}\n />\n ))}\n\n {rationaleEnabled && (\n <InputContainer label={cRationale.label} className={classes.promptHolder}>\n <EditableHtml\n className={classes.prompt}\n markup={rationale || ''}\n onChange={this.onChange('rationale')}\n imageSupport={imageSupport}\n nonEmpty={false}\n error={rationaleError}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(cRationale?.inputConfiguration, {\n ...baseInputConfiguration,\n math: {\n controlledKeypadMode: false,\n },\n })}\n spellCheck={spellCheckEnabled}\n maxImageWidth={(maxImageWidth && maxImageWidth.rationale) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.rationale) || defaultImageMaxHeight}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n {rationaleError && <div className={classes.errorText}>{rationaleError}</div>}\n </InputContainer>\n )}\n </div>\n );\n }\n}\n\nexport default withStyles(styles)(GeneralConfigBlock);\n"],"file":"general-config-block.js"}
@@ -0,0 +1,201 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports["default"] = void 0;
9
+
10
+ var _classCallCheck2 = _interopRequireDefault(require("@babel/runtime/helpers/classCallCheck"));
11
+
12
+ var _createClass2 = _interopRequireDefault(require("@babel/runtime/helpers/createClass"));
13
+
14
+ var _inherits2 = _interopRequireDefault(require("@babel/runtime/helpers/inherits"));
15
+
16
+ var _possibleConstructorReturn2 = _interopRequireDefault(require("@babel/runtime/helpers/possibleConstructorReturn"));
17
+
18
+ var _getPrototypeOf2 = _interopRequireDefault(require("@babel/runtime/helpers/getPrototypeOf"));
19
+
20
+ var _wrapNativeSuper2 = _interopRequireDefault(require("@babel/runtime/helpers/wrapNativeSuper"));
21
+
22
+ var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
23
+
24
+ var _react = _interopRequireDefault(require("react"));
25
+
26
+ var _reactDom = _interopRequireDefault(require("react-dom"));
27
+
28
+ var _configure = _interopRequireDefault(require("./configure"));
29
+
30
+ var _isEmpty = _interopRequireDefault(require("lodash/isEmpty"));
31
+
32
+ var _pieConfigureEvents = require("@pie-framework/pie-configure-events");
33
+
34
+ var _debug = _interopRequireDefault(require("debug"));
35
+
36
+ var _defaults = _interopRequireDefault(require("./defaults"));
37
+
38
+ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
39
+
40
+ function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { (0, _defineProperty2["default"])(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
41
+
42
+ function _createSuper(Derived) { var hasNativeReflectConstruct = _isNativeReflectConstruct(); return function _createSuperInternal() { var Super = (0, _getPrototypeOf2["default"])(Derived), result; if (hasNativeReflectConstruct) { var NewTarget = (0, _getPrototypeOf2["default"])(this).constructor; result = Reflect.construct(Super, arguments, NewTarget); } else { result = Super.apply(this, arguments); } return (0, _possibleConstructorReturn2["default"])(this, result); }; }
43
+
44
+ function _isNativeReflectConstruct() { if (typeof Reflect === "undefined" || !Reflect.construct) return false; if (Reflect.construct.sham) return false; if (typeof Proxy === "function") return true; try { Boolean.prototype.valueOf.call(Reflect.construct(Boolean, [], function () {})); return true; } catch (e) { return false; } }
45
+
46
+ var log = (0, _debug["default"])('pie-elements:math-inline:configure');
47
+
48
+ var MathInlineConfigure = /*#__PURE__*/function (_HTMLElement) {
49
+ (0, _inherits2["default"])(MathInlineConfigure, _HTMLElement);
50
+
51
+ var _super = _createSuper(MathInlineConfigure);
52
+
53
+ function MathInlineConfigure() {
54
+ var _this;
55
+
56
+ (0, _classCallCheck2["default"])(this, MathInlineConfigure);
57
+ _this = _super.call(this);
58
+ _this._model = MathInlineConfigure.createDefaultModel();
59
+ _this._configuration = _defaults["default"].configuration;
60
+ return _this;
61
+ }
62
+
63
+ (0, _createClass2["default"])(MathInlineConfigure, [{
64
+ key: "model",
65
+ set: function set(m) {
66
+ this._model = MathInlineConfigure.createDefaultModel(m);
67
+
68
+ this._render();
69
+ }
70
+ }, {
71
+ key: "configuration",
72
+ set: function set(c) {
73
+ var _newConfiguration$lan,
74
+ _this2 = this;
75
+
76
+ var newConfiguration = _objectSpread(_objectSpread({}, _defaults["default"].configuration), c);
77
+
78
+ this._configuration = newConfiguration; // if language:enabled is true, then the corresponding default item model should include a language value;
79
+ // if it is false, then the language field should be omitted from the item model.
80
+ // if a default item model includes a language value (e.g., en_US) and the corresponding authoring view settings have language:settings = true,
81
+ // then (a) language:enabled should also be true, and (b) that default language value should be represented in languageChoices[] (as a key).
82
+
83
+ if (newConfiguration !== null && newConfiguration !== void 0 && (_newConfiguration$lan = newConfiguration.language) !== null && _newConfiguration$lan !== void 0 && _newConfiguration$lan.enabled) {
84
+ var _newConfiguration$lan2, _newConfiguration$lan3;
85
+
86
+ if (newConfiguration !== null && newConfiguration !== void 0 && (_newConfiguration$lan2 = newConfiguration.languageChoices) !== null && _newConfiguration$lan2 !== void 0 && (_newConfiguration$lan3 = _newConfiguration$lan2.options) !== null && _newConfiguration$lan3 !== void 0 && _newConfiguration$lan3.length) {
87
+ this._model.language = newConfiguration === null || newConfiguration === void 0 ? void 0 : newConfiguration.languageChoices.options[0].value;
88
+ }
89
+ } else if (newConfiguration.language.settings && this._model.language) {
90
+ this._configuration.language.enabled = true;
91
+
92
+ if (!this._configuration.languageChoices.options || !this._configuration.languageChoices.options.length) {
93
+ this._configuration.languageChoices.options = [];
94
+ } // check if the language is already included in the languageChoices.options array
95
+ // and if not, then add it.
96
+
97
+
98
+ if (!this._configuration.languageChoices.options.find(function (option) {
99
+ return option.value === _this2._model.language;
100
+ })) {
101
+ this._configuration.languageChoices.options.push({
102
+ value: this._model.language,
103
+ label: this._model.language
104
+ });
105
+ }
106
+ } else {
107
+ delete this._model.language;
108
+ }
109
+
110
+ this._render();
111
+ }
112
+ }, {
113
+ key: "onModelChanged",
114
+ value: function onModelChanged(model) {
115
+ this._model = model;
116
+ log('[onModelChanged]: ', this._model);
117
+
118
+ this._render();
119
+
120
+ this.dispatchEvent(new _pieConfigureEvents.ModelUpdatedEvent(this._model));
121
+ }
122
+ }, {
123
+ key: "onConfigurationChanged",
124
+ value: function onConfigurationChanged(c) {
125
+ this._configuration = c;
126
+
127
+ if (this._model) {
128
+ this.onModelChanged(this._model);
129
+ }
130
+
131
+ this._render();
132
+ }
133
+ /**
134
+ *
135
+ * @param {done, progress, file} handler
136
+ */
137
+
138
+ }, {
139
+ key: "insertImage",
140
+ value: function insertImage(handler) {
141
+ this.dispatchEvent(new _pieConfigureEvents.InsertImageEvent(handler));
142
+ }
143
+ }, {
144
+ key: "onDeleteImage",
145
+ value: function onDeleteImage(src, done) {
146
+ this.dispatchEvent(new _pieConfigureEvents.DeleteImageEvent(src, done));
147
+ }
148
+ }, {
149
+ key: "insertSound",
150
+ value: function insertSound(handler) {
151
+ this.dispatchEvent(new _pieConfigureEvents.InsertSoundEvent(handler));
152
+ }
153
+ }, {
154
+ key: "onDeleteSound",
155
+ value: function onDeleteSound(src, done) {
156
+ this.dispatchEvent(new _pieConfigureEvents.DeleteSoundEvent(src, done));
157
+ }
158
+ }, {
159
+ key: "_render",
160
+ value: function _render() {
161
+ if (this._model) {
162
+ var el = /*#__PURE__*/_react["default"].createElement(_configure["default"], {
163
+ onModelChanged: this.onModelChanged.bind(this),
164
+ onConfigurationChanged: this.onConfigurationChanged.bind(this),
165
+ model: this._model,
166
+ configuration: this._configuration,
167
+ imageSupport: {
168
+ add: this.insertImage.bind(this),
169
+ "delete": this.onDeleteImage.bind(this)
170
+ },
171
+ uploadSoundSupport: {
172
+ add: this.insertSound.bind(this),
173
+ "delete": this.onDeleteSound.bind(this)
174
+ }
175
+ });
176
+
177
+ _reactDom["default"].render(el, this);
178
+ }
179
+ }
180
+ }]);
181
+ return MathInlineConfigure;
182
+ }( /*#__PURE__*/(0, _wrapNativeSuper2["default"])(HTMLElement));
183
+
184
+ exports["default"] = MathInlineConfigure;
185
+ (0, _defineProperty2["default"])(MathInlineConfigure, "createDefaultModel", function () {
186
+ var model = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
187
+
188
+ // making sure that defaults are set
189
+ if (!(0, _isEmpty["default"])(model.responses)) {
190
+ model.responses = model.responses.map(function (correctResponse) {
191
+ return _objectSpread(_objectSpread({}, correctResponse), {}, {
192
+ validation: correctResponse.validation || _defaults["default"].model.validationDefault,
193
+ allowTrailingZeros: correctResponse.allowTrailingZeros || _defaults["default"].model.allowTrailingZerosDefault,
194
+ ignoreOrder: correctResponse.ignoreOrder || _defaults["default"].model.ignoreOrderDefault || false
195
+ });
196
+ });
197
+ }
198
+
199
+ return _objectSpread(_objectSpread({}, _defaults["default"].model), model);
200
+ });
201
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/index.js"],"names":["log","MathInlineConfigure","_model","createDefaultModel","_configuration","defaults","configuration","m","_render","c","newConfiguration","language","enabled","languageChoices","options","length","value","settings","find","option","push","label","model","dispatchEvent","ModelUpdatedEvent","onModelChanged","handler","InsertImageEvent","src","done","DeleteImageEvent","InsertSoundEvent","DeleteSoundEvent","el","React","createElement","Configure","bind","onConfigurationChanged","imageSupport","add","insertImage","onDeleteImage","uploadSoundSupport","insertSound","onDeleteSound","ReactDOM","render","HTMLElement","responses","map","correctResponse","validation","validationDefault","allowTrailingZeros","allowTrailingZerosDefault","ignoreOrder","ignoreOrderDefault"],"mappings":"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","sourcesContent":["import React from 'react';\nimport ReactDOM from 'react-dom';\nimport Configure from './configure';\nimport isEmpty from 'lodash/isEmpty';\nimport {\n ModelUpdatedEvent,\n DeleteImageEvent,\n InsertImageEvent,\n InsertSoundEvent,\n DeleteSoundEvent,\n} from '@pie-framework/pie-configure-events';\nimport debug from 'debug';\n\nimport defaults from './defaults';\n\nconst log = debug('pie-elements:math-inline:configure');\n\nexport default class MathInlineConfigure extends HTMLElement {\n static createDefaultModel = (model = {}) => {\n // making sure that defaults are set\n if (!isEmpty(model.responses)) {\n model.responses = model.responses.map((correctResponse) => ({\n ...correctResponse,\n validation: correctResponse.validation || defaults.model.validationDefault,\n allowTrailingZeros: correctResponse.allowTrailingZeros || defaults.model.allowTrailingZerosDefault,\n ignoreOrder: correctResponse.ignoreOrder || defaults.model.ignoreOrderDefault || false,\n }));\n }\n\n return { ...defaults.model, ...model };\n };\n\n constructor() {\n super();\n this._model = MathInlineConfigure.createDefaultModel();\n this._configuration = defaults.configuration;\n }\n\n set model(m) {\n this._model = MathInlineConfigure.createDefaultModel(m);\n this._render();\n }\n\n set configuration(c) {\n const newConfiguration = {\n ...defaults.configuration,\n ...c,\n };\n\n this._configuration = newConfiguration;\n\n // if language:enabled is true, then the corresponding default item model should include a language value;\n // if it is false, then the language field should be omitted from the item model.\n // if a default item model includes a language value (e.g., en_US) and the corresponding authoring view settings have language:settings = true,\n // then (a) language:enabled should also be true, and (b) that default language value should be represented in languageChoices[] (as a key).\n if (newConfiguration?.language?.enabled) {\n if (newConfiguration?.languageChoices?.options?.length) {\n this._model.language = newConfiguration?.languageChoices.options[0].value;\n }\n } else if (newConfiguration.language.settings && this._model.language) {\n this._configuration.language.enabled = true;\n\n if (!this._configuration.languageChoices.options || !this._configuration.languageChoices.options.length) {\n this._configuration.languageChoices.options = [];\n }\n\n // check if the language is already included in the languageChoices.options array\n // and if not, then add it.\n if (!this._configuration.languageChoices.options.find(option => option.value === this._model.language)) {\n this._configuration.languageChoices.options.push({\n value: this._model.language,\n label: this._model.language,\n });\n }\n } else {\n delete this._model.language;\n }\n\n this._render();\n }\n\n onModelChanged(model) {\n this._model = model;\n log('[onModelChanged]: ', this._model);\n this._render();\n\n this.dispatchEvent(new ModelUpdatedEvent(this._model));\n }\n\n onConfigurationChanged(c) {\n this._configuration = c;\n\n if (this._model) {\n this.onModelChanged(this._model);\n }\n\n this._render();\n }\n\n /**\n *\n * @param {done, progress, file} handler\n */\n insertImage(handler) {\n this.dispatchEvent(new InsertImageEvent(handler));\n }\n\n onDeleteImage(src, done) {\n this.dispatchEvent(new DeleteImageEvent(src, done));\n }\n\n insertSound(handler) {\n this.dispatchEvent(new InsertSoundEvent(handler));\n }\n\n onDeleteSound(src, done) {\n this.dispatchEvent(new DeleteSoundEvent(src, done));\n }\n\n _render() {\n if (this._model) {\n const el = React.createElement(Configure, {\n onModelChanged: this.onModelChanged.bind(this),\n onConfigurationChanged: this.onConfigurationChanged.bind(this),\n model: this._model,\n configuration: this._configuration,\n imageSupport: {\n add: this.insertImage.bind(this),\n delete: this.onDeleteImage.bind(this),\n },\n uploadSoundSupport: {\n add: this.insertSound.bind(this),\n delete: this.onDeleteSound.bind(this),\n },\n });\n\n ReactDOM.render(el, this);\n }\n }\n}\n"],"file":"index.js"}