@pie-element/fraction-model 6.1.1-next.0 → 6.1.1-next.29

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 (180) hide show
  1. package/CHANGELOG.json +1 -0
  2. package/CHANGELOG.md +584 -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 +549 -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 +476 -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 +21 -57
  44. package/dist/author/card-bar.d.ts +0 -20
  45. package/dist/author/card-bar.js +0 -40
  46. package/dist/author/defaults.d.ts +0 -113
  47. package/dist/author/defaults.js +0 -84
  48. package/dist/author/index.d.ts +0 -44
  49. package/dist/author/index.js +0 -88
  50. package/dist/author/main.d.ts +0 -25
  51. package/dist/author/main.js +0 -156
  52. package/dist/author/model-options.d.ts +0 -32
  53. package/dist/author/model-options.js +0 -85
  54. package/dist/author/number-text-field.d.ts +0 -15
  55. package/dist/author/number-text-field.js +0 -24
  56. package/dist/controller/defaults.d.ts +0 -21
  57. package/dist/controller/defaults.js +0 -13
  58. package/dist/controller/index.d.ts +0 -23
  59. package/dist/controller/index.js +0 -68
  60. package/dist/delivery/answer-fraction.d.ts +0 -27
  61. package/dist/delivery/answer-fraction.js +0 -69
  62. package/dist/delivery/fraction-model-chart.d.ts +0 -11
  63. package/dist/delivery/fraction-model-chart.js +0 -154
  64. package/dist/delivery/index.d.ts +0 -22
  65. package/dist/delivery/index.js +0 -54
  66. package/dist/delivery/main.d.ts +0 -38
  67. package/dist/delivery/main.js +0 -136
  68. package/dist/index.d.ts +0 -1
  69. package/dist/index.iife.d.ts +0 -8
  70. package/dist/index.iife.js +0 -179
  71. package/dist/index.js +0 -2
  72. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_DataView.js +0 -6
  73. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Hash.js +0 -16
  74. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_ListCache.js +0 -16
  75. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Map.js +0 -6
  76. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_MapCache.js +0 -16
  77. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Promise.js +0 -6
  78. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Set.js +0 -6
  79. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Stack.js +0 -14
  80. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Symbol.js +0 -5
  81. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Uint8Array.js +0 -5
  82. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_WeakMap.js +0 -6
  83. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayEach.js +0 -7
  84. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayFilter.js +0 -10
  85. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayLikeKeys.js +0 -15
  86. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayPush.js +0 -7
  87. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_assignValue.js +0 -10
  88. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_assocIndexOf.js +0 -8
  89. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseAssign.js +0 -8
  90. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseAssignIn.js +0 -8
  91. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseAssignValue.js +0 -12
  92. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseClone.js +0 -57
  93. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseCreate.js +0 -14
  94. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseGetAllKeys.js +0 -9
  95. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseGetTag.js +0 -10
  96. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsArguments.js +0 -9
  97. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsMap.js +0 -9
  98. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsNative.js +0 -11
  99. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsSet.js +0 -9
  100. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsTypedArray.js +0 -11
  101. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseKeys.js +0 -12
  102. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseKeysIn.js +0 -13
  103. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseTimes.js +0 -7
  104. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseUnary.js +0 -8
  105. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneArrayBuffer.js +0 -8
  106. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneBuffer.js +0 -10
  107. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneDataView.js +0 -8
  108. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneRegExp.js +0 -8
  109. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneSymbol.js +0 -8
  110. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneTypedArray.js +0 -8
  111. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_copyArray.js +0 -8
  112. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_copyObject.js +0 -14
  113. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_copySymbols.js +0 -8
  114. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_copySymbolsIn.js +0 -8
  115. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_coreJsData.js +0 -5
  116. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_defineProperty.js +0 -10
  117. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_freeGlobal.js +0 -4
  118. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getAllKeys.js +0 -9
  119. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getAllKeysIn.js +0 -9
  120. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getMapData.js +0 -8
  121. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getNative.js +0 -9
  122. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getPrototype.js +0 -5
  123. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getRawTag.js +0 -14
  124. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getSymbols.js +0 -10
  125. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getSymbolsIn.js +0 -11
  126. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getTag.js +0 -23
  127. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getValue.js +0 -6
  128. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashClear.js +0 -7
  129. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashDelete.js +0 -7
  130. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashGet.js +0 -13
  131. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashHas.js +0 -9
  132. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashSet.js +0 -9
  133. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_initCloneArray.js +0 -8
  134. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_initCloneByTag.js +0 -33
  135. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_initCloneObject.js +0 -9
  136. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isIndex.js +0 -8
  137. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isKeyable.js +0 -7
  138. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isMasked.js +0 -11
  139. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isPrototype.js +0 -8
  140. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheClear.js +0 -6
  141. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheDelete.js +0 -9
  142. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheGet.js +0 -8
  143. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheHas.js +0 -7
  144. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheSet.js +0 -8
  145. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheClear.js +0 -13
  146. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheDelete.js +0 -8
  147. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheGet.js +0 -7
  148. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheHas.js +0 -7
  149. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheSet.js +0 -8
  150. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nativeCreate.js +0 -5
  151. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nativeKeys.js +0 -5
  152. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nativeKeysIn.js +0 -8
  153. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nodeUtil.js +0 -9
  154. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_objectToString.js +0 -7
  155. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_overArg.js +0 -8
  156. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_root.js +0 -5
  157. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackClear.js +0 -7
  158. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackDelete.js +0 -7
  159. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackGet.js +0 -6
  160. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackHas.js +0 -6
  161. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackSet.js +0 -16
  162. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_toSource.js +0 -15
  163. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/cloneDeep.js +0 -8
  164. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/eq.js +0 -6
  165. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isArguments.js +0 -10
  166. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isArray.js +0 -4
  167. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isArrayLike.js +0 -8
  168. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isBuffer.js +0 -6
  169. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isEmpty.js +0 -21
  170. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isFunction.js +0 -11
  171. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isLength.js +0 -7
  172. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isMap.js +0 -7
  173. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isObject.js +0 -7
  174. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isObjectLike.js +0 -6
  175. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isSet.js +0 -7
  176. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isTypedArray.js +0 -7
  177. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/keys.js +0 -9
  178. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/keysIn.js +0 -9
  179. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/stubArray.js +0 -6
  180. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/stubFalse.js +0 -6
@@ -0,0 +1,114 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _default = exports.default = {
8
+ model: {
9
+ correctResponse: [],
10
+ title: '',
11
+ prompt: '',
12
+ modelTypeSelected: 'bar',
13
+ maxModelSelected: 1,
14
+ partsPerModel: 5,
15
+ allowedStudentConfig: false,
16
+ showGraphLabels: false
17
+ },
18
+ configuration: {
19
+ baseInputConfiguration: {
20
+ h3: {
21
+ disabled: true
22
+ },
23
+ audio: {
24
+ disabled: false
25
+ },
26
+ video: {
27
+ disabled: false
28
+ },
29
+ image: {
30
+ disabled: false
31
+ },
32
+ textAlign: {
33
+ disabled: true
34
+ },
35
+ showParagraphs: {
36
+ disabled: false
37
+ },
38
+ separateParagraphs: {
39
+ disabled: true
40
+ }
41
+ },
42
+ title: {
43
+ label: 'Title',
44
+ settings: true,
45
+ enabled: true,
46
+ inputConfiguration: {
47
+ audio: {
48
+ disabled: false
49
+ },
50
+ video: {
51
+ disabled: false
52
+ },
53
+ image: {
54
+ disabled: false
55
+ }
56
+ }
57
+ },
58
+ prompt: {
59
+ label: 'Question',
60
+ settings: true,
61
+ enabled: true,
62
+ inputConfiguration: {
63
+ audio: {
64
+ disabled: false
65
+ },
66
+ video: {
67
+ disabled: false
68
+ },
69
+ image: {
70
+ disabled: false
71
+ }
72
+ }
73
+ },
74
+ modelOptions: {
75
+ maxOfModel: {
76
+ min: 1,
77
+ max: 9,
78
+ default: 1
79
+ },
80
+ partsPerModel: {
81
+ min: 1,
82
+ max: 9,
83
+ default: 5
84
+ },
85
+ modelTypeChoices: [{
86
+ value: 'bar',
87
+ label: 'Bar'
88
+ }, {
89
+ value: 'pie',
90
+ label: 'Pie'
91
+ }]
92
+ },
93
+ mathMlOptions: {
94
+ mmlOutput: false,
95
+ mmlEditing: false
96
+ },
97
+ language: {
98
+ settings: false,
99
+ label: 'Specify Language',
100
+ enabled: false
101
+ },
102
+ languageChoices: {
103
+ label: 'Language Choices',
104
+ options: []
105
+ },
106
+ spellCheck: {
107
+ label: 'Spellcheck',
108
+ settings: false,
109
+ enabled: true
110
+ },
111
+ settingsPanelDisabled: true
112
+ }
113
+ };
114
+ //# sourceMappingURL=defaults.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"defaults.js","names":["model","correctResponse","title","prompt","modelTypeSelected","maxModelSelected","partsPerModel","allowedStudentConfig","showGraphLabels","configuration","baseInputConfiguration","h3","disabled","audio","video","image","textAlign","showParagraphs","separateParagraphs","label","settings","enabled","inputConfiguration","modelOptions","maxOfModel","min","max","default","modelTypeChoices","value","mathMlOptions","mmlOutput","mmlEditing","language","languageChoices","options","spellCheck","settingsPanelDisabled"],"sources":["../src/defaults.js"],"sourcesContent":["export default {\n model: {\n correctResponse: [],\n title: '',\n prompt: '',\n modelTypeSelected: 'bar',\n maxModelSelected: 1,\n partsPerModel: 5,\n allowedStudentConfig: false,\n showGraphLabels: false,\n },\n configuration: {\n baseInputConfiguration: {\n h3: { disabled: true },\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n textAlign: { disabled: true },\n showParagraphs: { disabled: false },\n separateParagraphs: { disabled: true },\n },\n title: {\n label: 'Title',\n settings: true,\n enabled: true,\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n },\n prompt: {\n label: 'Question',\n settings: true,\n enabled: true,\n inputConfiguration: {\n audio: { disabled: false },\n video: { disabled: false },\n image: { disabled: false },\n },\n },\n modelOptions: {\n maxOfModel: {\n min: 1,\n max: 9,\n default: 1,\n },\n partsPerModel: {\n min: 1,\n max: 9,\n default: 5,\n },\n modelTypeChoices: [\n { value: 'bar', label: 'Bar' },\n { value: 'pie', label: 'Pie' },\n ],\n },\n mathMlOptions: {\n mmlOutput: false,\n mmlEditing: false,\n },\n language: {\n settings: false,\n label: 'Specify Language',\n enabled: false,\n },\n languageChoices: {\n label: 'Language Choices',\n options: [],\n },\n spellCheck: {\n label: 'Spellcheck',\n settings: false,\n enabled: true,\n },\n settingsPanelDisabled: true,\n },\n};\n"],"mappings":";;;;;;iCAAe;EACbA,KAAK,EAAE;IACLC,eAAe,EAAE,EAAE;IACnBC,KAAK,EAAE,EAAE;IACTC,MAAM,EAAE,EAAE;IACVC,iBAAiB,EAAE,KAAK;IACxBC,gBAAgB,EAAE,CAAC;IACnBC,aAAa,EAAE,CAAC;IAChBC,oBAAoB,EAAE,KAAK;IAC3BC,eAAe,EAAE;EACnB,CAAC;EACDC,aAAa,EAAE;IACbC,sBAAsB,EAAE;MACtBC,EAAE,EAAE;QAAEC,QAAQ,EAAE;MAAK,CAAC;MACtBC,KAAK,EAAE;QAAED,QAAQ,EAAE;MAAM,CAAC;MAC1BE,KAAK,EAAE;QAAEF,QAAQ,EAAE;MAAM,CAAC;MAC1BG,KAAK,EAAE;QAAEH,QAAQ,EAAE;MAAM,CAAC;MAC1BI,SAAS,EAAE;QAAEJ,QAAQ,EAAE;MAAK,CAAC;MAC7BK,cAAc,EAAE;QAAEL,QAAQ,EAAE;MAAM,CAAC;MACnCM,kBAAkB,EAAE;QAAEN,QAAQ,EAAE;MAAK;IACvC,CAAC;IACDV,KAAK,EAAE;MACLiB,KAAK,EAAE,OAAO;MACdC,QAAQ,EAAE,IAAI;MACdC,OAAO,EAAE,IAAI;MACbC,kBAAkB,EAAE;QAClBT,KAAK,EAAE;UAAED,QAAQ,EAAE;QAAM,CAAC;QAC1BE,KAAK,EAAE;UAAEF,QAAQ,EAAE;QAAM,CAAC;QAC1BG,KAAK,EAAE;UAAEH,QAAQ,EAAE;QAAM;MAC3B;IACF,CAAC;IACDT,MAAM,EAAE;MACNgB,KAAK,EAAE,UAAU;MACjBC,QAAQ,EAAE,IAAI;MACdC,OAAO,EAAE,IAAI;MACbC,kBAAkB,EAAE;QAClBT,KAAK,EAAE;UAAED,QAAQ,EAAE;QAAM,CAAC;QAC1BE,KAAK,EAAE;UAAEF,QAAQ,EAAE;QAAM,CAAC;QAC1BG,KAAK,EAAE;UAAEH,QAAQ,EAAE;QAAM;MAC3B;IACF,CAAC;IACDW,YAAY,EAAE;MACZC,UAAU,EAAE;QACVC,GAAG,EAAE,CAAC;QACNC,GAAG,EAAE,CAAC;QACNC,OAAO,EAAE;MACX,CAAC;MACDrB,aAAa,EAAE;QACbmB,GAAG,EAAE,CAAC;QACNC,GAAG,EAAE,CAAC;QACNC,OAAO,EAAE;MACX,CAAC;MACDC,gBAAgB,EAAE,CAChB;QAAEC,KAAK,EAAE,KAAK;QAAEV,KAAK,EAAE;MAAM,CAAC,EAC9B;QAAEU,KAAK,EAAE,KAAK;QAAEV,KAAK,EAAE;MAAM,CAAC;IAElC,CAAC;IACDW,aAAa,EAAE;MACbC,SAAS,EAAE,KAAK;MAChBC,UAAU,EAAE;IACd,CAAC;IACDC,QAAQ,EAAE;MACRb,QAAQ,EAAE,KAAK;MACfD,KAAK,EAAE,kBAAkB;MACzBE,OAAO,EAAE;IACX,CAAC;IACDa,eAAe,EAAE;MACff,KAAK,EAAE,kBAAkB;MACzBgB,OAAO,EAAE;IACX,CAAC;IACDC,UAAU,EAAE;MACVjB,KAAK,EAAE,YAAY;MACnBC,QAAQ,EAAE,KAAK;MACfC,OAAO,EAAE;IACX,CAAC;IACDgB,qBAAqB,EAAE;EACzB;AACF,CAAC","ignoreList":[]}
@@ -0,0 +1,163 @@
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 _main = _interopRequireDefault(require("./main"));
12
+ var _pieConfigureEvents = require("@pie-framework/pie-configure-events");
13
+ var _defaults = _interopRequireDefault(require("./defaults"));
14
+ class FractionModelConfigure extends HTMLElement {
15
+ constructor() {
16
+ super();
17
+ (0, _defineProperty2.default)(this, "resetModelAfterConfigurationIsSet", () => {
18
+ // In environments that use pie-player-components, model is set before configuration.
19
+ // This is the reason why sometimes the model gets altered non-reversible
20
+ // (altered using default configuration instead of client configuration, because at that point client configuration was not set yet)
21
+ // Therefore, in such environments, we will make sure to keep a modelCopy (initialised in set model) and use it to reset
22
+ // the model in set configuration (resetModelAfterConfigurationIsSet) if set configuration is ever called
23
+ const pieAuthors = document.querySelectorAll('pie-author');
24
+ this.hasPlayerAsParent = Array.from(pieAuthors).some(author => author.contains(this));
25
+ if (this.hasPlayerAsParent) {
26
+ if (this._modelCopy) {
27
+ this._model = this._modelCopy;
28
+ } else {
29
+ delete this._modelCopy;
30
+ }
31
+ }
32
+ });
33
+ (0, _defineProperty2.default)(this, "onChange", o => {
34
+ this._model = {
35
+ ...this._model,
36
+ ...o
37
+ };
38
+ this.dispatchEvent(new _pieConfigureEvents.ModelUpdatedEvent(this._model));
39
+ this.render();
40
+ });
41
+ this._root = null;
42
+ this._model = FractionModelConfigure.createDefaultModel();
43
+ this._configuration = _defaults.default.configuration;
44
+ }
45
+ set model(m) {
46
+ this._model = FractionModelConfigure.createDefaultModel(m);
47
+ this.render();
48
+ }
49
+ set configuration(c) {
50
+ const newConfiguration = {
51
+ ..._defaults.default.configuration,
52
+ ...c
53
+ };
54
+ this._configuration = newConfiguration;
55
+ this.resetModelAfterConfigurationIsSet();
56
+
57
+ // if language:enabled is true, then the corresponding default item model should include a language value;
58
+ // if it is false, then the language field should be omitted from the item model.
59
+ // if a default item model includes a language value (e.g., en_US) and the corresponding authoring view settings have language:settings = true,
60
+ // then (a) language:enabled should also be true, and (b) that default language value should be represented in languageChoices[] (as a key).
61
+ if (newConfiguration?.language?.enabled) {
62
+ if (newConfiguration?.languageChoices?.options?.length) {
63
+ this._model.language = newConfiguration?.languageChoices.options[0].value;
64
+ }
65
+ } else if (newConfiguration.language.settings && this._model.language) {
66
+ this._configuration.language.enabled = true;
67
+ if (!this._configuration.languageChoices.options || !this._configuration.languageChoices.options.length) {
68
+ this._configuration.languageChoices.options = [];
69
+ }
70
+
71
+ // check if the language is already included in the languageChoices.options array
72
+ // and if not, then add it.
73
+ if (!this._configuration.languageChoices.options.find(option => option.value === this._model.language)) {
74
+ this._configuration.languageChoices.options.push({
75
+ value: this._model.language,
76
+ label: this._model.language
77
+ });
78
+ }
79
+ } else {
80
+ delete this._model.language;
81
+ }
82
+ this.render();
83
+ }
84
+ connectedCallback() {
85
+ this.render();
86
+ }
87
+ modelChanged(m) {
88
+ this._model = m;
89
+ this.dispatchEvent(new _pieConfigureEvents.ModelUpdatedEvent(this._model), true);
90
+ this.render();
91
+ }
92
+ onConfigurationChanged(c) {
93
+ this._configuration = c;
94
+ this.render();
95
+ }
96
+
97
+ /**
98
+ *
99
+ * @param {done, progress, file} handler
100
+ */
101
+ insertImage(handler) {
102
+ this.dispatchEvent(new _pieConfigureEvents.InsertImageEvent(handler));
103
+ }
104
+ onDeleteImage(src, done) {
105
+ this.dispatchEvent(new _pieConfigureEvents.DeleteImageEvent(src, done));
106
+ }
107
+ insertSound(handler) {
108
+ this.dispatchEvent(new _pieConfigureEvents.InsertSoundEvent(handler));
109
+ }
110
+ onDeleteSound(src, done) {
111
+ this.dispatchEvent(new _pieConfigureEvents.DeleteSoundEvent(src, done));
112
+ }
113
+ render() {
114
+ if (this._model) {
115
+ const el = /*#__PURE__*/_react.default.createElement(_main.default, {
116
+ classes: {},
117
+ model: this._model,
118
+ configuration: this._configuration,
119
+ onConfigurationChanged: this.onConfigurationChanged,
120
+ onChange: this.onChange,
121
+ imageSupport: {
122
+ add: this.insertImage.bind(this),
123
+ delete: this.onDeleteImage.bind(this)
124
+ },
125
+ uploadSoundSupport: {
126
+ add: this.insertSound.bind(this),
127
+ delete: this.onDeleteSound.bind(this)
128
+ }
129
+ });
130
+ if (!this._root) {
131
+ this._root = (0, _client.createRoot)(this);
132
+ }
133
+ this._root.render(el);
134
+ }
135
+ }
136
+ disconnectedCallback() {
137
+ if (this._root) {
138
+ this._root.unmount();
139
+ }
140
+ }
141
+ }
142
+ exports.default = FractionModelConfigure;
143
+ /**
144
+ * This function makes sure you set the default values on the model
145
+ * @param model
146
+ * @returns model
147
+ */
148
+ (0, _defineProperty2.default)(FractionModelConfigure, "createDefaultModel", (model = {}) => {
149
+ const c = _defaults.default.configuration;
150
+ let language = model.language || '';
151
+ if (!language && c.language && c.language.enabled) {
152
+ if (c.languageChoices?.options?.length) {
153
+ language = c.languageChoices.options[0].value;
154
+ }
155
+ }
156
+ const normalizedModel = {
157
+ ..._defaults.default.model,
158
+ ...model,
159
+ language
160
+ };
161
+ return normalizedModel;
162
+ });
163
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","names":["_react","_interopRequireDefault","require","_client","_main","_pieConfigureEvents","_defaults","FractionModelConfigure","HTMLElement","constructor","_defineProperty2","default","pieAuthors","document","querySelectorAll","hasPlayerAsParent","Array","from","some","author","contains","_modelCopy","_model","o","dispatchEvent","ModelUpdatedEvent","render","_root","createDefaultModel","_configuration","defaultValues","configuration","model","m","c","newConfiguration","resetModelAfterConfigurationIsSet","language","enabled","languageChoices","options","length","value","settings","find","option","push","label","connectedCallback","modelChanged","onConfigurationChanged","insertImage","handler","InsertImageEvent","onDeleteImage","src","done","DeleteImageEvent","insertSound","InsertSoundEvent","onDeleteSound","DeleteSoundEvent","el","React","createElement","Main","classes","onChange","imageSupport","add","bind","delete","uploadSoundSupport","createRoot","disconnectedCallback","unmount","exports","normalizedModel"],"sources":["../src/index.js"],"sourcesContent":["import React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport Main from './main';\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 FractionModelConfigure 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 const c = defaultValues.configuration;\n let language = model.language || '';\n\n if (!language && c.language && c.language.enabled) {\n if (c.languageChoices?.options?.length) {\n language = c.languageChoices.options[0].value;\n }\n }\n\n const normalizedModel = {\n ...defaultValues.model,\n ...model,\n language,\n };\n\n return normalizedModel;\n };\n\n constructor() {\n super();\n this._root = null;\n this._model = FractionModelConfigure.createDefaultModel();\n this._configuration = defaultValues.configuration;\n }\n\n set model(m) {\n this._model = FractionModelConfigure.createDefaultModel(m);\n this.render();\n }\n\n set configuration(c) {\n const newConfiguration = {\n ...defaultValues.configuration,\n ...c,\n };\n this._configuration = newConfiguration;\n\n this.resetModelAfterConfigurationIsSet();\n\n // if language:enabled is true, then the corresponding default item model should include a language value;\n // if it is false, then the language field should be omitted from the item model.\n // if a default item model includes a language value (e.g., en_US) and the corresponding authoring view settings have language:settings = true,\n // then (a) language:enabled should also be true, and (b) that default language value should be represented in languageChoices[] (as a key).\n if (newConfiguration?.language?.enabled) {\n if (newConfiguration?.languageChoices?.options?.length) {\n this._model.language = newConfiguration?.languageChoices.options[0].value;\n }\n } else if (newConfiguration.language.settings && this._model.language) {\n this._configuration.language.enabled = true;\n\n if (!this._configuration.languageChoices.options || !this._configuration.languageChoices.options.length) {\n this._configuration.languageChoices.options = [];\n }\n\n // check if the language is already included in the languageChoices.options array\n // and if not, then add it.\n if (!this._configuration.languageChoices.options.find((option) => option.value === this._model.language)) {\n this._configuration.languageChoices.options.push({\n value: this._model.language,\n label: this._model.language,\n });\n }\n } else {\n delete this._model.language;\n }\n this.render();\n }\n\n resetModelAfterConfigurationIsSet = () => {\n // In environments that use pie-player-components, model is set before configuration.\n // This is the reason why sometimes the model gets altered non-reversible\n // (altered using default configuration instead of client configuration, because at that point client configuration was not set yet)\n // Therefore, in such environments, we will make sure to keep a modelCopy (initialised in set model) and use it to reset\n // the model in set configuration (resetModelAfterConfigurationIsSet) if set configuration is ever called\n const pieAuthors = document.querySelectorAll('pie-author');\n this.hasPlayerAsParent = Array.from(pieAuthors).some((author) => author.contains(this));\n\n if (this.hasPlayerAsParent) {\n if (this._modelCopy) {\n this._model = this._modelCopy;\n } else {\n delete this._modelCopy;\n }\n }\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 onChange = (o) => {\n this._model = { ...this._model, ...o };\n this.dispatchEvent(new ModelUpdatedEvent(this._model));\n this.render();\n };\n\n onConfigurationChanged(c) {\n this._configuration = c;\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 classes: {},\n model: this._model,\n configuration: this._configuration,\n onConfigurationChanged: this.onConfigurationChanged,\n onChange: this.onChange,\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 }\n }\n}\n"],"mappings":";;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,OAAA,GAAAD,OAAA;AACA,IAAAE,KAAA,GAAAH,sBAAA,CAAAC,OAAA;AACA,IAAAG,mBAAA,GAAAH,OAAA;AAOA,IAAAI,SAAA,GAAAL,sBAAA,CAAAC,OAAA;AAEe,MAAMK,sBAAsB,SAASC,WAAW,CAAC;EAyB9DC,WAAWA,CAAA,EAAG;IACZ,KAAK,CAAC,CAAC;IAAC,IAAAC,gBAAA,CAAAC,OAAA,6CAiD0B,MAAM;MACxC;MACA;MACA;MACA;MACA;MACA,MAAMC,UAAU,GAAGC,QAAQ,CAACC,gBAAgB,CAAC,YAAY,CAAC;MAC1D,IAAI,CAACC,iBAAiB,GAAGC,KAAK,CAACC,IAAI,CAACL,UAAU,CAAC,CAACM,IAAI,CAAEC,MAAM,IAAKA,MAAM,CAACC,QAAQ,CAAC,IAAI,CAAC,CAAC;MAEvF,IAAI,IAAI,CAACL,iBAAiB,EAAE;QAC1B,IAAI,IAAI,CAACM,UAAU,EAAE;UACnB,IAAI,CAACC,MAAM,GAAG,IAAI,CAACD,UAAU;QAC/B,CAAC,MAAM;UACL,OAAO,IAAI,CAACA,UAAU;QACxB;MACF;IACF,CAAC;IAAA,IAAAX,gBAAA,CAAAC,OAAA,oBAYWY,CAAC,IAAK;MAChB,IAAI,CAACD,MAAM,GAAG;QAAE,GAAG,IAAI,CAACA,MAAM;QAAE,GAAGC;MAAE,CAAC;MACtC,IAAI,CAACC,aAAa,CAAC,IAAIC,qCAAiB,CAAC,IAAI,CAACH,MAAM,CAAC,CAAC;MACtD,IAAI,CAACI,MAAM,CAAC,CAAC;IACf,CAAC;IAhFC,IAAI,CAACC,KAAK,GAAG,IAAI;IACjB,IAAI,CAACL,MAAM,GAAGf,sBAAsB,CAACqB,kBAAkB,CAAC,CAAC;IACzD,IAAI,CAACC,cAAc,GAAGC,iBAAa,CAACC,aAAa;EACnD;EAEA,IAAIC,KAAKA,CAACC,CAAC,EAAE;IACX,IAAI,CAACX,MAAM,GAAGf,sBAAsB,CAACqB,kBAAkB,CAACK,CAAC,CAAC;IAC1D,IAAI,CAACP,MAAM,CAAC,CAAC;EACf;EAEA,IAAIK,aAAaA,CAACG,CAAC,EAAE;IACnB,MAAMC,gBAAgB,GAAG;MACvB,GAAGL,iBAAa,CAACC,aAAa;MAC9B,GAAGG;IACL,CAAC;IACD,IAAI,CAACL,cAAc,GAAGM,gBAAgB;IAEtC,IAAI,CAACC,iCAAiC,CAAC,CAAC;;IAExC;IACA;IACA;IACA;IACA,IAAID,gBAAgB,EAAEE,QAAQ,EAAEC,OAAO,EAAE;MACvC,IAAIH,gBAAgB,EAAEI,eAAe,EAAEC,OAAO,EAAEC,MAAM,EAAE;QACtD,IAAI,CAACnB,MAAM,CAACe,QAAQ,GAAGF,gBAAgB,EAAEI,eAAe,CAACC,OAAO,CAAC,CAAC,CAAC,CAACE,KAAK;MAC3E;IACF,CAAC,MAAM,IAAIP,gBAAgB,CAACE,QAAQ,CAACM,QAAQ,IAAI,IAAI,CAACrB,MAAM,CAACe,QAAQ,EAAE;MACrE,IAAI,CAACR,cAAc,CAACQ,QAAQ,CAACC,OAAO,GAAG,IAAI;MAE3C,IAAI,CAAC,IAAI,CAACT,cAAc,CAACU,eAAe,CAACC,OAAO,IAAI,CAAC,IAAI,CAACX,cAAc,CAACU,eAAe,CAACC,OAAO,CAACC,MAAM,EAAE;QACvG,IAAI,CAACZ,cAAc,CAACU,eAAe,CAACC,OAAO,GAAG,EAAE;MAClD;;MAEA;MACA;MACA,IAAI,CAAC,IAAI,CAACX,cAAc,CAACU,eAAe,CAACC,OAAO,CAACI,IAAI,CAAEC,MAAM,IAAKA,MAAM,CAACH,KAAK,KAAK,IAAI,CAACpB,MAAM,CAACe,QAAQ,CAAC,EAAE;QACxG,IAAI,CAACR,cAAc,CAACU,eAAe,CAACC,OAAO,CAACM,IAAI,CAAC;UAC/CJ,KAAK,EAAE,IAAI,CAACpB,MAAM,CAACe,QAAQ;UAC3BU,KAAK,EAAE,IAAI,CAACzB,MAAM,CAACe;QACrB,CAAC,CAAC;MACJ;IACF,CAAC,MAAM;MACL,OAAO,IAAI,CAACf,MAAM,CAACe,QAAQ;IAC7B;IACA,IAAI,CAACX,MAAM,CAAC,CAAC;EACf;EAoBAsB,iBAAiBA,CAAA,EAAG;IAClB,IAAI,CAACtB,MAAM,CAAC,CAAC;EACf;EAEAuB,YAAYA,CAAChB,CAAC,EAAE;IACd,IAAI,CAACX,MAAM,GAAGW,CAAC;IACf,IAAI,CAACT,aAAa,CAAC,IAAIC,qCAAiB,CAAC,IAAI,CAACH,MAAM,CAAC,EAAE,IAAI,CAAC;IAC5D,IAAI,CAACI,MAAM,CAAC,CAAC;EACf;EAQAwB,sBAAsBA,CAAChB,CAAC,EAAE;IACxB,IAAI,CAACL,cAAc,GAAGK,CAAC;IACvB,IAAI,CAACR,MAAM,CAAC,CAAC;EACf;;EAEA;AACF;AACA;AACA;EACEyB,WAAWA,CAACC,OAAO,EAAE;IACnB,IAAI,CAAC5B,aAAa,CAAC,IAAI6B,oCAAgB,CAACD,OAAO,CAAC,CAAC;EACnD;EAEAE,aAAaA,CAACC,GAAG,EAAEC,IAAI,EAAE;IACvB,IAAI,CAAChC,aAAa,CAAC,IAAIiC,oCAAgB,CAACF,GAAG,EAAEC,IAAI,CAAC,CAAC;EACrD;EAEAE,WAAWA,CAACN,OAAO,EAAE;IACnB,IAAI,CAAC5B,aAAa,CAAC,IAAImC,oCAAgB,CAACP,OAAO,CAAC,CAAC;EACnD;EAEAQ,aAAaA,CAACL,GAAG,EAAEC,IAAI,EAAE;IACvB,IAAI,CAAChC,aAAa,CAAC,IAAIqC,oCAAgB,CAACN,GAAG,EAAEC,IAAI,CAAC,CAAC;EACrD;EAEA9B,MAAMA,CAAA,EAAG;IACP,IAAI,IAAI,CAACJ,MAAM,EAAE;MACf,MAAMwC,EAAE,gBAAGC,cAAK,CAACC,aAAa,CAACC,aAAI,EAAE;QACnCC,OAAO,EAAE,CAAC,CAAC;QACXlC,KAAK,EAAE,IAAI,CAACV,MAAM;QAClBS,aAAa,EAAE,IAAI,CAACF,cAAc;QAClCqB,sBAAsB,EAAE,IAAI,CAACA,sBAAsB;QACnDiB,QAAQ,EAAE,IAAI,CAACA,QAAQ;QACvBC,YAAY,EAAE;UACZC,GAAG,EAAE,IAAI,CAAClB,WAAW,CAACmB,IAAI,CAAC,IAAI,CAAC;UAChCC,MAAM,EAAE,IAAI,CAACjB,aAAa,CAACgB,IAAI,CAAC,IAAI;QACtC,CAAC;QACDE,kBAAkB,EAAE;UAClBH,GAAG,EAAE,IAAI,CAACX,WAAW,CAACY,IAAI,CAAC,IAAI,CAAC;UAChCC,MAAM,EAAE,IAAI,CAACX,aAAa,CAACU,IAAI,CAAC,IAAI;QACtC;MACF,CAAC,CAAC;MAEF,IAAI,CAAC,IAAI,CAAC3C,KAAK,EAAE;QACf,IAAI,CAACA,KAAK,GAAG,IAAA8C,kBAAU,EAAC,IAAI,CAAC;MAC/B;MACA,IAAI,CAAC9C,KAAK,CAACD,MAAM,CAACoC,EAAE,CAAC;IACvB;EACF;EAEAY,oBAAoBA,CAAA,EAAG;IACrB,IAAI,IAAI,CAAC/C,KAAK,EAAE;MACd,IAAI,CAACA,KAAK,CAACgD,OAAO,CAAC,CAAC;IACtB;EACF;AACF;AAACC,OAAA,CAAAjE,OAAA,GAAAJ,sBAAA;AAnKC;AACF;AACA;AACA;AACA;AAJE,IAAAG,gBAAA,CAAAC,OAAA,EADmBJ,sBAAsB,wBAMb,CAACyB,KAAK,GAAG,CAAC,CAAC,KAAK;EAC1C,MAAME,CAAC,GAAGJ,iBAAa,CAACC,aAAa;EACrC,IAAIM,QAAQ,GAAGL,KAAK,CAACK,QAAQ,IAAI,EAAE;EAEnC,IAAI,CAACA,QAAQ,IAAIH,CAAC,CAACG,QAAQ,IAAIH,CAAC,CAACG,QAAQ,CAACC,OAAO,EAAE;IACjD,IAAIJ,CAAC,CAACK,eAAe,EAAEC,OAAO,EAAEC,MAAM,EAAE;MACtCJ,QAAQ,GAAGH,CAAC,CAACK,eAAe,CAACC,OAAO,CAAC,CAAC,CAAC,CAACE,KAAK;IAC/C;EACF;EAEA,MAAMmC,eAAe,GAAG;IACtB,GAAG/C,iBAAa,CAACE,KAAK;IACtB,GAAGA,KAAK;IACRK;EACF,CAAC;EAED,OAAOwC,eAAe;AACxB,CAAC","ignoreList":[]}
@@ -0,0 +1,253 @@
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 _configUi = require("@pie-lib/config-ui");
12
+ var _editableHtmlTipTap = _interopRequireDefault(require("@pie-lib/editable-html-tip-tap"));
13
+ var _fractionModel = require("@pie-element/fraction-model");
14
+ var _Tooltip = _interopRequireDefault(require("@mui/material/Tooltip"));
15
+ var _Info = _interopRequireDefault(require("@mui/icons-material/Info"));
16
+ var _styles = require("@mui/material/styles");
17
+ var _cardBar = _interopRequireDefault(require("./card-bar"));
18
+ var _modelOptions = _interopRequireDefault(require("./model-options"));
19
+ const StyledFormSection = (0, _styles.styled)(_configUi.FormSection)(({
20
+ theme
21
+ }) => ({
22
+ marginBottom: theme.spacing(4)
23
+ }));
24
+ const StyledTooltip = (0, _styles.styled)(_Tooltip.default)(({
25
+ theme
26
+ }) => ({
27
+ '& .MuiTooltip-tooltip': {
28
+ fontSize: theme.typography.fontSize - 2,
29
+ whiteSpace: 'pre',
30
+ maxWidth: '500px'
31
+ }
32
+ }));
33
+ const ErrorMessage = (0, _styles.styled)('div')(({
34
+ theme
35
+ }) => ({
36
+ fontSize: theme.typography.fontSize - 2,
37
+ color: theme.palette.error.main,
38
+ marginTop: theme.spacing(1)
39
+ }));
40
+ const ModelErrorContainer = (0, _styles.styled)('div')(({
41
+ theme,
42
+ hasError
43
+ }) => ({
44
+ ...(hasError && {
45
+ border: `2px solid ${theme.palette.error.main}`
46
+ })
47
+ }));
48
+ const Label = (0, _styles.styled)('label')(({
49
+ theme
50
+ }) => ({
51
+ marginBottom: theme.spacing(4)
52
+ }));
53
+ class Main extends _react.default.Component {
54
+ constructor(props) {
55
+ super(props);
56
+ /*
57
+ * Method to handle correct answer change
58
+ * @param {array} correctResponse - correct response
59
+ * */
60
+ (0, _defineProperty2.default)(this, "onCorrectAnswerChange", correctResponse => {
61
+ const {
62
+ model,
63
+ onChange
64
+ } = this.props;
65
+ model.correctResponse = correctResponse;
66
+ onChange({
67
+ ...model
68
+ });
69
+ });
70
+ /*
71
+ * Method to handle model options change
72
+ * @param {object} oldModel - old model
73
+ * @param {object} newModel - new model
74
+ * @param {boolean} showDiag - show dialog or not
75
+ * */
76
+ (0, _defineProperty2.default)(this, "onModelOptionsChange", (oldModel, newModel, showDiag) => {
77
+ const {
78
+ onChange
79
+ } = this.props;
80
+ if (showDiag && oldModel.correctResponse.length > 0) {
81
+ this.setState({
82
+ correctAnswerChangeDialog: {
83
+ open: true,
84
+ oldModel: oldModel,
85
+ newModel: newModel,
86
+ text: 'Changing either the Number of Models or Parts per Model will remove added correct answer. Are you sure you want to continue?'
87
+ }
88
+ });
89
+ } else {
90
+ onChange({
91
+ ...newModel
92
+ });
93
+ }
94
+ });
95
+ /*
96
+ * Method to generate random key
97
+ * */
98
+ (0, _defineProperty2.default)(this, "generateRandomKey", () => {
99
+ return Math.floor(Math.random() * 10000);
100
+ });
101
+ this.state = {
102
+ correctAnswerChangeDialog: {
103
+ open: false,
104
+ text: ''
105
+ }
106
+ };
107
+ }
108
+ render() {
109
+ const {
110
+ model,
111
+ onChange,
112
+ configuration,
113
+ imageSupport,
114
+ uploadSoundSupport
115
+ } = this.props;
116
+ const {
117
+ baseInputConfiguration = {},
118
+ contentDimensions = {},
119
+ title = {},
120
+ prompt = {},
121
+ modelOptions = {},
122
+ mathMlOptions = {}
123
+ } = configuration || {};
124
+ const {
125
+ errors = {},
126
+ extraCSSRules,
127
+ spellCheckEnabled,
128
+ toolbarEditorPosition
129
+ } = model || {};
130
+ const {
131
+ correctAnswerChangeDialog
132
+ } = this.state;
133
+ const toolbarOpts = {
134
+ position: toolbarEditorPosition === 'top' ? 'top' : 'bottom'
135
+ };
136
+ const getPluginProps = (props = {}) => ({
137
+ ...baseInputConfiguration,
138
+ ...props
139
+ });
140
+ const fractionModelChartKey = this.generateRandomKey();
141
+ return /*#__PURE__*/_react.default.createElement(_configUi.layout.ConfigLayout, {
142
+ extraCSSRules: extraCSSRules,
143
+ dimensions: contentDimensions,
144
+ hideSettings: true
145
+ }, /*#__PURE__*/_react.default.createElement(_cardBar.default, {
146
+ header: "Set Up"
147
+ }), /*#__PURE__*/_react.default.createElement(StyledFormSection, {
148
+ label: title?.label || 'Title'
149
+ }, /*#__PURE__*/_react.default.createElement(_editableHtmlTipTap.default, {
150
+ markup: model.title || '',
151
+ onChange: title => onChange({
152
+ title
153
+ }),
154
+ toolbarOpts: toolbarOpts,
155
+ activePlugins: ['bold', 'html', 'italic', 'underline', 'strikethrough', 'image', 'math', 'languageCharacters', 'responseArea'],
156
+ pluginProps: getPluginProps(title?.inputConfiguration),
157
+ spellCheck: spellCheckEnabled,
158
+ uploadSoundSupport: uploadSoundSupport,
159
+ languageCharactersProps: [{
160
+ language: 'spanish'
161
+ }, {
162
+ language: 'special'
163
+ }],
164
+ mathMlOptions: mathMlOptions
165
+ })), /*#__PURE__*/_react.default.createElement(StyledFormSection, {
166
+ label: prompt?.label || 'Question'
167
+ }, /*#__PURE__*/_react.default.createElement(_editableHtmlTipTap.default, {
168
+ markup: model.prompt || '',
169
+ minHeight: 60,
170
+ onChange: prompt => onChange({
171
+ prompt
172
+ }),
173
+ toolbarOpts: toolbarOpts,
174
+ pluginProps: getPluginProps(prompt?.inputConfiguration),
175
+ spellCheck: spellCheckEnabled,
176
+ uploadSoundSupport: uploadSoundSupport,
177
+ imageSupport: imageSupport,
178
+ languageCharactersProps: [{
179
+ language: 'spanish'
180
+ }, {
181
+ language: 'special'
182
+ }],
183
+ mathMlOptions: mathMlOptions
184
+ })), /*#__PURE__*/_react.default.createElement(_configUi.FormSection, null, /*#__PURE__*/_react.default.createElement(_modelOptions.default, {
185
+ model: model,
186
+ onChange: this.onModelOptionsChange,
187
+ modelOptions: modelOptions
188
+ })), /*#__PURE__*/_react.default.createElement(_configUi.FormSection, null, " ", /*#__PURE__*/_react.default.createElement(_cardBar.default, {
189
+ header: "Correct Answer",
190
+ info: /*#__PURE__*/_react.default.createElement(StyledTooltip, {
191
+ disableFocusListener: true,
192
+ disableTouchListener: true,
193
+ placement: 'right',
194
+ title: 'The correct answer should include no more than one partially-filled model'
195
+ }, /*#__PURE__*/_react.default.createElement(_Info.default, {
196
+ fontSize: 'small',
197
+ color: 'primary',
198
+ style: {
199
+ marginLeft: '8px'
200
+ }
201
+ }))
202
+ }), /*#__PURE__*/_react.default.createElement("br", null), /*#__PURE__*/_react.default.createElement(Label, null, "Click/touch the number of parts to represent the correct fraction model"), /*#__PURE__*/_react.default.createElement("br", null), /*#__PURE__*/_react.default.createElement(ModelErrorContainer, {
203
+ hasError: !!errors.correctResponse
204
+ }, /*#__PURE__*/_react.default.createElement(_fractionModel.FractionModelChart, {
205
+ key: fractionModelChartKey,
206
+ value: model.correctResponse,
207
+ modelType: model.modelTypeSelected,
208
+ noOfModels: model.maxModelSelected,
209
+ partsPerModel: model.partsPerModel,
210
+ showLabel: model.showGraphLabels,
211
+ onChange: this.onCorrectAnswerChange
212
+ })), errors.correctResponse && /*#__PURE__*/_react.default.createElement(ErrorMessage, null, errors.correctResponse)), /*#__PURE__*/_react.default.createElement(_configUi.AlertDialog, {
213
+ open: correctAnswerChangeDialog.open,
214
+ title: "Warning",
215
+ text: correctAnswerChangeDialog.text,
216
+ onConfirm: () => {
217
+ let newModel = this.state.correctAnswerChangeDialog.newModel;
218
+ newModel.correctResponse = [];
219
+ onChange({
220
+ ...newModel
221
+ });
222
+ this.setState({
223
+ correctAnswerChangeDialog: {
224
+ open: false
225
+ }
226
+ });
227
+ },
228
+ onClose: () => {
229
+ const oldModel = this.state.correctAnswerChangeDialog.oldModel;
230
+ onChange({
231
+ ...oldModel
232
+ });
233
+ this.setState({
234
+ correctAnswerChangeDialog: {
235
+ open: false
236
+ }
237
+ });
238
+ },
239
+ onConfirmText: 'OK',
240
+ onCloseText: 'Cancel'
241
+ }));
242
+ }
243
+ }
244
+ exports.Main = Main;
245
+ (0, _defineProperty2.default)(Main, "propTypes", {
246
+ model: _propTypes.default.object.isRequired,
247
+ configuration: _propTypes.default.object.isRequired,
248
+ onConfigurationChanged: _propTypes.default.func.isRequired,
249
+ onChange: _propTypes.default.func.isRequired,
250
+ uploadSoundSupport: _propTypes.default.object.isRequired
251
+ });
252
+ var _default = exports.default = Main;
253
+ //# sourceMappingURL=main.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"main.js","names":["_react","_interopRequireDefault","require","_propTypes","_configUi","_editableHtmlTipTap","_fractionModel","_Tooltip","_Info","_styles","_cardBar","_modelOptions","StyledFormSection","styled","FormSection","theme","marginBottom","spacing","StyledTooltip","Tooltip","fontSize","typography","whiteSpace","maxWidth","ErrorMessage","color","palette","error","main","marginTop","ModelErrorContainer","hasError","border","Label","Main","React","Component","constructor","props","_defineProperty2","default","correctResponse","model","onChange","oldModel","newModel","showDiag","length","setState","correctAnswerChangeDialog","open","text","Math","floor","random","state","render","configuration","imageSupport","uploadSoundSupport","baseInputConfiguration","contentDimensions","title","prompt","modelOptions","mathMlOptions","errors","extraCSSRules","spellCheckEnabled","toolbarEditorPosition","toolbarOpts","position","getPluginProps","fractionModelChartKey","generateRandomKey","createElement","layout","ConfigLayout","dimensions","hideSettings","header","label","markup","activePlugins","pluginProps","inputConfiguration","spellCheck","languageCharactersProps","language","minHeight","onModelOptionsChange","info","disableFocusListener","disableTouchListener","placement","style","marginLeft","FractionModelChart","key","value","modelType","modelTypeSelected","noOfModels","maxModelSelected","partsPerModel","showLabel","showGraphLabels","onCorrectAnswerChange","AlertDialog","onConfirm","onClose","onConfirmText","onCloseText","exports","PropTypes","object","isRequired","onConfigurationChanged","func","_default"],"sources":["../src/main.jsx"],"sourcesContent":["import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormSection, layout, AlertDialog } from '@pie-lib/config-ui';\nimport EditableHtml from '@pie-lib/editable-html-tip-tap';\nimport { FractionModelChart } from '@pie-element/fraction-model';\nimport Tooltip from '@mui/material/Tooltip';\nimport Info from '@mui/icons-material/Info';\nimport { styled } from '@mui/material/styles';\n\nimport CardBar from './card-bar';\nimport ModelOptions from './model-options';\n\nconst StyledFormSection = styled(FormSection)(({ theme }) => ({\n marginBottom: theme.spacing(4),\n}));\n\nconst StyledTooltip = styled(Tooltip)(({ theme }) => ({\n '& .MuiTooltip-tooltip': {\n fontSize: theme.typography.fontSize - 2,\n whiteSpace: 'pre',\n maxWidth: '500px',\n },\n}));\n\nconst ErrorMessage = styled('div')(({ theme }) => ({\n fontSize: theme.typography.fontSize - 2,\n color: theme.palette.error.main,\n marginTop: theme.spacing(1),\n}));\n\nconst ModelErrorContainer = styled('div')(({ theme, hasError }) => ({\n ...(hasError && {\n border: `2px solid ${theme.palette.error.main}`,\n }),\n}));\n\nconst Label = styled('label')(({ theme }) => ({\n marginBottom: theme.spacing(4),\n}));\n\nexport class Main extends React.Component {\n static propTypes = {\n model: PropTypes.object.isRequired,\n configuration: PropTypes.object.isRequired,\n onConfigurationChanged: PropTypes.func.isRequired,\n onChange: PropTypes.func.isRequired,\n uploadSoundSupport: PropTypes.object.isRequired,\n };\n\n constructor(props) {\n super(props);\n\n this.state = {\n correctAnswerChangeDialog: {\n open: false,\n text: '',\n },\n };\n }\n\n /*\n * Method to handle correct answer change\n * @param {array} correctResponse - correct response\n * */\n onCorrectAnswerChange = (correctResponse) => {\n const { model, onChange } = this.props;\n model.correctResponse = correctResponse;\n onChange({ ...model });\n };\n\n /*\n * Method to handle model options change\n * @param {object} oldModel - old model\n * @param {object} newModel - new model\n * @param {boolean} showDiag - show dialog or not\n * */\n onModelOptionsChange = (oldModel, newModel, showDiag) => {\n const { onChange } = this.props;\n if (showDiag && oldModel.correctResponse.length > 0) {\n this.setState({\n correctAnswerChangeDialog: {\n open: true,\n oldModel: oldModel,\n newModel: newModel,\n text: 'Changing either the Number of Models or Parts per Model will remove added correct answer. Are you sure you want to continue?',\n },\n });\n } else {\n onChange({ ...newModel });\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, onChange, configuration, imageSupport, uploadSoundSupport } = this.props;\n const {\n baseInputConfiguration = {},\n contentDimensions = {},\n title = {},\n prompt = {},\n modelOptions = {},\n mathMlOptions = {},\n } = configuration || {};\n\n const { errors = {}, extraCSSRules, spellCheckEnabled, toolbarEditorPosition } = model || {};\n\n const { correctAnswerChangeDialog } = this.state;\n\n const toolbarOpts = {\n position: toolbarEditorPosition === 'top' ? 'top' : 'bottom',\n };\n\n const getPluginProps = (props = {}) => ({\n ...baseInputConfiguration,\n ...props,\n });\n\n const fractionModelChartKey = this.generateRandomKey();\n\n return (\n <layout.ConfigLayout extraCSSRules={extraCSSRules} dimensions={contentDimensions} hideSettings={true}>\n <CardBar header=\"Set Up\"></CardBar>\n\n <StyledFormSection label={title?.label || 'Title'}>\n <EditableHtml\n markup={model.title || ''}\n onChange={(title) => onChange({ title })}\n toolbarOpts={toolbarOpts}\n activePlugins={[\n 'bold',\n 'html',\n 'italic',\n 'underline',\n 'strikethrough',\n 'image',\n 'math',\n 'languageCharacters',\n 'responseArea',\n ]}\n pluginProps={getPluginProps(title?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n uploadSoundSupport={uploadSoundSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </StyledFormSection>\n\n <StyledFormSection label={prompt?.label || 'Question'}>\n <EditableHtml\n markup={model.prompt || ''}\n minHeight={60}\n onChange={(prompt) => onChange({ prompt })}\n toolbarOpts={toolbarOpts}\n pluginProps={getPluginProps(prompt?.inputConfiguration)}\n spellCheck={spellCheckEnabled}\n uploadSoundSupport={uploadSoundSupport}\n imageSupport={imageSupport}\n languageCharactersProps={[{ language: 'spanish' }, { language: 'special' }]}\n mathMlOptions={mathMlOptions}\n />\n </StyledFormSection>\n\n <FormSection>\n <ModelOptions model={model} onChange={this.onModelOptionsChange} modelOptions={modelOptions} />\n </FormSection>\n\n <FormSection> <CardBar\n header=\"Correct Answer\"\n info={\n <StyledTooltip\n disableFocusListener\n disableTouchListener\n placement={'right'}\n title={'The correct answer should include no more than one partially-filled model'}\n >\n <Info fontSize={'small'} color={'primary'} style={{ marginLeft: '8px' }} />\n </StyledTooltip>\n }\n ></CardBar>\n\n <br />\n <Label>\n Click/touch the number of parts to represent the correct fraction model\n </Label>\n <br />\n\n <ModelErrorContainer hasError={!!errors.correctResponse}>\n <FractionModelChart\n key={fractionModelChartKey}\n value={model.correctResponse}\n modelType={model.modelTypeSelected}\n noOfModels={model.maxModelSelected}\n partsPerModel={model.partsPerModel}\n showLabel={model.showGraphLabels}\n onChange={this.onCorrectAnswerChange}\n ></FractionModelChart>\n </ModelErrorContainer>\n\n {errors.correctResponse && <ErrorMessage>{errors.correctResponse}</ErrorMessage>}\n </FormSection>\n\n <AlertDialog\n open={correctAnswerChangeDialog.open}\n title=\"Warning\"\n text={correctAnswerChangeDialog.text}\n onConfirm={() => {\n let newModel = this.state.correctAnswerChangeDialog.newModel;\n newModel.correctResponse = [];\n onChange({ ...newModel });\n this.setState({\n correctAnswerChangeDialog: { open: false },\n });\n }}\n onClose={() => {\n const oldModel = this.state.correctAnswerChangeDialog.oldModel;\n onChange({ ...oldModel });\n this.setState({ correctAnswerChangeDialog: { open: false } });\n }}\n onConfirmText={'OK'}\n onCloseText={'Cancel'}\n />\n </layout.ConfigLayout>\n );\n }\n}\n\nexport default Main;\n"],"mappings":"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","ignoreList":[]}