@pie-element/boilerplate-item-type 7.2.2-beta.6 → 7.2.2-beta.7

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.
package/CHANGELOG.md CHANGED
@@ -3,6 +3,10 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ ## [7.2.2-beta.7](https://github.com/pie-framework/pie-elements/compare/@pie-element/boilerplate-item-type@7.2.2-beta.6...@pie-element/boilerplate-item-type@7.2.2-beta.7) (2026-09-24)
7
+
8
+ **Note:** Version bump only for package @pie-element/boilerplate-item-type
9
+
6
10
  ## [7.2.2-beta.6](https://github.com/pie-framework/pie-elements/compare/@pie-element/boilerplate-item-type@7.2.2-beta.5...@pie-element/boilerplate-item-type@7.2.2-beta.6) (2026-09-24)
7
11
 
8
12
  **Note:** Version bump only for package @pie-element/boilerplate-item-type
@@ -3,6 +3,10 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [6.4.0-beta.13](https://github.com/pie-framework/pie-elements/compare/@pie-element/boilerplate-item-type-configure@6.4.0-beta.12...@pie-element/boilerplate-item-type-configure@6.4.0-beta.13) (2026-09-24)
7
+
8
+ **Note:** Version bump only for package @pie-element/boilerplate-item-type-configure
9
+
6
10
  # [6.4.0-beta.12](https://github.com/pie-framework/pie-elements/compare/@pie-element/boilerplate-item-type-configure@6.4.0-beta.11...@pie-element/boilerplate-item-type-configure@6.4.0-beta.12) (2026-09-24)
7
11
 
8
12
  **Note:** Version bump only for package @pie-element/boilerplate-item-type-configure
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ // Should be exactly the same as controller/defaults.js
8
+ var _default = exports.default = {
9
+ model: {
10
+ prompt: '',
11
+ promptEnabled: true
12
+ },
13
+ configuration: {
14
+ prompt: {
15
+ label: 'Prompt',
16
+ settings: true
17
+ }
18
+ }
19
+ };
20
+ //# sourceMappingURL=defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.js","names":["_default","exports","default","model","prompt","promptEnabled","configuration","label","settings"],"sources":["../src/defaults.js"],"sourcesContent":["// Should be exactly the same as controller/defaults.js\nexport default {\n model: {\n prompt: '',\n promptEnabled: true,\n },\n configuration: {\n prompt: {\n label: 'Prompt',\n settings: true,\n },\n },\n};\n"],"mappings":";;;;;;AAAA;AAAA,IAAAA,QAAA,GAAAC,OAAA,CAAAC,OAAA,GACe;EACbC,KAAK,EAAE;IACLC,MAAM,EAAE,EAAE;IACVC,aAAa,EAAE;EACjB,CAAC;EACDC,aAAa,EAAE;IACbF,MAAM,EAAE;MACNG,KAAK,EAAE,QAAQ;MACfC,QAAQ,EAAE;IACZ;EACF;AACF,CAAC","ignoreList":[]}
@@ -0,0 +1,106 @@
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.Design = 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 _styles = require("@mui/material/styles");
12
+ var _lodashEs = require("lodash-es");
13
+ var _configUi = require("@pie-lib/config-ui");
14
+ var _renderUi = require("@pie-lib/render-ui");
15
+ var _editableHtmlTipTap = _interopRequireDefault(require("@pie-lib/editable-html-tip-tap"));
16
+ const {
17
+ Panel,
18
+ toggle
19
+ } = _configUi.settings;
20
+ const StyledInputContainer = (0, _styles.styled)(_renderUi.InputContainer)(({
21
+ theme
22
+ }) => ({
23
+ width: '100%',
24
+ paddingTop: theme.spacing(1),
25
+ marginBottom: theme.spacing(2),
26
+ marginTop: theme.spacing(2)
27
+ }));
28
+ class Design extends _react.default.Component {
29
+ constructor(...args) {
30
+ super(...args);
31
+ (0, _defineProperty2.default)(this, "onPromptChanged", prompt => {
32
+ const {
33
+ onModelChanged,
34
+ model
35
+ } = this.props;
36
+ const update = (0, _lodashEs.cloneDeep)(model);
37
+ update.prompt = prompt;
38
+ onModelChanged(update);
39
+ });
40
+ }
41
+ render() {
42
+ const {
43
+ configuration,
44
+ imageSupport,
45
+ model,
46
+ onConfigurationChanged,
47
+ onModelChanged,
48
+ uploadSoundSupport
49
+ } = this.props;
50
+ const {
51
+ contentDimensions = {},
52
+ prompt = {},
53
+ settingsPanelDisabled
54
+ } = configuration || {};
55
+ const {
56
+ extraCSSRules,
57
+ promptEnabled
58
+ } = model || {};
59
+ const panelSettings = {};
60
+ const panelProperties = {
61
+ promptEnabled: prompt.settings && toggle(prompt.label)
62
+ };
63
+ return /*#__PURE__*/_react.default.createElement(_configUi.layout.ConfigLayout, {
64
+ extraCSSRules: extraCSSRules,
65
+ dimensions: contentDimensions,
66
+ hideSettings: settingsPanelDisabled,
67
+ settings: /*#__PURE__*/_react.default.createElement(Panel, {
68
+ model: model,
69
+ configuration: configuration,
70
+ onChangeModel: model => onModelChanged(model),
71
+ onChangeConfiguration: onConfigurationChanged,
72
+ groups: {
73
+ Settings: panelSettings,
74
+ Properties: panelProperties
75
+ }
76
+ })
77
+ }, promptEnabled && /*#__PURE__*/_react.default.createElement(StyledInputContainer, {
78
+ label: prompt.label || ''
79
+ }, /*#__PURE__*/_react.default.createElement(_editableHtmlTipTap.default, {
80
+ markup: model.prompt,
81
+ onChange: this.onPromptChanged,
82
+ imageSupport: imageSupport,
83
+ uploadSoundSupport: uploadSoundSupport,
84
+ languageCharactersProps: [{
85
+ language: 'spanish'
86
+ }, {
87
+ language: 'special'
88
+ }]
89
+ })));
90
+ }
91
+ }
92
+ exports.Design = Design;
93
+ (0, _defineProperty2.default)(Design, "propTypes", {
94
+ model: _propTypes.default.object.isRequired,
95
+ configuration: _propTypes.default.object.isRequired,
96
+ onModelChanged: _propTypes.default.func.isRequired,
97
+ onConfigurationChanged: _propTypes.default.func.isRequired,
98
+ imageSupport: _propTypes.default.shape({
99
+ add: _propTypes.default.func.isRequired,
100
+ delete: _propTypes.default.func.isRequired
101
+ }),
102
+ uploadSoundSupport: _propTypes.default.object
103
+ });
104
+ (0, _defineProperty2.default)(Design, "defaultProps", {});
105
+ var _default = exports.default = Design;
106
+ //# sourceMappingURL=design.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"design.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_lodashEs","_configUi","_renderUi","_editableHtmlTipTap","Panel","toggle","settings","StyledInputContainer","styled","InputContainer","theme","width","paddingTop","spacing","marginBottom","marginTop","Design","React","Component","constructor","args","_defineProperty2","default","prompt","onModelChanged","model","props","update","cloneDeep","render","configuration","imageSupport","onConfigurationChanged","uploadSoundSupport","contentDimensions","settingsPanelDisabled","extraCSSRules","promptEnabled","panelSettings","panelProperties","label","createElement","layout","ConfigLayout","dimensions","hideSettings","onChangeModel","onChangeConfiguration","groups","Settings","Properties","markup","onChange","onPromptChanged","languageCharactersProps","language","exports","PropTypes","object","isRequired","func","shape","add","delete","_default"],"sources":["../src/design.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport { cloneDeep } from 'lodash-es';\nimport { settings, layout } from '@pie-lib/config-ui';\nimport { InputContainer } from '@pie-lib/render-ui'\nimport EditableHtml from '@pie-lib/editable-html-tip-tap';\n\nconst { Panel, toggle } = settings;\n\nconst StyledInputContainer = styled(InputContainer)(({ theme }) => ({\n width: '100%',\n paddingTop: theme.spacing(1),\n marginBottom: theme.spacing(2),\n marginTop: theme.spacing(2),\n}));\n\nexport class Design extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n onModelChanged: PropTypes.func.isRequired,\n onConfigurationChanged: PropTypes.func.isRequired,\n imageSupport: PropTypes.shape({\n add: PropTypes.func.isRequired,\n delete: PropTypes.func.isRequired,\n }),\n uploadSoundSupport: PropTypes.object,\n };\n\n static defaultProps = {};\n\n onPromptChanged = (prompt) => {\n const { onModelChanged, model } = this.props;\n const update = cloneDeep(model);\n\n update.prompt = prompt;\n onModelChanged(update);\n };\n\n render() {\n const { configuration, imageSupport, model, onConfigurationChanged, onModelChanged, uploadSoundSupport } =\n this.props;\n const { contentDimensions = {}, prompt = {}, settingsPanelDisabled } = configuration || {};\n const { extraCSSRules, promptEnabled } = model || {};\n\n const panelSettings = {};\n\n const panelProperties = {\n promptEnabled: prompt.settings && toggle(prompt.label),\n };\n\n return (\n <layout.ConfigLayout\n extraCSSRules={extraCSSRules}\n dimensions={contentDimensions}\n hideSettings={settingsPanelDisabled}\n settings={\n <Panel\n model={model}\n configuration={configuration}\n onChangeModel={(model) => onModelChanged(model)}\n onChangeConfiguration={onConfigurationChanged}\n groups={{\n Settings: panelSettings,\n Properties: panelProperties,\n }}\n />\n }\n >\n {promptEnabled && (\n <StyledInputContainer label={prompt.label || ''}>\n <EditableHtml\n markup={model.prompt}\n onChange={this.onPromptChanged}\n imageSupport={imageSupport}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n />\n </StyledInputContainer>\n )}\n </layout.ConfigLayout>\n );\n }\n}\n\nexport default Design;\n"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,97 @@
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 _design = _interopRequireDefault(require("./design"));
12
+ var _pieConfigureEvents = require("@pie-framework/pie-configure-events");
13
+ var _defaults = _interopRequireDefault(require("./defaults"));
14
+ class BoilerplateItemTypeConfigure extends HTMLElement {
15
+ constructor() {
16
+ super();
17
+ this._root = null;
18
+ this._model = BoilerplateItemTypeConfigure.createDefaultModel();
19
+ this._configuration = _defaults.default.configuration;
20
+ }
21
+ set model(m) {
22
+ this._model = BoilerplateItemTypeConfigure.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
+
42
+ /**
43
+ *
44
+ * @param {done, progress, file} handler
45
+ */
46
+ insertImage(handler) {
47
+ this.dispatchEvent(new _pieConfigureEvents.InsertImageEvent(handler));
48
+ }
49
+ onDeleteImage(src, done) {
50
+ this.dispatchEvent(new _pieConfigureEvents.DeleteImageEvent(src, done));
51
+ }
52
+ insertSound(handler) {
53
+ this.dispatchEvent(new _pieConfigureEvents.InsertSoundEvent(handler));
54
+ }
55
+ onDeleteSound(src, done) {
56
+ this.dispatchEvent(new _pieConfigureEvents.DeleteSoundEvent(src, done));
57
+ }
58
+ render() {
59
+ if (this._model) {
60
+ const el = /*#__PURE__*/_react.default.createElement(_design.default, {
61
+ model: this._model,
62
+ configuration: this._configuration,
63
+ onModelChanged: this.modelChanged.bind(this),
64
+ onConfigurationChanged: this.onConfigurationChanged.bind(this),
65
+ imageSupport: {
66
+ add: this.insertImage.bind(this),
67
+ delete: this.onDeleteImage.bind(this)
68
+ },
69
+ uploadSoundSupport: {
70
+ add: this.insertSound.bind(this),
71
+ delete: this.onDeleteSound.bind(this)
72
+ }
73
+ });
74
+ if (!this._root) {
75
+ this._root = (0, _client.createRoot)(this);
76
+ }
77
+ this._root.render(el);
78
+ }
79
+ }
80
+ disconnectedCallback() {
81
+ if (this._root) {
82
+ this._root.unmount();
83
+ this._root = null;
84
+ }
85
+ }
86
+ }
87
+ exports.default = BoilerplateItemTypeConfigure;
88
+ /**
89
+ * This function makes sure you set the default values on the model
90
+ * @param model
91
+ * @returns model
92
+ */
93
+ (0, _defineProperty2.default)(BoilerplateItemTypeConfigure, "createDefaultModel", (model = {}) => ({
94
+ ..._defaults.default.model,
95
+ ...model
96
+ }));
97
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_client","_design","_pieConfigureEvents","_defaults","BoilerplateItemTypeConfigure","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 Main from './design';\nimport {\n ModelUpdatedEvent,\n DeleteImageEvent,\n InsertImageEvent,\n InsertSoundEvent,\n DeleteSoundEvent,\n} from '@pie-framework/pie-configure-events';\nimport defaultValues from './defaults';\n\nexport default class BoilerplateItemTypeConfigure extends HTMLElement {\n /**\n * This function makes sure you set the default values on the model\n * @param model\n * @returns model\n */\n static createDefaultModel = (model = {}) => ({\n ...defaultValues.model,\n ...model,\n });\n\n constructor() {\n super();\n this._root = null;\n this._model = BoilerplateItemTypeConfigure.createDefaultModel();\n this._configuration = defaultValues.configuration;\n }\n\n set model(m) {\n this._model = BoilerplateItemTypeConfigure.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 /**\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(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,7 +1,7 @@
1
1
  {
2
2
  "name": "@pie-element/boilerplate-item-type-configure",
3
3
  "private": true,
4
- "version": "6.4.0-beta.12",
4
+ "version": "6.4.0-beta.13",
5
5
  "description": "",
6
6
  "main": "lib/index.js",
7
7
  "module": "src/index.js",
@@ -11,8 +11,8 @@
11
11
  "@mui/icons-material": "^7.3.4",
12
12
  "@mui/material": "^7.3.4",
13
13
  "@pie-framework/pie-configure-events": "^1.3.0",
14
- "@pie-lib/config-ui": "13.0.22-beta.1",
15
- "@pie-lib/editable-html-tip-tap": "2.1.20-beta.1",
14
+ "@pie-lib/config-ui": "13.0.22-beta.2",
15
+ "@pie-lib/editable-html-tip-tap": "2.1.20-beta.2",
16
16
  "@pie-lib/render-ui": "6.1.3",
17
17
  "debug": "^4.1.1",
18
18
  "lodash-es": "^4.17.23",
@@ -3,6 +3,10 @@
3
3
  All notable changes to this project will be documented in this file.
4
4
  See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
5
5
 
6
+ # [6.3.0-beta.13](https://github.com/pie-framework/pie-elements/compare/@pie-element/boilerplate-item-type-controller@6.3.0-beta.12...@pie-element/boilerplate-item-type-controller@6.3.0-beta.13) (2026-09-24)
7
+
8
+ **Note:** Version bump only for package @pie-element/boilerplate-item-type-controller
9
+
6
10
  # [6.3.0-beta.12](https://github.com/pie-framework/pie-elements/compare/@pie-element/boilerplate-item-type-controller@6.3.0-beta.11...@pie-element/boilerplate-item-type-controller@6.3.0-beta.12) (2026-09-24)
7
11
 
8
12
  **Note:** Version bump only for package @pie-element/boilerplate-item-type-controller
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ // Should be exactly the same as configure/defaults.js
8
+ var _default = exports.default = {
9
+ model: {
10
+ prompt: '',
11
+ promptEnabled: true
12
+ },
13
+ configuration: {
14
+ prompt: {
15
+ label: 'Prompt',
16
+ settings: true
17
+ }
18
+ }
19
+ };
20
+ //# sourceMappingURL=defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.js","names":["_default","exports","default","model","prompt","promptEnabled","configuration","label","settings"],"sources":["../src/defaults.js"],"sourcesContent":["// Should be exactly the same as configure/defaults.js\nexport default {\n model: {\n prompt: '',\n promptEnabled: true,\n },\n configuration: {\n prompt: {\n label: 'Prompt',\n settings: true,\n },\n },\n};\n"],"mappings":";;;;;;AAAA;AAAA,IAAAA,QAAA,GAAAC,OAAA,CAAAC,OAAA,GACe;EACbC,KAAK,EAAE;IACLC,MAAM,EAAE,EAAE;IACVC,aAAa,EAAE;EACjB,CAAC;EACDC,aAAa,EAAE;IACbF,MAAM,EAAE;MACNG,KAAK,EAAE,QAAQ;MACfC,QAAQ,EAAE;IACZ;EACF;AACF,CAAC","ignoreList":[]}
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+ Object.defineProperty(exports, "__esModule", {
5
+ value: true
6
+ });
7
+ exports.validate = exports.outcome = exports.normalizeSession = exports.model = exports.getPartialScore = exports.getCorrectness = exports.createDefaultModel = exports.createCorrectResponseSession = void 0;
8
+ var _lodashEs = require("lodash-es");
9
+ var _defaults = _interopRequireDefault(require("./defaults"));
10
+ const getCorrectness = model => {
11
+ const correctnessCondition = 'c';
12
+ switch (correctnessCondition) {
13
+ case 'c':
14
+ return 'correct';
15
+ case 'pc':
16
+ return 'partially-correct';
17
+ case 'i':
18
+ return 'incorrect';
19
+ default:
20
+ return 'unknown';
21
+ }
22
+ };
23
+ exports.getCorrectness = getCorrectness;
24
+ const getPartialScore = (question, session) => {
25
+ if (!session || (0, _lodashEs.isEmpty)(session)) {
26
+ return 0;
27
+ }
28
+ return 1;
29
+ };
30
+ exports.getPartialScore = getPartialScore;
31
+ const outcome = (question, session, env) => new Promise(resolve => {
32
+ if (!session || (0, _lodashEs.isEmpty)(session)) {
33
+ resolve({
34
+ score: 0,
35
+ empty: true
36
+ });
37
+ }
38
+ session = normalizeSession(session);
39
+ if (env.mode !== 'evaluate') {
40
+ resolve({
41
+ score: undefined,
42
+ completed: undefined
43
+ });
44
+ } else {
45
+ resolve({
46
+ score: 1
47
+ });
48
+ }
49
+ });
50
+ exports.outcome = outcome;
51
+ const createDefaultModel = (model = {}) => ({
52
+ ..._defaults.default.model,
53
+ ...model
54
+ });
55
+ exports.createDefaultModel = createDefaultModel;
56
+ const normalizeSession = s => ({
57
+ ...s
58
+ });
59
+ exports.normalizeSession = normalizeSession;
60
+ const model = (question, session, env) => {
61
+ return new Promise(resolve => {
62
+ session = session || {};
63
+ const normalizedQuestion = createDefaultModel(question);
64
+ const out = {
65
+ prompt: normalizedQuestion.promptEnabled ? normalizedQuestion.prompt : null,
66
+ extraCSSRules: normalizedQuestion.extraCSSRules,
67
+ env
68
+ };
69
+ resolve(out);
70
+ });
71
+ };
72
+ exports.model = model;
73
+ const createCorrectResponseSession = (question, env) => {
74
+ return new Promise(resolve => {
75
+ if (env.mode !== 'evaluate' && env.role === 'instructor') {
76
+ resolve({
77
+ id: '1'
78
+ });
79
+ } else {
80
+ resolve(null);
81
+ }
82
+ });
83
+ };
84
+ exports.createCorrectResponseSession = createCorrectResponseSession;
85
+ const validate = (model = {}, config = {}) => {
86
+ const errors = {};
87
+ return errors;
88
+ };
89
+ exports.validate = validate;
90
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_lodashEs","require","_defaults","_interopRequireDefault","getCorrectness","model","correctnessCondition","exports","getPartialScore","question","session","isEmpty","outcome","env","Promise","resolve","score","empty","normalizeSession","mode","undefined","completed","createDefaultModel","defaults","s","normalizedQuestion","out","prompt","promptEnabled","extraCSSRules","createCorrectResponseSession","role","id","validate","config","errors"],"sources":["../src/index.js"],"sourcesContent":["import { isEmpty } from 'lodash-es';\nimport defaults from './defaults';\n\nexport const getCorrectness = (model) => {\n const correctnessCondition = 'c';\n\n switch (correctnessCondition) {\n case 'c':\n return 'correct';\n case 'pc':\n return 'partially-correct';\n case 'i':\n return 'incorrect';\n default:\n return 'unknown';\n }\n};\n\nexport const getPartialScore = (question, session) => {\n if (!session || isEmpty(session)) {\n return 0;\n }\n\n return 1;\n};\n\nexport const outcome = (question, session, env) =>\n new Promise((resolve) => {\n if (!session || isEmpty(session)) {\n resolve({ score: 0, empty: true });\n }\n\n session = normalizeSession(session);\n\n if (env.mode !== 'evaluate') {\n resolve({ score: undefined, completed: undefined });\n } else {\n resolve({ score: 1 });\n }\n });\n\nexport const createDefaultModel = (model = {}) => ({ ...defaults.model, ...model });\n\nexport const normalizeSession = (s) => ({ ...s });\n\nexport const model = (question, session, env) => {\n return new Promise((resolve) => {\n session = session || {};\n const normalizedQuestion = createDefaultModel(question);\n\n const out = {\n prompt: normalizedQuestion.promptEnabled ? normalizedQuestion.prompt : null,\n extraCSSRules: normalizedQuestion.extraCSSRules,\n env,\n };\n\n resolve(out);\n });\n};\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n resolve({ id: '1' });\n } else {\n resolve(null);\n }\n });\n};\n\nexport const validate = (model = {}, config = {}) => {\n const errors = {};\n\n return errors;\n};\n"],"mappings":"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","ignoreList":[]}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@pie-element/boilerplate-item-type-controller",
3
3
  "private": true,
4
- "version": "6.3.0-beta.12",
4
+ "version": "6.3.0-beta.13",
5
5
  "description": "",
6
6
  "main": "lib/index.js",
7
7
  "module": "src/index.js",
package/lib/index.js ADDED
@@ -0,0 +1,69 @@
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 _react = _interopRequireDefault(require("react"));
9
+ var _client = require("react-dom/client");
10
+ var _piePlayerEvents = require("@pie-framework/pie-player-events");
11
+ var _main = _interopRequireDefault(require("./main"));
12
+ var _mathRendering = require("@pie-lib/math-rendering");
13
+ class BoilerplateItemType extends HTMLElement {
14
+ constructor() {
15
+ super();
16
+ this._root = null;
17
+ }
18
+ set model(m) {
19
+ this._model = m;
20
+ this.render();
21
+ this.dispatchEvent(new _piePlayerEvents.ModelSetEvent(this.tagName.toLowerCase(), this.isSessionComplete(), this._model !== undefined));
22
+ }
23
+ get model() {
24
+ return this._model;
25
+ }
26
+ set session(s) {
27
+ this._session = s;
28
+ this.render();
29
+ }
30
+ get session() {
31
+ return this._session;
32
+ }
33
+ isSessionComplete() {
34
+ // a method to check if student answered the question
35
+ return true;
36
+ }
37
+ onSessionChange(session) {
38
+ // you can add an extra step here to validate session
39
+ this._session = session;
40
+ this.dispatchEvent(new _piePlayerEvents.SessionChangedEvent(this.tagName.toLowerCase(), this.isSessionComplete()));
41
+ }
42
+ connectedCallback() {
43
+ this.render();
44
+ }
45
+ render() {
46
+ if (this._model && this._session) {
47
+ const el = /*#__PURE__*/_react.default.createElement(_main.default, {
48
+ model: this._model,
49
+ session: this._session,
50
+ onSessionChange: this.onSessionChange.bind(this)
51
+ });
52
+ if (!this._root) {
53
+ this._root = (0, _client.createRoot)(this);
54
+ }
55
+ this._root.render(el);
56
+ queueMicrotask(() => {
57
+ (0, _mathRendering.renderMath)(this);
58
+ });
59
+ }
60
+ }
61
+ disconnectedCallback() {
62
+ if (this._root) {
63
+ this._root.unmount();
64
+ this._root = null;
65
+ }
66
+ }
67
+ }
68
+ exports.default = BoilerplateItemType;
69
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_client","_piePlayerEvents","_main","_mathRendering","BoilerplateItemType","HTMLElement","constructor","_root","model","m","_model","render","dispatchEvent","ModelSetEvent","tagName","toLowerCase","isSessionComplete","undefined","session","s","_session","onSessionChange","SessionChangedEvent","connectedCallback","el","React","createElement","Main","bind","createRoot","queueMicrotask","renderMath","disconnectedCallback","unmount","exports","default"],"sources":["../src/index.js"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { SessionChangedEvent, ModelSetEvent } from '@pie-framework/pie-player-events';\nimport Main from './main';\nimport { renderMath } from '@pie-lib/math-rendering';\n\nexport default class BoilerplateItemType extends HTMLElement {\n constructor() {\n super();\n this._root = null;\n }\n\n set model(m) {\n this._model = m;\n\n this.render();\n this.dispatchEvent(\n new ModelSetEvent(this.tagName.toLowerCase(), this.isSessionComplete(), this._model !== undefined),\n );\n }\n\n get model() {\n return this._model;\n }\n\n set session(s) {\n this._session = s;\n\n this.render();\n }\n\n get session() {\n return this._session;\n }\n\n isSessionComplete() {\n // a method to check if student answered the question\n return true;\n }\n\n onSessionChange(session) {\n // you can add an extra step here to validate session\n this._session = session;\n\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), this.isSessionComplete()));\n }\n\n connectedCallback() {\n this.render();\n }\n\n render() {\n if (this._model && this._session) {\n const el = React.createElement(Main, {\n model: this._model,\n session: this._session,\n onSessionChange: this.onSessionChange.bind(this),\n });\n\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(el);\n queueMicrotask(() => {\n renderMath(this);\n });\n }\n }\n\n disconnectedCallback() {\n if (this._root) {\n this._root.unmount();\n this._root = null;\n }\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,cAAA,GAAAJ,OAAA;AAEe,MAAMK,mBAAmB,SAASC,WAAW,CAAC;EAC3DC,WAAWA,CAAA,EAAG;IACZ,KAAK,CAAC,CAAC;IACP,IAAI,CAACC,KAAK,GAAG,IAAI;EACnB;EAEA,IAAIC,KAAKA,CAACC,CAAC,EAAE;IACX,IAAI,CAACC,MAAM,GAAGD,CAAC;IAEf,IAAI,CAACE,MAAM,CAAC,CAAC;IACb,IAAI,CAACC,aAAa,CAChB,IAAIC,8BAAa,CAAC,IAAI,CAACC,OAAO,CAACC,WAAW,CAAC,CAAC,EAAE,IAAI,CAACC,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAACN,MAAM,KAAKO,SAAS,CACnG,CAAC;EACH;EAEA,IAAIT,KAAKA,CAAA,EAAG;IACV,OAAO,IAAI,CAACE,MAAM;EACpB;EAEA,IAAIQ,OAAOA,CAACC,CAAC,EAAE;IACb,IAAI,CAACC,QAAQ,GAAGD,CAAC;IAEjB,IAAI,CAACR,MAAM,CAAC,CAAC;EACf;EAEA,IAAIO,OAAOA,CAAA,EAAG;IACZ,OAAO,IAAI,CAACE,QAAQ;EACtB;EAEAJ,iBAAiBA,CAAA,EAAG;IAClB;IACA,OAAO,IAAI;EACb;EAEAK,eAAeA,CAACH,OAAO,EAAE;IACvB;IACA,IAAI,CAACE,QAAQ,GAAGF,OAAO;IAEvB,IAAI,CAACN,aAAa,CAAC,IAAIU,oCAAmB,CAAC,IAAI,CAACR,OAAO,CAACC,WAAW,CAAC,CAAC,EAAE,IAAI,CAACC,iBAAiB,CAAC,CAAC,CAAC,CAAC;EACnG;EAEAO,iBAAiBA,CAAA,EAAG;IAClB,IAAI,CAACZ,MAAM,CAAC,CAAC;EACf;EAEAA,MAAMA,CAAA,EAAG;IACP,IAAI,IAAI,CAACD,MAAM,IAAI,IAAI,CAACU,QAAQ,EAAE;MAChC,MAAMI,EAAE,gBAAGC,cAAK,CAACC,aAAa,CAACC,aAAI,EAAE;QACnCnB,KAAK,EAAE,IAAI,CAACE,MAAM;QAClBQ,OAAO,EAAE,IAAI,CAACE,QAAQ;QACtBC,eAAe,EAAE,IAAI,CAACA,eAAe,CAACO,IAAI,CAAC,IAAI;MACjD,CAAC,CAAC;MAEF,IAAI,CAAC,IAAI,CAACrB,KAAK,EAAE;QACf,IAAI,CAACA,KAAK,GAAG,IAAAsB,kBAAU,EAAC,IAAI,CAAC;MAC/B;MACA,IAAI,CAACtB,KAAK,CAACI,MAAM,CAACa,EAAE,CAAC;MACrBM,cAAc,CAAC,MAAM;QACnB,IAAAC,yBAAU,EAAC,IAAI,CAAC;MAClB,CAAC,CAAC;IACJ;EACF;EAEAC,oBAAoBA,CAAA,EAAG;IACrB,IAAI,IAAI,CAACzB,KAAK,EAAE;MACd,IAAI,CAACA,KAAK,CAAC0B,OAAO,CAAC,CAAC;MACpB,IAAI,CAAC1B,KAAK,GAAG,IAAI;IACnB;EACF;AACF;AAAC2B,OAAA,CAAAC,OAAA,GAAA/B,mBAAA","ignoreList":[]}
package/lib/main.js ADDED
@@ -0,0 +1,34 @@
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 _propTypes = _interopRequireDefault(require("prop-types"));
11
+ var _renderUi = require("@pie-lib/render-ui");
12
+ class Main extends _react.default.Component {
13
+ render() {
14
+ const {
15
+ model
16
+ } = this.props;
17
+ const {
18
+ extraCSSRules
19
+ } = model;
20
+ return /*#__PURE__*/_react.default.createElement(_renderUi.UiLayout, {
21
+ extraCSSRules: extraCSSRules
22
+ }, model.prompt && /*#__PURE__*/_react.default.createElement("div", null, /*#__PURE__*/_react.default.createElement("p", null, "Boilerplate Item"), /*#__PURE__*/_react.default.createElement(_renderUi.PreviewPrompt, {
23
+ prompt: model.prompt
24
+ })));
25
+ }
26
+ }
27
+ exports.default = Main;
28
+ (0, _defineProperty2.default)(Main, "propTypes", {
29
+ model: _propTypes.default.object,
30
+ session: _propTypes.default.object,
31
+ onSessionChange: _propTypes.default.func.isRequired
32
+ });
33
+ (0, _defineProperty2.default)(Main, "defaultProps", {});
34
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","names":["_react","_interopRequireDefault","require","_propTypes","_renderUi","Main","React","Component","render","model","props","extraCSSRules","default","createElement","UiLayout","prompt","PreviewPrompt","exports","_defineProperty2","PropTypes","object","session","onSessionChange","func","isRequired"],"sources":["../src/main.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { PreviewPrompt, UiLayout } from '@pie-lib/render-ui';\n\nexport default class Main extends React.Component {\n static propTypes = {\n model: PropTypes.object,\n session: PropTypes.object,\n onSessionChange: PropTypes.func.isRequired,\n };\n\n static defaultProps = {};\n\n render() {\n const { model } = this.props;\n const { extraCSSRules } = model;\n\n return (\n <UiLayout extraCSSRules={extraCSSRules}>\n {model.prompt && (\n <div>\n <p>Boilerplate Item</p>\n <PreviewPrompt prompt={model.prompt} />\n </div>\n )}\n </UiLayout>\n );\n }\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AAEe,MAAMG,IAAI,SAASC,cAAK,CAACC,SAAS,CAAC;EAShDC,MAAMA,CAAA,EAAG;IACP,MAAM;MAAEC;IAAM,CAAC,GAAG,IAAI,CAACC,KAAK;IAC5B,MAAM;MAAEC;IAAc,CAAC,GAAGF,KAAK;IAE/B,oBACET,MAAA,CAAAY,OAAA,CAAAC,aAAA,CAACT,SAAA,CAAAU,QAAQ;MAACH,aAAa,EAAEA;IAAc,GACpCF,KAAK,CAACM,MAAM,iBACXf,MAAA,CAAAY,OAAA,CAAAC,aAAA,2BACEb,MAAA,CAAAY,OAAA,CAAAC,aAAA,YAAG,kBAAmB,CAAC,eACvBb,MAAA,CAAAY,OAAA,CAAAC,aAAA,CAACT,SAAA,CAAAY,aAAa;MAACD,MAAM,EAAEN,KAAK,CAACM;IAAO,CAAE,CACnC,CAEC,CAAC;EAEf;AACF;AAACE,OAAA,CAAAL,OAAA,GAAAP,IAAA;AAAA,IAAAa,gBAAA,CAAAN,OAAA,EAxBoBP,IAAI,eACJ;EACjBI,KAAK,EAAEU,kBAAS,CAACC,MAAM;EACvBC,OAAO,EAAEF,kBAAS,CAACC,MAAM;EACzBE,eAAe,EAAEH,kBAAS,CAACI,IAAI,CAACC;AAClC,CAAC;AAAA,IAAAN,gBAAA,CAAAN,OAAA,EALkBP,IAAI,kBAOD,CAAC,CAAC","ignoreList":[]}
package/lib/print.js ADDED
@@ -0,0 +1,72 @@
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 _react = _interopRequireDefault(require("react"));
9
+ var _client = require("react-dom/client");
10
+ var _lodashEs = require("lodash-es");
11
+ var _main = _interopRequireDefault(require("./main"));
12
+ var _mathRendering = require("@pie-lib/math-rendering");
13
+ var _debug = _interopRequireDefault(require("debug"));
14
+ const log = (0, _debug.default)('pie-element:multiple-choice:print');
15
+
16
+ /**
17
+ * Live in same package as main element - so we can access some of the shared comps!
18
+ *
19
+ * - update pslb to build print if src/print.js is there
20
+ * - update demo el
21
+ * - get configure/controller building
22
+ */
23
+
24
+ const preparePrintModel = model => {
25
+ return model;
26
+ };
27
+ class BoilerPlateItemTypePrint extends HTMLElement {
28
+ constructor() {
29
+ super();
30
+ this._options = null;
31
+ this._model = null;
32
+ this._session = [];
33
+ this._root = null;
34
+ this._rerender = (0, _lodashEs.debounce)(() => {
35
+ if (this._model && this._session) {
36
+ const printModel = preparePrintModel(this._model, this._options);
37
+ const element = this._options && /*#__PURE__*/_react.default.createElement(_main.default, {
38
+ model: printModel,
39
+ session: {}
40
+ });
41
+ if (!this._root) {
42
+ this._root = (0, _client.createRoot)(this);
43
+ }
44
+ this._root.render(element);
45
+ queueMicrotask(() => {
46
+ log('render complete - render math');
47
+ (0, _mathRendering.renderMath)(this);
48
+ });
49
+ } else {
50
+ log('skip');
51
+ }
52
+ }, 50, {
53
+ leading: false,
54
+ trailing: true
55
+ });
56
+ }
57
+ set options(o) {
58
+ this._options = o;
59
+ }
60
+ set model(s) {
61
+ this._model = s;
62
+ this._rerender();
63
+ }
64
+ connectedCallback() {}
65
+ disconnectedCallback() {
66
+ if (this._root) {
67
+ this._root.unmount();
68
+ }
69
+ }
70
+ }
71
+ exports.default = BoilerPlateItemTypePrint;
72
+ //# sourceMappingURL=print.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"print.js","names":["_react","_interopRequireDefault","require","_client","_lodashEs","_main","_mathRendering","_debug","log","debug","preparePrintModel","model","BoilerPlateItemTypePrint","HTMLElement","constructor","_options","_model","_session","_root","_rerender","debounce","printModel","element","React","createElement","Main","session","createRoot","render","queueMicrotask","renderMath","leading","trailing","options","o","s","connectedCallback","disconnectedCallback","unmount","exports","default"],"sources":["../src/print.js"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport { debounce } from 'lodash-es';\nimport Main from './main';\nimport { renderMath } from '@pie-lib/math-rendering';\nimport debug from 'debug';\n\nconst log = debug('pie-element:multiple-choice:print');\n\n/**\n * Live in same package as main element - so we can access some of the shared comps!\n *\n * - update pslb to build print if src/print.js is there\n * - update demo el\n * - get configure/controller building\n */\n\nconst preparePrintModel = (model) => {\n return model;\n};\n\nexport default class BoilerPlateItemTypePrint extends HTMLElement {\n constructor() {\n super();\n this._options = null;\n this._model = null;\n this._session = [];\n this._root = null;\n this._rerender = debounce(\n () => {\n if (this._model && this._session) {\n const printModel = preparePrintModel(this._model, this._options);\n\n const element =\n this._options &&\n React.createElement(Main, {\n model: printModel,\n session: {},\n });\n\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(element);\n queueMicrotask(() => {\n log('render complete - render math');\n renderMath(this);\n });\n } else {\n log('skip');\n }\n },\n 50,\n { leading: false, trailing: true },\n );\n }\n set options(o) {\n this._options = o;\n }\n\n set model(s) {\n this._model = s;\n this._rerender();\n }\n\n connectedCallback() {}\n\n disconnectedCallback() {\n if (this._root) {\n this._root.unmount();\n }\n }\n}\n"],"mappings":";;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,SAAA,GAAAF,OAAA;AACA,IAAAG,KAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,cAAA,GAAAJ,OAAA;AACA,IAAAK,MAAA,GAAAN,sBAAA,CAAAC,OAAA;AAEA,MAAMM,GAAG,GAAG,IAAAC,cAAK,EAAC,mCAAmC,CAAC;;AAEtD;AACA;AACA;AACA;AACA;AACA;AACA;;AAEA,MAAMC,iBAAiB,GAAIC,KAAK,IAAK;EACnC,OAAOA,KAAK;AACd,CAAC;AAEc,MAAMC,wBAAwB,SAASC,WAAW,CAAC;EAChEC,WAAWA,CAAA,EAAG;IACZ,KAAK,CAAC,CAAC;IACP,IAAI,CAACC,QAAQ,GAAG,IAAI;IACpB,IAAI,CAACC,MAAM,GAAG,IAAI;IAClB,IAAI,CAACC,QAAQ,GAAG,EAAE;IAClB,IAAI,CAACC,KAAK,GAAG,IAAI;IACjB,IAAI,CAACC,SAAS,GAAG,IAAAC,kBAAQ,EACvB,MAAM;MACJ,IAAI,IAAI,CAACJ,MAAM,IAAI,IAAI,CAACC,QAAQ,EAAE;QAChC,MAAMI,UAAU,GAAGX,iBAAiB,CAAC,IAAI,CAACM,MAAM,EAAE,IAAI,CAACD,QAAQ,CAAC;QAEhE,MAAMO,OAAO,GACX,IAAI,CAACP,QAAQ,iBACbQ,cAAK,CAACC,aAAa,CAACC,aAAI,EAAE;UACxBd,KAAK,EAAEU,UAAU;UACjBK,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC;QAEJ,IAAI,CAAC,IAAI,CAACR,KAAK,EAAE;UACf,IAAI,CAACA,KAAK,GAAG,IAAAS,kBAAU,EAAC,IAAI,CAAC;QAC/B;QACA,IAAI,CAACT,KAAK,CAACU,MAAM,CAACN,OAAO,CAAC;QAC1BO,cAAc,CAAC,MAAM;UACnBrB,GAAG,CAAC,+BAA+B,CAAC;UACpC,IAAAsB,yBAAU,EAAC,IAAI,CAAC;QAClB,CAAC,CAAC;MACJ,CAAC,MAAM;QACLtB,GAAG,CAAC,MAAM,CAAC;MACb;IACF,CAAC,EACD,EAAE,EACF;MAAEuB,OAAO,EAAE,KAAK;MAAEC,QAAQ,EAAE;IAAK,CACnC,CAAC;EACH;EACA,IAAIC,OAAOA,CAACC,CAAC,EAAE;IACb,IAAI,CAACnB,QAAQ,GAAGmB,CAAC;EACnB;EAEA,IAAIvB,KAAKA,CAACwB,CAAC,EAAE;IACX,IAAI,CAACnB,MAAM,GAAGmB,CAAC;IACf,IAAI,CAAChB,SAAS,CAAC,CAAC;EAClB;EAEAiB,iBAAiBA,CAAA,EAAG,CAAC;EAErBC,oBAAoBA,CAAA,EAAG;IACrB,IAAI,IAAI,CAACnB,KAAK,EAAE;MACd,IAAI,CAACA,KAAK,CAACoB,OAAO,CAAC,CAAC;IACtB;EACF;AACF;AAACC,OAAA,CAAAC,OAAA,GAAA5B,wBAAA","ignoreList":[]}
package/package.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
7
- "version": "7.2.2-beta.6",
7
+ "version": "7.2.2-beta.7",
8
8
  "description": "",
9
9
  "dependencies": {
10
10
  "@emotion/react": "^11.14.0",
@@ -20,7 +20,7 @@
20
20
  },
21
21
  "author": "",
22
22
  "license": "ISC",
23
- "gitHead": "c6bbb21417c58eaf8f617143437fb3ff85ae1cb4",
23
+ "gitHead": "5f941f4fe6387747a9a7465feaff7f6e54c1ed29",
24
24
  "scripts": {
25
25
  "postpublish": "../../scripts/postpublish"
26
26
  },