@pie-element/match-list 7.1.2-next.0 → 7.1.2-next.10

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 (162) hide show
  1. package/dist/browser/controller/index.js +18 -18
  2. package/dist/browser/controller/index.js.map +1 -1
  3. package/dist/browser/delivery/index.js +3861 -4704
  4. package/dist/browser/delivery/index.js.map +1 -1
  5. package/dist/browser/{isEmpty-Eo-n7WSl.js → dist-Cn8gDne6.js} +59 -168
  6. package/dist/browser/dist-Cn8gDne6.js.map +1 -0
  7. package/dist/controller/index.js +24 -24
  8. package/dist/delivery/answer-area.d.ts +3 -0
  9. package/dist/delivery/answer-area.js +51 -44
  10. package/dist/delivery/answer.d.ts +9 -0
  11. package/dist/delivery/answer.js +121 -85
  12. package/dist/delivery/arrow.js +14 -13
  13. package/dist/delivery/choices-list.d.ts +3 -0
  14. package/dist/delivery/choices-list.js +28 -24
  15. package/dist/delivery/droppable-placeholder.d.ts +3 -1
  16. package/dist/delivery/droppable-placeholder.js +11 -7
  17. package/dist/delivery/index.js +2 -2
  18. package/dist/delivery/keyboard-coordinates.d.ts +24 -0
  19. package/dist/delivery/keyboard-coordinates.js +63 -0
  20. package/dist/delivery/main.d.ts +11 -0
  21. package/dist/delivery/main.js +135 -74
  22. package/dist/index.iife.js +35 -35
  23. package/dist/runtime-support.d.ts +12 -0
  24. package/dist/runtime-support.js +12 -0
  25. package/package.json +18 -15
  26. package/dist/browser/isEmpty-Eo-n7WSl.js.map +0 -1
  27. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_DataView.js +0 -6
  28. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Hash.js +0 -16
  29. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_ListCache.js +0 -16
  30. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Map.js +0 -6
  31. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_MapCache.js +0 -16
  32. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Promise.js +0 -6
  33. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Set.js +0 -6
  34. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_SetCache.js +0 -11
  35. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Stack.js +0 -14
  36. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Symbol.js +0 -5
  37. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Uint8Array.js +0 -5
  38. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_WeakMap.js +0 -6
  39. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayFilter.js +0 -10
  40. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayLikeKeys.js +0 -15
  41. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayMap.js +0 -7
  42. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayPush.js +0 -7
  43. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayReduce.js +0 -8
  44. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arraySome.js +0 -7
  45. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_assocIndexOf.js +0 -8
  46. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseEach.js +0 -6
  47. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseFindIndex.js +0 -7
  48. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseFindKey.js +0 -9
  49. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseFor.js +0 -5
  50. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseForOwn.js +0 -8
  51. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseGet.js +0 -10
  52. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseGetAllKeys.js +0 -9
  53. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseGetTag.js +0 -10
  54. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseHasIn.js +0 -6
  55. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsArguments.js +0 -9
  56. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsEqual.js +0 -8
  57. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsEqualDeep.js +0 -30
  58. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsMatch.js +0 -26
  59. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsNative.js +0 -11
  60. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsTypedArray.js +0 -11
  61. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIteratee.js +0 -11
  62. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseKeys.js +0 -12
  63. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseMatches.js +0 -12
  64. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseMatchesProperty.js +0 -17
  65. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseProperty.js +0 -8
  66. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_basePropertyDeep.js +0 -9
  67. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseReduce.js +0 -8
  68. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseTimes.js +0 -7
  69. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseToString.js +0 -15
  70. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseTrim.js +0 -8
  71. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseUnary.js +0 -8
  72. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cacheHas.js +0 -6
  73. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_castPath.js +0 -10
  74. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_coreJsData.js +0 -5
  75. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_createBaseEach.js +0 -12
  76. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_createBaseFor.js +0 -12
  77. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_createFind.js +0 -19
  78. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_equalArrays.js +0 -35
  79. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_equalByTag.js +0 -35
  80. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_equalObjects.js +0 -32
  81. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_freeGlobal.js +0 -4
  82. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getAllKeys.js +0 -9
  83. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getMapData.js +0 -8
  84. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getMatchData.js +0 -16
  85. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getNative.js +0 -9
  86. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getRawTag.js +0 -14
  87. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getSymbols.js +0 -10
  88. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getTag.js +0 -23
  89. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getValue.js +0 -6
  90. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hasPath.js +0 -18
  91. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashClear.js +0 -7
  92. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashDelete.js +0 -7
  93. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashGet.js +0 -13
  94. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashHas.js +0 -9
  95. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashSet.js +0 -9
  96. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isIndex.js +0 -8
  97. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isKey.js +0 -11
  98. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isKeyable.js +0 -7
  99. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isMasked.js +0 -11
  100. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isPrototype.js +0 -8
  101. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isStrictComparable.js +0 -7
  102. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheClear.js +0 -6
  103. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheDelete.js +0 -9
  104. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheGet.js +0 -8
  105. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheHas.js +0 -7
  106. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheSet.js +0 -8
  107. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheClear.js +0 -13
  108. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheDelete.js +0 -8
  109. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheGet.js +0 -7
  110. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheHas.js +0 -7
  111. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheSet.js +0 -8
  112. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapToArray.js +0 -9
  113. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_matchesStrictComparable.js +0 -8
  114. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_memoizeCapped.js +0 -11
  115. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nativeCreate.js +0 -5
  116. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nativeKeys.js +0 -5
  117. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nodeUtil.js +0 -9
  118. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_objectToString.js +0 -7
  119. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_overArg.js +0 -8
  120. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_root.js +0 -5
  121. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_setCacheAdd.js +0 -7
  122. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_setCacheHas.js +0 -6
  123. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_setToArray.js +0 -9
  124. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackClear.js +0 -7
  125. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackDelete.js +0 -7
  126. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackGet.js +0 -6
  127. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackHas.js +0 -6
  128. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackSet.js +0 -16
  129. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stringToPath.js +0 -10
  130. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_toKey.js +0 -10
  131. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_toSource.js +0 -15
  132. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_trimmedEndIndex.js +0 -8
  133. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/eq.js +0 -6
  134. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/find.js +0 -6
  135. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/findIndex.js +0 -13
  136. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/findKey.js +0 -9
  137. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/get.js +0 -8
  138. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/hasIn.js +0 -8
  139. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/identity.js +0 -6
  140. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isArguments.js +0 -10
  141. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isArray.js +0 -4
  142. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isArrayLike.js +0 -8
  143. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isBuffer.js +0 -6
  144. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isEmpty.js +0 -21
  145. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isFunction.js +0 -11
  146. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isLength.js +0 -7
  147. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isObject.js +0 -7
  148. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isObjectLike.js +0 -6
  149. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isSymbol.js +0 -9
  150. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isTypedArray.js +0 -7
  151. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isUndefined.js +0 -6
  152. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/keys.js +0 -9
  153. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/memoize.js +0 -16
  154. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/property.js +0 -10
  155. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/reduce.js +0 -12
  156. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/stubArray.js +0 -6
  157. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/stubFalse.js +0 -6
  158. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/toFinite.js +0 -8
  159. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/toInteger.js +0 -8
  160. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/toNumber.js +0 -19
  161. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/toString.js +0 -7
  162. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/uniqueId.js +0 -9
@@ -1,44 +1,65 @@
1
- import e from "../node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/findKey.js";
2
- import t from "../node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isUndefined.js";
3
- import n from "../node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/uniqueId.js";
4
- import { Answer as r } from "./answer.js";
5
- import i from "./answer-area.js";
6
- import a from "./choices-list.js";
7
- import o from "react";
8
- import s from "prop-types";
9
- import { swap as c } from "@pie-lib/drag";
10
- import { DndContext as l, DragOverlay as u } from "@dnd-kit/core";
11
- import { restrictToFirstScrollableAncestor as d } from "@dnd-kit/modifiers";
12
- import f from "@pie-lib/correct-answer-toggle";
13
- import * as p from "@pie-lib/render-ui";
14
- import { Feedback as m, PreviewPrompt as h, color as g } from "@pie-lib/render-ui";
15
- import { jsx as _, jsxs as v } from "react/jsx-runtime";
16
- import { styled as y } from "@mui/material/styles";
1
+ import { closestDroppableKeyboardCoordinates as e } from "./keyboard-coordinates.js";
2
+ import { Answer as t } from "./answer.js";
3
+ import { AnswerArea as n } from "./answer-area.js";
4
+ import { ChoicesList as r } from "./choices-list.js";
5
+ import i from "react";
6
+ import a from "prop-types";
7
+ import { swap as o } from "@pie-lib/drag";
8
+ import { DndContext as s, DragOverlay as c, KeyboardCode as l, KeyboardSensor as u, PointerSensor as d, rectIntersection as f } from "@dnd-kit/core";
9
+ import { restrictToFirstScrollableAncestor as p } from "@dnd-kit/modifiers";
10
+ import m from "@pie-lib/correct-answer-toggle";
11
+ import * as h from "@pie-lib/render-ui";
12
+ import { Feedback as g, PreviewPrompt as _, color as v } from "@pie-lib/render-ui";
13
+ import { jsx as y, jsxs as b } from "react/jsx-runtime";
14
+ import { styled as x } from "@mui/material/styles";
15
+ import { findKey as S, isUndefined as C, uniqueId as w } from "@pie-element/shared-lodash";
17
16
  //#region src/delivery/main.tsx
18
- function b(e) {
17
+ function T(e) {
19
18
  return typeof e == "function" || typeof e == "object" && !!e && typeof e.$$typeof == "symbol";
20
19
  }
21
- function x(e, t) {
22
- return !e || b(e) ? e : b(e.default) ? e.default : t && b(e[t]) ? e[t] : t && b(e[t]?.default) ? e[t].default : e;
20
+ function E(e, t) {
21
+ return !e || T(e) ? e : T(e.default) ? e.default : t && T(e[t]) ? e[t] : t && T(e[t]?.default) ? e[t].default : e;
23
22
  }
24
- var S = x(h, "PreviewPrompt") || x(E.PreviewPrompt, "PreviewPrompt"), C = x(m, "Feedback") || x(E.Feedback, "Feedback"), w = p, T = w.default, E = T && typeof T == "object" ? T : w, D = y("div")({
23
+ var D = E(_, "PreviewPrompt") || E(j.PreviewPrompt, "PreviewPrompt"), O = E(g, "Feedback") || E(j.Feedback, "Feedback"), k = h, A = k.default, j = A && typeof A == "object" ? A : k, M = 250, N = [{
24
+ sensor: d,
25
+ options: { activationConstraint: { distance: 8 } }
26
+ }, {
27
+ sensor: u,
28
+ options: {
29
+ coordinateGetter: e,
30
+ keyboardCodes: {
31
+ start: [l.Space, l.Enter],
32
+ cancel: [l.Esc],
33
+ end: [l.Space, l.Enter]
34
+ }
35
+ }
36
+ }], P = x("div")({
25
37
  display: "flex",
26
38
  flexDirection: "column",
27
39
  justifyContent: "center",
28
- color: g.text(),
29
- backgroundColor: g.background()
30
- }), O = class extends o.Component {
40
+ color: v.text(),
41
+ backgroundColor: v.background()
42
+ }), F = x("div")({
43
+ width: "100%",
44
+ overflowX: "auto",
45
+ overflowY: "hidden"
46
+ }), I = x("div")({
47
+ display: "flex",
48
+ flexDirection: "column",
49
+ minWidth: "min-content"
50
+ }), L = class extends i.Component {
31
51
  static propTypes = {
32
- session: s.object.isRequired,
33
- onSessionChange: s.func,
34
- model: s.object.isRequired,
35
- prompt: s.string
52
+ session: a.object.isRequired,
53
+ onSessionChange: a.func,
54
+ model: a.object.isRequired,
55
+ prompt: a.string
36
56
  };
37
57
  constructor(e) {
38
- super(e), this.instanceId = n(), this.state = {
58
+ super(e), this.instanceId = w(), this.state = {
39
59
  showCorrectAnswer: !1,
40
- draggingElement: null
41
- };
60
+ draggingElement: null,
61
+ selectedAnswer: null
62
+ }, this.lastDragEndAt = 0;
42
63
  }
43
64
  onRemoveAnswer(e) {
44
65
  let { session: t, onSessionChange: n } = this.props;
@@ -58,42 +79,73 @@ var S = x(h, "PreviewPrompt") || x(E.PreviewPrompt, "PreviewPrompt"), C = x(m, "
58
79
  this.setState({ draggingElement: {
59
80
  ...t.data.current,
60
81
  rect: e
61
- } });
82
+ } }), this.selectAnswer(t.data.current);
62
83
  }
63
84
  };
64
- onPlaceAnswer = (n) => {
65
- this.setState({ draggingElement: null });
66
- let { active: r, over: i } = n;
67
- if (!r) return;
68
- let a = r.data.current, o = i?.data.current;
69
- if (!a) return;
70
- let { session: s, onSessionChange: l, model: u } = this.props, { config: { duplicates: d } } = u;
71
- if (t(s.value) && (s.value = {}), o.type === "choices-pool" && a.promptId !== void 0) {
72
- s.value[a.promptId] = void 0, l(s);
85
+ onDragCancel = () => {
86
+ this.setState({ draggingElement: null }), this.cancelSelection(), this.lastDragEndAt = Date.now();
87
+ };
88
+ placeAnswer = (e, t) => {
89
+ if (!e || !t) return;
90
+ let { session: n, onSessionChange: r, model: i } = this.props, { config: { duplicates: a } } = i;
91
+ if (C(n.value) && (n.value = {}), t.type === "choices-pool" && e.promptId !== void 0) {
92
+ n.value[e.promptId] = void 0, r(n);
73
93
  return;
74
94
  }
75
- let f = a.id, p = a.promptId;
76
- if (o && o.type === "drop-zone" && o.promptId != null) {
77
- let t = o.promptId;
78
- if (a.type === "choice" && o.type === "drop-zone" && t !== void 0) {
79
- let n = e(s.value, (e) => e === f);
80
- n && !d ? s.value = c(s.value, n, t) : s.value[t] = f;
81
- } else if (a.type === "target" && p != null && p !== t) {
82
- let e = s.value[t] != null;
83
- if (e && !d) {
84
- let e = s.value[t];
85
- s.value[t] = f, s.value[p] = e;
86
- } else e || (s.value[t] = f, delete s.value[p]);
87
- }
88
- l(s);
95
+ let s = e.id, c = e.promptId;
96
+ if (t.type === "drop-zone" && t.promptId != null) {
97
+ let i = t.promptId;
98
+ if (e.type === "choice" && i !== void 0) {
99
+ let e = S(n.value, (e) => e === s);
100
+ e && !a ? n.value = o(n.value, e, i) : n.value[i] = s;
101
+ } else if (e.type === "target" && c != null && c !== i) if (n.value[i] != null && !a) {
102
+ let e = n.value[i];
103
+ n.value[i] = s, n.value[c] = e;
104
+ } else n.value[i] = s, delete n.value[c];
105
+ r(n);
89
106
  }
90
107
  };
108
+ onPlaceAnswer = (e) => {
109
+ this.setState({ draggingElement: null });
110
+ let { active: t, over: n } = e;
111
+ if (!t) return;
112
+ let r = t.data.current, i = n?.data.current;
113
+ r && (this.placeAnswer(r, i), this.cancelSelection(), this.lastDragEndAt = Date.now());
114
+ };
115
+ isSameAnswer = (e, t) => !!e && !!t && e.type === t.type && e.id === t.id && e.promptId === t.promptId;
116
+ selectAnswer = (e) => {
117
+ this.setState({ selectedAnswer: e });
118
+ };
119
+ toggleAnswerSelection = (e) => {
120
+ this.setState((t) => ({ selectedAnswer: this.isSameAnswer(t.selectedAnswer, e) ? null : e }));
121
+ };
122
+ cancelSelection = () => {
123
+ this.setState({ selectedAnswer: null });
124
+ };
125
+ endAnyLiveKeyboardDrag = () => {
126
+ document.dispatchEvent(new KeyboardEvent("keydown", {
127
+ code: "Escape",
128
+ bubbles: !0,
129
+ cancelable: !0
130
+ }));
131
+ };
132
+ placeSelectedAnswer = (e) => {
133
+ let { selectedAnswer: t } = this.state;
134
+ t && (this.placeAnswer(t, e), this.cancelSelection(), this.endAnyLiveKeyboardDrag(), this.lastDragEndAt = Date.now());
135
+ };
136
+ isClickSoonAfterDragEnd = () => Date.now() - this.lastDragEndAt < M;
137
+ onChoiceClick = (e) => {
138
+ this.isClickSoonAfterDragEnd() || this.toggleAnswerSelection(e);
139
+ };
140
+ onPlacementClick = (e) => {
141
+ this.isClickSoonAfterDragEnd() || this.placeSelectedAnswer(e);
142
+ };
91
143
  toggleShowCorrect = () => {
92
144
  this.setState({ showCorrectAnswer: !this.state.showCorrectAnswer });
93
145
  };
94
146
  renderDragOverlay = () => {
95
147
  let { draggingElement: e } = this.state;
96
- return e ? /* @__PURE__ */ _(r, {
148
+ return e ? /* @__PURE__ */ y(t, {
97
149
  id: e.id,
98
150
  title: e.value,
99
151
  disabled: !1,
@@ -106,44 +158,53 @@ var S = x(h, "PreviewPrompt") || x(E.PreviewPrompt, "PreviewPrompt"), C = x(m, "
106
158
  }) : null;
107
159
  };
108
160
  render() {
109
- let { showCorrectAnswer: e } = this.state, { model: t, session: n } = this.props, { config: r, mode: o } = t, { prompt: s, language: c } = r;
110
- return /* @__PURE__ */ v(l, {
161
+ let { showCorrectAnswer: e } = this.state, { model: t, session: i } = this.props, { config: a, mode: o } = t, { prompt: l, language: u } = a;
162
+ return /* @__PURE__ */ b(s, {
163
+ sensors: N,
164
+ collisionDetection: f,
111
165
  onDragStart: this.onDragStart,
112
166
  onDragEnd: this.onPlaceAnswer,
113
- modifiers: [d],
114
- children: [/* @__PURE__ */ v(D, { children: [
115
- /* @__PURE__ */ _(S, {
167
+ onDragCancel: this.onDragCancel,
168
+ modifiers: [p],
169
+ accessibility: { screenReaderInstructions: { draggable: "Press Space or Enter to pick up this answer choice. Once picked up, use Tab or Shift+Tab to cycle through response areas, or use arrow keys to move it freely. Press Space or Enter to drop, or Escape to cancel. You can also click an answer choice to select it, then click a response area to place it there." } },
170
+ children: [/* @__PURE__ */ b(P, { children: [
171
+ /* @__PURE__ */ y(D, {
116
172
  className: "prompt",
117
- prompt: s
173
+ prompt: l
118
174
  }),
119
- /* @__PURE__ */ _(f, {
175
+ /* @__PURE__ */ y(m, {
120
176
  show: o === "evaluate",
121
177
  toggled: e,
122
178
  onToggle: this.toggleShowCorrect,
123
- language: c
179
+ language: u
124
180
  }),
125
- /* @__PURE__ */ _(i, {
181
+ /* @__PURE__ */ y(F, { children: /* @__PURE__ */ b(I, { children: [/* @__PURE__ */ y(n, {
126
182
  instanceId: this.instanceId,
127
183
  model: t,
128
- session: n,
184
+ session: i,
129
185
  onRemoveAnswer: (e) => this.onRemoveAnswer(e),
130
186
  disabled: o !== "gather",
131
- showCorrect: e
132
- }),
133
- /* @__PURE__ */ _(a, {
187
+ showCorrect: e,
188
+ selectedAnswer: this.state.selectedAnswer,
189
+ onChoiceClick: this.onChoiceClick,
190
+ onPlacementClick: this.onPlacementClick
191
+ }), /* @__PURE__ */ y(r, {
134
192
  instanceId: this.instanceId,
135
193
  model: t,
136
- session: n,
194
+ session: i,
137
195
  disabled: o !== "gather",
138
- onRemoveAnswer: (e) => this.onRemoveAnswer(e)
139
- }),
140
- t.correctness && t.feedback && !e && /* @__PURE__ */ _(C, {
196
+ onRemoveAnswer: (e) => this.onRemoveAnswer(e),
197
+ selectedAnswer: this.state.selectedAnswer,
198
+ onChoiceClick: this.onChoiceClick,
199
+ onPlacementClick: this.onPlacementClick
200
+ })] }) }),
201
+ t.correctness && t.feedback && !e && /* @__PURE__ */ y(O, {
141
202
  correctness: t.correctness.correctness,
142
203
  feedback: t.feedback
143
204
  })
144
- ] }), /* @__PURE__ */ _(u, { children: this.renderDragOverlay() })]
205
+ ] }), /* @__PURE__ */ y(c, { children: this.renderDragOverlay() })]
145
206
  });
146
207
  }
147
208
  };
148
209
  //#endregion
149
- export { O as default };
210
+ export { L as Main, L as default };