@pie-element/categorize 13.1.0-next.28 → 13.1.1-next.1

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 (252) hide show
  1. package/dist/author/defaults.d.ts +223 -0
  2. package/dist/author/defaults.js +170 -0
  3. package/dist/author/design/builder.d.ts +10 -0
  4. package/dist/author/design/builder.js +24 -0
  5. package/dist/author/design/buttons.d.ts +28 -0
  6. package/dist/author/design/buttons.js +36 -0
  7. package/dist/author/design/categories/RowLabel.d.ts +23 -0
  8. package/dist/author/design/categories/RowLabel.js +47 -0
  9. package/dist/author/design/categories/alternateResponses.d.ts +31 -0
  10. package/dist/author/design/categories/alternateResponses.js +62 -0
  11. package/dist/author/design/categories/category.d.ts +44 -0
  12. package/dist/author/design/categories/category.js +98 -0
  13. package/dist/author/design/categories/choice-preview.d.ts +25 -0
  14. package/dist/author/design/categories/choice-preview.js +60 -0
  15. package/dist/author/design/categories/droppable-placeholder.d.ts +11 -0
  16. package/dist/author/design/categories/droppable-placeholder.js +71 -0
  17. package/dist/author/design/categories/index.d.ts +41 -0
  18. package/dist/author/design/categories/index.js +146 -0
  19. package/dist/author/design/choices/choice.d.ts +11 -0
  20. package/dist/author/design/choices/choice.js +129 -0
  21. package/dist/author/design/choices/config.d.ts +21 -0
  22. package/dist/author/design/choices/config.js +33 -0
  23. package/dist/author/design/choices/index.d.ts +41 -0
  24. package/dist/author/design/choices/index.js +110 -0
  25. package/dist/author/design/header.d.ts +24 -0
  26. package/dist/author/design/header.js +49 -0
  27. package/dist/author/design/index.d.ts +52 -0
  28. package/dist/author/design/index.js +417 -0
  29. package/dist/author/design/input-header.d.ts +39 -0
  30. package/dist/author/design/input-header.js +69 -0
  31. package/dist/author/design/utils.d.ts +9 -0
  32. package/dist/author/design/utils.js +7 -0
  33. package/dist/author/index.d.ts +51 -0
  34. package/dist/author/index.js +87 -0
  35. package/dist/author/main.d.ts +23 -0
  36. package/dist/author/main.js +30 -0
  37. package/dist/author/utils.d.ts +16 -0
  38. package/dist/author/utils.js +17 -0
  39. package/dist/controller/defaults.d.ts +34 -0
  40. package/dist/controller/defaults.js +29 -0
  41. package/dist/controller/index.d.ts +61 -0
  42. package/dist/controller/index.js +155 -0
  43. package/dist/controller/utils.d.ts +20 -0
  44. package/dist/controller/utils.js +35 -0
  45. package/dist/delivery/categorize/categories.d.ts +34 -0
  46. package/dist/delivery/categorize/categories.js +66 -0
  47. package/dist/delivery/categorize/category.d.ts +28 -0
  48. package/dist/delivery/categorize/category.js +48 -0
  49. package/dist/delivery/categorize/choice.d.ts +27 -0
  50. package/dist/delivery/categorize/choice.js +94 -0
  51. package/dist/delivery/categorize/choices.d.ts +39 -0
  52. package/dist/delivery/categorize/choices.js +51 -0
  53. package/dist/delivery/categorize/droppable-placeholder.d.ts +32 -0
  54. package/dist/delivery/categorize/droppable-placeholder.js +64 -0
  55. package/dist/delivery/categorize/grid-content.d.ts +25 -0
  56. package/dist/delivery/categorize/grid-content.js +39 -0
  57. package/dist/delivery/categorize/index.d.ts +57 -0
  58. package/dist/delivery/categorize/index.js +260 -0
  59. package/dist/delivery/index.d.ts +27 -0
  60. package/dist/delivery/index.js +152 -0
  61. package/dist/index.d.ts +1 -0
  62. package/dist/index.iife.d.ts +8 -0
  63. package/dist/index.iife.js +152 -0
  64. package/dist/index.js +2 -0
  65. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_DataView.js +6 -0
  66. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Hash.js +16 -0
  67. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_ListCache.js +16 -0
  68. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Map.js +6 -0
  69. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_MapCache.js +16 -0
  70. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Promise.js +6 -0
  71. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Set.js +6 -0
  72. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Stack.js +14 -0
  73. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Symbol.js +5 -0
  74. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Uint8Array.js +5 -0
  75. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_WeakMap.js +6 -0
  76. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayEach.js +7 -0
  77. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayFilter.js +10 -0
  78. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayLikeKeys.js +15 -0
  79. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayPush.js +7 -0
  80. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_assignValue.js +10 -0
  81. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_assocIndexOf.js +8 -0
  82. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseAssign.js +8 -0
  83. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseAssignIn.js +8 -0
  84. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseAssignValue.js +12 -0
  85. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseClone.js +57 -0
  86. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseCreate.js +14 -0
  87. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseGetAllKeys.js +9 -0
  88. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseGetTag.js +10 -0
  89. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsArguments.js +9 -0
  90. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsMap.js +9 -0
  91. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsNative.js +11 -0
  92. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsSet.js +9 -0
  93. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsTypedArray.js +11 -0
  94. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseKeys.js +12 -0
  95. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseKeysIn.js +13 -0
  96. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseTimes.js +7 -0
  97. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseUnary.js +8 -0
  98. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneArrayBuffer.js +8 -0
  99. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneBuffer.js +10 -0
  100. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneDataView.js +8 -0
  101. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneRegExp.js +8 -0
  102. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneSymbol.js +8 -0
  103. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneTypedArray.js +8 -0
  104. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_copyArray.js +8 -0
  105. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_copyObject.js +14 -0
  106. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_copySymbols.js +8 -0
  107. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_copySymbolsIn.js +8 -0
  108. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_coreJsData.js +5 -0
  109. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_defineProperty.js +10 -0
  110. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_freeGlobal.js +4 -0
  111. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getAllKeys.js +9 -0
  112. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getAllKeysIn.js +9 -0
  113. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getMapData.js +8 -0
  114. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getNative.js +9 -0
  115. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getPrototype.js +5 -0
  116. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getRawTag.js +14 -0
  117. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getSymbols.js +10 -0
  118. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getSymbolsIn.js +11 -0
  119. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getTag.js +23 -0
  120. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getValue.js +6 -0
  121. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashClear.js +7 -0
  122. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashDelete.js +7 -0
  123. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashGet.js +13 -0
  124. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashHas.js +9 -0
  125. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashSet.js +9 -0
  126. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_initCloneArray.js +8 -0
  127. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_initCloneByTag.js +33 -0
  128. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_initCloneObject.js +9 -0
  129. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isIndex.js +8 -0
  130. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isKeyable.js +7 -0
  131. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isMasked.js +11 -0
  132. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isPrototype.js +8 -0
  133. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheClear.js +6 -0
  134. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheDelete.js +9 -0
  135. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheGet.js +8 -0
  136. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheHas.js +7 -0
  137. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheSet.js +8 -0
  138. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheClear.js +13 -0
  139. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheDelete.js +8 -0
  140. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheGet.js +7 -0
  141. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheHas.js +7 -0
  142. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheSet.js +8 -0
  143. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nativeCreate.js +5 -0
  144. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nativeKeys.js +5 -0
  145. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nativeKeysIn.js +8 -0
  146. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nodeUtil.js +9 -0
  147. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_objectToString.js +7 -0
  148. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_overArg.js +8 -0
  149. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_root.js +5 -0
  150. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackClear.js +7 -0
  151. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackDelete.js +7 -0
  152. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackGet.js +6 -0
  153. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackHas.js +6 -0
  154. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackSet.js +16 -0
  155. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_toSource.js +15 -0
  156. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/cloneDeep.js +8 -0
  157. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/eq.js +6 -0
  158. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isArguments.js +10 -0
  159. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isArray.js +4 -0
  160. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isArrayLike.js +8 -0
  161. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isBuffer.js +6 -0
  162. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isEmpty.js +21 -0
  163. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isFunction.js +11 -0
  164. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isLength.js +7 -0
  165. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isMap.js +7 -0
  166. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isObject.js +7 -0
  167. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isObjectLike.js +6 -0
  168. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isSet.js +7 -0
  169. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isTypedArray.js +7 -0
  170. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/keys.js +9 -0
  171. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/keysIn.js +9 -0
  172. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/stubArray.js +6 -0
  173. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/stubFalse.js +6 -0
  174. package/package.json +52 -16
  175. package/CHANGELOG.json +0 -1637
  176. package/CHANGELOG.md +0 -2524
  177. package/LICENSE.md +0 -5
  178. package/README.md +0 -5
  179. package/configure/CHANGELOG.json +0 -1202
  180. package/configure/CHANGELOG.md +0 -2107
  181. package/configure/lib/defaults.js +0 -222
  182. package/configure/lib/defaults.js.map +0 -1
  183. package/configure/lib/design/builder.js +0 -55
  184. package/configure/lib/design/builder.js.map +0 -1
  185. package/configure/lib/design/buttons.js +0 -59
  186. package/configure/lib/design/buttons.js.map +0 -1
  187. package/configure/lib/design/categories/RowLabel.js +0 -66
  188. package/configure/lib/design/categories/RowLabel.js.map +0 -1
  189. package/configure/lib/design/categories/alternateResponses.js +0 -116
  190. package/configure/lib/design/categories/alternateResponses.js.map +0 -1
  191. package/configure/lib/design/categories/category.js +0 -153
  192. package/configure/lib/design/categories/category.js.map +0 -1
  193. package/configure/lib/design/categories/choice-preview.js +0 -79
  194. package/configure/lib/design/categories/choice-preview.js.map +0 -1
  195. package/configure/lib/design/categories/droppable-placeholder.js +0 -93
  196. package/configure/lib/design/categories/droppable-placeholder.js.map +0 -1
  197. package/configure/lib/design/categories/index.js +0 -256
  198. package/configure/lib/design/categories/index.js.map +0 -1
  199. package/configure/lib/design/choices/choice.js +0 -187
  200. package/configure/lib/design/choices/choice.js.map +0 -1
  201. package/configure/lib/design/choices/config.js +0 -58
  202. package/configure/lib/design/choices/config.js.map +0 -1
  203. package/configure/lib/design/choices/index.js +0 -197
  204. package/configure/lib/design/choices/index.js.map +0 -1
  205. package/configure/lib/design/header.js +0 -71
  206. package/configure/lib/design/header.js.map +0 -1
  207. package/configure/lib/design/index.js +0 -727
  208. package/configure/lib/design/index.js.map +0 -1
  209. package/configure/lib/design/input-header.js +0 -105
  210. package/configure/lib/design/input-header.js.map +0 -1
  211. package/configure/lib/design/utils.js +0 -12
  212. package/configure/lib/design/utils.js.map +0 -1
  213. package/configure/lib/index.js +0 -147
  214. package/configure/lib/index.js.map +0 -1
  215. package/configure/lib/main.js +0 -44
  216. package/configure/lib/main.js.map +0 -1
  217. package/configure/lib/utils.js +0 -43
  218. package/configure/lib/utils.js.map +0 -1
  219. package/configure/package.json +0 -32
  220. package/controller/CHANGELOG.json +0 -452
  221. package/controller/CHANGELOG.md +0 -1366
  222. package/controller/lib/defaults.js +0 -33
  223. package/controller/lib/defaults.js.map +0 -1
  224. package/controller/lib/index.js +0 -479
  225. package/controller/lib/index.js.map +0 -1
  226. package/controller/lib/utils.js +0 -69
  227. package/controller/lib/utils.js.map +0 -1
  228. package/controller/package.json +0 -18
  229. package/docs/config-schema.json +0 -2897
  230. package/docs/config-schema.json.md +0 -2138
  231. package/docs/demo/config.js +0 -8
  232. package/docs/demo/generate.js +0 -357
  233. package/docs/demo/index.html +0 -1
  234. package/docs/demo/session.js +0 -12
  235. package/docs/pie-schema.json +0 -1784
  236. package/docs/pie-schema.json.md +0 -1046
  237. package/lib/categorize/categories.js +0 -135
  238. package/lib/categorize/categories.js.map +0 -1
  239. package/lib/categorize/category.js +0 -67
  240. package/lib/categorize/category.js.map +0 -1
  241. package/lib/categorize/choice.js +0 -140
  242. package/lib/categorize/choice.js.map +0 -1
  243. package/lib/categorize/choices.js +0 -99
  244. package/lib/categorize/choices.js.map +0 -1
  245. package/lib/categorize/droppable-placeholder.js +0 -84
  246. package/lib/categorize/droppable-placeholder.js.map +0 -1
  247. package/lib/categorize/grid-content.js +0 -55
  248. package/lib/categorize/grid-content.js.map +0 -1
  249. package/lib/categorize/index.js +0 -450
  250. package/lib/categorize/index.js.map +0 -1
  251. package/lib/index.js +0 -316
  252. package/lib/index.js.map +0 -1
@@ -0,0 +1,94 @@
1
+ import e from "react";
2
+ import { color as t } from "@pie-lib/render-ui";
3
+ import n from "prop-types";
4
+ import r from "debug";
5
+ import { styled as i } from "@mui/material/styles";
6
+ import { useDraggable as a } from "@dnd-kit/core";
7
+ import { uid as o } from "@pie-lib/drag";
8
+ import { jsx as s } from "react/jsx-runtime";
9
+ import c from "@mui/material/Card";
10
+ import l from "@mui/material/CardContent";
11
+ //#region src/delivery/categorize/choice.tsx
12
+ r("@pie-ui:categorize:choice");
13
+ var u = {
14
+ content: n.string.isRequired,
15
+ id: n.string
16
+ }, d = i("div", { shouldForwardProp: (e) => ![
17
+ "isDragging",
18
+ "disabled",
19
+ "correct"
20
+ ].includes(e) })(({ isDragging: e, disabled: n, correct: r }) => ({
21
+ direction: "initial",
22
+ cursor: n ? "not-allowed" : e ? "move" : "pointer",
23
+ width: "100%",
24
+ borderRadius: "6px",
25
+ ...r === !0 && { border: `solid 2px ${t.correct()}` },
26
+ ...r === !1 && { border: `solid 2px ${t.incorrect()}` }
27
+ })), f = i(c)({
28
+ color: t.text(),
29
+ backgroundColor: t.background(),
30
+ width: "100%"
31
+ }), p = i(l)(({ theme: e }) => ({
32
+ color: t.text(),
33
+ backgroundColor: t.white(),
34
+ "&:last-child": { paddingBottom: e.spacing(2) },
35
+ borderRadius: "4px",
36
+ border: "1px solid",
37
+ "& p": { margin: "0px" }
38
+ })), m = class extends e.Component {
39
+ static propTypes = {
40
+ ...u,
41
+ disabled: n.bool,
42
+ correct: n.bool,
43
+ isDragging: n.bool
44
+ };
45
+ static defaultProps = {};
46
+ render() {
47
+ let { content: e, isDragging: t, disabled: n, correct: r } = this.props;
48
+ return /* @__PURE__ */ s(d, {
49
+ isDragging: t,
50
+ disabled: n,
51
+ correct: r,
52
+ children: /* @__PURE__ */ s(f, { children: /* @__PURE__ */ s(p, { dangerouslySetInnerHTML: { __html: e } }) })
53
+ });
54
+ }
55
+ }, h = ({ id: e, content: t, disabled: n, correct: r, extraStyle: i, categoryId: o, choiceIndex: c }) => {
56
+ let { attributes: l, listeners: u, setNodeRef: d, isDragging: f } = a({
57
+ id: o === void 0 ? `choice-${e}-board` : `choice-${e}-${o}-${c}`,
58
+ data: {
59
+ id: e,
60
+ categoryId: o,
61
+ choiceIndex: c,
62
+ value: t,
63
+ itemType: "categorize",
64
+ type: "choice"
65
+ },
66
+ disabled: n
67
+ });
68
+ return /* @__PURE__ */ s("div", {
69
+ ref: d,
70
+ style: {
71
+ margin: "4px",
72
+ ...i
73
+ },
74
+ ...u,
75
+ ...l,
76
+ children: /* @__PURE__ */ s(m, {
77
+ id: e,
78
+ content: t,
79
+ disabled: n,
80
+ correct: r,
81
+ isDragging: f
82
+ })
83
+ });
84
+ };
85
+ h.propTypes = {
86
+ ...u,
87
+ extraStyle: n.object,
88
+ categoryId: n.string,
89
+ choiceIndex: n.number,
90
+ onRemoveChoice: n.func
91
+ };
92
+ var g = o.withUid(h);
93
+ //#endregion
94
+ export { u as ChoiceType, g as default };
@@ -0,0 +1,39 @@
1
+ /**
2
+ * @synced-from pie-elements/packages/categorize/src/categorize/choices.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
+ import { ChoiceType } from './choice.js';
12
+ export { ChoiceType };
13
+ export declare class Choices extends React.Component {
14
+ static propTypes: {
15
+ choices: PropTypes.Requireable<(NonNullable<PropTypes.InferProps<{
16
+ content: PropTypes.Validator<string>;
17
+ id: PropTypes.Requireable<string>;
18
+ }> | PropTypes.InferProps<{
19
+ empty: PropTypes.Requireable<boolean>;
20
+ }> | null | undefined> | null | undefined)[]>;
21
+ model: PropTypes.Requireable<PropTypes.InferProps<{
22
+ categoriesPerRow: PropTypes.Requireable<number>;
23
+ choicesLabel: PropTypes.Requireable<string>;
24
+ }>>;
25
+ disabled: PropTypes.Requireable<boolean>;
26
+ choicePosition: PropTypes.Requireable<string>;
27
+ onDropChoice: PropTypes.Requireable<(...args: any[]) => any>;
28
+ onRemoveChoice: PropTypes.Requireable<(...args: any[]) => any>;
29
+ correct: any;
30
+ };
31
+ static defaultProps: {
32
+ model: {
33
+ categoriesPerRow: number;
34
+ choicesLabel: string;
35
+ };
36
+ };
37
+ render(): React.JSX.Element;
38
+ }
39
+ export default Choices;
@@ -0,0 +1,51 @@
1
+ import e, { ChoiceType as t } from "./choice.js";
2
+ import n from "./droppable-placeholder.js";
3
+ import r from "react";
4
+ import i from "prop-types";
5
+ import { styled as a } from "@mui/material/styles";
6
+ import { jsx as o, jsxs as s } from "react/jsx-runtime";
7
+ //#region src/delivery/categorize/choices.tsx
8
+ var c = a("div")({
9
+ flex: 1,
10
+ touchAction: "none"
11
+ }), l = a("div")(({ theme: e }) => ({
12
+ margin: "0 auto",
13
+ textAlign: "center",
14
+ paddingTop: e.spacing(1)
15
+ })), u = class extends r.Component {
16
+ static propTypes = {
17
+ choices: i.arrayOf(i.oneOfType([i.shape(t), i.shape({ empty: i.bool })])),
18
+ model: i.shape({
19
+ categoriesPerRow: i.number,
20
+ choicesLabel: i.string
21
+ }),
22
+ disabled: i.bool,
23
+ choicePosition: i.string,
24
+ onDropChoice: i.func,
25
+ onRemoveChoice: i.func,
26
+ correct: i.boolean
27
+ };
28
+ static defaultProps = { model: {
29
+ categoriesPerRow: 1,
30
+ choicesLabel: ""
31
+ } };
32
+ render() {
33
+ let { choices: t = [], model: r, disabled: i, onDropChoice: a, onRemoveChoice: u, choicePosition: d, correct: f } = this.props, p = { textAlign: "center" };
34
+ return d === "left" && (p.direction = "rtl"), /* @__PURE__ */ o(c, { children: /* @__PURE__ */ s(n, {
35
+ id: "choices-board",
36
+ onDropChoice: a,
37
+ onRemoveChoice: u,
38
+ disabled: i,
39
+ style: { background: "none" },
40
+ choiceBoard: !0,
41
+ correct: f,
42
+ children: [r.choicesLabel && r.choicesLabel !== "" && /* @__PURE__ */ o(l, { dangerouslySetInnerHTML: { __html: r.choicesLabel } }), t.map((t, n) => t.empty ? /* @__PURE__ */ o("div", {}, n) : /* @__PURE__ */ o(e, {
43
+ disabled: i,
44
+ extraStyle: { maxWidth: `${95 / r.categoriesPerRow}%` },
45
+ ...t
46
+ }, n))]
47
+ }) });
48
+ }
49
+ };
50
+ //#endregion
51
+ export { u as default };
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @synced-from pie-elements/packages/categorize/src/categorize/droppable-placeholder.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 DroppablePlaceholder: {
12
+ ({ children, grid, disabled, choiceBoard, minRowHeight, id, correct }: {
13
+ children: any;
14
+ grid: any;
15
+ disabled: any;
16
+ choiceBoard: any;
17
+ minRowHeight: any;
18
+ id: any;
19
+ correct: any;
20
+ }): React.JSX.Element;
21
+ propTypes: {
22
+ choiceBoard: PropTypes.Requireable<boolean>;
23
+ children: PropTypes.Validator<NonNullable<PropTypes.ReactNodeLike>>;
24
+ grid: PropTypes.Requireable<object>;
25
+ disabled: PropTypes.Requireable<boolean>;
26
+ minRowHeight: PropTypes.Requireable<string>;
27
+ onDropChoice: PropTypes.Requireable<(...args: any[]) => any>;
28
+ id: PropTypes.Validator<string>;
29
+ correct: PropTypes.Requireable<boolean>;
30
+ };
31
+ };
32
+ export default DroppablePlaceholder;
@@ -0,0 +1,64 @@
1
+ import "react";
2
+ import { color as e } from "@pie-lib/render-ui";
3
+ import t from "prop-types";
4
+ import n from "debug";
5
+ import { useTheme as r } from "@mui/material/styles";
6
+ import { useDroppable as i } from "@dnd-kit/core";
7
+ import { PlaceHolder as a } from "@pie-lib/drag";
8
+ import { jsx as o } from "react/jsx-runtime";
9
+ //#region src/delivery/categorize/droppable-placeholder.tsx
10
+ n("@pie-ui:categorize:droppable-placeholder");
11
+ var s = ({ children: t, grid: n, disabled: s, choiceBoard: c, minRowHeight: l, id: u, correct: d }) => {
12
+ let f = r(), { setNodeRef: p, isOver: m } = i({
13
+ id: u,
14
+ data: {
15
+ itemType: "categorize",
16
+ categoryId: u
17
+ },
18
+ disabled: s
19
+ }), h = {
20
+ padding: f.spacing(.5),
21
+ borderRadius: f.spacing(.5),
22
+ gridColumnGap: 0,
23
+ gridRowGap: 0,
24
+ display: "flex",
25
+ flexWrap: "wrap",
26
+ justifyContent: "center",
27
+ alignItems: "center",
28
+ alignContent: "flex-start",
29
+ width: "100%",
30
+ height: "100%",
31
+ ...d === !1 && !c && { border: `solid 2px ${e.incorrect()}` },
32
+ ...d === !0 && !c && { border: `solid 2px ${e.correct()}` }
33
+ };
34
+ return /* @__PURE__ */ o("div", {
35
+ ref: p,
36
+ style: {
37
+ flex: 1,
38
+ minHeight: l || "80px",
39
+ position: "relative",
40
+ touchAction: "none"
41
+ },
42
+ children: /* @__PURE__ */ o(a, {
43
+ isOver: m,
44
+ grid: n,
45
+ disabled: s,
46
+ choiceBoard: c,
47
+ isCategorize: !0,
48
+ extraStyles: h,
49
+ children: t
50
+ })
51
+ });
52
+ };
53
+ s.propTypes = {
54
+ choiceBoard: t.bool,
55
+ children: t.node.isRequired,
56
+ grid: t.object,
57
+ disabled: t.bool,
58
+ minRowHeight: t.string,
59
+ onDropChoice: t.func,
60
+ id: t.string.isRequired,
61
+ correct: t.bool
62
+ };
63
+ //#endregion
64
+ export { s as default };
@@ -0,0 +1,25 @@
1
+ /**
2
+ * @synced-from pie-elements/packages/categorize/src/categorize/grid-content.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
+ export declare class GridContent extends React.Component {
12
+ static propTypes: {
13
+ className: PropTypes.Requireable<string>;
14
+ children: PropTypes.Validator<NonNullable<NonNullable<PropTypes.ReactNodeLike>>>;
15
+ columns: PropTypes.Requireable<number>;
16
+ rows: PropTypes.Requireable<number>;
17
+ extraStyle: PropTypes.Requireable<object>;
18
+ };
19
+ static defaultProps: {
20
+ columns: number;
21
+ rows: number;
22
+ };
23
+ render(): React.JSX.Element;
24
+ }
25
+ export default GridContent;
@@ -0,0 +1,39 @@
1
+ import e from "react";
2
+ import t from "prop-types";
3
+ import { styled as n } from "@mui/material/styles";
4
+ import { jsx as r } from "react/jsx-runtime";
5
+ //#region src/delivery/categorize/grid-content.tsx
6
+ var i = class extends e.Component {
7
+ static propTypes = {
8
+ className: t.string,
9
+ children: t.oneOfType([t.arrayOf(t.node), t.node]).isRequired,
10
+ columns: t.number,
11
+ rows: t.number,
12
+ extraStyle: t.object
13
+ };
14
+ static defaultProps = {
15
+ columns: 2,
16
+ rows: 2
17
+ };
18
+ render() {
19
+ let { className: e, children: t, columns: n, extraStyle: i, rows: o } = this.props;
20
+ return /* @__PURE__ */ r(a, {
21
+ style: {
22
+ gridTemplateColumns: `repeat(${n}, 1fr)`,
23
+ gridTemplateRows: o === 2 ? "auto 1fr" : `repeat(${o}, auto)`,
24
+ ...i
25
+ },
26
+ className: e,
27
+ children: t
28
+ });
29
+ }
30
+ }, a = n("div")(({ theme: e }) => ({
31
+ display: "grid",
32
+ columnGap: e.spacing(1),
33
+ gridColumnGap: e.spacing(1),
34
+ rowGap: e.spacing(1),
35
+ gridRowGap: e.spacing(1),
36
+ gridAutoRows: "1fr"
37
+ }));
38
+ //#endregion
39
+ export { i as default };
@@ -0,0 +1,57 @@
1
+ /**
2
+ * @synced-from pie-elements/packages/categorize/src/categorize/index.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
+ export declare class Categorize extends React.Component {
12
+ static propTypes: {
13
+ model: PropTypes.Requireable<object>;
14
+ session: PropTypes.Requireable<PropTypes.InferProps<{
15
+ answers: PropTypes.Requireable<(PropTypes.InferProps<{
16
+ choice: PropTypes.Requireable<string>;
17
+ category: PropTypes.Requireable<string>;
18
+ }> | null | undefined)[]>;
19
+ }>>;
20
+ onAnswersChange: PropTypes.Validator<(...args: any[]) => any>;
21
+ onShowCorrectToggle: PropTypes.Validator<(...args: any[]) => any>;
22
+ pauseMathObserver: PropTypes.Requireable<(...args: any[]) => any>;
23
+ resumeMathObserver: PropTypes.Requireable<(...args: any[]) => any>;
24
+ };
25
+ static defaultProps: {
26
+ disabled: boolean;
27
+ };
28
+ constructor(props: any);
29
+ removeChoice: any;
30
+ dropChoice: any;
31
+ UNSAFE_componentWillReceiveProps(nextProps: any): void;
32
+ toggleShowCorrect: () => void;
33
+ getPositionDirection: any;
34
+ existAlternateResponse: (correctResponse: any) => any;
35
+ render(): React.JSX.Element;
36
+ }
37
+ declare class CategorizeProvider extends React.Component {
38
+ static propTypes: {
39
+ model: PropTypes.Requireable<object>;
40
+ session: PropTypes.Requireable<PropTypes.InferProps<{
41
+ answers: PropTypes.Requireable<(PropTypes.InferProps<{
42
+ choice: PropTypes.Requireable<string>;
43
+ category: PropTypes.Requireable<string>;
44
+ }> | null | undefined)[]>;
45
+ }>>;
46
+ onAnswersChange: PropTypes.Validator<(...args: any[]) => any>;
47
+ onShowCorrectToggle: PropTypes.Validator<(...args: any[]) => any>;
48
+ pauseMathObserver: PropTypes.Requireable<(...args: any[]) => any>;
49
+ resumeMathObserver: PropTypes.Requireable<(...args: any[]) => any>;
50
+ };
51
+ constructor(props: any);
52
+ onDragStart: any;
53
+ onDragEnd: any;
54
+ renderDragOverlay: any;
55
+ render(): React.JSX.Element;
56
+ }
57
+ export default CategorizeProvider;
@@ -0,0 +1,260 @@
1
+ import e from "./choice.js";
2
+ import t from "./choices.js";
3
+ import n from "./categories.js";
4
+ import r from "react";
5
+ import { renderMath as i } from "@pie-element/shared-math-rendering-mathjax";
6
+ import * as a from "@pie-lib/render-ui";
7
+ import { Collapsible as o, Feedback as s, PreviewPrompt as c, UiLayout as l, color as u, hasMedia as d, hasText as f } from "@pie-lib/render-ui";
8
+ import p from "prop-types";
9
+ import m from "debug";
10
+ import { styled as h } from "@mui/material/styles";
11
+ import { DragOverlay as g } from "@dnd-kit/core";
12
+ import _ from "@pie-lib/correct-answer-toggle";
13
+ import { buildState as v, moveChoiceToCategory as y, removeChoiceFromCategory as b } from "@pie-lib/categorize";
14
+ import { DragProvider as x, uid as S } from "@pie-lib/drag";
15
+ import { jsx as C, jsxs as w } from "react/jsx-runtime";
16
+ import T from "@pie-lib/translator";
17
+ import { AlertDialog as E } from "@pie-lib/config-ui";
18
+ //#region src/delivery/categorize/index.tsx
19
+ function D(e) {
20
+ return typeof e == "function" || typeof e == "object" && !!e && typeof e.$$typeof == "symbol";
21
+ }
22
+ function O(e, t) {
23
+ return !e || D(e) ? e : D(e.default) ? e.default : t && D(e[t]) ? e[t] : t && D(e[t]?.default) ? e[t].default : e;
24
+ }
25
+ var k = O(l, "UiLayout") || O(F.UiLayout, "UiLayout"), A = O(c, "PreviewPrompt") || O(F.PreviewPrompt, "PreviewPrompt"), j = O(o, "Collapsible") || O(F.Collapsible, "Collapsible"), M = O(s, "Feedback") || O(F.Feedback, "Feedback"), N = a, P = N.default, F = P && typeof P == "object" ? P : N, { translator: I } = T, L = m("@pie-ui:categorize"), R = class extends r.Component {
26
+ static propTypes = { children: p.node };
27
+ containerRef = r.createRef();
28
+ componentDidMount() {
29
+ this.containerRef.current && i(this.containerRef.current);
30
+ }
31
+ render() {
32
+ return /* @__PURE__ */ C("div", {
33
+ ref: this.containerRef,
34
+ children: this.props.children
35
+ });
36
+ }
37
+ }, z = class extends r.Component {
38
+ static propTypes = {
39
+ model: p.object,
40
+ session: p.shape({ answers: p.arrayOf(p.shape({
41
+ choice: p.string,
42
+ category: p.string
43
+ })) }),
44
+ onAnswersChange: p.func.isRequired,
45
+ onShowCorrectToggle: p.func.isRequired,
46
+ pauseMathObserver: p.func,
47
+ resumeMathObserver: p.func
48
+ };
49
+ static defaultProps = { disabled: !1 };
50
+ constructor(e) {
51
+ super(e), this.state = {
52
+ showCorrect: !1,
53
+ showMaxChoiceAlert: !1
54
+ };
55
+ }
56
+ removeChoice = (e) => {
57
+ L("[removeChoice]: ", e);
58
+ let { onAnswersChange: t, session: n } = this.props;
59
+ t(b(e.id, e.categoryId, e.choiceIndex, n.answers));
60
+ };
61
+ dropChoice = (e, t) => {
62
+ let { session: n, onAnswersChange: r, model: i } = this.props, { maxChoicesPerCategory: a = 0 } = i || {}, { answers: o = [] } = n || {}, s;
63
+ t ? L("[dropChoice] category: ", t.categoryId, "choice: ", t) : L("[dropChoice] category: ", void 0, "choice: ", void 0);
64
+ let c = o.find((t) => t.category === e);
65
+ t && a === 1 && c && c.choices && c.choices.length === 1 ? (s = y(t.id, t.categoryId, e, t.choiceIndex, o), s = b(c.choices[0], e, 0, s)) : t && a > 1 && c && c.choices && c.choices.length === a ? (s = t.categoryId ? y(t.id, t.categoryId, t.categoryId, t.choiceIndex, o) : b(t.id, t.categoryId, t.choiceIndex, o), this.setState({ showMaxChoiceAlert: !0 })) : a !== 0 && c && c.choices && c.choices.length > a ? (s = o, this.setState({ showMaxChoiceAlert: !0 })) : s = t ? y(t.id, t.categoryId, e, t.choiceIndex, o) : this.removeChoice(e), t && r(s);
66
+ };
67
+ UNSAFE_componentWillReceiveProps(e) {
68
+ let { model: t } = this.props, { model: n } = e;
69
+ t.note && t.language && t.language !== n.language && t.note === I.t("common:commonCorrectAnswerWithAlternates", { lng: t.language }) && (t.note = I.t("common:commonCorrectAnswerWithAlternates", { lng: n.language })), this.setState({ showCorrect: !1 });
70
+ }
71
+ toggleShowCorrect = () => this.setState({ showCorrect: !this.state.showCorrect }, () => {
72
+ this.props.onShowCorrectToggle();
73
+ });
74
+ getPositionDirection = (e) => {
75
+ let t;
76
+ switch (e) {
77
+ case "left":
78
+ t = "row-reverse";
79
+ break;
80
+ case "right":
81
+ t = "row";
82
+ break;
83
+ case "below":
84
+ t = "column";
85
+ break;
86
+ default:
87
+ t = "column-reverse";
88
+ break;
89
+ }
90
+ return t;
91
+ };
92
+ existAlternateResponse = (e) => e?.some((e) => e.alternateResponses?.length > 0);
93
+ render() {
94
+ let { model: e, session: i } = this.props, { showCorrect: a, showMaxChoiceAlert: o } = this.state, { choicesPosition: s, extraCSSRules: c, note: l, showNote: u, env: p, language: m, maxChoicesPerCategory: h, autoplayAudioEnabled: g, customAudioButton: y } = e, { mode: b, role: x } = p || {}, S = s || "above", T = {
95
+ flexDirection: this.getPositionDirection(S),
96
+ gap: "8px"
97
+ }, { categories: D, choices: O, correct: k } = v(e.categories, e.choices, a ? e.correctResponse : i.answers, e.correctResponse);
98
+ L("[render] disabled: ", e.disabled);
99
+ let { rowLabels: j, categoriesPerRow: N, correctResponse: P, fontSizeFactor: F } = e, R = D && Math.ceil(D.length / N) || 0, z = this.existAlternateResponse(P) || !1, B = (a || b === "view" && x === "instructor") && u && l && z, G = I.t("translation:categorize:limitMaxChoicesPerCategory", {
100
+ lng: e.language,
101
+ maxChoicesPerCategory: h
102
+ }), K = I.t("common:warning", { lng: e.language }), q = I.t("common:cancel", { lng: e.language }), J = e.rationale && (f(e.rationale) || d(e.rationale));
103
+ return /* @__PURE__ */ w(V, {
104
+ extraCSSRules: c,
105
+ id: "main-container",
106
+ fontSizeFactor: F,
107
+ children: [
108
+ e.teacherInstructions && (f(e.teacherInstructions) || d(e.teacherInstructions)) && /* @__PURE__ */ C(r.Fragment, { children: /* @__PURE__ */ C(W, {
109
+ labels: {
110
+ hidden: "Show Teacher Instructions",
111
+ visible: "Hide Teacher Instructions"
112
+ },
113
+ children: /* @__PURE__ */ C(A, { prompt: e.teacherInstructions })
114
+ }) }),
115
+ e.prompt && /* @__PURE__ */ C(A, {
116
+ prompt: e.prompt,
117
+ autoplayAudioEnabled: g,
118
+ customAudioButton: y
119
+ }),
120
+ /* @__PURE__ */ C(_, {
121
+ show: a || k === !1,
122
+ toggled: a,
123
+ onToggle: this.toggleShowCorrect,
124
+ language: m
125
+ }),
126
+ /* @__PURE__ */ w(U, {
127
+ style: T,
128
+ children: [/* @__PURE__ */ C("div", {
129
+ style: {
130
+ display: "flex",
131
+ flex: 1
132
+ },
133
+ children: /* @__PURE__ */ C(n, {
134
+ model: e,
135
+ disabled: e.disabled,
136
+ categories: D,
137
+ onDropChoice: this.dropChoice,
138
+ onRemoveChoice: this.removeChoice,
139
+ rowLabels: (j || []).slice(0, R)
140
+ })
141
+ }), /* @__PURE__ */ C(t, {
142
+ disabled: e.disabled,
143
+ model: e,
144
+ choices: O,
145
+ choicePosition: S,
146
+ onDropChoice: this.dropChoice,
147
+ onRemoveChoice: this.removeChoice,
148
+ correct: k
149
+ })]
150
+ }),
151
+ B && /* @__PURE__ */ C(H, { dangerouslySetInnerHTML: { __html: l } }),
152
+ J && /* @__PURE__ */ C(W, {
153
+ labels: {
154
+ hidden: "Show Rationale",
155
+ visible: "Hide Rationale"
156
+ },
157
+ children: /* @__PURE__ */ C(A, { prompt: e.rationale })
158
+ }),
159
+ e.correctness && e.feedback && !a && /* @__PURE__ */ C(M, {
160
+ correctness: e.correctness,
161
+ feedback: e.feedback
162
+ }),
163
+ /* @__PURE__ */ C(E, {
164
+ title: K,
165
+ text: G,
166
+ open: o,
167
+ onCloseText: q,
168
+ onClose: () => this.setState({ showMaxChoiceAlert: !1 })
169
+ })
170
+ ]
171
+ });
172
+ }
173
+ }, B = class extends r.Component {
174
+ static propTypes = {
175
+ model: p.object,
176
+ session: p.shape({ answers: p.arrayOf(p.shape({
177
+ choice: p.string,
178
+ category: p.string
179
+ })) }),
180
+ onAnswersChange: p.func.isRequired,
181
+ onShowCorrectToggle: p.func.isRequired,
182
+ pauseMathObserver: p.func,
183
+ resumeMathObserver: p.func
184
+ };
185
+ constructor(e) {
186
+ super(e), this.uid = S.generateId(), this.state = {
187
+ activeDragItem: null,
188
+ isValidDrop: !1
189
+ };
190
+ }
191
+ onDragStart = (e) => {
192
+ let { active: t } = e, { pauseMathObserver: n } = this.props;
193
+ n && n(), t?.data?.current && this.setState({
194
+ activeDragItem: t.data.current,
195
+ isValidDrop: !1
196
+ });
197
+ };
198
+ onDragEnd = (e) => {
199
+ let { active: t, over: n } = e, { resumeMathObserver: r } = this.props, i = t?.data?.current, a = n?.data?.current, o = n && t && i && i.type === "choice" && a && a.itemType === "categorize";
200
+ if (this.setState({
201
+ activeDragItem: null,
202
+ isValidDrop: o
203
+ }), r && r(), !t || !i || i.type !== "choice") return;
204
+ let s = {
205
+ id: i.id,
206
+ categoryId: i.categoryId,
207
+ choiceIndex: i.choiceIndex,
208
+ value: i.value,
209
+ itemType: i.itemType
210
+ };
211
+ if (!n) {
212
+ this.categorizeRef && this.categorizeRef.removeChoice && i.categoryId && this.categorizeRef.removeChoice(s);
213
+ return;
214
+ }
215
+ if (n.id === "choices-board") {
216
+ this.categorizeRef && this.categorizeRef.removeChoice && i.categoryId && this.categorizeRef.removeChoice(s);
217
+ return;
218
+ }
219
+ this.categorizeRef && this.categorizeRef.dropChoice && this.categorizeRef.dropChoice(n.id, s);
220
+ };
221
+ renderDragOverlay = () => {
222
+ let { activeDragItem: t } = this.state, { model: n } = this.props;
223
+ if (!t) return null;
224
+ if (t.type === "choice") {
225
+ let r = n.choices?.find((e) => e.id === t.id);
226
+ if (r) return /* @__PURE__ */ C(e, {
227
+ id: r.id,
228
+ ...r
229
+ }, r.id);
230
+ }
231
+ return null;
232
+ };
233
+ render() {
234
+ let { isValidDrop: e } = this.state, t = e ? null : void 0;
235
+ return /* @__PURE__ */ C(x, {
236
+ onDragStart: this.onDragStart,
237
+ onDragEnd: this.onDragEnd,
238
+ children: /* @__PURE__ */ w(S.Provider, {
239
+ value: this.uid,
240
+ children: [/* @__PURE__ */ C(z, {
241
+ ref: (e) => this.categorizeRef = e,
242
+ ...this.props
243
+ }), /* @__PURE__ */ C(g, {
244
+ dropAnimation: t,
245
+ children: /* @__PURE__ */ C(R, { children: this.renderDragOverlay() })
246
+ })]
247
+ })
248
+ });
249
+ }
250
+ }, V = h(k)({
251
+ color: u.text(),
252
+ backgroundColor: u.background(),
253
+ position: "relative"
254
+ }), H = h("div")(({ theme: e }) => ({ marginBottom: e.spacing(2) })), U = h("div")(({ theme: e }) => ({
255
+ marginBottom: e.spacing(1),
256
+ display: "flex",
257
+ flexDirection: "column"
258
+ })), W = h(j)(({ theme: e }) => ({ paddingBottom: e.spacing(2) }));
259
+ //#endregion
260
+ export { B as default };