@pie-element/number-line 13.1.1 → 13.1.2-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 (381) hide show
  1. package/configure.js +2 -0
  2. package/controller.js +1 -0
  3. package/dist/_virtual/_rolldown/runtime.js +11 -0
  4. package/dist/author/arrows.d.ts +28 -0
  5. package/dist/author/arrows.js +69 -0
  6. package/dist/author/card-bar.d.ts +20 -0
  7. package/dist/author/card-bar.js +41 -0
  8. package/dist/author/defaults.d.ts +178 -0
  9. package/dist/author/defaults.js +144 -0
  10. package/dist/author/domain.d.ts +15 -0
  11. package/dist/author/domain.js +54 -0
  12. package/dist/author/index.d.ts +23 -0
  13. package/dist/author/index.js +89 -0
  14. package/dist/author/main.d.ts +44 -0
  15. package/dist/author/main.js +485 -0
  16. package/dist/author/number-text-field.d.ts +13 -0
  17. package/dist/author/number-text-field.js +13 -0
  18. package/dist/author/point-config.d.ts +25 -0
  19. package/dist/author/point-config.js +69 -0
  20. package/dist/author/size.d.ts +24 -0
  21. package/dist/author/size.js +48 -0
  22. package/dist/author/ticks.d.ts +22 -0
  23. package/dist/author/ticks.js +115 -0
  24. package/dist/author/utils.d.ts +9 -0
  25. package/dist/author/utils.js +4 -0
  26. package/dist/browser/_baseSet-ycZx94p7.js +8672 -0
  27. package/dist/browser/_baseSet-ycZx94p7.js.map +1 -0
  28. package/dist/browser/author/index.js +40436 -0
  29. package/dist/browser/author/index.js.map +1 -0
  30. package/dist/browser/controller/index.js +823 -0
  31. package/dist/browser/controller/index.js.map +1 -0
  32. package/dist/browser/delivery/index.js +2 -0
  33. package/dist/browser/delivery-Dh8QdqpO.js +17950 -0
  34. package/dist/browser/delivery-Dh8QdqpO.js.map +1 -0
  35. package/dist/browser/number-line.css +2 -0
  36. package/dist/browser/uniqWith-CKN50xMI.js +17886 -0
  37. package/dist/browser/uniqWith-CKN50xMI.js.map +1 -0
  38. package/dist/controller/defaults.d.ts +58 -0
  39. package/dist/controller/defaults.js +50 -0
  40. package/dist/controller/index.d.ts +33 -0
  41. package/dist/controller/index.js +170 -0
  42. package/dist/controller/tickUtils.d.ts +20 -0
  43. package/dist/controller/tickUtils.js +254 -0
  44. package/dist/controller/utils.d.ts +9 -0
  45. package/dist/controller/utils.js +68 -0
  46. package/dist/delivery/data-converter.d.ts +64 -0
  47. package/dist/delivery/data-converter.js +70 -0
  48. package/dist/delivery/draggable/index.d.ts +33 -0
  49. package/dist/delivery/draggable/index.js +39 -0
  50. package/dist/delivery/index.d.ts +35 -0
  51. package/dist/delivery/index.js +109 -0
  52. package/dist/delivery/number-line/colors.d.ts +11 -0
  53. package/dist/delivery/number-line/colors.js +5 -0
  54. package/dist/delivery/number-line/feedback.d.ts +19 -0
  55. package/dist/delivery/number-line/feedback.js +57 -0
  56. package/dist/delivery/number-line/graph/arrow.d.ts +30 -0
  57. package/dist/delivery/number-line/graph/arrow.js +27 -0
  58. package/dist/delivery/number-line/graph/elements/base.d.ts +16 -0
  59. package/dist/delivery/number-line/graph/elements/base.js +11 -0
  60. package/dist/delivery/number-line/graph/elements/builder.d.ts +33 -0
  61. package/dist/delivery/number-line/graph/elements/builder.js +30 -0
  62. package/dist/delivery/number-line/graph/elements/line.d.ts +51 -0
  63. package/dist/delivery/number-line/graph/elements/line.js +189 -0
  64. package/dist/delivery/number-line/graph/elements/point.d.ts +43 -0
  65. package/dist/delivery/number-line/graph/elements/point.js +127 -0
  66. package/dist/delivery/number-line/graph/elements/ray.d.ts +43 -0
  67. package/dist/delivery/number-line/graph/elements/ray.js +130 -0
  68. package/dist/delivery/number-line/graph/index.d.ts +59 -0
  69. package/dist/delivery/number-line/graph/index.js +196 -0
  70. package/dist/delivery/number-line/graph/line.d.ts +46 -0
  71. package/dist/delivery/number-line/graph/line.js +27 -0
  72. package/dist/delivery/number-line/graph/stacks.d.ts +10 -0
  73. package/dist/delivery/number-line/graph/stacks.js +40 -0
  74. package/dist/delivery/number-line/graph/tick-utils.d.ts +73 -0
  75. package/dist/delivery/number-line/graph/tick-utils.js +297 -0
  76. package/dist/delivery/number-line/graph/ticks.d.ts +46 -0
  77. package/dist/delivery/number-line/graph/ticks.js +115 -0
  78. package/dist/delivery/number-line/index.d.ts +35 -0
  79. package/dist/delivery/number-line/index.js +218 -0
  80. package/dist/delivery/number-line/point-chooser/button.d.ts +31 -0
  81. package/dist/delivery/number-line/point-chooser/button.js +36 -0
  82. package/dist/delivery/number-line/point-chooser/img.d.ts +10 -0
  83. package/dist/delivery/number-line/point-chooser/img.js +4 -0
  84. package/dist/delivery/number-line/point-chooser/index.d.ts +37 -0
  85. package/dist/delivery/number-line/point-chooser/index.js +154 -0
  86. package/dist/delivery/number-line/point-chooser/styles.d.ts +192 -0
  87. package/dist/delivery/number-line/transitions/fade.d.ts +34 -0
  88. package/dist/delivery/number-line/transitions/fade.js +75 -0
  89. package/dist/delivery/number-line/transitions/index.d.ts +10 -0
  90. package/dist/index.d.ts +1 -0
  91. package/dist/index.iife.d.ts +8 -0
  92. package/dist/index.iife.js +201 -0
  93. package/dist/index.js +2 -0
  94. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_DataView.js +6 -0
  95. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Hash.js +16 -0
  96. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_ListCache.js +16 -0
  97. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Map.js +6 -0
  98. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_MapCache.js +16 -0
  99. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Promise.js +6 -0
  100. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Set.js +6 -0
  101. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_SetCache.js +11 -0
  102. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Stack.js +14 -0
  103. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Symbol.js +5 -0
  104. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_Uint8Array.js +5 -0
  105. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_WeakMap.js +6 -0
  106. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_apply.js +12 -0
  107. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayEach.js +7 -0
  108. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayFilter.js +10 -0
  109. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayIncludes.js +7 -0
  110. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayIncludesWith.js +7 -0
  111. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayLikeKeys.js +15 -0
  112. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayMap.js +7 -0
  113. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arrayPush.js +7 -0
  114. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_arraySome.js +7 -0
  115. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_assignMergeValue.js +8 -0
  116. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_assignValue.js +10 -0
  117. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_assocIndexOf.js +8 -0
  118. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseAssign.js +8 -0
  119. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseAssignIn.js +8 -0
  120. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseAssignValue.js +12 -0
  121. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseClone.js +57 -0
  122. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseCreate.js +14 -0
  123. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseFindIndex.js +7 -0
  124. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseFor.js +5 -0
  125. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseGet.js +10 -0
  126. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseGetAllKeys.js +9 -0
  127. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseGetTag.js +10 -0
  128. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseHasIn.js +6 -0
  129. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIndexOf.js +9 -0
  130. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsArguments.js +9 -0
  131. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsEqual.js +8 -0
  132. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsEqualDeep.js +30 -0
  133. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsMap.js +9 -0
  134. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsMatch.js +26 -0
  135. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsNaN.js +6 -0
  136. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsNative.js +11 -0
  137. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsSet.js +9 -0
  138. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIsTypedArray.js +11 -0
  139. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseIteratee.js +11 -0
  140. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseKeys.js +12 -0
  141. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseKeysIn.js +13 -0
  142. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseMatches.js +12 -0
  143. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseMatchesProperty.js +17 -0
  144. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseMerge.js +19 -0
  145. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseMergeDeep.js +31 -0
  146. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_basePickBy.js +13 -0
  147. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseProperty.js +8 -0
  148. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_basePropertyDeep.js +9 -0
  149. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseRest.js +9 -0
  150. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseSet.js +22 -0
  151. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseSetToString.js +14 -0
  152. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseTimes.js +7 -0
  153. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseToString.js +15 -0
  154. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseTrim.js +8 -0
  155. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseUnary.js +8 -0
  156. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_baseUniq.js +27 -0
  157. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cacheHas.js +6 -0
  158. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_castPath.js +10 -0
  159. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneArrayBuffer.js +8 -0
  160. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneBuffer.js +10 -0
  161. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneDataView.js +8 -0
  162. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneRegExp.js +8 -0
  163. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneSymbol.js +8 -0
  164. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_cloneTypedArray.js +8 -0
  165. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_copyArray.js +8 -0
  166. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_copyObject.js +14 -0
  167. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_copySymbols.js +8 -0
  168. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_copySymbolsIn.js +8 -0
  169. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_coreJsData.js +5 -0
  170. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_createAssigner.js +15 -0
  171. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_createBaseFor.js +12 -0
  172. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_createFind.js +19 -0
  173. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_createSet.js +9 -0
  174. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_defineProperty.js +10 -0
  175. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_equalArrays.js +35 -0
  176. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_equalByTag.js +35 -0
  177. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_equalObjects.js +32 -0
  178. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_freeGlobal.js +4 -0
  179. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getAllKeys.js +9 -0
  180. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getAllKeysIn.js +9 -0
  181. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getMapData.js +8 -0
  182. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getMatchData.js +16 -0
  183. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getNative.js +9 -0
  184. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getPrototype.js +5 -0
  185. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getRawTag.js +14 -0
  186. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getSymbols.js +10 -0
  187. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getSymbolsIn.js +11 -0
  188. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getTag.js +23 -0
  189. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_getValue.js +6 -0
  190. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hasPath.js +18 -0
  191. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashClear.js +7 -0
  192. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashDelete.js +7 -0
  193. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashGet.js +13 -0
  194. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashHas.js +9 -0
  195. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_hashSet.js +9 -0
  196. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_initCloneArray.js +8 -0
  197. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_initCloneByTag.js +33 -0
  198. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_initCloneObject.js +9 -0
  199. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isIndex.js +8 -0
  200. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isIterateeCall.js +12 -0
  201. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isKey.js +11 -0
  202. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isKeyable.js +7 -0
  203. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isMasked.js +11 -0
  204. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isPrototype.js +8 -0
  205. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_isStrictComparable.js +7 -0
  206. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheClear.js +6 -0
  207. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheDelete.js +9 -0
  208. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheGet.js +8 -0
  209. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheHas.js +7 -0
  210. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_listCacheSet.js +8 -0
  211. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheClear.js +13 -0
  212. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheDelete.js +8 -0
  213. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheGet.js +7 -0
  214. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheHas.js +7 -0
  215. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapCacheSet.js +8 -0
  216. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_mapToArray.js +9 -0
  217. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_matchesStrictComparable.js +8 -0
  218. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_memoizeCapped.js +11 -0
  219. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nativeCreate.js +5 -0
  220. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nativeKeys.js +5 -0
  221. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nativeKeysIn.js +8 -0
  222. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_nodeUtil.js +9 -0
  223. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_objectToString.js +7 -0
  224. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_overArg.js +8 -0
  225. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_overRest.js +13 -0
  226. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_root.js +5 -0
  227. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_safeGet.js +6 -0
  228. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_setCacheAdd.js +7 -0
  229. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_setCacheHas.js +6 -0
  230. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_setToArray.js +9 -0
  231. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_setToString.js +6 -0
  232. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_shortOut.js +14 -0
  233. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackClear.js +7 -0
  234. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackDelete.js +7 -0
  235. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackGet.js +6 -0
  236. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackHas.js +6 -0
  237. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stackSet.js +16 -0
  238. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_strictIndexOf.js +7 -0
  239. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_stringToPath.js +10 -0
  240. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_toKey.js +10 -0
  241. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_toSource.js +15 -0
  242. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/_trimmedEndIndex.js +8 -0
  243. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/cloneDeep.js +8 -0
  244. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/constant.js +8 -0
  245. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/eq.js +6 -0
  246. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/find.js +6 -0
  247. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/findIndex.js +13 -0
  248. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/get.js +8 -0
  249. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/hasIn.js +8 -0
  250. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/identity.js +6 -0
  251. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isArguments.js +10 -0
  252. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isArray.js +4 -0
  253. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isArrayLike.js +8 -0
  254. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isArrayLikeObject.js +8 -0
  255. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isBuffer.js +6 -0
  256. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isEmpty.js +21 -0
  257. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isEqual.js +7 -0
  258. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isEqualWith.js +9 -0
  259. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isFunction.js +11 -0
  260. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isLength.js +7 -0
  261. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isMap.js +7 -0
  262. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isNumber.js +9 -0
  263. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isObject.js +7 -0
  264. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isObjectLike.js +6 -0
  265. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isPlainObject.js +14 -0
  266. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isSet.js +7 -0
  267. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isSymbol.js +9 -0
  268. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/isTypedArray.js +7 -0
  269. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/keys.js +9 -0
  270. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/keysIn.js +9 -0
  271. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/memoize.js +16 -0
  272. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/merge.js +8 -0
  273. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/negate.js +17 -0
  274. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/noop.js +4 -0
  275. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/omitBy.js +9 -0
  276. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/pickBy.js +16 -0
  277. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/property.js +10 -0
  278. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/stubArray.js +6 -0
  279. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/stubFalse.js +6 -0
  280. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/toFinite.js +8 -0
  281. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/toInteger.js +8 -0
  282. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/toNumber.js +19 -0
  283. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/toPlainObject.js +8 -0
  284. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/toString.js +7 -0
  285. package/dist/node_modules/.bun/lodash-es@4.18.1/node_modules/lodash-es/uniqWith.js +7 -0
  286. package/package.json +78 -16
  287. package/CHANGELOG.json +0 -1247
  288. package/CHANGELOG.md +0 -2435
  289. package/LICENSE.md +0 -5
  290. package/README.md +0 -28
  291. package/configure/CHANGELOG.json +0 -827
  292. package/configure/CHANGELOG.md +0 -2082
  293. package/configure/lib/arrows.js +0 -89
  294. package/configure/lib/arrows.js.map +0 -1
  295. package/configure/lib/card-bar.js +0 -57
  296. package/configure/lib/card-bar.js.map +0 -1
  297. package/configure/lib/defaults.js +0 -177
  298. package/configure/lib/defaults.js.map +0 -1
  299. package/configure/lib/domain.js +0 -87
  300. package/configure/lib/domain.js.map +0 -1
  301. package/configure/lib/index.js +0 -176
  302. package/configure/lib/index.js.map +0 -1
  303. package/configure/lib/main.js +0 -815
  304. package/configure/lib/main.js.map +0 -1
  305. package/configure/lib/number-text-field.js +0 -26
  306. package/configure/lib/number-text-field.js.map +0 -1
  307. package/configure/lib/point-config.js +0 -84
  308. package/configure/lib/point-config.js.map +0 -1
  309. package/configure/lib/size.js +0 -66
  310. package/configure/lib/size.js.map +0 -1
  311. package/configure/lib/ticks.js +0 -234
  312. package/configure/lib/ticks.js.map +0 -1
  313. package/configure/lib/utils.js +0 -12
  314. package/configure/lib/utils.js.map +0 -1
  315. package/configure/package.json +0 -20
  316. package/controller/CHANGELOG.json +0 -332
  317. package/controller/CHANGELOG.md +0 -1360
  318. package/controller/lib/defaults.js +0 -56
  319. package/controller/lib/defaults.js.map +0 -1
  320. package/controller/lib/index.js +0 -430
  321. package/controller/lib/index.js.map +0 -1
  322. package/controller/lib/tickUtils.js +0 -294
  323. package/controller/lib/tickUtils.js.map +0 -1
  324. package/controller/lib/utils.js +0 -168
  325. package/controller/lib/utils.js.map +0 -1
  326. package/controller/package.json +0 -20
  327. package/demo.gif +0 -0
  328. package/docs/config-schema.json +0 -2532
  329. package/docs/config-schema.json.md +0 -1844
  330. package/docs/demo/config.js +0 -8
  331. package/docs/demo/generate.js +0 -39
  332. package/docs/demo/index.html +0 -1
  333. package/docs/pie-schema.json +0 -2461
  334. package/docs/pie-schema.json.md +0 -1228
  335. package/docs/schemas/config.json +0 -256
  336. package/lib/data-converter.js +0 -96
  337. package/lib/data-converter.js.map +0 -1
  338. package/lib/draggable/index.js +0 -114
  339. package/lib/draggable/index.js.map +0 -1
  340. package/lib/index.js +0 -196
  341. package/lib/index.js.map +0 -1
  342. package/lib/number-line/colors.js +0 -11
  343. package/lib/number-line/colors.js.map +0 -1
  344. package/lib/number-line/feedback.js +0 -92
  345. package/lib/number-line/feedback.js.map +0 -1
  346. package/lib/number-line/graph/arrow.js +0 -44
  347. package/lib/number-line/graph/arrow.js.map +0 -1
  348. package/lib/number-line/graph/elements/base.js +0 -20
  349. package/lib/number-line/graph/elements/base.js.map +0 -1
  350. package/lib/number-line/graph/elements/builder.js +0 -37
  351. package/lib/number-line/graph/elements/builder.js.map +0 -1
  352. package/lib/number-line/graph/elements/line.js +0 -259
  353. package/lib/number-line/graph/elements/line.js.map +0 -1
  354. package/lib/number-line/graph/elements/point.js +0 -204
  355. package/lib/number-line/graph/elements/point.js.map +0 -1
  356. package/lib/number-line/graph/elements/ray.js +0 -190
  357. package/lib/number-line/graph/elements/ray.js.map +0 -1
  358. package/lib/number-line/graph/index.js +0 -262
  359. package/lib/number-line/graph/index.js.map +0 -1
  360. package/lib/number-line/graph/line.js +0 -38
  361. package/lib/number-line/graph/line.js.map +0 -1
  362. package/lib/number-line/graph/stacks.js +0 -78
  363. package/lib/number-line/graph/stacks.js.map +0 -1
  364. package/lib/number-line/graph/tick-utils.js +0 -347
  365. package/lib/number-line/graph/tick-utils.js.map +0 -1
  366. package/lib/number-line/graph/ticks.js +0 -188
  367. package/lib/number-line/graph/ticks.js.map +0 -1
  368. package/lib/number-line/index.js +0 -384
  369. package/lib/number-line/index.js.map +0 -1
  370. package/lib/number-line/point-chooser/button.js +0 -49
  371. package/lib/number-line/point-chooser/button.js.map +0 -1
  372. package/lib/number-line/point-chooser/img.js +0 -8
  373. package/lib/number-line/point-chooser/img.js.map +0 -1
  374. package/lib/number-line/point-chooser/index.js +0 -197
  375. package/lib/number-line/point-chooser/index.js.map +0 -1
  376. package/lib/number-line/point-chooser/styles.js +0 -77
  377. package/lib/number-line/point-chooser/styles.js.map +0 -1
  378. package/lib/number-line/transitions/fade.js +0 -88
  379. package/lib/number-line/transitions/fade.js.map +0 -1
  380. package/lib/number-line/transitions/index.js +0 -14
  381. package/lib/number-line/transitions/index.js.map +0 -1
@@ -1,56 +0,0 @@
1
- "use strict";
2
-
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- exports.default = void 0;
7
- var _default = exports.default = {
8
- correctResponse: [],
9
- feedback: {
10
- correct: {
11
- default: 'Correct',
12
- type: 'none'
13
- },
14
- incorrect: {
15
- default: 'Incorrect',
16
- type: 'none'
17
- },
18
- partial: {
19
- default: 'Nearly',
20
- type: 'none'
21
- }
22
- },
23
- graph: {
24
- arrows: {
25
- left: true,
26
- right: true
27
- },
28
- availableTypes: {
29
- PF: true
30
- },
31
- domain: {
32
- min: -1,
33
- max: 1
34
- },
35
- exhibitOnly: false,
36
- initialElements: [],
37
- initialType: 'PF',
38
- maxNumberOfPoints: 1,
39
- ticks: {
40
- minor: 0.125,
41
- major: 0.5,
42
- tickIntervalType: 'Decimal'
43
- },
44
- title: '',
45
- width: 500
46
- },
47
- prompt: '',
48
- promptEnabled: true,
49
- rationale: '',
50
- rationaleEnabled: true,
51
- teacherInstructions: '',
52
- teacherInstructionsEnabled: true,
53
- toolbarEditorPosition: 'bottom',
54
- widthEnabled: true
55
- };
56
- //# sourceMappingURL=defaults.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"defaults.js","names":["correctResponse","feedback","correct","default","type","incorrect","partial","graph","arrows","left","right","availableTypes","PF","domain","min","max","exhibitOnly","initialElements","initialType","maxNumberOfPoints","ticks","minor","major","tickIntervalType","title","width","prompt","promptEnabled","rationale","rationaleEnabled","teacherInstructions","teacherInstructionsEnabled","toolbarEditorPosition","widthEnabled"],"sources":["../src/defaults.js"],"sourcesContent":["export default {\n correctResponse: [],\n feedback: {\n correct: { default: 'Correct', type: 'none' },\n incorrect: { default: 'Incorrect', type: 'none' },\n partial: { default: 'Nearly', type: 'none' },\n },\n graph: {\n arrows: { left: true, right: true },\n availableTypes: {\n PF: true,\n },\n domain: { min: -1, max: 1 },\n exhibitOnly: false,\n initialElements: [],\n initialType: 'PF',\n maxNumberOfPoints: 1,\n ticks: { minor: 0.125, major: 0.5, tickIntervalType: 'Decimal' },\n title: '',\n width: 500,\n },\n prompt: '',\n promptEnabled: true,\n rationale: '',\n rationaleEnabled: true,\n teacherInstructions: '',\n teacherInstructionsEnabled: true,\n toolbarEditorPosition: 'bottom',\n widthEnabled: true,\n};\n"],"mappings":";;;;;;iCAAe;EACbA,eAAe,EAAE,EAAE;EACnBC,QAAQ,EAAE;IACRC,OAAO,EAAE;MAAEC,OAAO,EAAE,SAAS;MAAEC,IAAI,EAAE;IAAO,CAAC;IAC7CC,SAAS,EAAE;MAAEF,OAAO,EAAE,WAAW;MAAEC,IAAI,EAAE;IAAO,CAAC;IACjDE,OAAO,EAAE;MAAEH,OAAO,EAAE,QAAQ;MAAEC,IAAI,EAAE;IAAO;EAC7C,CAAC;EACDG,KAAK,EAAE;IACLC,MAAM,EAAE;MAAEC,IAAI,EAAE,IAAI;MAAEC,KAAK,EAAE;IAAK,CAAC;IACnCC,cAAc,EAAE;MACdC,EAAE,EAAE;IACN,CAAC;IACDC,MAAM,EAAE;MAAEC,GAAG,EAAE,CAAC,CAAC;MAAEC,GAAG,EAAE;IAAE,CAAC;IAC3BC,WAAW,EAAE,KAAK;IAClBC,eAAe,EAAE,EAAE;IACnBC,WAAW,EAAE,IAAI;IACjBC,iBAAiB,EAAE,CAAC;IACpBC,KAAK,EAAE;MAAEC,KAAK,EAAE,KAAK;MAAEC,KAAK,EAAE,GAAG;MAAEC,gBAAgB,EAAE;IAAU,CAAC;IAChEC,KAAK,EAAE,EAAE;IACTC,KAAK,EAAE;EACT,CAAC;EACDC,MAAM,EAAE,EAAE;EACVC,aAAa,EAAE,IAAI;EACnBC,SAAS,EAAE,EAAE;EACbC,gBAAgB,EAAE,IAAI;EACtBC,mBAAmB,EAAE,EAAE;EACvBC,0BAA0B,EAAE,IAAI;EAChCC,qBAAqB,EAAE,QAAQ;EAC/BC,YAAY,EAAE;AAChB,CAAC","ignoreList":[]}
@@ -1,430 +0,0 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.createCorrectResponseSession = exports.closeTo = exports.CLOSE_TO_PRECISION = void 0;
8
- exports.createDefaultModel = createDefaultModel;
9
- exports.getLogTrace = exports.getCorrectness = exports.getCorrected = void 0;
10
- exports.getScore = getScore;
11
- exports.model = model;
12
- exports.normalize = normalize;
13
- exports.outcome = outcome;
14
- exports.validate = void 0;
15
- var _lodashEs = require("lodash-es");
16
- var _feedback = require("@pie-lib/feedback");
17
- var _controllerUtils = require("@pie-lib/controller-utils");
18
- var math = _interopRequireWildcard(require("mathjs"));
19
- var _defaults = _interopRequireDefault(require("./defaults"));
20
- var _utils = require("./utils");
21
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
22
- const score = number => {
23
- return {
24
- score: {
25
- scaled: number
26
- }
27
- };
28
- };
29
- const getPartialScore = (corrected, ps) => {
30
- const {
31
- correct
32
- } = corrected;
33
- const rule = ps.find(r => r.numberOfCorrect === correct.length);
34
- if (rule) {
35
- return 1.0 * (rule.scorePercentage / 100);
36
- } else {
37
- return 0;
38
- }
39
- };
40
- const accumulateAnswer = correctResponse => (total, answer) => {
41
- const isCorrectResponse = correctResponse.some(cr => matches(cr)(answer));
42
- return total + (isCorrectResponse ? 1 : 0);
43
- };
44
-
45
- /**
46
- * Generates detailed trace log for scoring evaluation
47
- * @param {Object} model - the question model
48
- * @param {Object} session - the student session
49
- * @param {Object} env - the environment
50
- * @returns {Array} traceLog - array of trace messages
51
- */
52
- const getLogTrace = (model, session, env) => {
53
- const traceLog = [];
54
- const studentAnswers = session?.answer || [];
55
- const correctResponse = model?.correctResponse || [];
56
- if (!studentAnswers.length) {
57
- return ['Student did not interact with the number line.'];
58
- }
59
- const corrected = getCorrected(studentAnswers, (0, _lodashEs.cloneDeep)(correctResponse));
60
- const {
61
- correct,
62
- incorrect,
63
- notInAnswer,
64
- noCorrectResponse
65
- } = corrected;
66
- if (noCorrectResponse) {
67
- return ['No correct response is defined for this item.'];
68
- }
69
- const correctCount = correct.length;
70
- const incorrectCount = incorrect.length;
71
- const missingCount = notInAnswer.length;
72
- if (correctCount > 0) {
73
- traceLog.push(`${correctCount} object(s) correctly placed.`);
74
- }
75
- if (incorrectCount > 0) {
76
- traceLog.push(`${incorrectCount} incorrect object(s) placed.`);
77
- }
78
- if (missingCount > 0) {
79
- traceLog.push(`${missingCount} expected object(s) were not placed.`);
80
- }
81
- const studentAnswersCopy = [...studentAnswers];
82
- const correctResponseCopy = [...correctResponse];
83
- correct.forEach(index => {
84
- const answer = studentAnswersCopy[index];
85
- const objectType = answer?.type || 'object';
86
- traceLog.push(`${objectType.charAt(0).toUpperCase() + objectType.slice(1)} at position ${answer.domainPosition} is correct.`);
87
- });
88
- incorrect.forEach(index => {
89
- const answer = studentAnswersCopy[index];
90
- const objectType = answer?.type || 'object';
91
- traceLog.push(`${objectType.charAt(0).toUpperCase() + objectType.slice(1)} at position ${answer.domainPosition} does not match the expected response.`);
92
- });
93
- notInAnswer.forEach(expectedObject => {
94
- const objectType = expectedObject?.type || 'object';
95
- traceLog.push(`Expected ${objectType} at position ${expectedObject.domainPosition} was not placed by the student.`);
96
- });
97
- const partialScoringEnabled = _controllerUtils.partialScoring.enabled(model, env);
98
- if (partialScoringEnabled) {
99
- traceLog.push('Score calculated using partial scoring.');
100
- traceLog.push(`Partial scoring is based on the number of correct objects, with deductions for extras.`);
101
- } else {
102
- traceLog.push('Score calculated using all-or-nothing scoring.');
103
- }
104
- const total = correctResponse.length || 1;
105
- const extraPlacements = studentAnswers.length > total ? studentAnswers.length - total : 0;
106
- if (extraPlacements > 0) {
107
- traceLog.push(`${extraPlacements} extra object(s) beyond the required amount were placed and deducted.`);
108
- }
109
- const rawScore = Math.max(0, (correctCount - extraPlacements) / total);
110
- const finalScore = partialScoringEnabled ? rawScore : rawScore === 1 ? 1 : 0;
111
- traceLog.push(`Final score: ${finalScore}.`);
112
- return traceLog;
113
- };
114
-
115
- /**
116
- */
117
- exports.getLogTrace = getLogTrace;
118
- function outcome(model, session, env) {
119
- return new Promise(resolve => {
120
- if (!session || (0, _lodashEs.isEmpty)(session)) {
121
- resolve({
122
- score: 0,
123
- empty: true,
124
- logTrace: ['Student did not interact with the number line.']
125
- });
126
- } else {
127
- const partialScoringEnabled = _controllerUtils.partialScoring.enabled(model, env);
128
- const numCorrect = (session.answer || []).reduce(accumulateAnswer(model.correctResponse), 0);
129
- let total = model.correctResponse.length;
130
- let numIncorrect = 0;
131
- if ((session.answer || []).length > total) {
132
- numIncorrect = (session.answer || []).length - total;
133
- }
134
- if (total === 0) {
135
- total = 1;
136
- }
137
- let score = numCorrect < 0 ? 0 : (numCorrect - numIncorrect) / total;
138
- if (score < 0) {
139
- score = 0;
140
- }
141
- resolve({
142
- score: partialScoringEnabled ? score : score === 1 ? 1 : 0,
143
- logTrace: getLogTrace(model, session, env)
144
- });
145
- }
146
- });
147
- }
148
- function getScore(question, session) {
149
- return new Promise(resolve => {
150
- if (!session || (0, _lodashEs.isEmpty)(session)) {
151
- resolve({
152
- score: {
153
- scaled: 0
154
- }
155
- });
156
- } else {
157
- session.answer = session.answer || [];
158
- const corrected = getCorrected(session.answer, (0, _lodashEs.cloneDeep)(question.correctResponse));
159
- const correctness = getCorrectness(corrected);
160
- if (correctness === 'correct') {
161
- resolve(score(1.0));
162
- } else if (correctness === 'incorrect') {
163
- resolve(score(0.0));
164
- } else if (correctness === 'partial') {
165
- const {
166
- allowPartialScoring,
167
- partialScoring
168
- } = question;
169
- const ps = (partialScoring || []).filter(o => !(0, _lodashEs.isEmpty)(o));
170
- const canDoPartialScoring = allowPartialScoring && ps.length > 0;
171
- if (canDoPartialScoring) {
172
- resolve(score(getPartialScore(corrected, ps)));
173
- } else {
174
- resolve(score(0.0));
175
- }
176
- } else {
177
- resolve({
178
- score: {
179
- scaled: -1
180
- }
181
- });
182
- }
183
- }
184
- });
185
- }
186
- const CLOSE_TO_PRECISION = exports.CLOSE_TO_PRECISION = 3;
187
- const closeTo = (a, b, precision) => {
188
- precision = precision || 5;
189
- const expectedDiff = Math.pow(10, -precision) / 2;
190
- const receivedDiff = Math.abs(a - b);
191
- const close = receivedDiff <= expectedDiff;
192
- return close;
193
- };
194
- exports.closeTo = closeTo;
195
- const matches = a => v => {
196
- return (0, _lodashEs.isEqualWith)(a, v, (v, ov) => {
197
- if (typeof v === 'number' && typeof ov === 'number') {
198
- return closeTo(v, ov, CLOSE_TO_PRECISION);
199
- }
200
- });
201
- };
202
- const getCorrected = (answer, correctResponse) => {
203
- if ((0, _lodashEs.isEmpty)(correctResponse) && answer.length > 0) {
204
- return {
205
- correct: [],
206
- incorrect: [],
207
- notInAnswer: [],
208
- noCorrectResponse: true
209
- };
210
- }
211
- return answer.reduce((acc, a, index) => {
212
- const {
213
- correct,
214
- incorrect,
215
- notInAnswer
216
- } = acc;
217
- const match = (0, _lodashEs.find)(notInAnswer, matches(a));
218
- if (match) {
219
- correct.push(index);
220
- notInAnswer.splice(notInAnswer.indexOf(match), 1);
221
- } else {
222
- incorrect.push(index);
223
- }
224
- return {
225
- correct: correct,
226
- incorrect: incorrect,
227
- notInAnswer: notInAnswer
228
- };
229
- }, {
230
- correct: [],
231
- incorrect: [],
232
- notInAnswer: correctResponse
233
- });
234
- };
235
- exports.getCorrected = getCorrected;
236
- const getCorrectness = corrected => {
237
- const {
238
- incorrect,
239
- correct,
240
- notInAnswer,
241
- noCorrectResponse
242
- } = corrected;
243
- if (noCorrectResponse) {
244
- return 'unknown';
245
- }
246
- if (incorrect.length === 0 && correct.length === 0) {
247
- return 'unanswered';
248
- }
249
- if (incorrect.length === 0 && notInAnswer.length === 0) {
250
- return 'correct';
251
- }
252
- if (incorrect.length > 0 || notInAnswer.length > 0) {
253
- if (correct.length > 0) {
254
- return 'partial';
255
- } else {
256
- return 'incorrect';
257
- }
258
- }
259
- return 'unknown';
260
- };
261
-
262
- /**
263
- * A sample of a normalize function see:
264
- * https://github.com/pie-framework/pie-elements/issues/21
265
- */
266
- exports.getCorrectness = getCorrectness;
267
- function normalize(question) {
268
- const feedback = (0, _lodashEs.merge)(_defaults.default.feedback, question.feedback);
269
- return {
270
- ..._defaults.default,
271
- ...question,
272
- feedback
273
- };
274
- }
275
- function createDefaultModel(model = {}) {
276
- return new Promise(resolve => {
277
- const out = {
278
- ...model,
279
- graph: {
280
- ..._defaults.default.graph,
281
- ...model.graph
282
- },
283
- colorContrast: 'black_on_white'
284
- };
285
- resolve((0, _lodashEs.omitBy)(out, v => !v));
286
- });
287
- }
288
-
289
- // this function is duplicated in configure; at some point, use the same shared function
290
- const updateTicks = model => {
291
- const {
292
- graph: {
293
- domain,
294
- labelStep,
295
- ticks = {}
296
- } = {}
297
- } = model;
298
- const {
299
- minor,
300
- major
301
- } = ticks;
302
- if (domain) {
303
- domain.min = Number((domain.min || 0).toFixed(2));
304
- domain.max = Number((domain.max || 0).toFixed(2));
305
- }
306
- if (labelStep && typeof labelStep === 'string' && labelStep.match(/^[1-9][0-9]*\/[1-9][0-9]*$/g)) {
307
- model.graph.fraction = true;
308
- ticks.tickIntervalType = 'Fraction';
309
-
310
- // update the ticks frequency and label value to match the label step if needed
311
- const step = math.evaluate(labelStep);
312
- if (step !== major) {
313
- ticks.major = step;
314
- ticks.minor = step / (major / minor);
315
- }
316
- }
317
- return model;
318
- };
319
- async function model(question, session, env) {
320
- if (!question) {
321
- throw new Error('question is null');
322
- }
323
- const normalizedQuestion = await normalize(question);
324
- const normalizedModel = updateTicks(normalizedQuestion);
325
- // this function is also called in configure, it is a duplicate to maintain consistency and correctness
326
- const graph = (0, _utils.reloadTicksData)(normalizedModel.graph);
327
- if (graph) {
328
- const evaluateMode = env.mode === 'evaluate';
329
- const correctResponse = (0, _lodashEs.cloneDeep)(normalizedQuestion.correctResponse);
330
- const corrected = evaluateMode && getCorrected(session ? session.answer || [] : [], correctResponse);
331
- const correctness = evaluateMode && getCorrectness(corrected);
332
- const {
333
- exhibitOnly
334
- } = graph;
335
- const disabled = env.mode !== 'gather' || exhibitOnly === true;
336
- let teacherInstructions = null;
337
- if (env.role === 'instructor' && (env.mode === 'view' || evaluateMode)) {
338
- teacherInstructions = normalizedQuestion.teacherInstructions;
339
- }
340
- const feedbackMessage = evaluateMode ? await (0, _feedback.getFeedbackForCorrectness)(correctness, normalizedQuestion.feedback) : undefined;
341
- const out = {
342
- prompt: normalizedQuestion.prompt,
343
- teacherInstructions,
344
- graph,
345
- disabled,
346
- corrected,
347
- correctResponse: evaluateMode && ['unanswered', 'correct'].indexOf(correctness) === -1 && normalizedQuestion.correctResponse,
348
- feedback: feedbackMessage && {
349
- type: correctness,
350
- message: feedbackMessage
351
- },
352
- colorContrast: env.accessibility && env.accessibility.colorContrast || 'black_on_white',
353
- language: normalizedQuestion.language,
354
- extraCSSRules: normalizedQuestion.extraCSSRules
355
- };
356
- return (0, _lodashEs.omitBy)(out, v => !v);
357
- } else {
358
- throw new Error('graph is undefined');
359
- }
360
- }
361
- const createCorrectResponseSession = (question, env) => {
362
- return new Promise(resolve => {
363
- if (env.mode !== 'evaluate' && env.role === 'instructor') {
364
- const {
365
- correctResponse: answer
366
- } = question;
367
- resolve({
368
- answer,
369
- id: '1'
370
- });
371
- } else {
372
- resolve(null);
373
- }
374
- });
375
- };
376
-
377
- // remove all html tags
378
- exports.createCorrectResponseSession = createCorrectResponseSession;
379
- const getInnerText = html => (html || '').replaceAll(/<[^>]*>/g, '');
380
-
381
- // remove all html tags except img, iframe and source tag for audio
382
- const getContent = html => (html || '').replace(/(<(?!img|iframe|source)([^>]+)>)/gi, '');
383
- const validate = (model = {}, config = {}) => {
384
- const {
385
- graph,
386
- correctResponse
387
- } = model || {};
388
- const {
389
- maxMaxElements = 20,
390
- numberLineDimensions: {
391
- min: minWidth = 200,
392
- max: maxWidth = 800
393
- } = {}
394
- } = config || {};
395
- const {
396
- width,
397
- domain,
398
- maxNumberOfPoints
399
- } = graph || {};
400
- const {
401
- min,
402
- max
403
- } = domain || {};
404
- const errors = {};
405
- ['teacherInstructions', 'prompt'].forEach(field => {
406
- if (config[field]?.required && !getContent(model[field])) {
407
- errors[field] = 'This field is required.';
408
- }
409
- });
410
- if (width < minWidth || width > maxWidth) {
411
- errors.widthError = `Width should be a value between ${minWidth} and ${maxWidth}.`;
412
- }
413
- const MIN_DOMAIN = -100000;
414
- const MAX_DOMAIN = 100000;
415
- if (min < MIN_DOMAIN || min > MAX_DOMAIN || max < MIN_DOMAIN || max > MAX_DOMAIN) {
416
- errors.domainError = `Min and max values must both be in the range [${MIN_DOMAIN}, ${MAX_DOMAIN}].`;
417
- }
418
- if (min >= max) {
419
- errors.maxError = 'Max value must be greater than min value.';
420
- }
421
- if (maxNumberOfPoints < 1 || maxNumberOfPoints > maxMaxElements) {
422
- errors.pointsError = `Max number of elements should be between 1 and ${maxMaxElements}.`;
423
- }
424
- if (correctResponse && correctResponse.length === 0) {
425
- errors.correctResponseError = 'The correct answer should include at least one number line object.';
426
- }
427
- return errors;
428
- };
429
- exports.validate = validate;
430
- //# sourceMappingURL=index.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","names":["_lodashEs","require","_feedback","_controllerUtils","math","_interopRequireWildcard","_defaults","_interopRequireDefault","_utils","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","score","number","scaled","getPartialScore","corrected","ps","correct","rule","find","numberOfCorrect","length","scorePercentage","accumulateAnswer","correctResponse","total","answer","isCorrectResponse","some","cr","matches","getLogTrace","model","session","env","traceLog","studentAnswers","getCorrected","cloneDeep","incorrect","notInAnswer","noCorrectResponse","correctCount","incorrectCount","missingCount","push","studentAnswersCopy","correctResponseCopy","forEach","index","objectType","type","charAt","toUpperCase","slice","domainPosition","expectedObject","partialScoringEnabled","partialScoring","enabled","extraPlacements","rawScore","Math","max","finalScore","exports","outcome","Promise","resolve","isEmpty","empty","logTrace","numCorrect","reduce","numIncorrect","getScore","question","correctness","getCorrectness","allowPartialScoring","filter","canDoPartialScoring","CLOSE_TO_PRECISION","closeTo","a","b","precision","expectedDiff","pow","receivedDiff","abs","close","v","isEqualWith","ov","acc","match","splice","indexOf","normalize","feedback","merge","defaults","createDefaultModel","out","graph","colorContrast","omitBy","updateTicks","domain","labelStep","ticks","minor","major","min","Number","toFixed","fraction","tickIntervalType","step","evaluate","Error","normalizedQuestion","normalizedModel","reloadTicksData","evaluateMode","mode","exhibitOnly","disabled","teacherInstructions","role","feedbackMessage","getFeedbackForCorrectness","undefined","prompt","message","accessibility","language","extraCSSRules","createCorrectResponseSession","id","getInnerText","html","replaceAll","getContent","replace","validate","config","maxMaxElements","numberLineDimensions","minWidth","maxWidth","width","maxNumberOfPoints","errors","field","required","widthError","MIN_DOMAIN","MAX_DOMAIN","domainError","maxError","pointsError","correctResponseError"],"sources":["../src/index.js"],"sourcesContent":["import { cloneDeep, find, isEmpty, isEqualWith, merge, omitBy } from 'lodash-es';\nimport { getFeedbackForCorrectness } from '@pie-lib/feedback';\nimport { partialScoring } from '@pie-lib/controller-utils';\nimport * as math from 'mathjs';\n\nimport defaults from './defaults';\nimport { reloadTicksData } from './utils';\n\nconst score = (number) => {\n return {\n score: {\n scaled: number,\n },\n };\n};\n\nconst getPartialScore = (corrected, ps) => {\n const { correct } = corrected;\n const rule = ps.find((r) => r.numberOfCorrect === correct.length);\n\n if (rule) {\n return 1.0 * (rule.scorePercentage / 100);\n } else {\n return 0;\n }\n};\n\nconst accumulateAnswer = (correctResponse) => (total, answer) => {\n const isCorrectResponse = correctResponse.some((cr) => matches(cr)(answer));\n return total + (isCorrectResponse ? 1 : 0);\n};\n\n/**\n * Generates detailed trace log for scoring evaluation\n * @param {Object} model - the question model\n * @param {Object} session - the student session\n * @param {Object} env - the environment\n * @returns {Array} traceLog - array of trace messages\n */\nexport const getLogTrace = (model, session, env) => {\n const traceLog = [];\n\n const studentAnswers = session?.answer || [];\n const correctResponse = model?.correctResponse || [];\n\n if (!studentAnswers.length) {\n return ['Student did not interact with the number line.'];\n }\n\n const corrected = getCorrected(studentAnswers, cloneDeep(correctResponse));\n const { correct, incorrect, notInAnswer, noCorrectResponse } = corrected;\n\n if (noCorrectResponse) {\n return ['No correct response is defined for this item.'];\n }\n\n const correctCount = correct.length;\n const incorrectCount = incorrect.length;\n const missingCount = notInAnswer.length;\n\n if (correctCount > 0) {\n traceLog.push(`${correctCount} object(s) correctly placed.`);\n }\n\n if (incorrectCount > 0) {\n traceLog.push(`${incorrectCount} incorrect object(s) placed.`);\n }\n\n if (missingCount > 0) {\n traceLog.push(`${missingCount} expected object(s) were not placed.`);\n }\n\n const studentAnswersCopy = [...studentAnswers];\n const correctResponseCopy = [...correctResponse];\n\n correct.forEach((index) => {\n const answer = studentAnswersCopy[index];\n const objectType = answer?.type || 'object';\n traceLog.push(`${objectType.charAt(0).toUpperCase() + objectType.slice(1)} at position ${answer.domainPosition} is correct.`);\n });\n\n incorrect.forEach((index) => {\n const answer = studentAnswersCopy[index];\n const objectType = answer?.type || 'object';\n traceLog.push(`${objectType.charAt(0).toUpperCase() + objectType.slice(1)} at position ${answer.domainPosition} does not match the expected response.`);\n });\n\n notInAnswer.forEach((expectedObject) => {\n const objectType = expectedObject?.type || 'object';\n traceLog.push(`Expected ${objectType} at position ${expectedObject.domainPosition} was not placed by the student.`);\n });\n\n const partialScoringEnabled = partialScoring.enabled(model, env);\n\n if (partialScoringEnabled) {\n traceLog.push('Score calculated using partial scoring.');\n traceLog.push(`Partial scoring is based on the number of correct objects, with deductions for extras.`);\n } else {\n traceLog.push('Score calculated using all-or-nothing scoring.');\n }\n\n const total = correctResponse.length || 1;\n const extraPlacements =\n studentAnswers.length > total ? studentAnswers.length - total : 0;\n\n if (extraPlacements > 0) {\n traceLog.push(\n `${extraPlacements} extra object(s) beyond the required amount were placed and deducted.`,\n );\n }\n\n const rawScore = Math.max(0, (correctCount - extraPlacements) / total);\n const finalScore = partialScoringEnabled ? rawScore : rawScore === 1 ? 1 : 0;\n\n traceLog.push(`Final score: ${finalScore}.`);\n\n return traceLog;\n};\n\n\n/**\n */\nexport function outcome(model, session, env) {\n return new Promise((resolve) => {\n if (!session || isEmpty(session)) {\n resolve({ score: 0, empty: true, logTrace: ['Student did not interact with the number line.'] });\n } else {\n const partialScoringEnabled = partialScoring.enabled(model, env);\n const numCorrect = (session.answer || []).reduce(accumulateAnswer(model.correctResponse), 0);\n\n let total = model.correctResponse.length;\n let numIncorrect = 0;\n\n if ((session.answer || []).length > total) {\n numIncorrect = (session.answer || []).length - total;\n }\n\n if (total === 0) {\n total = 1;\n }\n\n let score = numCorrect < 0 ? 0 : (numCorrect - numIncorrect) / total;\n\n if (score < 0) {\n score = 0;\n }\n\n resolve({ \n score: partialScoringEnabled ? score : score === 1 ? 1 : 0,\n logTrace: getLogTrace(model, session, env)\n });\n }\n });\n}\n\nexport function getScore(question, session) {\n return new Promise((resolve) => {\n if (!session || isEmpty(session)) {\n resolve({ score: { scaled: 0 } });\n } else {\n session.answer = session.answer || [];\n\n const corrected = getCorrected(session.answer, cloneDeep(question.correctResponse));\n\n const correctness = getCorrectness(corrected);\n\n if (correctness === 'correct') {\n resolve(score(1.0));\n } else if (correctness === 'incorrect') {\n resolve(score(0.0));\n } else if (correctness === 'partial') {\n const { allowPartialScoring, partialScoring } = question;\n const ps = (partialScoring || []).filter((o) => !isEmpty(o));\n const canDoPartialScoring = allowPartialScoring && ps.length > 0;\n if (canDoPartialScoring) {\n resolve(score(getPartialScore(corrected, ps)));\n } else {\n resolve(score(0.0));\n }\n } else {\n resolve({ score: { scaled: -1 } });\n }\n }\n });\n}\n\nexport const CLOSE_TO_PRECISION = 3;\n\nexport const closeTo = (a, b, precision) => {\n precision = precision || 5;\n const expectedDiff = Math.pow(10, -precision) / 2;\n const receivedDiff = Math.abs(a - b);\n const close = receivedDiff <= expectedDiff;\n return close;\n};\n\nconst matches = (a) => (v) => {\n return isEqualWith(a, v, (v, ov) => {\n if (typeof v === 'number' && typeof ov === 'number') {\n return closeTo(v, ov, CLOSE_TO_PRECISION);\n }\n });\n};\n\nexport const getCorrected = (answer, correctResponse) => {\n if (isEmpty(correctResponse) && answer.length > 0) {\n return {\n correct: [],\n incorrect: [],\n notInAnswer: [],\n noCorrectResponse: true,\n };\n }\n\n return answer.reduce(\n (acc, a, index) => {\n const { correct, incorrect, notInAnswer } = acc;\n\n const match = find(notInAnswer, matches(a));\n if (match) {\n correct.push(index);\n notInAnswer.splice(notInAnswer.indexOf(match), 1);\n } else {\n incorrect.push(index);\n }\n\n return {\n correct: correct,\n incorrect: incorrect,\n notInAnswer: notInAnswer,\n };\n },\n {\n correct: [],\n incorrect: [],\n notInAnswer: correctResponse,\n },\n );\n};\n\nexport const getCorrectness = (corrected) => {\n const { incorrect, correct, notInAnswer, noCorrectResponse } = corrected;\n\n if (noCorrectResponse) {\n return 'unknown';\n }\n\n if (incorrect.length === 0 && correct.length === 0) {\n return 'unanswered';\n }\n\n if (incorrect.length === 0 && notInAnswer.length === 0) {\n return 'correct';\n }\n\n if (incorrect.length > 0 || notInAnswer.length > 0) {\n if (correct.length > 0) {\n return 'partial';\n } else {\n return 'incorrect';\n }\n }\n\n return 'unknown';\n};\n\n/**\n * A sample of a normalize function see:\n * https://github.com/pie-framework/pie-elements/issues/21\n */\nexport function normalize(question) {\n const feedback = merge(defaults.feedback, question.feedback);\n\n return { ...defaults, ...question, feedback };\n}\n\nexport function createDefaultModel(model = {}) {\n return new Promise((resolve) => {\n const out = {\n ...model,\n graph: {\n ...defaults.graph,\n ...model.graph,\n },\n colorContrast: 'black_on_white',\n };\n\n resolve(omitBy(out, (v) => !v));\n });\n}\n\n// this function is duplicated in configure; at some point, use the same shared function\nconst updateTicks = (model) => {\n const { graph: { domain, labelStep, ticks = {} } = {} } = model;\n const { minor, major } = ticks;\n\n if (domain) {\n domain.min = Number((domain.min || 0).toFixed(2));\n domain.max = Number((domain.max || 0).toFixed(2));\n }\n\n if (labelStep && typeof labelStep === 'string' && labelStep.match(/^[1-9][0-9]*\\/[1-9][0-9]*$/g)) {\n model.graph.fraction = true;\n ticks.tickIntervalType = 'Fraction';\n\n // update the ticks frequency and label value to match the label step if needed\n const step = math.evaluate(labelStep);\n\n if (step !== major) {\n ticks.major = step;\n ticks.minor = step / (major / minor);\n }\n }\n\n return model;\n};\n\nexport async function model(question, session, env) {\n if (!question) {\n throw new Error('question is null');\n }\n\n const normalizedQuestion = await normalize(question);\n const normalizedModel = updateTicks(normalizedQuestion);\n // this function is also called in configure, it is a duplicate to maintain consistency and correctness\n const graph = reloadTicksData(normalizedModel.graph);\n\n if (graph) {\n const evaluateMode = env.mode === 'evaluate';\n\n const correctResponse = cloneDeep(normalizedQuestion.correctResponse);\n const corrected = evaluateMode && getCorrected(session ? session.answer || [] : [], correctResponse);\n const correctness = evaluateMode && getCorrectness(corrected);\n\n const { exhibitOnly } = graph;\n const disabled = env.mode !== 'gather' || exhibitOnly === true;\n let teacherInstructions = null;\n\n if (env.role === 'instructor' && (env.mode === 'view' || evaluateMode)) {\n teacherInstructions = normalizedQuestion.teacherInstructions;\n }\n\n const feedbackMessage = evaluateMode\n ? await getFeedbackForCorrectness(correctness, normalizedQuestion.feedback)\n : undefined;\n\n const out = {\n prompt: normalizedQuestion.prompt,\n teacherInstructions,\n graph,\n disabled,\n corrected,\n correctResponse:\n evaluateMode && ['unanswered', 'correct'].indexOf(correctness) === -1 && normalizedQuestion.correctResponse,\n feedback: feedbackMessage && {\n type: correctness,\n message: feedbackMessage,\n },\n colorContrast: (env.accessibility && env.accessibility.colorContrast) || 'black_on_white',\n language: normalizedQuestion.language,\n extraCSSRules: normalizedQuestion.extraCSSRules,\n };\n return omitBy(out, (v) => !v);\n } else {\n throw new Error('graph is undefined');\n }\n}\n\nexport const createCorrectResponseSession = (question, env) => {\n return new Promise((resolve) => {\n if (env.mode !== 'evaluate' && env.role === 'instructor') {\n const { correctResponse: answer } = question;\n\n resolve({\n answer,\n id: '1',\n });\n } else {\n resolve(null);\n }\n });\n};\n\n// remove all html tags\nconst getInnerText = (html) => (html || '').replaceAll(/<[^>]*>/g, '');\n\n// remove all html tags except img, iframe and source tag for audio\nconst getContent = (html) => (html || '').replace(/(<(?!img|iframe|source)([^>]+)>)/gi, '');\n\nexport const validate = (model = {}, config = {}) => {\n const { graph, correctResponse } = model || {};\n const { maxMaxElements = 20, numberLineDimensions: { min: minWidth = 200, max: maxWidth = 800 } = {} } = config || {};\n const { width, domain, maxNumberOfPoints } = graph || {};\n const { min, max } = domain || {};\n const errors = {};\n\n ['teacherInstructions', 'prompt'].forEach((field) => {\n if (config[field]?.required && !getContent(model[field])) {\n errors[field] = 'This field is required.';\n }\n });\n\n if (width < minWidth || width > maxWidth) {\n errors.widthError = `Width should be a value between ${minWidth} and ${maxWidth}.`;\n }\n\n const MIN_DOMAIN = -100000;\n const MAX_DOMAIN = 100000;\n\n if (min < MIN_DOMAIN || min > MAX_DOMAIN || max < MIN_DOMAIN || max > MAX_DOMAIN) {\n errors.domainError = `Min and max values must both be in the range [${MIN_DOMAIN}, ${MAX_DOMAIN}].`;\n }\n\n if (min >= max) {\n errors.maxError = 'Max value must be greater than min value.';\n }\n\n if (maxNumberOfPoints < 1 || maxNumberOfPoints > maxMaxElements) {\n errors.pointsError = `Max number of elements should be between 1 and ${maxMaxElements}.`;\n }\n\n if (correctResponse && correctResponse.length === 0) {\n errors.correctResponseError = 'The correct answer should include at least one number line object.';\n }\n\n return errors;\n};\n"],"mappings":";;;;;;;;;;;;;;AAAA,IAAAA,SAAA,GAAAC,OAAA;AACA,IAAAC,SAAA,GAAAD,OAAA;AACA,IAAAE,gBAAA,GAAAF,OAAA;AACA,IAAAG,IAAA,GAAAC,uBAAA,CAAAJ,OAAA;AAEA,IAAAK,SAAA,GAAAC,sBAAA,CAAAN,OAAA;AACA,IAAAO,MAAA,GAAAP,OAAA;AAA0C,SAAAI,wBAAAI,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAN,uBAAA,YAAAA,CAAAI,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA;AAE1C,MAAMkB,KAAK,GAAIC,MAAM,IAAK;EACxB,OAAO;IACLD,KAAK,EAAE;MACLE,MAAM,EAAED;IACV;EACF,CAAC;AACH,CAAC;AAED,MAAME,eAAe,GAAGA,CAACC,SAAS,EAAEC,EAAE,KAAK;EACzC,MAAM;IAAEC;EAAQ,CAAC,GAAGF,SAAS;EAC7B,MAAMG,IAAI,GAAGF,EAAE,CAACG,IAAI,CAAExB,CAAC,IAAKA,CAAC,CAACyB,eAAe,KAAKH,OAAO,CAACI,MAAM,CAAC;EAEjE,IAAIH,IAAI,EAAE;IACR,OAAO,GAAG,IAAIA,IAAI,CAACI,eAAe,GAAG,GAAG,CAAC;EAC3C,CAAC,MAAM;IACL,OAAO,CAAC;EACV;AACF,CAAC;AAED,MAAMC,gBAAgB,GAAIC,eAAe,IAAK,CAACC,KAAK,EAAEC,MAAM,KAAK;EAC/D,MAAMC,iBAAiB,GAAGH,eAAe,CAACI,IAAI,CAAEC,EAAE,IAAKC,OAAO,CAACD,EAAE,CAAC,CAACH,MAAM,CAAC,CAAC;EAC3E,OAAOD,KAAK,IAAIE,iBAAiB,GAAG,CAAC,GAAG,CAAC,CAAC;AAC5C,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMI,WAAW,GAAGA,CAACC,KAAK,EAAEC,OAAO,EAAEC,GAAG,KAAK;EAClD,MAAMC,QAAQ,GAAG,EAAE;EAEnB,MAAMC,cAAc,GAAGH,OAAO,EAAEP,MAAM,IAAI,EAAE;EAC5C,MAAMF,eAAe,GAAGQ,KAAK,EAAER,eAAe,IAAI,EAAE;EAEpD,IAAI,CAACY,cAAc,CAACf,MAAM,EAAE;IAC3B,OAAO,CAAC,gDAAgD,CAAC;EAC1D;EAEA,MAAMN,SAAS,GAAGsB,YAAY,CAACD,cAAc,EAAE,IAAAE,mBAAS,EAACd,eAAe,CAAC,CAAC;EAC1E,MAAM;IAAEP,OAAO;IAAEsB,SAAS;IAAEC,WAAW;IAAEC;EAAkB,CAAC,GAAG1B,SAAS;EAExE,IAAI0B,iBAAiB,EAAE;IACrB,OAAO,CAAC,+CAA+C,CAAC;EAC1D;EAEA,MAAMC,YAAY,GAAGzB,OAAO,CAACI,MAAM;EACnC,MAAMsB,cAAc,GAAGJ,SAAS,CAAClB,MAAM;EACvC,MAAMuB,YAAY,GAAGJ,WAAW,CAACnB,MAAM;EAEvC,IAAIqB,YAAY,GAAG,CAAC,EAAE;IACpBP,QAAQ,CAACU,IAAI,CAAC,GAAGH,YAAY,8BAA8B,CAAC;EAC9D;EAEA,IAAIC,cAAc,GAAG,CAAC,EAAE;IACtBR,QAAQ,CAACU,IAAI,CAAC,GAAGF,cAAc,8BAA8B,CAAC;EAChE;EAEA,IAAIC,YAAY,GAAG,CAAC,EAAE;IACpBT,QAAQ,CAACU,IAAI,CAAC,GAAGD,YAAY,sCAAsC,CAAC;EACtE;EAEA,MAAME,kBAAkB,GAAG,CAAC,GAAGV,cAAc,CAAC;EAC9C,MAAMW,mBAAmB,GAAG,CAAC,GAAGvB,eAAe,CAAC;EAEhDP,OAAO,CAAC+B,OAAO,CAAEC,KAAK,IAAK;IACzB,MAAMvB,MAAM,GAAGoB,kBAAkB,CAACG,KAAK,CAAC;IACxC,MAAMC,UAAU,GAAGxB,MAAM,EAAEyB,IAAI,IAAI,QAAQ;IAC3ChB,QAAQ,CAACU,IAAI,CAAC,GAAGK,UAAU,CAACE,MAAM,CAAC,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,GAAGH,UAAU,CAACI,KAAK,CAAC,CAAC,CAAC,gBAAgB5B,MAAM,CAAC6B,cAAc,cAAc,CAAC;EAC/H,CAAC,CAAC;EAEFhB,SAAS,CAACS,OAAO,CAAEC,KAAK,IAAK;IAC3B,MAAMvB,MAAM,GAAGoB,kBAAkB,CAACG,KAAK,CAAC;IACxC,MAAMC,UAAU,GAAGxB,MAAM,EAAEyB,IAAI,IAAI,QAAQ;IAC3ChB,QAAQ,CAACU,IAAI,CAAC,GAAGK,UAAU,CAACE,MAAM,CAAC,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,GAAGH,UAAU,CAACI,KAAK,CAAC,CAAC,CAAC,gBAAgB5B,MAAM,CAAC6B,cAAc,wCAAwC,CAAC;EACzJ,CAAC,CAAC;EAEFf,WAAW,CAACQ,OAAO,CAAEQ,cAAc,IAAK;IACtC,MAAMN,UAAU,GAAGM,cAAc,EAAEL,IAAI,IAAI,QAAQ;IACnDhB,QAAQ,CAACU,IAAI,CAAC,YAAYK,UAAU,gBAAgBM,cAAc,CAACD,cAAc,iCAAiC,CAAC;EACrH,CAAC,CAAC;EAEF,MAAME,qBAAqB,GAAGC,+BAAc,CAACC,OAAO,CAAC3B,KAAK,EAAEE,GAAG,CAAC;EAEhE,IAAIuB,qBAAqB,EAAE;IACzBtB,QAAQ,CAACU,IAAI,CAAC,yCAAyC,CAAC;IACxDV,QAAQ,CAACU,IAAI,CAAC,wFAAwF,CAAC;EACzG,CAAC,MAAM;IACLV,QAAQ,CAACU,IAAI,CAAC,gDAAgD,CAAC;EACjE;EAEA,MAAMpB,KAAK,GAAGD,eAAe,CAACH,MAAM,IAAI,CAAC;EACzC,MAAMuC,eAAe,GACnBxB,cAAc,CAACf,MAAM,GAAGI,KAAK,GAAGW,cAAc,CAACf,MAAM,GAAGI,KAAK,GAAG,CAAC;EAEnE,IAAImC,eAAe,GAAG,CAAC,EAAE;IACvBzB,QAAQ,CAACU,IAAI,CACX,GAAGe,eAAe,uEACpB,CAAC;EACH;EAEA,MAAMC,QAAQ,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAE,CAACrB,YAAY,GAAGkB,eAAe,IAAInC,KAAK,CAAC;EACtE,MAAMuC,UAAU,GAAGP,qBAAqB,GAAGI,QAAQ,GAAGA,QAAQ,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;EAE5E1B,QAAQ,CAACU,IAAI,CAAC,gBAAgBmB,UAAU,GAAG,CAAC;EAE5C,OAAO7B,QAAQ;AACjB,CAAC;;AAGD;AACA;AADA8B,OAAA,CAAAlC,WAAA,GAAAA,WAAA;AAEO,SAASmC,OAAOA,CAAClC,KAAK,EAAEC,OAAO,EAAEC,GAAG,EAAE;EAC3C,OAAO,IAAIiC,OAAO,CAAEC,OAAO,IAAK;IAC9B,IAAI,CAACnC,OAAO,IAAI,IAAAoC,iBAAO,EAACpC,OAAO,CAAC,EAAE;MAChCmC,OAAO,CAAC;QAAEzD,KAAK,EAAE,CAAC;QAAE2D,KAAK,EAAE,IAAI;QAAEC,QAAQ,EAAE,CAAC,gDAAgD;MAAE,CAAC,CAAC;IAClG,CAAC,MAAM;MACL,MAAMd,qBAAqB,GAAGC,+BAAc,CAACC,OAAO,CAAC3B,KAAK,EAAEE,GAAG,CAAC;MAChE,MAAMsC,UAAU,GAAG,CAACvC,OAAO,CAACP,MAAM,IAAI,EAAE,EAAE+C,MAAM,CAAClD,gBAAgB,CAACS,KAAK,CAACR,eAAe,CAAC,EAAE,CAAC,CAAC;MAE5F,IAAIC,KAAK,GAAGO,KAAK,CAACR,eAAe,CAACH,MAAM;MACxC,IAAIqD,YAAY,GAAG,CAAC;MAEpB,IAAI,CAACzC,OAAO,CAACP,MAAM,IAAI,EAAE,EAAEL,MAAM,GAAGI,KAAK,EAAE;QACzCiD,YAAY,GAAG,CAACzC,OAAO,CAACP,MAAM,IAAI,EAAE,EAAEL,MAAM,GAAGI,KAAK;MACtD;MAEA,IAAIA,KAAK,KAAK,CAAC,EAAE;QACfA,KAAK,GAAG,CAAC;MACX;MAEA,IAAId,KAAK,GAAG6D,UAAU,GAAG,CAAC,GAAG,CAAC,GAAG,CAACA,UAAU,GAAGE,YAAY,IAAIjD,KAAK;MAEpE,IAAId,KAAK,GAAG,CAAC,EAAE;QACbA,KAAK,GAAG,CAAC;MACX;MAEAyD,OAAO,CAAC;QACNzD,KAAK,EAAE8C,qBAAqB,GAAG9C,KAAK,GAAGA,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC;QAC1D4D,QAAQ,EAAExC,WAAW,CAACC,KAAK,EAAEC,OAAO,EAAEC,GAAG;MAC3C,CAAC,CAAC;IACJ;EACF,CAAC,CAAC;AACJ;AAEO,SAASyC,QAAQA,CAACC,QAAQ,EAAE3C,OAAO,EAAE;EAC1C,OAAO,IAAIkC,OAAO,CAAEC,OAAO,IAAK;IAC9B,IAAI,CAACnC,OAAO,IAAI,IAAAoC,iBAAO,EAACpC,OAAO,CAAC,EAAE;MAChCmC,OAAO,CAAC;QAAEzD,KAAK,EAAE;UAAEE,MAAM,EAAE;QAAE;MAAE,CAAC,CAAC;IACnC,CAAC,MAAM;MACLoB,OAAO,CAACP,MAAM,GAAGO,OAAO,CAACP,MAAM,IAAI,EAAE;MAErC,MAAMX,SAAS,GAAGsB,YAAY,CAACJ,OAAO,CAACP,MAAM,EAAE,IAAAY,mBAAS,EAACsC,QAAQ,CAACpD,eAAe,CAAC,CAAC;MAEnF,MAAMqD,WAAW,GAAGC,cAAc,CAAC/D,SAAS,CAAC;MAE7C,IAAI8D,WAAW,KAAK,SAAS,EAAE;QAC7BT,OAAO,CAACzD,KAAK,CAAC,GAAG,CAAC,CAAC;MACrB,CAAC,MAAM,IAAIkE,WAAW,KAAK,WAAW,EAAE;QACtCT,OAAO,CAACzD,KAAK,CAAC,GAAG,CAAC,CAAC;MACrB,CAAC,MAAM,IAAIkE,WAAW,KAAK,SAAS,EAAE;QACpC,MAAM;UAAEE,mBAAmB;UAAErB;QAAe,CAAC,GAAGkB,QAAQ;QACxD,MAAM5D,EAAE,GAAG,CAAC0C,cAAc,IAAI,EAAE,EAAEsB,MAAM,CAAElF,CAAC,IAAK,CAAC,IAAAuE,iBAAO,EAACvE,CAAC,CAAC,CAAC;QAC5D,MAAMmF,mBAAmB,GAAGF,mBAAmB,IAAI/D,EAAE,CAACK,MAAM,GAAG,CAAC;QAChE,IAAI4D,mBAAmB,EAAE;UACvBb,OAAO,CAACzD,KAAK,CAACG,eAAe,CAACC,SAAS,EAAEC,EAAE,CAAC,CAAC,CAAC;QAChD,CAAC,MAAM;UACLoD,OAAO,CAACzD,KAAK,CAAC,GAAG,CAAC,CAAC;QACrB;MACF,CAAC,MAAM;QACLyD,OAAO,CAAC;UAAEzD,KAAK,EAAE;YAAEE,MAAM,EAAE,CAAC;UAAE;QAAE,CAAC,CAAC;MACpC;IACF;EACF,CAAC,CAAC;AACJ;AAEO,MAAMqE,kBAAkB,GAAAjB,OAAA,CAAAiB,kBAAA,GAAG,CAAC;AAE5B,MAAMC,OAAO,GAAGA,CAACC,CAAC,EAAEC,CAAC,EAAEC,SAAS,KAAK;EAC1CA,SAAS,GAAGA,SAAS,IAAI,CAAC;EAC1B,MAAMC,YAAY,GAAGzB,IAAI,CAAC0B,GAAG,CAAC,EAAE,EAAE,CAACF,SAAS,CAAC,GAAG,CAAC;EACjD,MAAMG,YAAY,GAAG3B,IAAI,CAAC4B,GAAG,CAACN,CAAC,GAAGC,CAAC,CAAC;EACpC,MAAMM,KAAK,GAAGF,YAAY,IAAIF,YAAY;EAC1C,OAAOI,KAAK;AACd,CAAC;AAAC1B,OAAA,CAAAkB,OAAA,GAAAA,OAAA;AAEF,MAAMrD,OAAO,GAAIsD,CAAC,IAAMQ,CAAC,IAAK;EAC5B,OAAO,IAAAC,qBAAW,EAACT,CAAC,EAAEQ,CAAC,EAAE,CAACA,CAAC,EAAEE,EAAE,KAAK;IAClC,IAAI,OAAOF,CAAC,KAAK,QAAQ,IAAI,OAAOE,EAAE,KAAK,QAAQ,EAAE;MACnD,OAAOX,OAAO,CAACS,CAAC,EAAEE,EAAE,EAAEZ,kBAAkB,CAAC;IAC3C;EACF,CAAC,CAAC;AACJ,CAAC;AAEM,MAAM7C,YAAY,GAAGA,CAACX,MAAM,EAAEF,eAAe,KAAK;EACvD,IAAI,IAAA6C,iBAAO,EAAC7C,eAAe,CAAC,IAAIE,MAAM,CAACL,MAAM,GAAG,CAAC,EAAE;IACjD,OAAO;MACLJ,OAAO,EAAE,EAAE;MACXsB,SAAS,EAAE,EAAE;MACbC,WAAW,EAAE,EAAE;MACfC,iBAAiB,EAAE;IACrB,CAAC;EACH;EAEA,OAAOf,MAAM,CAAC+C,MAAM,CAClB,CAACsB,GAAG,EAAEX,CAAC,EAAEnC,KAAK,KAAK;IACjB,MAAM;MAAEhC,OAAO;MAAEsB,SAAS;MAAEC;IAAY,CAAC,GAAGuD,GAAG;IAE/C,MAAMC,KAAK,GAAG,IAAA7E,cAAI,EAACqB,WAAW,EAAEV,OAAO,CAACsD,CAAC,CAAC,CAAC;IAC3C,IAAIY,KAAK,EAAE;MACT/E,OAAO,CAAC4B,IAAI,CAACI,KAAK,CAAC;MACnBT,WAAW,CAACyD,MAAM,CAACzD,WAAW,CAAC0D,OAAO,CAACF,KAAK,CAAC,EAAE,CAAC,CAAC;IACnD,CAAC,MAAM;MACLzD,SAAS,CAACM,IAAI,CAACI,KAAK,CAAC;IACvB;IAEA,OAAO;MACLhC,OAAO,EAAEA,OAAO;MAChBsB,SAAS,EAAEA,SAAS;MACpBC,WAAW,EAAEA;IACf,CAAC;EACH,CAAC,EACD;IACEvB,OAAO,EAAE,EAAE;IACXsB,SAAS,EAAE,EAAE;IACbC,WAAW,EAAEhB;EACf,CACF,CAAC;AACH,CAAC;AAACyC,OAAA,CAAA5B,YAAA,GAAAA,YAAA;AAEK,MAAMyC,cAAc,GAAI/D,SAAS,IAAK;EAC3C,MAAM;IAAEwB,SAAS;IAAEtB,OAAO;IAAEuB,WAAW;IAAEC;EAAkB,CAAC,GAAG1B,SAAS;EAExE,IAAI0B,iBAAiB,EAAE;IACrB,OAAO,SAAS;EAClB;EAEA,IAAIF,SAAS,CAAClB,MAAM,KAAK,CAAC,IAAIJ,OAAO,CAACI,MAAM,KAAK,CAAC,EAAE;IAClD,OAAO,YAAY;EACrB;EAEA,IAAIkB,SAAS,CAAClB,MAAM,KAAK,CAAC,IAAImB,WAAW,CAACnB,MAAM,KAAK,CAAC,EAAE;IACtD,OAAO,SAAS;EAClB;EAEA,IAAIkB,SAAS,CAAClB,MAAM,GAAG,CAAC,IAAImB,WAAW,CAACnB,MAAM,GAAG,CAAC,EAAE;IAClD,IAAIJ,OAAO,CAACI,MAAM,GAAG,CAAC,EAAE;MACtB,OAAO,SAAS;IAClB,CAAC,MAAM;MACL,OAAO,WAAW;IACpB;EACF;EAEA,OAAO,SAAS;AAClB,CAAC;;AAED;AACA;AACA;AACA;AAHA4C,OAAA,CAAAa,cAAA,GAAAA,cAAA;AAIO,SAASqB,SAASA,CAACvB,QAAQ,EAAE;EAClC,MAAMwB,QAAQ,GAAG,IAAAC,eAAK,EAACC,iBAAQ,CAACF,QAAQ,EAAExB,QAAQ,CAACwB,QAAQ,CAAC;EAE5D,OAAO;IAAE,GAAGE,iBAAQ;IAAE,GAAG1B,QAAQ;IAAEwB;EAAS,CAAC;AAC/C;AAEO,SAASG,kBAAkBA,CAACvE,KAAK,GAAG,CAAC,CAAC,EAAE;EAC7C,OAAO,IAAImC,OAAO,CAAEC,OAAO,IAAK;IAC9B,MAAMoC,GAAG,GAAG;MACV,GAAGxE,KAAK;MACRyE,KAAK,EAAE;QACL,GAAGH,iBAAQ,CAACG,KAAK;QACjB,GAAGzE,KAAK,CAACyE;MACX,CAAC;MACDC,aAAa,EAAE;IACjB,CAAC;IAEDtC,OAAO,CAAC,IAAAuC,gBAAM,EAACH,GAAG,EAAGZ,CAAC,IAAK,CAACA,CAAC,CAAC,CAAC;EACjC,CAAC,CAAC;AACJ;;AAEA;AACA,MAAMgB,WAAW,GAAI5E,KAAK,IAAK;EAC7B,MAAM;IAAEyE,KAAK,EAAE;MAAEI,MAAM;MAAEC,SAAS;MAAEC,KAAK,GAAG,CAAC;IAAE,CAAC,GAAG,CAAC;EAAE,CAAC,GAAG/E,KAAK;EAC/D,MAAM;IAAEgF,KAAK;IAAEC;EAAM,CAAC,GAAGF,KAAK;EAE9B,IAAIF,MAAM,EAAE;IACVA,MAAM,CAACK,GAAG,GAAGC,MAAM,CAAC,CAACN,MAAM,CAACK,GAAG,IAAI,CAAC,EAAEE,OAAO,CAAC,CAAC,CAAC,CAAC;IACjDP,MAAM,CAAC9C,GAAG,GAAGoD,MAAM,CAAC,CAACN,MAAM,CAAC9C,GAAG,IAAI,CAAC,EAAEqD,OAAO,CAAC,CAAC,CAAC,CAAC;EACnD;EAEA,IAAIN,SAAS,IAAI,OAAOA,SAAS,KAAK,QAAQ,IAAIA,SAAS,CAACd,KAAK,CAAC,6BAA6B,CAAC,EAAE;IAChGhE,KAAK,CAACyE,KAAK,CAACY,QAAQ,GAAG,IAAI;IAC3BN,KAAK,CAACO,gBAAgB,GAAG,UAAU;;IAEnC;IACA,MAAMC,IAAI,GAAGpI,IAAI,CAACqI,QAAQ,CAACV,SAAS,CAAC;IAErC,IAAIS,IAAI,KAAKN,KAAK,EAAE;MAClBF,KAAK,CAACE,KAAK,GAAGM,IAAI;MAClBR,KAAK,CAACC,KAAK,GAAGO,IAAI,IAAIN,KAAK,GAAGD,KAAK,CAAC;IACtC;EACF;EAEA,OAAOhF,KAAK;AACd,CAAC;AAEM,eAAeA,KAAKA,CAAC4C,QAAQ,EAAE3C,OAAO,EAAEC,GAAG,EAAE;EAClD,IAAI,CAAC0C,QAAQ,EAAE;IACb,MAAM,IAAI6C,KAAK,CAAC,kBAAkB,CAAC;EACrC;EAEA,MAAMC,kBAAkB,GAAG,MAAMvB,SAAS,CAACvB,QAAQ,CAAC;EACpD,MAAM+C,eAAe,GAAGf,WAAW,CAACc,kBAAkB,CAAC;EACvD;EACA,MAAMjB,KAAK,GAAG,IAAAmB,sBAAe,EAACD,eAAe,CAAClB,KAAK,CAAC;EAEpD,IAAIA,KAAK,EAAE;IACT,MAAMoB,YAAY,GAAG3F,GAAG,CAAC4F,IAAI,KAAK,UAAU;IAE5C,MAAMtG,eAAe,GAAG,IAAAc,mBAAS,EAACoF,kBAAkB,CAAClG,eAAe,CAAC;IACrE,MAAMT,SAAS,GAAG8G,YAAY,IAAIxF,YAAY,CAACJ,OAAO,GAAGA,OAAO,CAACP,MAAM,IAAI,EAAE,GAAG,EAAE,EAAEF,eAAe,CAAC;IACpG,MAAMqD,WAAW,GAAGgD,YAAY,IAAI/C,cAAc,CAAC/D,SAAS,CAAC;IAE7D,MAAM;MAAEgH;IAAY,CAAC,GAAGtB,KAAK;IAC7B,MAAMuB,QAAQ,GAAG9F,GAAG,CAAC4F,IAAI,KAAK,QAAQ,IAAIC,WAAW,KAAK,IAAI;IAC9D,IAAIE,mBAAmB,GAAG,IAAI;IAE9B,IAAI/F,GAAG,CAACgG,IAAI,KAAK,YAAY,KAAKhG,GAAG,CAAC4F,IAAI,KAAK,MAAM,IAAID,YAAY,CAAC,EAAE;MACtEI,mBAAmB,GAAGP,kBAAkB,CAACO,mBAAmB;IAC9D;IAEA,MAAME,eAAe,GAAGN,YAAY,GAChC,MAAM,IAAAO,mCAAyB,EAACvD,WAAW,EAAE6C,kBAAkB,CAACtB,QAAQ,CAAC,GACzEiC,SAAS;IAEb,MAAM7B,GAAG,GAAG;MACV8B,MAAM,EAAEZ,kBAAkB,CAACY,MAAM;MACjCL,mBAAmB;MACnBxB,KAAK;MACLuB,QAAQ;MACRjH,SAAS;MACTS,eAAe,EACbqG,YAAY,IAAI,CAAC,YAAY,EAAE,SAAS,CAAC,CAAC3B,OAAO,CAACrB,WAAW,CAAC,KAAK,CAAC,CAAC,IAAI6C,kBAAkB,CAAClG,eAAe;MAC7G4E,QAAQ,EAAE+B,eAAe,IAAI;QAC3BhF,IAAI,EAAE0B,WAAW;QACjB0D,OAAO,EAAEJ;MACX,CAAC;MACDzB,aAAa,EAAGxE,GAAG,CAACsG,aAAa,IAAItG,GAAG,CAACsG,aAAa,CAAC9B,aAAa,IAAK,gBAAgB;MACzF+B,QAAQ,EAAEf,kBAAkB,CAACe,QAAQ;MACrCC,aAAa,EAAEhB,kBAAkB,CAACgB;IACpC,CAAC;IACD,OAAO,IAAA/B,gBAAM,EAACH,GAAG,EAAGZ,CAAC,IAAK,CAACA,CAAC,CAAC;EAC/B,CAAC,MAAM;IACL,MAAM,IAAI6B,KAAK,CAAC,oBAAoB,CAAC;EACvC;AACF;AAEO,MAAMkB,4BAA4B,GAAGA,CAAC/D,QAAQ,EAAE1C,GAAG,KAAK;EAC7D,OAAO,IAAIiC,OAAO,CAAEC,OAAO,IAAK;IAC9B,IAAIlC,GAAG,CAAC4F,IAAI,KAAK,UAAU,IAAI5F,GAAG,CAACgG,IAAI,KAAK,YAAY,EAAE;MACxD,MAAM;QAAE1G,eAAe,EAAEE;MAAO,CAAC,GAAGkD,QAAQ;MAE5CR,OAAO,CAAC;QACN1C,MAAM;QACNkH,EAAE,EAAE;MACN,CAAC,CAAC;IACJ,CAAC,MAAM;MACLxE,OAAO,CAAC,IAAI,CAAC;IACf;EACF,CAAC,CAAC;AACJ,CAAC;;AAED;AAAAH,OAAA,CAAA0E,4BAAA,GAAAA,4BAAA;AACA,MAAME,YAAY,GAAIC,IAAI,IAAK,CAACA,IAAI,IAAI,EAAE,EAAEC,UAAU,CAAC,UAAU,EAAE,EAAE,CAAC;;AAEtE;AACA,MAAMC,UAAU,GAAIF,IAAI,IAAK,CAACA,IAAI,IAAI,EAAE,EAAEG,OAAO,CAAC,oCAAoC,EAAE,EAAE,CAAC;AAEpF,MAAMC,QAAQ,GAAGA,CAAClH,KAAK,GAAG,CAAC,CAAC,EAAEmH,MAAM,GAAG,CAAC,CAAC,KAAK;EACnD,MAAM;IAAE1C,KAAK;IAAEjF;EAAgB,CAAC,GAAGQ,KAAK,IAAI,CAAC,CAAC;EAC9C,MAAM;IAAEoH,cAAc,GAAG,EAAE;IAAEC,oBAAoB,EAAE;MAAEnC,GAAG,EAAEoC,QAAQ,GAAG,GAAG;MAAEvF,GAAG,EAAEwF,QAAQ,GAAG;IAAI,CAAC,GAAG,CAAC;EAAE,CAAC,GAAGJ,MAAM,IAAI,CAAC,CAAC;EACrH,MAAM;IAAEK,KAAK;IAAE3C,MAAM;IAAE4C;EAAkB,CAAC,GAAGhD,KAAK,IAAI,CAAC,CAAC;EACxD,MAAM;IAAES,GAAG;IAAEnD;EAAI,CAAC,GAAG8C,MAAM,IAAI,CAAC,CAAC;EACjC,MAAM6C,MAAM,GAAG,CAAC,CAAC;EAEjB,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC1G,OAAO,CAAE2G,KAAK,IAAK;IACnD,IAAIR,MAAM,CAACQ,KAAK,CAAC,EAAEC,QAAQ,IAAI,CAACZ,UAAU,CAAChH,KAAK,CAAC2H,KAAK,CAAC,CAAC,EAAE;MACxDD,MAAM,CAACC,KAAK,CAAC,GAAG,yBAAyB;IAC3C;EACF,CAAC,CAAC;EAEF,IAAIH,KAAK,GAAGF,QAAQ,IAAIE,KAAK,GAAGD,QAAQ,EAAE;IACxCG,MAAM,CAACG,UAAU,GAAG,mCAAmCP,QAAQ,QAAQC,QAAQ,GAAG;EACpF;EAEA,MAAMO,UAAU,GAAG,CAAC,MAAM;EAC1B,MAAMC,UAAU,GAAG,MAAM;EAEzB,IAAI7C,GAAG,GAAG4C,UAAU,IAAI5C,GAAG,GAAG6C,UAAU,IAAIhG,GAAG,GAAG+F,UAAU,IAAI/F,GAAG,GAAGgG,UAAU,EAAE;IAChFL,MAAM,CAACM,WAAW,GAAG,iDAAiDF,UAAU,KAAKC,UAAU,IAAI;EACrG;EAEA,IAAI7C,GAAG,IAAInD,GAAG,EAAE;IACd2F,MAAM,CAACO,QAAQ,GAAG,2CAA2C;EAC/D;EAEA,IAAIR,iBAAiB,GAAG,CAAC,IAAIA,iBAAiB,GAAGL,cAAc,EAAE;IAC/DM,MAAM,CAACQ,WAAW,GAAG,kDAAkDd,cAAc,GAAG;EAC1F;EAEA,IAAI5H,eAAe,IAAIA,eAAe,CAACH,MAAM,KAAK,CAAC,EAAE;IACnDqI,MAAM,CAACS,oBAAoB,GAAG,oEAAoE;EACpG;EAEA,OAAOT,MAAM;AACf,CAAC;AAACzF,OAAA,CAAAiF,QAAA,GAAAA,QAAA","ignoreList":[]}