@pie-element/hotspot 11.1.2-next.2 → 11.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 (234) hide show
  1. package/CHANGELOG.json +997 -0
  2. package/CHANGELOG.md +2220 -0
  3. package/LICENSE.md +5 -0
  4. package/README.md +1 -0
  5. package/configure/CHANGELOG.json +682 -0
  6. package/configure/CHANGELOG.md +1957 -0
  7. package/configure/lib/DeleteWidget.js +64 -0
  8. package/configure/lib/DeleteWidget.js.map +1 -0
  9. package/configure/lib/button.js +42 -0
  10. package/configure/lib/button.js.map +1 -0
  11. package/configure/lib/buttons/circle.js +33 -0
  12. package/configure/lib/buttons/circle.js.map +1 -0
  13. package/configure/lib/buttons/polygon.js +39 -0
  14. package/configure/lib/buttons/polygon.js.map +1 -0
  15. package/configure/lib/buttons/rectangle.js +39 -0
  16. package/configure/lib/buttons/rectangle.js.map +1 -0
  17. package/configure/lib/defaults.js +155 -0
  18. package/configure/lib/defaults.js.map +1 -0
  19. package/configure/lib/hotspot-circle.js +192 -0
  20. package/configure/lib/hotspot-circle.js.map +1 -0
  21. package/configure/lib/hotspot-container.js +320 -0
  22. package/configure/lib/hotspot-container.js.map +1 -0
  23. package/configure/lib/hotspot-drawable.js +519 -0
  24. package/configure/lib/hotspot-drawable.js.map +1 -0
  25. package/configure/lib/hotspot-palette.js +107 -0
  26. package/configure/lib/hotspot-palette.js.map +1 -0
  27. package/configure/lib/hotspot-polygon.js +293 -0
  28. package/configure/lib/hotspot-polygon.js.map +1 -0
  29. package/configure/lib/hotspot-rectangle.js +190 -0
  30. package/configure/lib/hotspot-rectangle.js.map +1 -0
  31. package/configure/lib/icons.js +7 -0
  32. package/configure/lib/icons.js.map +1 -0
  33. package/configure/lib/image-konva.js +66 -0
  34. package/configure/lib/image-konva.js.map +1 -0
  35. package/configure/lib/index.js +194 -0
  36. package/configure/lib/index.js.map +1 -0
  37. package/configure/lib/root.js +330 -0
  38. package/configure/lib/root.js.map +1 -0
  39. package/configure/lib/shapes/circle.js +84 -0
  40. package/configure/lib/shapes/circle.js.map +1 -0
  41. package/configure/lib/shapes/index.js +50 -0
  42. package/configure/lib/shapes/index.js.map +1 -0
  43. package/configure/lib/shapes/polygon.js +82 -0
  44. package/configure/lib/shapes/polygon.js.map +1 -0
  45. package/configure/lib/shapes/rectagle.js +84 -0
  46. package/configure/lib/shapes/rectagle.js.map +1 -0
  47. package/configure/lib/shapes/utils.js +21 -0
  48. package/configure/lib/shapes/utils.js.map +1 -0
  49. package/configure/lib/upload-control.js +41 -0
  50. package/configure/lib/upload-control.js.map +1 -0
  51. package/configure/lib/utils.js +185 -0
  52. package/configure/lib/utils.js.map +1 -0
  53. package/configure/package.json +26 -0
  54. package/configure/src/DeleteWidget.jsx +51 -0
  55. package/configure/src/__tests__/DeleteWidget.test.jsx +366 -0
  56. package/configure/src/__tests__/button.test.jsx +198 -0
  57. package/configure/src/__tests__/hotspot-circle.test.jsx +259 -0
  58. package/configure/src/__tests__/hotspot-container.test.js +366 -0
  59. package/configure/src/__tests__/hotspot-drawable.test.js +271 -0
  60. package/configure/src/__tests__/hotspot-palette.test.jsx +71 -0
  61. package/configure/src/__tests__/image-konva.test.jsx +226 -0
  62. package/configure/src/__tests__/index.test.js +329 -0
  63. package/configure/src/__tests__/root.test.js +400 -0
  64. package/configure/src/__tests__/utils.test.js +241 -0
  65. package/configure/src/button.jsx +35 -0
  66. package/configure/src/buttons/circle.jsx +18 -0
  67. package/configure/src/buttons/polygon.jsx +29 -0
  68. package/configure/src/buttons/rectangle.jsx +29 -0
  69. package/configure/src/defaults.js +109 -0
  70. package/configure/src/hotspot-circle.jsx +183 -0
  71. package/configure/src/hotspot-container.jsx +330 -0
  72. package/configure/src/hotspot-drawable.jsx +527 -0
  73. package/configure/src/hotspot-palette.jsx +90 -0
  74. package/configure/src/hotspot-polygon.jsx +294 -0
  75. package/configure/src/hotspot-rectangle.jsx +169 -0
  76. package/configure/src/icons.js +5 -0
  77. package/configure/src/image-konva.jsx +63 -0
  78. package/configure/src/index.js +208 -0
  79. package/configure/src/root.jsx +346 -0
  80. package/configure/src/shapes/circle.js +81 -0
  81. package/configure/src/shapes/index.js +4 -0
  82. package/configure/src/shapes/polygon.js +81 -0
  83. package/configure/src/shapes/rectagle.js +82 -0
  84. package/configure/src/shapes/utils.js +16 -0
  85. package/configure/src/upload-control.jsx +33 -0
  86. package/configure/src/utils.js +210 -0
  87. package/controller/CHANGELOG.json +362 -0
  88. package/controller/CHANGELOG.md +1304 -0
  89. package/controller/lib/defaults.js +33 -0
  90. package/controller/lib/defaults.js.map +1 -0
  91. package/controller/lib/index.js +341 -0
  92. package/controller/lib/index.js.map +1 -0
  93. package/controller/lib/utils.js +32 -0
  94. package/controller/lib/utils.js.map +1 -0
  95. package/controller/package.json +18 -0
  96. package/controller/src/__tests__/index.test.js +419 -0
  97. package/controller/src/__tests__/utils.test.js +5 -0
  98. package/controller/src/defaults.js +19 -0
  99. package/controller/src/index.js +328 -0
  100. package/controller/src/utils.js +29 -0
  101. package/docs/config-schema.json +2023 -0
  102. package/docs/config-schema.json.md +1495 -0
  103. package/docs/demo/config.js +8 -0
  104. package/docs/demo/generate.js +118 -0
  105. package/docs/demo/index.html +1 -0
  106. package/docs/demo/session.js +11 -0
  107. package/docs/pie-schema.json +1204 -0
  108. package/docs/pie-schema.json.md +851 -0
  109. package/lib/hotspot/circle.js +156 -0
  110. package/lib/hotspot/circle.js.map +1 -0
  111. package/lib/hotspot/container.js +206 -0
  112. package/lib/hotspot/container.js.map +1 -0
  113. package/lib/hotspot/icons.js +8 -0
  114. package/lib/hotspot/icons.js.map +1 -0
  115. package/lib/hotspot/image-konva-tooltip.js +86 -0
  116. package/lib/hotspot/image-konva-tooltip.js.map +1 -0
  117. package/lib/hotspot/index.js +163 -0
  118. package/lib/hotspot/index.js.map +1 -0
  119. package/lib/hotspot/polygon.js +203 -0
  120. package/lib/hotspot/polygon.js.map +1 -0
  121. package/lib/hotspot/rectangle.js +175 -0
  122. package/lib/hotspot/rectangle.js.map +1 -0
  123. package/lib/index.js +213 -0
  124. package/lib/index.js.map +1 -0
  125. package/lib/session-updater.js +42 -0
  126. package/lib/session-updater.js.map +1 -0
  127. package/package.json +18 -83
  128. package/src/__tests__/container.test.jsx +58 -0
  129. package/src/__tests__/index.test.js +123 -0
  130. package/src/__tests__/session-updater.test.jsx +69 -0
  131. package/src/hotspot/__tests__/circle.test.jsx +464 -0
  132. package/src/hotspot/__tests__/container.test.jsx +546 -0
  133. package/src/hotspot/__tests__/image-konva-tooltip.test.jsx +510 -0
  134. package/src/hotspot/__tests__/polygon.test.jsx +502 -0
  135. package/src/hotspot/__tests__/rectangle.test.jsx +418 -0
  136. package/src/hotspot/circle.jsx +152 -0
  137. package/src/hotspot/container.jsx +217 -0
  138. package/src/hotspot/icons.js +7 -0
  139. package/src/hotspot/image-konva-tooltip.jsx +76 -0
  140. package/src/hotspot/index.jsx +165 -0
  141. package/src/hotspot/polygon.jsx +195 -0
  142. package/src/hotspot/rectangle.jsx +171 -0
  143. package/src/index.js +226 -0
  144. package/src/session-updater.js +29 -0
  145. package/configure.js +0 -2
  146. package/controller.js +0 -1
  147. package/dist/author/DeleteWidget.d.ts +0 -38
  148. package/dist/author/DeleteWidget.js +0 -46
  149. package/dist/author/button.d.ts +0 -31
  150. package/dist/author/button.js +0 -27
  151. package/dist/author/buttons/circle.d.ts +0 -18
  152. package/dist/author/buttons/circle.js +0 -25
  153. package/dist/author/buttons/polygon.d.ts +0 -18
  154. package/dist/author/buttons/polygon.js +0 -36
  155. package/dist/author/buttons/rectangle.d.ts +0 -18
  156. package/dist/author/buttons/rectangle.js +0 -36
  157. package/dist/author/defaults.d.ts +0 -157
  158. package/dist/author/defaults.js +0 -119
  159. package/dist/author/hotspot-circle.d.ts +0 -21
  160. package/dist/author/hotspot-circle.js +0 -124
  161. package/dist/author/hotspot-container.d.ts +0 -29
  162. package/dist/author/hotspot-container.js +0 -210
  163. package/dist/author/hotspot-drawable.d.ts +0 -31
  164. package/dist/author/hotspot-drawable.js +0 -312
  165. package/dist/author/hotspot-palette.d.ts +0 -14
  166. package/dist/author/hotspot-palette.js +0 -72
  167. package/dist/author/hotspot-polygon.d.ts +0 -38
  168. package/dist/author/hotspot-polygon.js +0 -200
  169. package/dist/author/hotspot-rectangle.d.ts +0 -20
  170. package/dist/author/hotspot-rectangle.js +0 -119
  171. package/dist/author/icons.d.ts +0 -9
  172. package/dist/author/icons.js +0 -4
  173. package/dist/author/image-konva.d.ts +0 -19
  174. package/dist/author/image-konva.js +0 -49
  175. package/dist/author/index.d.ts +0 -52
  176. package/dist/author/index.js +0 -143
  177. package/dist/author/root.d.ts +0 -15
  178. package/dist/author/root.js +0 -215
  179. package/dist/author/shapes/circle.d.ts +0 -18
  180. package/dist/author/shapes/circle.js +0 -47
  181. package/dist/author/shapes/index.d.ts +0 -12
  182. package/dist/author/shapes/polygon.d.ts +0 -19
  183. package/dist/author/shapes/polygon.js +0 -51
  184. package/dist/author/shapes/rectagle.d.ts +0 -18
  185. package/dist/author/shapes/rectagle.js +0 -57
  186. package/dist/author/shapes/utils.d.ts +0 -19
  187. package/dist/author/shapes/utils.js +0 -16
  188. package/dist/author/upload-control.d.ts +0 -29
  189. package/dist/author/upload-control.js +0 -28
  190. package/dist/author/utils.d.ts +0 -24
  191. package/dist/author/utils.js +0 -83
  192. package/dist/browser/ReactKonva-DI5WIo8o.js +0 -19336
  193. package/dist/browser/ReactKonva-DI5WIo8o.js.map +0 -1
  194. package/dist/browser/author/index.js +0 -41646
  195. package/dist/browser/author/index.js.map +0 -1
  196. package/dist/browser/browser-CfnAFove.js +0 -219
  197. package/dist/browser/browser-CfnAFove.js.map +0 -1
  198. package/dist/browser/controller/index.js +0 -198
  199. package/dist/browser/controller/index.js.map +0 -1
  200. package/dist/browser/delivery/index.js +0 -2460
  201. package/dist/browser/delivery/index.js.map +0 -1
  202. package/dist/browser/dist-C78LDz6R.js +0 -96
  203. package/dist/browser/dist-C78LDz6R.js.map +0 -1
  204. package/dist/browser/hotspot.css +0 -2
  205. package/dist/controller/defaults.d.ts +0 -35
  206. package/dist/controller/defaults.js +0 -29
  207. package/dist/controller/index.d.ts +0 -22
  208. package/dist/controller/index.js +0 -154
  209. package/dist/controller/utils.d.ts +0 -10
  210. package/dist/controller/utils.js +0 -12
  211. package/dist/delivery/hotspot/circle.d.ts +0 -19
  212. package/dist/delivery/hotspot/circle.js +0 -100
  213. package/dist/delivery/hotspot/container.d.ts +0 -16
  214. package/dist/delivery/hotspot/container.js +0 -150
  215. package/dist/delivery/hotspot/icons.d.ts +0 -10
  216. package/dist/delivery/hotspot/icons.js +0 -4
  217. package/dist/delivery/hotspot/image-konva-tooltip.d.ts +0 -19
  218. package/dist/delivery/hotspot/image-konva-tooltip.js +0 -66
  219. package/dist/delivery/hotspot/index.d.ts +0 -17
  220. package/dist/delivery/hotspot/index.js +0 -114
  221. package/dist/delivery/hotspot/polygon.d.ts +0 -21
  222. package/dist/delivery/hotspot/polygon.js +0 -108
  223. package/dist/delivery/hotspot/rectangle.d.ts +0 -19
  224. package/dist/delivery/hotspot/rectangle.js +0 -104
  225. package/dist/delivery/index.d.ts +0 -20
  226. package/dist/delivery/index.js +0 -107
  227. package/dist/delivery/session-updater.d.ts +0 -10
  228. package/dist/delivery/session-updater.js +0 -14
  229. package/dist/index.d.ts +0 -1
  230. package/dist/index.iife.d.ts +0 -8
  231. package/dist/index.iife.js +0 -169
  232. package/dist/index.js +0 -2
  233. package/dist/runtime-support.d.ts +0 -12
  234. package/dist/runtime-support.js +0 -12
@@ -1,143 +0,0 @@
1
- import e from "./root.js";
2
- import t from "./defaults.js";
3
- import n from "react";
4
- import { createRoot as r } from "react-dom/client";
5
- import i from "debug";
6
- import { DeleteImageEvent as a, DeleteSoundEvent as o, InsertImageEvent as s, InsertSoundEvent as c, ModelUpdatedEvent as l } from "@pie-element/shared-configure-events";
7
- //#region src/author/index.ts
8
- var u = i("hotspot:configure"), d = class i extends HTMLElement {
9
- static createDefaultModel = (e = {}) => ({
10
- ...t.model,
11
- ...e,
12
- hotspotList: e.hotspotList || [e.hotspotColor],
13
- outlineList: e.outlineList || [e.outlineColor],
14
- shapes: e.shapes || t.model.shapes || {}
15
- });
16
- constructor() {
17
- super(), this._root = null, this._model = i.createDefaultModel(), this._configuration = t.configuration, this.onModelChanged = this.onModelChanged.bind(this);
18
- }
19
- set model(e) {
20
- this._model = i.createDefaultModel(e), this._render();
21
- }
22
- set configuration(e) {
23
- let n = {
24
- ...t.configuration,
25
- ...e
26
- };
27
- this._configuration = n, n?.language?.enabled ? n?.languageChoices?.options?.length && (this._model.language = n?.languageChoices.options[0].value) : n.language.settings && this._model.language ? (this._configuration.language.enabled = !0, (!this._configuration.languageChoices.options || !this._configuration.languageChoices.options.length) && (this._configuration.languageChoices.options = []), this._configuration.languageChoices.options.find((e) => e.value === this._model.language) || this._configuration.languageChoices.options.push({
28
- value: this._model.language,
29
- label: this._model.language
30
- })) : delete this._model.language, this._render();
31
- }
32
- dispatchModelUpdated(e) {
33
- let t = !!e;
34
- this.dispatchEvent(new l(this._model, t));
35
- }
36
- onModelChanged(e, t) {
37
- this._model = e, this.dispatchModelUpdated(t), this._render();
38
- }
39
- onConfigurationChanged = (e) => {
40
- this._configuration = e, this._render();
41
- };
42
- onModelChangedByConfig = (e, t) => {
43
- let n = e;
44
- if (t === "multipleCorrect") {
45
- let { rectangles: e = [], polygons: t = [], circles: r = [] } = n.shapes || {};
46
- n.shapes.rectangles = e.map((e) => ({
47
- ...e,
48
- correct: !1
49
- })), n.shapes.polygons = t.map((e) => ({
50
- ...e,
51
- correct: !1
52
- })), n.shapes.circles = r.map((e) => ({
53
- ...e,
54
- correct: !1
55
- }));
56
- }
57
- this.onModelChanged(n);
58
- };
59
- onColorChanged = (e, t) => {
60
- this.onModelChanged({
61
- ...this._model,
62
- [e]: t
63
- });
64
- };
65
- onPromptChanged = (e) => {
66
- this.onModelChanged({
67
- ...this._model,
68
- prompt: e
69
- });
70
- };
71
- onRationaleChanged = (e) => {
72
- this.onModelChanged({
73
- ...this._model,
74
- rationale: e
75
- });
76
- };
77
- onTeacherInstructionsChanged = (e) => {
78
- this.onModelChanged({
79
- ...this._model,
80
- teacherInstructions: e
81
- });
82
- };
83
- onUpdateImageDimension = (e) => {
84
- this.onModelChanged({
85
- ...this._model,
86
- dimensions: e
87
- });
88
- };
89
- onUpdateShapes = (e) => {
90
- this.onModelChanged({
91
- ...this._model,
92
- shapes: e
93
- });
94
- };
95
- onImageUpload = (e) => {
96
- this.onModelChanged({
97
- ...this._model,
98
- imageUrl: e
99
- });
100
- };
101
- insertImage = (e) => {
102
- this.dispatchEvent(new s(e));
103
- };
104
- onDeleteImage = (e, t) => {
105
- this.dispatchEvent(new a(e, t));
106
- };
107
- insertSound(e) {
108
- this.dispatchEvent(new c(e));
109
- }
110
- onDeleteSound(e, t) {
111
- this.dispatchEvent(new o(e, t));
112
- }
113
- _render() {
114
- u("_render");
115
- let t = n.createElement(e, {
116
- configuration: this._configuration,
117
- model: this._model,
118
- onColorChanged: this.onColorChanged,
119
- onImageUpload: this.onImageUpload,
120
- onRationaleChanged: this.onRationaleChanged,
121
- onConfigurationChanged: this.onConfigurationChanged,
122
- onPromptChanged: this.onPromptChanged,
123
- onUpdateImageDimension: this.onUpdateImageDimension,
124
- imageSupport: {
125
- add: this.insertImage,
126
- delete: this.onDeleteImage
127
- },
128
- uploadSoundSupport: {
129
- add: this.insertSound.bind(this),
130
- delete: this.onDeleteSound.bind(this)
131
- },
132
- onUpdateShapes: this.onUpdateShapes,
133
- onModelChangedByConfig: this.onModelChangedByConfig,
134
- onTeacherInstructionsChanged: this.onTeacherInstructionsChanged
135
- });
136
- this._root ||= r(this), this._root.render(t);
137
- }
138
- disconnectedCallback() {
139
- this._root && this._root.unmount();
140
- }
141
- };
142
- //#endregion
143
- export { d as default };
@@ -1,15 +0,0 @@
1
- /**
2
- * @synced-from pie-elements/packages/hotspot/configure/src/root.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
- export declare class Root extends React.Component {
11
- handleColorChange: any;
12
- handleOnUpdateImageDimensions: any;
13
- render(): React.JSX.Element;
14
- }
15
- export default Root;
@@ -1,215 +0,0 @@
1
- import e from "./hotspot-palette.js";
2
- import { generateValidationMessage as t, getAllShapes as n, getUpdatedShapes as r, groupShapes as i, updateImageDimensions as a } from "./utils.js";
3
- import o from "./hotspot-container.js";
4
- import s from "react";
5
- import c from "prop-types";
6
- import { jsx as l, jsxs as u } from "react/jsx-runtime";
7
- import { styled as d } from "@mui/material/styles";
8
- import { InputContainer as f, NumberTextField as p, layout as m, settings as h } from "@pie-lib/config-ui";
9
- import g from "@pie-lib/editable-html-tip-tap";
10
- import _ from "@mui/material/Typography";
11
- import v from "@mui/icons-material/Info";
12
- import y from "@mui/material/Tooltip";
13
- //#region src/author/root.tsx
14
- var { Panel: ee, toggle: b, dropdown: te } = h, ne = d("div")(({ theme: e }) => ({
15
- display: "flex",
16
- marginBottom: e.spacing(1.5)
17
- })), x = d("div")({
18
- flex: 1,
19
- width: "90%"
20
- }), S = d(f)(({ theme: e }) => ({
21
- paddingTop: e.spacing(1),
22
- marginTop: e.spacing(2),
23
- marginBottom: e.spacing(2),
24
- width: "100%"
25
- })), C = d(_)(({ theme: e }) => ({ marginRight: e.spacing(1) })), re = d("div")({
26
- display: "flex",
27
- alignItems: "center"
28
- }), ie = d(y)(({ theme: e }) => ({ "& .MuiTooltip-tooltip": {
29
- fontSize: e.typography.fontSize - 2,
30
- whiteSpace: "pre",
31
- maxWidth: "500px"
32
- } })), w = d("div")(({ theme: e }) => ({
33
- fontSize: e.typography.fontSize - 2,
34
- color: e.palette.error.main,
35
- paddingTop: e.spacing(1)
36
- })), T = class extends s.Component {
37
- handleColorChange = (e, t) => {
38
- let { onColorChanged: n } = this.props;
39
- n(`${e}Color`, t);
40
- };
41
- handleOnUpdateImageDimensions = (e, t) => {
42
- let { model: { dimensions: o, shapes: s }, configuration: { preserveAspectRatio: c = {} }, onUpdateImageDimension: l, onUpdateShapes: u } = this.props, d = a(o, {
43
- ...o,
44
- [t]: e
45
- }, c.enabled, t);
46
- u(i(r(o, d, n(s)))), l(d);
47
- };
48
- render() {
49
- let { configuration: n, model: r, imageSupport: i, uploadSoundSupport: a, onConfigurationChanged: c, onImageUpload: d, onModelChangedByConfig: f, onPromptChanged: h, onRationaleChanged: y, onUpdateImageDimension: T, onTeacherInstructionsChanged: ae, onUpdateShapes: E } = this.props, { baseInputConfiguration: oe = {}, contentDimensions: se = {}, maxImageWidth: D = {}, maxImageHeight: O = {}, multipleCorrect: k = {}, partialScoring: A = {}, preserveAspectRatio: j = {}, prompt: M = {}, rationale: N = {}, settingsPanelDisabled: ce, spellCheck: P = {}, teacherInstructions: F = {}, withRubric: I = {}, mathMlOptions: L = {}, language: R = {}, languageChoices: z = {} } = n || {}, { errors: B, extraCSSRules: V, promptEnabled: H, rationaleEnabled: U, spellCheckEnabled: W, teacherInstructionsEnabled: le, toolbarEditorPosition: ue } = r || {}, { prompt: G, rationale: K, shapes: q, selections: J, teacherInstructions: Y } = B || {}, de = t(n), X = D && D.prompt, Z = O && O.prompt, Q = { position: ue === "top" ? "top" : "bottom" }, fe = {
50
- multipleCorrect: k.settings && b(k.label),
51
- partialScoring: A.settings && b(A.label),
52
- promptEnabled: M.settings && b(M.label),
53
- "language.enabled": R.settings && b(R.label, !0),
54
- language: R.settings && R.enabled && te(z.label, z.options)
55
- }, pe = {
56
- teacherInstructionsEnabled: F.settings && b(F.label),
57
- rationaleEnabled: N.settings && b(N.label),
58
- spellCheckEnabled: P.settings && b(P.label),
59
- rubricEnabled: I?.settings && b(I?.label)
60
- }, $ = (e = {}) => ({
61
- ...oe,
62
- ...e
63
- });
64
- return /* @__PURE__ */ u(m.ConfigLayout, {
65
- extraCSSRules: V,
66
- dimensions: se,
67
- hideSettings: ce,
68
- settings: /* @__PURE__ */ l(ee, {
69
- model: r,
70
- onChangeModel: f,
71
- configuration: n,
72
- onChangeConfiguration: c,
73
- groups: {
74
- Settings: fe,
75
- Properties: pe
76
- }
77
- }),
78
- children: [
79
- le && /* @__PURE__ */ u(S, {
80
- label: F.label,
81
- children: [/* @__PURE__ */ l(g, {
82
- markup: r.teacherInstructions || "",
83
- onChange: ae,
84
- imageSupport: i,
85
- nonEmpty: !1,
86
- error: Y,
87
- toolbarOpts: Q,
88
- pluginProps: $(F?.inputConfiguration),
89
- spellCheck: W,
90
- maxImageWidth: D && D.teacherInstructions || X,
91
- maxImageHeight: O && O.teacherInstructions || Z,
92
- uploadSoundSupport: a,
93
- languageCharactersProps: [{ language: "spanish" }, { language: "special" }],
94
- mathMlOptions: L
95
- }), Y && /* @__PURE__ */ l(w, { children: Y })]
96
- }),
97
- H && /* @__PURE__ */ u(S, {
98
- label: M.label,
99
- children: [/* @__PURE__ */ l(g, {
100
- markup: r.prompt || "",
101
- onChange: h,
102
- imageSupport: i,
103
- nonEmpty: !1,
104
- error: G,
105
- toolbarOpts: Q,
106
- pluginProps: $(M?.inputConfiguration),
107
- spellCheck: W,
108
- maxImageWidth: X,
109
- maxImageHeight: Z,
110
- uploadSoundSupport: a,
111
- languageCharactersProps: [{ language: "spanish" }, { language: "special" }],
112
- mathMlOptions: L
113
- }), G && /* @__PURE__ */ l(w, { children: G })]
114
- }),
115
- /* @__PURE__ */ u(re, { children: [/* @__PURE__ */ l(C, {
116
- variant: "h6",
117
- children: "Define Hotspot"
118
- }), /* @__PURE__ */ l(ie, {
119
- disableFocusListener: !0,
120
- disableTouchListener: !0,
121
- placement: "left",
122
- title: de,
123
- children: /* @__PURE__ */ l(v, {
124
- fontSize: "small",
125
- color: "primary",
126
- style: { float: "right" }
127
- })
128
- })] }),
129
- /* @__PURE__ */ l(e, {
130
- hotspotColor: r.hotspotColor,
131
- hotspotList: r.hotspotList,
132
- outlineColor: r.outlineColor,
133
- outlineList: r.outlineList,
134
- onHotspotColorChange: (e) => this.handleColorChange("hotspot", e),
135
- onOutlineColorChange: (e) => this.handleColorChange("outline", e)
136
- }),
137
- /* @__PURE__ */ l(o, {
138
- dimensions: r.dimensions,
139
- imageUrl: r.imageUrl,
140
- multipleCorrect: r.multipleCorrect,
141
- hasErrors: !!q || !!J,
142
- hotspotColor: r.hotspotColor,
143
- outlineColor: r.outlineColor,
144
- selectedHotspotColor: r.selectedHotspotColor,
145
- hoverOutlineColor: r.hoverOutlineColor,
146
- onUpdateImageDimension: T,
147
- onUpdateShapes: E,
148
- onImageUpload: d,
149
- shapes: r.shapes,
150
- strokeWidth: r.strokeWidth,
151
- preserveAspectRatioEnabled: j.enabled,
152
- insertImage: i && i.add
153
- }),
154
- q && /* @__PURE__ */ l(w, { children: q }),
155
- J && /* @__PURE__ */ l(w, { children: J }),
156
- r.imageUrl && /* @__PURE__ */ u(s.Fragment, { children: [/* @__PURE__ */ l(_, {
157
- variant: "h6",
158
- children: "Image Dimensions"
159
- }), /* @__PURE__ */ u(ne, { children: [/* @__PURE__ */ l(x, { children: /* @__PURE__ */ l(p, {
160
- label: "Width",
161
- value: r.dimensions.width,
162
- min: 0,
163
- onChange: (e, t) => this.handleOnUpdateImageDimensions(t, "width"),
164
- showErrorWhenOutsideRange: !0
165
- }, "hotspot-manual-width") }), /* @__PURE__ */ l(x, { children: /* @__PURE__ */ l(p, {
166
- label: "Height",
167
- value: r.dimensions.height,
168
- min: 0,
169
- onChange: (e, t) => this.handleOnUpdateImageDimensions(t, "height"),
170
- showErrorWhenOutsideRange: !0
171
- }, "hotspot-manual-height") })] })] }),
172
- U && /* @__PURE__ */ u(S, {
173
- label: N.label,
174
- children: [/* @__PURE__ */ l(g, {
175
- markup: r.rationale || "",
176
- onChange: y,
177
- imageSupport: i,
178
- error: K,
179
- toolbarOpts: Q,
180
- pluginProps: $(N?.inputConfiguration),
181
- spellCheck: W,
182
- maxImageWidth: D && D.rationale || X,
183
- maxImageHeight: O && O.rationale || Z,
184
- uploadSoundSupport: a,
185
- languageCharactersProps: [{ language: "spanish" }, { language: "special" }],
186
- mathMlOptions: L
187
- }), K && /* @__PURE__ */ l(w, { children: K })]
188
- })
189
- ]
190
- });
191
- }
192
- };
193
- T.propTypes = {
194
- configuration: c.object,
195
- model: c.object.isRequired,
196
- imageSupport: c.shape({
197
- add: c.func,
198
- delete: c.func
199
- }),
200
- uploadSoundSupport: c.shape({
201
- add: c.func,
202
- delete: c.func
203
- }),
204
- onImageUpload: c.func.isRequired,
205
- onColorChanged: c.func.isRequired,
206
- onPromptChanged: c.func.isRequired,
207
- onUpdateImageDimension: c.func.isRequired,
208
- onUpdateShapes: c.func.isRequired,
209
- onModelChangedByConfig: c.func.isRequired,
210
- onRationaleChanged: c.func.isRequired,
211
- onConfigurationChanged: c.func.isRequired,
212
- onTeacherInstructionsChanged: c.func.isRequired
213
- };
214
- //#endregion
215
- export { T as default };
@@ -1,18 +0,0 @@
1
- /**
2
- * @synced-from pie-elements/packages/hotspot/configure/src/shapes/circle.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 declare class CircleShape {
10
- static name: string;
11
- static create(shapes: any, e: any): {
12
- shapes: any[];
13
- isDrawing: boolean;
14
- isDrawingShapeId: string;
15
- };
16
- static finalizeCreation(state: any, props: any): any;
17
- static handleMouseMove(state: any, e: any): any;
18
- }
@@ -1,47 +0,0 @@
1
- //#region src/author/shapes/circle.ts
2
- var e = class {
3
- static name = "circle";
4
- static create(e, t) {
5
- let n = [...e], r = {
6
- id: `${Math.max(...n.map((e) => parseInt(e.id)), 0) + 1}`,
7
- radius: 0,
8
- x: t.evt.layerX,
9
- y: t.evt.layerY,
10
- group: "circles",
11
- index: n.length
12
- };
13
- return n.push(r), {
14
- shapes: n,
15
- isDrawing: !0,
16
- isDrawingShapeId: r.id
17
- };
18
- }
19
- static finalizeCreation(e, t) {
20
- let n = e.shapes.findIndex((t) => t.id === e.isDrawingShapeId);
21
- return n === -1 || e.shapes[n].radius > 0 ? {
22
- ...e,
23
- isDrawing: !1,
24
- stateShapes: !1,
25
- isDrawingShapeId: void 0
26
- } : {
27
- ...e,
28
- isDrawing: !1,
29
- stateShapes: !1,
30
- isDrawingShapeId: void 0,
31
- shapes: e.shapes.filter((t) => t.id !== e.isDrawingShapeId)
32
- };
33
- }
34
- static handleMouseMove(e, t) {
35
- let { isDrawing: n, isDrawingShapeId: r, shapes: i } = e;
36
- if (n) {
37
- let e = [...i], n = e.findIndex((e) => e.id === r);
38
- if (n !== -1) {
39
- let r = e[n], i = t.evt.layerX - r.x, a = t.evt.layerY - r.y;
40
- return r.radius = Math.sqrt(i * i + a * a), { shapes: e };
41
- }
42
- }
43
- return e;
44
- }
45
- };
46
- //#endregion
47
- export { e as CircleShape };
@@ -1,12 +0,0 @@
1
- /**
2
- * @synced-from pie-elements/packages/hotspot/configure/src/shapes/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 * from './circle.js';
10
- export * from './rectagle.js';
11
- export * from './polygon.js';
12
- export * from './utils.js';
@@ -1,19 +0,0 @@
1
- /**
2
- * @synced-from pie-elements/packages/hotspot/configure/src/shapes/polygon.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 declare class PolygonShape {
10
- static name: string;
11
- static create(shapes: any, e: any): {
12
- shapes: any[];
13
- isDrawing: boolean;
14
- isDrawingShapeId: string;
15
- };
16
- static addPoint(state: any, e: any, onPolygonComplete: any): any;
17
- static finalizeCreation(state: any, onPolygonComplete: any): any;
18
- static handleMouseMove(state: any, e: any): any;
19
- }
@@ -1,51 +0,0 @@
1
- //#region src/author/shapes/polygon.ts
2
- var e = class e {
3
- static name = "polygon";
4
- static create(e, t) {
5
- let n = [...e], r = {
6
- id: "newPolygon",
7
- points: [{
8
- x: t.evt.layerX,
9
- y: t.evt.layerY
10
- }],
11
- group: "polygons",
12
- index: n.length
13
- };
14
- return n.push(r), {
15
- shapes: n,
16
- isDrawing: !0,
17
- isDrawingShapeId: r.id
18
- };
19
- }
20
- static addPoint(t, n, r) {
21
- let i = JSON.parse(JSON.stringify(t.shapes)), a = i.findIndex((e) => e.id === t.isDrawingShapeId);
22
- if (a !== -1) {
23
- let o = i[a];
24
- if (o.points && Array.isArray(o.points)) {
25
- let s = o.points[0];
26
- return Math.abs(s.x - n.evt.layerX) <= 5 && Math.abs(s.y - n.evt.layerY) <= 5 ? e.finalizeCreation(t, r) : (o.points.push({
27
- x: n.evt.layerX,
28
- y: n.evt.layerY
29
- }), i[a] = o, { shapes: i });
30
- }
31
- }
32
- return t;
33
- }
34
- static finalizeCreation(e, t) {
35
- let { shapes: n } = e, r = [...n], i = Math.max(...e.shapes.map((e) => parseInt(e.id) || 0), 0), a = r.findIndex((t) => t.id === e.isDrawingShapeId);
36
- if (a !== -1 && r[a].points.length > 2) {
37
- let e = r[a];
38
- return e.id = `${i + 1}`, t(r), {
39
- isDrawing: !1,
40
- shapes: r,
41
- isDrawingShapeId: void 0
42
- };
43
- }
44
- return e;
45
- }
46
- static handleMouseMove(e, t) {
47
- return e;
48
- }
49
- };
50
- //#endregion
51
- export { e as PolygonShape };
@@ -1,18 +0,0 @@
1
- /**
2
- * @synced-from pie-elements/packages/hotspot/configure/src/shapes/rectagle.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 declare class RectangleShape {
10
- static name: string;
11
- static create(shapes: any, e: any): {
12
- shapes: any[];
13
- isDrawing: boolean;
14
- isDrawingShapeId: string;
15
- };
16
- static finalizeCreation(state: any, props: any): any;
17
- static handleMouseMove(state: any, e: any): any;
18
- }
@@ -1,57 +0,0 @@
1
- //#region src/author/shapes/rectagle.ts
2
- var e = class {
3
- static name = "rectangle";
4
- static create(e, t) {
5
- let n = [...e], r = {
6
- id: `${(Math.max(...n.map((e) => parseInt(e.id)), 0) || 0) + 1}`,
7
- height: 0,
8
- width: 0,
9
- x: t.evt.layerX,
10
- y: t.evt.layerY,
11
- group: "rectangles",
12
- index: n.length
13
- };
14
- return n.push(r), {
15
- shapes: n,
16
- isDrawing: !0,
17
- isDrawingShapeId: r.id
18
- };
19
- }
20
- static finalizeCreation(e, t) {
21
- let n = e.shapes.findIndex((t) => t.id === e.isDrawingShapeId);
22
- if (n !== -1) {
23
- let t = e.shapes[n];
24
- return t.width > 0 && t.height > 0 ? {
25
- ...e,
26
- isDrawing: !1,
27
- stateShapes: !1,
28
- isDrawingShapeId: void 0
29
- } : {
30
- ...e,
31
- isDrawing: !1,
32
- stateShapes: !1,
33
- isDrawingShapeId: void 0,
34
- shapes: e.shapes.filter((t) => t.id !== e.isDrawingShapeId)
35
- };
36
- }
37
- return {
38
- ...e,
39
- isDrawing: !1,
40
- stateShapes: !1,
41
- isDrawingShapeId: void 0
42
- };
43
- }
44
- static handleMouseMove(e, t) {
45
- let { isDrawing: n, isDrawingShapeId: r, shapes: i } = e;
46
- if (n) {
47
- let e = [...i], n = e.findIndex((e) => e.id === r);
48
- if (n !== -1) {
49
- let r = e[n];
50
- return r.width = t.evt.layerX - r.x, r.height = t.evt.layerY - r.y, { shapes: e };
51
- }
52
- }
53
- return e;
54
- }
55
- };
56
- //#endregion
57
- export { e as RectangleShape };
@@ -1,19 +0,0 @@
1
- /**
2
- * @synced-from pie-elements/packages/hotspot/configure/src/shapes/utils.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 declare const SUPPORTED_SHAPES: {
10
- CIRCLE: string;
11
- POLYGON: string;
12
- RECTANGLE: string;
13
- NONE: string;
14
- };
15
- export declare const SHAPE_GROUPS: {
16
- CIRCLES: string;
17
- POLYGONS: string;
18
- RECTANGLES: string;
19
- };
@@ -1,16 +0,0 @@
1
- import { CircleShape as e } from "./circle.js";
2
- import { RectangleShape as t } from "./rectagle.js";
3
- import { PolygonShape as n } from "./polygon.js";
4
- //#region src/author/shapes/utils.ts
5
- var r = {
6
- CIRCLE: e.name,
7
- POLYGON: n.name,
8
- RECTANGLE: t.name,
9
- NONE: "none"
10
- }, i = {
11
- CIRCLES: "circles",
12
- POLYGONS: "polygons",
13
- RECTANGLES: "rectangles"
14
- };
15
- //#endregion
16
- export { i as SHAPE_GROUPS, r as SUPPORTED_SHAPES };
@@ -1,29 +0,0 @@
1
- /**
2
- * @synced-from pie-elements/packages/hotspot/configure/src/upload-control.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 UploadControl: {
12
- ({ label, onInputClick, onUploadImage, setRef }: {
13
- label: any;
14
- onInputClick: any;
15
- onUploadImage: any;
16
- setRef: any;
17
- }): React.JSX.Element;
18
- propTypes: {
19
- label: PropTypes.Validator<string>;
20
- onInputClick: PropTypes.Validator<(...args: any[]) => any>;
21
- onUploadImage: PropTypes.Validator<(...args: any[]) => any>;
22
- setRef: PropTypes.Validator<(...args: any[]) => any>;
23
- };
24
- defaultProps: {
25
- classNameButton: string;
26
- classNameSection: string;
27
- };
28
- };
29
- export default UploadControl;