@pie-element/extended-text-entry 15.1.0-next.28 → 15.1.1-next.0

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 (195) hide show
  1. package/dist/author/defaults.d.ts +166 -0
  2. package/dist/author/defaults.js +209 -0
  3. package/dist/author/index.d.ts +52 -0
  4. package/dist/author/index.js +74 -0
  5. package/dist/author/main.d.ts +26 -0
  6. package/dist/author/main.js +166 -0
  7. package/dist/controller/defaults.d.ts +33 -0
  8. package/dist/controller/defaults.js +104 -0
  9. package/dist/controller/index.d.ts +59 -0
  10. package/dist/controller/index.js +72 -0
  11. package/dist/delivery/annotation/annotation-editor.d.ts +47 -0
  12. package/dist/delivery/annotation/annotation-editor.js +296 -0
  13. package/dist/delivery/annotation/annotation-menu.d.ts +25 -0
  14. package/dist/delivery/annotation/annotation-menu.js +113 -0
  15. package/dist/delivery/annotation/annotation-utils.d.ts +20 -0
  16. package/dist/delivery/annotation/annotation-utils.js +65 -0
  17. package/dist/delivery/annotation/freeform-editor.d.ts +30 -0
  18. package/dist/delivery/annotation/freeform-editor.js +143 -0
  19. package/dist/delivery/index.d.ts +23 -0
  20. package/dist/delivery/index.js +68 -0
  21. package/dist/delivery/main.d.ts +27 -0
  22. package/dist/delivery/main.js +134 -0
  23. package/dist/extended-text-entry.css +2 -0
  24. package/dist/index.d.ts +1 -0
  25. package/dist/index.iife.d.ts +8 -0
  26. package/dist/index.iife.js +404 -0
  27. package/dist/index.js +2 -0
  28. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_DataView.js +6 -0
  29. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Hash.js +16 -0
  30. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_ListCache.js +16 -0
  31. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Map.js +6 -0
  32. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_MapCache.js +16 -0
  33. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Promise.js +6 -0
  34. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Set.js +6 -0
  35. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Stack.js +14 -0
  36. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Symbol.js +5 -0
  37. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Uint8Array.js +5 -0
  38. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_WeakMap.js +6 -0
  39. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayEach.js +7 -0
  40. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayFilter.js +10 -0
  41. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayLikeKeys.js +15 -0
  42. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayPush.js +7 -0
  43. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_assignValue.js +10 -0
  44. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_assocIndexOf.js +8 -0
  45. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseAssign.js +8 -0
  46. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseAssignIn.js +8 -0
  47. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseAssignValue.js +12 -0
  48. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseClone.js +57 -0
  49. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseCreate.js +14 -0
  50. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseGetAllKeys.js +9 -0
  51. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseGetTag.js +10 -0
  52. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsArguments.js +9 -0
  53. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsMap.js +9 -0
  54. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsNative.js +11 -0
  55. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsSet.js +9 -0
  56. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsTypedArray.js +11 -0
  57. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseKeys.js +12 -0
  58. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseKeysIn.js +13 -0
  59. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseTimes.js +7 -0
  60. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseTrim.js +8 -0
  61. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseUnary.js +8 -0
  62. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneArrayBuffer.js +8 -0
  63. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneBuffer.js +10 -0
  64. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneDataView.js +8 -0
  65. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneRegExp.js +8 -0
  66. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneSymbol.js +8 -0
  67. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneTypedArray.js +8 -0
  68. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_copyArray.js +8 -0
  69. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_copyObject.js +14 -0
  70. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_copySymbols.js +8 -0
  71. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_copySymbolsIn.js +8 -0
  72. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_coreJsData.js +5 -0
  73. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_defineProperty.js +10 -0
  74. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_freeGlobal.js +4 -0
  75. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getAllKeys.js +9 -0
  76. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getAllKeysIn.js +9 -0
  77. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getMapData.js +8 -0
  78. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getNative.js +9 -0
  79. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getPrototype.js +5 -0
  80. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getRawTag.js +14 -0
  81. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getSymbols.js +10 -0
  82. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getSymbolsIn.js +11 -0
  83. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getTag.js +23 -0
  84. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getValue.js +6 -0
  85. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashClear.js +7 -0
  86. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashDelete.js +7 -0
  87. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashGet.js +13 -0
  88. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashHas.js +9 -0
  89. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashSet.js +9 -0
  90. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_initCloneArray.js +8 -0
  91. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_initCloneByTag.js +33 -0
  92. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_initCloneObject.js +9 -0
  93. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isIndex.js +8 -0
  94. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isKeyable.js +7 -0
  95. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isMasked.js +11 -0
  96. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isPrototype.js +8 -0
  97. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheClear.js +6 -0
  98. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheDelete.js +9 -0
  99. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheGet.js +8 -0
  100. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheHas.js +7 -0
  101. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheSet.js +8 -0
  102. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheClear.js +13 -0
  103. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheDelete.js +8 -0
  104. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheGet.js +7 -0
  105. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheHas.js +7 -0
  106. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheSet.js +8 -0
  107. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nativeCreate.js +5 -0
  108. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nativeKeys.js +5 -0
  109. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nativeKeysIn.js +8 -0
  110. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nodeUtil.js +9 -0
  111. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_objectToString.js +7 -0
  112. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_overArg.js +8 -0
  113. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_root.js +5 -0
  114. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackClear.js +7 -0
  115. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackDelete.js +7 -0
  116. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackGet.js +6 -0
  117. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackHas.js +6 -0
  118. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackSet.js +16 -0
  119. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_toSource.js +15 -0
  120. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_trimmedEndIndex.js +8 -0
  121. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/cloneDeep.js +8 -0
  122. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/debounce.js +50 -0
  123. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/eq.js +6 -0
  124. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isArguments.js +10 -0
  125. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isArray.js +4 -0
  126. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isArrayLike.js +8 -0
  127. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isBuffer.js +6 -0
  128. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isFunction.js +11 -0
  129. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isLength.js +7 -0
  130. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isMap.js +7 -0
  131. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isObject.js +7 -0
  132. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isObjectLike.js +6 -0
  133. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isSet.js +7 -0
  134. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isSymbol.js +9 -0
  135. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isTypedArray.js +7 -0
  136. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/keys.js +9 -0
  137. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/keysIn.js +9 -0
  138. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/now.js +7 -0
  139. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/stubArray.js +6 -0
  140. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/stubFalse.js +6 -0
  141. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/toNumber.js +19 -0
  142. package/dist/print/index.d.ts +15 -0
  143. package/dist/print/index.js +49 -0
  144. package/package.json +58 -23
  145. package/CHANGELOG.json +0 -1282
  146. package/CHANGELOG.md +0 -2252
  147. package/LICENSE.md +0 -5
  148. package/README.md +0 -1
  149. package/configure/CHANGELOG.json +0 -922
  150. package/configure/CHANGELOG.md +0 -1942
  151. package/configure/lib/defaults.js +0 -224
  152. package/configure/lib/defaults.js.map +0 -1
  153. package/configure/lib/index.js +0 -125
  154. package/configure/lib/index.js.map +0 -1
  155. package/configure/lib/main.js +0 -247
  156. package/configure/lib/main.js.map +0 -1
  157. package/configure/package.json +0 -23
  158. package/controller/CHANGELOG.json +0 -362
  159. package/controller/CHANGELOG.md +0 -1172
  160. package/controller/lib/defaults.js +0 -91
  161. package/controller/lib/defaults.js.map +0 -1
  162. package/controller/lib/index.js +0 -101
  163. package/controller/lib/index.js.map +0 -1
  164. package/controller/package.json +0 -16
  165. package/docs/config-schema.json +0 -1782
  166. package/docs/config-schema.json.md +0 -1333
  167. package/docs/demo/config.js +0 -7
  168. package/docs/demo/generate.js +0 -14
  169. package/docs/demo/index.html +0 -3
  170. package/docs/demo/session.js +0 -7
  171. package/docs/pie-schema.json +0 -954
  172. package/docs/pie-schema.json.md +0 -717
  173. package/lib/annotation/annotation-editor.js +0 -636
  174. package/lib/annotation/annotation-editor.js.map +0 -1
  175. package/lib/annotation/annotation-menu.js +0 -147
  176. package/lib/annotation/annotation-menu.js.map +0 -1
  177. package/lib/annotation/annotation-utils.js +0 -205
  178. package/lib/annotation/annotation-utils.js.map +0 -1
  179. package/lib/annotation/freeform-editor.js +0 -241
  180. package/lib/annotation/freeform-editor.js.map +0 -1
  181. package/lib/index.js +0 -108
  182. package/lib/index.js.map +0 -1
  183. package/lib/main.js +0 -205
  184. package/lib/main.js.map +0 -1
  185. package/lib/print.js +0 -86
  186. package/lib/print.js.map +0 -1
  187. package/module/configure.js +0 -1
  188. package/module/controller.js +0 -139
  189. package/module/demo.js +0 -38
  190. package/module/element.js +0 -1
  191. package/module/index.html +0 -21
  192. package/module/manifest.json +0 -22
  193. package/module/print-demo.js +0 -76
  194. package/module/print.html +0 -18
  195. package/module/print.js +0 -1
@@ -0,0 +1,33 @@
1
+ /**
2
+ * @synced-from pie-elements/packages/extended-text-entry/controller/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
+ annotationsEnabled: boolean;
11
+ dimensions: {
12
+ height: number;
13
+ width: number;
14
+ };
15
+ equationEditor: string;
16
+ feedbackEnabled: boolean;
17
+ mathInput: boolean;
18
+ playerSpellCheckDisabled: boolean;
19
+ predefinedAnnotations: {
20
+ label: string;
21
+ text: string;
22
+ type: string;
23
+ }[];
24
+ prompt: string;
25
+ promptEnabled: boolean;
26
+ rationale: string;
27
+ rationaleEnabled: boolean;
28
+ studentInstructionsEnabled: boolean;
29
+ teacherInstructions: string;
30
+ teacherInstructionsEnabled: boolean;
31
+ toolbarEditorPosition: string;
32
+ };
33
+ export default _default;
@@ -0,0 +1,104 @@
1
+ //#region src/controller/defaults.ts
2
+ var e = {
3
+ annotationsEnabled: !1,
4
+ dimensions: {
5
+ height: 100,
6
+ width: 500
7
+ },
8
+ equationEditor: "Grade 8 - HS",
9
+ feedbackEnabled: !1,
10
+ mathInput: !1,
11
+ playerSpellCheckDisabled: !0,
12
+ predefinedAnnotations: [
13
+ {
14
+ label: "good",
15
+ text: "good",
16
+ type: "positive"
17
+ },
18
+ {
19
+ label: "★",
20
+ text: "★",
21
+ type: "positive"
22
+ },
23
+ {
24
+ label: ":-)",
25
+ text: ":-)",
26
+ type: "positive"
27
+ },
28
+ {
29
+ label: "creative",
30
+ text: "creative",
31
+ type: "positive"
32
+ },
33
+ {
34
+ label: "run-on",
35
+ text: "run-on",
36
+ type: "negative"
37
+ },
38
+ {
39
+ label: "frag",
40
+ text: "fragment",
41
+ type: "negative"
42
+ },
43
+ {
44
+ label: "tran",
45
+ text: "transition",
46
+ type: "negative"
47
+ },
48
+ {
49
+ label: "supp",
50
+ text: "support needed",
51
+ type: "negative"
52
+ },
53
+ {
54
+ label: "punc",
55
+ text: "punctuation",
56
+ type: "negative"
57
+ },
58
+ {
59
+ label: "agr",
60
+ text: "agreement wrong",
61
+ type: "negative"
62
+ },
63
+ {
64
+ label: "unclear",
65
+ text: "unclear",
66
+ type: "negative"
67
+ },
68
+ {
69
+ label: "cut",
70
+ text: "cut",
71
+ type: "negative"
72
+ },
73
+ {
74
+ label: "sp",
75
+ text: "spelling",
76
+ type: "negative"
77
+ },
78
+ {
79
+ label: "cap",
80
+ text: "capitalization",
81
+ type: "negative"
82
+ },
83
+ {
84
+ label: "inf",
85
+ text: "informal",
86
+ type: "negative"
87
+ },
88
+ {
89
+ label: "awk",
90
+ text: "awkward",
91
+ type: "negative"
92
+ }
93
+ ],
94
+ prompt: "",
95
+ promptEnabled: !0,
96
+ rationale: "",
97
+ rationaleEnabled: !0,
98
+ studentInstructionsEnabled: !0,
99
+ teacherInstructions: "",
100
+ teacherInstructionsEnabled: !0,
101
+ toolbarEditorPosition: "bottom"
102
+ };
103
+ //#endregion
104
+ export { e as default };
@@ -0,0 +1,59 @@
1
+ /**
2
+ * @synced-from pie-elements/packages/extended-text-entry/controller/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 declare function createDefaultModel(model?: {}): Promise<{
10
+ annotationsEnabled: boolean;
11
+ dimensions: {
12
+ height: number;
13
+ width: number;
14
+ };
15
+ equationEditor: string;
16
+ feedbackEnabled: boolean;
17
+ mathInput: boolean;
18
+ playerSpellCheckDisabled: boolean;
19
+ predefinedAnnotations: {
20
+ label: string;
21
+ text: string;
22
+ type: string;
23
+ }[];
24
+ prompt: string;
25
+ promptEnabled: boolean;
26
+ rationale: string;
27
+ rationaleEnabled: boolean;
28
+ studentInstructionsEnabled: boolean;
29
+ teacherInstructions: string;
30
+ teacherInstructionsEnabled: boolean;
31
+ toolbarEditorPosition: string;
32
+ }>;
33
+ export declare const normalize: (question: any) => any;
34
+ export declare function model(question: any, session: any, env: any): Promise<{
35
+ prompt: any;
36
+ dimensions: any;
37
+ customKeys: any;
38
+ id: any;
39
+ disabled: boolean;
40
+ feedback: string | undefined;
41
+ teacherInstructions: any;
42
+ language: any;
43
+ mathInput: any;
44
+ spanishInput: any;
45
+ specialInput: any;
46
+ equationEditor: any;
47
+ spellCheckEnabled: boolean;
48
+ playersToolbarPosition: any;
49
+ annotatorMode: any;
50
+ disabledAnnotator: boolean;
51
+ predefinedAnnotations: any;
52
+ extraCSSRules: any;
53
+ }>;
54
+ export declare function outcome(): Promise<{
55
+ score: number;
56
+ completed: string;
57
+ note: string;
58
+ }>;
59
+ export declare const validate: (model?: {}, config?: {}) => {};
@@ -0,0 +1,72 @@
1
+ import e from "./defaults.js";
2
+ import t from "debug";
3
+ import { getFeedback as n } from "@pie-element/shared-feedback";
4
+ //#region src/controller/index.ts
5
+ var r = t("@pie-element:extended-text-entry:controller");
6
+ async function i(t = {}) {
7
+ return r("[createDefaultModel]", t), {
8
+ ...e,
9
+ ...t
10
+ };
11
+ }
12
+ var a = (t) => ({
13
+ ...e,
14
+ ...t
15
+ });
16
+ async function o(e, t, i) {
17
+ r("[question]", e);
18
+ let o = a(e), s = i.mode === "evaluate" && o.feedbackEnabled ? n(o.feedback, "Your answer has been submitted") : Promise.resolve(void 0), c = null;
19
+ c = i.role === "instructor" && (i.mode === "view" || i.mode === "evaluate") && o.teacherInstructionsEnabled ? o.teacherInstructions : null;
20
+ let l = o.equationEditor || "miscellaneous";
21
+ switch (o.equationEditor) {
22
+ case "Grade 1 - 2":
23
+ l = 1;
24
+ break;
25
+ case "Grade 3 - 5":
26
+ l = 3;
27
+ break;
28
+ case "Grade 6 - 7":
29
+ l = 6;
30
+ break;
31
+ case "Grade 8 - HS":
32
+ l = 8;
33
+ break;
34
+ default: break;
35
+ }
36
+ let u = o.annotationsEnabled && (i.role === "instructor" || i.mode === "evaluate");
37
+ return s.then((e) => ({
38
+ prompt: o.promptEnabled ? o.prompt : null,
39
+ dimensions: o.dimensions,
40
+ customKeys: o.customKeys || [],
41
+ id: o.id,
42
+ disabled: i.mode !== "gather",
43
+ feedback: e,
44
+ teacherInstructions: c,
45
+ language: o.language,
46
+ mathInput: o.mathInput,
47
+ spanishInput: o.spanishInput,
48
+ specialInput: o.specialInput,
49
+ equationEditor: l,
50
+ spellCheckEnabled: !o.playerSpellCheckDisabled,
51
+ playersToolbarPosition: o.playersToolbarPosition || "bottom",
52
+ annotatorMode: u,
53
+ disabledAnnotator: o.annotationsEnabled ? i.role !== "instructor" : !0,
54
+ predefinedAnnotations: o.annotationsEnabled ? o.predefinedAnnotations : [],
55
+ extraCSSRules: o.extraCSSRules
56
+ }));
57
+ }
58
+ async function s() {
59
+ return {
60
+ score: 0,
61
+ completed: "n/a",
62
+ note: "Requires manual scoring"
63
+ };
64
+ }
65
+ var c = (e) => (e || "").replace(/(<(?!img|iframe|source)([^>]+)>)/gi, ""), l = (e = {}, t = {}) => {
66
+ let n = {};
67
+ return ["teacherInstructions", "prompt"].forEach((r) => {
68
+ t[r]?.required && !c(e[r]) && (n[r] = "This field is required.");
69
+ }), n;
70
+ };
71
+ //#endregion
72
+ export { i as createDefaultModel, o as model, a as normalize, s as outcome, l as validate };
@@ -0,0 +1,47 @@
1
+ /**
2
+ * @synced-from pie-elements/packages/extended-text-entry/src/annotation/annotation-editor.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 class AnnotationEditor extends React.Component {
12
+ static propTypes: {
13
+ text: PropTypes.Requireable<string>;
14
+ comment: PropTypes.Requireable<string>;
15
+ annotations: PropTypes.Requireable<any[]>;
16
+ predefinedAnnotations: PropTypes.Requireable<any[]>;
17
+ onChange: PropTypes.Validator<(...args: any[]) => any>;
18
+ onCommentChange: PropTypes.Validator<(...args: any[]) => any>;
19
+ width: PropTypes.Requireable<number>;
20
+ height: PropTypes.Requireable<number>;
21
+ maxHeight: PropTypes.Requireable<string>;
22
+ disabled: PropTypes.Requireable<boolean>;
23
+ disabledMath: PropTypes.Requireable<boolean>;
24
+ customKeys: PropTypes.Requireable<any[]>;
25
+ keypadMode: PropTypes.Requireable<string>;
26
+ };
27
+ constructor(props: any);
28
+ componentDidMount(): void;
29
+ adjustAnnotationsPosition: any;
30
+ handleClick: any;
31
+ handleHover: any;
32
+ handleCancelHover: any;
33
+ handleClose: any;
34
+ handleSelection: any;
35
+ deleteAnnotation: any;
36
+ createDOMAnnotation: any;
37
+ createNewAnnotation: any;
38
+ handleMenuClick: any;
39
+ editAnnotation: any;
40
+ addAnnotation: any;
41
+ updateLabel: any;
42
+ changeAnnotationType: any;
43
+ updateAnnotation: any;
44
+ componentWillUnmount(): void;
45
+ render(): React.JSX.Element;
46
+ }
47
+ export default AnnotationEditor;
@@ -0,0 +1,296 @@
1
+ import { clearSelection as e, getAnnotationElements as t, getDOMNodes as n, getLabelElement as r, getRangeDetails as i, isSideLabel as a, removeElemsWrapping as o, wrapRange as s } from "./annotation-utils.js";
2
+ import c from "./freeform-editor.js";
3
+ import l from "./annotation-menu.js";
4
+ import u from "react";
5
+ import d from "prop-types";
6
+ import { styled as f } from "@mui/material/styles";
7
+ import p from "@pie-lib/editable-html-tip-tap";
8
+ import { jsx as m, jsxs as h } from "react/jsx-runtime";
9
+ import { InputContainer as g } from "@pie-lib/config-ui";
10
+ //#region src/delivery/annotation/annotation-editor.tsx
11
+ var _ = f("div")({
12
+ padding: "10px 120px 10px 16px",
13
+ backgroundColor: "rgba(0, 0, 0, 0.06)",
14
+ border: "1px solid #ccc",
15
+ borderRadius: "4px",
16
+ overflowY: "scroll",
17
+ lineHeight: "36px",
18
+ whiteSpace: "pre-wrap",
19
+ overflowWrap: "break-word",
20
+ "& p": { margin: 0 },
21
+ "& span[data-latex]": {
22
+ userSelect: "none",
23
+ "-webkit-user-select": "none",
24
+ "-moz-user-select": "none",
25
+ "-ms-user-select": "none"
26
+ }
27
+ }), v = f("div")({ width: "230px" }), y = f("div")({
28
+ position: "relative",
29
+ overflowX: "hidden",
30
+ display: "flex"
31
+ }), b = f(g)(({ theme: e }) => ({
32
+ paddingTop: e.spacing(2),
33
+ marginBottom: e.spacing(2),
34
+ marginTop: e.spacing(2),
35
+ width: "100%"
36
+ })), x = "\n .sideAnnotation:before {\n position: absolute;\n right: var(--before-right, 100%);\n top: var(--before-top, 5px);\n border: solid transparent;\n content: \"\";\n height: 0;\n width: 0;\n pointer-events: none;\n border-width: var(--before-border-width, 7px);\n border-right-color: var(--before-border-color, rgb(153, 255, 153));\n }\n";
37
+ if (!document.getElementById("annotation-editor-styles")) {
38
+ let e = document.createElement("style");
39
+ e.id = "annotation-editor-styles", e.textContent = x, document.head.appendChild(e);
40
+ }
41
+ var S = class extends u.Component {
42
+ static propTypes = {
43
+ text: d.string,
44
+ comment: d.string,
45
+ annotations: d.array,
46
+ predefinedAnnotations: d.array,
47
+ onChange: d.func.isRequired,
48
+ onCommentChange: d.func.isRequired,
49
+ width: d.number,
50
+ height: d.number,
51
+ maxHeight: d.string,
52
+ disabled: d.bool,
53
+ disabledMath: d.bool,
54
+ customKeys: d.array,
55
+ keypadMode: d.string
56
+ };
57
+ constructor(e) {
58
+ super(e), this.state = {
59
+ anchorEl: null,
60
+ openedMenu: !1,
61
+ openedEditor: !1,
62
+ selectedElems: [],
63
+ labelElem: null,
64
+ selectionDetails: null,
65
+ annotation: null,
66
+ annotationIndex: null
67
+ };
68
+ }
69
+ componentDidMount() {
70
+ let { annotations: e, text: t } = this.props;
71
+ t && e.forEach((e) => {
72
+ let [t, r] = n(e.start, e.end, this.textRef);
73
+ if (t && r) {
74
+ let n = document.createRange();
75
+ n.setStart(t.node, t.offset), n.setEnd(r.node, r.offset);
76
+ let i = s(n);
77
+ this.createDOMAnnotation(i, e);
78
+ }
79
+ }), this.textRef && (this.adjustAnnotationsPosition(), this.textRef.addEventListener("scroll", this.adjustAnnotationsPosition));
80
+ }
81
+ adjustAnnotationsPosition = () => {
82
+ if (this.textRef && this.labelsRef) {
83
+ let e = this.textRef.offsetLeft + this.textRef.offsetWidth + 8;
84
+ Array.from(this.labelsRef.children).forEach((n) => {
85
+ let r = t(n.dataset.annId), i = (r[0].offsetTop ? r[0].offsetTop : r[0].offsetParent.offsetTop) - this.textRef.scrollTop - 6;
86
+ n.style.top = `${i}px`, n.style.left = `${e}px`;
87
+ });
88
+ }
89
+ };
90
+ handleClick = (e) => {
91
+ let { annotations: n } = this.props, { selectionDetails: i } = this.state;
92
+ if (i) return;
93
+ let { id: a, annId: o } = e.target.dataset, s = a || o, c = t(s), l = r(s), u = n.findIndex((e) => e.id === s), d = l.hasAttribute("data-freeform");
94
+ d && (l.style.zIndex = "10"), this.setState({
95
+ anchorEl: c[0],
96
+ openedMenu: !!a || !!o && !d,
97
+ openedEditor: !!o && d,
98
+ selectedElems: c,
99
+ labelElem: l,
100
+ annotationIndex: u,
101
+ annotation: n[u],
102
+ selectionDetails: null
103
+ });
104
+ };
105
+ handleHover = (e) => {
106
+ let { id: n, annId: i } = e.target.dataset, a = n || i, o = t(a), s = r(a), c = s.hasAttribute("data-freeform");
107
+ o.forEach((e) => {
108
+ e.style.zIndex = "20", e.classList.contains("positive") ? e.style.backgroundColor = "rgb(51, 255, 51, 0.7)" : e.classList.contains("negative") && (e.style.backgroundColor = "rgba(255, 102, 204, 0.55)");
109
+ }), c ? (s.style.zIndex = "20", s.classList.contains("positive") ? (s.style.backgroundColor = "rgb(128, 255, 128)", s.style.setProperty("--before-border-color", "rgb(153, 255, 153)")) : s.classList.contains("negative") && (s.style.backgroundColor = "rgb(255, 179, 230)", s.style.setProperty("--before-border-color", "rgb(255, 179, 230)"))) : (s.style.zIndex = "20", s.classList.contains("positive") ? s.style.color = "rgb(0, 77, 0)" : s.classList.contains("negative") && (s.style.color = "rgb(153, 0, 102)"));
110
+ };
111
+ handleCancelHover = (e) => {
112
+ let { id: n, annId: i } = e.target.dataset, a = n || i, o = t(a), s = r(a), c = s.hasAttribute("data-freeform");
113
+ o.forEach((e) => {
114
+ e.style.zIndex = "", e.classList.contains("positive") ? e.style.backgroundColor = "rgb(51, 255, 51, 0.5)" : e.classList.contains("negative") && (e.style.backgroundColor = "rgba(255, 102, 204, 0.4)");
115
+ }), c ? (s.style.zIndex = "", s.classList.contains("positive") ? (s.style.backgroundColor = "rgb(153, 255, 153)", s.style.removeProperty("--before-border-color")) : s.classList.contains("negative") && (s.style.backgroundColor = "rgb(255, 204, 238)", s.style.removeProperty("--before-border-color"))) : (s.style.zIndex = "", s.classList.contains("positive") ? s.style.color = "rgb(0, 128, 0)" : s.classList.contains("negative") && (s.style.color = "rgb(204, 0, 136)"));
116
+ };
117
+ handleClose = (t) => {
118
+ let { selectedElems: n, labelElem: r } = this.state;
119
+ n.length && !n[0].hasAttribute("data-id") && o(n, this.textRef), r && (r.style.zIndex = ""), this.setState({
120
+ anchorEl: null,
121
+ openedMenu: !1,
122
+ openedEditor: !1,
123
+ selectedElems: [],
124
+ labelElem: null,
125
+ selectionDetails: null,
126
+ annotationIndex: null,
127
+ annotation: null
128
+ }), e();
129
+ };
130
+ handleSelection = (t) => {
131
+ let n = window.getSelection();
132
+ if (t.detail > 2) {
133
+ e();
134
+ return;
135
+ }
136
+ if (n && n.rangeCount > 0) {
137
+ let e = n.getRangeAt(0), t = e.toString(), r = this.textRef.contains(e.commonAncestorContainer);
138
+ if (!n.isCollapsed && t !== "" && r) {
139
+ let t = i(e, this.textRef), n = s(e);
140
+ this.setState({
141
+ anchorEl: n[0],
142
+ openedMenu: !0,
143
+ selectedElems: n,
144
+ selectionDetails: t
145
+ });
146
+ }
147
+ }
148
+ };
149
+ deleteAnnotation = () => {
150
+ let { annotations: e, onChange: t } = this.props, { selectedElems: n, labelElem: r, annotationIndex: i, annotation: s } = this.state;
151
+ (a(s.label) ? this.labelsRef : n[0]).removeChild(r), o(n, this.textRef), e.splice(i, 1), t(e), this.handleClose();
152
+ };
153
+ createDOMAnnotation = (e, t) => {
154
+ let { disabled: n } = this.props, { id: r, label: i, type: o } = t;
155
+ (e || []).forEach((e) => {
156
+ e.dataset.id = r, e.className = `annotation ${o}`, e.style.position = "relative", e.style.cursor = "pointer", o === "positive" ? e.style.backgroundColor = "rgb(51, 255, 51, 0.5)" : o === "negative" && (e.style.backgroundColor = "rgba(255, 102, 204, 0.4)"), e.onclick = !n && this.handleClick, e.onmouseover = this.handleHover, e.onmouseout = this.handleCancelHover;
157
+ });
158
+ let s = e && e[0] || {}, c = document.createElement("SPAN");
159
+ if (c.dataset.annId = r, c.innerHTML = i, c.onclick = !n && this.handleClick, c.onmouseover = this.handleHover, c.onmouseout = this.handleCancelHover, a(i)) {
160
+ let e = (s.offsetTop ? s.offsetTop : s.offsetParent.offsetTop) - this.textRef.scrollTop, t = this.textRef.offsetLeft + this.textRef.offsetWidth + 8;
161
+ c.dataset.freeform = !0, c.className = `sideAnnotation ${o}`, c.style.position = "absolute", c.style.padding = "4px", c.style.borderRadius = "4px", c.style.marginLeft = "8px", c.style.width = "180px", c.style.whiteSpace = "pre-wrap", c.style.wordBreak = "break-word", c.style.border = "2px solid #ffffff", c.style.fontSize = "14px", c.style.fontStyle = "normal", c.style.fontWeight = "normal", c.style.top = `${e}px`, c.style.left = `${t}px`, o === "negative" ? c.style.backgroundColor = "rgb(255, 204, 238)" : o === "positive" && (c.style.backgroundColor = "rgb(153, 255, 153)"), c.style.setProperty("--before-border-width", "7px"), c.style.setProperty("--before-top", "5px"), c.style.setProperty("--before-right", "100%"), o === "negative" ? c.style.setProperty("--before-border-color", "rgb(255, 204, 238)") : o === "positive" && c.style.setProperty("--before-border-color", "rgb(153, 255, 153)"), this.labelsRef.appendChild(c);
162
+ } else c.className = `annotationLabel ${o}`, c.style.backgroundColor = "rgb(242, 242, 242)", c.style.padding = "2px", c.style.position = "absolute", c.style.userSelect = "none", c.style.whiteSpace = "nowrap", c.style.top = "-10px", c.style.left = "-2px", c.style.fontSize = "12px", c.style.fontStyle = "normal", c.style.fontWeight = "normal", c.style.lineHeight = "6px", c.style.webkitUserSelect = "none", c.style.mozUserSelect = "none", c.style.msUserSelect = "none", o === "positive" ? c.style.color = "rgb(0, 128, 0)" : o === "negative" && (c.style.color = "rgb(204, 0, 136)"), s.appendChild(c);
163
+ };
164
+ createNewAnnotation = (e, t) => {
165
+ let { selectedElems: n, selectionDetails: r } = this.state, i = {
166
+ id: [
167
+ r.start,
168
+ r.end,
169
+ (/* @__PURE__ */ new Date()).getTime()
170
+ ].join("-"),
171
+ label: e,
172
+ type: t,
173
+ ...r
174
+ };
175
+ return this.createDOMAnnotation(n, i), i;
176
+ };
177
+ handleMenuClick = (e) => {
178
+ let { annotations: t, onChange: n } = this.props, { annotation: r, annotationIndex: i } = this.state, { type: a, text: o } = e;
179
+ if (r) {
180
+ let e = {
181
+ ...r,
182
+ label: o,
183
+ type: a
184
+ }, { type: n, label: s } = r;
185
+ this.updateLabel(s, e, a !== n && n), t.splice(i, 1, e);
186
+ } else {
187
+ let e = this.createNewAnnotation(o, a);
188
+ t.push(e);
189
+ }
190
+ n(t), this.handleClose();
191
+ };
192
+ editAnnotation = () => {
193
+ this.setState({
194
+ openedMenu: !1,
195
+ openedEditor: !0
196
+ });
197
+ };
198
+ addAnnotation = (e) => {
199
+ let { annotations: t, onChange: n } = this.props, i = this.createNewAnnotation("", e), a = r(i.id);
200
+ t.push(i), this.setState({
201
+ openedMenu: !1,
202
+ openedEditor: !0,
203
+ annotationIndex: t.length - 1,
204
+ annotation: i,
205
+ labelElem: a
206
+ }), n(t);
207
+ };
208
+ updateLabel = (e, t, n) => {
209
+ let { selectedElems: r, labelElem: i } = this.state, { label: o, type: s } = t;
210
+ a(o) && a(e) || !a(o) && !a(e) ? (i.innerHTML = o, n && (i.classList.remove(n), i.classList.add(s), r.forEach((e) => {
211
+ e.classList.remove(n), e.classList.add(s);
212
+ }))) : a(o) && !a(e) ? (r[0].removeChild(i), this.createDOMAnnotation(r, t)) : !a(o) && a(e) && (this.labelsRef.removeChild(i), this.createDOMAnnotation(r, t));
213
+ };
214
+ changeAnnotationType = (e) => {
215
+ let { annotations: t, onChange: n } = this.props, { annotationIndex: r, selectedElems: i } = this.state, { type: a, label: o } = t[r], s = a === "positive" ? "negative" : "positive", c = {
216
+ ...t[r],
217
+ type: s,
218
+ label: e
219
+ };
220
+ i.forEach((e) => {
221
+ e.classList.remove(a), e.classList.add(s);
222
+ }), this.updateLabel(o, c, a), t.splice(r, 1, c), n(t), this.handleClose();
223
+ };
224
+ updateAnnotation = (e, t) => {
225
+ let { annotations: n, onChange: r } = this.props, { annotationIndex: i } = this.state, a = {
226
+ ...n[i],
227
+ label: t
228
+ };
229
+ this.updateLabel(e, a), n.splice(i, 1, a), r(n);
230
+ };
231
+ componentWillUnmount() {
232
+ this.textRef.removeEventListener("scroll", this.adjustAnnotationsPosition);
233
+ }
234
+ render() {
235
+ let { comment: t, customKeys: n, disabled: r, disabledMath: i, keypadMode: a, height: o, width: s, maxHeight: u, onCommentChange: d, predefinedAnnotations: f, text: g } = this.props, { anchorEl: x, annotation: S, openedMenu: C, openedEditor: w, selectionDetails: T } = this.state, E = x && (x.offsetTop ? x.offsetTop : x.offsetParent.offsetTop), D = this.textRef && E ? E - this.textRef.scrollTop - 8 : 0;
236
+ return /* @__PURE__ */ h("div", { children: [
237
+ /* @__PURE__ */ h(y, { children: [/* @__PURE__ */ m(_, {
238
+ style: {
239
+ width: s - 34,
240
+ minHeight: o,
241
+ maxHeight: u
242
+ },
243
+ ref: (e) => this.textRef = e,
244
+ onMouseDown: r ? () => {} : e,
245
+ onMouseUp: r ? () => {} : this.handleSelection,
246
+ dangerouslySetInnerHTML: { __html: g }
247
+ }), /* @__PURE__ */ m(v, { ref: (e) => this.labelsRef = e })] }),
248
+ /* @__PURE__ */ m(b, {
249
+ label: "Comment",
250
+ children: /* @__PURE__ */ m(p, {
251
+ className: "prompt",
252
+ markup: t || "",
253
+ onChange: d,
254
+ width: s && (s + 104).toString(),
255
+ disabled: r,
256
+ pluginProps: {
257
+ math: {
258
+ disabled: i,
259
+ customKeys: n,
260
+ keypadMode: a,
261
+ controlledKeypadMode: !1
262
+ },
263
+ video: { disabled: !0 },
264
+ audio: { disabled: !0 },
265
+ textAlign: { disabled: !0 },
266
+ h3: { disabled: !0 }
267
+ }
268
+ })
269
+ }),
270
+ /* @__PURE__ */ m(l, {
271
+ anchorEl: x,
272
+ open: C && !r,
273
+ annotations: f,
274
+ isNewAnnotation: !!T,
275
+ onClose: this.handleClose,
276
+ onDelete: this.deleteAnnotation,
277
+ onEdit: this.editAnnotation,
278
+ onWrite: this.addAnnotation,
279
+ onAnnotate: this.handleMenuClick
280
+ }),
281
+ /* @__PURE__ */ m(c, {
282
+ anchorEl: this.textRef,
283
+ open: w && !r,
284
+ offset: D,
285
+ value: S && S.label || "",
286
+ type: S && S.type,
287
+ onClose: this.handleClose,
288
+ onDelete: this.deleteAnnotation,
289
+ onSave: this.updateAnnotation,
290
+ onTypeChange: this.changeAnnotationType
291
+ })
292
+ ] });
293
+ }
294
+ };
295
+ //#endregion
296
+ export { S as default };
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @synced-from pie-elements/packages/extended-text-entry/src/annotation/annotation-menu.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 class AnnotationMenu extends React.Component {
12
+ static propTypes: {
13
+ anchorEl: PropTypes.Requireable<object>;
14
+ open: PropTypes.Requireable<boolean>;
15
+ annotations: PropTypes.Requireable<any[]>;
16
+ isNewAnnotation: PropTypes.Requireable<boolean>;
17
+ onClose: PropTypes.Requireable<(...args: any[]) => any>;
18
+ onDelete: PropTypes.Requireable<(...args: any[]) => any>;
19
+ onEdit: PropTypes.Requireable<(...args: any[]) => any>;
20
+ onWrite: PropTypes.Requireable<(...args: any[]) => any>;
21
+ onAnnotate: PropTypes.Requireable<(...args: any[]) => any>;
22
+ };
23
+ render(): React.JSX.Element;
24
+ }
25
+ export default AnnotationMenu;