@pie-element/fraction-model 6.1.2-next.2 → 6.1.2

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 (85) hide show
  1. package/CHANGELOG.json +1 -0
  2. package/CHANGELOG.md +594 -0
  3. package/LICENSE.md +5 -0
  4. package/README.md +18 -0
  5. package/configure/CHANGELOG.json +1 -0
  6. package/configure/CHANGELOG.md +559 -0
  7. package/configure/lib/card-bar.js +57 -0
  8. package/configure/lib/card-bar.js.map +1 -0
  9. package/configure/lib/defaults.js +114 -0
  10. package/configure/lib/defaults.js.map +1 -0
  11. package/configure/lib/index.js +163 -0
  12. package/configure/lib/index.js.map +1 -0
  13. package/configure/lib/main.js +253 -0
  14. package/configure/lib/main.js.map +1 -0
  15. package/configure/lib/model-options.js +144 -0
  16. package/configure/lib/model-options.js.map +1 -0
  17. package/configure/lib/number-text-field.js +47 -0
  18. package/configure/lib/number-text-field.js.map +1 -0
  19. package/configure/package.json +24 -0
  20. package/controller/CHANGELOG.json +1 -0
  21. package/controller/CHANGELOG.md +484 -0
  22. package/controller/lib/defaults.js +20 -0
  23. package/controller/lib/defaults.js.map +1 -0
  24. package/controller/lib/index.js +215 -0
  25. package/controller/lib/index.js.map +1 -0
  26. package/controller/package.json +15 -0
  27. package/docs/config-schema.json +1796 -0
  28. package/docs/config-schema.json.md +1318 -0
  29. package/docs/demo/config.js +8 -0
  30. package/docs/demo/generate.js +6 -0
  31. package/docs/demo/index.html +1 -0
  32. package/docs/demo/session.js +6 -0
  33. package/docs/pie-schema.json +873 -0
  34. package/docs/pie-schema.json.md +639 -0
  35. package/lib/answer-fraction.js +109 -0
  36. package/lib/answer-fraction.js.map +1 -0
  37. package/lib/fraction-model-chart.js +279 -0
  38. package/lib/fraction-model-chart.js.map +1 -0
  39. package/lib/index.js +91 -0
  40. package/lib/index.js.map +1 -0
  41. package/lib/main.js +203 -0
  42. package/lib/main.js.map +1 -0
  43. package/package.json +19 -82
  44. package/configure.js +0 -2
  45. package/controller.js +0 -1
  46. package/dist/author/card-bar.d.ts +0 -20
  47. package/dist/author/card-bar.js +0 -40
  48. package/dist/author/defaults.d.ts +0 -113
  49. package/dist/author/defaults.js +0 -84
  50. package/dist/author/index.d.ts +0 -44
  51. package/dist/author/index.js +0 -88
  52. package/dist/author/main.d.ts +0 -25
  53. package/dist/author/main.js +0 -156
  54. package/dist/author/model-options.d.ts +0 -32
  55. package/dist/author/model-options.js +0 -85
  56. package/dist/author/number-text-field.d.ts +0 -15
  57. package/dist/author/number-text-field.js +0 -24
  58. package/dist/browser/author/index.js +0 -36733
  59. package/dist/browser/author/index.js.map +0 -1
  60. package/dist/browser/controller/index.js +0 -78
  61. package/dist/browser/controller/index.js.map +0 -1
  62. package/dist/browser/delivery/index.js +0 -2
  63. package/dist/browser/delivery-Dop7B493.js +0 -27732
  64. package/dist/browser/delivery-Dop7B493.js.map +0 -1
  65. package/dist/browser/dist-DSzihwLW.js +0 -85
  66. package/dist/browser/dist-DSzihwLW.js.map +0 -1
  67. package/dist/browser/fraction-model.css +0 -2
  68. package/dist/controller/defaults.d.ts +0 -21
  69. package/dist/controller/defaults.js +0 -13
  70. package/dist/controller/index.d.ts +0 -23
  71. package/dist/controller/index.js +0 -68
  72. package/dist/delivery/answer-fraction.d.ts +0 -27
  73. package/dist/delivery/answer-fraction.js +0 -69
  74. package/dist/delivery/fraction-model-chart.d.ts +0 -11
  75. package/dist/delivery/fraction-model-chart.js +0 -154
  76. package/dist/delivery/index.d.ts +0 -22
  77. package/dist/delivery/index.js +0 -54
  78. package/dist/delivery/main.d.ts +0 -38
  79. package/dist/delivery/main.js +0 -136
  80. package/dist/index.d.ts +0 -1
  81. package/dist/index.iife.d.ts +0 -8
  82. package/dist/index.iife.js +0 -179
  83. package/dist/index.js +0 -2
  84. package/dist/runtime-support.d.ts +0 -12
  85. package/dist/runtime-support.js +0 -12
package/lib/main.js ADDED
@@ -0,0 +1,203 @@
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.Main = 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 _answerFraction = _interopRequireDefault(require("./answer-fraction"));
13
+ var _correctAnswerToggle = _interopRequireDefault(require("@pie-lib/correct-answer-toggle"));
14
+ var _fractionModelChart = _interopRequireDefault(require("./fraction-model-chart"));
15
+ var _configUi = require("@pie-lib/config-ui");
16
+ var _renderUi = require("@pie-lib/render-ui");
17
+ var _lodashEs = require("lodash-es");
18
+ const ModelPreview = (0, _styles.styled)('div')({
19
+ padding: '16px'
20
+ });
21
+ const TitleContainer = (0, _styles.styled)('div')({
22
+ textAlign: 'center',
23
+ fontSize: '20px'
24
+ });
25
+ class Main extends _react.default.Component {
26
+ constructor(props) {
27
+ super(props);
28
+ /**
29
+ * Function to trigger when session value change for fraction model
30
+ */
31
+ (0, _defineProperty2.default)(this, "callOnSessionChange", () => {
32
+ const {
33
+ onSessionChange
34
+ } = this.props;
35
+ if (onSessionChange) {
36
+ onSessionChange(this.state.session);
37
+ }
38
+ });
39
+ /**
40
+ * Function to generate answers for preview selection
41
+ * @param {object} model contains model object for fraction model
42
+ * @returns answer model
43
+ */
44
+ (0, _defineProperty2.default)(this, "generateAnswers", model => {
45
+ const answers = {
46
+ response: []
47
+ };
48
+ if (model.allowedStudentConfig) {
49
+ answers.noOfModel = '', answers.partsPerModel = '';
50
+ }
51
+ return answers;
52
+ });
53
+ /**
54
+ * Function to trigger when answer change from preview
55
+ * @param {object} newAnswers contains updated answer model
56
+ */
57
+ (0, _defineProperty2.default)(this, "onAnswerChange", newAnswers => {
58
+ let oldSession = (0, _lodashEs.cloneDeep)(this.state.session);
59
+ let newSession = {
60
+ ...this.state.session,
61
+ answers: newAnswers
62
+ };
63
+ if (newAnswers.response.length > 0) {
64
+ this.setState({
65
+ answerChangeDialog: {
66
+ open: true,
67
+ oldSession: oldSession,
68
+ newSession: newSession,
69
+ text: 'Changing either the Number of Models or Parts per Model will remove added answer. Are you sure you want to continue?'
70
+ }
71
+ });
72
+ } else {
73
+ this.setState(state => ({
74
+ session: newSession
75
+ }), this.callOnSessionChange);
76
+ }
77
+ });
78
+ /*
79
+ * Function to toggle correct answer
80
+ * @param {boolean} show contains boolean value to show correct answer
81
+ * */
82
+ (0, _defineProperty2.default)(this, "toggleShowCorrect", show => {
83
+ this.setState({
84
+ showCorrect: show
85
+ });
86
+ });
87
+ /*
88
+ * Function to trigger when response change from preview
89
+ * @param {object} response contains updated response model
90
+ * */
91
+ (0, _defineProperty2.default)(this, "onResponseChange", response => {
92
+ this.setState(state => ({
93
+ session: {
94
+ ...state.session,
95
+ answers: {
96
+ ...state.session.answers,
97
+ response
98
+ }
99
+ }
100
+ }), this.callOnSessionChange);
101
+ });
102
+ /*
103
+ * Method to generate random key
104
+ * */
105
+ (0, _defineProperty2.default)(this, "generateRandomKey", () => {
106
+ return Math.floor(Math.random() * 10000);
107
+ });
108
+ this.state = {
109
+ session: {
110
+ ...props.session,
111
+ answers: props.session && props.session.answers || this.generateAnswers(props.model)
112
+ },
113
+ showCorrect: false,
114
+ answerChangeDialog: {
115
+ open: false,
116
+ text: ''
117
+ }
118
+ };
119
+ this.callOnSessionChange();
120
+ }
121
+ render() {
122
+ const {
123
+ model
124
+ } = this.props;
125
+ const {
126
+ showCorrect,
127
+ session,
128
+ answerChangeDialog
129
+ } = this.state;
130
+ const {
131
+ prompt,
132
+ title,
133
+ correctness = {},
134
+ extraCSSRules,
135
+ language
136
+ } = model;
137
+ const showCorrectAnswerToggle = correctness.correctness && correctness.correctness !== 'correct';
138
+ const fractionModelChartKey = this.generateRandomKey();
139
+ return /*#__PURE__*/_react.default.createElement(_renderUi.UiLayout, {
140
+ extraCSSRules: extraCSSRules
141
+ }, /*#__PURE__*/_react.default.createElement(ModelPreview, null, /*#__PURE__*/_react.default.createElement(TitleContainer, null, /*#__PURE__*/_react.default.createElement(_renderUi.PreviewPrompt, {
142
+ className: "prompt",
143
+ prompt: title,
144
+ tagName: "h3"
145
+ })), /*#__PURE__*/_react.default.createElement(_renderUi.PreviewPrompt, {
146
+ className: "prompt",
147
+ prompt: prompt,
148
+ tagName: "p"
149
+ }), /*#__PURE__*/_react.default.createElement(_correctAnswerToggle.default, {
150
+ language: language,
151
+ show: showCorrectAnswerToggle,
152
+ toggled: showCorrect,
153
+ onToggle: this.toggleShowCorrect
154
+ }), /*#__PURE__*/_react.default.createElement(_answerFraction.default, {
155
+ model: model,
156
+ showCorrect: showCorrect,
157
+ disabled: model.view,
158
+ onAnswerChange: this.onAnswerChange,
159
+ answers: session.answers
160
+ }), /*#__PURE__*/_react.default.createElement(_fractionModelChart.default, {
161
+ key: fractionModelChartKey,
162
+ disabled: model.view,
163
+ value: showCorrect ? model.correctResponse : session.answers.response,
164
+ modelType: model.modelTypeSelected,
165
+ noOfModels: showCorrect ? model.maxModelSelected : model.allowedStudentConfig ? session.answers.noOfModel : model.maxModelSelected,
166
+ partsPerModel: showCorrect ? model.partsPerModel : model.allowedStudentConfig ? session.answers.partsPerModel : model.partsPerModel,
167
+ showLabel: model.showGraphLabels,
168
+ onChange: this.onResponseChange
169
+ }), /*#__PURE__*/_react.default.createElement(_configUi.AlertDialog, {
170
+ open: answerChangeDialog.open,
171
+ title: "Warning",
172
+ text: answerChangeDialog.text,
173
+ onConfirm: () => {
174
+ let newSession = this.state.answerChangeDialog.newSession;
175
+ newSession.answers.response = [];
176
+ this.setState(() => ({
177
+ session: newSession,
178
+ answerChangeDialog: {
179
+ open: false
180
+ }
181
+ }), this.callOnSessionChange);
182
+ },
183
+ onClose: () => {
184
+ this.setState(prevState => ({
185
+ session: prevState.answerChangeDialog.oldSession,
186
+ answerChangeDialog: {
187
+ open: false
188
+ }
189
+ }), this.callOnSessionChange);
190
+ },
191
+ onConfirmText: 'OK',
192
+ onCloseText: 'Cancel'
193
+ })));
194
+ }
195
+ }
196
+ exports.Main = Main;
197
+ (0, _defineProperty2.default)(Main, "propTypes", {
198
+ model: _propTypes.default.object,
199
+ session: _propTypes.default.object,
200
+ onSessionChange: _propTypes.default.func.isRequired
201
+ });
202
+ var _default = exports.default = Main;
203
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","names":["_react","_interopRequireDefault","require","_propTypes","_styles","_answerFraction","_correctAnswerToggle","_fractionModelChart","_configUi","_renderUi","_lodashEs","ModelPreview","styled","padding","TitleContainer","textAlign","fontSize","Main","React","Component","constructor","props","_defineProperty2","default","onSessionChange","state","session","model","answers","response","allowedStudentConfig","noOfModel","partsPerModel","newAnswers","oldSession","cloneDeep","newSession","length","setState","answerChangeDialog","open","text","callOnSessionChange","show","showCorrect","Math","floor","random","generateAnswers","render","prompt","title","correctness","extraCSSRules","language","showCorrectAnswerToggle","fractionModelChartKey","generateRandomKey","createElement","UiLayout","PreviewPrompt","className","tagName","toggled","onToggle","toggleShowCorrect","disabled","view","onAnswerChange","key","value","correctResponse","modelType","modelTypeSelected","noOfModels","maxModelSelected","showLabel","showGraphLabels","onChange","onResponseChange","AlertDialog","onConfirm","onClose","prevState","onConfirmText","onCloseText","exports","PropTypes","object","func","isRequired","_default"],"sources":["../src/main.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { styled } from '@mui/material/styles';\nimport AnswerFraction from './answer-fraction';\nimport CorrectAnswerToggle from '@pie-lib/correct-answer-toggle';\nimport FractionModelChart from './fraction-model-chart';\nimport { AlertDialog } from '@pie-lib/config-ui';\nimport { PreviewPrompt, UiLayout } from '@pie-lib/render-ui';\nimport { cloneDeep } from 'lodash-es';\n\nconst ModelPreview = styled('div')({\n padding: '16px',\n});\n\nconst TitleContainer = styled('div')({\n textAlign: 'center',\n fontSize: '20px',\n});\n\nexport class Main extends React.Component {\n static propTypes = {\n model: PropTypes.object,\n session: PropTypes.object,\n onSessionChange: PropTypes.func.isRequired,\n };\n\n constructor(props) {\n super(props);\n this.state = {\n session: {\n ...props.session,\n answers: (props.session && props.session.answers) || this.generateAnswers(props.model),\n },\n showCorrect: false,\n answerChangeDialog: {\n open: false,\n text: '',\n },\n };\n this.callOnSessionChange();\n }\n\n /**\n * Function to trigger when session value change for fraction model\n */\n callOnSessionChange = () => {\n const { onSessionChange } = this.props;\n if (onSessionChange) {\n onSessionChange(this.state.session);\n }\n };\n\n /**\n * Function to generate answers for preview selection\n * @param {object} model contains model object for fraction model\n * @returns answer model\n */\n generateAnswers = (model) => {\n const answers = {\n response: [],\n };\n if (model.allowedStudentConfig) {\n (answers.noOfModel = ''), (answers.partsPerModel = '');\n }\n return answers;\n };\n\n /**\n * Function to trigger when answer change from preview\n * @param {object} newAnswers contains updated answer model\n */\n onAnswerChange = (newAnswers) => {\n let oldSession = cloneDeep(this.state.session);\n let newSession = {\n ...this.state.session,\n answers: newAnswers,\n };\n if (newAnswers.response.length > 0) {\n this.setState({\n answerChangeDialog: {\n open: true,\n oldSession: oldSession,\n newSession: newSession,\n text: 'Changing either the Number of Models or Parts per Model will remove added answer. Are you sure you want to continue?',\n },\n });\n } else {\n this.setState(\n (state) => ({\n session: newSession,\n }),\n this.callOnSessionChange,\n );\n }\n };\n\n /*\n * Function to toggle correct answer\n * @param {boolean} show contains boolean value to show correct answer\n * */\n toggleShowCorrect = (show) => {\n this.setState({ showCorrect: show });\n };\n\n /*\n * Function to trigger when response change from preview\n * @param {object} response contains updated response model\n * */\n onResponseChange = (response) => {\n this.setState(\n (state) => ({\n session: {\n ...state.session,\n answers: {\n ...state.session.answers,\n response,\n },\n },\n }),\n this.callOnSessionChange,\n );\n };\n\n /*\n * Method to generate random key\n * */\n generateRandomKey = () => {\n return Math.floor(Math.random() * 10000);\n };\n\n render() {\n const { model } = this.props;\n const { showCorrect, session, answerChangeDialog } = this.state;\n const { prompt, title, correctness = {}, extraCSSRules, language } = model;\n const showCorrectAnswerToggle = correctness.correctness && correctness.correctness !== 'correct';\n const fractionModelChartKey = this.generateRandomKey();\n\n return (\n <UiLayout extraCSSRules={extraCSSRules}>\n <ModelPreview>\n <TitleContainer>\n <PreviewPrompt className=\"prompt\" prompt={title} tagName=\"h3\" />\n </TitleContainer>\n <PreviewPrompt className=\"prompt\" prompt={prompt} tagName=\"p\" />\n\n <CorrectAnswerToggle\n language={language}\n show={showCorrectAnswerToggle}\n toggled={showCorrect}\n onToggle={this.toggleShowCorrect}\n />\n\n <AnswerFraction\n model={model}\n showCorrect={showCorrect}\n disabled={model.view}\n onAnswerChange={this.onAnswerChange}\n answers={session.answers}\n />\n\n <FractionModelChart\n key={fractionModelChartKey}\n disabled={model.view}\n value={showCorrect ? model.correctResponse : session.answers.response}\n modelType={model.modelTypeSelected}\n noOfModels={\n showCorrect\n ? model.maxModelSelected\n : model.allowedStudentConfig\n ? session.answers.noOfModel\n : model.maxModelSelected\n }\n partsPerModel={\n showCorrect\n ? model.partsPerModel\n : model.allowedStudentConfig\n ? session.answers.partsPerModel\n : model.partsPerModel\n }\n showLabel={model.showGraphLabels}\n onChange={this.onResponseChange}\n ></FractionModelChart>\n\n <AlertDialog\n open={answerChangeDialog.open}\n title=\"Warning\"\n text={answerChangeDialog.text}\n onConfirm={() => {\n let newSession = this.state.answerChangeDialog.newSession;\n newSession.answers.response = [];\n this.setState(\n () => ({\n session: newSession,\n answerChangeDialog: { open: false },\n }),\n this.callOnSessionChange,\n );\n }}\n onClose={() => {\n this.setState(\n (prevState) => ({\n session: prevState.answerChangeDialog.oldSession,\n answerChangeDialog: { open: false },\n }),\n this.callOnSessionChange,\n );\n }}\n onConfirmText={'OK'}\n onCloseText={'Cancel'}\n />\n </ModelPreview>\n </UiLayout>\n );\n }\n}\n\nexport default Main;\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,UAAA,GAAAF,sBAAA,CAAAC,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,eAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,oBAAA,GAAAL,sBAAA,CAAAC,OAAA;AACA,IAAAK,mBAAA,GAAAN,sBAAA,CAAAC,OAAA;AACA,IAAAM,SAAA,GAAAN,OAAA;AACA,IAAAO,SAAA,GAAAP,OAAA;AACA,IAAAQ,SAAA,GAAAR,OAAA;AAEA,MAAMS,YAAY,GAAG,IAAAC,cAAM,EAAC,KAAK,CAAC,CAAC;EACjCC,OAAO,EAAE;AACX,CAAC,CAAC;AAEF,MAAMC,cAAc,GAAG,IAAAF,cAAM,EAAC,KAAK,CAAC,CAAC;EACnCG,SAAS,EAAE,QAAQ;EACnBC,QAAQ,EAAE;AACZ,CAAC,CAAC;AAEK,MAAMC,IAAI,SAASC,cAAK,CAACC,SAAS,CAAC;EAOxCC,WAAWA,CAACC,KAAK,EAAE;IACjB,KAAK,CAACA,KAAK,CAAC;IAed;AACF;AACA;IAFE,IAAAC,gBAAA,CAAAC,OAAA,+BAGsB,MAAM;MAC1B,MAAM;QAAEC;MAAgB,CAAC,GAAG,IAAI,CAACH,KAAK;MACtC,IAAIG,eAAe,EAAE;QACnBA,eAAe,CAAC,IAAI,CAACC,KAAK,CAACC,OAAO,CAAC;MACrC;IACF,CAAC;IAED;AACF;AACA;AACA;AACA;IAJE,IAAAJ,gBAAA,CAAAC,OAAA,2BAKmBI,KAAK,IAAK;MAC3B,MAAMC,OAAO,GAAG;QACdC,QAAQ,EAAE;MACZ,CAAC;MACD,IAAIF,KAAK,CAACG,oBAAoB,EAAE;QAC7BF,OAAO,CAACG,SAAS,GAAG,EAAE,EAAIH,OAAO,CAACI,aAAa,GAAG,EAAG;MACxD;MACA,OAAOJ,OAAO;IAChB,CAAC;IAED;AACF;AACA;AACA;IAHE,IAAAN,gBAAA,CAAAC,OAAA,0BAIkBU,UAAU,IAAK;MAC/B,IAAIC,UAAU,GAAG,IAAAC,mBAAS,EAAC,IAAI,CAACV,KAAK,CAACC,OAAO,CAAC;MAC9C,IAAIU,UAAU,GAAG;QACf,GAAG,IAAI,CAACX,KAAK,CAACC,OAAO;QACrBE,OAAO,EAAEK;MACX,CAAC;MACD,IAAIA,UAAU,CAACJ,QAAQ,CAACQ,MAAM,GAAG,CAAC,EAAE;QAClC,IAAI,CAACC,QAAQ,CAAC;UACZC,kBAAkB,EAAE;YAClBC,IAAI,EAAE,IAAI;YACVN,UAAU,EAAEA,UAAU;YACtBE,UAAU,EAAEA,UAAU;YACtBK,IAAI,EAAE;UACR;QACF,CAAC,CAAC;MACJ,CAAC,MAAM;QACL,IAAI,CAACH,QAAQ,CACVb,KAAK,KAAM;UACVC,OAAO,EAAEU;QACX,CAAC,CAAC,EACF,IAAI,CAACM,mBACP,CAAC;MACH;IACF,CAAC;IAED;AACF;AACA;AACA;IAHE,IAAApB,gBAAA,CAAAC,OAAA,6BAIqBoB,IAAI,IAAK;MAC5B,IAAI,CAACL,QAAQ,CAAC;QAAEM,WAAW,EAAED;MAAK,CAAC,CAAC;IACtC,CAAC;IAED;AACF;AACA;AACA;IAHE,IAAArB,gBAAA,CAAAC,OAAA,4BAIoBM,QAAQ,IAAK;MAC/B,IAAI,CAACS,QAAQ,CACVb,KAAK,KAAM;QACVC,OAAO,EAAE;UACP,GAAGD,KAAK,CAACC,OAAO;UAChBE,OAAO,EAAE;YACP,GAAGH,KAAK,CAACC,OAAO,CAACE,OAAO;YACxBC;UACF;QACF;MACF,CAAC,CAAC,EACF,IAAI,CAACa,mBACP,CAAC;IACH,CAAC;IAED;AACF;AACA;IAFE,IAAApB,gBAAA,CAAAC,OAAA,6BAGoB,MAAM;MACxB,OAAOsB,IAAI,CAACC,KAAK,CAACD,IAAI,CAACE,MAAM,CAAC,CAAC,GAAG,KAAK,CAAC;IAC1C,CAAC;IApGC,IAAI,CAACtB,KAAK,GAAG;MACXC,OAAO,EAAE;QACP,GAAGL,KAAK,CAACK,OAAO;QAChBE,OAAO,EAAGP,KAAK,CAACK,OAAO,IAAIL,KAAK,CAACK,OAAO,CAACE,OAAO,IAAK,IAAI,CAACoB,eAAe,CAAC3B,KAAK,CAACM,KAAK;MACvF,CAAC;MACDiB,WAAW,EAAE,KAAK;MAClBL,kBAAkB,EAAE;QAClBC,IAAI,EAAE,KAAK;QACXC,IAAI,EAAE;MACR;IACF,CAAC;IACD,IAAI,CAACC,mBAAmB,CAAC,CAAC;EAC5B;EA0FAO,MAAMA,CAAA,EAAG;IACP,MAAM;MAAEtB;IAAM,CAAC,GAAG,IAAI,CAACN,KAAK;IAC5B,MAAM;MAAEuB,WAAW;MAAElB,OAAO;MAAEa;IAAmB,CAAC,GAAG,IAAI,CAACd,KAAK;IAC/D,MAAM;MAAEyB,MAAM;MAAEC,KAAK;MAAEC,WAAW,GAAG,CAAC,CAAC;MAAEC,aAAa;MAAEC;IAAS,CAAC,GAAG3B,KAAK;IAC1E,MAAM4B,uBAAuB,GAAGH,WAAW,CAACA,WAAW,IAAIA,WAAW,CAACA,WAAW,KAAK,SAAS;IAChG,MAAMI,qBAAqB,GAAG,IAAI,CAACC,iBAAiB,CAAC,CAAC;IAEtD,oBACEzD,MAAA,CAAAuB,OAAA,CAAAmC,aAAA,CAACjD,SAAA,CAAAkD,QAAQ;MAACN,aAAa,EAAEA;IAAc,gBACrCrD,MAAA,CAAAuB,OAAA,CAAAmC,aAAA,CAAC/C,YAAY,qBACXX,MAAA,CAAAuB,OAAA,CAAAmC,aAAA,CAAC5C,cAAc,qBACbd,MAAA,CAAAuB,OAAA,CAAAmC,aAAA,CAACjD,SAAA,CAAAmD,aAAa;MAACC,SAAS,EAAC,QAAQ;MAACX,MAAM,EAAEC,KAAM;MAACW,OAAO,EAAC;IAAI,CAAE,CACjD,CAAC,eACjB9D,MAAA,CAAAuB,OAAA,CAAAmC,aAAA,CAACjD,SAAA,CAAAmD,aAAa;MAACC,SAAS,EAAC,QAAQ;MAACX,MAAM,EAAEA,MAAO;MAACY,OAAO,EAAC;IAAG,CAAE,CAAC,eAEhE9D,MAAA,CAAAuB,OAAA,CAAAmC,aAAA,CAACpD,oBAAA,CAAAiB,OAAmB;MAClB+B,QAAQ,EAAEA,QAAS;MACnBX,IAAI,EAAEY,uBAAwB;MAC9BQ,OAAO,EAAEnB,WAAY;MACrBoB,QAAQ,EAAE,IAAI,CAACC;IAAkB,CAClC,CAAC,eAEFjE,MAAA,CAAAuB,OAAA,CAAAmC,aAAA,CAACrD,eAAA,CAAAkB,OAAc;MACbI,KAAK,EAAEA,KAAM;MACbiB,WAAW,EAAEA,WAAY;MACzBsB,QAAQ,EAAEvC,KAAK,CAACwC,IAAK;MACrBC,cAAc,EAAE,IAAI,CAACA,cAAe;MACpCxC,OAAO,EAAEF,OAAO,CAACE;IAAQ,CAC1B,CAAC,eAEF5B,MAAA,CAAAuB,OAAA,CAAAmC,aAAA,CAACnD,mBAAA,CAAAgB,OAAkB;MACjB8C,GAAG,EAAEb,qBAAsB;MAC3BU,QAAQ,EAAEvC,KAAK,CAACwC,IAAK;MACrBG,KAAK,EAAE1B,WAAW,GAAGjB,KAAK,CAAC4C,eAAe,GAAG7C,OAAO,CAACE,OAAO,CAACC,QAAS;MACtE2C,SAAS,EAAE7C,KAAK,CAAC8C,iBAAkB;MACnCC,UAAU,EACR9B,WAAW,GACPjB,KAAK,CAACgD,gBAAgB,GACtBhD,KAAK,CAACG,oBAAoB,GAC1BJ,OAAO,CAACE,OAAO,CAACG,SAAS,GACzBJ,KAAK,CAACgD,gBACX;MACD3C,aAAa,EACXY,WAAW,GACPjB,KAAK,CAACK,aAAa,GACnBL,KAAK,CAACG,oBAAoB,GAC1BJ,OAAO,CAACE,OAAO,CAACI,aAAa,GAC7BL,KAAK,CAACK,aACX;MACD4C,SAAS,EAAEjD,KAAK,CAACkD,eAAgB;MACjCC,QAAQ,EAAE,IAAI,CAACC;IAAiB,CACb,CAAC,eAEtB/E,MAAA,CAAAuB,OAAA,CAAAmC,aAAA,CAAClD,SAAA,CAAAwE,WAAW;MACVxC,IAAI,EAAED,kBAAkB,CAACC,IAAK;MAC9BW,KAAK,EAAC,SAAS;MACfV,IAAI,EAAEF,kBAAkB,CAACE,IAAK;MAC9BwC,SAAS,EAAEA,CAAA,KAAM;QACf,IAAI7C,UAAU,GAAG,IAAI,CAACX,KAAK,CAACc,kBAAkB,CAACH,UAAU;QACzDA,UAAU,CAACR,OAAO,CAACC,QAAQ,GAAG,EAAE;QAChC,IAAI,CAACS,QAAQ,CACX,OAAO;UACLZ,OAAO,EAAEU,UAAU;UACnBG,kBAAkB,EAAE;YAAEC,IAAI,EAAE;UAAM;QACpC,CAAC,CAAC,EACF,IAAI,CAACE,mBACP,CAAC;MACH,CAAE;MACFwC,OAAO,EAAEA,CAAA,KAAM;QACb,IAAI,CAAC5C,QAAQ,CACV6C,SAAS,KAAM;UACdzD,OAAO,EAAEyD,SAAS,CAAC5C,kBAAkB,CAACL,UAAU;UAChDK,kBAAkB,EAAE;YAAEC,IAAI,EAAE;UAAM;QACpC,CAAC,CAAC,EACF,IAAI,CAACE,mBACP,CAAC;MACH,CAAE;MACF0C,aAAa,EAAE,IAAK;MACpBC,WAAW,EAAE;IAAS,CACvB,CACW,CACN,CAAC;EAEf;AACF;AAACC,OAAA,CAAArE,IAAA,GAAAA,IAAA;AAAA,IAAAK,gBAAA,CAAAC,OAAA,EAnMYN,IAAI,eACI;EACjBU,KAAK,EAAE4D,kBAAS,CAACC,MAAM;EACvB9D,OAAO,EAAE6D,kBAAS,CAACC,MAAM;EACzBhE,eAAe,EAAE+D,kBAAS,CAACE,IAAI,CAACC;AAClC,CAAC;AAAA,IAAAC,QAAA,GAAAL,OAAA,CAAA/D,OAAA,GAgMYN,IAAI","ignoreList":[]}
package/package.json CHANGED
@@ -1,96 +1,33 @@
1
1
  {
2
2
  "name": "@pie-element/fraction-model",
3
- "version": "6.1.2-next.2",
3
+ "repository": "pie-framework/pie-elements",
4
+ "publishConfig": {
5
+ "access": "public"
6
+ },
7
+ "version": "6.1.2",
4
8
  "description": "",
5
9
  "dependencies": {
6
10
  "@emotion/react": "^11.14.0",
7
11
  "@emotion/style": "^0.8.0",
8
12
  "@mui/icons-material": "^7.3.4",
9
13
  "@mui/material": "^7.3.4",
10
- "@pie-lib/config-ui": "13.0.4-next.30",
11
- "@pie-lib/correct-answer-toggle": "4.0.3-next.37",
12
- "@pie-lib/render-ui": "6.1.1-next.37",
14
+ "@pie-framework/pie-player-events": "^0.1.0",
15
+ "@pie-lib/config-ui": "13.0.6",
16
+ "@pie-lib/correct-answer-toggle": "4.0.3",
17
+ "@pie-lib/math-rendering": "5.0.2",
18
+ "@pie-lib/render-ui": "6.1.1",
13
19
  "@pie-lib/test-utils": "2.0.2",
14
20
  "prop-types": "^15.8.1",
15
- "recharts": "^3.8.1",
16
- "@pie-element/shared-configure-events": "0.1.0",
17
- "@pie-lib/editable-html-tip-tap": "2.1.2-next.30",
18
- "@pie-element/shared-lodash": "0.1.1-next.0",
19
- "@pie-element/shared-player-events": "0.1.0",
20
- "@pie-element/shared-math-rendering-mathjax": "0.1.1-next.0",
21
- "react-is": "^18.3.1"
22
- },
23
- "peerDependencies": {
24
- "react": "^18.0.0",
25
- "react-dom": "^18.0.0"
26
- },
27
- "exports": {
28
- ".": {
29
- "types": "./dist/index.d.ts",
30
- "default": "./dist/index.js"
31
- },
32
- "./delivery": {
33
- "types": "./dist/delivery/index.d.ts",
34
- "default": "./dist/delivery/index.js"
35
- },
36
- "./browser/delivery": {
37
- "default": "./dist/browser/delivery/index.js"
38
- },
39
- "./author": {
40
- "types": "./dist/author/index.d.ts",
41
- "default": "./dist/author/index.js"
42
- },
43
- "./browser/author": {
44
- "default": "./dist/browser/author/index.js"
45
- },
46
- "./configure": {
47
- "types": "./dist/author/index.d.ts",
48
- "default": "./dist/author/index.js"
49
- },
50
- "./controller": {
51
- "types": "./dist/controller/index.d.ts",
52
- "default": "./dist/controller/index.js"
53
- },
54
- "./controller.js": {
55
- "types": "./dist/controller/index.d.ts",
56
- "default": "./dist/controller/index.js"
57
- },
58
- "./browser/controller": {
59
- "default": "./dist/browser/controller/index.js"
60
- },
61
- "./runtime-support": {
62
- "types": "./dist/runtime-support.d.ts",
63
- "default": "./dist/runtime-support.js"
64
- }
65
- },
66
- "type": "module",
67
- "main": "./dist/index.js",
68
- "types": "./dist/index.d.ts",
69
- "files": [
70
- "configure.js",
71
- "controller.js",
72
- "dist"
73
- ],
74
- "sideEffects": false,
75
- "devDependencies": {
76
- "vite": "^8.0.1",
77
- "typescript": "^5.9.3",
78
- "@vitejs/plugin-react": "^6.0.1",
79
- "@types/react": "^18.2.0",
80
- "@types/react-dom": "^18.2.0"
21
+ "react": "18.3.1",
22
+ "react-dom": "18.3.1",
23
+ "recharts": "2.15.1"
81
24
  },
25
+ "author": "",
26
+ "license": "ISC",
27
+ "gitHead": "206ff17a94e8e197744d059f97ad2b9a1bc9145d",
82
28
  "scripts": {
83
- "build": "bun x vite build && bun x vite build --config ../../../tools/vite/element-browser.config.ts && bun x vite build --config vite.config.iife.ts && bun x tsc --emitDeclarationOnly",
84
- "dev": "bun x vite",
85
- "demo": "bun x vite --mode demo",
86
- "test": "bun x vitest run"
29
+ "postpublish": "../../scripts/postpublish"
87
30
  },
88
- "pie": {
89
- "controller": "@pie-element/fraction-model/controller",
90
- "configure": "@pie-element/fraction-model/configure",
91
- "browserSharedDependencies": {
92
- "react": "18.2.0",
93
- "react-dom": "18.2.0"
94
- }
95
- }
31
+ "main": "lib/index.js",
32
+ "module": "src/index.js"
96
33
  }
package/configure.js DELETED
@@ -1,2 +0,0 @@
1
- export { default } from './dist/author/index.js';
2
- export * from './dist/author/index.js';
package/controller.js DELETED
@@ -1 +0,0 @@
1
- export * from './dist/controller/index.js';
@@ -1,20 +0,0 @@
1
- /**
2
- * @synced-from pie-elements/packages/fraction-model/configure/src/card-bar.jsx
3
- * @auto-generated
4
- *
5
- * This file is automatically synced from pie-elements and converted to TypeScript.
6
- * Manual edits will be overwritten on next sync.
7
- * To make changes, edit the upstream JavaScript file and run sync again.
8
- */
9
- import React from 'react';
10
- import PropTypes from 'prop-types';
11
- declare const CardBar: {
12
- (props: any): React.JSX.Element;
13
- propTypes: {
14
- mini: PropTypes.Requireable<boolean>;
15
- header: PropTypes.Requireable<string>;
16
- children: PropTypes.Requireable<PropTypes.ReactNodeLike>;
17
- info: PropTypes.Requireable<any>;
18
- };
19
- };
20
- export default CardBar;
@@ -1,40 +0,0 @@
1
- import "react";
2
- import e from "prop-types";
3
- import { styled as t } from "@mui/material/styles";
4
- import { jsx as n, jsxs as r } from "react/jsx-runtime";
5
- import i from "@mui/material/Tooltip";
6
- import a from "@mui/icons-material/HelpOutline";
7
- import o from "@mui/material/IconButton";
8
- import s from "@mui/material/Typography";
9
- //#region src/author/card-bar.tsx
10
- var c = t("div")({
11
- display: "flex",
12
- justifyContent: "space-between"
13
- }), l = t("div")({
14
- display: "flex",
15
- alignItems: "center"
16
- }), u = t(o)({
17
- margin: 0,
18
- padding: 0
19
- }), d = t(i)(({ theme: e }) => ({ "& .MuiTooltip-tooltip": { fontSize: e.typography.fontSize - 2 } })), f = (e) => {
20
- let { header: t, children: i, mini: o, info: f } = e;
21
- return /* @__PURE__ */ r(c, { children: [/* @__PURE__ */ r(l, { children: [/* @__PURE__ */ n(s, {
22
- variant: o ? "h6" : "h5",
23
- children: t
24
- }), f] }), i && /* @__PURE__ */ n(d, {
25
- title: i,
26
- children: /* @__PURE__ */ n(u, {
27
- "aria-label": "Delete",
28
- size: "large",
29
- children: /* @__PURE__ */ n(a, {})
30
- })
31
- })] });
32
- };
33
- f.propTypes = {
34
- mini: e.bool,
35
- header: e.string,
36
- children: e.node,
37
- info: e.any
38
- };
39
- //#endregion
40
- export { f as default };
@@ -1,113 +0,0 @@
1
- /**
2
- * @synced-from pie-elements/packages/fraction-model/configure/src/defaults.js
3
- * @auto-generated
4
- *
5
- * This file is automatically synced from pie-elements and converted to TypeScript.
6
- * Manual edits will be overwritten on next sync.
7
- * To make changes, edit the upstream JavaScript file and run sync again.
8
- */
9
- declare const _default: {
10
- model: {
11
- correctResponse: never[];
12
- title: string;
13
- prompt: string;
14
- modelTypeSelected: string;
15
- maxModelSelected: number;
16
- partsPerModel: number;
17
- allowedStudentConfig: boolean;
18
- showGraphLabels: boolean;
19
- };
20
- configuration: {
21
- baseInputConfiguration: {
22
- h3: {
23
- disabled: boolean;
24
- };
25
- audio: {
26
- disabled: boolean;
27
- };
28
- video: {
29
- disabled: boolean;
30
- };
31
- image: {
32
- disabled: boolean;
33
- };
34
- textAlign: {
35
- disabled: boolean;
36
- };
37
- showParagraphs: {
38
- disabled: boolean;
39
- };
40
- separateParagraphs: {
41
- disabled: boolean;
42
- };
43
- };
44
- title: {
45
- label: string;
46
- settings: boolean;
47
- enabled: boolean;
48
- inputConfiguration: {
49
- audio: {
50
- disabled: boolean;
51
- };
52
- video: {
53
- disabled: boolean;
54
- };
55
- image: {
56
- disabled: boolean;
57
- };
58
- };
59
- };
60
- prompt: {
61
- label: string;
62
- settings: boolean;
63
- enabled: boolean;
64
- inputConfiguration: {
65
- audio: {
66
- disabled: boolean;
67
- };
68
- video: {
69
- disabled: boolean;
70
- };
71
- image: {
72
- disabled: boolean;
73
- };
74
- };
75
- };
76
- modelOptions: {
77
- maxOfModel: {
78
- min: number;
79
- max: number;
80
- default: number;
81
- };
82
- partsPerModel: {
83
- min: number;
84
- max: number;
85
- default: number;
86
- };
87
- modelTypeChoices: {
88
- value: string;
89
- label: string;
90
- }[];
91
- };
92
- mathMlOptions: {
93
- mmlOutput: boolean;
94
- mmlEditing: boolean;
95
- };
96
- language: {
97
- settings: boolean;
98
- label: string;
99
- enabled: boolean;
100
- };
101
- languageChoices: {
102
- label: string;
103
- options: never[];
104
- };
105
- spellCheck: {
106
- label: string;
107
- settings: boolean;
108
- enabled: boolean;
109
- };
110
- settingsPanelDisabled: boolean;
111
- };
112
- };
113
- export default _default;
@@ -1,84 +0,0 @@
1
- //#region src/author/defaults.ts
2
- var e = {
3
- model: {
4
- correctResponse: [],
5
- title: "",
6
- prompt: "",
7
- modelTypeSelected: "bar",
8
- maxModelSelected: 1,
9
- partsPerModel: 5,
10
- allowedStudentConfig: !1,
11
- showGraphLabels: !1
12
- },
13
- configuration: {
14
- baseInputConfiguration: {
15
- h3: { disabled: !0 },
16
- audio: { disabled: !1 },
17
- video: { disabled: !1 },
18
- image: { disabled: !1 },
19
- textAlign: { disabled: !0 },
20
- showParagraphs: { disabled: !1 },
21
- separateParagraphs: { disabled: !0 }
22
- },
23
- title: {
24
- label: "Title",
25
- settings: !0,
26
- enabled: !0,
27
- inputConfiguration: {
28
- audio: { disabled: !1 },
29
- video: { disabled: !1 },
30
- image: { disabled: !1 }
31
- }
32
- },
33
- prompt: {
34
- label: "Question",
35
- settings: !0,
36
- enabled: !0,
37
- inputConfiguration: {
38
- audio: { disabled: !1 },
39
- video: { disabled: !1 },
40
- image: { disabled: !1 }
41
- }
42
- },
43
- modelOptions: {
44
- maxOfModel: {
45
- min: 1,
46
- max: 9,
47
- default: 1
48
- },
49
- partsPerModel: {
50
- min: 1,
51
- max: 9,
52
- default: 5
53
- },
54
- modelTypeChoices: [{
55
- value: "bar",
56
- label: "Bar"
57
- }, {
58
- value: "pie",
59
- label: "Pie"
60
- }]
61
- },
62
- mathMlOptions: {
63
- mmlOutput: !1,
64
- mmlEditing: !1
65
- },
66
- language: {
67
- settings: !1,
68
- label: "Specify Language",
69
- enabled: !1
70
- },
71
- languageChoices: {
72
- label: "Language Choices",
73
- options: []
74
- },
75
- spellCheck: {
76
- label: "Spellcheck",
77
- settings: !1,
78
- enabled: !0
79
- },
80
- settingsPanelDisabled: !0
81
- }
82
- };
83
- //#endregion
84
- export { e as default };
@@ -1,44 +0,0 @@
1
- /**
2
- * @synced-from pie-elements/packages/fraction-model/configure/src/index.js
3
- * @auto-generated
4
- *
5
- * This file is automatically synced from pie-elements and converted to TypeScript.
6
- * Manual edits will be overwritten on next sync.
7
- * To make changes, edit the upstream JavaScript file and run sync again.
8
- */
9
- export default class FractionModelConfigure extends HTMLElement {
10
- /**
11
- * This function makes sure you set the default values on the model
12
- * @param model
13
- * @returns model
14
- */
15
- static createDefaultModel: (model?: {}) => {
16
- language: any;
17
- correctResponse: never[];
18
- title: string;
19
- prompt: string;
20
- modelTypeSelected: string;
21
- maxModelSelected: number;
22
- partsPerModel: number;
23
- allowedStudentConfig: boolean;
24
- showGraphLabels: boolean;
25
- };
26
- constructor();
27
- set model(m: any);
28
- set configuration(c: any);
29
- resetModelAfterConfigurationIsSet: any;
30
- connectedCallback(): void;
31
- modelChanged(m: any): void;
32
- onChange: any;
33
- onConfigurationChanged(c: any): void;
34
- /**
35
- *
36
- * @param {done, progress, file} handler
37
- */
38
- insertImage(handler: any): void;
39
- onDeleteImage(src: any, done: any): void;
40
- insertSound(handler: any): void;
41
- onDeleteSound(src: any, done: any): void;
42
- render(): void;
43
- disconnectedCallback(): void;
44
- }