@pie-element/passage 7.4.2-beta.7 → 7.4.2-beta.9

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,87 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
- var _react = _interopRequireDefault(require("react"));
10
- var _client = require("react-dom/client");
11
- var _pieConfigureEvents = require("@pie-framework/pie-configure-events");
12
- var _design = _interopRequireDefault(require("./design"));
13
- var _defaults = _interopRequireDefault(require("./defaults"));
14
- class PassageConfigure extends HTMLElement {
15
- constructor() {
16
- super();
17
- this._root = null;
18
- this._model = PassageConfigure.createDefaultModel();
19
- this._configuration = _defaults.default.configuration;
20
- }
21
- set model(m) {
22
- this._model = PassageConfigure.createDefaultModel(m);
23
- this.render();
24
- }
25
- set configuration(c) {
26
- this._configuration = c;
27
- this.render();
28
- }
29
- connectedCallback() {
30
- this.render();
31
- }
32
- modelChanged(m) {
33
- this._model = m;
34
- this.dispatchEvent(new _pieConfigureEvents.ModelUpdatedEvent(this._model), true);
35
- this.render();
36
- }
37
- onConfigurationChanged(c) {
38
- this._configuration = c;
39
- this.render();
40
- }
41
- insertImage(handler) {
42
- this.dispatchEvent(new _pieConfigureEvents.InsertImageEvent(handler));
43
- }
44
- onDeleteImage(src, done) {
45
- this.dispatchEvent(new _pieConfigureEvents.DeleteImageEvent(src, done));
46
- }
47
- insertSound(handler) {
48
- this.dispatchEvent(new _pieConfigureEvents.InsertSoundEvent(handler));
49
- }
50
- onDeleteSound(src, done) {
51
- this.dispatchEvent(new _pieConfigureEvents.DeleteSoundEvent(src, done));
52
- }
53
- render() {
54
- if (this._model) {
55
- const el = /*#__PURE__*/_react.default.createElement(_design.default, {
56
- model: this._model,
57
- configuration: this._configuration,
58
- onModelChanged: this.modelChanged.bind(this),
59
- onConfigurationChanged: this.onConfigurationChanged.bind(this),
60
- imageSupport: {
61
- add: this.insertImage.bind(this),
62
- delete: this.onDeleteImage.bind(this)
63
- },
64
- uploadSoundSupport: {
65
- add: this.insertSound.bind(this),
66
- delete: this.onDeleteSound.bind(this)
67
- }
68
- });
69
- if (!this._root) {
70
- this._root = (0, _client.createRoot)(this);
71
- }
72
- this._root.render(el);
73
- }
74
- }
75
- disconnectedCallback() {
76
- if (this._root) {
77
- this._root.unmount();
78
- this._root = null;
79
- }
80
- }
81
- }
82
- exports.default = PassageConfigure;
83
- (0, _defineProperty2.default)(PassageConfigure, "createDefaultModel", (model = {}) => ({
84
- ..._defaults.default.model,
85
- ...model
86
- }));
87
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_client","_pieConfigureEvents","_design","_defaults","PassageConfigure","HTMLElement","constructor","_root","_model","createDefaultModel","_configuration","defaultValues","configuration","model","m","render","c","connectedCallback","modelChanged","dispatchEvent","ModelUpdatedEvent","onConfigurationChanged","insertImage","handler","InsertImageEvent","onDeleteImage","src","done","DeleteImageEvent","insertSound","InsertSoundEvent","onDeleteSound","DeleteSoundEvent","el","React","createElement","Main","onModelChanged","bind","imageSupport","add","delete","uploadSoundSupport","createRoot","disconnectedCallback","unmount","exports","default","_defineProperty2"],"sources":["../src/index.js"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport {\n ModelUpdatedEvent,\n DeleteImageEvent,\n InsertImageEvent,\n InsertSoundEvent,\n DeleteSoundEvent,\n} from '@pie-framework/pie-configure-events';\n\nimport Main from './design';\nimport defaultValues from './defaults';\n\nexport default class PassageConfigure extends HTMLElement {\n static createDefaultModel = (model = {}) => ({\n ...defaultValues.model,\n ...model,\n });\n\n constructor() {\n super();\n this._root = null;\n this._model = PassageConfigure.createDefaultModel();\n this._configuration = defaultValues.configuration;\n }\n\n set model(m) {\n this._model = PassageConfigure.createDefaultModel(m);\n this.render();\n }\n\n set configuration(c) {\n this._configuration = c;\n this.render();\n }\n\n connectedCallback() {\n this.render();\n }\n\n modelChanged(m) {\n this._model = m;\n this.dispatchEvent(new ModelUpdatedEvent(this._model), true);\n this.render();\n }\n\n onConfigurationChanged(c) {\n this._configuration = c;\n\n this.render();\n }\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(Main, {\n model: this._model,\n configuration: this._configuration,\n onModelChanged: this.modelChanged.bind(this),\n onConfigurationChanged: this.onConfigurationChanged.bind(this),\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 if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(el);\n }\n }\n\n disconnectedCallback() {\n if (this._root) {\n this._root.unmount();\n this._root = null;\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -1,194 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = exports.PassageComponent = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
- var _react = _interopRequireDefault(require("react"));
10
- var _propTypes = _interopRequireDefault(require("prop-types"));
11
- var _configUi = require("@pie-lib/config-ui");
12
- var _editableHtmlTipTap = _interopRequireWildcard(require("@pie-lib/editable-html-tip-tap"));
13
- var _styles = require("@mui/material/styles");
14
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
15
- const StyledInputContainer = (0, _styles.styled)(_configUi.InputContainer)(({
16
- theme
17
- }) => ({
18
- paddingTop: theme.spacing(2),
19
- marginBottom: theme.spacing(2),
20
- width: '100%'
21
- }));
22
- const ErrorText = (0, _styles.styled)('div')(({
23
- theme
24
- }) => ({
25
- fontSize: theme.typography.fontSize - 2,
26
- color: theme.palette.error.main,
27
- paddingTop: theme.spacing(1)
28
- }));
29
- class PassageComponent extends _react.default.Component {
30
- constructor(props) {
31
- super(props);
32
- (0, _defineProperty2.default)(this, "handleChange", (fieldName, value) => {
33
- const {
34
- model,
35
- onModelChanged,
36
- passageIndex
37
- } = this.props;
38
- if (!model.passages || passageIndex < 0 || passageIndex >= model.passages.length) {
39
- return;
40
- }
41
- const updatedPassages = [...model.passages];
42
- updatedPassages[passageIndex] = {
43
- ...updatedPassages[passageIndex],
44
- [fieldName]: value
45
- };
46
- onModelChanged({
47
- ...model,
48
- passages: updatedPassages
49
- });
50
- });
51
- }
52
- render() {
53
- const {
54
- model,
55
- configuration,
56
- imageSupport,
57
- passageIndex,
58
- uploadSoundSupport
59
- } = this.props;
60
- const {
61
- maxImageWidth = {},
62
- maxImageHeight = {},
63
- mathMlOptions = {},
64
- baseInputConfiguration = {},
65
- teacherInstructions = {},
66
- title = {},
67
- subtitle = {},
68
- text = {},
69
- author = {}
70
- } = configuration || {};
71
- const {
72
- errors = {},
73
- passages = [],
74
- teacherInstructionsEnabled,
75
- titleEnabled,
76
- subtitleEnabled,
77
- authorEnabled,
78
- textEnabled
79
- } = model || {};
80
- const {
81
- passages: passagesErrors
82
- } = errors || {};
83
- const {
84
- teacherInstructions: teacherInstructionsError,
85
- title: titleError,
86
- subtitle: subtitleError,
87
- author: authorError,
88
- text: textError
89
- } = passagesErrors && passagesErrors[passageIndex] || {};
90
- const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;
91
- const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;
92
- const getPluginProps = customConfiguration => ({
93
- ...baseInputConfiguration,
94
- ...customConfiguration
95
- });
96
- const basicPlugins = (_editableHtmlTipTap.ALL_PLUGINS || []).filter(plugin => !['math', 'table', 'bulleted-list', 'numbered-list'].includes(plugin));
97
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, teacherInstructionsEnabled && /*#__PURE__*/_react.default.createElement(StyledInputContainer, {
98
- label: teacherInstructions.label
99
- }, /*#__PURE__*/_react.default.createElement(_editableHtmlTipTap.default, {
100
- activePlugins: _editableHtmlTipTap.ALL_PLUGINS,
101
- markup: passages[passageIndex].teacherInstructions || '',
102
- onChange: value => this.handleChange('teacherInstructions', value),
103
- nonEmpty: false,
104
- error: teacherInstructionsError,
105
- maxImageWidth: maxImageWidth && maxImageWidth.teacherInstructions || defaultImageMaxWidth,
106
- maxImageHeight: maxImageHeight && maxImageHeight.teacherInstructions || defaultImageMaxHeight,
107
- mathMlOptions: mathMlOptions,
108
- languageCharactersProps: [{
109
- language: 'spanish'
110
- }, {
111
- language: 'special'
112
- }],
113
- pluginProps: getPluginProps(teacherInstructions?.inputConfiguration)
114
- }), teacherInstructionsError && /*#__PURE__*/_react.default.createElement(ErrorText, null, teacherInstructionsError)), titleEnabled && /*#__PURE__*/_react.default.createElement(StyledInputContainer, {
115
- label: title.label
116
- }, /*#__PURE__*/_react.default.createElement(_editableHtmlTipTap.default, {
117
- activePlugins: basicPlugins,
118
- markup: passages[passageIndex].title || '',
119
- onChange: value => this.handleChange('title', value),
120
- nonEmpty: false,
121
- error: titleError,
122
- mathMlOptions: mathMlOptions,
123
- languageCharactersProps: [{
124
- language: 'spanish'
125
- }, {
126
- language: 'special'
127
- }],
128
- pluginProps: getPluginProps(title?.inputConfiguration)
129
- }), titleError && /*#__PURE__*/_react.default.createElement(ErrorText, null, titleError)), subtitleEnabled && /*#__PURE__*/_react.default.createElement(StyledInputContainer, {
130
- label: subtitle.label
131
- }, /*#__PURE__*/_react.default.createElement(_editableHtmlTipTap.default, {
132
- activePlugins: basicPlugins,
133
- markup: passages[passageIndex].subtitle || '',
134
- onChange: value => this.handleChange('subtitle', value),
135
- nonEmpty: false,
136
- error: subtitleError,
137
- mathMlOptions: mathMlOptions,
138
- languageCharactersProps: [{
139
- language: 'spanish'
140
- }, {
141
- language: 'special'
142
- }],
143
- pluginProps: getPluginProps(subtitle?.inputConfiguration)
144
- }), subtitleError && /*#__PURE__*/_react.default.createElement(ErrorText, null, subtitleError)), authorEnabled && /*#__PURE__*/_react.default.createElement(StyledInputContainer, {
145
- label: author.label
146
- }, /*#__PURE__*/_react.default.createElement(_editableHtmlTipTap.default, {
147
- activePlugins: basicPlugins,
148
- markup: passages[passageIndex].author || '',
149
- onChange: value => this.handleChange('author', value),
150
- nonEmpty: false,
151
- error: authorError,
152
- mathMlOptions: mathMlOptions,
153
- languageCharactersProps: [{
154
- language: 'spanish'
155
- }, {
156
- language: 'special'
157
- }],
158
- pluginProps: getPluginProps(author?.inputConfiguration)
159
- }), authorError && /*#__PURE__*/_react.default.createElement(ErrorText, null, authorError)), textEnabled && /*#__PURE__*/_react.default.createElement(StyledInputContainer, {
160
- label: text.label
161
- }, /*#__PURE__*/_react.default.createElement(_editableHtmlTipTap.default, {
162
- activePlugins: _editableHtmlTipTap.ALL_PLUGINS,
163
- markup: passages[passageIndex].text || '',
164
- onChange: value => this.handleChange('text', value),
165
- imageSupport: imageSupport,
166
- uploadSoundSupport: uploadSoundSupport,
167
- nonEmpty: false,
168
- error: textError,
169
- maxImageWidth: maxImageWidth && maxImageWidth.text || defaultImageMaxWidth,
170
- maxImageHeight: maxImageHeight && maxImageHeight.text || defaultImageMaxHeight,
171
- mathMlOptions: mathMlOptions,
172
- languageCharactersProps: [{
173
- language: 'spanish'
174
- }, {
175
- language: 'special'
176
- }],
177
- pluginProps: getPluginProps(text?.inputConfiguration)
178
- }), textError && /*#__PURE__*/_react.default.createElement(ErrorText, null, textError)));
179
- }
180
- }
181
- exports.PassageComponent = PassageComponent;
182
- (0, _defineProperty2.default)(PassageComponent, "propTypes", {
183
- onModelChanged: _propTypes.default.func.isRequired,
184
- model: _propTypes.default.object.isRequired,
185
- configuration: _propTypes.default.object.isRequired,
186
- imageSupport: _propTypes.default.object.isRequired,
187
- passageIndex: _propTypes.default.number.isRequired,
188
- uploadSoundSupport: _propTypes.default.object.isRequired
189
- });
190
- (0, _defineProperty2.default)(PassageComponent, "defaultProps", {
191
- passageIndex: 0
192
- });
193
- var _default = exports.default = PassageComponent;
194
- //# sourceMappingURL=passage.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"passage.js","names":["_react","_interopRequireDefault","require","_propTypes","_configUi","_editableHtmlTipTap","_interopRequireWildcard","_styles","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","StyledInputContainer","styled","InputContainer","theme","paddingTop","spacing","marginBottom","width","ErrorText","fontSize","typography","color","palette","error","main","PassageComponent","React","Component","constructor","props","_defineProperty2","fieldName","value","model","onModelChanged","passageIndex","passages","length","updatedPassages","render","configuration","imageSupport","uploadSoundSupport","maxImageWidth","maxImageHeight","mathMlOptions","baseInputConfiguration","teacherInstructions","title","subtitle","text","author","errors","teacherInstructionsEnabled","titleEnabled","subtitleEnabled","authorEnabled","textEnabled","passagesErrors","teacherInstructionsError","titleError","subtitleError","authorError","textError","defaultImageMaxWidth","prompt","defaultImageMaxHeight","getPluginProps","customConfiguration","basicPlugins","ALL_PLUGINS","filter","plugin","includes","createElement","Fragment","label","activePlugins","markup","onChange","handleChange","nonEmpty","languageCharactersProps","language","pluginProps","inputConfiguration","exports","PropTypes","func","isRequired","object","number","_default"],"sources":["../src/passage.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { InputContainer } from '@pie-lib/config-ui';\nimport EditableHtml, { ALL_PLUGINS } from '@pie-lib/editable-html-tip-tap';\nimport { styled } from '@mui/material/styles';\n\nconst StyledInputContainer = styled(InputContainer)(({ theme }) => ({\n paddingTop: theme.spacing(2),\n marginBottom: theme.spacing(2),\n width: '100%',\n}));\n\nconst ErrorText = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n paddingTop: theme.spacing(1),\n}));\n\nexport class PassageComponent extends React.Component {\n static propTypes = {\n onModelChanged: PropTypes.func.isRequired,\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n imageSupport: PropTypes.object.isRequired,\n passageIndex: PropTypes.number.isRequired,\n uploadSoundSupport: PropTypes.object.isRequired,\n };\n\n static defaultProps = {\n passageIndex: 0,\n };\n\n constructor(props) {\n super(props);\n }\n\n handleChange = (fieldName, value) => {\n const { model, onModelChanged, passageIndex } = this.props;\n\n if (!model.passages || passageIndex < 0 || passageIndex >= model.passages.length) {\n return;\n }\n\n const updatedPassages = [...model.passages];\n updatedPassages[passageIndex] = { ...updatedPassages[passageIndex], [fieldName]: value };\n\n onModelChanged({ ...model, passages: updatedPassages });\n };\n\n render() {\n const { model, configuration, imageSupport, passageIndex, uploadSoundSupport } = this.props;\n const {\n maxImageWidth = {},\n maxImageHeight = {},\n mathMlOptions = {},\n baseInputConfiguration = {},\n teacherInstructions = {},\n title = {},\n subtitle = {},\n text = {},\n author = {},\n } = configuration || {};\n const {\n errors = {},\n passages = [],\n teacherInstructionsEnabled,\n titleEnabled,\n subtitleEnabled,\n authorEnabled,\n textEnabled,\n } = model || {};\n\n const { passages: passagesErrors } = errors || {};\n const {\n teacherInstructions: teacherInstructionsError,\n title: titleError,\n subtitle: subtitleError,\n author: authorError,\n text: textError,\n } = (passagesErrors && passagesErrors[passageIndex]) || {};\n\n const defaultImageMaxWidth = maxImageWidth && maxImageWidth.prompt;\n const defaultImageMaxHeight = maxImageHeight && maxImageHeight.prompt;\n\n const getPluginProps = (customConfiguration) => ({ ...baseInputConfiguration, ...customConfiguration });\n\n const basicPlugins = (ALL_PLUGINS || []).filter(plugin => ![\n 'math',\n 'table',\n 'bulleted-list',\n 'numbered-list',\n ].includes(plugin));\n\n return (\n <React.Fragment>\n {teacherInstructionsEnabled && (\n <StyledInputContainer label={teacherInstructions.label}>\n <EditableHtml\n activePlugins={ALL_PLUGINS}\n markup={passages[passageIndex].teacherInstructions || ''}\n onChange={(value) => this.handleChange('teacherInstructions', value)}\n nonEmpty={false}\n error={teacherInstructionsError}\n maxImageWidth={(maxImageWidth && maxImageWidth.teacherInstructions) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.teacherInstructions) || defaultImageMaxHeight}\n mathMlOptions={mathMlOptions}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n pluginProps={getPluginProps(teacherInstructions?.inputConfiguration)}\n />\n {teacherInstructionsError && <ErrorText>{teacherInstructionsError}</ErrorText>}\n </StyledInputContainer>\n )}\n\n {titleEnabled && (\n <StyledInputContainer label={title.label}>\n <EditableHtml\n activePlugins={basicPlugins}\n markup={passages[passageIndex].title || ''}\n onChange={(value) => this.handleChange('title', value)}\n nonEmpty={false}\n error={titleError}\n mathMlOptions={mathMlOptions}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n pluginProps={getPluginProps(title?.inputConfiguration)}\n />\n {titleError && <ErrorText>{titleError}</ErrorText>}\n </StyledInputContainer>\n )}\n\n {subtitleEnabled && (\n <StyledInputContainer label={subtitle.label}>\n <EditableHtml\n activePlugins={basicPlugins}\n markup={passages[passageIndex].subtitle || ''}\n onChange={(value) => this.handleChange('subtitle', value)}\n nonEmpty={false}\n error={subtitleError}\n mathMlOptions={mathMlOptions}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n pluginProps={getPluginProps(subtitle?.inputConfiguration)}\n />\n {subtitleError && <ErrorText>{subtitleError}</ErrorText>}\n </StyledInputContainer>\n )}\n\n {authorEnabled && (\n <StyledInputContainer label={author.label}>\n <EditableHtml\n activePlugins={basicPlugins}\n markup={passages[passageIndex].author || ''}\n onChange={(value) => this.handleChange('author', value)}\n nonEmpty={false}\n error={authorError}\n mathMlOptions={mathMlOptions}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n pluginProps={getPluginProps(author?.inputConfiguration)}\n />\n {authorError && <ErrorText>{authorError}</ErrorText>}\n </StyledInputContainer>\n )}\n\n {textEnabled && (\n <StyledInputContainer label={text.label}>\n <EditableHtml\n activePlugins={ALL_PLUGINS}\n markup={passages[passageIndex].text || ''}\n onChange={(value) => this.handleChange('text', value)}\n imageSupport={imageSupport}\n uploadSoundSupport={uploadSoundSupport}\n nonEmpty={false}\n error={textError}\n maxImageWidth={(maxImageWidth && maxImageWidth.text) || defaultImageMaxWidth}\n maxImageHeight={(maxImageHeight && maxImageHeight.text) || defaultImageMaxHeight}\n mathMlOptions={mathMlOptions}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n pluginProps={getPluginProps(text?.inputConfiguration)}\n />\n {textError && <ErrorText>{textError}</ErrorText>}\n </StyledInputContainer>\n )}\n </React.Fragment>\n );\n }\n}\n\nexport default PassageComponent;\n"],"mappings":"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","ignoreList":[]}
@@ -1,23 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- // TODO: also update '../../configure/src/defaults.js' and '../../src/print.js' when updating defaults
8
- var _default = exports.default = {
9
- authorEnabled: false,
10
- // TODO: should be set to true when all Studio content is updated
11
- passages: [{
12
- teacherInstructions: '',
13
- title: '',
14
- subtitle: '',
15
- author: '',
16
- text: ''
17
- }],
18
- subtitleEnabled: true,
19
- teacherInstructionsEnabled: true,
20
- textEnabled: true,
21
- titleEnabled: true
22
- };
23
- //# sourceMappingURL=defaults.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"defaults.js","names":["_default","exports","default","authorEnabled","passages","teacherInstructions","title","subtitle","author","text","subtitleEnabled","teacherInstructionsEnabled","textEnabled","titleEnabled"],"sources":["../src/defaults.js"],"sourcesContent":["// TODO: also update '../../configure/src/defaults.js' and '../../src/print.js' when updating defaults\nexport default {\n authorEnabled: false, // TODO: should be set to true when all Studio content is updated\n passages: [\n {\n teacherInstructions: '',\n title: '',\n subtitle: '',\n author: '',\n text: '',\n },\n ],\n subtitleEnabled: true,\n teacherInstructionsEnabled: true,\n textEnabled: true,\n titleEnabled: true,\n};\n"],"mappings":";;;;;;AAAA;AAAA,IAAAA,QAAA,GAAAC,OAAA,CAAAC,OAAA,GACe;EACbC,aAAa,EAAE,KAAK;EAAE;EACtBC,QAAQ,EAAE,CACR;IACEC,mBAAmB,EAAE,EAAE;IACvBC,KAAK,EAAE,EAAE;IACTC,QAAQ,EAAE,EAAE;IACZC,MAAM,EAAE,EAAE;IACVC,IAAI,EAAE;EACR,CAAC,CACF;EACDC,eAAe,EAAE,IAAI;EACrBC,0BAA0B,EAAE,IAAI;EAChCC,WAAW,EAAE,IAAI;EACjBC,YAAY,EAAE;AAChB,CAAC","ignoreList":[]}
@@ -1,80 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.createDefaultModel = createDefaultModel;
8
- exports.model = model;
9
- exports.validate = exports.normalize = void 0;
10
- var _lodashEs = require("lodash-es");
11
- var _defaults = _interopRequireDefault(require("./defaults"));
12
- const getContent = html => (html || '').replace(/(<(?!img|iframe|source)([^>]+)>)/gi, '');
13
- const checkNullish = value => value !== null && value !== undefined;
14
- const isEnabled = (value, defaultValue) => checkNullish(value) ? value : defaultValue;
15
- function createDefaultModel(model = {}) {
16
- return new Promise(resolve => {
17
- resolve({
18
- ..._defaults.default,
19
- ...model
20
- });
21
- });
22
- }
23
- const normalize = question => ({
24
- ..._defaults.default,
25
- ...question
26
- });
27
- exports.normalize = normalize;
28
- const normalizeTeacherInstructions = (instructions, env) => {
29
- const {
30
- role,
31
- mode
32
- } = env;
33
- if (role === 'instructor' && (mode === 'view' || mode === 'evaluate')) {
34
- return instructions || '';
35
- }
36
- return '';
37
- };
38
-
39
- /**
40
- *
41
- * @param {*} question
42
- * @param {*} session
43
- * @param {*} env
44
- */
45
- async function model(question, session, env) {
46
- const normalizedQuestion = normalize(question);
47
- const normalizedPassages = normalizedQuestion.passages.map((passage, index) => ({
48
- teacherInstructions: isEnabled(passage.teacherInstructionsEnabled, normalizedQuestion.teacherInstructionsEnabled) ? normalizeTeacherInstructions(passage.teacherInstructions, env) : '',
49
- label: getContent(passage.title) ? passage.title : `Passage ${index + 1}`,
50
- title: isEnabled(passage.titleEnabled, normalizedQuestion.titleEnabled) ? passage.title || '' : '',
51
- subtitle: isEnabled(passage.subtitleEnabled, normalizedQuestion.subtitleEnabled) ? passage.subtitle || '' : '',
52
- author: isEnabled(passage.authorEnabled, normalizedQuestion.authorEnabled) ? passage.author || '' : '',
53
- text: isEnabled(passage.textEnabled, normalizedQuestion.textEnabled) ? passage.text || '' : ''
54
- }));
55
- return {
56
- ...normalizedQuestion,
57
- passages: normalizedPassages
58
- };
59
- }
60
- const validate = (model = {}, config = {}) => {
61
- const errors = {};
62
- const passagesErrors = {};
63
- (model.passages || []).forEach((passage, index) => {
64
- const err = {};
65
- ['teacherInstructions', 'title', 'subtitle', 'author', 'text'].forEach(field => {
66
- if (config[field]?.required && !getContent(passage[field])) {
67
- err[field] = 'This field is required.';
68
- }
69
- });
70
- if (!(0, _lodashEs.isEmpty)(err)) {
71
- passagesErrors[index] = err;
72
- }
73
- });
74
- if (!(0, _lodashEs.isEmpty)(passagesErrors)) {
75
- errors.passages = passagesErrors;
76
- }
77
- return errors;
78
- };
79
- exports.validate = validate;
80
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["_lodashEs","require","_defaults","_interopRequireDefault","getContent","html","replace","checkNullish","value","undefined","isEnabled","defaultValue","createDefaultModel","model","Promise","resolve","defaults","normalize","question","exports","normalizeTeacherInstructions","instructions","env","role","mode","session","normalizedQuestion","normalizedPassages","passages","map","passage","index","teacherInstructions","teacherInstructionsEnabled","label","title","titleEnabled","subtitle","subtitleEnabled","author","authorEnabled","text","textEnabled","validate","config","errors","passagesErrors","forEach","err","field","required","isEmpty"],"sources":["../src/index.js"],"sourcesContent":["import { isEmpty } from 'lodash-es';\n\nimport defaults from './defaults';\n\nconst getContent = (html) => (html || '').replace(/(<(?!img|iframe|source)([^>]+)>)/gi, '');\n\nconst checkNullish = (value) => value !== null && value !== undefined;\n\nconst isEnabled = (value, defaultValue) => (checkNullish(value) ? value : defaultValue);\n\nexport function createDefaultModel(model = {}) {\n return new Promise((resolve) => {\n resolve({ ...defaults, ...model });\n });\n}\n\nexport const normalize = (question) => ({ ...defaults, ...question });\n\nconst normalizeTeacherInstructions = (instructions, env) => {\n const { role, mode } = env;\n\n if (role === 'instructor' && (mode === 'view' || mode === 'evaluate')) {\n return instructions || '';\n }\n\n return '';\n};\n\n/**\n *\n * @param {*} question\n * @param {*} session\n * @param {*} env\n */\nexport async function model(question, session, env) {\n const normalizedQuestion = normalize(question);\n\n const normalizedPassages = normalizedQuestion.passages.map((passage, index) => ({\n teacherInstructions: isEnabled(passage.teacherInstructionsEnabled, normalizedQuestion.teacherInstructionsEnabled)\n ? normalizeTeacherInstructions(passage.teacherInstructions, env)\n : '',\n label: getContent(passage.title) ? passage.title : `Passage ${index + 1}`,\n title: isEnabled(passage.titleEnabled, normalizedQuestion.titleEnabled) ? passage.title || '' : '',\n subtitle: isEnabled(passage.subtitleEnabled, normalizedQuestion.subtitleEnabled) ? passage.subtitle || '' : '',\n author: isEnabled(passage.authorEnabled, normalizedQuestion.authorEnabled) ? passage.author || '' : '',\n text: isEnabled(passage.textEnabled, normalizedQuestion.textEnabled) ? passage.text || '' : '',\n }));\n\n return {\n ...normalizedQuestion,\n passages: normalizedPassages,\n };\n}\n\nexport const validate = (model = {}, config = {}) => {\n const errors = {};\n const passagesErrors = {};\n\n (model.passages || []).forEach((passage, index) => {\n const err = {};\n\n ['teacherInstructions', 'title', 'subtitle', 'author', 'text'].forEach((field) => {\n if (config[field]?.required && !getContent(passage[field])) {\n err[field] = 'This field is required.';\n }\n });\n\n if (!isEmpty(err)) {\n passagesErrors[index] = err;\n }\n });\n\n if (!isEmpty(passagesErrors)) {\n errors.passages = passagesErrors;\n }\n\n return errors;\n};\n"],"mappings":"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","ignoreList":[]}
package/lib/index.js DELETED
@@ -1,144 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.default = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
- var _piePlayerEvents = require("@pie-framework/pie-player-events");
10
- var _mathRendering = require("@pie-lib/math-rendering");
11
- var _react = _interopRequireDefault(require("react"));
12
- var _client = require("react-dom/client");
13
- var _stimulusTabs = _interopRequireDefault(require("./stimulus-tabs"));
14
- function getBaseHeadingLevel(element) {
15
- const player = element.closest('pie-player') || element.closest('pie-item-player');
16
- if (player) {
17
- let raw = player.baseHeadingLevel;
18
-
19
- // fallback in case someone sets via HTML attribute manually
20
- if (raw == null) {
21
- raw = player.getAttribute('base-heading-level') ?? player.getAttribute('baseheadinglevel');
22
- }
23
- const playerLevel = parseInt(raw, 10);
24
- if (Number.isFinite(playerLevel) && playerLevel >= 1 && playerLevel <= 6) {
25
- return playerLevel;
26
- }
27
- }
28
- return undefined;
29
- }
30
- class PiePassage extends HTMLElement {
31
- constructor() {
32
- super();
33
- (0, _defineProperty2.default)(this, "_scheduleMathRender", () => {
34
- if (this._mathRenderPending) return;
35
- this._mathRenderPending = true;
36
- requestAnimationFrame(() => {
37
- if (this._mathObserver) {
38
- this._mathObserver.disconnect();
39
- }
40
- (0, _mathRendering.renderMath)(this);
41
- this._mathRenderPending = false;
42
- setTimeout(() => {
43
- if (this._mathObserver) {
44
- this._mathObserver.observe(this, {
45
- childList: true,
46
- subtree: true
47
- });
48
- }
49
- }, 50);
50
- });
51
- });
52
- this._model = {
53
- passages: []
54
- };
55
- this._session = null;
56
- this._root = null;
57
- this._mathObserver = null;
58
- this._mathRenderPending = false;
59
- this._playerObserver = null;
60
- }
61
- setLangAttribute() {
62
- const language = this._model && typeof this._model.language ? this._model.language : '';
63
- const lang = language ? language.slice(0, 2) : 'en';
64
- this.setAttribute('lang', lang);
65
- }
66
- _initMathObserver() {
67
- if (this._mathObserver) return;
68
- this._mathObserver = new MutationObserver(this._scheduleMathRender);
69
- this._mathObserver.observe(this, {
70
- childList: true,
71
- subtree: true
72
- });
73
- }
74
- _disconnectMathObserver() {
75
- if (this._mathObserver) {
76
- this._mathObserver.disconnect();
77
- this._mathObserver = null;
78
- }
79
- }
80
- set model(s) {
81
- this._model = s;
82
- this.dispatchEvent(new _piePlayerEvents.ModelSetEvent(this.tagName.toLowerCase(), this._session, !!this._model));
83
- this.setLangAttribute();
84
- this._render();
85
- }
86
- set session(s) {
87
- this._session = s;
88
- }
89
- connectedCallback() {
90
- this.setAttribute('aria-label', 'Passage');
91
- this.setAttribute('role', 'region');
92
- this._initMathObserver();
93
- this._initPlayerObserver();
94
- this._render();
95
- }
96
- _render() {
97
- const {
98
- passages = []
99
- } = this._model;
100
- if (this._model.passages.length > 0) {
101
- const passagesTabs = passages.map((passage, index) => ({
102
- id: index,
103
- ...passage
104
- }));
105
- const elem = /*#__PURE__*/_react.default.createElement(_stimulusTabs.default, {
106
- tabs: passagesTabs,
107
- model: this._model,
108
- baseHeadingLevel: getBaseHeadingLevel(this)
109
- });
110
- if (!this._root) {
111
- this._root = (0, _client.createRoot)(this);
112
- }
113
- this._root.render(elem);
114
- this._initMathObserver();
115
- }
116
- }
117
- _initPlayerObserver() {
118
- const player = this.closest('pie-player') || this.closest('pie-item-player');
119
- if (!player) return;
120
- this._playerObserver = new MutationObserver(() => {
121
- this._render();
122
- });
123
- this._playerObserver.observe(player, {
124
- attributes: true,
125
- attributeFilter: ['base-heading-level']
126
- });
127
- }
128
- _disconnectPlayerObserver() {
129
- if (this._playerObserver) {
130
- this._playerObserver.disconnect();
131
- this._playerObserver = null;
132
- }
133
- }
134
- disconnectedCallback() {
135
- this._disconnectMathObserver();
136
- this._disconnectPlayerObserver();
137
- if (this._root) {
138
- this._root.unmount();
139
- this._root = null;
140
- }
141
- }
142
- }
143
- exports.default = PiePassage;
144
- //# sourceMappingURL=index.js.map
package/lib/index.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["_piePlayerEvents","require","_mathRendering","_react","_interopRequireDefault","_client","_stimulusTabs","getBaseHeadingLevel","element","player","closest","raw","baseHeadingLevel","getAttribute","playerLevel","parseInt","Number","isFinite","undefined","PiePassage","HTMLElement","constructor","_defineProperty2","default","_mathRenderPending","requestAnimationFrame","_mathObserver","disconnect","renderMath","setTimeout","observe","childList","subtree","_model","passages","_session","_root","_playerObserver","setLangAttribute","language","lang","slice","setAttribute","_initMathObserver","MutationObserver","_scheduleMathRender","_disconnectMathObserver","model","s","dispatchEvent","ModelSetEvent","tagName","toLowerCase","_render","session","connectedCallback","_initPlayerObserver","length","passagesTabs","map","passage","index","id","elem","React","createElement","StimulusTabs","tabs","createRoot","render","attributes","attributeFilter","_disconnectPlayerObserver","disconnectedCallback","unmount","exports"],"sources":["../src/index.js"],"sourcesContent":["import { ModelSetEvent } from '@pie-framework/pie-player-events';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\n\nimport StimulusTabs from './stimulus-tabs';\n\nfunction getBaseHeadingLevel(element) {\n const player =\n element.closest('pie-player') ||\n element.closest('pie-item-player');\n\n if (player) {\n let raw = player.baseHeadingLevel;\n\n // fallback in case someone sets via HTML attribute manually\n if (raw == null) {\n raw =\n player.getAttribute('base-heading-level') ??\n player.getAttribute('baseheadinglevel');\n }\n\n const playerLevel = parseInt(raw, 10);\n\n if (Number.isFinite(playerLevel) && playerLevel >= 1 && playerLevel <= 6) {\n return playerLevel;\n }\n }\n\n return undefined;\n}\n\nexport default class PiePassage extends HTMLElement {\n constructor() {\n super();\n this._model = {\n passages: [],\n };\n this._session = null;\n this._root = null;\n this._mathObserver = null;\n this._mathRenderPending = false;\n this._playerObserver = null;\n }\n\n setLangAttribute() {\n const language = this._model && typeof this._model.language ? this._model.language : '';\n const lang = language ? language.slice(0, 2) : 'en';\n this.setAttribute('lang', lang);\n }\n\n _scheduleMathRender = () => {\n if (this._mathRenderPending) return;\n this._mathRenderPending = true;\n\n requestAnimationFrame(() => {\n if (this._mathObserver) {\n this._mathObserver.disconnect();\n }\n renderMath(this);\n this._mathRenderPending = false;\n setTimeout(() => {\n if (this._mathObserver) {\n this._mathObserver.observe(this, { childList: true, subtree: true });\n }\n }, 50);\n });\n };\n\n _initMathObserver() {\n if (this._mathObserver) return;\n this._mathObserver = new MutationObserver(this._scheduleMathRender);\n this._mathObserver.observe(this, { childList: true, subtree: true });\n }\n\n _disconnectMathObserver() {\n if (this._mathObserver) {\n this._mathObserver.disconnect();\n this._mathObserver = null;\n }\n }\n\n set model(s) {\n this._model = s;\n this.dispatchEvent(new ModelSetEvent(this.tagName.toLowerCase(), this._session, !!this._model));\n this.setLangAttribute();\n\n this._render();\n }\n\n set session(s) {\n this._session = s;\n }\n\n connectedCallback() {\n this.setAttribute('aria-label', 'Passage');\n this.setAttribute('role', 'region');\n this._initMathObserver();\n this._initPlayerObserver();\n this._render();\n }\n\n _render() {\n const { passages = [] } = this._model;\n\n if (this._model.passages.length > 0) {\n const passagesTabs = passages.map((passage, index) => ({\n id: index,\n ...passage,\n }));\n\n const elem = React.createElement(StimulusTabs, {\n tabs: passagesTabs,\n model: this._model,\n baseHeadingLevel: getBaseHeadingLevel(this),\n });\n\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(elem);\n\n this._initMathObserver();\n }\n }\n\n _initPlayerObserver() {\n const player = this.closest('pie-player') || this.closest('pie-item-player');\n if (!player) return;\n\n this._playerObserver = new MutationObserver(() => {\n this._render();\n });\n this._playerObserver.observe(player, { attributes: true, attributeFilter: ['base-heading-level'] });\n }\n\n _disconnectPlayerObserver() {\n if (this._playerObserver) {\n this._playerObserver.disconnect();\n this._playerObserver = null;\n }\n }\n\n disconnectedCallback() {\n this._disconnectMathObserver();\n this._disconnectPlayerObserver();\n if (this._root) {\n this._root.unmount();\n this._root = null;\n }\n }\n}\n"],"mappings":"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","ignoreList":[]}