@pie-element/ebsr 9.0.2-next.16 → 9.0.2-next.17

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 (2103) hide show
  1. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/CHANGELOG.json +1 -0
  2. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/CHANGELOG.md +71 -0
  3. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/LICENSE.md +5 -0
  4. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/categorize.js +127 -0
  5. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/categorize.js.map +1 -0
  6. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/charting.js +35 -0
  7. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/charting.js.map +1 -0
  8. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/categorize/index.js +545 -0
  9. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/categorize/index.js.map +1 -0
  10. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/categorize/scoring.js +130 -0
  11. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/categorize/scoring.js.map +1 -0
  12. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/axes.js +538 -0
  13. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/axes.js.map +1 -0
  14. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/bars/bar.js +60 -0
  15. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/bars/bar.js.map +1 -0
  16. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/bars/common/bars.js +222 -0
  17. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/bars/common/bars.js.map +1 -0
  18. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/bars/histogram.js +61 -0
  19. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/bars/histogram.js.map +1 -0
  20. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/chart-setup.js +402 -0
  21. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/chart-setup.js.map +1 -0
  22. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/chart-type.js +61 -0
  23. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/chart-type.js.map +1 -0
  24. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/chart-types.js +22 -0
  25. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/chart-types.js.map +1 -0
  26. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/chart.js +370 -0
  27. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/chart.js.map +1 -0
  28. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/common/drag-handle.js +148 -0
  29. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/common/drag-handle.js.map +1 -0
  30. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/common/drag-icon.js +62 -0
  31. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/common/drag-icon.js.map +1 -0
  32. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/common/styles.js +22 -0
  33. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/common/styles.js.map +1 -0
  34. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/grid.js +76 -0
  35. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/grid.js.map +1 -0
  36. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/index.js +35 -0
  37. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/index.js.map +1 -0
  38. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/line/common/drag-handle.js +124 -0
  39. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/line/common/drag-handle.js.map +1 -0
  40. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/line/common/line.js +211 -0
  41. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/line/common/line.js.map +1 -0
  42. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/line/line-cross.js +124 -0
  43. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/line/line-cross.js.map +1 -0
  44. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/line/line-dot.js +92 -0
  45. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/line/line-dot.js.map +1 -0
  46. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/mark-label.js +201 -0
  47. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/mark-label.js.map +1 -0
  48. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/plot/common/plot.js +232 -0
  49. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/plot/common/plot.js.map +1 -0
  50. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/plot/dot.js +94 -0
  51. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/plot/dot.js.map +1 -0
  52. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/plot/line.js +122 -0
  53. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/plot/line.js.map +1 -0
  54. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/tool-menu.js +119 -0
  55. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/tool-menu.js.map +1 -0
  56. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/utils.js +187 -0
  57. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/utils.js.map +1 -0
  58. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/alert-dialog.js +45 -0
  59. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/alert-dialog.js.map +1 -0
  60. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/checkbox.js +78 -0
  61. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/checkbox.js.map +1 -0
  62. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/choice-configuration/feedback-menu.js +129 -0
  63. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/choice-configuration/feedback-menu.js.map +1 -0
  64. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/choice-configuration/index.js +392 -0
  65. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/choice-configuration/index.js.map +1 -0
  66. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/choice-utils.js +42 -0
  67. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/choice-utils.js.map +1 -0
  68. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/feedback-config/feedback-selector.js +160 -0
  69. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/feedback-config/feedback-selector.js.map +1 -0
  70. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/feedback-config/group.js +63 -0
  71. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/feedback-config/group.js.map +1 -0
  72. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/feedback-config/index.js +146 -0
  73. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/feedback-config/index.js.map +1 -0
  74. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/form-section.js +37 -0
  75. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/form-section.js.map +1 -0
  76. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/help.js +113 -0
  77. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/help.js.map +1 -0
  78. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/index.js +187 -0
  79. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/index.js.map +1 -0
  80. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/input.js +110 -0
  81. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/input.js.map +1 -0
  82. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/inputs.js +111 -0
  83. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/inputs.js.map +1 -0
  84. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/langs.js +147 -0
  85. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/langs.js.map +1 -0
  86. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/layout/config-layout.js +97 -0
  87. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/layout/config-layout.js.map +1 -0
  88. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/layout/index.js +21 -0
  89. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/layout/index.js.map +1 -0
  90. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/layout/layout-contents.js +160 -0
  91. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/layout/layout-contents.js.map +1 -0
  92. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/layout/settings-box.js +63 -0
  93. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/layout/settings-box.js.map +1 -0
  94. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/mui-box/index.js +71 -0
  95. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/mui-box/index.js.map +1 -0
  96. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/number-text-field-custom.js +312 -0
  97. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/number-text-field-custom.js.map +1 -0
  98. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/number-text-field.js +220 -0
  99. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/number-text-field.js.map +1 -0
  100. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/radio-with-label.js +33 -0
  101. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/radio-with-label.js.map +1 -0
  102. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/settings/display-size.js +64 -0
  103. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/settings/display-size.js.map +1 -0
  104. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/settings/index.js +108 -0
  105. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/settings/index.js.map +1 -0
  106. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/settings/panel.js +392 -0
  107. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/settings/panel.js.map +1 -0
  108. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/settings/settings-radio-label.js +37 -0
  109. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/settings/settings-radio-label.js.map +1 -0
  110. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/settings/toggle.js +48 -0
  111. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/settings/toggle.js.map +1 -0
  112. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/tabs/index.js +85 -0
  113. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/tabs/index.js.map +1 -0
  114. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/tags-input/index.js +159 -0
  115. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/tags-input/index.js.map +1 -0
  116. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/two-choice.js +144 -0
  117. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/two-choice.js.map +1 -0
  118. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/with-stateful-model.js +64 -0
  119. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/with-stateful-model.js.map +1 -0
  120. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/controller-utils/index.js +25 -0
  121. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/controller-utils/index.js.map +1 -0
  122. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/controller-utils/partial-scoring.js +25 -0
  123. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/controller-utils/partial-scoring.js.map +1 -0
  124. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/controller-utils/persistence.js +113 -0
  125. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/controller-utils/persistence.js.map +1 -0
  126. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/correct-answer-toggle/expander.js +73 -0
  127. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/correct-answer-toggle/expander.js.map +1 -0
  128. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/correct-answer-toggle/index.js +140 -0
  129. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/correct-answer-toggle/index.js.map +1 -0
  130. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/correct-answer-toggle/styles.js +62 -0
  131. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/correct-answer-toggle/styles.js.map +1 -0
  132. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/choice.js +99 -0
  133. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/choice.js.map +1 -0
  134. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/drag-in-the-blank-dp.js +28 -0
  135. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/drag-in-the-blank-dp.js.map +1 -0
  136. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/drag-type.js +14 -0
  137. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/drag-type.js.map +1 -0
  138. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/droppable-placeholder.js +63 -0
  139. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/droppable-placeholder.js.map +1 -0
  140. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/ica-dp.js +29 -0
  141. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/ica-dp.js.map +1 -0
  142. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/index.js +75 -0
  143. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/index.js.map +1 -0
  144. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/match-list-dp.js +29 -0
  145. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/match-list-dp.js.map +1 -0
  146. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/placeholder.js +88 -0
  147. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/placeholder.js.map +1 -0
  148. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/preview-component.js +116 -0
  149. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/preview-component.js.map +1 -0
  150. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/swap.js +19 -0
  151. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/swap.js.map +1 -0
  152. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/uid-context.js +26 -0
  153. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/uid-context.js.map +1 -0
  154. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/with-drag-context.js +40 -0
  155. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/with-drag-context.js.map +1 -0
  156. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/components.js +85 -0
  157. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/components.js.map +1 -0
  158. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/editor.js +1177 -0
  159. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/editor.js.map +1 -0
  160. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/index.js +164 -0
  161. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/index.js.map +1 -0
  162. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/new-serialization.js +273 -0
  163. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/new-serialization.js.map +1 -0
  164. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/parse-html.js +16 -0
  165. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/parse-html.js.map +1 -0
  166. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/characters/custom-popper.js +62 -0
  167. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/characters/custom-popper.js.map +1 -0
  168. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/characters/index.js +247 -0
  169. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/characters/index.js.map +1 -0
  170. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/characters/utils.js +378 -0
  171. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/characters/utils.js.map +1 -0
  172. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/hotKeys/index.js +60 -0
  173. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/hotKeys/index.js.map +1 -0
  174. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/html/icons/index.js +30 -0
  175. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/html/icons/index.js.map +1 -0
  176. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/html/index.js +89 -0
  177. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/html/index.js.map +1 -0
  178. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/image/alt-dialog.js +101 -0
  179. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/image/alt-dialog.js.map +1 -0
  180. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/image/component.js +398 -0
  181. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/image/component.js.map +1 -0
  182. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/image/image-toolbar.js +136 -0
  183. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/image/image-toolbar.js.map +1 -0
  184. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/image/index.js +342 -0
  185. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/image/index.js.map +1 -0
  186. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/image/insert-image-handler.js +153 -0
  187. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/image/insert-image-handler.js.map +1 -0
  188. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/index.js +101 -0
  189. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/index.js.map +1 -0
  190. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/list/index.js +131 -0
  191. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/list/index.js.map +1 -0
  192. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/math/index.js +381 -0
  193. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/math/index.js.map +1 -0
  194. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/media/index.js +364 -0
  195. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/media/index.js.map +1 -0
  196. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/media/media-dialog.js +573 -0
  197. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/media/media-dialog.js.map +1 -0
  198. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/media/media-toolbar.js +80 -0
  199. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/media/media-toolbar.js.map +1 -0
  200. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/media/media-wrapper.js +50 -0
  201. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/media/media-wrapper.js.map +1 -0
  202. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/respArea/drag-in-the-blank/choice.js +209 -0
  203. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/respArea/drag-in-the-blank/choice.js.map +1 -0
  204. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/respArea/drag-in-the-blank/index.js +117 -0
  205. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/respArea/drag-in-the-blank/index.js.map +1 -0
  206. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/respArea/explicit-constructed-response/index.js +49 -0
  207. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/respArea/explicit-constructed-response/index.js.map +1 -0
  208. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/respArea/icons/index.js +75 -0
  209. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/respArea/icons/index.js.map +1 -0
  210. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/respArea/index.js +281 -0
  211. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/respArea/index.js.map +1 -0
  212. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/respArea/inline-dropdown/index.js +63 -0
  213. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/respArea/inline-dropdown/index.js.map +1 -0
  214. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/respArea/utils.js +86 -0
  215. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/respArea/utils.js.map +1 -0
  216. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/table/icons/index.js +57 -0
  217. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/table/icons/index.js.map +1 -0
  218. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/table/index.js +606 -0
  219. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/table/index.js.map +1 -0
  220. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/table/table-toolbar.js +123 -0
  221. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/table/table-toolbar.js.map +1 -0
  222. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/toolbar/default-toolbar.js +166 -0
  223. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/toolbar/default-toolbar.js.map +1 -0
  224. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/toolbar/done-button.js +40 -0
  225. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/toolbar/done-button.js.map +1 -0
  226. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/toolbar/editor-and-toolbar.js +227 -0
  227. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/toolbar/editor-and-toolbar.js.map +1 -0
  228. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/toolbar/index.js +29 -0
  229. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/toolbar/index.js.map +1 -0
  230. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/toolbar/toolbar-buttons.js +125 -0
  231. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/toolbar/toolbar-buttons.js.map +1 -0
  232. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/toolbar/toolbar.js +300 -0
  233. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/toolbar/toolbar.js.map +1 -0
  234. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/utils.js +59 -0
  235. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/utils.js.map +1 -0
  236. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/serialization.js +413 -0
  237. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/serialization.js.map +1 -0
  238. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/test-serializer.js +137 -0
  239. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/test-serializer.js.map +1 -0
  240. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/theme.js +8 -0
  241. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/theme.js.map +1 -0
  242. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/feedback/index.js +88 -0
  243. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/feedback/index.js.map +1 -0
  244. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/axis/arrow.js +86 -0
  245. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/axis/arrow.js.map +1 -0
  246. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/axis/axes.js +346 -0
  247. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/axis/axes.js.map +1 -0
  248. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/axis/index.js +22 -0
  249. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/axis/index.js.map +1 -0
  250. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/bg.js +114 -0
  251. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/bg.js.map +1 -0
  252. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/container/actions.js +18 -0
  253. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/container/actions.js.map +1 -0
  254. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/container/index.js +123 -0
  255. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/container/index.js.map +1 -0
  256. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/container/marks.js +22 -0
  257. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/container/marks.js.map +1 -0
  258. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/container/middleware.js +19 -0
  259. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/container/middleware.js.map +1 -0
  260. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/container/reducer.js +18 -0
  261. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/container/reducer.js.map +1 -0
  262. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/coordinates-label.js +82 -0
  263. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/coordinates-label.js.map +1 -0
  264. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/graph-with-controls.js +309 -0
  265. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/graph-with-controls.js.map +1 -0
  266. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/graph.js +302 -0
  267. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/graph.js.map +1 -0
  268. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/grid-setup.js +423 -0
  269. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/grid-setup.js.map +1 -0
  270. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/grid.js +145 -0
  271. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/grid.js.map +1 -0
  272. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/index.js +41 -0
  273. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/index.js.map +1 -0
  274. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/labels.js +248 -0
  275. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/labels.js.map +1 -0
  276. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/mark-label.js +169 -0
  277. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/mark-label.js.map +1 -0
  278. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/toggle-bar.js +281 -0
  279. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/toggle-bar.js.map +1 -0
  280. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tool-menu.js +102 -0
  281. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tool-menu.js.map +1 -0
  282. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/circle/bg-circle.js +135 -0
  283. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/circle/bg-circle.js.map +1 -0
  284. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/circle/component.js +329 -0
  285. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/circle/component.js.map +1 -0
  286. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/circle/index.js +41 -0
  287. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/circle/index.js.map +1 -0
  288. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/index.js +67 -0
  289. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/index.js.map +1 -0
  290. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/line/component.js +81 -0
  291. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/line/component.js.map +1 -0
  292. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/line/index.js +11 -0
  293. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/line/index.js.map +1 -0
  294. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/parabola/component.js +27 -0
  295. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/parabola/component.js.map +1 -0
  296. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/parabola/index.js +50 -0
  297. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/parabola/index.js.map +1 -0
  298. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/point/component.js +139 -0
  299. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/point/component.js.map +1 -0
  300. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/point/index.js +24 -0
  301. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/point/index.js.map +1 -0
  302. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/polygon/component.js +417 -0
  303. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/polygon/component.js.map +1 -0
  304. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/polygon/index.js +89 -0
  305. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/polygon/index.js.map +1 -0
  306. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/polygon/line.js +117 -0
  307. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/polygon/line.js.map +1 -0
  308. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/polygon/polygon.js +123 -0
  309. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/polygon/polygon.js.map +1 -0
  310. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/ray/component.js +80 -0
  311. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/ray/component.js.map +1 -0
  312. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/ray/index.js +11 -0
  313. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/ray/index.js.map +1 -0
  314. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/segment/component.js +59 -0
  315. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/segment/component.js.map +1 -0
  316. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/segment/index.js +11 -0
  317. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/segment/index.js.map +1 -0
  318. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/shared/arrow-head.js +58 -0
  319. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/shared/arrow-head.js.map +1 -0
  320. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/shared/line/index.js +481 -0
  321. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/shared/line/index.js.map +1 -0
  322. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/shared/line/line-path.js +111 -0
  323. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/shared/line/line-path.js.map +1 -0
  324. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/shared/line/with-root-edge.js +111 -0
  325. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/shared/line/with-root-edge.js.map +1 -0
  326. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/shared/point/arrow-point.js +88 -0
  327. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/shared/point/arrow-point.js.map +1 -0
  328. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/shared/point/arrow.js +72 -0
  329. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/shared/point/arrow.js.map +1 -0
  330. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/shared/point/base-point.js +112 -0
  331. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/shared/point/base-point.js.map +1 -0
  332. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/shared/point/index.js +73 -0
  333. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/shared/point/index.js.map +1 -0
  334. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/shared/styles.js +26 -0
  335. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/shared/styles.js.map +1 -0
  336. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/shared/types.js +16 -0
  337. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/shared/types.js.map +1 -0
  338. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/sine/component.js +34 -0
  339. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/sine/component.js.map +1 -0
  340. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/sine/index.js +50 -0
  341. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/sine/index.js.map +1 -0
  342. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/vector/component.js +70 -0
  343. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/vector/component.js.map +1 -0
  344. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/vector/index.js +11 -0
  345. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/vector/index.js.map +1 -0
  346. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/undo-redo.js +97 -0
  347. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/undo-redo.js.map +1 -0
  348. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/use-debounce.js +25 -0
  349. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/use-debounce.js.map +1 -0
  350. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/utils.js +230 -0
  351. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/utils.js.map +1 -0
  352. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing-utils/index.js +153 -0
  353. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing-utils/index.js.map +1 -0
  354. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/correct-icon.js +74 -0
  355. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/correct-icon.js.map +1 -0
  356. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/correct-response-icon.js +139 -0
  357. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/correct-response-icon.js.map +1 -0
  358. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/icon-base.js +186 -0
  359. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/icon-base.js.map +1 -0
  360. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/icon-root.js +102 -0
  361. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/icon-root.js.map +1 -0
  362. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/image-konva.js +112 -0
  363. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/image-konva.js.map +1 -0
  364. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/incorrect-icon.js +78 -0
  365. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/incorrect-icon.js.map +1 -0
  366. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/index.js +70 -0
  367. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/index.js.map +1 -0
  368. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/instructions-icon.js +207 -0
  369. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/instructions-icon.js.map +1 -0
  370. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/learn-more-icon.js +120 -0
  371. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/learn-more-icon.js.map +1 -0
  372. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/nothing-submitted-icon.js +156 -0
  373. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/nothing-submitted-icon.js.map +1 -0
  374. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/partially-correct-icon.js +68 -0
  375. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/partially-correct-icon.js.map +1 -0
  376. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/show-rationale-icon.js +174 -0
  377. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/show-rationale-icon.js.map +1 -0
  378. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/sized.js +32 -0
  379. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/sized.js.map +1 -0
  380. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/choices/choice.js +132 -0
  381. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/choices/choice.js.map +1 -0
  382. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/choices/index.js +98 -0
  383. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/choices/index.js.map +1 -0
  384. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/componentize.js +21 -0
  385. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/componentize.js.map +1 -0
  386. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/components/blank.js +259 -0
  387. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/components/blank.js.map +1 -0
  388. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/components/correct-input.js +95 -0
  389. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/components/correct-input.js.map +1 -0
  390. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/components/dropdown.js +189 -0
  391. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/components/dropdown.js.map +1 -0
  392. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/components/input.js +50 -0
  393. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/components/input.js.map +1 -0
  394. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/constructed-response.js +45 -0
  395. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/constructed-response.js.map +1 -0
  396. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/drag-in-the-blank.js +158 -0
  397. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/drag-in-the-blank.js.map +1 -0
  398. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/index.js +48 -0
  399. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/index.js.map +1 -0
  400. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/inline-dropdown.js +38 -0
  401. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/inline-dropdown.js.map +1 -0
  402. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/mask.js +161 -0
  403. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/mask.js.map +1 -0
  404. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/new-serialization.js +261 -0
  405. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/new-serialization.js.map +1 -0
  406. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/parse-html.js +16 -0
  407. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/parse-html.js.map +1 -0
  408. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/serialization.js +175 -0
  409. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/serialization.js.map +1 -0
  410. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/test-serializer.js +163 -0
  411. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/test-serializer.js.map +1 -0
  412. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/with-mask.js +67 -0
  413. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/with-mask.js.map +1 -0
  414. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-evaluator/index.js +157 -0
  415. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-evaluator/index.js.map +1 -0
  416. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/horizontal-keypad.js +93 -0
  417. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/horizontal-keypad.js.map +1 -0
  418. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/index.js +58 -0
  419. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/index.js.map +1 -0
  420. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keypad/index.js +381 -0
  421. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keypad/index.js.map +1 -0
  422. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keypad/keys-layout.js +25 -0
  423. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keypad/keys-layout.js.map +1 -0
  424. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/basic-operators.js +33 -0
  425. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/basic-operators.js.map +1 -0
  426. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/chars.js +12 -0
  427. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/chars.js.map +1 -0
  428. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/comparison.js +39 -0
  429. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/comparison.js.map +1 -0
  430. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/constants.js +37 -0
  431. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/constants.js.map +1 -0
  432. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/digits.js +47 -0
  433. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/digits.js.map +1 -0
  434. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/edit.js +14 -0
  435. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/edit.js.map +1 -0
  436. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/exponent.js +30 -0
  437. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/exponent.js.map +1 -0
  438. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/fractions.js +29 -0
  439. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/fractions.js.map +1 -0
  440. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/geometry.js +138 -0
  441. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/geometry.js.map +1 -0
  442. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/grades.js +247 -0
  443. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/grades.js.map +1 -0
  444. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/index.js +36 -0
  445. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/index.js.map +1 -0
  446. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/log.js +27 -0
  447. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/log.js.map +1 -0
  448. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/logic.js +19 -0
  449. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/logic.js.map +1 -0
  450. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/matrices.js +19 -0
  451. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/matrices.js.map +1 -0
  452. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/misc.js +62 -0
  453. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/misc.js.map +1 -0
  454. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/navigation.js +20 -0
  455. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/navigation.js.map +1 -0
  456. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/operators.js +15 -0
  457. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/operators.js.map +1 -0
  458. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/statistics.js +40 -0
  459. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/statistics.js.map +1 -0
  460. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/sub-sup.js +19 -0
  461. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/sub-sup.js.map +1 -0
  462. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/trigonometry.js +45 -0
  463. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/trigonometry.js.map +1 -0
  464. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/utils.js +87 -0
  465. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/utils.js.map +1 -0
  466. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/vars.js +24 -0
  467. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/vars.js.map +1 -0
  468. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/math-input.js +155 -0
  469. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/math-input.js.map +1 -0
  470. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/mq/custom-elements.js +20 -0
  471. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/mq/custom-elements.js.map +1 -0
  472. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/mq/index.js +21 -0
  473. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/mq/index.js.map +1 -0
  474. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/mq/input.js +199 -0
  475. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/mq/input.js.map +1 -0
  476. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/mq/static.js +193 -0
  477. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/mq/static.js.map +1 -0
  478. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-rendering/index.js +34 -0
  479. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-rendering/index.js.map +1 -0
  480. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-rendering/mml-to-latex.js +12 -0
  481. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-rendering/mml-to-latex.js.map +1 -0
  482. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-rendering/mstack/chtml.js +235 -0
  483. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-rendering/mstack/chtml.js.map +1 -0
  484. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-rendering/mstack/index.js +18 -0
  485. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-rendering/mstack/index.js.map +1 -0
  486. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-rendering/mstack/mml.js +76 -0
  487. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-rendering/mstack/mml.js.map +1 -0
  488. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-rendering/normalization.js +68 -0
  489. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-rendering/normalization.js.map +1 -0
  490. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-rendering/render-math.js +304 -0
  491. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-rendering/render-math.js.map +1 -0
  492. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-toolbar/done-button.js +54 -0
  493. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-toolbar/done-button.js.map +1 -0
  494. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-toolbar/editor-and-pad.js +589 -0
  495. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-toolbar/editor-and-pad.js.map +1 -0
  496. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-toolbar/index.js +242 -0
  497. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-toolbar/index.js.map +1 -0
  498. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-toolbar/math-preview.js +211 -0
  499. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-toolbar/math-preview.js.map +1 -0
  500. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/plot/draggable.js +46 -0
  501. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/plot/draggable.js.map +1 -0
  502. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/plot/graph-props.js +46 -0
  503. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/plot/graph-props.js.map +1 -0
  504. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/plot/grid-draggable.js +273 -0
  505. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/plot/grid-draggable.js.map +1 -0
  506. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/plot/index.js +45 -0
  507. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/plot/index.js.map +1 -0
  508. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/plot/label.js +143 -0
  509. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/plot/label.js.map +1 -0
  510. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/plot/root.js +339 -0
  511. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/plot/root.js.map +1 -0
  512. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/plot/trig.js +149 -0
  513. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/plot/trig.js.map +1 -0
  514. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/plot/types.js +40 -0
  515. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/plot/types.js.map +1 -0
  516. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/plot/utils.js +156 -0
  517. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/plot/utils.js.map +1 -0
  518. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/collapsible/index.js +106 -0
  519. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/collapsible/index.js.map +1 -0
  520. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/color.js +94 -0
  521. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/color.js.map +1 -0
  522. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/feedback.js +123 -0
  523. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/feedback.js.map +1 -0
  524. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/has-text.js +19 -0
  525. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/has-text.js.map +1 -0
  526. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/html-and-math.js +71 -0
  527. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/html-and-math.js.map +1 -0
  528. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/index.js +86 -0
  529. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/index.js.map +1 -0
  530. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/input-container.js +48 -0
  531. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/input-container.js.map +1 -0
  532. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/preview-layout.js +110 -0
  533. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/preview-layout.js.map +1 -0
  534. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/preview-prompt.js +168 -0
  535. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/preview-prompt.js.map +1 -0
  536. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/purpose.js +22 -0
  537. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/purpose.js.map +1 -0
  538. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/readable.js +22 -0
  539. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/readable.js.map +1 -0
  540. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/response-indicators.js +116 -0
  541. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/response-indicators.js.map +1 -0
  542. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/withUndoReset.js +149 -0
  543. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/withUndoReset.js.map +1 -0
  544. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/rubric/authoring.js +400 -0
  545. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/rubric/authoring.js.map +1 -0
  546. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/rubric/index.js +19 -0
  547. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/rubric/index.js.map +1 -0
  548. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/rubric/point-menu.js +138 -0
  549. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/rubric/point-menu.js.map +1 -0
  550. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/scoring-config/index.js +78 -0
  551. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/scoring-config/index.js.map +1 -0
  552. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/style-utils/index.js +19 -0
  553. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/style-utils/index.js.map +1 -0
  554. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/test-utils/index.js +29 -0
  555. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/test-utils/index.js.map +1 -0
  556. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/index.js +58 -0
  557. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/index.js.map +1 -0
  558. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/legend.js +89 -0
  559. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/legend.js.map +1 -0
  560. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/text-select.js +108 -0
  561. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/text-select.js.map +1 -0
  562. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/token-select/index.js +199 -0
  563. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/token-select/index.js.map +1 -0
  564. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/token-select/token.js +203 -0
  565. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/token-select/token.js.map +1 -0
  566. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/tokenizer/builder.js +267 -0
  567. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/tokenizer/builder.js.map +1 -0
  568. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/tokenizer/controls.js +99 -0
  569. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/tokenizer/controls.js.map +1 -0
  570. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/tokenizer/index.js +161 -0
  571. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/tokenizer/index.js.map +1 -0
  572. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/tokenizer/selection-utils.js +55 -0
  573. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/tokenizer/selection-utils.js.map +1 -0
  574. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/tokenizer/token-text.js +171 -0
  575. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/tokenizer/token-text.js.map +1 -0
  576. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/utils.js +51 -0
  577. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/utils.js.map +1 -0
  578. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/anchor-utils.js +193 -0
  579. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/anchor-utils.js.map +1 -0
  580. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/anchor.js +35 -0
  581. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/anchor.js.map +1 -0
  582. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/index.js +34 -0
  583. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/index.js.map +1 -0
  584. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/protractor/graphic.js +158 -0
  585. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/protractor/graphic.js.map +1 -0
  586. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/protractor/index.js +95 -0
  587. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/protractor/index.js.map +1 -0
  588. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/rotatable.js +348 -0
  589. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/rotatable.js.map +1 -0
  590. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/ruler/graphic.js +98 -0
  591. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/ruler/graphic.js.map +1 -0
  592. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/ruler/index.js +120 -0
  593. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/ruler/index.js.map +1 -0
  594. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/ruler/unit-type.js +58 -0
  595. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/ruler/unit-type.js.map +1 -0
  596. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/ruler/unit.js +133 -0
  597. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/ruler/unit.js.map +1 -0
  598. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/style-utils.js +21 -0
  599. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/style-utils.js.map +1 -0
  600. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/transform-origin.js +71 -0
  601. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/transform-origin.js.map +1 -0
  602. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/translator/en.js +78 -0
  603. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/translator/en.js.map +1 -0
  604. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/translator/es.js +78 -0
  605. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/translator/es.js.map +1 -0
  606. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/translator/index.js +55 -0
  607. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/translator/index.js.map +1 -0
  608. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/config-ui.js +175 -0
  609. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/config-ui.js.map +1 -0
  610. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/controller-utils.js +25 -0
  611. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/controller-utils.js.map +1 -0
  612. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/correct-answer-toggle.js +10 -0
  613. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/correct-answer-toggle.js.map +1 -0
  614. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/drag.js +67 -0
  615. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/drag.js.map +1 -0
  616. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/editable-html.js +42 -0
  617. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/editable-html.js.map +1 -0
  618. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/feedback.js +25 -0
  619. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/feedback.js.map +1 -0
  620. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/graphing-utils.js +61 -0
  621. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/graphing-utils.js.map +1 -0
  622. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/graphing.js +41 -0
  623. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/graphing.js.map +1 -0
  624. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/icons.js +61 -0
  625. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/icons.js.map +1 -0
  626. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/mask-markup.js +43 -0
  627. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/mask-markup.js.map +1 -0
  628. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/math-evaluator.js +10 -0
  629. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/math-evaluator.js.map +1 -0
  630. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/math-input.js +49 -0
  631. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/math-input.js.map +1 -0
  632. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/math-rendering.js +31 -0
  633. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/math-rendering.js.map +1 -0
  634. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/math-toolbar.js +31 -0
  635. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/math-toolbar.js.map +1 -0
  636. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/package.json +90 -0
  637. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/plot.js +49 -0
  638. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/plot.js.map +1 -0
  639. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/render-ui.js +79 -0
  640. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/render-ui.js.map +1 -0
  641. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/rubric.js +19 -0
  642. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/rubric.js.map +1 -0
  643. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/scoring-config.js +10 -0
  644. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/scoring-config.js.map +1 -0
  645. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/categorize.js +45 -0
  646. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/charting.js +6 -0
  647. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/categorize/index.js +573 -0
  648. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/categorize/scoring.js +118 -0
  649. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/axes.jsx +488 -0
  650. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/bars/bar.js +28 -0
  651. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/bars/common/bars.jsx +207 -0
  652. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/bars/histogram.js +28 -0
  653. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/chart-setup.jsx +372 -0
  654. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/chart-type.js +35 -0
  655. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/chart-types.js +8 -0
  656. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/chart.jsx +340 -0
  657. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/common/drag-handle.jsx +133 -0
  658. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/common/drag-icon.jsx +44 -0
  659. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/common/styles.js +19 -0
  660. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/grid.jsx +47 -0
  661. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/index.js +6 -0
  662. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/line/common/drag-handle.jsx +95 -0
  663. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/line/common/line.jsx +163 -0
  664. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/line/line-cross.js +73 -0
  665. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/line/line-dot.js +52 -0
  666. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/mark-label.jsx +198 -0
  667. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/plot/common/plot.jsx +194 -0
  668. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/plot/dot.js +51 -0
  669. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/plot/line.js +76 -0
  670. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/tool-menu.jsx +93 -0
  671. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/utils.js +198 -0
  672. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/alert-dialog.jsx +43 -0
  673. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/checkbox.jsx +66 -0
  674. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/choice-configuration/feedback-menu.jsx +90 -0
  675. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/choice-configuration/index.jsx +360 -0
  676. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/choice-utils.js +30 -0
  677. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/feedback-config/feedback-selector.jsx +122 -0
  678. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/feedback-config/group.jsx +52 -0
  679. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/feedback-config/index.jsx +112 -0
  680. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/form-section.jsx +23 -0
  681. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/help.jsx +87 -0
  682. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/index.js +55 -0
  683. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/input.jsx +72 -0
  684. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/inputs.jsx +91 -0
  685. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/langs.jsx +111 -0
  686. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/layout/config-layout.jsx +67 -0
  687. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/layout/index.js +4 -0
  688. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/layout/layout-contents.jsx +118 -0
  689. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/layout/settings-box.jsx +35 -0
  690. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/mui-box/index.jsx +64 -0
  691. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/number-text-field-custom.jsx +279 -0
  692. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/number-text-field.jsx +201 -0
  693. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/radio-with-label.jsx +18 -0
  694. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/settings/display-size.jsx +52 -0
  695. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/settings/index.js +82 -0
  696. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/settings/panel.jsx +325 -0
  697. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/settings/settings-radio-label.jsx +20 -0
  698. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/settings/toggle.jsx +31 -0
  699. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/tabs/index.jsx +47 -0
  700. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/tags-input/index.jsx +119 -0
  701. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/two-choice.jsx +94 -0
  702. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/with-stateful-model.jsx +36 -0
  703. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/controller-utils/index.js +4 -0
  704. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/controller-utils/partial-scoring.js +21 -0
  705. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/controller-utils/persistence.js +105 -0
  706. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/correct-answer-toggle/expander.jsx +59 -0
  707. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/correct-answer-toggle/index.jsx +94 -0
  708. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/correct-answer-toggle/styles.js +61 -0
  709. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/drag/choice.jsx +76 -0
  710. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/drag/drag-in-the-blank-dp.jsx +19 -0
  711. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/drag/drag-type.js +7 -0
  712. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/drag/droppable-placeholder.jsx +35 -0
  713. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/drag/ica-dp.jsx +23 -0
  714. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/drag/index.js +23 -0
  715. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/drag/match-list-dp.jsx +23 -0
  716. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/drag/placeholder.jsx +86 -0
  717. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/drag/preview-component.jsx +113 -0
  718. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/drag/swap.js +14 -0
  719. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/drag/uid-context.js +13 -0
  720. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/drag/with-drag-context.js +25 -0
  721. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/components.js +135 -0
  722. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/editor.jsx +1248 -0
  723. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/index.jsx +131 -0
  724. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/new-serialization.jsx +310 -0
  725. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/parse-html.js +8 -0
  726. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/README.md +27 -0
  727. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/characters/custom-popper.js +48 -0
  728. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/characters/index.jsx +271 -0
  729. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/characters/utils.js +447 -0
  730. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/hotKeys/index.js +54 -0
  731. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/html/icons/index.jsx +19 -0
  732. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/html/index.jsx +81 -0
  733. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/image/alt-dialog.jsx +82 -0
  734. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/image/component.jsx +375 -0
  735. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/image/image-toolbar.jsx +100 -0
  736. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/image/index.jsx +327 -0
  737. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/image/insert-image-handler.js +128 -0
  738. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/index.jsx +104 -0
  739. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/list/index.jsx +147 -0
  740. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/math/index.jsx +362 -0
  741. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/media/index.jsx +353 -0
  742. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/media/media-dialog.js +576 -0
  743. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/media/media-toolbar.jsx +56 -0
  744. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/media/media-wrapper.jsx +45 -0
  745. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/respArea/drag-in-the-blank/choice.jsx +187 -0
  746. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/respArea/drag-in-the-blank/index.jsx +109 -0
  747. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/respArea/explicit-constructed-response/index.jsx +47 -0
  748. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/respArea/icons/index.jsx +71 -0
  749. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/respArea/index.jsx +283 -0
  750. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/respArea/inline-dropdown/index.jsx +64 -0
  751. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/respArea/utils.jsx +74 -0
  752. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/table/icons/index.jsx +53 -0
  753. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/table/index.jsx +560 -0
  754. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/table/table-toolbar.jsx +98 -0
  755. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/toolbar/default-toolbar.jsx +173 -0
  756. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/toolbar/done-button.jsx +36 -0
  757. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/toolbar/editor-and-toolbar.jsx +252 -0
  758. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/toolbar/index.jsx +23 -0
  759. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/toolbar/toolbar-buttons.jsx +97 -0
  760. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/toolbar/toolbar.jsx +332 -0
  761. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/utils.js +47 -0
  762. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/serialization.jsx +446 -0
  763. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/test-serializer.js +132 -0
  764. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/theme.js +1 -0
  765. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/feedback/index.js +61 -0
  766. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/axis/arrow.jsx +62 -0
  767. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/axis/axes.jsx +307 -0
  768. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/axis/index.js +2 -0
  769. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/bg.jsx +96 -0
  770. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/container/actions.js +8 -0
  771. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/container/index.jsx +86 -0
  772. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/container/marks.js +14 -0
  773. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/container/middleware.js +7 -0
  774. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/container/reducer.js +5 -0
  775. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/coordinates-label.jsx +72 -0
  776. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/graph-with-controls.jsx +246 -0
  777. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/graph.jsx +275 -0
  778. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/grid-setup.jsx +424 -0
  779. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/grid.jsx +137 -0
  780. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/index.js +7 -0
  781. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/labels.jsx +213 -0
  782. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/mark-label.jsx +144 -0
  783. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/toggle-bar.jsx +243 -0
  784. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tool-menu.jsx +72 -0
  785. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/circle/bg-circle.jsx +88 -0
  786. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/circle/component.jsx +283 -0
  787. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/circle/index.js +25 -0
  788. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/index.js +15 -0
  789. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/line/component.jsx +70 -0
  790. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/line/index.js +4 -0
  791. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/parabola/component.jsx +22 -0
  792. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/parabola/index.js +31 -0
  793. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/point/component.jsx +114 -0
  794. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/point/index.js +11 -0
  795. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/polygon/component.jsx +373 -0
  796. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/polygon/index.js +52 -0
  797. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/polygon/line.jsx +78 -0
  798. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/polygon/polygon.jsx +98 -0
  799. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/ray/component.jsx +69 -0
  800. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/ray/index.js +4 -0
  801. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/segment/component.jsx +48 -0
  802. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/segment/index.js +4 -0
  803. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/shared/arrow-head.jsx +44 -0
  804. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/shared/line/index.jsx +408 -0
  805. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/shared/line/line-path.jsx +88 -0
  806. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/shared/line/with-root-edge.jsx +90 -0
  807. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/shared/point/arrow-point.jsx +60 -0
  808. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/shared/point/arrow.jsx +40 -0
  809. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/shared/point/base-point.jsx +73 -0
  810. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/shared/point/index.jsx +60 -0
  811. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/shared/styles.js +20 -0
  812. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/shared/types.js +10 -0
  813. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/sine/component.jsx +32 -0
  814. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/sine/index.js +33 -0
  815. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/vector/component.jsx +60 -0
  816. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/vector/index.js +4 -0
  817. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/undo-redo.jsx +51 -0
  818. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/use-debounce.js +13 -0
  819. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/utils.js +226 -0
  820. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing-utils/index.js +119 -0
  821. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/icons/correct-icon.jsx +64 -0
  822. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/icons/correct-response-icon.jsx +121 -0
  823. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/icons/icon-base.jsx +158 -0
  824. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/icons/icon-root.jsx +76 -0
  825. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/icons/image-konva.jsx +76 -0
  826. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/icons/incorrect-icon.jsx +61 -0
  827. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/icons/index.js +21 -0
  828. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/icons/instructions-icon.jsx +189 -0
  829. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/icons/learn-more-icon.jsx +107 -0
  830. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/icons/nothing-submitted-icon.jsx +130 -0
  831. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/icons/partially-correct-icon.jsx +49 -0
  832. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/icons/show-rationale-icon.jsx +152 -0
  833. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/icons/sized.jsx +25 -0
  834. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/mask-markup/choices/choice.jsx +110 -0
  835. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/mask-markup/choices/index.jsx +63 -0
  836. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/mask-markup/componentize.js +13 -0
  837. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/mask-markup/components/blank.jsx +249 -0
  838. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/mask-markup/components/correct-input.jsx +93 -0
  839. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/mask-markup/components/dropdown.jsx +160 -0
  840. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/mask-markup/components/input.jsx +48 -0
  841. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/mask-markup/constructed-response.jsx +34 -0
  842. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/mask-markup/drag-in-the-blank.jsx +124 -0
  843. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/mask-markup/index.js +7 -0
  844. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/mask-markup/inline-dropdown.jsx +27 -0
  845. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/mask-markup/mask.jsx +125 -0
  846. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/mask-markup/new-serialization.jsx +291 -0
  847. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/mask-markup/parse-html.js +8 -0
  848. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/mask-markup/serialization.js +182 -0
  849. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/mask-markup/test-serializer.js +163 -0
  850. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/mask-markup/with-mask.jsx +35 -0
  851. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-evaluator/index.js +169 -0
  852. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/horizontal-keypad.jsx +56 -0
  853. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/index.jsx +27 -0
  854. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keypad/index.jsx +366 -0
  855. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keypad/keys-layout.js +17 -0
  856. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/basic-operators.js +32 -0
  857. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/chars.js +5 -0
  858. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/comparison.js +28 -0
  859. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/constants.js +35 -0
  860. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/digits.js +40 -0
  861. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/edit.js +3 -0
  862. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/exponent.js +28 -0
  863. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/fractions.js +26 -0
  864. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/geometry.js +140 -0
  865. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/grades.js +356 -0
  866. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/index.js +21 -0
  867. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/log.js +22 -0
  868. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/logic.js +15 -0
  869. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/matrices.js +15 -0
  870. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/misc.js +65 -0
  871. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/navigation.js +8 -0
  872. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/operators.js +10 -0
  873. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/statistics.js +38 -0
  874. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/sub-sup.js +15 -0
  875. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/trigonometry.js +15 -0
  876. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/utils.js +71 -0
  877. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/vars.js +19 -0
  878. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/math-input.jsx +128 -0
  879. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/mq/custom-elements.js +11 -0
  880. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/mq/index.js +4 -0
  881. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/mq/input.jsx +163 -0
  882. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/mq/static.jsx +156 -0
  883. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-rendering/index.js +5 -0
  884. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-rendering/mml-to-latex.js +2 -0
  885. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-rendering/mstack/chtml.js +220 -0
  886. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-rendering/mstack/index.js +13 -0
  887. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-rendering/mstack/mml.js +24 -0
  888. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-rendering/normalization.js +69 -0
  889. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-rendering/render-math.js +339 -0
  890. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-toolbar/done-button.jsx +47 -0
  891. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-toolbar/editor-and-pad.jsx +597 -0
  892. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-toolbar/index.jsx +213 -0
  893. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-toolbar/math-preview.jsx +205 -0
  894. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/plot/draggable.jsx +11 -0
  895. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/plot/graph-props.js +38 -0
  896. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/plot/grid-draggable.jsx +228 -0
  897. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/plot/index.js +9 -0
  898. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/plot/label.jsx +151 -0
  899. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/plot/root.jsx +336 -0
  900. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/plot/trig.js +150 -0
  901. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/plot/types.js +41 -0
  902. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/plot/utils.js +156 -0
  903. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/render-ui/collapsible/index.jsx +63 -0
  904. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/render-ui/color.js +55 -0
  905. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/render-ui/feedback.jsx +100 -0
  906. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/render-ui/has-text.js +14 -0
  907. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/render-ui/html-and-math.js +34 -0
  908. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/render-ui/index.js +27 -0
  909. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/render-ui/input-container.jsx +41 -0
  910. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/render-ui/preview-layout.jsx +84 -0
  911. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/render-ui/preview-prompt.jsx +130 -0
  912. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/render-ui/purpose.jsx +17 -0
  913. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/render-ui/readable.jsx +19 -0
  914. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/render-ui/response-indicators.jsx +89 -0
  915. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/render-ui/withUndoReset.jsx +116 -0
  916. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/rubric/authoring.jsx +359 -0
  917. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/rubric/index.js +8 -0
  918. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/rubric/point-menu.jsx +94 -0
  919. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/scoring-config/index.jsx +57 -0
  920. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/style-utils/index.js +10 -0
  921. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/test-utils/index.js +18 -0
  922. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/text-select/index.js +8 -0
  923. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/text-select/legend.js +78 -0
  924. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/text-select/text-select.jsx +79 -0
  925. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/text-select/token-select/index.jsx +162 -0
  926. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/text-select/token-select/token.jsx +199 -0
  927. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/text-select/tokenizer/builder.js +259 -0
  928. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/text-select/tokenizer/controls.jsx +69 -0
  929. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/text-select/tokenizer/index.jsx +149 -0
  930. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/text-select/tokenizer/selection-utils.js +49 -0
  931. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/text-select/tokenizer/token-text.jsx +124 -0
  932. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/text-select/utils.js +56 -0
  933. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/tools/anchor-utils.js +152 -0
  934. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/tools/anchor.jsx +21 -0
  935. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/tools/index.js +6 -0
  936. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/tools/protractor/graphic.jsx +87 -0
  937. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/tools/protractor/index.jsx +65 -0
  938. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/tools/rotatable.jsx +295 -0
  939. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/tools/ruler/graphic.jsx +51 -0
  940. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/tools/ruler/index.jsx +81 -0
  941. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/tools/ruler/unit-type.jsx +45 -0
  942. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/tools/ruler/unit.jsx +87 -0
  943. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/tools/style-utils.js +7 -0
  944. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/tools/transform-origin.jsx +60 -0
  945. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/translator/en.js +75 -0
  946. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/translator/es.js +75 -0
  947. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/translator/index.js +45 -0
  948. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/config-ui.js +62 -0
  949. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/controller-utils.js +3 -0
  950. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/correct-answer-toggle.js +3 -0
  951. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/drag.js +25 -0
  952. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/editable-html.js +4 -0
  953. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/feedback.js +11 -0
  954. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/graphing-utils.js +23 -0
  955. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/graphing.js +7 -0
  956. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/icons.js +23 -0
  957. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/mask-markup.js +3 -0
  958. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/math-evaluator.js +3 -0
  959. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/math-input.js +3 -0
  960. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/math-rendering.js +3 -0
  961. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/math-toolbar.js +13 -0
  962. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/plot.js +3 -0
  963. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/render-ui.js +29 -0
  964. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/rubric.js +3 -0
  965. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/scoring-config.js +3 -0
  966. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/style-utils.js +3 -0
  967. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/test-utils.js +3 -0
  968. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/text-select.js +3 -0
  969. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/tools.js +3 -0
  970. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/translator.js +3 -0
  971. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/style-utils.js +13 -0
  972. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/style-utils.js.map +1 -0
  973. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/test-utils.js +13 -0
  974. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/test-utils.js.map +1 -0
  975. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/text-select.js +49 -0
  976. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/text-select.js.map +1 -0
  977. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/tools.js +31 -0
  978. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/tools.js.map +1 -0
  979. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/translator.js +10 -0
  980. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/translator.js.map +1 -0
  981. package/configure/node_modules/@types/lodash/LICENSE +21 -0
  982. package/configure/node_modules/@types/lodash/README.md +15 -0
  983. package/configure/node_modules/@types/lodash/add.d.ts +2 -0
  984. package/configure/node_modules/@types/lodash/after.d.ts +2 -0
  985. package/configure/node_modules/@types/lodash/ary.d.ts +2 -0
  986. package/configure/node_modules/@types/lodash/assign.d.ts +2 -0
  987. package/configure/node_modules/@types/lodash/assignIn.d.ts +2 -0
  988. package/configure/node_modules/@types/lodash/assignInWith.d.ts +2 -0
  989. package/configure/node_modules/@types/lodash/assignWith.d.ts +2 -0
  990. package/configure/node_modules/@types/lodash/at.d.ts +2 -0
  991. package/configure/node_modules/@types/lodash/attempt.d.ts +2 -0
  992. package/configure/node_modules/@types/lodash/before.d.ts +2 -0
  993. package/configure/node_modules/@types/lodash/bind.d.ts +2 -0
  994. package/configure/node_modules/@types/lodash/bindAll.d.ts +2 -0
  995. package/configure/node_modules/@types/lodash/bindKey.d.ts +2 -0
  996. package/configure/node_modules/@types/lodash/camelCase.d.ts +2 -0
  997. package/configure/node_modules/@types/lodash/capitalize.d.ts +2 -0
  998. package/configure/node_modules/@types/lodash/castArray.d.ts +2 -0
  999. package/configure/node_modules/@types/lodash/ceil.d.ts +2 -0
  1000. package/configure/node_modules/@types/lodash/chain.d.ts +2 -0
  1001. package/configure/node_modules/@types/lodash/chunk.d.ts +2 -0
  1002. package/configure/node_modules/@types/lodash/clamp.d.ts +2 -0
  1003. package/configure/node_modules/@types/lodash/clone.d.ts +2 -0
  1004. package/configure/node_modules/@types/lodash/cloneDeep.d.ts +2 -0
  1005. package/configure/node_modules/@types/lodash/cloneDeepWith.d.ts +2 -0
  1006. package/configure/node_modules/@types/lodash/cloneWith.d.ts +2 -0
  1007. package/configure/node_modules/@types/lodash/common/array.d.ts +2127 -0
  1008. package/configure/node_modules/@types/lodash/common/collection.d.ts +1934 -0
  1009. package/configure/node_modules/@types/lodash/common/common.d.ts +280 -0
  1010. package/configure/node_modules/@types/lodash/common/date.d.ts +23 -0
  1011. package/configure/node_modules/@types/lodash/common/function.d.ts +1446 -0
  1012. package/configure/node_modules/@types/lodash/common/lang.d.ts +1700 -0
  1013. package/configure/node_modules/@types/lodash/common/math.d.ts +405 -0
  1014. package/configure/node_modules/@types/lodash/common/number.d.ts +131 -0
  1015. package/configure/node_modules/@types/lodash/common/object.d.ts +2580 -0
  1016. package/configure/node_modules/@types/lodash/common/seq.d.ts +210 -0
  1017. package/configure/node_modules/@types/lodash/common/string.d.ts +788 -0
  1018. package/configure/node_modules/@types/lodash/common/util.d.ts +1220 -0
  1019. package/configure/node_modules/@types/lodash/compact.d.ts +2 -0
  1020. package/configure/node_modules/@types/lodash/concat.d.ts +2 -0
  1021. package/configure/node_modules/@types/lodash/cond.d.ts +2 -0
  1022. package/configure/node_modules/@types/lodash/conformsTo.d.ts +2 -0
  1023. package/configure/node_modules/@types/lodash/constant.d.ts +2 -0
  1024. package/configure/node_modules/@types/lodash/countBy.d.ts +2 -0
  1025. package/configure/node_modules/@types/lodash/create.d.ts +2 -0
  1026. package/configure/node_modules/@types/lodash/curry.d.ts +2 -0
  1027. package/configure/node_modules/@types/lodash/curryRight.d.ts +2 -0
  1028. package/configure/node_modules/@types/lodash/debounce.d.ts +2 -0
  1029. package/configure/node_modules/@types/lodash/deburr.d.ts +2 -0
  1030. package/configure/node_modules/@types/lodash/defaultTo.d.ts +2 -0
  1031. package/configure/node_modules/@types/lodash/defaults.d.ts +2 -0
  1032. package/configure/node_modules/@types/lodash/defaultsDeep.d.ts +2 -0
  1033. package/configure/node_modules/@types/lodash/defer.d.ts +2 -0
  1034. package/configure/node_modules/@types/lodash/delay.d.ts +2 -0
  1035. package/configure/node_modules/@types/lodash/difference.d.ts +2 -0
  1036. package/configure/node_modules/@types/lodash/differenceBy.d.ts +2 -0
  1037. package/configure/node_modules/@types/lodash/differenceWith.d.ts +2 -0
  1038. package/configure/node_modules/@types/lodash/divide.d.ts +2 -0
  1039. package/configure/node_modules/@types/lodash/drop.d.ts +2 -0
  1040. package/configure/node_modules/@types/lodash/dropRight.d.ts +2 -0
  1041. package/configure/node_modules/@types/lodash/dropRightWhile.d.ts +2 -0
  1042. package/configure/node_modules/@types/lodash/dropWhile.d.ts +2 -0
  1043. package/configure/node_modules/@types/lodash/each.d.ts +2 -0
  1044. package/configure/node_modules/@types/lodash/eachRight.d.ts +2 -0
  1045. package/configure/node_modules/@types/lodash/endsWith.d.ts +2 -0
  1046. package/configure/node_modules/@types/lodash/entries.d.ts +2 -0
  1047. package/configure/node_modules/@types/lodash/entriesIn.d.ts +2 -0
  1048. package/configure/node_modules/@types/lodash/eq.d.ts +2 -0
  1049. package/configure/node_modules/@types/lodash/escape.d.ts +2 -0
  1050. package/configure/node_modules/@types/lodash/escapeRegExp.d.ts +2 -0
  1051. package/configure/node_modules/@types/lodash/every.d.ts +2 -0
  1052. package/configure/node_modules/@types/lodash/extend.d.ts +2 -0
  1053. package/configure/node_modules/@types/lodash/extendWith.d.ts +2 -0
  1054. package/configure/node_modules/@types/lodash/fill.d.ts +2 -0
  1055. package/configure/node_modules/@types/lodash/filter.d.ts +2 -0
  1056. package/configure/node_modules/@types/lodash/find.d.ts +2 -0
  1057. package/configure/node_modules/@types/lodash/findIndex.d.ts +2 -0
  1058. package/configure/node_modules/@types/lodash/findKey.d.ts +2 -0
  1059. package/configure/node_modules/@types/lodash/findLast.d.ts +2 -0
  1060. package/configure/node_modules/@types/lodash/findLastIndex.d.ts +2 -0
  1061. package/configure/node_modules/@types/lodash/findLastKey.d.ts +2 -0
  1062. package/configure/node_modules/@types/lodash/first.d.ts +2 -0
  1063. package/configure/node_modules/@types/lodash/flatMap.d.ts +2 -0
  1064. package/configure/node_modules/@types/lodash/flatMapDeep.d.ts +2 -0
  1065. package/configure/node_modules/@types/lodash/flatMapDepth.d.ts +2 -0
  1066. package/configure/node_modules/@types/lodash/flatten.d.ts +2 -0
  1067. package/configure/node_modules/@types/lodash/flattenDeep.d.ts +2 -0
  1068. package/configure/node_modules/@types/lodash/flattenDepth.d.ts +2 -0
  1069. package/configure/node_modules/@types/lodash/flip.d.ts +2 -0
  1070. package/configure/node_modules/@types/lodash/floor.d.ts +2 -0
  1071. package/configure/node_modules/@types/lodash/flow.d.ts +2 -0
  1072. package/configure/node_modules/@types/lodash/flowRight.d.ts +2 -0
  1073. package/configure/node_modules/@types/lodash/forEach.d.ts +2 -0
  1074. package/configure/node_modules/@types/lodash/forEachRight.d.ts +2 -0
  1075. package/configure/node_modules/@types/lodash/forIn.d.ts +2 -0
  1076. package/configure/node_modules/@types/lodash/forInRight.d.ts +2 -0
  1077. package/configure/node_modules/@types/lodash/forOwn.d.ts +2 -0
  1078. package/configure/node_modules/@types/lodash/forOwnRight.d.ts +2 -0
  1079. package/configure/node_modules/@types/lodash/fp/F.d.ts +2 -0
  1080. package/configure/node_modules/@types/lodash/fp/T.d.ts +2 -0
  1081. package/configure/node_modules/@types/lodash/fp/__.d.ts +3 -0
  1082. package/configure/node_modules/@types/lodash/fp/add.d.ts +2 -0
  1083. package/configure/node_modules/@types/lodash/fp/after.d.ts +2 -0
  1084. package/configure/node_modules/@types/lodash/fp/all.d.ts +2 -0
  1085. package/configure/node_modules/@types/lodash/fp/allPass.d.ts +2 -0
  1086. package/configure/node_modules/@types/lodash/fp/always.d.ts +2 -0
  1087. package/configure/node_modules/@types/lodash/fp/any.d.ts +2 -0
  1088. package/configure/node_modules/@types/lodash/fp/anyPass.d.ts +2 -0
  1089. package/configure/node_modules/@types/lodash/fp/apply.d.ts +2 -0
  1090. package/configure/node_modules/@types/lodash/fp/ary.d.ts +2 -0
  1091. package/configure/node_modules/@types/lodash/fp/assign.d.ts +2 -0
  1092. package/configure/node_modules/@types/lodash/fp/assignAll.d.ts +2 -0
  1093. package/configure/node_modules/@types/lodash/fp/assignAllWith.d.ts +2 -0
  1094. package/configure/node_modules/@types/lodash/fp/assignIn.d.ts +2 -0
  1095. package/configure/node_modules/@types/lodash/fp/assignInAll.d.ts +2 -0
  1096. package/configure/node_modules/@types/lodash/fp/assignInAllWith.d.ts +2 -0
  1097. package/configure/node_modules/@types/lodash/fp/assignInWith.d.ts +2 -0
  1098. package/configure/node_modules/@types/lodash/fp/assignWith.d.ts +2 -0
  1099. package/configure/node_modules/@types/lodash/fp/assoc.d.ts +2 -0
  1100. package/configure/node_modules/@types/lodash/fp/assocPath.d.ts +2 -0
  1101. package/configure/node_modules/@types/lodash/fp/at.d.ts +2 -0
  1102. package/configure/node_modules/@types/lodash/fp/attempt.d.ts +2 -0
  1103. package/configure/node_modules/@types/lodash/fp/before.d.ts +2 -0
  1104. package/configure/node_modules/@types/lodash/fp/bind.d.ts +2 -0
  1105. package/configure/node_modules/@types/lodash/fp/bindAll.d.ts +2 -0
  1106. package/configure/node_modules/@types/lodash/fp/bindKey.d.ts +2 -0
  1107. package/configure/node_modules/@types/lodash/fp/camelCase.d.ts +2 -0
  1108. package/configure/node_modules/@types/lodash/fp/capitalize.d.ts +2 -0
  1109. package/configure/node_modules/@types/lodash/fp/castArray.d.ts +2 -0
  1110. package/configure/node_modules/@types/lodash/fp/ceil.d.ts +2 -0
  1111. package/configure/node_modules/@types/lodash/fp/chunk.d.ts +2 -0
  1112. package/configure/node_modules/@types/lodash/fp/clamp.d.ts +2 -0
  1113. package/configure/node_modules/@types/lodash/fp/clone.d.ts +2 -0
  1114. package/configure/node_modules/@types/lodash/fp/cloneDeep.d.ts +2 -0
  1115. package/configure/node_modules/@types/lodash/fp/cloneDeepWith.d.ts +2 -0
  1116. package/configure/node_modules/@types/lodash/fp/cloneWith.d.ts +2 -0
  1117. package/configure/node_modules/@types/lodash/fp/compact.d.ts +2 -0
  1118. package/configure/node_modules/@types/lodash/fp/complement.d.ts +2 -0
  1119. package/configure/node_modules/@types/lodash/fp/compose.d.ts +2 -0
  1120. package/configure/node_modules/@types/lodash/fp/concat.d.ts +2 -0
  1121. package/configure/node_modules/@types/lodash/fp/cond.d.ts +2 -0
  1122. package/configure/node_modules/@types/lodash/fp/conforms.d.ts +2 -0
  1123. package/configure/node_modules/@types/lodash/fp/conformsTo.d.ts +2 -0
  1124. package/configure/node_modules/@types/lodash/fp/constant.d.ts +2 -0
  1125. package/configure/node_modules/@types/lodash/fp/contains.d.ts +2 -0
  1126. package/configure/node_modules/@types/lodash/fp/convert.d.ts +15 -0
  1127. package/configure/node_modules/@types/lodash/fp/countBy.d.ts +2 -0
  1128. package/configure/node_modules/@types/lodash/fp/create.d.ts +2 -0
  1129. package/configure/node_modules/@types/lodash/fp/curry.d.ts +2 -0
  1130. package/configure/node_modules/@types/lodash/fp/curryN.d.ts +2 -0
  1131. package/configure/node_modules/@types/lodash/fp/curryRight.d.ts +2 -0
  1132. package/configure/node_modules/@types/lodash/fp/curryRightN.d.ts +2 -0
  1133. package/configure/node_modules/@types/lodash/fp/debounce.d.ts +2 -0
  1134. package/configure/node_modules/@types/lodash/fp/deburr.d.ts +2 -0
  1135. package/configure/node_modules/@types/lodash/fp/defaultTo.d.ts +2 -0
  1136. package/configure/node_modules/@types/lodash/fp/defaults.d.ts +2 -0
  1137. package/configure/node_modules/@types/lodash/fp/defaultsAll.d.ts +2 -0
  1138. package/configure/node_modules/@types/lodash/fp/defaultsDeep.d.ts +2 -0
  1139. package/configure/node_modules/@types/lodash/fp/defaultsDeepAll.d.ts +2 -0
  1140. package/configure/node_modules/@types/lodash/fp/defer.d.ts +2 -0
  1141. package/configure/node_modules/@types/lodash/fp/delay.d.ts +2 -0
  1142. package/configure/node_modules/@types/lodash/fp/difference.d.ts +2 -0
  1143. package/configure/node_modules/@types/lodash/fp/differenceBy.d.ts +2 -0
  1144. package/configure/node_modules/@types/lodash/fp/differenceWith.d.ts +2 -0
  1145. package/configure/node_modules/@types/lodash/fp/dissoc.d.ts +2 -0
  1146. package/configure/node_modules/@types/lodash/fp/dissocPath.d.ts +2 -0
  1147. package/configure/node_modules/@types/lodash/fp/divide.d.ts +2 -0
  1148. package/configure/node_modules/@types/lodash/fp/drop.d.ts +2 -0
  1149. package/configure/node_modules/@types/lodash/fp/dropLast.d.ts +2 -0
  1150. package/configure/node_modules/@types/lodash/fp/dropLastWhile.d.ts +2 -0
  1151. package/configure/node_modules/@types/lodash/fp/dropRight.d.ts +2 -0
  1152. package/configure/node_modules/@types/lodash/fp/dropRightWhile.d.ts +2 -0
  1153. package/configure/node_modules/@types/lodash/fp/dropWhile.d.ts +2 -0
  1154. package/configure/node_modules/@types/lodash/fp/each.d.ts +2 -0
  1155. package/configure/node_modules/@types/lodash/fp/eachRight.d.ts +2 -0
  1156. package/configure/node_modules/@types/lodash/fp/endsWith.d.ts +2 -0
  1157. package/configure/node_modules/@types/lodash/fp/entries.d.ts +2 -0
  1158. package/configure/node_modules/@types/lodash/fp/entriesIn.d.ts +2 -0
  1159. package/configure/node_modules/@types/lodash/fp/eq.d.ts +2 -0
  1160. package/configure/node_modules/@types/lodash/fp/equals.d.ts +2 -0
  1161. package/configure/node_modules/@types/lodash/fp/escape.d.ts +2 -0
  1162. package/configure/node_modules/@types/lodash/fp/escapeRegExp.d.ts +2 -0
  1163. package/configure/node_modules/@types/lodash/fp/every.d.ts +2 -0
  1164. package/configure/node_modules/@types/lodash/fp/extend.d.ts +2 -0
  1165. package/configure/node_modules/@types/lodash/fp/extendAll.d.ts +2 -0
  1166. package/configure/node_modules/@types/lodash/fp/extendAllWith.d.ts +2 -0
  1167. package/configure/node_modules/@types/lodash/fp/extendWith.d.ts +2 -0
  1168. package/configure/node_modules/@types/lodash/fp/fill.d.ts +2 -0
  1169. package/configure/node_modules/@types/lodash/fp/filter.d.ts +2 -0
  1170. package/configure/node_modules/@types/lodash/fp/find.d.ts +2 -0
  1171. package/configure/node_modules/@types/lodash/fp/findFrom.d.ts +2 -0
  1172. package/configure/node_modules/@types/lodash/fp/findIndex.d.ts +2 -0
  1173. package/configure/node_modules/@types/lodash/fp/findIndexFrom.d.ts +2 -0
  1174. package/configure/node_modules/@types/lodash/fp/findKey.d.ts +2 -0
  1175. package/configure/node_modules/@types/lodash/fp/findLast.d.ts +2 -0
  1176. package/configure/node_modules/@types/lodash/fp/findLastFrom.d.ts +2 -0
  1177. package/configure/node_modules/@types/lodash/fp/findLastIndex.d.ts +2 -0
  1178. package/configure/node_modules/@types/lodash/fp/findLastIndexFrom.d.ts +2 -0
  1179. package/configure/node_modules/@types/lodash/fp/findLastKey.d.ts +2 -0
  1180. package/configure/node_modules/@types/lodash/fp/first.d.ts +2 -0
  1181. package/configure/node_modules/@types/lodash/fp/flatMap.d.ts +2 -0
  1182. package/configure/node_modules/@types/lodash/fp/flatMapDeep.d.ts +2 -0
  1183. package/configure/node_modules/@types/lodash/fp/flatMapDepth.d.ts +2 -0
  1184. package/configure/node_modules/@types/lodash/fp/flatten.d.ts +2 -0
  1185. package/configure/node_modules/@types/lodash/fp/flattenDeep.d.ts +2 -0
  1186. package/configure/node_modules/@types/lodash/fp/flattenDepth.d.ts +2 -0
  1187. package/configure/node_modules/@types/lodash/fp/flip.d.ts +2 -0
  1188. package/configure/node_modules/@types/lodash/fp/floor.d.ts +2 -0
  1189. package/configure/node_modules/@types/lodash/fp/flow.d.ts +2 -0
  1190. package/configure/node_modules/@types/lodash/fp/flowRight.d.ts +2 -0
  1191. package/configure/node_modules/@types/lodash/fp/forEach.d.ts +2 -0
  1192. package/configure/node_modules/@types/lodash/fp/forEachRight.d.ts +2 -0
  1193. package/configure/node_modules/@types/lodash/fp/forIn.d.ts +2 -0
  1194. package/configure/node_modules/@types/lodash/fp/forInRight.d.ts +2 -0
  1195. package/configure/node_modules/@types/lodash/fp/forOwn.d.ts +2 -0
  1196. package/configure/node_modules/@types/lodash/fp/forOwnRight.d.ts +2 -0
  1197. package/configure/node_modules/@types/lodash/fp/fromPairs.d.ts +2 -0
  1198. package/configure/node_modules/@types/lodash/fp/functions.d.ts +2 -0
  1199. package/configure/node_modules/@types/lodash/fp/functionsIn.d.ts +2 -0
  1200. package/configure/node_modules/@types/lodash/fp/get.d.ts +2 -0
  1201. package/configure/node_modules/@types/lodash/fp/getOr.d.ts +2 -0
  1202. package/configure/node_modules/@types/lodash/fp/groupBy.d.ts +2 -0
  1203. package/configure/node_modules/@types/lodash/fp/gt.d.ts +2 -0
  1204. package/configure/node_modules/@types/lodash/fp/gte.d.ts +2 -0
  1205. package/configure/node_modules/@types/lodash/fp/has.d.ts +2 -0
  1206. package/configure/node_modules/@types/lodash/fp/hasIn.d.ts +2 -0
  1207. package/configure/node_modules/@types/lodash/fp/head.d.ts +2 -0
  1208. package/configure/node_modules/@types/lodash/fp/identical.d.ts +2 -0
  1209. package/configure/node_modules/@types/lodash/fp/identity.d.ts +2 -0
  1210. package/configure/node_modules/@types/lodash/fp/inRange.d.ts +2 -0
  1211. package/configure/node_modules/@types/lodash/fp/includes.d.ts +2 -0
  1212. package/configure/node_modules/@types/lodash/fp/includesFrom.d.ts +2 -0
  1213. package/configure/node_modules/@types/lodash/fp/indexBy.d.ts +2 -0
  1214. package/configure/node_modules/@types/lodash/fp/indexOf.d.ts +2 -0
  1215. package/configure/node_modules/@types/lodash/fp/indexOfFrom.d.ts +2 -0
  1216. package/configure/node_modules/@types/lodash/fp/init.d.ts +2 -0
  1217. package/configure/node_modules/@types/lodash/fp/initial.d.ts +2 -0
  1218. package/configure/node_modules/@types/lodash/fp/intersection.d.ts +2 -0
  1219. package/configure/node_modules/@types/lodash/fp/intersectionBy.d.ts +2 -0
  1220. package/configure/node_modules/@types/lodash/fp/intersectionWith.d.ts +2 -0
  1221. package/configure/node_modules/@types/lodash/fp/invert.d.ts +2 -0
  1222. package/configure/node_modules/@types/lodash/fp/invertBy.d.ts +2 -0
  1223. package/configure/node_modules/@types/lodash/fp/invertObj.d.ts +2 -0
  1224. package/configure/node_modules/@types/lodash/fp/invoke.d.ts +2 -0
  1225. package/configure/node_modules/@types/lodash/fp/invokeArgs.d.ts +2 -0
  1226. package/configure/node_modules/@types/lodash/fp/invokeArgsMap.d.ts +2 -0
  1227. package/configure/node_modules/@types/lodash/fp/invokeMap.d.ts +2 -0
  1228. package/configure/node_modules/@types/lodash/fp/isArguments.d.ts +2 -0
  1229. package/configure/node_modules/@types/lodash/fp/isArray.d.ts +2 -0
  1230. package/configure/node_modules/@types/lodash/fp/isArrayBuffer.d.ts +2 -0
  1231. package/configure/node_modules/@types/lodash/fp/isArrayLike.d.ts +2 -0
  1232. package/configure/node_modules/@types/lodash/fp/isArrayLikeObject.d.ts +2 -0
  1233. package/configure/node_modules/@types/lodash/fp/isBoolean.d.ts +2 -0
  1234. package/configure/node_modules/@types/lodash/fp/isBuffer.d.ts +2 -0
  1235. package/configure/node_modules/@types/lodash/fp/isDate.d.ts +2 -0
  1236. package/configure/node_modules/@types/lodash/fp/isElement.d.ts +2 -0
  1237. package/configure/node_modules/@types/lodash/fp/isEmpty.d.ts +2 -0
  1238. package/configure/node_modules/@types/lodash/fp/isEqual.d.ts +2 -0
  1239. package/configure/node_modules/@types/lodash/fp/isEqualWith.d.ts +2 -0
  1240. package/configure/node_modules/@types/lodash/fp/isError.d.ts +2 -0
  1241. package/configure/node_modules/@types/lodash/fp/isFinite.d.ts +2 -0
  1242. package/configure/node_modules/@types/lodash/fp/isFunction.d.ts +2 -0
  1243. package/configure/node_modules/@types/lodash/fp/isInteger.d.ts +2 -0
  1244. package/configure/node_modules/@types/lodash/fp/isLength.d.ts +2 -0
  1245. package/configure/node_modules/@types/lodash/fp/isMap.d.ts +2 -0
  1246. package/configure/node_modules/@types/lodash/fp/isMatch.d.ts +2 -0
  1247. package/configure/node_modules/@types/lodash/fp/isMatchWith.d.ts +2 -0
  1248. package/configure/node_modules/@types/lodash/fp/isNaN.d.ts +2 -0
  1249. package/configure/node_modules/@types/lodash/fp/isNative.d.ts +2 -0
  1250. package/configure/node_modules/@types/lodash/fp/isNil.d.ts +2 -0
  1251. package/configure/node_modules/@types/lodash/fp/isNull.d.ts +2 -0
  1252. package/configure/node_modules/@types/lodash/fp/isNumber.d.ts +2 -0
  1253. package/configure/node_modules/@types/lodash/fp/isObject.d.ts +2 -0
  1254. package/configure/node_modules/@types/lodash/fp/isObjectLike.d.ts +2 -0
  1255. package/configure/node_modules/@types/lodash/fp/isPlainObject.d.ts +2 -0
  1256. package/configure/node_modules/@types/lodash/fp/isRegExp.d.ts +2 -0
  1257. package/configure/node_modules/@types/lodash/fp/isSafeInteger.d.ts +2 -0
  1258. package/configure/node_modules/@types/lodash/fp/isSet.d.ts +2 -0
  1259. package/configure/node_modules/@types/lodash/fp/isString.d.ts +2 -0
  1260. package/configure/node_modules/@types/lodash/fp/isSymbol.d.ts +2 -0
  1261. package/configure/node_modules/@types/lodash/fp/isTypedArray.d.ts +2 -0
  1262. package/configure/node_modules/@types/lodash/fp/isUndefined.d.ts +2 -0
  1263. package/configure/node_modules/@types/lodash/fp/isWeakMap.d.ts +2 -0
  1264. package/configure/node_modules/@types/lodash/fp/isWeakSet.d.ts +2 -0
  1265. package/configure/node_modules/@types/lodash/fp/iteratee.d.ts +2 -0
  1266. package/configure/node_modules/@types/lodash/fp/join.d.ts +2 -0
  1267. package/configure/node_modules/@types/lodash/fp/juxt.d.ts +2 -0
  1268. package/configure/node_modules/@types/lodash/fp/kebabCase.d.ts +2 -0
  1269. package/configure/node_modules/@types/lodash/fp/keyBy.d.ts +2 -0
  1270. package/configure/node_modules/@types/lodash/fp/keys.d.ts +2 -0
  1271. package/configure/node_modules/@types/lodash/fp/keysIn.d.ts +2 -0
  1272. package/configure/node_modules/@types/lodash/fp/last.d.ts +2 -0
  1273. package/configure/node_modules/@types/lodash/fp/lastIndexOf.d.ts +2 -0
  1274. package/configure/node_modules/@types/lodash/fp/lastIndexOfFrom.d.ts +2 -0
  1275. package/configure/node_modules/@types/lodash/fp/lowerCase.d.ts +2 -0
  1276. package/configure/node_modules/@types/lodash/fp/lowerFirst.d.ts +2 -0
  1277. package/configure/node_modules/@types/lodash/fp/lt.d.ts +2 -0
  1278. package/configure/node_modules/@types/lodash/fp/lte.d.ts +2 -0
  1279. package/configure/node_modules/@types/lodash/fp/map.d.ts +2 -0
  1280. package/configure/node_modules/@types/lodash/fp/mapKeys.d.ts +2 -0
  1281. package/configure/node_modules/@types/lodash/fp/mapValues.d.ts +2 -0
  1282. package/configure/node_modules/@types/lodash/fp/matches.d.ts +2 -0
  1283. package/configure/node_modules/@types/lodash/fp/matchesProperty.d.ts +2 -0
  1284. package/configure/node_modules/@types/lodash/fp/max.d.ts +2 -0
  1285. package/configure/node_modules/@types/lodash/fp/maxBy.d.ts +2 -0
  1286. package/configure/node_modules/@types/lodash/fp/mean.d.ts +2 -0
  1287. package/configure/node_modules/@types/lodash/fp/meanBy.d.ts +2 -0
  1288. package/configure/node_modules/@types/lodash/fp/memoize.d.ts +2 -0
  1289. package/configure/node_modules/@types/lodash/fp/merge.d.ts +2 -0
  1290. package/configure/node_modules/@types/lodash/fp/mergeAll.d.ts +2 -0
  1291. package/configure/node_modules/@types/lodash/fp/mergeAllWith.d.ts +2 -0
  1292. package/configure/node_modules/@types/lodash/fp/mergeWith.d.ts +2 -0
  1293. package/configure/node_modules/@types/lodash/fp/method.d.ts +2 -0
  1294. package/configure/node_modules/@types/lodash/fp/methodOf.d.ts +2 -0
  1295. package/configure/node_modules/@types/lodash/fp/min.d.ts +2 -0
  1296. package/configure/node_modules/@types/lodash/fp/minBy.d.ts +2 -0
  1297. package/configure/node_modules/@types/lodash/fp/multiply.d.ts +2 -0
  1298. package/configure/node_modules/@types/lodash/fp/nAry.d.ts +2 -0
  1299. package/configure/node_modules/@types/lodash/fp/negate.d.ts +2 -0
  1300. package/configure/node_modules/@types/lodash/fp/noConflict.d.ts +2 -0
  1301. package/configure/node_modules/@types/lodash/fp/noop.d.ts +2 -0
  1302. package/configure/node_modules/@types/lodash/fp/now.d.ts +2 -0
  1303. package/configure/node_modules/@types/lodash/fp/nth.d.ts +2 -0
  1304. package/configure/node_modules/@types/lodash/fp/nthArg.d.ts +2 -0
  1305. package/configure/node_modules/@types/lodash/fp/omit.d.ts +2 -0
  1306. package/configure/node_modules/@types/lodash/fp/omitAll.d.ts +2 -0
  1307. package/configure/node_modules/@types/lodash/fp/omitBy.d.ts +2 -0
  1308. package/configure/node_modules/@types/lodash/fp/once.d.ts +2 -0
  1309. package/configure/node_modules/@types/lodash/fp/orderBy.d.ts +2 -0
  1310. package/configure/node_modules/@types/lodash/fp/over.d.ts +2 -0
  1311. package/configure/node_modules/@types/lodash/fp/overArgs.d.ts +2 -0
  1312. package/configure/node_modules/@types/lodash/fp/overEvery.d.ts +2 -0
  1313. package/configure/node_modules/@types/lodash/fp/overSome.d.ts +2 -0
  1314. package/configure/node_modules/@types/lodash/fp/pad.d.ts +2 -0
  1315. package/configure/node_modules/@types/lodash/fp/padChars.d.ts +2 -0
  1316. package/configure/node_modules/@types/lodash/fp/padCharsEnd.d.ts +2 -0
  1317. package/configure/node_modules/@types/lodash/fp/padCharsStart.d.ts +2 -0
  1318. package/configure/node_modules/@types/lodash/fp/padEnd.d.ts +2 -0
  1319. package/configure/node_modules/@types/lodash/fp/padStart.d.ts +2 -0
  1320. package/configure/node_modules/@types/lodash/fp/parseInt.d.ts +2 -0
  1321. package/configure/node_modules/@types/lodash/fp/partial.d.ts +2 -0
  1322. package/configure/node_modules/@types/lodash/fp/partialRight.d.ts +2 -0
  1323. package/configure/node_modules/@types/lodash/fp/partition.d.ts +2 -0
  1324. package/configure/node_modules/@types/lodash/fp/path.d.ts +2 -0
  1325. package/configure/node_modules/@types/lodash/fp/pathEq.d.ts +2 -0
  1326. package/configure/node_modules/@types/lodash/fp/pathOr.d.ts +2 -0
  1327. package/configure/node_modules/@types/lodash/fp/paths.d.ts +2 -0
  1328. package/configure/node_modules/@types/lodash/fp/pick.d.ts +2 -0
  1329. package/configure/node_modules/@types/lodash/fp/pickAll.d.ts +2 -0
  1330. package/configure/node_modules/@types/lodash/fp/pickBy.d.ts +2 -0
  1331. package/configure/node_modules/@types/lodash/fp/pipe.d.ts +2 -0
  1332. package/configure/node_modules/@types/lodash/fp/placeholder.d.ts +3 -0
  1333. package/configure/node_modules/@types/lodash/fp/pluck.d.ts +2 -0
  1334. package/configure/node_modules/@types/lodash/fp/prop.d.ts +2 -0
  1335. package/configure/node_modules/@types/lodash/fp/propEq.d.ts +2 -0
  1336. package/configure/node_modules/@types/lodash/fp/propOr.d.ts +2 -0
  1337. package/configure/node_modules/@types/lodash/fp/property.d.ts +2 -0
  1338. package/configure/node_modules/@types/lodash/fp/propertyOf.d.ts +2 -0
  1339. package/configure/node_modules/@types/lodash/fp/props.d.ts +2 -0
  1340. package/configure/node_modules/@types/lodash/fp/pull.d.ts +2 -0
  1341. package/configure/node_modules/@types/lodash/fp/pullAll.d.ts +2 -0
  1342. package/configure/node_modules/@types/lodash/fp/pullAllBy.d.ts +2 -0
  1343. package/configure/node_modules/@types/lodash/fp/pullAllWith.d.ts +2 -0
  1344. package/configure/node_modules/@types/lodash/fp/pullAt.d.ts +2 -0
  1345. package/configure/node_modules/@types/lodash/fp/random.d.ts +2 -0
  1346. package/configure/node_modules/@types/lodash/fp/range.d.ts +2 -0
  1347. package/configure/node_modules/@types/lodash/fp/rangeRight.d.ts +2 -0
  1348. package/configure/node_modules/@types/lodash/fp/rangeStep.d.ts +2 -0
  1349. package/configure/node_modules/@types/lodash/fp/rangeStepRight.d.ts +2 -0
  1350. package/configure/node_modules/@types/lodash/fp/rearg.d.ts +2 -0
  1351. package/configure/node_modules/@types/lodash/fp/reduce.d.ts +2 -0
  1352. package/configure/node_modules/@types/lodash/fp/reduceRight.d.ts +2 -0
  1353. package/configure/node_modules/@types/lodash/fp/reject.d.ts +2 -0
  1354. package/configure/node_modules/@types/lodash/fp/remove.d.ts +2 -0
  1355. package/configure/node_modules/@types/lodash/fp/repeat.d.ts +2 -0
  1356. package/configure/node_modules/@types/lodash/fp/replace.d.ts +2 -0
  1357. package/configure/node_modules/@types/lodash/fp/rest.d.ts +2 -0
  1358. package/configure/node_modules/@types/lodash/fp/restFrom.d.ts +2 -0
  1359. package/configure/node_modules/@types/lodash/fp/result.d.ts +2 -0
  1360. package/configure/node_modules/@types/lodash/fp/reverse.d.ts +2 -0
  1361. package/configure/node_modules/@types/lodash/fp/round.d.ts +2 -0
  1362. package/configure/node_modules/@types/lodash/fp/runInContext.d.ts +2 -0
  1363. package/configure/node_modules/@types/lodash/fp/sample.d.ts +2 -0
  1364. package/configure/node_modules/@types/lodash/fp/sampleSize.d.ts +2 -0
  1365. package/configure/node_modules/@types/lodash/fp/set.d.ts +2 -0
  1366. package/configure/node_modules/@types/lodash/fp/setWith.d.ts +2 -0
  1367. package/configure/node_modules/@types/lodash/fp/shuffle.d.ts +2 -0
  1368. package/configure/node_modules/@types/lodash/fp/size.d.ts +2 -0
  1369. package/configure/node_modules/@types/lodash/fp/slice.d.ts +2 -0
  1370. package/configure/node_modules/@types/lodash/fp/snakeCase.d.ts +2 -0
  1371. package/configure/node_modules/@types/lodash/fp/some.d.ts +2 -0
  1372. package/configure/node_modules/@types/lodash/fp/sortBy.d.ts +2 -0
  1373. package/configure/node_modules/@types/lodash/fp/sortedIndex.d.ts +2 -0
  1374. package/configure/node_modules/@types/lodash/fp/sortedIndexBy.d.ts +2 -0
  1375. package/configure/node_modules/@types/lodash/fp/sortedIndexOf.d.ts +2 -0
  1376. package/configure/node_modules/@types/lodash/fp/sortedLastIndex.d.ts +2 -0
  1377. package/configure/node_modules/@types/lodash/fp/sortedLastIndexBy.d.ts +2 -0
  1378. package/configure/node_modules/@types/lodash/fp/sortedLastIndexOf.d.ts +2 -0
  1379. package/configure/node_modules/@types/lodash/fp/sortedUniq.d.ts +2 -0
  1380. package/configure/node_modules/@types/lodash/fp/sortedUniqBy.d.ts +2 -0
  1381. package/configure/node_modules/@types/lodash/fp/split.d.ts +2 -0
  1382. package/configure/node_modules/@types/lodash/fp/spread.d.ts +2 -0
  1383. package/configure/node_modules/@types/lodash/fp/spreadFrom.d.ts +2 -0
  1384. package/configure/node_modules/@types/lodash/fp/startCase.d.ts +2 -0
  1385. package/configure/node_modules/@types/lodash/fp/startsWith.d.ts +2 -0
  1386. package/configure/node_modules/@types/lodash/fp/stubArray.d.ts +2 -0
  1387. package/configure/node_modules/@types/lodash/fp/stubFalse.d.ts +2 -0
  1388. package/configure/node_modules/@types/lodash/fp/stubObject.d.ts +2 -0
  1389. package/configure/node_modules/@types/lodash/fp/stubString.d.ts +2 -0
  1390. package/configure/node_modules/@types/lodash/fp/stubTrue.d.ts +2 -0
  1391. package/configure/node_modules/@types/lodash/fp/subtract.d.ts +2 -0
  1392. package/configure/node_modules/@types/lodash/fp/sum.d.ts +2 -0
  1393. package/configure/node_modules/@types/lodash/fp/sumBy.d.ts +2 -0
  1394. package/configure/node_modules/@types/lodash/fp/symmetricDifference.d.ts +2 -0
  1395. package/configure/node_modules/@types/lodash/fp/symmetricDifferenceBy.d.ts +2 -0
  1396. package/configure/node_modules/@types/lodash/fp/symmetricDifferenceWith.d.ts +2 -0
  1397. package/configure/node_modules/@types/lodash/fp/tail.d.ts +2 -0
  1398. package/configure/node_modules/@types/lodash/fp/take.d.ts +2 -0
  1399. package/configure/node_modules/@types/lodash/fp/takeLast.d.ts +2 -0
  1400. package/configure/node_modules/@types/lodash/fp/takeLastWhile.d.ts +2 -0
  1401. package/configure/node_modules/@types/lodash/fp/takeRight.d.ts +2 -0
  1402. package/configure/node_modules/@types/lodash/fp/takeRightWhile.d.ts +2 -0
  1403. package/configure/node_modules/@types/lodash/fp/takeWhile.d.ts +2 -0
  1404. package/configure/node_modules/@types/lodash/fp/tap.d.ts +2 -0
  1405. package/configure/node_modules/@types/lodash/fp/template.d.ts +2 -0
  1406. package/configure/node_modules/@types/lodash/fp/throttle.d.ts +2 -0
  1407. package/configure/node_modules/@types/lodash/fp/thru.d.ts +2 -0
  1408. package/configure/node_modules/@types/lodash/fp/times.d.ts +2 -0
  1409. package/configure/node_modules/@types/lodash/fp/toArray.d.ts +2 -0
  1410. package/configure/node_modules/@types/lodash/fp/toFinite.d.ts +2 -0
  1411. package/configure/node_modules/@types/lodash/fp/toInteger.d.ts +2 -0
  1412. package/configure/node_modules/@types/lodash/fp/toLength.d.ts +2 -0
  1413. package/configure/node_modules/@types/lodash/fp/toLower.d.ts +2 -0
  1414. package/configure/node_modules/@types/lodash/fp/toNumber.d.ts +2 -0
  1415. package/configure/node_modules/@types/lodash/fp/toPairs.d.ts +2 -0
  1416. package/configure/node_modules/@types/lodash/fp/toPairsIn.d.ts +2 -0
  1417. package/configure/node_modules/@types/lodash/fp/toPath.d.ts +2 -0
  1418. package/configure/node_modules/@types/lodash/fp/toPlainObject.d.ts +2 -0
  1419. package/configure/node_modules/@types/lodash/fp/toSafeInteger.d.ts +2 -0
  1420. package/configure/node_modules/@types/lodash/fp/toString.d.ts +2 -0
  1421. package/configure/node_modules/@types/lodash/fp/toUpper.d.ts +2 -0
  1422. package/configure/node_modules/@types/lodash/fp/transform.d.ts +2 -0
  1423. package/configure/node_modules/@types/lodash/fp/trim.d.ts +2 -0
  1424. package/configure/node_modules/@types/lodash/fp/trimChars.d.ts +2 -0
  1425. package/configure/node_modules/@types/lodash/fp/trimCharsEnd.d.ts +2 -0
  1426. package/configure/node_modules/@types/lodash/fp/trimCharsStart.d.ts +2 -0
  1427. package/configure/node_modules/@types/lodash/fp/trimEnd.d.ts +2 -0
  1428. package/configure/node_modules/@types/lodash/fp/trimStart.d.ts +2 -0
  1429. package/configure/node_modules/@types/lodash/fp/truncate.d.ts +2 -0
  1430. package/configure/node_modules/@types/lodash/fp/unapply.d.ts +2 -0
  1431. package/configure/node_modules/@types/lodash/fp/unary.d.ts +2 -0
  1432. package/configure/node_modules/@types/lodash/fp/unescape.d.ts +2 -0
  1433. package/configure/node_modules/@types/lodash/fp/union.d.ts +2 -0
  1434. package/configure/node_modules/@types/lodash/fp/unionBy.d.ts +2 -0
  1435. package/configure/node_modules/@types/lodash/fp/unionWith.d.ts +2 -0
  1436. package/configure/node_modules/@types/lodash/fp/uniq.d.ts +2 -0
  1437. package/configure/node_modules/@types/lodash/fp/uniqBy.d.ts +2 -0
  1438. package/configure/node_modules/@types/lodash/fp/uniqWith.d.ts +2 -0
  1439. package/configure/node_modules/@types/lodash/fp/uniqueId.d.ts +2 -0
  1440. package/configure/node_modules/@types/lodash/fp/unnest.d.ts +2 -0
  1441. package/configure/node_modules/@types/lodash/fp/unset.d.ts +2 -0
  1442. package/configure/node_modules/@types/lodash/fp/unzip.d.ts +2 -0
  1443. package/configure/node_modules/@types/lodash/fp/unzipWith.d.ts +2 -0
  1444. package/configure/node_modules/@types/lodash/fp/update.d.ts +2 -0
  1445. package/configure/node_modules/@types/lodash/fp/updateWith.d.ts +2 -0
  1446. package/configure/node_modules/@types/lodash/fp/upperCase.d.ts +2 -0
  1447. package/configure/node_modules/@types/lodash/fp/upperFirst.d.ts +2 -0
  1448. package/configure/node_modules/@types/lodash/fp/useWith.d.ts +2 -0
  1449. package/configure/node_modules/@types/lodash/fp/values.d.ts +2 -0
  1450. package/configure/node_modules/@types/lodash/fp/valuesIn.d.ts +2 -0
  1451. package/configure/node_modules/@types/lodash/fp/where.d.ts +2 -0
  1452. package/configure/node_modules/@types/lodash/fp/whereEq.d.ts +2 -0
  1453. package/configure/node_modules/@types/lodash/fp/without.d.ts +2 -0
  1454. package/configure/node_modules/@types/lodash/fp/words.d.ts +2 -0
  1455. package/configure/node_modules/@types/lodash/fp/wrap.d.ts +2 -0
  1456. package/configure/node_modules/@types/lodash/fp/xor.d.ts +2 -0
  1457. package/configure/node_modules/@types/lodash/fp/xorBy.d.ts +2 -0
  1458. package/configure/node_modules/@types/lodash/fp/xorWith.d.ts +2 -0
  1459. package/configure/node_modules/@types/lodash/fp/zip.d.ts +2 -0
  1460. package/configure/node_modules/@types/lodash/fp/zipAll.d.ts +2 -0
  1461. package/configure/node_modules/@types/lodash/fp/zipObj.d.ts +2 -0
  1462. package/configure/node_modules/@types/lodash/fp/zipObject.d.ts +2 -0
  1463. package/configure/node_modules/@types/lodash/fp/zipObjectDeep.d.ts +2 -0
  1464. package/configure/node_modules/@types/lodash/fp/zipWith.d.ts +2 -0
  1465. package/configure/node_modules/@types/lodash/fp.d.ts +4950 -0
  1466. package/configure/node_modules/@types/lodash/fromPairs.d.ts +2 -0
  1467. package/configure/node_modules/@types/lodash/functions.d.ts +2 -0
  1468. package/configure/node_modules/@types/lodash/functionsIn.d.ts +2 -0
  1469. package/configure/node_modules/@types/lodash/get.d.ts +2 -0
  1470. package/configure/node_modules/@types/lodash/groupBy.d.ts +2 -0
  1471. package/configure/node_modules/@types/lodash/gt.d.ts +2 -0
  1472. package/configure/node_modules/@types/lodash/gte.d.ts +2 -0
  1473. package/configure/node_modules/@types/lodash/has.d.ts +2 -0
  1474. package/configure/node_modules/@types/lodash/hasIn.d.ts +2 -0
  1475. package/configure/node_modules/@types/lodash/head.d.ts +2 -0
  1476. package/configure/node_modules/@types/lodash/identity.d.ts +2 -0
  1477. package/configure/node_modules/@types/lodash/inRange.d.ts +2 -0
  1478. package/configure/node_modules/@types/lodash/includes.d.ts +2 -0
  1479. package/configure/node_modules/@types/lodash/index.d.ts +21 -0
  1480. package/configure/node_modules/@types/lodash/indexOf.d.ts +2 -0
  1481. package/configure/node_modules/@types/lodash/initial.d.ts +2 -0
  1482. package/configure/node_modules/@types/lodash/intersection.d.ts +2 -0
  1483. package/configure/node_modules/@types/lodash/intersectionBy.d.ts +2 -0
  1484. package/configure/node_modules/@types/lodash/intersectionWith.d.ts +2 -0
  1485. package/configure/node_modules/@types/lodash/invert.d.ts +2 -0
  1486. package/configure/node_modules/@types/lodash/invertBy.d.ts +2 -0
  1487. package/configure/node_modules/@types/lodash/invoke.d.ts +2 -0
  1488. package/configure/node_modules/@types/lodash/invokeMap.d.ts +2 -0
  1489. package/configure/node_modules/@types/lodash/isArguments.d.ts +2 -0
  1490. package/configure/node_modules/@types/lodash/isArray.d.ts +2 -0
  1491. package/configure/node_modules/@types/lodash/isArrayBuffer.d.ts +2 -0
  1492. package/configure/node_modules/@types/lodash/isArrayLike.d.ts +2 -0
  1493. package/configure/node_modules/@types/lodash/isArrayLikeObject.d.ts +2 -0
  1494. package/configure/node_modules/@types/lodash/isBoolean.d.ts +2 -0
  1495. package/configure/node_modules/@types/lodash/isBuffer.d.ts +2 -0
  1496. package/configure/node_modules/@types/lodash/isDate.d.ts +2 -0
  1497. package/configure/node_modules/@types/lodash/isElement.d.ts +2 -0
  1498. package/configure/node_modules/@types/lodash/isEmpty.d.ts +2 -0
  1499. package/configure/node_modules/@types/lodash/isEqual.d.ts +2 -0
  1500. package/configure/node_modules/@types/lodash/isEqualWith.d.ts +2 -0
  1501. package/configure/node_modules/@types/lodash/isError.d.ts +2 -0
  1502. package/configure/node_modules/@types/lodash/isFinite.d.ts +2 -0
  1503. package/configure/node_modules/@types/lodash/isFunction.d.ts +2 -0
  1504. package/configure/node_modules/@types/lodash/isInteger.d.ts +2 -0
  1505. package/configure/node_modules/@types/lodash/isLength.d.ts +2 -0
  1506. package/configure/node_modules/@types/lodash/isMap.d.ts +2 -0
  1507. package/configure/node_modules/@types/lodash/isMatch.d.ts +2 -0
  1508. package/configure/node_modules/@types/lodash/isMatchWith.d.ts +2 -0
  1509. package/configure/node_modules/@types/lodash/isNaN.d.ts +2 -0
  1510. package/configure/node_modules/@types/lodash/isNative.d.ts +2 -0
  1511. package/configure/node_modules/@types/lodash/isNil.d.ts +2 -0
  1512. package/configure/node_modules/@types/lodash/isNull.d.ts +2 -0
  1513. package/configure/node_modules/@types/lodash/isNumber.d.ts +2 -0
  1514. package/configure/node_modules/@types/lodash/isObject.d.ts +2 -0
  1515. package/configure/node_modules/@types/lodash/isObjectLike.d.ts +2 -0
  1516. package/configure/node_modules/@types/lodash/isPlainObject.d.ts +2 -0
  1517. package/configure/node_modules/@types/lodash/isRegExp.d.ts +2 -0
  1518. package/configure/node_modules/@types/lodash/isSafeInteger.d.ts +2 -0
  1519. package/configure/node_modules/@types/lodash/isSet.d.ts +2 -0
  1520. package/configure/node_modules/@types/lodash/isString.d.ts +2 -0
  1521. package/configure/node_modules/@types/lodash/isSymbol.d.ts +2 -0
  1522. package/configure/node_modules/@types/lodash/isTypedArray.d.ts +2 -0
  1523. package/configure/node_modules/@types/lodash/isUndefined.d.ts +2 -0
  1524. package/configure/node_modules/@types/lodash/isWeakMap.d.ts +2 -0
  1525. package/configure/node_modules/@types/lodash/isWeakSet.d.ts +2 -0
  1526. package/configure/node_modules/@types/lodash/iteratee.d.ts +2 -0
  1527. package/configure/node_modules/@types/lodash/join.d.ts +2 -0
  1528. package/configure/node_modules/@types/lodash/kebabCase.d.ts +2 -0
  1529. package/configure/node_modules/@types/lodash/keyBy.d.ts +2 -0
  1530. package/configure/node_modules/@types/lodash/keys.d.ts +2 -0
  1531. package/configure/node_modules/@types/lodash/keysIn.d.ts +2 -0
  1532. package/configure/node_modules/@types/lodash/last.d.ts +2 -0
  1533. package/configure/node_modules/@types/lodash/lastIndexOf.d.ts +2 -0
  1534. package/configure/node_modules/@types/lodash/lowerCase.d.ts +2 -0
  1535. package/configure/node_modules/@types/lodash/lowerFirst.d.ts +2 -0
  1536. package/configure/node_modules/@types/lodash/lt.d.ts +2 -0
  1537. package/configure/node_modules/@types/lodash/lte.d.ts +2 -0
  1538. package/configure/node_modules/@types/lodash/map.d.ts +2 -0
  1539. package/configure/node_modules/@types/lodash/mapKeys.d.ts +2 -0
  1540. package/configure/node_modules/@types/lodash/mapValues.d.ts +2 -0
  1541. package/configure/node_modules/@types/lodash/matches.d.ts +2 -0
  1542. package/configure/node_modules/@types/lodash/matchesProperty.d.ts +2 -0
  1543. package/configure/node_modules/@types/lodash/max.d.ts +2 -0
  1544. package/configure/node_modules/@types/lodash/maxBy.d.ts +2 -0
  1545. package/configure/node_modules/@types/lodash/mean.d.ts +2 -0
  1546. package/configure/node_modules/@types/lodash/meanBy.d.ts +2 -0
  1547. package/configure/node_modules/@types/lodash/memoize.d.ts +2 -0
  1548. package/configure/node_modules/@types/lodash/merge.d.ts +2 -0
  1549. package/configure/node_modules/@types/lodash/mergeWith.d.ts +2 -0
  1550. package/configure/node_modules/@types/lodash/method.d.ts +2 -0
  1551. package/configure/node_modules/@types/lodash/methodOf.d.ts +2 -0
  1552. package/configure/node_modules/@types/lodash/min.d.ts +2 -0
  1553. package/configure/node_modules/@types/lodash/minBy.d.ts +2 -0
  1554. package/configure/node_modules/@types/lodash/mixin.d.ts +2 -0
  1555. package/configure/node_modules/@types/lodash/multiply.d.ts +2 -0
  1556. package/configure/node_modules/@types/lodash/negate.d.ts +2 -0
  1557. package/configure/node_modules/@types/lodash/noConflict.d.ts +2 -0
  1558. package/configure/node_modules/@types/lodash/noop.d.ts +2 -0
  1559. package/configure/node_modules/@types/lodash/now.d.ts +2 -0
  1560. package/configure/node_modules/@types/lodash/nth.d.ts +2 -0
  1561. package/configure/node_modules/@types/lodash/nthArg.d.ts +2 -0
  1562. package/configure/node_modules/@types/lodash/omit.d.ts +2 -0
  1563. package/configure/node_modules/@types/lodash/omitBy.d.ts +2 -0
  1564. package/configure/node_modules/@types/lodash/once.d.ts +2 -0
  1565. package/configure/node_modules/@types/lodash/orderBy.d.ts +2 -0
  1566. package/configure/node_modules/@types/lodash/over.d.ts +2 -0
  1567. package/configure/node_modules/@types/lodash/overArgs.d.ts +2 -0
  1568. package/configure/node_modules/@types/lodash/overEvery.d.ts +2 -0
  1569. package/configure/node_modules/@types/lodash/overSome.d.ts +2 -0
  1570. package/configure/node_modules/@types/lodash/package.json +60 -0
  1571. package/configure/node_modules/@types/lodash/pad.d.ts +2 -0
  1572. package/configure/node_modules/@types/lodash/padEnd.d.ts +2 -0
  1573. package/configure/node_modules/@types/lodash/padStart.d.ts +2 -0
  1574. package/configure/node_modules/@types/lodash/parseInt.d.ts +2 -0
  1575. package/configure/node_modules/@types/lodash/partial.d.ts +2 -0
  1576. package/configure/node_modules/@types/lodash/partialRight.d.ts +2 -0
  1577. package/configure/node_modules/@types/lodash/partition.d.ts +2 -0
  1578. package/configure/node_modules/@types/lodash/pick.d.ts +2 -0
  1579. package/configure/node_modules/@types/lodash/pickBy.d.ts +2 -0
  1580. package/configure/node_modules/@types/lodash/property.d.ts +2 -0
  1581. package/configure/node_modules/@types/lodash/propertyOf.d.ts +2 -0
  1582. package/configure/node_modules/@types/lodash/pull.d.ts +2 -0
  1583. package/configure/node_modules/@types/lodash/pullAll.d.ts +2 -0
  1584. package/configure/node_modules/@types/lodash/pullAllBy.d.ts +2 -0
  1585. package/configure/node_modules/@types/lodash/pullAllWith.d.ts +2 -0
  1586. package/configure/node_modules/@types/lodash/pullAt.d.ts +2 -0
  1587. package/configure/node_modules/@types/lodash/random.d.ts +2 -0
  1588. package/configure/node_modules/@types/lodash/range.d.ts +2 -0
  1589. package/configure/node_modules/@types/lodash/rangeRight.d.ts +2 -0
  1590. package/configure/node_modules/@types/lodash/rearg.d.ts +2 -0
  1591. package/configure/node_modules/@types/lodash/reduce.d.ts +2 -0
  1592. package/configure/node_modules/@types/lodash/reduceRight.d.ts +2 -0
  1593. package/configure/node_modules/@types/lodash/reject.d.ts +2 -0
  1594. package/configure/node_modules/@types/lodash/remove.d.ts +2 -0
  1595. package/configure/node_modules/@types/lodash/repeat.d.ts +2 -0
  1596. package/configure/node_modules/@types/lodash/replace.d.ts +2 -0
  1597. package/configure/node_modules/@types/lodash/rest.d.ts +2 -0
  1598. package/configure/node_modules/@types/lodash/result.d.ts +2 -0
  1599. package/configure/node_modules/@types/lodash/reverse.d.ts +2 -0
  1600. package/configure/node_modules/@types/lodash/round.d.ts +2 -0
  1601. package/configure/node_modules/@types/lodash/runInContext.d.ts +2 -0
  1602. package/configure/node_modules/@types/lodash/sample.d.ts +2 -0
  1603. package/configure/node_modules/@types/lodash/sampleSize.d.ts +2 -0
  1604. package/configure/node_modules/@types/lodash/set.d.ts +2 -0
  1605. package/configure/node_modules/@types/lodash/setWith.d.ts +2 -0
  1606. package/configure/node_modules/@types/lodash/shuffle.d.ts +2 -0
  1607. package/configure/node_modules/@types/lodash/size.d.ts +2 -0
  1608. package/configure/node_modules/@types/lodash/slice.d.ts +2 -0
  1609. package/configure/node_modules/@types/lodash/snakeCase.d.ts +2 -0
  1610. package/configure/node_modules/@types/lodash/some.d.ts +2 -0
  1611. package/configure/node_modules/@types/lodash/sortBy.d.ts +2 -0
  1612. package/configure/node_modules/@types/lodash/sortedIndex.d.ts +2 -0
  1613. package/configure/node_modules/@types/lodash/sortedIndexBy.d.ts +2 -0
  1614. package/configure/node_modules/@types/lodash/sortedIndexOf.d.ts +2 -0
  1615. package/configure/node_modules/@types/lodash/sortedLastIndex.d.ts +2 -0
  1616. package/configure/node_modules/@types/lodash/sortedLastIndexBy.d.ts +2 -0
  1617. package/configure/node_modules/@types/lodash/sortedLastIndexOf.d.ts +2 -0
  1618. package/configure/node_modules/@types/lodash/sortedUniq.d.ts +2 -0
  1619. package/configure/node_modules/@types/lodash/sortedUniqBy.d.ts +2 -0
  1620. package/configure/node_modules/@types/lodash/split.d.ts +2 -0
  1621. package/configure/node_modules/@types/lodash/spread.d.ts +2 -0
  1622. package/configure/node_modules/@types/lodash/startCase.d.ts +2 -0
  1623. package/configure/node_modules/@types/lodash/startsWith.d.ts +2 -0
  1624. package/configure/node_modules/@types/lodash/stubFalse.d.ts +2 -0
  1625. package/configure/node_modules/@types/lodash/stubTrue.d.ts +2 -0
  1626. package/configure/node_modules/@types/lodash/subtract.d.ts +2 -0
  1627. package/configure/node_modules/@types/lodash/sum.d.ts +2 -0
  1628. package/configure/node_modules/@types/lodash/sumBy.d.ts +2 -0
  1629. package/configure/node_modules/@types/lodash/tail.d.ts +2 -0
  1630. package/configure/node_modules/@types/lodash/take.d.ts +2 -0
  1631. package/configure/node_modules/@types/lodash/takeRight.d.ts +2 -0
  1632. package/configure/node_modules/@types/lodash/takeRightWhile.d.ts +2 -0
  1633. package/configure/node_modules/@types/lodash/takeWhile.d.ts +2 -0
  1634. package/configure/node_modules/@types/lodash/tap.d.ts +2 -0
  1635. package/configure/node_modules/@types/lodash/template.d.ts +2 -0
  1636. package/configure/node_modules/@types/lodash/throttle.d.ts +2 -0
  1637. package/configure/node_modules/@types/lodash/thru.d.ts +2 -0
  1638. package/configure/node_modules/@types/lodash/times.d.ts +2 -0
  1639. package/configure/node_modules/@types/lodash/toArray.d.ts +2 -0
  1640. package/configure/node_modules/@types/lodash/toFinite.d.ts +2 -0
  1641. package/configure/node_modules/@types/lodash/toInteger.d.ts +2 -0
  1642. package/configure/node_modules/@types/lodash/toLength.d.ts +2 -0
  1643. package/configure/node_modules/@types/lodash/toLower.d.ts +2 -0
  1644. package/configure/node_modules/@types/lodash/toNumber.d.ts +2 -0
  1645. package/configure/node_modules/@types/lodash/toPairs.d.ts +2 -0
  1646. package/configure/node_modules/@types/lodash/toPairsIn.d.ts +2 -0
  1647. package/configure/node_modules/@types/lodash/toPath.d.ts +2 -0
  1648. package/configure/node_modules/@types/lodash/toPlainObject.d.ts +2 -0
  1649. package/configure/node_modules/@types/lodash/toSafeInteger.d.ts +2 -0
  1650. package/configure/node_modules/@types/lodash/toString.d.ts +2 -0
  1651. package/configure/node_modules/@types/lodash/toUpper.d.ts +2 -0
  1652. package/configure/node_modules/@types/lodash/transform.d.ts +2 -0
  1653. package/configure/node_modules/@types/lodash/trim.d.ts +2 -0
  1654. package/configure/node_modules/@types/lodash/trimEnd.d.ts +2 -0
  1655. package/configure/node_modules/@types/lodash/trimStart.d.ts +2 -0
  1656. package/configure/node_modules/@types/lodash/truncate.d.ts +2 -0
  1657. package/configure/node_modules/@types/lodash/unary.d.ts +2 -0
  1658. package/configure/node_modules/@types/lodash/unescape.d.ts +2 -0
  1659. package/configure/node_modules/@types/lodash/union.d.ts +2 -0
  1660. package/configure/node_modules/@types/lodash/unionBy.d.ts +2 -0
  1661. package/configure/node_modules/@types/lodash/unionWith.d.ts +2 -0
  1662. package/configure/node_modules/@types/lodash/uniq.d.ts +2 -0
  1663. package/configure/node_modules/@types/lodash/uniqBy.d.ts +2 -0
  1664. package/configure/node_modules/@types/lodash/uniqWith.d.ts +2 -0
  1665. package/configure/node_modules/@types/lodash/uniqueId.d.ts +2 -0
  1666. package/configure/node_modules/@types/lodash/unset.d.ts +2 -0
  1667. package/configure/node_modules/@types/lodash/unzip.d.ts +2 -0
  1668. package/configure/node_modules/@types/lodash/unzipWith.d.ts +2 -0
  1669. package/configure/node_modules/@types/lodash/update.d.ts +2 -0
  1670. package/configure/node_modules/@types/lodash/updateWith.d.ts +2 -0
  1671. package/configure/node_modules/@types/lodash/upperCase.d.ts +2 -0
  1672. package/configure/node_modules/@types/lodash/upperFirst.d.ts +2 -0
  1673. package/configure/node_modules/@types/lodash/values.d.ts +2 -0
  1674. package/configure/node_modules/@types/lodash/valuesIn.d.ts +2 -0
  1675. package/configure/node_modules/@types/lodash/without.d.ts +2 -0
  1676. package/configure/node_modules/@types/lodash/words.d.ts +2 -0
  1677. package/configure/node_modules/@types/lodash/wrap.d.ts +2 -0
  1678. package/configure/node_modules/@types/lodash/xor.d.ts +2 -0
  1679. package/configure/node_modules/@types/lodash/xorBy.d.ts +2 -0
  1680. package/configure/node_modules/@types/lodash/xorWith.d.ts +2 -0
  1681. package/configure/node_modules/@types/lodash/zip.d.ts +2 -0
  1682. package/configure/node_modules/@types/lodash/zipObject.d.ts +2 -0
  1683. package/configure/node_modules/@types/lodash/zipObjectDeep.d.ts +2 -0
  1684. package/configure/node_modules/@types/lodash/zipWith.d.ts +2 -0
  1685. package/configure/node_modules/direction/cli.js +46 -0
  1686. package/configure/node_modules/direction/index.js +26 -0
  1687. package/configure/node_modules/direction/license +22 -0
  1688. package/configure/node_modules/direction/package.json +80 -0
  1689. package/configure/node_modules/direction/readme.md +84 -0
  1690. package/configure/node_modules/is-hotkey/.babelrc +3 -0
  1691. package/configure/node_modules/is-hotkey/.github/workflows/actions.yml +11 -0
  1692. package/configure/node_modules/is-hotkey/.travis.yml +6 -0
  1693. package/configure/node_modules/is-hotkey/License.md +9 -0
  1694. package/configure/node_modules/is-hotkey/Readme.md +122 -0
  1695. package/configure/node_modules/is-hotkey/lib/index.js +249 -0
  1696. package/configure/node_modules/is-hotkey/lib/is-hotkey.umd.js +263 -0
  1697. package/configure/node_modules/is-hotkey/package.json +38 -0
  1698. package/configure/node_modules/is-hotkey/src/index.js +222 -0
  1699. package/configure/node_modules/is-plain-object/LICENSE +21 -0
  1700. package/configure/node_modules/is-plain-object/README.md +125 -0
  1701. package/configure/node_modules/is-plain-object/dist/is-plain-object.js +38 -0
  1702. package/configure/node_modules/is-plain-object/dist/is-plain-object.mjs +34 -0
  1703. package/configure/node_modules/is-plain-object/is-plain-object.d.ts +1 -0
  1704. package/configure/node_modules/is-plain-object/package.json +85 -0
  1705. package/configure/node_modules/slate/Readme.md +3 -0
  1706. package/configure/node_modules/slate/dist/core/apply.d.ts +4 -0
  1707. package/configure/node_modules/slate/dist/core/apply.d.ts.map +1 -0
  1708. package/configure/node_modules/slate/dist/core/get-dirty-paths.d.ts +7 -0
  1709. package/configure/node_modules/slate/dist/core/get-dirty-paths.d.ts.map +1 -0
  1710. package/configure/node_modules/slate/dist/core/get-fragment.d.ts +4 -0
  1711. package/configure/node_modules/slate/dist/core/get-fragment.d.ts.map +1 -0
  1712. package/configure/node_modules/slate/dist/core/index.d.ts +6 -0
  1713. package/configure/node_modules/slate/dist/core/index.d.ts.map +1 -0
  1714. package/configure/node_modules/slate/dist/core/normalize-node.d.ts +4 -0
  1715. package/configure/node_modules/slate/dist/core/normalize-node.d.ts.map +1 -0
  1716. package/configure/node_modules/slate/dist/core/should-normalize.d.ts +4 -0
  1717. package/configure/node_modules/slate/dist/core/should-normalize.d.ts.map +1 -0
  1718. package/configure/node_modules/slate/dist/create-editor.d.ts +6 -0
  1719. package/configure/node_modules/slate/dist/create-editor.d.ts.map +1 -0
  1720. package/configure/node_modules/slate/dist/editor/above.d.ts +3 -0
  1721. package/configure/node_modules/slate/dist/editor/above.d.ts.map +1 -0
  1722. package/configure/node_modules/slate/dist/editor/add-mark.d.ts +3 -0
  1723. package/configure/node_modules/slate/dist/editor/add-mark.d.ts.map +1 -0
  1724. package/configure/node_modules/slate/dist/editor/after.d.ts +3 -0
  1725. package/configure/node_modules/slate/dist/editor/after.d.ts.map +1 -0
  1726. package/configure/node_modules/slate/dist/editor/before.d.ts +3 -0
  1727. package/configure/node_modules/slate/dist/editor/before.d.ts.map +1 -0
  1728. package/configure/node_modules/slate/dist/editor/delete-backward.d.ts +4 -0
  1729. package/configure/node_modules/slate/dist/editor/delete-backward.d.ts.map +1 -0
  1730. package/configure/node_modules/slate/dist/editor/delete-forward.d.ts +4 -0
  1731. package/configure/node_modules/slate/dist/editor/delete-forward.d.ts.map +1 -0
  1732. package/configure/node_modules/slate/dist/editor/delete-fragment.d.ts +3 -0
  1733. package/configure/node_modules/slate/dist/editor/delete-fragment.d.ts.map +1 -0
  1734. package/configure/node_modules/slate/dist/editor/edges.d.ts +3 -0
  1735. package/configure/node_modules/slate/dist/editor/edges.d.ts.map +1 -0
  1736. package/configure/node_modules/slate/dist/editor/element-read-only.d.ts +3 -0
  1737. package/configure/node_modules/slate/dist/editor/element-read-only.d.ts.map +1 -0
  1738. package/configure/node_modules/slate/dist/editor/end.d.ts +3 -0
  1739. package/configure/node_modules/slate/dist/editor/end.d.ts.map +1 -0
  1740. package/configure/node_modules/slate/dist/editor/first.d.ts +3 -0
  1741. package/configure/node_modules/slate/dist/editor/first.d.ts.map +1 -0
  1742. package/configure/node_modules/slate/dist/editor/fragment.d.ts +3 -0
  1743. package/configure/node_modules/slate/dist/editor/fragment.d.ts.map +1 -0
  1744. package/configure/node_modules/slate/dist/editor/get-void.d.ts +3 -0
  1745. package/configure/node_modules/slate/dist/editor/get-void.d.ts.map +1 -0
  1746. package/configure/node_modules/slate/dist/editor/has-blocks.d.ts +3 -0
  1747. package/configure/node_modules/slate/dist/editor/has-blocks.d.ts.map +1 -0
  1748. package/configure/node_modules/slate/dist/editor/has-inlines.d.ts +3 -0
  1749. package/configure/node_modules/slate/dist/editor/has-inlines.d.ts.map +1 -0
  1750. package/configure/node_modules/slate/dist/editor/has-path.d.ts +3 -0
  1751. package/configure/node_modules/slate/dist/editor/has-path.d.ts.map +1 -0
  1752. package/configure/node_modules/slate/dist/editor/has-texts.d.ts +3 -0
  1753. package/configure/node_modules/slate/dist/editor/has-texts.d.ts.map +1 -0
  1754. package/configure/node_modules/slate/dist/editor/index.d.ts +55 -0
  1755. package/configure/node_modules/slate/dist/editor/index.d.ts.map +1 -0
  1756. package/configure/node_modules/slate/dist/editor/insert-break.d.ts +3 -0
  1757. package/configure/node_modules/slate/dist/editor/insert-break.d.ts.map +1 -0
  1758. package/configure/node_modules/slate/dist/editor/insert-node.d.ts +3 -0
  1759. package/configure/node_modules/slate/dist/editor/insert-node.d.ts.map +1 -0
  1760. package/configure/node_modules/slate/dist/editor/insert-soft-break.d.ts +3 -0
  1761. package/configure/node_modules/slate/dist/editor/insert-soft-break.d.ts.map +1 -0
  1762. package/configure/node_modules/slate/dist/editor/insert-text.d.ts +3 -0
  1763. package/configure/node_modules/slate/dist/editor/insert-text.d.ts.map +1 -0
  1764. package/configure/node_modules/slate/dist/editor/is-block.d.ts +3 -0
  1765. package/configure/node_modules/slate/dist/editor/is-block.d.ts.map +1 -0
  1766. package/configure/node_modules/slate/dist/editor/is-edge.d.ts +3 -0
  1767. package/configure/node_modules/slate/dist/editor/is-edge.d.ts.map +1 -0
  1768. package/configure/node_modules/slate/dist/editor/is-editor.d.ts +3 -0
  1769. package/configure/node_modules/slate/dist/editor/is-editor.d.ts.map +1 -0
  1770. package/configure/node_modules/slate/dist/editor/is-empty.d.ts +3 -0
  1771. package/configure/node_modules/slate/dist/editor/is-empty.d.ts.map +1 -0
  1772. package/configure/node_modules/slate/dist/editor/is-end.d.ts +3 -0
  1773. package/configure/node_modules/slate/dist/editor/is-end.d.ts.map +1 -0
  1774. package/configure/node_modules/slate/dist/editor/is-normalizing.d.ts +3 -0
  1775. package/configure/node_modules/slate/dist/editor/is-normalizing.d.ts.map +1 -0
  1776. package/configure/node_modules/slate/dist/editor/is-start.d.ts +3 -0
  1777. package/configure/node_modules/slate/dist/editor/is-start.d.ts.map +1 -0
  1778. package/configure/node_modules/slate/dist/editor/last.d.ts +3 -0
  1779. package/configure/node_modules/slate/dist/editor/last.d.ts.map +1 -0
  1780. package/configure/node_modules/slate/dist/editor/leaf.d.ts +3 -0
  1781. package/configure/node_modules/slate/dist/editor/leaf.d.ts.map +1 -0
  1782. package/configure/node_modules/slate/dist/editor/levels.d.ts +4 -0
  1783. package/configure/node_modules/slate/dist/editor/levels.d.ts.map +1 -0
  1784. package/configure/node_modules/slate/dist/editor/marks.d.ts +3 -0
  1785. package/configure/node_modules/slate/dist/editor/marks.d.ts.map +1 -0
  1786. package/configure/node_modules/slate/dist/editor/next.d.ts +3 -0
  1787. package/configure/node_modules/slate/dist/editor/next.d.ts.map +1 -0
  1788. package/configure/node_modules/slate/dist/editor/node.d.ts +3 -0
  1789. package/configure/node_modules/slate/dist/editor/node.d.ts.map +1 -0
  1790. package/configure/node_modules/slate/dist/editor/nodes.d.ts +4 -0
  1791. package/configure/node_modules/slate/dist/editor/nodes.d.ts.map +1 -0
  1792. package/configure/node_modules/slate/dist/editor/normalize.d.ts +3 -0
  1793. package/configure/node_modules/slate/dist/editor/normalize.d.ts.map +1 -0
  1794. package/configure/node_modules/slate/dist/editor/parent.d.ts +3 -0
  1795. package/configure/node_modules/slate/dist/editor/parent.d.ts.map +1 -0
  1796. package/configure/node_modules/slate/dist/editor/path-ref.d.ts +3 -0
  1797. package/configure/node_modules/slate/dist/editor/path-ref.d.ts.map +1 -0
  1798. package/configure/node_modules/slate/dist/editor/path-refs.d.ts +3 -0
  1799. package/configure/node_modules/slate/dist/editor/path-refs.d.ts.map +1 -0
  1800. package/configure/node_modules/slate/dist/editor/path.d.ts +3 -0
  1801. package/configure/node_modules/slate/dist/editor/path.d.ts.map +1 -0
  1802. package/configure/node_modules/slate/dist/editor/point-ref.d.ts +3 -0
  1803. package/configure/node_modules/slate/dist/editor/point-ref.d.ts.map +1 -0
  1804. package/configure/node_modules/slate/dist/editor/point-refs.d.ts +3 -0
  1805. package/configure/node_modules/slate/dist/editor/point-refs.d.ts.map +1 -0
  1806. package/configure/node_modules/slate/dist/editor/point.d.ts +3 -0
  1807. package/configure/node_modules/slate/dist/editor/point.d.ts.map +1 -0
  1808. package/configure/node_modules/slate/dist/editor/positions.d.ts +4 -0
  1809. package/configure/node_modules/slate/dist/editor/positions.d.ts.map +1 -0
  1810. package/configure/node_modules/slate/dist/editor/previous.d.ts +3 -0
  1811. package/configure/node_modules/slate/dist/editor/previous.d.ts.map +1 -0
  1812. package/configure/node_modules/slate/dist/editor/range-ref.d.ts +3 -0
  1813. package/configure/node_modules/slate/dist/editor/range-ref.d.ts.map +1 -0
  1814. package/configure/node_modules/slate/dist/editor/range-refs.d.ts +3 -0
  1815. package/configure/node_modules/slate/dist/editor/range-refs.d.ts.map +1 -0
  1816. package/configure/node_modules/slate/dist/editor/range.d.ts +3 -0
  1817. package/configure/node_modules/slate/dist/editor/range.d.ts.map +1 -0
  1818. package/configure/node_modules/slate/dist/editor/remove-mark.d.ts +3 -0
  1819. package/configure/node_modules/slate/dist/editor/remove-mark.d.ts.map +1 -0
  1820. package/configure/node_modules/slate/dist/editor/set-normalizing.d.ts +3 -0
  1821. package/configure/node_modules/slate/dist/editor/set-normalizing.d.ts.map +1 -0
  1822. package/configure/node_modules/slate/dist/editor/start.d.ts +3 -0
  1823. package/configure/node_modules/slate/dist/editor/start.d.ts.map +1 -0
  1824. package/configure/node_modules/slate/dist/editor/string.d.ts +3 -0
  1825. package/configure/node_modules/slate/dist/editor/string.d.ts.map +1 -0
  1826. package/configure/node_modules/slate/dist/editor/unhang-range.d.ts +3 -0
  1827. package/configure/node_modules/slate/dist/editor/unhang-range.d.ts.map +1 -0
  1828. package/configure/node_modules/slate/dist/editor/without-normalizing.d.ts +3 -0
  1829. package/configure/node_modules/slate/dist/editor/without-normalizing.d.ts.map +1 -0
  1830. package/configure/node_modules/slate/dist/index.d.ts +9 -0
  1831. package/configure/node_modules/slate/dist/index.d.ts.map +1 -0
  1832. package/configure/node_modules/slate/dist/index.es.js +6357 -0
  1833. package/configure/node_modules/slate/dist/index.es.js.map +1 -0
  1834. package/configure/node_modules/slate/dist/index.js +7299 -0
  1835. package/configure/node_modules/slate/dist/index.js.map +1 -0
  1836. package/configure/node_modules/slate/dist/interfaces/editor.d.ts +498 -0
  1837. package/configure/node_modules/slate/dist/interfaces/editor.d.ts.map +1 -0
  1838. package/configure/node_modules/slate/dist/interfaces/element.d.ts +47 -0
  1839. package/configure/node_modules/slate/dist/interfaces/element.d.ts.map +1 -0
  1840. package/configure/node_modules/slate/dist/interfaces/index.d.ts +15 -0
  1841. package/configure/node_modules/slate/dist/interfaces/index.d.ts.map +1 -0
  1842. package/configure/node_modules/slate/dist/interfaces/location.d.ts +30 -0
  1843. package/configure/node_modules/slate/dist/interfaces/location.d.ts.map +1 -0
  1844. package/configure/node_modules/slate/dist/interfaces/node.d.ts +174 -0
  1845. package/configure/node_modules/slate/dist/interfaces/node.d.ts.map +1 -0
  1846. package/configure/node_modules/slate/dist/interfaces/operation.d.ts +108 -0
  1847. package/configure/node_modules/slate/dist/interfaces/operation.d.ts.map +1 -0
  1848. package/configure/node_modules/slate/dist/interfaces/path-ref.d.ts +19 -0
  1849. package/configure/node_modules/slate/dist/interfaces/path-ref.d.ts.map +1 -0
  1850. package/configure/node_modules/slate/dist/interfaces/path.d.ts +133 -0
  1851. package/configure/node_modules/slate/dist/interfaces/path.d.ts.map +1 -0
  1852. package/configure/node_modules/slate/dist/interfaces/point-ref.d.ts +20 -0
  1853. package/configure/node_modules/slate/dist/interfaces/point-ref.d.ts.map +1 -0
  1854. package/configure/node_modules/slate/dist/interfaces/point.d.ts +50 -0
  1855. package/configure/node_modules/slate/dist/interfaces/point.d.ts.map +1 -0
  1856. package/configure/node_modules/slate/dist/interfaces/range-ref.d.ts +19 -0
  1857. package/configure/node_modules/slate/dist/interfaces/range-ref.d.ts.map +1 -0
  1858. package/configure/node_modules/slate/dist/interfaces/range.d.ts +81 -0
  1859. package/configure/node_modules/slate/dist/interfaces/range.d.ts.map +1 -0
  1860. package/configure/node_modules/slate/dist/interfaces/scrubber.d.ts +22 -0
  1861. package/configure/node_modules/slate/dist/interfaces/scrubber.d.ts.map +1 -0
  1862. package/configure/node_modules/slate/dist/interfaces/text.d.ts +48 -0
  1863. package/configure/node_modules/slate/dist/interfaces/text.d.ts.map +1 -0
  1864. package/configure/node_modules/slate/dist/interfaces/transforms/general.d.ts +9 -0
  1865. package/configure/node_modules/slate/dist/interfaces/transforms/general.d.ts.map +1 -0
  1866. package/configure/node_modules/slate/dist/interfaces/transforms/index.d.ts +6 -0
  1867. package/configure/node_modules/slate/dist/interfaces/transforms/index.d.ts.map +1 -0
  1868. package/configure/node_modules/slate/dist/interfaces/transforms/node.d.ts +118 -0
  1869. package/configure/node_modules/slate/dist/interfaces/transforms/node.d.ts.map +1 -0
  1870. package/configure/node_modules/slate/dist/interfaces/transforms/selection.d.ts +42 -0
  1871. package/configure/node_modules/slate/dist/interfaces/transforms/selection.d.ts.map +1 -0
  1872. package/configure/node_modules/slate/dist/interfaces/transforms/text.d.ts +37 -0
  1873. package/configure/node_modules/slate/dist/interfaces/transforms/text.d.ts.map +1 -0
  1874. package/configure/node_modules/slate/dist/slate.js +8640 -0
  1875. package/configure/node_modules/slate/dist/slate.min.js +8 -0
  1876. package/configure/node_modules/slate/dist/transforms-node/index.d.ts +11 -0
  1877. package/configure/node_modules/slate/dist/transforms-node/index.d.ts.map +1 -0
  1878. package/configure/node_modules/slate/dist/transforms-node/insert-nodes.d.ts +3 -0
  1879. package/configure/node_modules/slate/dist/transforms-node/insert-nodes.d.ts.map +1 -0
  1880. package/configure/node_modules/slate/dist/transforms-node/lift-nodes.d.ts +3 -0
  1881. package/configure/node_modules/slate/dist/transforms-node/lift-nodes.d.ts.map +1 -0
  1882. package/configure/node_modules/slate/dist/transforms-node/merge-nodes.d.ts +3 -0
  1883. package/configure/node_modules/slate/dist/transforms-node/merge-nodes.d.ts.map +1 -0
  1884. package/configure/node_modules/slate/dist/transforms-node/move-nodes.d.ts +3 -0
  1885. package/configure/node_modules/slate/dist/transforms-node/move-nodes.d.ts.map +1 -0
  1886. package/configure/node_modules/slate/dist/transforms-node/remove-nodes.d.ts +3 -0
  1887. package/configure/node_modules/slate/dist/transforms-node/remove-nodes.d.ts.map +1 -0
  1888. package/configure/node_modules/slate/dist/transforms-node/set-nodes.d.ts +3 -0
  1889. package/configure/node_modules/slate/dist/transforms-node/set-nodes.d.ts.map +1 -0
  1890. package/configure/node_modules/slate/dist/transforms-node/split-nodes.d.ts +3 -0
  1891. package/configure/node_modules/slate/dist/transforms-node/split-nodes.d.ts.map +1 -0
  1892. package/configure/node_modules/slate/dist/transforms-node/unset-nodes.d.ts +3 -0
  1893. package/configure/node_modules/slate/dist/transforms-node/unset-nodes.d.ts.map +1 -0
  1894. package/configure/node_modules/slate/dist/transforms-node/unwrap-nodes.d.ts +3 -0
  1895. package/configure/node_modules/slate/dist/transforms-node/unwrap-nodes.d.ts.map +1 -0
  1896. package/configure/node_modules/slate/dist/transforms-node/wrap-nodes.d.ts +3 -0
  1897. package/configure/node_modules/slate/dist/transforms-node/wrap-nodes.d.ts.map +1 -0
  1898. package/configure/node_modules/slate/dist/transforms-selection/collapse.d.ts +3 -0
  1899. package/configure/node_modules/slate/dist/transforms-selection/collapse.d.ts.map +1 -0
  1900. package/configure/node_modules/slate/dist/transforms-selection/deselect.d.ts +3 -0
  1901. package/configure/node_modules/slate/dist/transforms-selection/deselect.d.ts.map +1 -0
  1902. package/configure/node_modules/slate/dist/transforms-selection/index.d.ts +7 -0
  1903. package/configure/node_modules/slate/dist/transforms-selection/index.d.ts.map +1 -0
  1904. package/configure/node_modules/slate/dist/transforms-selection/move.d.ts +3 -0
  1905. package/configure/node_modules/slate/dist/transforms-selection/move.d.ts.map +1 -0
  1906. package/configure/node_modules/slate/dist/transforms-selection/select.d.ts +3 -0
  1907. package/configure/node_modules/slate/dist/transforms-selection/select.d.ts.map +1 -0
  1908. package/configure/node_modules/slate/dist/transforms-selection/set-point.d.ts +3 -0
  1909. package/configure/node_modules/slate/dist/transforms-selection/set-point.d.ts.map +1 -0
  1910. package/configure/node_modules/slate/dist/transforms-selection/set-selection.d.ts +3 -0
  1911. package/configure/node_modules/slate/dist/transforms-selection/set-selection.d.ts.map +1 -0
  1912. package/configure/node_modules/slate/dist/transforms-text/delete-text.d.ts +3 -0
  1913. package/configure/node_modules/slate/dist/transforms-text/delete-text.d.ts.map +1 -0
  1914. package/configure/node_modules/slate/dist/transforms-text/index.d.ts +3 -0
  1915. package/configure/node_modules/slate/dist/transforms-text/index.d.ts.map +1 -0
  1916. package/configure/node_modules/slate/dist/transforms-text/insert-fragment.d.ts +3 -0
  1917. package/configure/node_modules/slate/dist/transforms-text/insert-fragment.d.ts.map +1 -0
  1918. package/configure/node_modules/slate/dist/types/custom-types.d.ts +10 -0
  1919. package/configure/node_modules/slate/dist/types/custom-types.d.ts.map +1 -0
  1920. package/configure/node_modules/slate/dist/types/index.d.ts +3 -0
  1921. package/configure/node_modules/slate/dist/types/index.d.ts.map +1 -0
  1922. package/configure/node_modules/slate/dist/types/types.d.ts +11 -0
  1923. package/configure/node_modules/slate/dist/types/types.d.ts.map +1 -0
  1924. package/configure/node_modules/slate/dist/utils/deep-equal.d.ts +2 -0
  1925. package/configure/node_modules/slate/dist/utils/deep-equal.d.ts.map +1 -0
  1926. package/configure/node_modules/slate/dist/utils/get-default-insert-location.d.ts +9 -0
  1927. package/configure/node_modules/slate/dist/utils/get-default-insert-location.d.ts.map +1 -0
  1928. package/configure/node_modules/slate/dist/utils/index.d.ts +7 -0
  1929. package/configure/node_modules/slate/dist/utils/index.d.ts.map +1 -0
  1930. package/configure/node_modules/slate/dist/utils/match-path.d.ts +5 -0
  1931. package/configure/node_modules/slate/dist/utils/match-path.d.ts.map +1 -0
  1932. package/configure/node_modules/slate/dist/utils/string.d.ts +18 -0
  1933. package/configure/node_modules/slate/dist/utils/string.d.ts.map +1 -0
  1934. package/configure/node_modules/slate/dist/utils/types.d.ts +5 -0
  1935. package/configure/node_modules/slate/dist/utils/types.d.ts.map +1 -0
  1936. package/configure/node_modules/slate/dist/utils/weak-maps.d.ts +9 -0
  1937. package/configure/node_modules/slate/dist/utils/weak-maps.d.ts.map +1 -0
  1938. package/configure/node_modules/slate/package.json +48 -0
  1939. package/configure/node_modules/slate-history/Readme.md +1 -0
  1940. package/configure/node_modules/slate-history/dist/history-editor.d.ts +50 -0
  1941. package/configure/node_modules/slate-history/dist/history-editor.d.ts.map +1 -0
  1942. package/configure/node_modules/slate-history/dist/history.d.ts +21 -0
  1943. package/configure/node_modules/slate-history/dist/history.d.ts.map +1 -0
  1944. package/configure/node_modules/slate-history/dist/index.d.ts +4 -0
  1945. package/configure/node_modules/slate-history/dist/index.d.ts.map +1 -0
  1946. package/configure/node_modules/slate-history/dist/index.es.js +208 -0
  1947. package/configure/node_modules/slate-history/dist/index.es.js.map +1 -0
  1948. package/configure/node_modules/slate-history/dist/index.js +222 -0
  1949. package/configure/node_modules/slate-history/dist/index.js.map +1 -0
  1950. package/configure/node_modules/slate-history/dist/slate-history.js +257 -0
  1951. package/configure/node_modules/slate-history/dist/slate-history.min.js +7 -0
  1952. package/configure/node_modules/slate-history/dist/with-history.d.ts +12 -0
  1953. package/configure/node_modules/slate-history/dist/with-history.d.ts.map +1 -0
  1954. package/configure/node_modules/slate-history/package.json +42 -0
  1955. package/configure/node_modules/slate-html-serializer/Changelog.md +67 -0
  1956. package/configure/node_modules/slate-html-serializer/Readme.md +1 -0
  1957. package/configure/node_modules/slate-html-serializer/dist/slate-html-serializer.js +548 -0
  1958. package/configure/node_modules/slate-html-serializer/dist/slate-html-serializer.min.js +1 -0
  1959. package/configure/node_modules/slate-html-serializer/lib/slate-html-serializer.es.js +513 -0
  1960. package/configure/node_modules/slate-html-serializer/lib/slate-html-serializer.es.js.map +1 -0
  1961. package/configure/node_modules/slate-html-serializer/lib/slate-html-serializer.js +519 -0
  1962. package/configure/node_modules/slate-html-serializer/lib/slate-html-serializer.js.map +1 -0
  1963. package/configure/node_modules/slate-html-serializer/package.json +48 -0
  1964. package/configure/node_modules/slate-hyperscript/Readme.md +1 -0
  1965. package/configure/node_modules/slate-hyperscript/dist/creators.d.ts +51 -0
  1966. package/configure/node_modules/slate-hyperscript/dist/creators.d.ts.map +1 -0
  1967. package/configure/node_modules/slate-hyperscript/dist/hyperscript.d.ts +34 -0
  1968. package/configure/node_modules/slate-hyperscript/dist/hyperscript.d.ts.map +1 -0
  1969. package/configure/node_modules/slate-hyperscript/dist/index.d.ts +19 -0
  1970. package/configure/node_modules/slate-hyperscript/dist/index.d.ts.map +1 -0
  1971. package/configure/node_modules/slate-hyperscript/dist/index.es.js +379 -0
  1972. package/configure/node_modules/slate-hyperscript/dist/index.es.js.map +1 -0
  1973. package/configure/node_modules/slate-hyperscript/dist/index.js +663 -0
  1974. package/configure/node_modules/slate-hyperscript/dist/index.js.map +1 -0
  1975. package/configure/node_modules/slate-hyperscript/dist/slate-hyperscript.js +698 -0
  1976. package/configure/node_modules/slate-hyperscript/dist/slate-hyperscript.min.js +8 -0
  1977. package/configure/node_modules/slate-hyperscript/dist/tokens.d.ts +45 -0
  1978. package/configure/node_modules/slate-hyperscript/dist/tokens.d.ts.map +1 -0
  1979. package/configure/node_modules/slate-hyperscript/package.json +40 -0
  1980. package/configure/node_modules/slate-plain-serializer/Changelog.md +57 -0
  1981. package/configure/node_modules/slate-plain-serializer/Readme.md +1 -0
  1982. package/configure/node_modules/slate-plain-serializer/dist/slate-plain-serializer.js +122 -0
  1983. package/configure/node_modules/slate-plain-serializer/dist/slate-plain-serializer.min.js +1 -0
  1984. package/configure/node_modules/slate-plain-serializer/lib/slate-plain-serializer.es.js +116 -0
  1985. package/configure/node_modules/slate-plain-serializer/lib/slate-plain-serializer.es.js.map +1 -0
  1986. package/configure/node_modules/slate-plain-serializer/lib/slate-plain-serializer.js +120 -0
  1987. package/configure/node_modules/slate-plain-serializer/lib/slate-plain-serializer.js.map +1 -0
  1988. package/configure/node_modules/slate-plain-serializer/package.json +43 -0
  1989. package/configure/node_modules/slate-prop-types/Changelog.md +45 -0
  1990. package/configure/node_modules/slate-prop-types/Readme.md +1 -0
  1991. package/configure/node_modules/slate-prop-types/dist/slate-prop-types.js +130 -0
  1992. package/configure/node_modules/slate-prop-types/dist/slate-prop-types.min.js +1 -0
  1993. package/configure/node_modules/slate-prop-types/lib/slate-prop-types.es.js +123 -0
  1994. package/configure/node_modules/slate-prop-types/lib/slate-prop-types.es.js.map +1 -0
  1995. package/configure/node_modules/slate-prop-types/lib/slate-prop-types.js +127 -0
  1996. package/configure/node_modules/slate-prop-types/lib/slate-prop-types.js.map +1 -0
  1997. package/configure/node_modules/slate-prop-types/package.json +38 -0
  1998. package/configure/node_modules/slate-react/Readme.md +8 -0
  1999. package/configure/node_modules/slate-react/dist/components/editable.d.ts +84 -0
  2000. package/configure/node_modules/slate-react/dist/components/editable.d.ts.map +1 -0
  2001. package/configure/node_modules/slate-react/dist/components/element.d.ts +28 -0
  2002. package/configure/node_modules/slate-react/dist/components/element.d.ts.map +1 -0
  2003. package/configure/node_modules/slate-react/dist/components/leaf.d.ts +14 -0
  2004. package/configure/node_modules/slate-react/dist/components/leaf.d.ts.map +1 -0
  2005. package/configure/node_modules/slate-react/dist/components/restore-dom/restore-dom-manager.d.ts +9 -0
  2006. package/configure/node_modules/slate-react/dist/components/restore-dom/restore-dom-manager.d.ts.map +1 -0
  2007. package/configure/node_modules/slate-react/dist/components/restore-dom/restore-dom.d.ts +8 -0
  2008. package/configure/node_modules/slate-react/dist/components/restore-dom/restore-dom.d.ts.map +1 -0
  2009. package/configure/node_modules/slate-react/dist/components/slate.d.ts +14 -0
  2010. package/configure/node_modules/slate-react/dist/components/slate.d.ts.map +1 -0
  2011. package/configure/node_modules/slate-react/dist/components/string.d.ts +21 -0
  2012. package/configure/node_modules/slate-react/dist/components/string.d.ts.map +1 -0
  2013. package/configure/node_modules/slate-react/dist/components/text.d.ts +13 -0
  2014. package/configure/node_modules/slate-react/dist/components/text.d.ts.map +1 -0
  2015. package/configure/node_modules/slate-react/dist/custom-types.d.ts +16 -0
  2016. package/configure/node_modules/slate-react/dist/custom-types.d.ts.map +1 -0
  2017. package/configure/node_modules/slate-react/dist/hooks/android-input-manager/android-input-manager.d.ts +30 -0
  2018. package/configure/node_modules/slate-react/dist/hooks/android-input-manager/android-input-manager.d.ts.map +1 -0
  2019. package/configure/node_modules/slate-react/dist/hooks/android-input-manager/use-android-input-manager.d.ts +8 -0
  2020. package/configure/node_modules/slate-react/dist/hooks/android-input-manager/use-android-input-manager.d.ts.map +1 -0
  2021. package/configure/node_modules/slate-react/dist/hooks/use-children.d.ts +16 -0
  2022. package/configure/node_modules/slate-react/dist/hooks/use-children.d.ts.map +1 -0
  2023. package/configure/node_modules/slate-react/dist/hooks/use-decorate.d.ts +11 -0
  2024. package/configure/node_modules/slate-react/dist/hooks/use-decorate.d.ts.map +1 -0
  2025. package/configure/node_modules/slate-react/dist/hooks/use-editor.d.ts +6 -0
  2026. package/configure/node_modules/slate-react/dist/hooks/use-editor.d.ts.map +1 -0
  2027. package/configure/node_modules/slate-react/dist/hooks/use-focused.d.ts +10 -0
  2028. package/configure/node_modules/slate-react/dist/hooks/use-focused.d.ts.map +1 -0
  2029. package/configure/node_modules/slate-react/dist/hooks/use-is-mounted.d.ts +2 -0
  2030. package/configure/node_modules/slate-react/dist/hooks/use-is-mounted.d.ts.map +1 -0
  2031. package/configure/node_modules/slate-react/dist/hooks/use-isomorphic-layout-effect.d.ts +6 -0
  2032. package/configure/node_modules/slate-react/dist/hooks/use-isomorphic-layout-effect.d.ts.map +1 -0
  2033. package/configure/node_modules/slate-react/dist/hooks/use-mutation-observer.d.ts +3 -0
  2034. package/configure/node_modules/slate-react/dist/hooks/use-mutation-observer.d.ts.map +1 -0
  2035. package/configure/node_modules/slate-react/dist/hooks/use-read-only.d.ts +10 -0
  2036. package/configure/node_modules/slate-react/dist/hooks/use-read-only.d.ts.map +1 -0
  2037. package/configure/node_modules/slate-react/dist/hooks/use-selected.d.ts +10 -0
  2038. package/configure/node_modules/slate-react/dist/hooks/use-selected.d.ts.map +1 -0
  2039. package/configure/node_modules/slate-react/dist/hooks/use-slate-selection.d.ts +7 -0
  2040. package/configure/node_modules/slate-react/dist/hooks/use-slate-selection.d.ts.map +1 -0
  2041. package/configure/node_modules/slate-react/dist/hooks/use-slate-selector.d.ts +32 -0
  2042. package/configure/node_modules/slate-react/dist/hooks/use-slate-selector.d.ts.map +1 -0
  2043. package/configure/node_modules/slate-react/dist/hooks/use-slate-static.d.ts +12 -0
  2044. package/configure/node_modules/slate-react/dist/hooks/use-slate-static.d.ts.map +1 -0
  2045. package/configure/node_modules/slate-react/dist/hooks/use-slate.d.ts +24 -0
  2046. package/configure/node_modules/slate-react/dist/hooks/use-slate.d.ts.map +1 -0
  2047. package/configure/node_modules/slate-react/dist/hooks/use-track-user-input.d.ts +6 -0
  2048. package/configure/node_modules/slate-react/dist/hooks/use-track-user-input.d.ts.map +1 -0
  2049. package/configure/node_modules/slate-react/dist/index.d.ts +15 -0
  2050. package/configure/node_modules/slate-react/dist/index.d.ts.map +1 -0
  2051. package/configure/node_modules/slate-react/dist/index.es.js +5256 -0
  2052. package/configure/node_modules/slate-react/dist/index.es.js.map +1 -0
  2053. package/configure/node_modules/slate-react/dist/index.js +5877 -0
  2054. package/configure/node_modules/slate-react/dist/index.js.map +1 -0
  2055. package/configure/node_modules/slate-react/dist/plugin/react-editor.d.ts +151 -0
  2056. package/configure/node_modules/slate-react/dist/plugin/react-editor.d.ts.map +1 -0
  2057. package/configure/node_modules/slate-react/dist/plugin/with-react.d.ts +12 -0
  2058. package/configure/node_modules/slate-react/dist/plugin/with-react.d.ts.map +1 -0
  2059. package/configure/node_modules/slate-react/dist/slate-react.js +34712 -0
  2060. package/configure/node_modules/slate-react/dist/slate-react.min.js +1 -0
  2061. package/configure/node_modules/slate-react/dist/utils/constants.d.ts +2 -0
  2062. package/configure/node_modules/slate-react/dist/utils/constants.d.ts.map +1 -0
  2063. package/configure/node_modules/slate-react/dist/utils/diff-text.d.ts +45 -0
  2064. package/configure/node_modules/slate-react/dist/utils/diff-text.d.ts.map +1 -0
  2065. package/configure/node_modules/slate-react/dist/utils/dom.d.ts +84 -0
  2066. package/configure/node_modules/slate-react/dist/utils/dom.d.ts.map +1 -0
  2067. package/configure/node_modules/slate-react/dist/utils/environment.d.ts +16 -0
  2068. package/configure/node_modules/slate-react/dist/utils/environment.d.ts.map +1 -0
  2069. package/configure/node_modules/slate-react/dist/utils/hotkeys.d.ts +31 -0
  2070. package/configure/node_modules/slate-react/dist/utils/hotkeys.d.ts.map +1 -0
  2071. package/configure/node_modules/slate-react/dist/utils/key.d.ts +12 -0
  2072. package/configure/node_modules/slate-react/dist/utils/key.d.ts.map +1 -0
  2073. package/configure/node_modules/slate-react/dist/utils/lines.d.ts +15 -0
  2074. package/configure/node_modules/slate-react/dist/utils/lines.d.ts.map +1 -0
  2075. package/configure/node_modules/slate-react/dist/utils/range-list.d.ts +19 -0
  2076. package/configure/node_modules/slate-react/dist/utils/range-list.d.ts.map +1 -0
  2077. package/configure/node_modules/slate-react/dist/utils/types.d.ts +2 -0
  2078. package/configure/node_modules/slate-react/dist/utils/types.d.ts.map +1 -0
  2079. package/configure/node_modules/slate-react/dist/utils/weak-maps.d.ts +52 -0
  2080. package/configure/node_modules/slate-react/dist/utils/weak-maps.d.ts.map +1 -0
  2081. package/configure/node_modules/slate-react/package.json +73 -0
  2082. package/configure/node_modules/slate-soft-break/Changelog.md +57 -0
  2083. package/configure/node_modules/slate-soft-break/Readme.md +23 -0
  2084. package/configure/node_modules/slate-soft-break/dist/slate-soft-break.js +23 -0
  2085. package/configure/node_modules/slate-soft-break/dist/slate-soft-break.min.js +1 -0
  2086. package/configure/node_modules/slate-soft-break/lib/slate-soft-break.es.js +14 -0
  2087. package/configure/node_modules/slate-soft-break/lib/slate-soft-break.es.js.map +1 -0
  2088. package/configure/node_modules/slate-soft-break/lib/slate-soft-break.js +18 -0
  2089. package/configure/node_modules/slate-soft-break/lib/slate-soft-break.js.map +1 -0
  2090. package/configure/node_modules/slate-soft-break/package.json +22 -0
  2091. package/configure/node_modules/tiny-invariant/LICENSE +21 -0
  2092. package/configure/node_modules/tiny-invariant/README.md +88 -0
  2093. package/configure/node_modules/tiny-invariant/dist/tiny-invariant.cjs.js +17 -0
  2094. package/configure/node_modules/tiny-invariant/dist/tiny-invariant.cjs.js.flow +3 -0
  2095. package/configure/node_modules/tiny-invariant/dist/tiny-invariant.esm.js +15 -0
  2096. package/configure/node_modules/tiny-invariant/dist/tiny-invariant.js +20 -0
  2097. package/configure/node_modules/tiny-invariant/dist/tiny-invariant.min.js +1 -0
  2098. package/configure/node_modules/tiny-invariant/package.json +53 -0
  2099. package/configure/node_modules/tiny-invariant/src/index.d.ts +1 -0
  2100. package/configure/node_modules/tiny-invariant/src/index.js +22 -0
  2101. package/configure/package.json +1 -1
  2102. package/controller/package.json +1 -1
  2103. package/package.json +2 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../../../.yarn/cache/@babel-runtime-npm-7.15.3-6333c71362-2f0b8d2d4e.zip/node_modules/@babel/runtime/helpers/defineProperty.js","../../../.yarn/cache/@babel-runtime-npm-7.15.3-6333c71362-2f0b8d2d4e.zip/node_modules/@babel/runtime/helpers/arrayWithHoles.js","../../../.yarn/cache/@babel-runtime-npm-7.15.3-6333c71362-2f0b8d2d4e.zip/node_modules/@babel/runtime/helpers/iterableToArrayLimit.js","../../../.yarn/cache/@babel-runtime-npm-7.15.3-6333c71362-2f0b8d2d4e.zip/node_modules/@babel/runtime/helpers/arrayLikeToArray.js","../../../.yarn/cache/@babel-runtime-npm-7.15.3-6333c71362-2f0b8d2d4e.zip/node_modules/@babel/runtime/helpers/unsupportedIterableToArray.js","../../../.yarn/cache/@babel-runtime-npm-7.15.3-6333c71362-2f0b8d2d4e.zip/node_modules/@babel/runtime/helpers/nonIterableRest.js","../../../.yarn/cache/@babel-runtime-npm-7.15.3-6333c71362-2f0b8d2d4e.zip/node_modules/@babel/runtime/helpers/slicedToArray.js","../../../.yarn/cache/@babel-runtime-npm-7.15.3-6333c71362-2f0b8d2d4e.zip/node_modules/@babel/runtime/helpers/objectWithoutPropertiesLoose.js","../../../.yarn/cache/@babel-runtime-npm-7.15.3-6333c71362-2f0b8d2d4e.zip/node_modules/@babel/runtime/helpers/objectWithoutProperties.js","../src/hooks/use-slate-static.tsx","../src/utils/environment.ts","../src/utils/weak-maps.ts","../../../.yarn/cache/@babel-runtime-npm-7.15.3-6333c71362-2f0b8d2d4e.zip/node_modules/@babel/runtime/helpers/arrayWithoutHoles.js","../../../.yarn/cache/@babel-runtime-npm-7.15.3-6333c71362-2f0b8d2d4e.zip/node_modules/@babel/runtime/helpers/iterableToArray.js","../../../.yarn/cache/@babel-runtime-npm-7.15.3-6333c71362-2f0b8d2d4e.zip/node_modules/@babel/runtime/helpers/nonIterableSpread.js","../../../.yarn/cache/@babel-runtime-npm-7.15.3-6333c71362-2f0b8d2d4e.zip/node_modules/@babel/runtime/helpers/toConsumableArray.js","../src/utils/dom.ts","../../../.yarn/cache/@babel-runtime-npm-7.15.3-6333c71362-2f0b8d2d4e.zip/node_modules/@babel/runtime/helpers/classCallCheck.js","../src/utils/key.ts","../src/plugin/react-editor.ts","../src/utils/diff-text.ts","../src/hooks/android-input-manager/android-input-manager.ts","../src/hooks/use-is-mounted.tsx","../src/hooks/use-isomorphic-layout-effect.ts","../src/hooks/use-mutation-observer.ts","../src/hooks/android-input-manager/use-android-input-manager.ts","../src/utils/range-list.ts","../src/components/string.tsx","../src/components/leaf.tsx","../src/components/text.tsx","../src/components/element.tsx","../src/hooks/use-decorate.ts","../src/hooks/use-selected.ts","../src/hooks/use-children.tsx","../src/hooks/use-read-only.ts","../src/hooks/use-slate.tsx","../src/hooks/use-track-user-input.ts","../src/utils/constants.ts","../src/utils/hotkeys.ts","../../../.yarn/cache/@babel-runtime-npm-7.15.3-6333c71362-2f0b8d2d4e.zip/node_modules/@babel/runtime/helpers/createClass.js","../../../.yarn/cache/@babel-runtime-npm-7.15.3-6333c71362-2f0b8d2d4e.zip/node_modules/@babel/runtime/helpers/setPrototypeOf.js","../../../.yarn/cache/@babel-runtime-npm-7.15.3-6333c71362-2f0b8d2d4e.zip/node_modules/@babel/runtime/helpers/inherits.js","../../../.yarn/cache/@babel-runtime-npm-7.15.3-6333c71362-2f0b8d2d4e.zip/node_modules/@babel/runtime/helpers/typeof.js","../../../.yarn/cache/@babel-runtime-npm-7.15.3-6333c71362-2f0b8d2d4e.zip/node_modules/@babel/runtime/helpers/assertThisInitialized.js","../../../.yarn/cache/@babel-runtime-npm-7.15.3-6333c71362-2f0b8d2d4e.zip/node_modules/@babel/runtime/helpers/possibleConstructorReturn.js","../../../.yarn/cache/@babel-runtime-npm-7.15.3-6333c71362-2f0b8d2d4e.zip/node_modules/@babel/runtime/helpers/getPrototypeOf.js","../src/components/restore-dom/restore-dom-manager.ts","../src/components/restore-dom/restore-dom.tsx","../src/components/editable.tsx","../src/hooks/use-focused.ts","../src/hooks/use-slate-selector.tsx","../src/components/slate.tsx","../src/hooks/use-editor.tsx","../src/hooks/use-slate-selection.tsx","../src/utils/lines.ts","../src/plugin/with-react.ts"],"sourcesContent":["function _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nmodule.exports = _defineProperty;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _arrayWithHoles(arr) {\n if (Array.isArray(arr)) return arr;\n}\n\nmodule.exports = _arrayWithHoles;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _iterableToArrayLimit(arr, i) {\n var _i = arr == null ? null : typeof Symbol !== \"undefined\" && arr[Symbol.iterator] || arr[\"@@iterator\"];\n\n if (_i == null) return;\n var _arr = [];\n var _n = true;\n var _d = false;\n\n var _s, _e;\n\n try {\n for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) {\n _arr.push(_s.value);\n\n if (i && _arr.length === i) break;\n }\n } catch (err) {\n _d = true;\n _e = err;\n } finally {\n try {\n if (!_n && _i[\"return\"] != null) _i[\"return\"]();\n } finally {\n if (_d) throw _e;\n }\n }\n\n return _arr;\n}\n\nmodule.exports = _iterableToArrayLimit;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _arrayLikeToArray(arr, len) {\n if (len == null || len > arr.length) len = arr.length;\n\n for (var i = 0, arr2 = new Array(len); i < len; i++) {\n arr2[i] = arr[i];\n }\n\n return arr2;\n}\n\nmodule.exports = _arrayLikeToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _unsupportedIterableToArray(o, minLen) {\n if (!o) return;\n if (typeof o === \"string\") return arrayLikeToArray(o, minLen);\n var n = Object.prototype.toString.call(o).slice(8, -1);\n if (n === \"Object\" && o.constructor) n = o.constructor.name;\n if (n === \"Map\" || n === \"Set\") return Array.from(o);\n if (n === \"Arguments\" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return arrayLikeToArray(o, minLen);\n}\n\nmodule.exports = _unsupportedIterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _nonIterableRest() {\n throw new TypeError(\"Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableRest;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayWithHoles = require(\"./arrayWithHoles.js\");\n\nvar iterableToArrayLimit = require(\"./iterableToArrayLimit.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableRest = require(\"./nonIterableRest.js\");\n\nfunction _slicedToArray(arr, i) {\n return arrayWithHoles(arr) || iterableToArrayLimit(arr, i) || unsupportedIterableToArray(arr, i) || nonIterableRest();\n}\n\nmodule.exports = _slicedToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\n\n for (i = 0; i < sourceKeys.length; i++) {\n key = sourceKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n target[key] = source[key];\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutPropertiesLoose;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var objectWithoutPropertiesLoose = require(\"./objectWithoutPropertiesLoose.js\");\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\n\n for (i = 0; i < sourceSymbolKeys.length; i++) {\n key = sourceSymbolKeys[i];\n if (excluded.indexOf(key) >= 0) continue;\n if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue;\n target[key] = source[key];\n }\n }\n\n return target;\n}\n\nmodule.exports = _objectWithoutProperties;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","import { createContext, useContext } from 'react'\nimport { Editor } from 'slate'\nimport { ReactEditor } from '../plugin/react-editor'\n\n/**\n * A React context for sharing the editor object.\n */\n\nexport const EditorContext = createContext<ReactEditor | null>(null)\n\n/**\n * Get the current editor object from the React context.\n */\n\nexport const useSlateStatic = (): Editor => {\n const editor = useContext(EditorContext)\n\n if (!editor) {\n throw new Error(\n `The \\`useSlateStatic\\` hook must be used inside the <Slate> component's context.`\n )\n }\n\n return editor\n}\n","import React from 'react'\n\nexport const REACT_MAJOR_VERSION = parseInt(React.version.split('.')[0], 10)\n\nexport const IS_IOS =\n typeof navigator !== 'undefined' &&\n typeof window !== 'undefined' &&\n /iPad|iPhone|iPod/.test(navigator.userAgent) &&\n !window.MSStream\n\nexport const IS_APPLE =\n typeof navigator !== 'undefined' && /Mac OS X/.test(navigator.userAgent)\n\nexport const IS_ANDROID =\n typeof navigator !== 'undefined' && /Android/.test(navigator.userAgent)\n\nexport const IS_FIREFOX =\n typeof navigator !== 'undefined' &&\n /^(?!.*Seamonkey)(?=.*Firefox).*/i.test(navigator.userAgent)\n\nexport const IS_WEBKIT =\n typeof navigator !== 'undefined' &&\n /AppleWebKit(?!.*Chrome)/i.test(navigator.userAgent)\n\n// \"modern\" Edge was released at 79.x\nexport const IS_EDGE_LEGACY =\n typeof navigator !== 'undefined' &&\n /Edge?\\/(?:[0-6][0-9]|[0-7][0-8])(?:\\.)/i.test(navigator.userAgent)\n\nexport const IS_CHROME =\n typeof navigator !== 'undefined' && /Chrome/i.test(navigator.userAgent)\n\n// Native `beforeInput` events don't work well with react on Chrome 75\n// and older, Chrome 76+ can use `beforeInput` though.\nexport const IS_CHROME_LEGACY =\n typeof navigator !== 'undefined' &&\n /Chrome?\\/(?:[0-7][0-5]|[0-6][0-9])(?:\\.)/i.test(navigator.userAgent)\n\nexport const IS_ANDROID_CHROME_LEGACY =\n IS_ANDROID &&\n typeof navigator !== 'undefined' &&\n /Chrome?\\/(?:[0-5]?\\d)(?:\\.)/i.test(navigator.userAgent)\n\n// Firefox did not support `beforeInput` until `v87`.\nexport const IS_FIREFOX_LEGACY =\n typeof navigator !== 'undefined' &&\n /^(?!.*Seamonkey)(?=.*Firefox\\/(?:[0-7][0-9]|[0-8][0-6])(?:\\.)).*/i.test(\n navigator.userAgent\n )\n\n// UC mobile browser\nexport const IS_UC_MOBILE =\n typeof navigator !== 'undefined' && /.*UCBrowser/.test(navigator.userAgent)\n\n// Wechat browser (not including mac wechat)\nexport const IS_WECHATBROWSER =\n typeof navigator !== 'undefined' &&\n /.*Wechat/.test(navigator.userAgent) &&\n !/.*MacWechat/.test(navigator.userAgent) // avoid lookbehind (buggy in safari < 16.4)\n\n// Check if DOM is available as React does internally.\n// https://github.com/facebook/react/blob/master/packages/shared/ExecutionEnvironment.js\nexport const CAN_USE_DOM = !!(\n typeof window !== 'undefined' &&\n typeof window.document !== 'undefined' &&\n typeof window.document.createElement !== 'undefined'\n)\n\n// COMPAT: Firefox/Edge Legacy don't support the `beforeinput` event\n// Chrome Legacy doesn't support `beforeinput` correctly\nexport const HAS_BEFORE_INPUT_SUPPORT =\n (!IS_CHROME_LEGACY || !IS_ANDROID_CHROME_LEGACY) &&\n !IS_EDGE_LEGACY &&\n // globalThis is undefined in older browsers\n typeof globalThis !== 'undefined' &&\n globalThis.InputEvent &&\n // @ts-ignore The `getTargetRanges` property isn't recognized.\n typeof globalThis.InputEvent.prototype.getTargetRanges === 'function'\n","import { Ancestor, Editor, Node, Range, RangeRef, Text } from 'slate'\nimport { Action } from '../hooks/android-input-manager/android-input-manager'\nimport { TextDiff } from './diff-text'\nimport { Key } from './key'\n\n/**\n * Two weak maps that allow us rebuild a path given a node. They are populated\n * at render time such that after a render occurs we can always backtrack.\n */\n\nexport const NODE_TO_INDEX: WeakMap<Node, number> = new WeakMap()\nexport const NODE_TO_PARENT: WeakMap<Node, Ancestor> = new WeakMap()\n\n/**\n * Weak maps that allow us to go between Slate nodes and DOM nodes. These\n * are used to resolve DOM event-related logic into Slate actions.\n */\nexport const EDITOR_TO_WINDOW: WeakMap<Editor, Window> = new WeakMap()\nexport const EDITOR_TO_ELEMENT: WeakMap<Editor, HTMLElement> = new WeakMap()\nexport const EDITOR_TO_PLACEHOLDER: WeakMap<Editor, string> = new WeakMap()\nexport const EDITOR_TO_PLACEHOLDER_ELEMENT: WeakMap<\n Editor,\n HTMLElement\n> = new WeakMap()\nexport const ELEMENT_TO_NODE: WeakMap<HTMLElement, Node> = new WeakMap()\nexport const NODE_TO_ELEMENT: WeakMap<Node, HTMLElement> = new WeakMap()\nexport const NODE_TO_KEY: WeakMap<Node, Key> = new WeakMap()\nexport const EDITOR_TO_KEY_TO_ELEMENT: WeakMap<\n Editor,\n WeakMap<Key, HTMLElement>\n> = new WeakMap()\n\n/**\n * Weak maps for storing editor-related state.\n */\n\nexport const IS_READ_ONLY: WeakMap<Editor, boolean> = new WeakMap()\nexport const IS_FOCUSED: WeakMap<Editor, boolean> = new WeakMap()\nexport const IS_COMPOSING: WeakMap<Editor, boolean> = new WeakMap()\n\nexport const EDITOR_TO_USER_SELECTION: WeakMap<\n Editor,\n RangeRef | null\n> = new WeakMap()\n\n/**\n * Weak map for associating the context `onChange` context with the plugin.\n */\n\nexport const EDITOR_TO_ON_CHANGE = new WeakMap<Editor, () => void>()\n\n/**\n * Weak maps for saving pending state on composition stage.\n */\n\nexport const EDITOR_TO_SCHEDULE_FLUSH: WeakMap<\n Editor,\n () => void\n> = new WeakMap()\n\nexport const EDITOR_TO_PENDING_INSERTION_MARKS: WeakMap<\n Editor,\n Partial<Text> | null\n> = new WeakMap()\n\nexport const EDITOR_TO_USER_MARKS: WeakMap<\n Editor,\n Partial<Text> | null\n> = new WeakMap()\n\n/**\n * Android input handling specific weak-maps\n */\n\nexport const EDITOR_TO_PENDING_DIFFS: WeakMap<\n Editor,\n TextDiff[]\n> = new WeakMap()\n\nexport const EDITOR_TO_PENDING_ACTION: WeakMap<\n Editor,\n Action | null\n> = new WeakMap()\n\nexport const EDITOR_TO_PENDING_SELECTION: WeakMap<\n Editor,\n Range | null\n> = new WeakMap()\n\nexport const EDITOR_TO_FORCE_RENDER: WeakMap<Editor, () => void> = new WeakMap()\n\n/**\n * Symbols.\n */\n\nexport const PLACEHOLDER_SYMBOL = (Symbol('placeholder') as unknown) as string\nexport const MARK_PLACEHOLDER_SYMBOL = (Symbol(\n 'mark-placeholder'\n) as unknown) as string\n","var arrayLikeToArray = require(\"./arrayLikeToArray.js\");\n\nfunction _arrayWithoutHoles(arr) {\n if (Array.isArray(arr)) return arrayLikeToArray(arr);\n}\n\nmodule.exports = _arrayWithoutHoles;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _iterableToArray(iter) {\n if (typeof Symbol !== \"undefined\" && iter[Symbol.iterator] != null || iter[\"@@iterator\"] != null) return Array.from(iter);\n}\n\nmodule.exports = _iterableToArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _nonIterableSpread() {\n throw new TypeError(\"Invalid attempt to spread non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.\");\n}\n\nmodule.exports = _nonIterableSpread;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var arrayWithoutHoles = require(\"./arrayWithoutHoles.js\");\n\nvar iterableToArray = require(\"./iterableToArray.js\");\n\nvar unsupportedIterableToArray = require(\"./unsupportedIterableToArray.js\");\n\nvar nonIterableSpread = require(\"./nonIterableSpread.js\");\n\nfunction _toConsumableArray(arr) {\n return arrayWithoutHoles(arr) || iterableToArray(arr) || unsupportedIterableToArray(arr) || nonIterableSpread();\n}\n\nmodule.exports = _toConsumableArray;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","/**\n * Types.\n */\n\n// COMPAT: This is required to prevent TypeScript aliases from doing some very\n// weird things for Slate's types with the same name as globals. (2019/11/27)\n// https://github.com/microsoft/TypeScript/issues/35002\nimport DOMNode = globalThis.Node\nimport DOMComment = globalThis.Comment\nimport DOMElement = globalThis.Element\nimport DOMText = globalThis.Text\nimport DOMRange = globalThis.Range\nimport DOMSelection = globalThis.Selection\nimport DOMStaticRange = globalThis.StaticRange\nimport { ReactEditor } from '../plugin/react-editor'\n\nexport {\n DOMNode,\n DOMComment,\n DOMElement,\n DOMText,\n DOMRange,\n DOMSelection,\n DOMStaticRange,\n}\n\ndeclare global {\n interface Window {\n Selection: typeof Selection['constructor']\n DataTransfer: typeof DataTransfer['constructor']\n Node: typeof Node['constructor']\n }\n}\n\nexport type DOMPoint = [Node, number]\n\n/**\n * Returns the host window of a DOM node\n */\n\nexport const getDefaultView = (value: any): Window | null => {\n return (\n (value && value.ownerDocument && value.ownerDocument.defaultView) || null\n )\n}\n\n/**\n * Check if a DOM node is a comment node.\n */\n\nexport const isDOMComment = (value: any): value is DOMComment => {\n return isDOMNode(value) && value.nodeType === 8\n}\n\n/**\n * Check if a DOM node is an element node.\n */\n\nexport const isDOMElement = (value: any): value is DOMElement => {\n return isDOMNode(value) && value.nodeType === 1\n}\n\n/**\n * Check if a value is a DOM node.\n */\n\nexport const isDOMNode = (value: any): value is DOMNode => {\n const window = getDefaultView(value)\n return !!window && value instanceof window.Node\n}\n\n/**\n * Check if a value is a DOM selection.\n */\n\nexport const isDOMSelection = (value: any): value is DOMSelection => {\n const window = value && value.anchorNode && getDefaultView(value.anchorNode)\n return !!window && value instanceof window.Selection\n}\n\n/**\n * Check if a DOM node is an element node.\n */\n\nexport const isDOMText = (value: any): value is DOMText => {\n return isDOMNode(value) && value.nodeType === 3\n}\n\n/**\n * Checks whether a paste event is a plaintext-only event.\n */\n\nexport const isPlainTextOnlyPaste = (event: ClipboardEvent) => {\n return (\n event.clipboardData &&\n event.clipboardData.getData('text/plain') !== '' &&\n event.clipboardData.types.length === 1\n )\n}\n\n/**\n * Normalize a DOM point so that it always refers to a text node.\n */\n\nexport const normalizeDOMPoint = (domPoint: DOMPoint): DOMPoint => {\n let [node, offset] = domPoint\n\n // If it's an element node, its offset refers to the index of its children\n // including comment nodes, so try to find the right text child node.\n if (isDOMElement(node) && node.childNodes.length) {\n let isLast = offset === node.childNodes.length\n let index = isLast ? offset - 1 : offset\n ;[node, index] = getEditableChildAndIndex(\n node,\n index,\n isLast ? 'backward' : 'forward'\n )\n // If the editable child found is in front of input offset, we instead seek to its end\n isLast = index < offset\n\n // If the node has children, traverse until we have a leaf node. Leaf nodes\n // can be either text nodes, or other void DOM nodes.\n while (isDOMElement(node) && node.childNodes.length) {\n const i = isLast ? node.childNodes.length - 1 : 0\n node = getEditableChild(node, i, isLast ? 'backward' : 'forward')\n }\n\n // Determine the new offset inside the text node.\n offset = isLast && node.textContent != null ? node.textContent.length : 0\n }\n\n // Return the node and offset.\n return [node, offset]\n}\n\n/**\n * Determines whether the active element is nested within a shadowRoot\n */\n\nexport const hasShadowRoot = (node: Node | null) => {\n let parent = node && node.parentNode\n while (parent) {\n if (parent.toString() === '[object ShadowRoot]') {\n return true\n }\n parent = parent.parentNode\n }\n return false\n}\n\n/**\n * Get the nearest editable child and index at `index` in a `parent`, preferring\n * `direction`.\n */\n\nexport const getEditableChildAndIndex = (\n parent: DOMElement,\n index: number,\n direction: 'forward' | 'backward'\n): [DOMNode, number] => {\n const { childNodes } = parent\n let child = childNodes[index]\n let i = index\n let triedForward = false\n let triedBackward = false\n\n // While the child is a comment node, or an element node with no children,\n // keep iterating to find a sibling non-void, non-comment node.\n while (\n isDOMComment(child) ||\n (isDOMElement(child) && child.childNodes.length === 0) ||\n (isDOMElement(child) && child.getAttribute('contenteditable') === 'false')\n ) {\n if (triedForward && triedBackward) {\n break\n }\n\n if (i >= childNodes.length) {\n triedForward = true\n i = index - 1\n direction = 'backward'\n continue\n }\n\n if (i < 0) {\n triedBackward = true\n i = index + 1\n direction = 'forward'\n continue\n }\n\n child = childNodes[i]\n index = i\n i += direction === 'forward' ? 1 : -1\n }\n\n return [child, index]\n}\n\n/**\n * Get the nearest editable child at `index` in a `parent`, preferring\n * `direction`.\n */\n\nexport const getEditableChild = (\n parent: DOMElement,\n index: number,\n direction: 'forward' | 'backward'\n): DOMNode => {\n const [child] = getEditableChildAndIndex(parent, index, direction)\n return child\n}\n\n/**\n * Get a plaintext representation of the content of a node, accounting for block\n * elements which get a newline appended.\n *\n * The domNode must be attached to the DOM.\n */\n\nexport const getPlainText = (domNode: DOMNode) => {\n let text = ''\n\n if (isDOMText(domNode) && domNode.nodeValue) {\n return domNode.nodeValue\n }\n\n if (isDOMElement(domNode)) {\n for (const childNode of Array.from(domNode.childNodes)) {\n text += getPlainText(childNode)\n }\n\n const display = getComputedStyle(domNode).getPropertyValue('display')\n\n if (display === 'block' || display === 'list' || domNode.tagName === 'BR') {\n text += '\\n'\n }\n }\n\n return text\n}\n\n/**\n * Get x-slate-fragment attribute from data-slate-fragment\n */\nconst catchSlateFragment = /data-slate-fragment=\"(.+?)\"/m\nexport const getSlateFragmentAttribute = (\n dataTransfer: DataTransfer\n): string | void => {\n const htmlData = dataTransfer.getData('text/html')\n const [, fragment] = htmlData.match(catchSlateFragment) || []\n return fragment\n}\n\n/**\n * Get the x-slate-fragment attribute that exist in text/html data\n * and append it to the DataTransfer object\n */\nexport const getClipboardData = (\n dataTransfer: DataTransfer,\n clipboardFormatKey = 'x-slate-fragment'\n): DataTransfer => {\n if (!dataTransfer.getData(`application/${clipboardFormatKey}`)) {\n const fragment = getSlateFragmentAttribute(dataTransfer)\n if (fragment) {\n const clipboardData = new DataTransfer()\n dataTransfer.types.forEach(type => {\n clipboardData.setData(type, dataTransfer.getData(type))\n })\n clipboardData.setData(`application/${clipboardFormatKey}`, fragment)\n return clipboardData\n }\n }\n return dataTransfer\n}\n\n/**\n * Check whether a mutation originates from a editable element inside the editor.\n */\n\nexport const isTrackedMutation = (\n editor: ReactEditor,\n mutation: MutationRecord,\n batch: MutationRecord[]\n): boolean => {\n const { target } = mutation\n if (isDOMElement(target) && target.matches('[contentEditable=\"false\"]')) {\n return false\n }\n\n const { document } = ReactEditor.getWindow(editor)\n if (document.contains(target)) {\n return ReactEditor.hasDOMNode(editor, target, { editable: true })\n }\n\n const parentMutation = batch.find(({ addedNodes, removedNodes }) => {\n for (const node of addedNodes) {\n if (node === target || node.contains(target)) {\n return true\n }\n }\n\n for (const node of removedNodes) {\n if (node === target || node.contains(target)) {\n return true\n }\n }\n })\n\n if (!parentMutation || parentMutation === mutation) {\n return false\n }\n\n // Target add/remove is tracked. Track the mutation if we track the parent mutation.\n return isTrackedMutation(editor, parentMutation, batch)\n}\n","function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nmodule.exports = _classCallCheck;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","/**\n * An auto-incrementing identifier for keys.\n */\n\nlet n = 0\n\n/**\n * A class that keeps track of a key string. We use a full class here because we\n * want to be able to use them as keys in `WeakMap` objects.\n */\n\nexport class Key {\n id: string\n\n constructor() {\n this.id = `${n++}`\n }\n}\n","import {\n BaseEditor,\n Editor,\n Element,\n Node,\n Path,\n Point,\n Range,\n Scrubber,\n Transforms,\n} from 'slate'\nimport { TextDiff } from '../utils/diff-text'\nimport {\n DOMElement,\n DOMNode,\n DOMPoint,\n DOMRange,\n DOMSelection,\n DOMStaticRange,\n DOMText,\n hasShadowRoot,\n isDOMElement,\n isDOMNode,\n isDOMSelection,\n normalizeDOMPoint,\n} from '../utils/dom'\nimport { IS_ANDROID, IS_CHROME, IS_FIREFOX } from '../utils/environment'\n\nimport { Key } from '../utils/key'\nimport {\n EDITOR_TO_ELEMENT,\n EDITOR_TO_KEY_TO_ELEMENT,\n EDITOR_TO_PENDING_DIFFS,\n EDITOR_TO_SCHEDULE_FLUSH,\n EDITOR_TO_WINDOW,\n ELEMENT_TO_NODE,\n IS_COMPOSING,\n IS_FOCUSED,\n IS_READ_ONLY,\n NODE_TO_INDEX,\n NODE_TO_KEY,\n NODE_TO_PARENT,\n} from '../utils/weak-maps'\n\n/**\n * A React and DOM-specific version of the `Editor` interface.\n */\n\nexport interface ReactEditor extends BaseEditor {\n hasEditableTarget: (\n editor: ReactEditor,\n target: EventTarget | null\n ) => target is DOMNode\n hasRange: (editor: ReactEditor, range: Range) => boolean\n hasSelectableTarget: (\n editor: ReactEditor,\n target: EventTarget | null\n ) => boolean\n hasTarget: (\n editor: ReactEditor,\n target: EventTarget | null\n ) => target is DOMNode\n insertData: (data: DataTransfer) => void\n insertFragmentData: (data: DataTransfer) => boolean\n insertTextData: (data: DataTransfer) => boolean\n isTargetInsideNonReadonlyVoid: (\n editor: ReactEditor,\n target: EventTarget | null\n ) => boolean\n setFragmentData: (\n data: DataTransfer,\n originEvent?: 'drag' | 'copy' | 'cut'\n ) => void\n}\n\nexport interface ReactEditorInterface {\n /**\n * Experimental and android specific: Get pending diffs\n */\n androidPendingDiffs: (editor: Editor) => TextDiff[] | undefined\n\n /**\n * Experimental and android specific: Flush all pending diffs and cancel composition at the next possible time.\n */\n androidScheduleFlush: (editor: Editor) => void\n\n /**\n * Blur the editor.\n */\n blur: (editor: ReactEditor) => void\n\n /**\n * Deselect the editor.\n */\n deselect: (editor: ReactEditor) => void\n\n /**\n * Find the DOM node that implements DocumentOrShadowRoot for the editor.\n */\n findDocumentOrShadowRoot: (editor: ReactEditor) => Document | ShadowRoot\n\n /**\n * Get the target range from a DOM `event`.\n */\n findEventRange: (editor: ReactEditor, event: any) => Range\n\n /**\n * Find a key for a Slate node.\n */\n findKey: (editor: ReactEditor, node: Node) => Key\n\n /**\n * Find the path of Slate node.\n */\n findPath: (editor: ReactEditor, node: Node) => Path\n\n /**\n * Focus the editor.\n */\n focus: (editor: ReactEditor) => void\n\n /**\n * Return the host window of the current editor.\n */\n getWindow: (editor: ReactEditor) => Window\n\n /**\n * Check if a DOM node is within the editor.\n */\n hasDOMNode: (\n editor: ReactEditor,\n target: DOMNode,\n options?: { editable?: boolean }\n ) => boolean\n\n /**\n * Check if the target is editable and in the editor.\n */\n hasEditableTarget: (\n editor: ReactEditor,\n target: EventTarget | null\n ) => target is DOMNode\n\n /**\n *\n */\n hasRange: (editor: ReactEditor, range: Range) => boolean\n\n /**\n * Check if the target can be selectable\n */\n hasSelectableTarget: (\n editor: ReactEditor,\n target: EventTarget | null\n ) => boolean\n\n /**\n * Check if the target is in the editor.\n */\n hasTarget: (\n editor: ReactEditor,\n target: EventTarget | null\n ) => target is DOMNode\n\n /**\n * Insert data from a `DataTransfer` into the editor.\n */\n insertData: (editor: ReactEditor, data: DataTransfer) => void\n\n /**\n * Insert fragment data from a `DataTransfer` into the editor.\n */\n insertFragmentData: (editor: ReactEditor, data: DataTransfer) => boolean\n\n /**\n * Insert text data from a `DataTransfer` into the editor.\n */\n insertTextData: (editor: ReactEditor, data: DataTransfer) => boolean\n\n /**\n * Check if the user is currently composing inside the editor.\n */\n isComposing: (editor: ReactEditor) => boolean\n\n /**\n * Check if the editor is focused.\n */\n isFocused: (editor: ReactEditor) => boolean\n\n /**\n * Check if the editor is in read-only mode.\n */\n isReadOnly: (editor: ReactEditor) => boolean\n\n /**\n * Check if the target is inside void and in an non-readonly editor.\n */\n isTargetInsideNonReadonlyVoid: (\n editor: ReactEditor,\n target: EventTarget | null\n ) => boolean\n\n /**\n * Sets data from the currently selected fragment on a `DataTransfer`.\n */\n setFragmentData: (\n editor: ReactEditor,\n data: DataTransfer,\n originEvent?: 'drag' | 'copy' | 'cut'\n ) => void\n\n /**\n * Find the native DOM element from a Slate node.\n */\n toDOMNode: (editor: ReactEditor, node: Node) => HTMLElement\n\n /**\n * Find a native DOM selection point from a Slate point.\n */\n toDOMPoint: (editor: ReactEditor, point: Point) => DOMPoint\n\n /**\n * Find a native DOM range from a Slate `range`.\n *\n * Notice: the returned range will always be ordinal regardless of the direction of Slate `range` due to DOM API limit.\n *\n * there is no way to create a reverse DOM Range using Range.setStart/setEnd\n * according to https://dom.spec.whatwg.org/#concept-range-bp-set.\n */\n toDOMRange: (editor: ReactEditor, range: Range) => DOMRange\n\n /**\n * Find a Slate node from a native DOM `element`.\n */\n toSlateNode: (editor: ReactEditor, domNode: DOMNode) => Node\n\n /**\n * Find a Slate point from a DOM selection's `domNode` and `domOffset`.\n */\n toSlatePoint: <T extends boolean>(\n editor: ReactEditor,\n domPoint: DOMPoint,\n options: {\n exactMatch: boolean\n suppressThrow: T\n }\n ) => T extends true ? Point | null : Point\n\n /**\n * Find a Slate range from a DOM range or selection.\n */\n toSlateRange: <T extends boolean>(\n editor: ReactEditor,\n domRange: DOMRange | DOMStaticRange | DOMSelection,\n options: {\n exactMatch: boolean\n suppressThrow: T\n }\n ) => T extends true ? Range | null : Range\n}\n\n// eslint-disable-next-line no-redeclare\nexport const ReactEditor: ReactEditorInterface = {\n androidPendingDiffs: editor => EDITOR_TO_PENDING_DIFFS.get(editor),\n\n androidScheduleFlush: editor => {\n EDITOR_TO_SCHEDULE_FLUSH.get(editor)?.()\n },\n\n blur: editor => {\n const el = ReactEditor.toDOMNode(editor, editor)\n const root = ReactEditor.findDocumentOrShadowRoot(editor)\n IS_FOCUSED.set(editor, false)\n\n if (root.activeElement === el) {\n el.blur()\n }\n },\n\n deselect: editor => {\n const { selection } = editor\n const root = ReactEditor.findDocumentOrShadowRoot(editor)\n const domSelection = root.getSelection()\n\n if (domSelection && domSelection.rangeCount > 0) {\n domSelection.removeAllRanges()\n }\n\n if (selection) {\n Transforms.deselect(editor)\n }\n },\n\n findDocumentOrShadowRoot: editor => {\n const el = ReactEditor.toDOMNode(editor, editor)\n const root = el.getRootNode()\n\n if (\n (root instanceof Document || root instanceof ShadowRoot) &&\n root.getSelection != null\n ) {\n return root\n }\n\n return el.ownerDocument\n },\n\n findEventRange: (editor, event) => {\n if ('nativeEvent' in event) {\n event = event.nativeEvent\n }\n\n const { clientX: x, clientY: y, target } = event\n\n if (x == null || y == null) {\n throw new Error(`Cannot resolve a Slate range from a DOM event: ${event}`)\n }\n\n const node = ReactEditor.toSlateNode(editor, event.target)\n const path = ReactEditor.findPath(editor, node)\n\n // If the drop target is inside a void node, move it into either the\n // next or previous node, depending on which side the `x` and `y`\n // coordinates are closest to.\n if (Element.isElement(node) && Editor.isVoid(editor, node)) {\n const rect = target.getBoundingClientRect()\n const isPrev = editor.isInline(node)\n ? x - rect.left < rect.left + rect.width - x\n : y - rect.top < rect.top + rect.height - y\n\n const edge = Editor.point(editor, path, {\n edge: isPrev ? 'start' : 'end',\n })\n const point = isPrev\n ? Editor.before(editor, edge)\n : Editor.after(editor, edge)\n\n if (point) {\n const range = Editor.range(editor, point)\n return range\n }\n }\n\n // Else resolve a range from the caret position where the drop occured.\n let domRange\n const { document } = ReactEditor.getWindow(editor)\n\n // COMPAT: In Firefox, `caretRangeFromPoint` doesn't exist. (2016/07/25)\n if (document.caretRangeFromPoint) {\n domRange = document.caretRangeFromPoint(x, y)\n } else {\n const position = document.caretPositionFromPoint(x, y)\n\n if (position) {\n domRange = document.createRange()\n domRange.setStart(position.offsetNode, position.offset)\n domRange.setEnd(position.offsetNode, position.offset)\n }\n }\n\n if (!domRange) {\n throw new Error(`Cannot resolve a Slate range from a DOM event: ${event}`)\n }\n\n // Resolve a Slate range from the DOM range.\n const range = ReactEditor.toSlateRange(editor, domRange, {\n exactMatch: false,\n suppressThrow: false,\n })\n return range\n },\n\n findKey: (editor, node) => {\n let key = NODE_TO_KEY.get(node)\n\n if (!key) {\n key = new Key()\n NODE_TO_KEY.set(node, key)\n }\n\n return key\n },\n\n findPath: (editor, node) => {\n const path: Path = []\n let child = node\n\n while (true) {\n const parent = NODE_TO_PARENT.get(child)\n\n if (parent == null) {\n if (Editor.isEditor(child)) {\n return path\n } else {\n break\n }\n }\n\n const i = NODE_TO_INDEX.get(child)\n\n if (i == null) {\n break\n }\n\n path.unshift(i)\n child = parent\n }\n\n throw new Error(\n `Unable to find the path for Slate node: ${Scrubber.stringify(node)}`\n )\n },\n\n focus: editor => {\n const el = ReactEditor.toDOMNode(editor, editor)\n const root = ReactEditor.findDocumentOrShadowRoot(editor)\n IS_FOCUSED.set(editor, true)\n\n if (root.activeElement !== el) {\n if (editor.selection && root instanceof Document) {\n const domSelection = root.getSelection()\n const domRange = ReactEditor.toDOMRange(editor, editor.selection)\n domSelection?.removeAllRanges()\n domSelection?.addRange(domRange)\n }\n el.focus({ preventScroll: true })\n }\n },\n\n getWindow: editor => {\n const window = EDITOR_TO_WINDOW.get(editor)\n if (!window) {\n throw new Error('Unable to find a host window element for this editor')\n }\n return window\n },\n\n hasDOMNode: (editor, target, options = {}) => {\n const { editable = false } = options\n const editorEl = ReactEditor.toDOMNode(editor, editor)\n let targetEl\n\n // COMPAT: In Firefox, reading `target.nodeType` will throw an error if\n // target is originating from an internal \"restricted\" element (e.g. a\n // stepper arrow on a number input). (2018/05/04)\n // https://github.com/ianstormtaylor/slate/issues/1819\n try {\n targetEl = (isDOMElement(target)\n ? target\n : target.parentElement) as HTMLElement\n } catch (err) {\n if (\n !err.message.includes('Permission denied to access property \"nodeType\"')\n ) {\n throw err\n }\n }\n\n if (!targetEl) {\n return false\n }\n\n return (\n targetEl.closest(`[data-slate-editor]`) === editorEl &&\n (!editable || targetEl.isContentEditable\n ? true\n : (typeof targetEl.isContentEditable === 'boolean' && // isContentEditable exists only on HTMLElement, and on other nodes it will be undefined\n // this is the core logic that lets you know you got the right editor.selection instead of null when editor is contenteditable=\"false\"(readOnly)\n targetEl.closest('[contenteditable=\"false\"]') === editorEl) ||\n !!targetEl.getAttribute('data-slate-zero-width'))\n )\n },\n\n hasEditableTarget: (editor, target): target is DOMNode =>\n isDOMNode(target) &&\n ReactEditor.hasDOMNode(editor, target, { editable: true }),\n\n hasRange: (editor, range) => {\n const { anchor, focus } = range\n return (\n Editor.hasPath(editor, anchor.path) && Editor.hasPath(editor, focus.path)\n )\n },\n\n hasSelectableTarget: (editor, target) =>\n ReactEditor.hasEditableTarget(editor, target) ||\n ReactEditor.isTargetInsideNonReadonlyVoid(editor, target),\n\n hasTarget: (editor, target): target is DOMNode =>\n isDOMNode(target) && ReactEditor.hasDOMNode(editor, target),\n\n insertData: (editor, data) => {\n editor.insertData(data)\n },\n\n insertFragmentData: (editor, data) => editor.insertFragmentData(data),\n\n insertTextData: (editor, data) => editor.insertTextData(data),\n\n isComposing: editor => {\n return !!IS_COMPOSING.get(editor)\n },\n\n isFocused: editor => !!IS_FOCUSED.get(editor),\n\n isReadOnly: editor => !!IS_READ_ONLY.get(editor),\n\n isTargetInsideNonReadonlyVoid: (editor, target) => {\n if (IS_READ_ONLY.get(editor)) return false\n\n const slateNode =\n ReactEditor.hasTarget(editor, target) &&\n ReactEditor.toSlateNode(editor, target)\n return Element.isElement(slateNode) && Editor.isVoid(editor, slateNode)\n },\n\n setFragmentData: (editor, data, originEvent) =>\n editor.setFragmentData(data, originEvent),\n\n toDOMNode: (editor, node) => {\n const KEY_TO_ELEMENT = EDITOR_TO_KEY_TO_ELEMENT.get(editor)\n const domNode = Editor.isEditor(node)\n ? EDITOR_TO_ELEMENT.get(editor)\n : KEY_TO_ELEMENT?.get(ReactEditor.findKey(editor, node))\n\n if (!domNode) {\n throw new Error(\n `Cannot resolve a DOM node from Slate node: ${Scrubber.stringify(node)}`\n )\n }\n\n return domNode\n },\n\n toDOMPoint: (editor, point) => {\n const [node] = Editor.node(editor, point.path)\n const el = ReactEditor.toDOMNode(editor, node)\n let domPoint: DOMPoint | undefined\n\n // If we're inside a void node, force the offset to 0, otherwise the zero\n // width spacing character will result in an incorrect offset of 1\n if (Editor.void(editor, { at: point })) {\n point = { path: point.path, offset: 0 }\n }\n\n // For each leaf, we need to isolate its content, which means filtering\n // to its direct text and zero-width spans. (We have to filter out any\n // other siblings that may have been rendered alongside them.)\n const selector = `[data-slate-string], [data-slate-zero-width]`\n const texts = Array.from(el.querySelectorAll(selector))\n let start = 0\n\n for (let i = 0; i < texts.length; i++) {\n const text = texts[i]\n const domNode = text.childNodes[0] as HTMLElement\n\n if (domNode == null || domNode.textContent == null) {\n continue\n }\n\n const { length } = domNode.textContent\n const attr = text.getAttribute('data-slate-length')\n const trueLength = attr == null ? length : parseInt(attr, 10)\n const end = start + trueLength\n\n // Prefer putting the selection inside the mark placeholder to ensure\n // composed text is displayed with the correct marks.\n const nextText = texts[i + 1]\n if (\n point.offset === end &&\n nextText?.hasAttribute('data-slate-mark-placeholder')\n ) {\n const domText = nextText.childNodes[0]\n\n domPoint = [\n // COMPAT: If we don't explicity set the dom point to be on the actual\n // dom text element, chrome will put the selection behind the actual dom\n // text element, causing domRange.getBoundingClientRect() calls on a collapsed\n // selection to return incorrect zero values (https://bugs.chromium.org/p/chromium/issues/detail?id=435438)\n // which will cause issues when scrolling to it.\n domText instanceof DOMText ? domText : nextText,\n nextText.textContent?.startsWith('\\uFEFF') ? 1 : 0,\n ]\n break\n }\n\n if (point.offset <= end) {\n const offset = Math.min(length, Math.max(0, point.offset - start))\n domPoint = [domNode, offset]\n break\n }\n\n start = end\n }\n\n if (!domPoint) {\n throw new Error(\n `Cannot resolve a DOM point from Slate point: ${Scrubber.stringify(\n point\n )}`\n )\n }\n\n return domPoint\n },\n\n toDOMRange: (editor, range) => {\n const { anchor, focus } = range\n const isBackward = Range.isBackward(range)\n const domAnchor = ReactEditor.toDOMPoint(editor, anchor)\n const domFocus = Range.isCollapsed(range)\n ? domAnchor\n : ReactEditor.toDOMPoint(editor, focus)\n\n const window = ReactEditor.getWindow(editor)\n const domRange = window.document.createRange()\n const [startNode, startOffset] = isBackward ? domFocus : domAnchor\n const [endNode, endOffset] = isBackward ? domAnchor : domFocus\n\n // A slate Point at zero-width Leaf always has an offset of 0 but a native DOM selection at\n // zero-width node has an offset of 1 so we have to check if we are in a zero-width node and\n // adjust the offset accordingly.\n const startEl = (isDOMElement(startNode)\n ? startNode\n : startNode.parentElement) as HTMLElement\n const isStartAtZeroWidth = !!startEl.getAttribute('data-slate-zero-width')\n const endEl = (isDOMElement(endNode)\n ? endNode\n : endNode.parentElement) as HTMLElement\n const isEndAtZeroWidth = !!endEl.getAttribute('data-slate-zero-width')\n\n domRange.setStart(startNode, isStartAtZeroWidth ? 1 : startOffset)\n domRange.setEnd(endNode, isEndAtZeroWidth ? 1 : endOffset)\n return domRange\n },\n\n toSlateNode: (editor, domNode) => {\n let domEl = isDOMElement(domNode) ? domNode : domNode.parentElement\n\n if (domEl && !domEl.hasAttribute('data-slate-node')) {\n domEl = domEl.closest(`[data-slate-node]`)\n }\n\n const node = domEl ? ELEMENT_TO_NODE.get(domEl as HTMLElement) : null\n\n if (!node) {\n throw new Error(`Cannot resolve a Slate node from DOM node: ${domEl}`)\n }\n\n return node\n },\n\n toSlatePoint: <T extends boolean>(\n editor: ReactEditor,\n domPoint: DOMPoint,\n options: {\n exactMatch: boolean\n suppressThrow: T\n }\n ): T extends true ? Point | null : Point => {\n const { exactMatch, suppressThrow } = options\n const [nearestNode, nearestOffset] = exactMatch\n ? domPoint\n : normalizeDOMPoint(domPoint)\n const parentNode = nearestNode.parentNode as DOMElement\n let textNode: DOMElement | null = null\n let offset = 0\n\n if (parentNode) {\n const editorEl = ReactEditor.toDOMNode(editor, editor)\n const potentialVoidNode = parentNode.closest('[data-slate-void=\"true\"]')\n // Need to ensure that the closest void node is actually a void node\n // within this editor, and not a void node within some parent editor. This can happen\n // if this editor is within a void node of another editor (\"nested editors\", like in\n // the \"Editable Voids\" example on the docs site).\n const voidNode =\n potentialVoidNode && editorEl.contains(potentialVoidNode)\n ? potentialVoidNode\n : null\n let leafNode = parentNode.closest('[data-slate-leaf]')\n let domNode: DOMElement | null = null\n\n // Calculate how far into the text node the `nearestNode` is, so that we\n // can determine what the offset relative to the text node is.\n if (leafNode) {\n textNode = leafNode.closest('[data-slate-node=\"text\"]')\n\n if (textNode) {\n const window = ReactEditor.getWindow(editor)\n const range = window.document.createRange()\n range.setStart(textNode, 0)\n range.setEnd(nearestNode, nearestOffset)\n\n const contents = range.cloneContents()\n const removals = [\n ...Array.prototype.slice.call(\n contents.querySelectorAll('[data-slate-zero-width]')\n ),\n ...Array.prototype.slice.call(\n contents.querySelectorAll('[contenteditable=false]')\n ),\n ]\n\n removals.forEach(el => {\n // COMPAT: While composing at the start of a text node, some keyboards put\n // the text content inside the zero width space.\n if (\n IS_ANDROID &&\n !exactMatch &&\n el.hasAttribute('data-slate-zero-width') &&\n el.textContent.length > 0 &&\n el.textContext !== '\\uFEFF'\n ) {\n if (el.textContent.startsWith('\\uFEFF')) {\n el.textContent = el.textContent.slice(1)\n }\n\n return\n }\n\n el!.parentNode!.removeChild(el)\n })\n\n // COMPAT: Edge has a bug where Range.prototype.toString() will\n // convert \\n into \\r\\n. The bug causes a loop when slate-react\n // attempts to reposition its cursor to match the native position. Use\n // textContent.length instead.\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/10291116/\n offset = contents.textContent!.length\n domNode = textNode\n }\n } else if (voidNode) {\n // For void nodes, the element with the offset key will be a cousin, not an\n // ancestor, so find it by going down from the nearest void parent and taking the\n // first one that isn't inside a nested editor.\n const leafNodes = voidNode.querySelectorAll('[data-slate-leaf]')\n for (let index = 0; index < leafNodes.length; index++) {\n const current = leafNodes[index]\n if (ReactEditor.hasDOMNode(editor, current)) {\n leafNode = current\n break\n }\n }\n\n // COMPAT: In read-only editors the leaf is not rendered.\n if (!leafNode) {\n offset = 1\n } else {\n textNode = leafNode.closest('[data-slate-node=\"text\"]')!\n domNode = leafNode\n offset = domNode.textContent!.length\n domNode.querySelectorAll('[data-slate-zero-width]').forEach(el => {\n offset -= el.textContent!.length\n })\n }\n }\n\n if (\n domNode &&\n offset === domNode.textContent!.length &&\n // COMPAT: Android IMEs might remove the zero width space while composing,\n // and we don't add it for line-breaks.\n IS_ANDROID &&\n domNode.getAttribute('data-slate-zero-width') === 'z' &&\n domNode.textContent?.startsWith('\\uFEFF') &&\n // COMPAT: If the parent node is a Slate zero-width space, editor is\n // because the text node should have no characters. However, during IME\n // composition the ASCII characters will be prepended to the zero-width\n // space, so subtract 1 from the offset to account for the zero-width\n // space character.\n (parentNode.hasAttribute('data-slate-zero-width') ||\n // COMPAT: In Firefox, `range.cloneContents()` returns an extra trailing '\\n'\n // when the document ends with a new-line character. This results in the offset\n // length being off by one, so we need to subtract one to account for this.\n (IS_FIREFOX && domNode.textContent?.endsWith('\\n\\n')))\n ) {\n offset--\n }\n }\n\n if (IS_ANDROID && !textNode && !exactMatch) {\n const node = parentNode.hasAttribute('data-slate-node')\n ? parentNode\n : parentNode.closest('[data-slate-node]')\n\n if (node && ReactEditor.hasDOMNode(editor, node, { editable: true })) {\n const slateNode = ReactEditor.toSlateNode(editor, node)\n let { path, offset } = Editor.start(\n editor,\n ReactEditor.findPath(editor, slateNode)\n )\n\n if (!node.querySelector('[data-slate-leaf]')) {\n offset = nearestOffset\n }\n\n return { path, offset } as T extends true ? Point | null : Point\n }\n }\n\n if (!textNode) {\n if (suppressThrow) {\n return null as T extends true ? Point | null : Point\n }\n throw new Error(\n `Cannot resolve a Slate point from DOM point: ${domPoint}`\n )\n }\n\n // COMPAT: If someone is clicking from one Slate editor into another,\n // the select event fires twice, once for the old editor's `element`\n // first, and then afterwards for the correct `element`. (2017/03/03)\n const slateNode = ReactEditor.toSlateNode(editor, textNode!)\n const path = ReactEditor.findPath(editor, slateNode)\n return { path, offset } as T extends true ? Point | null : Point\n },\n\n toSlateRange: <T extends boolean>(\n editor: ReactEditor,\n domRange: DOMRange | DOMStaticRange | DOMSelection,\n options: {\n exactMatch: boolean\n suppressThrow: T\n }\n ): T extends true ? Range | null : Range => {\n const { exactMatch, suppressThrow } = options\n const el = isDOMSelection(domRange)\n ? domRange.anchorNode\n : domRange.startContainer\n let anchorNode\n let anchorOffset\n let focusNode\n let focusOffset\n let isCollapsed\n\n if (el) {\n if (isDOMSelection(domRange)) {\n // COMPAT: In firefox the normal seletion way does not work\n // (https://github.com/ianstormtaylor/slate/pull/5486#issue-1820720223)\n if (IS_FIREFOX && domRange.rangeCount > 1) {\n focusNode = domRange.focusNode // Focus node works fine\n const firstRange = domRange.getRangeAt(0)\n const lastRange = domRange.getRangeAt(domRange.rangeCount - 1)\n\n // Here we are in the contenteditable mode of a table in firefox\n if (\n focusNode instanceof HTMLTableRowElement &&\n firstRange.startContainer instanceof HTMLTableRowElement &&\n lastRange.startContainer instanceof HTMLTableRowElement\n ) {\n // HTMLElement, becouse Element is a slate element\n function getLastChildren(element: HTMLElement): HTMLElement {\n if (element.childElementCount > 0) {\n return getLastChildren(<HTMLElement>element.children[0])\n } else {\n return element\n }\n }\n\n const firstNodeRow = <HTMLTableRowElement>firstRange.startContainer\n const lastNodeRow = <HTMLTableRowElement>lastRange.startContainer\n\n // This should never fail as \"The HTMLElement interface represents any HTML element.\"\n const firstNode = getLastChildren(\n <HTMLElement>firstNodeRow.children[firstRange.startOffset]\n )\n const lastNode = getLastChildren(\n <HTMLElement>lastNodeRow.children[lastRange.startOffset]\n )\n\n // Zero, as we allways take the right one as the anchor point\n focusOffset = 0\n\n if (lastNode.childNodes.length > 0) {\n anchorNode = lastNode.childNodes[0]\n } else {\n anchorNode = lastNode\n }\n\n if (firstNode.childNodes.length > 0) {\n focusNode = firstNode.childNodes[0]\n } else {\n focusNode = firstNode\n }\n\n if (lastNode instanceof HTMLElement) {\n anchorOffset = (<HTMLElement>lastNode).innerHTML.length\n } else {\n // Fallback option\n anchorOffset = 0\n }\n } else {\n // This is the read only mode of a firefox table\n // Right to left\n if (firstRange.startContainer === focusNode) {\n anchorNode = lastRange.endContainer\n anchorOffset = lastRange.endOffset\n focusOffset = firstRange.startOffset\n } else {\n // Left to right\n anchorNode = firstRange.startContainer\n anchorOffset = firstRange.endOffset\n focusOffset = lastRange.startOffset\n }\n }\n } else {\n anchorNode = domRange.anchorNode\n anchorOffset = domRange.anchorOffset\n focusNode = domRange.focusNode\n focusOffset = domRange.focusOffset\n }\n\n // COMPAT: There's a bug in chrome that always returns `true` for\n // `isCollapsed` for a Selection that comes from a ShadowRoot.\n // (2020/08/08)\n // https://bugs.chromium.org/p/chromium/issues/detail?id=447523\n // IsCollapsed might not work in firefox, but this will\n if ((IS_CHROME && hasShadowRoot(anchorNode)) || IS_FIREFOX) {\n isCollapsed =\n domRange.anchorNode === domRange.focusNode &&\n domRange.anchorOffset === domRange.focusOffset\n } else {\n isCollapsed = domRange.isCollapsed\n }\n } else {\n anchorNode = domRange.startContainer\n anchorOffset = domRange.startOffset\n focusNode = domRange.endContainer\n focusOffset = domRange.endOffset\n isCollapsed = domRange.collapsed\n }\n }\n\n if (\n anchorNode == null ||\n focusNode == null ||\n anchorOffset == null ||\n focusOffset == null\n ) {\n throw new Error(\n `Cannot resolve a Slate range from DOM range: ${domRange}`\n )\n }\n\n // COMPAT: Triple-clicking a word in chrome will sometimes place the focus\n // inside a `contenteditable=\"false\"` DOM node following the word, which\n // will cause `toSlatePoint` to throw an error. (2023/03/07)\n if (\n 'getAttribute' in focusNode &&\n (focusNode as HTMLElement).getAttribute('contenteditable') === 'false' &&\n (focusNode as HTMLElement).getAttribute('data-slate-void') !== 'true'\n ) {\n focusNode = anchorNode\n focusOffset = anchorNode.textContent?.length || 0\n }\n\n const anchor = ReactEditor.toSlatePoint(\n editor,\n [anchorNode, anchorOffset],\n {\n exactMatch,\n suppressThrow,\n }\n )\n if (!anchor) {\n return null as T extends true ? Range | null : Range\n }\n\n const focus = isCollapsed\n ? anchor\n : ReactEditor.toSlatePoint(editor, [focusNode, focusOffset], {\n exactMatch,\n suppressThrow,\n })\n if (!focus) {\n return null as T extends true ? Range | null : Range\n }\n\n let range: Range = { anchor: anchor as Point, focus: focus as Point }\n // if the selection is a hanging range that ends in a void\n // and the DOM focus is an Element\n // (meaning that the selection ends before the element)\n // unhang the range to avoid mistakenly including the void\n if (\n Range.isExpanded(range) &&\n Range.isForward(range) &&\n isDOMElement(focusNode) &&\n Editor.void(editor, { at: range.focus, mode: 'highest' })\n ) {\n range = Editor.unhangRange(editor, range, { voids: true })\n }\n\n return (range as unknown) as T extends true ? Range | null : Range\n },\n}\n","import {\n Editor,\n Node,\n Operation,\n Path,\n Point,\n Range,\n Text,\n Element,\n} from 'slate'\nimport { EDITOR_TO_PENDING_DIFFS } from './weak-maps'\n\nexport type StringDiff = {\n start: number\n end: number\n text: string\n}\n\nexport type TextDiff = {\n id: number\n path: Path\n diff: StringDiff\n}\n\n/**\n * Check whether a text diff was applied in a way we can perform the pending action on /\n * recover the pending selection.\n */\nexport function verifyDiffState(editor: Editor, textDiff: TextDiff): boolean {\n const { path, diff } = textDiff\n if (!Editor.hasPath(editor, path)) {\n return false\n }\n\n const node = Node.get(editor, path)\n if (!Text.isText(node)) {\n return false\n }\n\n if (diff.start !== node.text.length || diff.text.length === 0) {\n return (\n node.text.slice(diff.start, diff.start + diff.text.length) === diff.text\n )\n }\n\n const nextPath = Path.next(path)\n if (!Editor.hasPath(editor, nextPath)) {\n return false\n }\n\n const nextNode = Node.get(editor, nextPath)\n return Text.isText(nextNode) && nextNode.text.startsWith(diff.text)\n}\n\nexport function applyStringDiff(text: string, ...diffs: StringDiff[]) {\n return diffs.reduce(\n (text, diff) =>\n text.slice(0, diff.start) + diff.text + text.slice(diff.end),\n text\n )\n}\n\nfunction longestCommonPrefixLength(str: string, another: string) {\n const length = Math.min(str.length, another.length)\n\n for (let i = 0; i < length; i++) {\n if (str.charAt(i) !== another.charAt(i)) {\n return i\n }\n }\n\n return length\n}\n\nfunction longestCommonSuffixLength(\n str: string,\n another: string,\n max: number\n): number {\n const length = Math.min(str.length, another.length, max)\n\n for (let i = 0; i < length; i++) {\n if (\n str.charAt(str.length - i - 1) !== another.charAt(another.length - i - 1)\n ) {\n return i\n }\n }\n\n return length\n}\n\n/**\n * Remove redundant changes from the diff so that it spans the minimal possible range\n */\nexport function normalizeStringDiff(targetText: string, diff: StringDiff) {\n const { start, end, text } = diff\n const removedText = targetText.slice(start, end)\n\n const prefixLength = longestCommonPrefixLength(removedText, text)\n const max = Math.min(\n removedText.length - prefixLength,\n text.length - prefixLength\n )\n const suffixLength = longestCommonSuffixLength(removedText, text, max)\n\n const normalized: StringDiff = {\n start: start + prefixLength,\n end: end - suffixLength,\n text: text.slice(prefixLength, text.length - suffixLength),\n }\n\n if (normalized.start === normalized.end && normalized.text.length === 0) {\n return null\n }\n\n return normalized\n}\n\n/**\n * Return a string diff that is equivalent to applying b after a spanning the range of\n * both changes\n */\nexport function mergeStringDiffs(\n targetText: string,\n a: StringDiff,\n b: StringDiff\n): StringDiff | null {\n const start = Math.min(a.start, b.start)\n const overlap = Math.max(\n 0,\n Math.min(a.start + a.text.length, b.end) - b.start\n )\n\n const applied = applyStringDiff(targetText, a, b)\n const sliceEnd = Math.max(\n b.start + b.text.length,\n a.start +\n a.text.length +\n (a.start + a.text.length > b.start ? b.text.length : 0) -\n overlap\n )\n\n const text = applied.slice(start, sliceEnd)\n const end = Math.max(a.end, b.end - a.text.length + (a.end - a.start))\n return normalizeStringDiff(targetText, { start, end, text })\n}\n\n/**\n * Get the slate range the text diff spans.\n */\nexport function targetRange(textDiff: TextDiff): Range {\n const { path, diff } = textDiff\n return {\n anchor: { path, offset: diff.start },\n focus: { path, offset: diff.end },\n }\n}\n\n/**\n * Normalize a 'pending point' a.k.a a point based on the dom state before applying\n * the pending diffs. Since the pending diffs might have been inserted with different\n * marks we have to 'walk' the offset from the starting position to ensure we still\n * have a valid point inside the document\n */\nexport function normalizePoint(editor: Editor, point: Point): Point | null {\n let { path, offset } = point\n if (!Editor.hasPath(editor, path)) {\n return null\n }\n\n let leaf = Node.get(editor, path)\n if (!Text.isText(leaf)) {\n return null\n }\n\n const parentBlock = Editor.above(editor, {\n match: n => Element.isElement(n) && Editor.isBlock(editor, n),\n at: path,\n })\n\n if (!parentBlock) {\n return null\n }\n\n while (offset > leaf.text.length) {\n const entry = Editor.next(editor, { at: path, match: Text.isText })\n if (!entry || !Path.isDescendant(entry[1], parentBlock[1])) {\n return null\n }\n\n offset -= leaf.text.length\n leaf = entry[0]\n path = entry[1]\n }\n\n return { path, offset }\n}\n\n/**\n * Normalize a 'pending selection' to ensure it's valid in the current document state.\n */\nexport function normalizeRange(editor: Editor, range: Range): Range | null {\n const anchor = normalizePoint(editor, range.anchor)\n if (!anchor) {\n return null\n }\n\n if (Range.isCollapsed(range)) {\n return { anchor, focus: anchor }\n }\n\n const focus = normalizePoint(editor, range.focus)\n if (!focus) {\n return null\n }\n\n return { anchor, focus }\n}\n\nexport function transformPendingPoint(\n editor: Editor,\n point: Point,\n op: Operation\n): Point | null {\n const pendingDiffs = EDITOR_TO_PENDING_DIFFS.get(editor)\n const textDiff = pendingDiffs?.find(({ path }) =>\n Path.equals(path, point.path)\n )\n\n if (!textDiff || point.offset <= textDiff.diff.start) {\n return Point.transform(point, op, { affinity: 'backward' })\n }\n\n const { diff } = textDiff\n // Point references location inside the diff => transform the point based on the location\n // the diff will be applied to and add the offset inside the diff.\n if (point.offset <= diff.start + diff.text.length) {\n const anchor = { path: point.path, offset: diff.start }\n const transformed = Point.transform(anchor, op, {\n affinity: 'backward',\n })\n\n if (!transformed) {\n return null\n }\n\n return {\n path: transformed.path,\n offset: transformed.offset + point.offset - diff.start,\n }\n }\n\n // Point references location after the diff\n const anchor = {\n path: point.path,\n offset: point.offset - diff.text.length + diff.end - diff.start,\n }\n const transformed = Point.transform(anchor, op, {\n affinity: 'backward',\n })\n if (!transformed) {\n return null\n }\n\n if (\n op.type === 'split_node' &&\n Path.equals(op.path, point.path) &&\n anchor.offset < op.position &&\n diff.start < op.position\n ) {\n return transformed\n }\n\n return {\n path: transformed.path,\n offset: transformed.offset + diff.text.length - diff.end + diff.start,\n }\n}\n\nexport function transformPendingRange(\n editor: Editor,\n range: Range,\n op: Operation\n): Range | null {\n const anchor = transformPendingPoint(editor, range.anchor, op)\n if (!anchor) {\n return null\n }\n\n if (Range.isCollapsed(range)) {\n return { anchor, focus: anchor }\n }\n\n const focus = transformPendingPoint(editor, range.focus, op)\n if (!focus) {\n return null\n }\n\n return { anchor, focus }\n}\n\nexport function transformTextDiff(\n textDiff: TextDiff,\n op: Operation\n): TextDiff | null {\n const { path, diff, id } = textDiff\n\n switch (op.type) {\n case 'insert_text': {\n if (!Path.equals(op.path, path) || op.offset >= diff.end) {\n return textDiff\n }\n\n if (op.offset <= diff.start) {\n return {\n diff: {\n start: op.text.length + diff.start,\n end: op.text.length + diff.end,\n text: diff.text,\n },\n id,\n path,\n }\n }\n\n return {\n diff: {\n start: diff.start,\n end: diff.end + op.text.length,\n text: diff.text,\n },\n id,\n path,\n }\n }\n case 'remove_text': {\n if (!Path.equals(op.path, path) || op.offset >= diff.end) {\n return textDiff\n }\n\n if (op.offset + op.text.length <= diff.start) {\n return {\n diff: {\n start: diff.start - op.text.length,\n end: diff.end - op.text.length,\n text: diff.text,\n },\n id,\n path,\n }\n }\n\n return {\n diff: {\n start: diff.start,\n end: diff.end - op.text.length,\n text: diff.text,\n },\n id,\n path,\n }\n }\n case 'split_node': {\n if (!Path.equals(op.path, path) || op.position >= diff.end) {\n return {\n diff,\n id,\n path: Path.transform(path, op, { affinity: 'backward' })!,\n }\n }\n\n if (op.position > diff.start) {\n return {\n diff: {\n start: diff.start,\n end: Math.min(op.position, diff.end),\n text: diff.text,\n },\n id,\n path,\n }\n }\n\n return {\n diff: {\n start: diff.start - op.position,\n end: diff.end - op.position,\n text: diff.text,\n },\n id,\n path: Path.transform(path, op, { affinity: 'forward' })!,\n }\n }\n case 'merge_node': {\n if (!Path.equals(op.path, path)) {\n return {\n diff,\n id,\n path: Path.transform(path, op)!,\n }\n }\n\n return {\n diff: {\n start: diff.start + op.position,\n end: diff.end + op.position,\n text: diff.text,\n },\n id,\n path: Path.transform(path, op)!,\n }\n }\n }\n\n const newPath = Path.transform(path, op)\n if (!newPath) {\n return null\n }\n\n return {\n diff,\n path: newPath,\n id,\n }\n}\n","import { DebouncedFunc } from 'lodash'\nimport { Editor, Node, Path, Point, Range, Text, Transforms } from 'slate'\nimport { ReactEditor } from '../../plugin/react-editor'\nimport {\n applyStringDiff,\n mergeStringDiffs,\n normalizePoint,\n normalizeRange,\n normalizeStringDiff,\n StringDiff,\n targetRange,\n TextDiff,\n verifyDiffState,\n} from '../../utils/diff-text'\nimport { isDOMSelection, isTrackedMutation } from '../../utils/dom'\nimport {\n EDITOR_TO_FORCE_RENDER,\n EDITOR_TO_PENDING_ACTION,\n EDITOR_TO_PENDING_DIFFS,\n EDITOR_TO_PENDING_INSERTION_MARKS,\n EDITOR_TO_PENDING_SELECTION,\n EDITOR_TO_PLACEHOLDER_ELEMENT,\n EDITOR_TO_USER_MARKS,\n IS_COMPOSING,\n} from '../../utils/weak-maps'\n\nexport type Action = { at?: Point | Range; run: () => void }\n\n// https://github.com/facebook/draft-js/blob/main/src/component/handlers/composition/DraftEditorCompositionHandler.js#L41\n// When using keyboard English association function, conpositionEnd triggered too fast, resulting in after `insertText` still maintain association state.\nconst RESOLVE_DELAY = 25\n\n// Time with no user interaction before the current user action is considered as done.\nconst FLUSH_DELAY = 200\n\n// Replace with `const debug = console.log` to debug\nconst debug = (..._: unknown[]) => {}\n\n// Type guard to check if a value is a DataTransfer\nconst isDataTransfer = (value: any): value is DataTransfer =>\n value?.constructor.name === 'DataTransfer'\n\nexport type CreateAndroidInputManagerOptions = {\n editor: ReactEditor\n\n scheduleOnDOMSelectionChange: DebouncedFunc<() => void>\n onDOMSelectionChange: DebouncedFunc<() => void>\n}\n\nexport type AndroidInputManager = {\n flush: () => void\n scheduleFlush: () => void\n\n hasPendingDiffs: () => boolean\n hasPendingAction: () => boolean\n hasPendingChanges: () => boolean\n isFlushing: () => boolean | 'action'\n\n handleUserSelect: (range: Range | null) => void\n handleCompositionEnd: (event: React.CompositionEvent<HTMLDivElement>) => void\n handleCompositionStart: (\n event: React.CompositionEvent<HTMLDivElement>\n ) => void\n handleDOMBeforeInput: (event: InputEvent) => void\n handleKeyDown: (event: React.KeyboardEvent<HTMLDivElement>) => void\n\n handleDomMutations: (mutations: MutationRecord[]) => void\n handleInput: () => void\n}\n\nexport function createAndroidInputManager({\n editor,\n scheduleOnDOMSelectionChange,\n onDOMSelectionChange,\n}: CreateAndroidInputManagerOptions): AndroidInputManager {\n let flushing: 'action' | boolean = false\n let compositionEndTimeoutId: ReturnType<typeof setTimeout> | null = null\n let flushTimeoutId: ReturnType<typeof setTimeout> | null = null\n let actionTimeoutId: ReturnType<typeof setTimeout> | null = null\n\n let idCounter = 0\n let insertPositionHint: StringDiff | null | false = false\n\n const applyPendingSelection = () => {\n const pendingSelection = EDITOR_TO_PENDING_SELECTION.get(editor)\n EDITOR_TO_PENDING_SELECTION.delete(editor)\n\n if (pendingSelection) {\n const { selection } = editor\n const normalized = normalizeRange(editor, pendingSelection)\n\n debug('apply pending selection', pendingSelection, normalized)\n\n if (normalized && (!selection || !Range.equals(normalized, selection))) {\n Transforms.select(editor, normalized)\n }\n }\n }\n\n const performAction = () => {\n const action = EDITOR_TO_PENDING_ACTION.get(editor)\n EDITOR_TO_PENDING_ACTION.delete(editor)\n if (!action) {\n return\n }\n\n if (action.at) {\n const target = Point.isPoint(action.at)\n ? normalizePoint(editor, action.at)\n : normalizeRange(editor, action.at)\n\n if (!target) {\n return\n }\n\n const targetRange = Editor.range(editor, target)\n if (!editor.selection || !Range.equals(editor.selection, targetRange)) {\n Transforms.select(editor, target)\n }\n }\n\n action.run()\n }\n\n const flush = () => {\n if (flushTimeoutId) {\n clearTimeout(flushTimeoutId)\n flushTimeoutId = null\n }\n\n if (actionTimeoutId) {\n clearTimeout(actionTimeoutId)\n actionTimeoutId = null\n }\n\n if (!hasPendingDiffs() && !hasPendingAction()) {\n applyPendingSelection()\n return\n }\n\n if (!flushing) {\n flushing = true\n setTimeout(() => (flushing = false))\n }\n\n if (hasPendingAction()) {\n flushing = 'action'\n }\n\n const selectionRef =\n editor.selection &&\n Editor.rangeRef(editor, editor.selection, { affinity: 'forward' })\n EDITOR_TO_USER_MARKS.set(editor, editor.marks)\n\n debug(\n 'flush',\n EDITOR_TO_PENDING_ACTION.get(editor),\n EDITOR_TO_PENDING_DIFFS.get(editor)\n )\n\n let scheduleSelectionChange = hasPendingDiffs()\n\n let diff: TextDiff | undefined\n while ((diff = EDITOR_TO_PENDING_DIFFS.get(editor)?.[0])) {\n const pendingMarks = EDITOR_TO_PENDING_INSERTION_MARKS.get(editor)\n\n if (pendingMarks !== undefined) {\n EDITOR_TO_PENDING_INSERTION_MARKS.delete(editor)\n editor.marks = pendingMarks\n }\n\n if (pendingMarks && insertPositionHint === false) {\n insertPositionHint = null\n debug('insert after mark placeholder')\n }\n\n const range = targetRange(diff)\n if (!editor.selection || !Range.equals(editor.selection, range)) {\n Transforms.select(editor, range)\n }\n\n if (diff.diff.text) {\n Editor.insertText(editor, diff.diff.text)\n } else {\n Editor.deleteFragment(editor)\n }\n\n // Remove diff only after we have applied it to account for it when transforming\n // pending ranges.\n EDITOR_TO_PENDING_DIFFS.set(\n editor,\n EDITOR_TO_PENDING_DIFFS.get(editor)?.filter(\n ({ id }) => id !== diff!.id\n )!\n )\n\n if (!verifyDiffState(editor, diff)) {\n debug('invalid diff state')\n scheduleSelectionChange = false\n EDITOR_TO_PENDING_ACTION.delete(editor)\n EDITOR_TO_USER_MARKS.delete(editor)\n flushing = 'action'\n\n // Ensure we don't restore the pending user (dom) selection\n // since the document and dom state do not match.\n EDITOR_TO_PENDING_SELECTION.delete(editor)\n scheduleOnDOMSelectionChange.cancel()\n onDOMSelectionChange.cancel()\n selectionRef?.unref()\n }\n }\n\n const selection = selectionRef?.unref()\n if (\n selection &&\n !EDITOR_TO_PENDING_SELECTION.get(editor) &&\n (!editor.selection || !Range.equals(selection, editor.selection))\n ) {\n Transforms.select(editor, selection)\n }\n\n if (hasPendingAction()) {\n performAction()\n return\n }\n\n // COMPAT: The selectionChange event is fired after the action is performed,\n // so we have to manually schedule it to ensure we don't 'throw away' the selection\n // while rendering if we have pending changes.\n if (scheduleSelectionChange) {\n debug('scheduleOnDOMSelectionChange pending changes')\n scheduleOnDOMSelectionChange()\n }\n\n scheduleOnDOMSelectionChange.flush()\n onDOMSelectionChange.flush()\n\n applyPendingSelection()\n\n const userMarks = EDITOR_TO_USER_MARKS.get(editor)\n EDITOR_TO_USER_MARKS.delete(editor)\n if (userMarks !== undefined) {\n editor.marks = userMarks\n editor.onChange()\n }\n }\n\n const handleCompositionEnd = (\n _event: React.CompositionEvent<HTMLDivElement>\n ) => {\n if (compositionEndTimeoutId) {\n clearTimeout(compositionEndTimeoutId)\n }\n\n compositionEndTimeoutId = setTimeout(() => {\n IS_COMPOSING.set(editor, false)\n flush()\n }, RESOLVE_DELAY)\n }\n\n const handleCompositionStart = (\n _event: React.CompositionEvent<HTMLDivElement>\n ) => {\n debug('composition start')\n\n IS_COMPOSING.set(editor, true)\n\n if (compositionEndTimeoutId) {\n clearTimeout(compositionEndTimeoutId)\n compositionEndTimeoutId = null\n }\n }\n\n const updatePlaceholderVisibility = (forceHide = false) => {\n const placeholderElement = EDITOR_TO_PLACEHOLDER_ELEMENT.get(editor)\n if (!placeholderElement) {\n return\n }\n\n if (hasPendingDiffs() || forceHide) {\n placeholderElement.style.display = 'none'\n return\n }\n\n placeholderElement.style.removeProperty('display')\n }\n\n const storeDiff = (path: Path, diff: StringDiff) => {\n debug('storeDiff', path, diff)\n\n const pendingDiffs = EDITOR_TO_PENDING_DIFFS.get(editor) ?? []\n EDITOR_TO_PENDING_DIFFS.set(editor, pendingDiffs)\n\n const target = Node.leaf(editor, path)\n const idx = pendingDiffs.findIndex(change => Path.equals(change.path, path))\n if (idx < 0) {\n const normalized = normalizeStringDiff(target.text, diff)\n if (normalized) {\n pendingDiffs.push({ path, diff, id: idCounter++ })\n }\n\n updatePlaceholderVisibility()\n return\n }\n\n const merged = mergeStringDiffs(target.text, pendingDiffs[idx].diff, diff)\n if (!merged) {\n pendingDiffs.splice(idx, 1)\n updatePlaceholderVisibility()\n return\n }\n\n pendingDiffs[idx] = {\n ...pendingDiffs[idx],\n diff: merged,\n }\n }\n\n const scheduleAction = (\n run: () => void,\n { at }: { at?: Point | Range } = {}\n ): void => {\n insertPositionHint = false\n debug('scheduleAction', { at, run })\n\n EDITOR_TO_PENDING_SELECTION.delete(editor)\n scheduleOnDOMSelectionChange.cancel()\n onDOMSelectionChange.cancel()\n\n if (hasPendingAction()) {\n flush()\n }\n\n EDITOR_TO_PENDING_ACTION.set(editor, { at, run })\n\n // COMPAT: When deleting before a non-contenteditable element chrome only fires a beforeinput,\n // (no input) and doesn't perform any dom mutations. Without a flush timeout we would never flush\n // in this case and thus never actually perform the action.\n actionTimeoutId = setTimeout(flush)\n }\n\n const handleDOMBeforeInput = (event: InputEvent): void => {\n if (flushTimeoutId) {\n clearTimeout(flushTimeoutId)\n flushTimeoutId = null\n }\n\n const { inputType: type } = event\n let targetRange: Range | null = null\n const data: DataTransfer | string | undefined =\n (event as any).dataTransfer || event.data || undefined\n\n if (\n insertPositionHint !== false &&\n type !== 'insertText' &&\n type !== 'insertCompositionText'\n ) {\n insertPositionHint = false\n }\n\n let [nativeTargetRange] = (event as any).getTargetRanges()\n if (nativeTargetRange) {\n targetRange = ReactEditor.toSlateRange(editor, nativeTargetRange, {\n exactMatch: false,\n suppressThrow: true,\n })\n }\n\n // COMPAT: SelectionChange event is fired after the action is performed, so we\n // have to manually get the selection here to ensure it's up-to-date.\n const window = ReactEditor.getWindow(editor)\n const domSelection = window.getSelection()\n if (!targetRange && domSelection) {\n nativeTargetRange = domSelection\n targetRange = ReactEditor.toSlateRange(editor, domSelection, {\n exactMatch: false,\n suppressThrow: true,\n })\n }\n\n targetRange = targetRange ?? editor.selection\n if (!targetRange) {\n return\n }\n\n // By default, the input manager tries to store text diffs so that we can\n // defer flushing them at a later point in time. We don't want to flush\n // for every input event as this can be expensive. However, there are some\n // scenarios where we cannot safely store the text diff and must instead\n // schedule an action to let Slate normalize the editor state.\n let canStoreDiff = true\n\n if (type.startsWith('delete')) {\n if (Range.isExpanded(targetRange)) {\n const [start, end] = Range.edges(targetRange)\n const leaf = Node.leaf(editor, start.path)\n\n if (leaf.text.length === start.offset && end.offset === 0) {\n const next = Editor.next(editor, {\n at: start.path,\n match: Text.isText,\n })\n if (next && Path.equals(next[1], end.path)) {\n targetRange = { anchor: end, focus: end }\n }\n }\n }\n\n const direction = type.endsWith('Backward') ? 'backward' : 'forward'\n const [start, end] = Range.edges(targetRange)\n const [leaf, path] = Editor.leaf(editor, start.path)\n\n const diff = {\n text: '',\n start: start.offset,\n end: end.offset,\n }\n const pendingDiffs = EDITOR_TO_PENDING_DIFFS.get(editor)\n const relevantPendingDiffs = pendingDiffs?.find(change =>\n Path.equals(change.path, path)\n )\n const diffs = relevantPendingDiffs\n ? [relevantPendingDiffs.diff, diff]\n : [diff]\n const text = applyStringDiff(leaf.text, ...diffs)\n\n if (text.length === 0) {\n // Text leaf will be removed, so we need to schedule an\n // action to remove it so that Slate can normalize instead\n // of storing as a diff\n canStoreDiff = false\n }\n\n if (Range.isExpanded(targetRange)) {\n if (\n canStoreDiff &&\n Path.equals(targetRange.anchor.path, targetRange.focus.path)\n ) {\n const point = { path: targetRange.anchor.path, offset: start.offset }\n const range = Editor.range(editor, point, point)\n handleUserSelect(range)\n\n return storeDiff(targetRange.anchor.path, {\n text: '',\n end: end.offset,\n start: start.offset,\n })\n }\n\n return scheduleAction(\n () => Editor.deleteFragment(editor, { direction }),\n { at: targetRange }\n )\n }\n }\n\n switch (type) {\n case 'deleteByComposition':\n case 'deleteByCut':\n case 'deleteByDrag': {\n return scheduleAction(() => Editor.deleteFragment(editor), {\n at: targetRange,\n })\n }\n\n case 'deleteContent':\n case 'deleteContentForward': {\n const { anchor } = targetRange\n if (canStoreDiff && Range.isCollapsed(targetRange)) {\n const targetNode = Node.leaf(editor, anchor.path)\n\n if (anchor.offset < targetNode.text.length) {\n return storeDiff(anchor.path, {\n text: '',\n start: anchor.offset,\n end: anchor.offset + 1,\n })\n }\n }\n\n return scheduleAction(() => Editor.deleteForward(editor), {\n at: targetRange,\n })\n }\n\n case 'deleteContentBackward': {\n const { anchor } = targetRange\n\n // If we have a mismatch between the native and slate selection being collapsed\n // we are most likely deleting a zero-width placeholder and thus should perform it\n // as an action to ensure correct behavior (mostly happens with mark placeholders)\n const nativeCollapsed = isDOMSelection(nativeTargetRange)\n ? nativeTargetRange.isCollapsed\n : !!nativeTargetRange?.collapsed\n\n if (\n canStoreDiff &&\n nativeCollapsed &&\n Range.isCollapsed(targetRange) &&\n anchor.offset > 0\n ) {\n return storeDiff(anchor.path, {\n text: '',\n start: anchor.offset - 1,\n end: anchor.offset,\n })\n }\n\n return scheduleAction(() => Editor.deleteBackward(editor), {\n at: targetRange,\n })\n }\n\n case 'deleteEntireSoftLine': {\n return scheduleAction(\n () => {\n Editor.deleteBackward(editor, { unit: 'line' })\n Editor.deleteForward(editor, { unit: 'line' })\n },\n { at: targetRange }\n )\n }\n\n case 'deleteHardLineBackward': {\n return scheduleAction(\n () => Editor.deleteBackward(editor, { unit: 'block' }),\n { at: targetRange }\n )\n }\n\n case 'deleteSoftLineBackward': {\n return scheduleAction(\n () => Editor.deleteBackward(editor, { unit: 'line' }),\n { at: targetRange }\n )\n }\n\n case 'deleteHardLineForward': {\n return scheduleAction(\n () => Editor.deleteForward(editor, { unit: 'block' }),\n { at: targetRange }\n )\n }\n\n case 'deleteSoftLineForward': {\n return scheduleAction(\n () => Editor.deleteForward(editor, { unit: 'line' }),\n { at: targetRange }\n )\n }\n\n case 'deleteWordBackward': {\n return scheduleAction(\n () => Editor.deleteBackward(editor, { unit: 'word' }),\n { at: targetRange }\n )\n }\n\n case 'deleteWordForward': {\n return scheduleAction(\n () => Editor.deleteForward(editor, { unit: 'word' }),\n { at: targetRange }\n )\n }\n\n case 'insertLineBreak': {\n return scheduleAction(() => Editor.insertSoftBreak(editor), {\n at: targetRange,\n })\n }\n\n case 'insertParagraph': {\n return scheduleAction(() => Editor.insertBreak(editor), {\n at: targetRange,\n })\n }\n case 'insertCompositionText':\n case 'deleteCompositionText':\n case 'insertFromComposition':\n case 'insertFromDrop':\n case 'insertFromPaste':\n case 'insertFromYank':\n case 'insertReplacementText':\n case 'insertText': {\n if (isDataTransfer(data)) {\n return scheduleAction(() => ReactEditor.insertData(editor, data), {\n at: targetRange,\n })\n }\n\n let text = data ?? ''\n\n // COMPAT: If we are writing inside a placeholder, the ime inserts the text inside\n // the placeholder itself and thus includes the zero-width space inside edit events.\n if (EDITOR_TO_PENDING_INSERTION_MARKS.get(editor)) {\n text = text.replace('\\uFEFF', '')\n }\n\n // Pastes from the Android clipboard will generate `insertText` events.\n // If the copied text contains any newlines, Android will append an\n // extra newline to the end of the copied text.\n if (type === 'insertText' && /.*\\n.*\\n$/.test(text)) {\n text = text.slice(0, -1)\n }\n\n // If the text includes a newline, split it at newlines and paste each component\n // string, with soft breaks in between each.\n if (text.includes('\\n')) {\n return scheduleAction(\n () => {\n const parts = text.split('\\n')\n parts.forEach((line, i) => {\n if (line) {\n Editor.insertText(editor, line)\n }\n if (i !== parts.length - 1) {\n Editor.insertSoftBreak(editor)\n }\n })\n },\n {\n at: targetRange,\n }\n )\n }\n\n if (Path.equals(targetRange.anchor.path, targetRange.focus.path)) {\n const [start, end] = Range.edges(targetRange)\n\n const diff = {\n start: start.offset,\n end: end.offset,\n text,\n }\n\n // COMPAT: Swiftkey has a weird bug where the target range of the 2nd word\n // inserted after a mark placeholder is inserted with an anchor offset off by 1.\n // So writing 'some text' will result in 'some ttext'. Luckily all 'normal' insert\n // text events are fired with the correct target ranges, only the final 'insertComposition'\n // isn't, so we can adjust the target range start offset if we are confident this is the\n // swiftkey insert causing the issue.\n if (text && insertPositionHint && type === 'insertCompositionText') {\n const hintPosition =\n insertPositionHint.start + insertPositionHint.text.search(/\\S|$/)\n const diffPosition = diff.start + diff.text.search(/\\S|$/)\n\n if (\n diffPosition === hintPosition + 1 &&\n diff.end ===\n insertPositionHint.start + insertPositionHint.text.length\n ) {\n debug('adjusting swiftKey insert position using hint')\n diff.start -= 1\n insertPositionHint = null\n scheduleFlush()\n } else {\n insertPositionHint = false\n }\n } else if (type === 'insertText') {\n if (insertPositionHint === null) {\n insertPositionHint = diff\n } else if (\n insertPositionHint &&\n Range.isCollapsed(targetRange) &&\n insertPositionHint.end + insertPositionHint.text.length ===\n start.offset\n ) {\n insertPositionHint = {\n ...insertPositionHint,\n text: insertPositionHint.text + text,\n }\n } else {\n insertPositionHint = false\n }\n } else {\n insertPositionHint = false\n }\n\n if (canStoreDiff) {\n storeDiff(start.path, diff)\n return\n }\n }\n\n return scheduleAction(() => Editor.insertText(editor, text), {\n at: targetRange,\n })\n }\n }\n }\n\n const hasPendingAction = () => {\n return !!EDITOR_TO_PENDING_ACTION.get(editor)\n }\n\n const hasPendingDiffs = () => {\n return !!EDITOR_TO_PENDING_DIFFS.get(editor)?.length\n }\n\n const hasPendingChanges = () => {\n return hasPendingAction() || hasPendingDiffs()\n }\n\n const isFlushing = () => {\n return flushing\n }\n\n const handleUserSelect = (range: Range | null) => {\n EDITOR_TO_PENDING_SELECTION.set(editor, range)\n\n if (flushTimeoutId) {\n clearTimeout(flushTimeoutId)\n flushTimeoutId = null\n }\n\n const { selection } = editor\n if (!range) {\n return\n }\n\n const pathChanged =\n !selection || !Path.equals(selection.anchor.path, range.anchor.path)\n const parentPathChanged =\n !selection ||\n !Path.equals(\n selection.anchor.path.slice(0, -1),\n range.anchor.path.slice(0, -1)\n )\n\n if ((pathChanged && insertPositionHint) || parentPathChanged) {\n insertPositionHint = false\n }\n\n if (pathChanged || hasPendingDiffs()) {\n flushTimeoutId = setTimeout(flush, FLUSH_DELAY)\n }\n }\n\n const handleInput = () => {\n if (hasPendingAction() || !hasPendingDiffs()) {\n debug('flush input')\n flush()\n }\n }\n\n const handleKeyDown = (_: React.KeyboardEvent) => {\n // COMPAT: Swiftkey closes the keyboard when typing inside a empty node\n // directly next to a non-contenteditable element (= the placeholder).\n // The only event fired soon enough for us to allow hiding the placeholder\n // without swiftkey picking it up is the keydown event, so we have to hide it\n // here. See https://github.com/ianstormtaylor/slate/pull/4988#issuecomment-1201050535\n if (!hasPendingDiffs()) {\n updatePlaceholderVisibility(true)\n setTimeout(updatePlaceholderVisibility)\n }\n }\n\n const scheduleFlush = () => {\n if (!hasPendingAction()) {\n actionTimeoutId = setTimeout(flush)\n }\n }\n\n const handleDomMutations = (mutations: MutationRecord[]) => {\n if (hasPendingDiffs() || hasPendingAction()) {\n return\n }\n\n if (\n mutations.some(mutation => isTrackedMutation(editor, mutation, mutations))\n ) {\n // Cause a re-render to restore the dom state if we encounter tracked mutations without\n // a corresponding pending action.\n EDITOR_TO_FORCE_RENDER.get(editor)?.()\n }\n }\n\n return {\n flush,\n scheduleFlush,\n\n hasPendingDiffs,\n hasPendingAction,\n hasPendingChanges,\n\n isFlushing,\n\n handleUserSelect,\n handleCompositionEnd,\n handleCompositionStart,\n handleDOMBeforeInput,\n handleKeyDown,\n\n handleDomMutations,\n handleInput,\n }\n}\n","import { useEffect, useRef } from 'react'\n\nexport function useIsMounted() {\n const isMountedRef = useRef(false)\n\n useEffect(() => {\n isMountedRef.current = true\n return () => {\n isMountedRef.current = false\n }\n }, [])\n\n return isMountedRef.current\n}\n","import { useLayoutEffect, useEffect } from 'react'\nimport { CAN_USE_DOM } from '../utils/environment'\n\n/**\n * Prevent warning on SSR by falling back to useEffect when DOM isn't available\n */\n\nexport const useIsomorphicLayoutEffect = CAN_USE_DOM\n ? useLayoutEffect\n : useEffect\n","import { RefObject, useEffect, useState } from 'react'\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect'\n\nexport function useMutationObserver(\n node: RefObject<HTMLElement>,\n callback: MutationCallback,\n options: MutationObserverInit\n) {\n const [mutationObserver] = useState(() => new MutationObserver(callback))\n\n useIsomorphicLayoutEffect(() => {\n // Discard mutations caused during render phase. This works due to react calling\n // useLayoutEffect synchronously after the render phase before the next tick.\n mutationObserver.takeRecords()\n })\n\n useEffect(() => {\n if (!node.current) {\n throw new Error('Failed to attach MutationObserver, `node` is undefined')\n }\n\n mutationObserver.observe(node.current, options)\n return () => mutationObserver.disconnect()\n }, [mutationObserver, node, options])\n}\n","import { RefObject, useState } from 'react'\nimport { useSlateStatic } from '../use-slate-static'\nimport { IS_ANDROID } from '../../utils/environment'\nimport { EDITOR_TO_SCHEDULE_FLUSH } from '../../utils/weak-maps'\nimport {\n createAndroidInputManager,\n CreateAndroidInputManagerOptions,\n} from './android-input-manager'\nimport { useIsMounted } from '../use-is-mounted'\nimport { useMutationObserver } from '../use-mutation-observer'\n\ntype UseAndroidInputManagerOptions = {\n node: RefObject<HTMLElement>\n} & Omit<\n CreateAndroidInputManagerOptions,\n 'editor' | 'onUserInput' | 'receivedUserInput'\n>\n\nconst MUTATION_OBSERVER_CONFIG: MutationObserverInit = {\n subtree: true,\n childList: true,\n characterData: true,\n}\n\nexport const useAndroidInputManager = !IS_ANDROID\n ? () => null\n : ({ node, ...options }: UseAndroidInputManagerOptions) => {\n if (!IS_ANDROID) {\n return null\n }\n\n const editor = useSlateStatic()\n const isMounted = useIsMounted()\n\n const [inputManager] = useState(() =>\n createAndroidInputManager({\n editor,\n ...options,\n })\n )\n\n useMutationObserver(\n node,\n inputManager.handleDomMutations,\n MUTATION_OBSERVER_CONFIG\n )\n\n EDITOR_TO_SCHEDULE_FLUSH.set(editor, inputManager.scheduleFlush)\n if (isMounted) {\n inputManager.flush()\n }\n\n return inputManager\n }\n","import { Range } from 'slate'\nimport { PLACEHOLDER_SYMBOL } from './weak-maps'\n\nexport const shallowCompare = (obj1: {}, obj2: {}) =>\n Object.keys(obj1).length === Object.keys(obj2).length &&\n Object.keys(obj1).every(\n key => obj2.hasOwnProperty(key) && obj1[key] === obj2[key]\n )\n\nconst isDecorationFlagsEqual = (range: Range, other: Range) => {\n const { anchor: rangeAnchor, focus: rangeFocus, ...rangeOwnProps } = range\n const { anchor: otherAnchor, focus: otherFocus, ...otherOwnProps } = other\n\n return (\n range[PLACEHOLDER_SYMBOL] === other[PLACEHOLDER_SYMBOL] &&\n shallowCompare(rangeOwnProps, otherOwnProps)\n )\n}\n\n/**\n * Check if a list of decorator ranges are equal to another.\n *\n * PERF: this requires the two lists to also have the ranges inside them in the\n * same order, but this is an okay constraint for us since decorations are\n * kept in order, and the odd case where they aren't is okay to re-render for.\n */\n\nexport const isElementDecorationsEqual = (\n list: Range[],\n another: Range[]\n): boolean => {\n if (list.length !== another.length) {\n return false\n }\n\n for (let i = 0; i < list.length; i++) {\n const range = list[i]\n const other = another[i]\n\n if (!Range.equals(range, other) || !isDecorationFlagsEqual(range, other)) {\n return false\n }\n }\n\n return true\n}\n\n/**\n * Check if a list of decorator ranges are equal to another.\n *\n * PERF: this requires the two lists to also have the ranges inside them in the\n * same order, but this is an okay constraint for us since decorations are\n * kept in order, and the odd case where they aren't is okay to re-render for.\n */\n\nexport const isTextDecorationsEqual = (\n list: Range[],\n another: Range[]\n): boolean => {\n if (list.length !== another.length) {\n return false\n }\n\n for (let i = 0; i < list.length; i++) {\n const range = list[i]\n const other = another[i]\n\n // compare only offsets because paths doesn't matter for text\n if (\n range.anchor.offset !== other.anchor.offset ||\n range.focus.offset !== other.focus.offset ||\n !isDecorationFlagsEqual(range, other)\n ) {\n return false\n }\n }\n\n return true\n}\n","import React, { forwardRef, memo, useRef, useState } from 'react'\nimport { Editor, Text, Path, Element, Node } from 'slate'\n\nimport { ReactEditor, useSlateStatic } from '..'\nimport { useIsomorphicLayoutEffect } from '../hooks/use-isomorphic-layout-effect'\nimport { IS_ANDROID } from '../utils/environment'\nimport { MARK_PLACEHOLDER_SYMBOL } from '../utils/weak-maps'\n\n/**\n * Leaf content strings.\n */\n\nconst String = (props: {\n isLast: boolean\n leaf: Text\n parent: Element\n text: Text\n}) => {\n const { isLast, leaf, parent, text } = props\n const editor = useSlateStatic()\n const path = ReactEditor.findPath(editor, text)\n const parentPath = Path.parent(path)\n const isMarkPlaceholder = leaf[MARK_PLACEHOLDER_SYMBOL] === true\n\n // COMPAT: Render text inside void nodes with a zero-width space.\n // So the node can contain selection but the text is not visible.\n if (editor.isVoid(parent)) {\n return <ZeroWidthString length={Node.string(parent).length} />\n }\n\n // COMPAT: If this is the last text node in an empty block, render a zero-\n // width space that will convert into a line break when copying and pasting\n // to support expected plain text.\n if (\n leaf.text === '' &&\n parent.children[parent.children.length - 1] === text &&\n !editor.isInline(parent) &&\n Editor.string(editor, parentPath) === ''\n ) {\n return <ZeroWidthString isLineBreak isMarkPlaceholder={isMarkPlaceholder} />\n }\n\n // COMPAT: If the text is empty, it's because it's on the edge of an inline\n // node, so we render a zero-width space so that the selection can be\n // inserted next to it still.\n if (leaf.text === '') {\n return <ZeroWidthString isMarkPlaceholder={isMarkPlaceholder} />\n }\n\n // COMPAT: Browsers will collapse trailing new lines at the end of blocks,\n // so we need to add an extra trailing new lines to prevent that.\n if (isLast && leaf.text.slice(-1) === '\\n') {\n return <TextString isTrailing text={leaf.text} />\n }\n\n return <TextString text={leaf.text} />\n}\n\n/**\n * Leaf strings with text in them.\n */\nconst TextString = (props: { text: string; isTrailing?: boolean }) => {\n const { text, isTrailing = false } = props\n const ref = useRef<HTMLSpanElement>(null)\n const getTextContent = () => {\n return `${text ?? ''}${isTrailing ? '\\n' : ''}`\n }\n const [initialText] = useState(getTextContent)\n\n // This is the actual text rendering boundary where we interface with the DOM\n // The text is not rendered as part of the virtual DOM, as since we handle basic character insertions natively,\n // updating the DOM is not a one way dataflow anymore. What we need here is not reconciliation and diffing\n // with previous version of the virtual DOM, but rather diffing with the actual DOM element, and replace the DOM <span> content\n // exactly if and only if its current content does not match our current virtual DOM.\n // Otherwise the DOM TextNode would always be replaced by React as the user types, which interferes with native text features,\n // eg makes native spellcheck opt out from checking the text node.\n\n // useLayoutEffect: updating our span before browser paint\n useIsomorphicLayoutEffect(() => {\n // null coalescing text to make sure we're not outputing \"null\" as a string in the extreme case it is nullish at runtime\n const textWithTrailing = getTextContent()\n\n if (ref.current && ref.current.textContent !== textWithTrailing) {\n ref.current.textContent = textWithTrailing\n }\n\n // intentionally not specifying dependencies, so that this effect runs on every render\n // as this effectively replaces \"specifying the text in the virtual DOM under the <span> below\" on each render\n })\n\n // We intentionally render a memoized <span> that only receives the initial text content when the component is mounted.\n // We defer to the layout effect above to update the `textContent` of the span element when needed.\n return <MemoizedText ref={ref}>{initialText}</MemoizedText>\n}\n\nconst MemoizedText = memo(\n forwardRef<HTMLSpanElement, { children: string }>((props, ref) => {\n return (\n <span data-slate-string ref={ref}>\n {props.children}\n </span>\n )\n })\n)\n\n/**\n * Leaf strings without text, render as zero-width strings.\n */\n\nexport const ZeroWidthString = (props: {\n length?: number\n isLineBreak?: boolean\n isMarkPlaceholder?: boolean\n}) => {\n const { length = 0, isLineBreak = false, isMarkPlaceholder = false } = props\n\n const attributes = {\n 'data-slate-zero-width': isLineBreak ? 'n' : 'z',\n 'data-slate-length': length,\n }\n\n if (isMarkPlaceholder) {\n attributes['data-slate-mark-placeholder'] = true\n }\n\n return (\n <span {...attributes}>\n {!IS_ANDROID || !isLineBreak ? '\\uFEFF' : null}\n {isLineBreak ? <br /> : null}\n </span>\n )\n}\n\nexport default String\n","import React, {\n useRef,\n useCallback,\n MutableRefObject,\n useState,\n useEffect,\n} from 'react'\nimport { Element, Text } from 'slate'\nimport { ResizeObserver as ResizeObserverPolyfill } from '@juggle/resize-observer'\nimport String from './string'\nimport {\n PLACEHOLDER_SYMBOL,\n EDITOR_TO_PLACEHOLDER_ELEMENT,\n EDITOR_TO_FORCE_RENDER,\n} from '../utils/weak-maps'\nimport { RenderLeafProps, RenderPlaceholderProps } from './editable'\nimport { useSlateStatic } from '../hooks/use-slate-static'\nimport { IS_WEBKIT } from '../utils/environment'\n\nfunction disconnectPlaceholderResizeObserver(\n placeholderResizeObserver: MutableRefObject<ResizeObserver | null>,\n releaseObserver: boolean\n) {\n if (placeholderResizeObserver.current) {\n placeholderResizeObserver.current.disconnect()\n if (releaseObserver) {\n placeholderResizeObserver.current = null\n }\n }\n}\n\ntype TimerId = ReturnType<typeof setTimeout> | null\n\nfunction clearTimeoutRef(timeoutRef: MutableRefObject<TimerId>) {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current)\n timeoutRef.current = null\n }\n}\n\n/**\n * Individual leaves in a text node with unique formatting.\n */\nconst Leaf = (props: {\n isLast: boolean\n leaf: Text\n parent: Element\n renderPlaceholder: (props: RenderPlaceholderProps) => JSX.Element\n renderLeaf?: (props: RenderLeafProps) => JSX.Element\n text: Text\n}) => {\n const {\n leaf,\n isLast,\n text,\n parent,\n renderPlaceholder,\n renderLeaf = (props: RenderLeafProps) => <DefaultLeaf {...props} />,\n } = props\n\n const editor = useSlateStatic()\n const placeholderResizeObserver = useRef<ResizeObserver | null>(null)\n const placeholderRef = useRef<HTMLElement | null>(null)\n const [showPlaceholder, setShowPlaceholder] = useState(false)\n const showPlaceholderTimeoutRef = useRef<TimerId>(null)\n\n const callbackPlaceholderRef = useCallback(\n (placeholderEl: HTMLElement | null) => {\n disconnectPlaceholderResizeObserver(\n placeholderResizeObserver,\n placeholderEl == null\n )\n\n if (placeholderEl == null) {\n EDITOR_TO_PLACEHOLDER_ELEMENT.delete(editor)\n leaf.onPlaceholderResize?.(null)\n } else {\n EDITOR_TO_PLACEHOLDER_ELEMENT.set(editor, placeholderEl)\n\n if (!placeholderResizeObserver.current) {\n // Create a new observer and observe the placeholder element.\n const ResizeObserver = window.ResizeObserver || ResizeObserverPolyfill\n placeholderResizeObserver.current = new ResizeObserver(() => {\n leaf.onPlaceholderResize?.(placeholderEl)\n })\n }\n placeholderResizeObserver.current.observe(placeholderEl)\n placeholderRef.current = placeholderEl\n }\n },\n [placeholderRef, leaf, editor]\n )\n\n let children = (\n <String isLast={isLast} leaf={leaf} parent={parent} text={text} />\n )\n\n const leafIsPlaceholder = leaf[PLACEHOLDER_SYMBOL]\n useEffect(() => {\n if (leafIsPlaceholder) {\n if (!showPlaceholderTimeoutRef.current) {\n // Delay the placeholder so it will not render in a selection\n showPlaceholderTimeoutRef.current = setTimeout(() => {\n setShowPlaceholder(true)\n showPlaceholderTimeoutRef.current = null\n }, 300)\n }\n } else {\n clearTimeoutRef(showPlaceholderTimeoutRef)\n setShowPlaceholder(false)\n }\n return () => clearTimeoutRef(showPlaceholderTimeoutRef)\n }, [leafIsPlaceholder, setShowPlaceholder])\n\n if (leafIsPlaceholder && showPlaceholder) {\n const placeholderProps: RenderPlaceholderProps = {\n children: leaf.placeholder,\n attributes: {\n 'data-slate-placeholder': true,\n style: {\n position: 'absolute',\n top: 0,\n pointerEvents: 'none',\n width: '100%',\n maxWidth: '100%',\n display: 'block',\n opacity: '0.333',\n userSelect: 'none',\n textDecoration: 'none',\n // Fixes https://github.com/udecode/plate/issues/2315\n WebkitUserModify: IS_WEBKIT ? 'inherit' : undefined,\n },\n contentEditable: false,\n ref: callbackPlaceholderRef,\n },\n }\n\n children = (\n <React.Fragment>\n {renderPlaceholder(placeholderProps)}\n {children}\n </React.Fragment>\n )\n }\n\n // COMPAT: Having the `data-` attributes on these leaf elements ensures that\n // in certain misbehaving browsers they aren't weirdly cloned/destroyed by\n // contenteditable behaviors. (2019/05/08)\n const attributes: {\n 'data-slate-leaf': true\n } = {\n 'data-slate-leaf': true,\n }\n\n return renderLeaf({ attributes, children, leaf, text })\n}\n\nconst MemoizedLeaf = React.memo(Leaf, (prev, next) => {\n return (\n next.parent === prev.parent &&\n next.isLast === prev.isLast &&\n next.renderLeaf === prev.renderLeaf &&\n next.renderPlaceholder === prev.renderPlaceholder &&\n next.text === prev.text &&\n Text.equals(next.leaf, prev.leaf) &&\n next.leaf[PLACEHOLDER_SYMBOL] === prev.leaf[PLACEHOLDER_SYMBOL]\n )\n})\n\nexport const DefaultLeaf = (props: RenderLeafProps) => {\n const { attributes, children } = props\n return <span {...attributes}>{children}</span>\n}\n\nexport default MemoizedLeaf\n","import React, { useCallback, useRef } from 'react'\nimport { Element, Range, Text as SlateText } from 'slate'\nimport { ReactEditor, useSlateStatic } from '..'\nimport { isTextDecorationsEqual } from '../utils/range-list'\nimport {\n EDITOR_TO_KEY_TO_ELEMENT,\n ELEMENT_TO_NODE,\n NODE_TO_ELEMENT,\n} from '../utils/weak-maps'\nimport { RenderLeafProps, RenderPlaceholderProps } from './editable'\nimport Leaf from './leaf'\n\n/**\n * Text.\n */\n\nconst Text = (props: {\n decorations: Range[]\n isLast: boolean\n parent: Element\n renderPlaceholder: (props: RenderPlaceholderProps) => JSX.Element\n renderLeaf?: (props: RenderLeafProps) => JSX.Element\n text: SlateText\n}) => {\n const {\n decorations,\n isLast,\n parent,\n renderPlaceholder,\n renderLeaf,\n text,\n } = props\n const editor = useSlateStatic()\n const ref = useRef<HTMLSpanElement | null>(null)\n const leaves = SlateText.decorations(text, decorations)\n const key = ReactEditor.findKey(editor, text)\n const children = []\n\n for (let i = 0; i < leaves.length; i++) {\n const leaf = leaves[i]\n\n children.push(\n <Leaf\n isLast={isLast && i === leaves.length - 1}\n key={`${key.id}-${i}`}\n renderPlaceholder={renderPlaceholder}\n leaf={leaf}\n text={text}\n parent={parent}\n renderLeaf={renderLeaf}\n />\n )\n }\n\n // Update element-related weak maps with the DOM element ref.\n const callbackRef = useCallback(\n (span: HTMLSpanElement | null) => {\n const KEY_TO_ELEMENT = EDITOR_TO_KEY_TO_ELEMENT.get(editor)\n if (span) {\n KEY_TO_ELEMENT?.set(key, span)\n NODE_TO_ELEMENT.set(text, span)\n ELEMENT_TO_NODE.set(span, text)\n } else {\n KEY_TO_ELEMENT?.delete(key)\n NODE_TO_ELEMENT.delete(text)\n if (ref.current) {\n ELEMENT_TO_NODE.delete(ref.current)\n }\n }\n ref.current = span\n },\n [ref, editor, key, text]\n )\n return (\n <span data-slate-node=\"text\" ref={callbackRef}>\n {children}\n </span>\n )\n}\n\nconst MemoizedText = React.memo(Text, (prev, next) => {\n return (\n next.parent === prev.parent &&\n next.isLast === prev.isLast &&\n next.renderLeaf === prev.renderLeaf &&\n next.renderPlaceholder === prev.renderPlaceholder &&\n next.text === prev.text &&\n isTextDecorationsEqual(next.decorations, prev.decorations)\n )\n})\n\nexport default MemoizedText\n","import getDirection from 'direction'\nimport React, { useCallback } from 'react'\nimport { Editor, Element as SlateElement, Node, Range } from 'slate'\nimport { ReactEditor, useReadOnly, useSlateStatic } from '..'\nimport useChildren from '../hooks/use-children'\nimport { isElementDecorationsEqual } from '../utils/range-list'\nimport {\n EDITOR_TO_KEY_TO_ELEMENT,\n ELEMENT_TO_NODE,\n NODE_TO_ELEMENT,\n NODE_TO_INDEX,\n NODE_TO_PARENT,\n} from '../utils/weak-maps'\nimport {\n RenderElementProps,\n RenderLeafProps,\n RenderPlaceholderProps,\n} from './editable'\n\nimport Text from './text'\n\n/**\n * Element.\n */\n\nconst Element = (props: {\n decorations: Range[]\n element: SlateElement\n renderElement?: (props: RenderElementProps) => JSX.Element\n renderPlaceholder: (props: RenderPlaceholderProps) => JSX.Element\n renderLeaf?: (props: RenderLeafProps) => JSX.Element\n selection: Range | null\n}) => {\n const {\n decorations,\n element,\n renderElement = (p: RenderElementProps) => <DefaultElement {...p} />,\n renderPlaceholder,\n renderLeaf,\n selection,\n } = props\n const editor = useSlateStatic()\n const readOnly = useReadOnly()\n const isInline = editor.isInline(element)\n const key = ReactEditor.findKey(editor, element)\n const ref = useCallback(\n (ref: HTMLElement | null) => {\n // Update element-related weak maps with the DOM element ref.\n const KEY_TO_ELEMENT = EDITOR_TO_KEY_TO_ELEMENT.get(editor)\n if (ref) {\n KEY_TO_ELEMENT?.set(key, ref)\n NODE_TO_ELEMENT.set(element, ref)\n ELEMENT_TO_NODE.set(ref, element)\n } else {\n KEY_TO_ELEMENT?.delete(key)\n NODE_TO_ELEMENT.delete(element)\n }\n },\n [editor, key, element]\n )\n let children: React.ReactNode = useChildren({\n decorations,\n node: element,\n renderElement,\n renderPlaceholder,\n renderLeaf,\n selection,\n })\n\n // Attributes that the developer must mix into the element in their\n // custom node renderer component.\n const attributes: {\n 'data-slate-node': 'element'\n 'data-slate-void'?: true\n 'data-slate-inline'?: true\n contentEditable?: false\n dir?: 'rtl'\n ref: any\n } = {\n 'data-slate-node': 'element',\n ref,\n }\n\n if (isInline) {\n attributes['data-slate-inline'] = true\n }\n\n // If it's a block node with inline children, add the proper `dir` attribute\n // for text direction.\n if (!isInline && Editor.hasInlines(editor, element)) {\n const text = Node.string(element)\n const dir = getDirection(text)\n\n if (dir === 'rtl') {\n attributes.dir = dir\n }\n }\n\n // If it's a void node, wrap the children in extra void-specific elements.\n if (Editor.isVoid(editor, element)) {\n attributes['data-slate-void'] = true\n\n if (!readOnly && isInline) {\n attributes.contentEditable = false\n }\n\n const Tag = isInline ? 'span' : 'div'\n const [[text]] = Node.texts(element)\n\n children = (\n <Tag\n data-slate-spacer\n style={{\n height: '0',\n color: 'transparent',\n outline: 'none',\n position: 'absolute',\n }}\n >\n <Text\n renderPlaceholder={renderPlaceholder}\n decorations={[]}\n isLast={false}\n parent={element}\n text={text}\n />\n </Tag>\n )\n\n NODE_TO_INDEX.set(text, 0)\n NODE_TO_PARENT.set(text, element)\n }\n\n return renderElement({ attributes, children, element })\n}\n\nconst MemoizedElement = React.memo(Element, (prev, next) => {\n return (\n prev.element === next.element &&\n prev.renderElement === next.renderElement &&\n prev.renderLeaf === next.renderLeaf &&\n prev.renderPlaceholder === next.renderPlaceholder &&\n isElementDecorationsEqual(prev.decorations, next.decorations) &&\n (prev.selection === next.selection ||\n (!!prev.selection &&\n !!next.selection &&\n Range.equals(prev.selection, next.selection)))\n )\n})\n\n/**\n * The default element renderer.\n */\n\nexport const DefaultElement = (props: RenderElementProps) => {\n const { attributes, children, element } = props\n const editor = useSlateStatic()\n const Tag = editor.isInline(element) ? 'span' : 'div'\n return (\n <Tag {...attributes} style={{ position: 'relative' }}>\n {children}\n </Tag>\n )\n}\n\nexport default MemoizedElement\n","import { createContext, useContext } from 'react'\nimport { Range, NodeEntry } from 'slate'\n\n/**\n * A React context for sharing the `decorate` prop of the editable.\n */\n\nexport const DecorateContext = createContext<(entry: NodeEntry) => Range[]>(\n () => []\n)\n\n/**\n * Get the current `decorate` prop of the editable.\n */\n\nexport const useDecorate = (): ((entry: NodeEntry) => Range[]) => {\n return useContext(DecorateContext)\n}\n","import { createContext, useContext } from 'react'\n\n/**\n * A React context for sharing the `selected` state of an element.\n */\n\nexport const SelectedContext = createContext(false)\n\n/**\n * Get the current `selected` state of an element.\n */\n\nexport const useSelected = (): boolean => {\n return useContext(SelectedContext)\n}\n","import React from 'react'\nimport { Ancestor, Descendant, Editor, Element, Range } from 'slate'\nimport {\n RenderElementProps,\n RenderLeafProps,\n RenderPlaceholderProps,\n} from '../components/editable'\n\nimport ElementComponent from '../components/element'\nimport TextComponent from '../components/text'\nimport { ReactEditor } from '../plugin/react-editor'\nimport { NODE_TO_INDEX, NODE_TO_PARENT } from '../utils/weak-maps'\nimport { useDecorate } from './use-decorate'\nimport { SelectedContext } from './use-selected'\nimport { useSlateStatic } from './use-slate-static'\n\n/**\n * Children.\n */\n\nconst useChildren = (props: {\n decorations: Range[]\n node: Ancestor\n renderElement?: (props: RenderElementProps) => JSX.Element\n renderPlaceholder: (props: RenderPlaceholderProps) => JSX.Element\n renderLeaf?: (props: RenderLeafProps) => JSX.Element\n selection: Range | null\n}) => {\n const {\n decorations,\n node,\n renderElement,\n renderPlaceholder,\n renderLeaf,\n selection,\n } = props\n const decorate = useDecorate()\n const editor = useSlateStatic()\n const path = ReactEditor.findPath(editor, node)\n const children = []\n const isLeafBlock =\n Element.isElement(node) &&\n !editor.isInline(node) &&\n Editor.hasInlines(editor, node)\n\n for (let i = 0; i < node.children.length; i++) {\n const p = path.concat(i)\n const n = node.children[i] as Descendant\n const key = ReactEditor.findKey(editor, n)\n const range = Editor.range(editor, p)\n const sel = selection && Range.intersection(range, selection)\n const ds = decorate([n, p])\n\n for (const dec of decorations) {\n const d = Range.intersection(dec, range)\n\n if (d) {\n ds.push(d)\n }\n }\n\n if (Element.isElement(n)) {\n children.push(\n <SelectedContext.Provider key={`provider-${key.id}`} value={!!sel}>\n <ElementComponent\n decorations={ds}\n element={n}\n key={key.id}\n renderElement={renderElement}\n renderPlaceholder={renderPlaceholder}\n renderLeaf={renderLeaf}\n selection={sel}\n />\n </SelectedContext.Provider>\n )\n } else {\n children.push(\n <TextComponent\n decorations={ds}\n key={key.id}\n isLast={isLeafBlock && i === node.children.length - 1}\n parent={node}\n renderPlaceholder={renderPlaceholder}\n renderLeaf={renderLeaf}\n text={n}\n />\n )\n }\n\n NODE_TO_INDEX.set(n, i)\n NODE_TO_PARENT.set(n, node)\n }\n\n return children\n}\n\nexport default useChildren\n","import { createContext, useContext } from 'react'\n\n/**\n * A React context for sharing the `readOnly` state of the editor.\n */\n\nexport const ReadOnlyContext = createContext(false)\n\n/**\n * Get the current `readOnly` state of the editor.\n */\n\nexport const useReadOnly = (): boolean => {\n return useContext(ReadOnlyContext)\n}\n","import { createContext, useContext } from 'react'\nimport { Editor } from 'slate'\nimport { ReactEditor } from '../plugin/react-editor'\n\n/**\n * A React context for sharing the editor object, in a way that re-renders the\n * context whenever changes occur.\n */\n\nexport interface SlateContextValue {\n v: number\n editor: ReactEditor\n}\n\nexport const SlateContext = createContext<{\n v: number\n editor: ReactEditor\n} | null>(null)\n\n/**\n * Get the current editor object from the React context.\n */\n\nexport const useSlate = (): Editor => {\n const context = useContext(SlateContext)\n\n if (!context) {\n throw new Error(\n `The \\`useSlate\\` hook must be used inside the <Slate> component's context.`\n )\n }\n\n const { editor } = context\n return editor\n}\n\nexport const useSlateWithV = () => {\n const context = useContext(SlateContext)\n\n if (!context) {\n throw new Error(\n `The \\`useSlate\\` hook must be used inside the <Slate> component's context.`\n )\n }\n\n return context\n}\n","import { useCallback, useEffect, useRef } from 'react'\nimport { ReactEditor } from '../plugin/react-editor'\nimport { useSlateStatic } from './use-slate-static'\n\nexport function useTrackUserInput() {\n const editor = useSlateStatic()\n\n const receivedUserInput = useRef<boolean>(false)\n const animationFrameIdRef = useRef<number>(0)\n\n const onUserInput = useCallback(() => {\n if (receivedUserInput.current) {\n return\n }\n\n receivedUserInput.current = true\n\n const window = ReactEditor.getWindow(editor)\n window.cancelAnimationFrame(animationFrameIdRef.current)\n\n animationFrameIdRef.current = window.requestAnimationFrame(() => {\n receivedUserInput.current = false\n })\n }, [editor])\n\n useEffect(() => () => cancelAnimationFrame(animationFrameIdRef.current), [])\n\n return {\n receivedUserInput,\n onUserInput,\n }\n}\n","export const TRIPLE_CLICK = 3\n","import { isHotkey } from 'is-hotkey'\nimport { IS_APPLE } from './environment'\n\n/**\n * Hotkey mappings for each platform.\n */\n\nconst HOTKEYS = {\n bold: 'mod+b',\n compose: ['down', 'left', 'right', 'up', 'backspace', 'enter'],\n moveBackward: 'left',\n moveForward: 'right',\n moveWordBackward: 'ctrl+left',\n moveWordForward: 'ctrl+right',\n deleteBackward: 'shift?+backspace',\n deleteForward: 'shift?+delete',\n extendBackward: 'shift+left',\n extendForward: 'shift+right',\n italic: 'mod+i',\n insertSoftBreak: 'shift+enter',\n splitBlock: 'enter',\n undo: 'mod+z',\n}\n\nconst APPLE_HOTKEYS = {\n moveLineBackward: 'opt+up',\n moveLineForward: 'opt+down',\n moveWordBackward: 'opt+left',\n moveWordForward: 'opt+right',\n deleteBackward: ['ctrl+backspace', 'ctrl+h'],\n deleteForward: ['ctrl+delete', 'ctrl+d'],\n deleteLineBackward: 'cmd+shift?+backspace',\n deleteLineForward: ['cmd+shift?+delete', 'ctrl+k'],\n deleteWordBackward: 'opt+shift?+backspace',\n deleteWordForward: 'opt+shift?+delete',\n extendLineBackward: 'opt+shift+up',\n extendLineForward: 'opt+shift+down',\n redo: 'cmd+shift+z',\n transposeCharacter: 'ctrl+t',\n}\n\nconst WINDOWS_HOTKEYS = {\n deleteWordBackward: 'ctrl+shift?+backspace',\n deleteWordForward: 'ctrl+shift?+delete',\n redo: ['ctrl+y', 'ctrl+shift+z'],\n}\n\n/**\n * Create a platform-aware hotkey checker.\n */\n\nconst create = (key: string) => {\n const generic = HOTKEYS[key]\n const apple = APPLE_HOTKEYS[key]\n const windows = WINDOWS_HOTKEYS[key]\n const isGeneric = generic && isHotkey(generic)\n const isApple = apple && isHotkey(apple)\n const isWindows = windows && isHotkey(windows)\n\n return (event: KeyboardEvent) => {\n if (isGeneric && isGeneric(event)) return true\n if (IS_APPLE && isApple && isApple(event)) return true\n if (!IS_APPLE && isWindows && isWindows(event)) return true\n return false\n }\n}\n\n/**\n * Hotkeys.\n */\n\nexport default {\n isBold: create('bold'),\n isCompose: create('compose'),\n isMoveBackward: create('moveBackward'),\n isMoveForward: create('moveForward'),\n isDeleteBackward: create('deleteBackward'),\n isDeleteForward: create('deleteForward'),\n isDeleteLineBackward: create('deleteLineBackward'),\n isDeleteLineForward: create('deleteLineForward'),\n isDeleteWordBackward: create('deleteWordBackward'),\n isDeleteWordForward: create('deleteWordForward'),\n isExtendBackward: create('extendBackward'),\n isExtendForward: create('extendForward'),\n isExtendLineBackward: create('extendLineBackward'),\n isExtendLineForward: create('extendLineForward'),\n isItalic: create('italic'),\n isMoveLineBackward: create('moveLineBackward'),\n isMoveLineForward: create('moveLineForward'),\n isMoveWordBackward: create('moveWordBackward'),\n isMoveWordForward: create('moveWordForward'),\n isRedo: create('redo'),\n isSoftBreak: create('insertSoftBreak'),\n isSplitBlock: create('splitBlock'),\n isTransposeCharacter: create('transposeCharacter'),\n isUndo: create('undo'),\n}\n","function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n}\n\nfunction _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n return Constructor;\n}\n\nmodule.exports = _createClass;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _setPrototypeOf(o, p) {\n module.exports = _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {\n o.__proto__ = p;\n return o;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _setPrototypeOf(o, p);\n}\n\nmodule.exports = _setPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var setPrototypeOf = require(\"./setPrototypeOf.js\");\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function\");\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n writable: true,\n configurable: true\n }\n });\n if (superClass) setPrototypeOf(subClass, superClass);\n}\n\nmodule.exports = _inherits;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _typeof(obj) {\n \"@babel/helpers - typeof\";\n\n if (typeof Symbol === \"function\" && typeof Symbol.iterator === \"symbol\") {\n module.exports = _typeof = function _typeof(obj) {\n return typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n } else {\n module.exports = _typeof = function _typeof(obj) {\n return obj && typeof Symbol === \"function\" && obj.constructor === Symbol && obj !== Symbol.prototype ? \"symbol\" : typeof obj;\n };\n\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n }\n\n return _typeof(obj);\n}\n\nmodule.exports = _typeof;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _assertThisInitialized(self) {\n if (self === void 0) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return self;\n}\n\nmodule.exports = _assertThisInitialized;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","var _typeof = require(\"@babel/runtime/helpers/typeof\")[\"default\"];\n\nvar assertThisInitialized = require(\"./assertThisInitialized.js\");\n\nfunction _possibleConstructorReturn(self, call) {\n if (call && (_typeof(call) === \"object\" || typeof call === \"function\")) {\n return call;\n } else if (call !== void 0) {\n throw new TypeError(\"Derived constructors may only return object or undefined\");\n }\n\n return assertThisInitialized(self);\n}\n\nmodule.exports = _possibleConstructorReturn;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","function _getPrototypeOf(o) {\n module.exports = _getPrototypeOf = Object.setPrototypeOf ? Object.getPrototypeOf : function _getPrototypeOf(o) {\n return o.__proto__ || Object.getPrototypeOf(o);\n };\n module.exports[\"default\"] = module.exports, module.exports.__esModule = true;\n return _getPrototypeOf(o);\n}\n\nmodule.exports = _getPrototypeOf;\nmodule.exports[\"default\"] = module.exports, module.exports.__esModule = true;","import { RefObject } from 'react'\nimport { ReactEditor } from '../../plugin/react-editor'\nimport { isTrackedMutation } from '../../utils/dom'\n\nexport type RestoreDOMManager = {\n registerMutations: (mutations: MutationRecord[]) => void\n restoreDOM: () => void\n clear: () => void\n}\n\nexport const createRestoreDomManager = (\n editor: ReactEditor,\n receivedUserInput: RefObject<boolean>\n): RestoreDOMManager => {\n let bufferedMutations: MutationRecord[] = []\n\n const clear = () => {\n bufferedMutations = []\n }\n\n const registerMutations = (mutations: MutationRecord[]) => {\n if (!receivedUserInput.current) {\n return\n }\n\n const trackedMutations = mutations.filter(mutation =>\n isTrackedMutation(editor, mutation, mutations)\n )\n\n bufferedMutations.push(...trackedMutations)\n }\n\n function restoreDOM() {\n if (bufferedMutations.length > 0) {\n bufferedMutations.reverse().forEach(mutation => {\n if (mutation.type === 'characterData') {\n // We don't want to restore the DOM for characterData mutations\n // because this interrupts the composition.\n return\n }\n\n mutation.removedNodes.forEach(node => {\n mutation.target.insertBefore(node, mutation.nextSibling)\n })\n\n mutation.addedNodes.forEach(node => {\n mutation.target.removeChild(node)\n })\n })\n\n // Clear buffered mutations to ensure we don't undo them twice\n clear()\n }\n }\n\n return {\n registerMutations,\n restoreDOM,\n clear,\n }\n}\n","import React, { Component, ComponentType, ContextType, RefObject } from 'react'\nimport { EditorContext } from '../../hooks/use-slate-static'\nimport { IS_ANDROID } from '../../utils/environment'\nimport {\n createRestoreDomManager,\n RestoreDOMManager,\n} from './restore-dom-manager'\n\nconst MUTATION_OBSERVER_CONFIG: MutationObserverInit = {\n subtree: true,\n childList: true,\n characterData: true,\n characterDataOldValue: true,\n}\n\ntype RestoreDOMProps = {\n receivedUserInput: RefObject<boolean>\n node: RefObject<HTMLDivElement>\n}\n\n// We have to use a class component here since we rely on `getSnapshotBeforeUpdate` which has no FC equivalent\n// to run code synchronously immediately before react commits the component update to the DOM.\nclass RestoreDOMComponent extends Component<RestoreDOMProps> {\n static contextType = EditorContext\n context: ContextType<typeof EditorContext> = null\n\n private manager: RestoreDOMManager | null = null\n private mutationObserver: MutationObserver | null = null\n\n observe() {\n const { node } = this.props\n if (!node.current) {\n throw new Error('Failed to attach MutationObserver, `node` is undefined')\n }\n\n this.mutationObserver?.observe(node.current, MUTATION_OBSERVER_CONFIG)\n }\n\n componentDidMount() {\n const { receivedUserInput } = this.props\n const editor = this.context!\n\n this.manager = createRestoreDomManager(editor, receivedUserInput)\n this.mutationObserver = new MutationObserver(this.manager.registerMutations)\n\n this.observe()\n }\n\n getSnapshotBeforeUpdate() {\n const pendingMutations = this.mutationObserver?.takeRecords()\n if (pendingMutations?.length) {\n this.manager?.registerMutations(pendingMutations)\n }\n\n this.mutationObserver?.disconnect()\n this.manager?.restoreDOM()\n\n return null\n }\n\n componentDidUpdate() {\n this.manager?.clear()\n this.observe()\n }\n\n componentWillUnmount() {\n this.mutationObserver?.disconnect()\n }\n\n render() {\n return this.props.children\n }\n}\n\nexport const RestoreDOM: ComponentType<RestoreDOMProps> = IS_ANDROID\n ? RestoreDOMComponent\n : ({ children }) => <>{children}</>\n","import getDirection from 'direction'\nimport debounce from 'lodash/debounce'\nimport throttle from 'lodash/throttle'\nimport React, {\n useCallback,\n useEffect,\n useMemo,\n useReducer,\n useRef,\n useState,\n} from 'react'\nimport scrollIntoView from 'scroll-into-view-if-needed'\nimport {\n Editor,\n Element,\n Node,\n NodeEntry,\n Path,\n Range,\n Text,\n Transforms,\n} from 'slate'\nimport { useAndroidInputManager } from '../hooks/android-input-manager/use-android-input-manager'\nimport useChildren from '../hooks/use-children'\nimport { DecorateContext } from '../hooks/use-decorate'\nimport { useIsomorphicLayoutEffect } from '../hooks/use-isomorphic-layout-effect'\nimport { ReadOnlyContext } from '../hooks/use-read-only'\nimport { useSlate } from '../hooks/use-slate'\nimport { useTrackUserInput } from '../hooks/use-track-user-input'\nimport { ReactEditor } from '../plugin/react-editor'\nimport { TRIPLE_CLICK } from '../utils/constants'\nimport {\n DOMElement,\n DOMRange,\n DOMText,\n getDefaultView,\n isDOMElement,\n isDOMNode,\n isPlainTextOnlyPaste,\n} from '../utils/dom'\nimport {\n CAN_USE_DOM,\n HAS_BEFORE_INPUT_SUPPORT,\n IS_ANDROID,\n IS_CHROME,\n IS_FIREFOX,\n IS_FIREFOX_LEGACY,\n IS_IOS,\n IS_WEBKIT,\n IS_UC_MOBILE,\n IS_WECHATBROWSER,\n} from '../utils/environment'\nimport Hotkeys from '../utils/hotkeys'\nimport {\n EDITOR_TO_ELEMENT,\n EDITOR_TO_FORCE_RENDER,\n EDITOR_TO_PENDING_INSERTION_MARKS,\n EDITOR_TO_USER_MARKS,\n EDITOR_TO_USER_SELECTION,\n EDITOR_TO_WINDOW,\n ELEMENT_TO_NODE,\n IS_COMPOSING,\n IS_FOCUSED,\n IS_READ_ONLY,\n MARK_PLACEHOLDER_SYMBOL,\n NODE_TO_ELEMENT,\n PLACEHOLDER_SYMBOL,\n} from '../utils/weak-maps'\nimport { RestoreDOM } from './restore-dom/restore-dom'\nimport { AndroidInputManager } from '../hooks/android-input-manager/android-input-manager'\n\ntype DeferredOperation = () => void\n\nconst Children = (props: Parameters<typeof useChildren>[0]) => (\n <React.Fragment>{useChildren(props)}</React.Fragment>\n)\n\n/**\n * `RenderElementProps` are passed to the `renderElement` handler.\n */\n\nexport interface RenderElementProps {\n children: any\n element: Element\n attributes: {\n 'data-slate-node': 'element'\n 'data-slate-inline'?: true\n 'data-slate-void'?: true\n dir?: 'rtl'\n ref: any\n }\n}\n\n/**\n * `RenderLeafProps` are passed to the `renderLeaf` handler.\n */\n\nexport interface RenderLeafProps {\n children: any\n leaf: Text\n text: Text\n attributes: {\n 'data-slate-leaf': true\n }\n}\n\n/**\n * `EditableProps` are passed to the `<Editable>` component.\n */\n\nexport type EditableProps = {\n decorate?: (entry: NodeEntry) => Range[]\n onDOMBeforeInput?: (event: InputEvent) => void\n placeholder?: string\n readOnly?: boolean\n role?: string\n style?: React.CSSProperties\n renderElement?: (props: RenderElementProps) => JSX.Element\n renderLeaf?: (props: RenderLeafProps) => JSX.Element\n renderPlaceholder?: (props: RenderPlaceholderProps) => JSX.Element\n scrollSelectionIntoView?: (editor: ReactEditor, domRange: DOMRange) => void\n as?: React.ElementType\n disableDefaultStyles?: boolean\n} & React.TextareaHTMLAttributes<HTMLDivElement>\n\n/**\n * Editable.\n */\n\nexport const Editable = (props: EditableProps) => {\n const defaultRenderPlaceholder = useCallback(\n (props: RenderPlaceholderProps) => <DefaultPlaceholder {...props} />,\n []\n )\n const {\n autoFocus,\n decorate = defaultDecorate,\n onDOMBeforeInput: propsOnDOMBeforeInput,\n placeholder,\n readOnly = false,\n renderElement,\n renderLeaf,\n renderPlaceholder = defaultRenderPlaceholder,\n scrollSelectionIntoView = defaultScrollSelectionIntoView,\n style: userStyle = {},\n as: Component = 'div',\n disableDefaultStyles = false,\n ...attributes\n } = props\n const editor = useSlate()\n // Rerender editor when composition status changed\n const [isComposing, setIsComposing] = useState(false)\n const ref = useRef<HTMLDivElement | null>(null)\n const deferredOperations = useRef<DeferredOperation[]>([])\n const [placeholderHeight, setPlaceholderHeight] = useState<\n number | undefined\n >()\n\n const { onUserInput, receivedUserInput } = useTrackUserInput()\n\n const [, forceRender] = useReducer(s => s + 1, 0)\n EDITOR_TO_FORCE_RENDER.set(editor, forceRender)\n\n // Update internal state on each render.\n IS_READ_ONLY.set(editor, readOnly)\n\n // Keep track of some state for the event handler logic.\n const state = useMemo(\n () => ({\n isDraggingInternally: false,\n isUpdatingSelection: false,\n latestElement: null as DOMElement | null,\n hasMarkPlaceholder: false,\n }),\n []\n )\n\n // The autoFocus TextareaHTMLAttribute doesn't do anything on a div, so it\n // needs to be manually focused.\n useEffect(() => {\n if (ref.current && autoFocus) {\n ref.current.focus()\n }\n }, [autoFocus])\n\n /**\n * The AndroidInputManager object has a cyclical dependency on onDOMSelectionChange\n *\n * It is defined as a reference to simplify hook dependencies and clarify that\n * it needs to be initialized.\n */\n const androidInputManagerRef = useRef<\n AndroidInputManager | null | undefined\n >()\n\n // Listen on the native `selectionchange` event to be able to update any time\n // the selection changes. This is required because React's `onSelect` is leaky\n // and non-standard so it doesn't fire until after a selection has been\n // released. This causes issues in situations where another change happens\n // while a selection is being dragged.\n const onDOMSelectionChange = useMemo(\n () =>\n throttle(() => {\n const androidInputManager = androidInputManagerRef.current\n if (\n (IS_ANDROID || !ReactEditor.isComposing(editor)) &&\n (!state.isUpdatingSelection || androidInputManager?.isFlushing()) &&\n !state.isDraggingInternally\n ) {\n const root = ReactEditor.findDocumentOrShadowRoot(editor)\n const { activeElement } = root\n const el = ReactEditor.toDOMNode(editor, editor)\n const domSelection = root.getSelection()\n\n if (activeElement === el) {\n state.latestElement = activeElement\n IS_FOCUSED.set(editor, true)\n } else {\n IS_FOCUSED.delete(editor)\n }\n\n if (!domSelection) {\n return Transforms.deselect(editor)\n }\n\n const { anchorNode, focusNode } = domSelection\n\n const anchorNodeSelectable =\n ReactEditor.hasEditableTarget(editor, anchorNode) ||\n ReactEditor.isTargetInsideNonReadonlyVoid(editor, anchorNode)\n\n const focusNodeSelectable =\n ReactEditor.hasEditableTarget(editor, focusNode) ||\n ReactEditor.isTargetInsideNonReadonlyVoid(editor, focusNode)\n\n if (anchorNodeSelectable && focusNodeSelectable) {\n const range = ReactEditor.toSlateRange(editor, domSelection, {\n exactMatch: false,\n suppressThrow: true,\n })\n\n if (range) {\n if (\n !ReactEditor.isComposing(editor) &&\n !androidInputManager?.hasPendingChanges() &&\n !androidInputManager?.isFlushing()\n ) {\n Transforms.select(editor, range)\n } else {\n androidInputManager?.handleUserSelect(range)\n }\n }\n }\n\n // Deselect the editor if the dom selection is not selectable in readonly mode\n if (readOnly && (!anchorNodeSelectable || !focusNodeSelectable)) {\n Transforms.deselect(editor)\n }\n }\n }, 100),\n [editor, readOnly, state]\n )\n\n const scheduleOnDOMSelectionChange = useMemo(\n () => debounce(onDOMSelectionChange, 0),\n [onDOMSelectionChange]\n )\n\n androidInputManagerRef.current = useAndroidInputManager({\n node: ref,\n onDOMSelectionChange,\n scheduleOnDOMSelectionChange,\n })\n\n useIsomorphicLayoutEffect(() => {\n // Update element-related weak maps with the DOM element ref.\n let window\n if (ref.current && (window = getDefaultView(ref.current))) {\n EDITOR_TO_WINDOW.set(editor, window)\n EDITOR_TO_ELEMENT.set(editor, ref.current)\n NODE_TO_ELEMENT.set(editor, ref.current)\n ELEMENT_TO_NODE.set(ref.current, editor)\n } else {\n NODE_TO_ELEMENT.delete(editor)\n }\n\n // Make sure the DOM selection state is in sync.\n const { selection } = editor\n const root = ReactEditor.findDocumentOrShadowRoot(editor)\n const domSelection = root.getSelection()\n\n if (\n !domSelection ||\n !ReactEditor.isFocused(editor) ||\n androidInputManagerRef.current?.hasPendingAction()\n ) {\n return\n }\n\n const setDomSelection = (forceChange?: boolean) => {\n const hasDomSelection = domSelection.type !== 'None'\n\n // If the DOM selection is properly unset, we're done.\n if (!selection && !hasDomSelection) {\n return\n }\n\n // Get anchorNode and focusNode\n const focusNode = domSelection.focusNode\n let anchorNode\n\n // COMPAT: In firefox the normal seletion way does not work\n // (https://github.com/ianstormtaylor/slate/pull/5486#issue-1820720223)\n if (IS_FIREFOX && domSelection.rangeCount > 1) {\n const firstRange = domSelection.getRangeAt(0)\n const lastRange = domSelection.getRangeAt(domSelection.rangeCount - 1)\n\n // Right to left\n if (firstRange.startContainer === focusNode) {\n anchorNode = lastRange.endContainer\n } else {\n // Left to right\n anchorNode = firstRange.startContainer\n }\n } else {\n anchorNode = domSelection.anchorNode\n }\n\n // verify that the dom selection is in the editor\n const editorElement = EDITOR_TO_ELEMENT.get(editor)!\n let hasDomSelectionInEditor = false\n if (\n editorElement.contains(anchorNode) &&\n editorElement.contains(focusNode)\n ) {\n hasDomSelectionInEditor = true\n }\n\n // If the DOM selection is in the editor and the editor selection is already correct, we're done.\n if (\n hasDomSelection &&\n hasDomSelectionInEditor &&\n selection &&\n !forceChange\n ) {\n const slateRange = ReactEditor.toSlateRange(editor, domSelection, {\n exactMatch: true,\n\n // domSelection is not necessarily a valid Slate range\n // (e.g. when clicking on contentEditable:false element)\n suppressThrow: true,\n })\n\n if (slateRange && Range.equals(slateRange, selection)) {\n if (!state.hasMarkPlaceholder) {\n return\n }\n\n // Ensure selection is inside the mark placeholder\n if (\n anchorNode?.parentElement?.hasAttribute(\n 'data-slate-mark-placeholder'\n )\n ) {\n return\n }\n }\n }\n\n // when <Editable/> is being controlled through external value\n // then its children might just change - DOM responds to it on its own\n // but Slate's value is not being updated through any operation\n // and thus it doesn't transform selection on its own\n if (selection && !ReactEditor.hasRange(editor, selection)) {\n editor.selection = ReactEditor.toSlateRange(editor, domSelection, {\n exactMatch: false,\n suppressThrow: true,\n })\n return\n }\n\n // Otherwise the DOM selection is out of sync, so update it.\n state.isUpdatingSelection = true\n\n const newDomRange: DOMRange | null =\n selection && ReactEditor.toDOMRange(editor, selection)\n\n if (newDomRange) {\n if (ReactEditor.isComposing(editor) && !IS_ANDROID) {\n domSelection.collapseToEnd()\n } else if (Range.isBackward(selection!)) {\n domSelection.setBaseAndExtent(\n newDomRange.endContainer,\n newDomRange.endOffset,\n newDomRange.startContainer,\n newDomRange.startOffset\n )\n } else {\n domSelection.setBaseAndExtent(\n newDomRange.startContainer,\n newDomRange.startOffset,\n newDomRange.endContainer,\n newDomRange.endOffset\n )\n }\n scrollSelectionIntoView(editor, newDomRange)\n } else {\n domSelection.removeAllRanges()\n }\n\n return newDomRange\n }\n\n // In firefox if there is more then 1 range and we call setDomSelection we remove the ability to select more cells in a table\n if (domSelection.rangeCount <= 1) {\n setDomSelection()\n }\n\n const ensureSelection =\n androidInputManagerRef.current?.isFlushing() === 'action'\n\n if (!IS_ANDROID || !ensureSelection) {\n setTimeout(() => {\n state.isUpdatingSelection = false\n })\n return\n }\n\n let timeoutId: ReturnType<typeof setTimeout> | null = null\n const animationFrameId = requestAnimationFrame(() => {\n if (ensureSelection) {\n const ensureDomSelection = (forceChange?: boolean) => {\n try {\n const el = ReactEditor.toDOMNode(editor, editor)\n el.focus()\n\n setDomSelection(forceChange)\n } catch (e) {\n // Ignore, dom and state might be out of sync\n }\n }\n\n // Compat: Android IMEs try to force their selection by manually re-applying it even after we set it.\n // This essentially would make setting the slate selection during an update meaningless, so we force it\n // again here. We can't only do it in the setTimeout after the animation frame since that would cause a\n // visible flicker.\n ensureDomSelection()\n\n timeoutId = setTimeout(() => {\n // COMPAT: While setting the selection in an animation frame visually correctly sets the selection,\n // it doesn't update GBoards spellchecker state. We have to manually trigger a selection change after\n // the animation frame to ensure it displays the correct state.\n ensureDomSelection(true)\n state.isUpdatingSelection = false\n })\n }\n })\n\n return () => {\n cancelAnimationFrame(animationFrameId)\n if (timeoutId) {\n clearTimeout(timeoutId)\n }\n }\n })\n\n // Listen on the native `beforeinput` event to get real \"Level 2\" events. This\n // is required because React's `beforeinput` is fake and never really attaches\n // to the real event sadly. (2019/11/01)\n // https://github.com/facebook/react/issues/11211\n const onDOMBeforeInput = useCallback(\n (event: InputEvent) => {\n onUserInput()\n\n if (\n !readOnly &&\n ReactEditor.hasEditableTarget(editor, event.target) &&\n !isDOMEventHandled(event, propsOnDOMBeforeInput)\n ) {\n // COMPAT: BeforeInput events aren't cancelable on android, so we have to handle them differently using the android input manager.\n if (androidInputManagerRef.current) {\n return androidInputManagerRef.current.handleDOMBeforeInput(event)\n }\n\n // Some IMEs/Chrome extensions like e.g. Grammarly set the selection immediately before\n // triggering a `beforeinput` expecting the change to be applied to the immediately before\n // set selection.\n scheduleOnDOMSelectionChange.flush()\n onDOMSelectionChange.flush()\n\n const { selection } = editor\n const { inputType: type } = event\n const data = (event as any).dataTransfer || event.data || undefined\n\n const isCompositionChange =\n type === 'insertCompositionText' || type === 'deleteCompositionText'\n\n // COMPAT: use composition change events as a hint to where we should insert\n // composition text if we aren't composing to work around https://github.com/ianstormtaylor/slate/issues/5038\n if (isCompositionChange && ReactEditor.isComposing(editor)) {\n return\n }\n\n let native = false\n if (\n type === 'insertText' &&\n selection &&\n Range.isCollapsed(selection) &&\n // Only use native character insertion for single characters a-z or space for now.\n // Long-press events (hold a + press 4 = ä) to choose a special character otherwise\n // causes duplicate inserts.\n event.data &&\n event.data.length === 1 &&\n /[a-z ]/i.test(event.data) &&\n // Chrome has issues correctly editing the start of nodes: https://bugs.chromium.org/p/chromium/issues/detail?id=1249405\n // When there is an inline element, e.g. a link, and you select\n // right after it (the start of the next node).\n selection.anchor.offset !== 0\n ) {\n native = true\n\n // Skip native if there are marks, as\n // `insertText` will insert a node, not just text.\n if (editor.marks) {\n native = false\n }\n\n // Chrome also has issues correctly editing the end of anchor elements: https://bugs.chromium.org/p/chromium/issues/detail?id=1259100\n // Therefore we don't allow native events to insert text at the end of anchor nodes.\n const { anchor } = selection\n\n const [node, offset] = ReactEditor.toDOMPoint(editor, anchor)\n const anchorNode = node.parentElement?.closest('a')\n\n const window = ReactEditor.getWindow(editor)\n\n if (\n native &&\n anchorNode &&\n ReactEditor.hasDOMNode(editor, anchorNode)\n ) {\n // Find the last text node inside the anchor.\n const lastText = window?.document\n .createTreeWalker(anchorNode, NodeFilter.SHOW_TEXT)\n .lastChild() as DOMText | null\n\n if (lastText === node && lastText.textContent?.length === offset) {\n native = false\n }\n }\n\n // Chrome has issues with the presence of tab characters inside elements with whiteSpace = 'pre'\n // causing abnormal insert behavior: https://bugs.chromium.org/p/chromium/issues/detail?id=1219139\n if (\n native &&\n node.parentElement &&\n window?.getComputedStyle(node.parentElement)?.whiteSpace === 'pre'\n ) {\n const block = Editor.above(editor, {\n at: anchor.path,\n match: n => Element.isElement(n) && Editor.isBlock(editor, n),\n })\n\n if (block && Node.string(block[0]).includes('\\t')) {\n native = false\n }\n }\n }\n\n // COMPAT: For the deleting forward/backward input types we don't want\n // to change the selection because it is the range that will be deleted,\n // and those commands determine that for themselves.\n if (!type.startsWith('delete') || type.startsWith('deleteBy')) {\n const [targetRange] = (event as any).getTargetRanges()\n\n if (targetRange) {\n const range = ReactEditor.toSlateRange(editor, targetRange, {\n exactMatch: false,\n suppressThrow: false,\n })\n\n if (!selection || !Range.equals(selection, range)) {\n native = false\n\n const selectionRef =\n !isCompositionChange &&\n editor.selection &&\n Editor.rangeRef(editor, editor.selection)\n\n Transforms.select(editor, range)\n\n if (selectionRef) {\n EDITOR_TO_USER_SELECTION.set(editor, selectionRef)\n }\n }\n }\n }\n\n // Composition change types occur while a user is composing text and can't be\n // cancelled. Let them through and wait for the composition to end.\n if (isCompositionChange) {\n return\n }\n\n if (!native) {\n event.preventDefault()\n }\n\n // COMPAT: If the selection is expanded, even if the command seems like\n // a delete forward/backward command it should delete the selection.\n if (\n selection &&\n Range.isExpanded(selection) &&\n type.startsWith('delete')\n ) {\n const direction = type.endsWith('Backward') ? 'backward' : 'forward'\n Editor.deleteFragment(editor, { direction })\n return\n }\n\n switch (type) {\n case 'deleteByComposition':\n case 'deleteByCut':\n case 'deleteByDrag': {\n Editor.deleteFragment(editor)\n break\n }\n\n case 'deleteContent':\n case 'deleteContentForward': {\n Editor.deleteForward(editor)\n break\n }\n\n case 'deleteContentBackward': {\n Editor.deleteBackward(editor)\n break\n }\n\n case 'deleteEntireSoftLine': {\n Editor.deleteBackward(editor, { unit: 'line' })\n Editor.deleteForward(editor, { unit: 'line' })\n break\n }\n\n case 'deleteHardLineBackward': {\n Editor.deleteBackward(editor, { unit: 'block' })\n break\n }\n\n case 'deleteSoftLineBackward': {\n Editor.deleteBackward(editor, { unit: 'line' })\n break\n }\n\n case 'deleteHardLineForward': {\n Editor.deleteForward(editor, { unit: 'block' })\n break\n }\n\n case 'deleteSoftLineForward': {\n Editor.deleteForward(editor, { unit: 'line' })\n break\n }\n\n case 'deleteWordBackward': {\n Editor.deleteBackward(editor, { unit: 'word' })\n break\n }\n\n case 'deleteWordForward': {\n Editor.deleteForward(editor, { unit: 'word' })\n break\n }\n\n case 'insertLineBreak':\n Editor.insertSoftBreak(editor)\n break\n\n case 'insertParagraph': {\n Editor.insertBreak(editor)\n break\n }\n\n case 'insertFromComposition':\n case 'insertFromDrop':\n case 'insertFromPaste':\n case 'insertFromYank':\n case 'insertReplacementText':\n case 'insertText': {\n if (type === 'insertFromComposition') {\n // COMPAT: in Safari, `compositionend` is dispatched after the\n // `beforeinput` for \"insertFromComposition\". But if we wait for it\n // then we will abort because we're still composing and the selection\n // won't be updated properly.\n // https://www.w3.org/TR/input-events-2/\n if (ReactEditor.isComposing(editor)) {\n setIsComposing(false)\n IS_COMPOSING.set(editor, false)\n }\n }\n\n // use a weak comparison instead of 'instanceof' to allow\n // programmatic access of paste events coming from external windows\n // like cypress where cy.window does not work realibly\n if (data?.constructor.name === 'DataTransfer') {\n ReactEditor.insertData(editor, data)\n } else if (typeof data === 'string') {\n // Only insertText operations use the native functionality, for now.\n // Potentially expand to single character deletes, as well.\n if (native) {\n deferredOperations.current.push(() =>\n Editor.insertText(editor, data)\n )\n } else {\n Editor.insertText(editor, data)\n }\n }\n\n break\n }\n }\n\n // Restore the actual user section if nothing manually set it.\n const toRestore = EDITOR_TO_USER_SELECTION.get(editor)?.unref()\n EDITOR_TO_USER_SELECTION.delete(editor)\n\n if (\n toRestore &&\n (!editor.selection || !Range.equals(editor.selection, toRestore))\n ) {\n Transforms.select(editor, toRestore)\n }\n }\n },\n [\n editor,\n onDOMSelectionChange,\n onUserInput,\n propsOnDOMBeforeInput,\n readOnly,\n scheduleOnDOMSelectionChange,\n ]\n )\n\n const callbackRef = useCallback(\n node => {\n if (node == null) {\n onDOMSelectionChange.cancel()\n scheduleOnDOMSelectionChange.cancel()\n\n EDITOR_TO_ELEMENT.delete(editor)\n NODE_TO_ELEMENT.delete(editor)\n\n if (ref.current && HAS_BEFORE_INPUT_SUPPORT) {\n // @ts-ignore The `beforeinput` event isn't recognized.\n ref.current.removeEventListener('beforeinput', onDOMBeforeInput)\n }\n } else {\n // Attach a native DOM event handler for `beforeinput` events, because React's\n // built-in `onBeforeInput` is actually a leaky polyfill that doesn't expose\n // real `beforeinput` events sadly... (2019/11/04)\n // https://github.com/facebook/react/issues/11211\n if (HAS_BEFORE_INPUT_SUPPORT) {\n // @ts-ignore The `beforeinput` event isn't recognized.\n node.addEventListener('beforeinput', onDOMBeforeInput)\n }\n }\n\n ref.current = node\n },\n [\n onDOMSelectionChange,\n scheduleOnDOMSelectionChange,\n editor,\n onDOMBeforeInput,\n ]\n )\n\n // Attach a native DOM event handler for `selectionchange`, because React's\n // built-in `onSelect` handler doesn't fire for all selection changes. It's a\n // leaky polyfill that only fires on keypresses or clicks. Instead, we want to\n // fire for any change to the selection inside the editor. (2019/11/04)\n // https://github.com/facebook/react/issues/5785\n useIsomorphicLayoutEffect(() => {\n const window = ReactEditor.getWindow(editor)\n\n window.document.addEventListener(\n 'selectionchange',\n scheduleOnDOMSelectionChange\n )\n\n return () => {\n window.document.removeEventListener(\n 'selectionchange',\n scheduleOnDOMSelectionChange\n )\n }\n }, [scheduleOnDOMSelectionChange])\n\n const decorations = decorate([editor, []])\n\n const showPlaceholder =\n placeholder &&\n editor.children.length === 1 &&\n Array.from(Node.texts(editor)).length === 1 &&\n Node.string(editor) === '' &&\n !isComposing\n\n const placeHolderResizeHandler = useCallback(\n (placeholderEl: HTMLElement | null) => {\n if (placeholderEl && showPlaceholder) {\n setPlaceholderHeight(placeholderEl.getBoundingClientRect()?.height)\n } else {\n setPlaceholderHeight(undefined)\n }\n },\n [showPlaceholder]\n )\n\n if (showPlaceholder) {\n const start = Editor.start(editor, [])\n decorations.push({\n [PLACEHOLDER_SYMBOL]: true,\n placeholder,\n onPlaceholderResize: placeHolderResizeHandler,\n anchor: start,\n focus: start,\n })\n }\n\n const { marks } = editor\n state.hasMarkPlaceholder = false\n\n if (editor.selection && Range.isCollapsed(editor.selection) && marks) {\n const { anchor } = editor.selection\n const leaf = Node.leaf(editor, anchor.path)\n const { text, ...rest } = leaf\n\n // While marks isn't a 'complete' text, we can still use loose Text.equals\n // here which only compares marks anyway.\n if (!Text.equals(leaf, marks as Text, { loose: true })) {\n state.hasMarkPlaceholder = true\n\n const unset = Object.fromEntries(\n Object.keys(rest).map(mark => [mark, null])\n )\n\n decorations.push({\n [MARK_PLACEHOLDER_SYMBOL]: true,\n ...unset,\n ...marks,\n\n anchor,\n focus: anchor,\n })\n }\n }\n\n // Update EDITOR_TO_MARK_PLACEHOLDER_MARKS in setTimeout useEffect to ensure we don't set it\n // before we receive the composition end event.\n useEffect(() => {\n setTimeout(() => {\n const { selection } = editor\n if (selection) {\n const { anchor } = selection\n const text = Node.leaf(editor, anchor.path)\n\n // While marks isn't a 'complete' text, we can still use loose Text.equals\n // here which only compares marks anyway.\n if (marks && !Text.equals(text, marks as Text, { loose: true })) {\n EDITOR_TO_PENDING_INSERTION_MARKS.set(editor, marks)\n return\n }\n }\n\n EDITOR_TO_PENDING_INSERTION_MARKS.delete(editor)\n })\n })\n\n return (\n <ReadOnlyContext.Provider value={readOnly}>\n <DecorateContext.Provider value={decorate}>\n <RestoreDOM node={ref} receivedUserInput={receivedUserInput}>\n <Component\n role={readOnly ? undefined : 'textbox'}\n aria-multiline={readOnly ? undefined : true}\n {...attributes}\n // COMPAT: Certain browsers don't support the `beforeinput` event, so we'd\n // have to use hacks to make these replacement-based features work.\n // For SSR situations HAS_BEFORE_INPUT_SUPPORT is false and results in prop\n // mismatch warning app moves to browser. Pass-through consumer props when\n // not CAN_USE_DOM (SSR) and default to falsy value\n spellCheck={\n HAS_BEFORE_INPUT_SUPPORT || !CAN_USE_DOM\n ? attributes.spellCheck\n : false\n }\n autoCorrect={\n HAS_BEFORE_INPUT_SUPPORT || !CAN_USE_DOM\n ? attributes.autoCorrect\n : 'false'\n }\n autoCapitalize={\n HAS_BEFORE_INPUT_SUPPORT || !CAN_USE_DOM\n ? attributes.autoCapitalize\n : 'false'\n }\n data-slate-editor\n data-slate-node=\"value\"\n // explicitly set this\n contentEditable={!readOnly}\n // in some cases, a decoration needs access to the range / selection to decorate a text node,\n // then you will select the whole text node when you select part the of text\n // this magic zIndex=\"-1\" will fix it\n zindex={-1}\n suppressContentEditableWarning\n ref={callbackRef}\n style={{\n ...(disableDefaultStyles\n ? {}\n : {\n // Allow positioning relative to the editable element.\n position: 'relative',\n // Preserve adjacent whitespace and new lines.\n whiteSpace: 'pre-wrap',\n // Allow words to break if they are too long.\n wordWrap: 'break-word',\n // Make the minimum height that of the placeholder.\n ...(placeholderHeight\n ? { minHeight: placeholderHeight }\n : {}),\n }),\n // Allow for passed-in styles to override anything.\n ...userStyle,\n }}\n onBeforeInput={useCallback(\n (event: React.FormEvent<HTMLDivElement>) => {\n // COMPAT: Certain browsers don't support the `beforeinput` event, so we\n // fall back to React's leaky polyfill instead just for it. It\n // only works for the `insertText` input type.\n if (\n !HAS_BEFORE_INPUT_SUPPORT &&\n !readOnly &&\n !isEventHandled(event, attributes.onBeforeInput) &&\n ReactEditor.hasSelectableTarget(editor, event.target)\n ) {\n event.preventDefault()\n if (!ReactEditor.isComposing(editor)) {\n const text = (event as any).data as string\n Editor.insertText(editor, text)\n }\n }\n },\n [attributes.onBeforeInput, editor, readOnly]\n )}\n onInput={useCallback(\n (event: React.FormEvent<HTMLDivElement>) => {\n if (isEventHandled(event, attributes.onInput)) {\n return\n }\n\n if (androidInputManagerRef.current) {\n androidInputManagerRef.current.handleInput()\n return\n }\n\n // Flush native operations, as native events will have propogated\n // and we can correctly compare DOM text values in components\n // to stop rendering, so that browser functions like autocorrect\n // and spellcheck work as expected.\n for (const op of deferredOperations.current) {\n op()\n }\n deferredOperations.current = []\n },\n [attributes.onInput]\n )}\n onBlur={useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n if (\n readOnly ||\n state.isUpdatingSelection ||\n !ReactEditor.hasSelectableTarget(editor, event.target) ||\n isEventHandled(event, attributes.onBlur)\n ) {\n return\n }\n\n // COMPAT: If the current `activeElement` is still the previous\n // one, this is due to the window being blurred when the tab\n // itself becomes unfocused, so we want to abort early to allow to\n // editor to stay focused when the tab becomes focused again.\n const root = ReactEditor.findDocumentOrShadowRoot(editor)\n if (state.latestElement === root.activeElement) {\n return\n }\n\n const { relatedTarget } = event\n const el = ReactEditor.toDOMNode(editor, editor)\n\n // COMPAT: The event should be ignored if the focus is returning\n // to the editor from an embedded editable element (eg. an <input>\n // element inside a void node).\n if (relatedTarget === el) {\n return\n }\n\n // COMPAT: The event should be ignored if the focus is moving from\n // the editor to inside a void node's spacer element.\n if (\n isDOMElement(relatedTarget) &&\n relatedTarget.hasAttribute('data-slate-spacer')\n ) {\n return\n }\n\n // COMPAT: The event should be ignored if the focus is moving to a\n // non- editable section of an element that isn't a void node (eg.\n // a list item of the check list example).\n if (\n relatedTarget != null &&\n isDOMNode(relatedTarget) &&\n ReactEditor.hasDOMNode(editor, relatedTarget)\n ) {\n const node = ReactEditor.toSlateNode(editor, relatedTarget)\n\n if (Element.isElement(node) && !editor.isVoid(node)) {\n return\n }\n }\n\n // COMPAT: Safari doesn't always remove the selection even if the content-\n // editable element no longer has focus. Refer to:\n // https://stackoverflow.com/questions/12353247/force-contenteditable-div-to-stop-accepting-input-after-it-loses-focus-under-web\n if (IS_WEBKIT) {\n const domSelection = root.getSelection()\n domSelection?.removeAllRanges()\n }\n\n IS_FOCUSED.delete(editor)\n },\n [\n readOnly,\n state.isUpdatingSelection,\n state.latestElement,\n editor,\n attributes.onBlur,\n ]\n )}\n onClick={useCallback(\n (event: React.MouseEvent<HTMLDivElement>) => {\n if (\n ReactEditor.hasTarget(editor, event.target) &&\n !isEventHandled(event, attributes.onClick) &&\n isDOMNode(event.target)\n ) {\n const node = ReactEditor.toSlateNode(editor, event.target)\n const path = ReactEditor.findPath(editor, node)\n\n // At this time, the Slate document may be arbitrarily different,\n // because onClick handlers can change the document before we get here.\n // Therefore we must check that this path actually exists,\n // and that it still refers to the same node.\n if (\n !Editor.hasPath(editor, path) ||\n Node.get(editor, path) !== node\n ) {\n return\n }\n\n if (event.detail === TRIPLE_CLICK && path.length >= 1) {\n let blockPath = path\n if (\n !(Element.isElement(node) && Editor.isBlock(editor, node))\n ) {\n const block = Editor.above(editor, {\n match: n =>\n Element.isElement(n) && Editor.isBlock(editor, n),\n at: path,\n })\n\n blockPath = block?.[1] ?? path.slice(0, 1)\n }\n\n const range = Editor.range(editor, blockPath)\n Transforms.select(editor, range)\n return\n }\n\n if (readOnly) {\n return\n }\n\n const start = Editor.start(editor, path)\n const end = Editor.end(editor, path)\n const startVoid = Editor.void(editor, { at: start })\n const endVoid = Editor.void(editor, { at: end })\n\n if (\n startVoid &&\n endVoid &&\n Path.equals(startVoid[1], endVoid[1])\n ) {\n const range = Editor.range(editor, start)\n Transforms.select(editor, range)\n }\n }\n },\n [editor, attributes.onClick, readOnly]\n )}\n onCompositionEnd={useCallback(\n (event: React.CompositionEvent<HTMLDivElement>) => {\n if (ReactEditor.hasSelectableTarget(editor, event.target)) {\n if (ReactEditor.isComposing(editor)) {\n setIsComposing(false)\n IS_COMPOSING.set(editor, false)\n }\n\n androidInputManagerRef.current?.handleCompositionEnd(event)\n\n if (\n isEventHandled(event, attributes.onCompositionEnd) ||\n IS_ANDROID\n ) {\n return\n }\n\n // COMPAT: In Chrome, `beforeinput` events for compositions\n // aren't correct and never fire the \"insertFromComposition\"\n // type that we need. So instead, insert whenever a composition\n // ends since it will already have been committed to the DOM.\n if (\n !IS_WEBKIT &&\n !IS_FIREFOX_LEGACY &&\n !IS_IOS &&\n !IS_WECHATBROWSER &&\n !IS_UC_MOBILE &&\n event.data\n ) {\n const placeholderMarks = EDITOR_TO_PENDING_INSERTION_MARKS.get(\n editor\n )\n EDITOR_TO_PENDING_INSERTION_MARKS.delete(editor)\n\n // Ensure we insert text with the marks the user was actually seeing\n if (placeholderMarks !== undefined) {\n EDITOR_TO_USER_MARKS.set(editor, editor.marks)\n editor.marks = placeholderMarks\n }\n\n Editor.insertText(editor, event.data)\n\n const userMarks = EDITOR_TO_USER_MARKS.get(editor)\n EDITOR_TO_USER_MARKS.delete(editor)\n if (userMarks !== undefined) {\n editor.marks = userMarks\n }\n }\n }\n },\n [attributes.onCompositionEnd, editor]\n )}\n onCompositionUpdate={useCallback(\n (event: React.CompositionEvent<HTMLDivElement>) => {\n if (\n ReactEditor.hasSelectableTarget(editor, event.target) &&\n !isEventHandled(event, attributes.onCompositionUpdate)\n ) {\n if (!ReactEditor.isComposing(editor)) {\n setIsComposing(true)\n IS_COMPOSING.set(editor, true)\n }\n }\n },\n [attributes.onCompositionUpdate, editor]\n )}\n onCompositionStart={useCallback(\n (event: React.CompositionEvent<HTMLDivElement>) => {\n if (ReactEditor.hasSelectableTarget(editor, event.target)) {\n androidInputManagerRef.current?.handleCompositionStart(event)\n\n if (\n isEventHandled(event, attributes.onCompositionStart) ||\n IS_ANDROID\n ) {\n return\n }\n\n setIsComposing(true)\n\n const { selection } = editor\n if (selection) {\n if (Range.isExpanded(selection)) {\n Editor.deleteFragment(editor)\n return\n }\n const inline = Editor.above(editor, {\n match: n =>\n Element.isElement(n) && Editor.isInline(editor, n),\n mode: 'highest',\n })\n if (inline) {\n const [, inlinePath] = inline\n if (Editor.isEnd(editor, selection.anchor, inlinePath)) {\n const point = Editor.after(editor, inlinePath)!\n Transforms.setSelection(editor, {\n anchor: point,\n focus: point,\n })\n }\n }\n }\n }\n },\n [attributes.onCompositionStart, editor]\n )}\n onCopy={useCallback(\n (event: React.ClipboardEvent<HTMLDivElement>) => {\n if (\n ReactEditor.hasSelectableTarget(editor, event.target) &&\n !isEventHandled(event, attributes.onCopy) &&\n !isDOMEventTargetInput(event)\n ) {\n event.preventDefault()\n ReactEditor.setFragmentData(\n editor,\n event.clipboardData,\n 'copy'\n )\n }\n },\n [attributes.onCopy, editor]\n )}\n onCut={useCallback(\n (event: React.ClipboardEvent<HTMLDivElement>) => {\n if (\n !readOnly &&\n ReactEditor.hasSelectableTarget(editor, event.target) &&\n !isEventHandled(event, attributes.onCut) &&\n !isDOMEventTargetInput(event)\n ) {\n event.preventDefault()\n ReactEditor.setFragmentData(\n editor,\n event.clipboardData,\n 'cut'\n )\n const { selection } = editor\n\n if (selection) {\n if (Range.isExpanded(selection)) {\n Editor.deleteFragment(editor)\n } else {\n const node = Node.parent(editor, selection.anchor.path)\n if (Editor.isVoid(editor, node)) {\n Transforms.delete(editor)\n }\n }\n }\n }\n },\n [readOnly, editor, attributes.onCut]\n )}\n onDragOver={useCallback(\n (event: React.DragEvent<HTMLDivElement>) => {\n if (\n ReactEditor.hasTarget(editor, event.target) &&\n !isEventHandled(event, attributes.onDragOver)\n ) {\n // Only when the target is void, call `preventDefault` to signal\n // that drops are allowed. Editable content is droppable by\n // default, and calling `preventDefault` hides the cursor.\n const node = ReactEditor.toSlateNode(editor, event.target)\n\n if (Element.isElement(node) && Editor.isVoid(editor, node)) {\n event.preventDefault()\n }\n }\n },\n [attributes.onDragOver, editor]\n )}\n onDragStart={useCallback(\n (event: React.DragEvent<HTMLDivElement>) => {\n if (\n !readOnly &&\n ReactEditor.hasTarget(editor, event.target) &&\n !isEventHandled(event, attributes.onDragStart)\n ) {\n const node = ReactEditor.toSlateNode(editor, event.target)\n const path = ReactEditor.findPath(editor, node)\n const voidMatch =\n (Element.isElement(node) && Editor.isVoid(editor, node)) ||\n Editor.void(editor, { at: path, voids: true })\n\n // If starting a drag on a void node, make sure it is selected\n // so that it shows up in the selection's fragment.\n if (voidMatch) {\n const range = Editor.range(editor, path)\n Transforms.select(editor, range)\n }\n\n state.isDraggingInternally = true\n\n ReactEditor.setFragmentData(\n editor,\n event.dataTransfer,\n 'drag'\n )\n }\n },\n [readOnly, editor, attributes.onDragStart, state]\n )}\n onDrop={useCallback(\n (event: React.DragEvent<HTMLDivElement>) => {\n if (\n !readOnly &&\n ReactEditor.hasTarget(editor, event.target) &&\n !isEventHandled(event, attributes.onDrop)\n ) {\n event.preventDefault()\n\n // Keep a reference to the dragged range before updating selection\n const draggedRange = editor.selection\n\n // Find the range where the drop happened\n const range = ReactEditor.findEventRange(editor, event)\n const data = event.dataTransfer\n\n Transforms.select(editor, range)\n\n if (state.isDraggingInternally) {\n if (\n draggedRange &&\n !Range.equals(draggedRange, range) &&\n !Editor.void(editor, { at: range, voids: true })\n ) {\n Transforms.delete(editor, {\n at: draggedRange,\n })\n }\n }\n\n ReactEditor.insertData(editor, data)\n\n // When dragging from another source into the editor, it's possible\n // that the current editor does not have focus.\n if (!ReactEditor.isFocused(editor)) {\n ReactEditor.focus(editor)\n }\n }\n\n state.isDraggingInternally = false\n },\n [readOnly, editor, attributes.onDrop, state]\n )}\n onDragEnd={useCallback(\n (event: React.DragEvent<HTMLDivElement>) => {\n if (\n !readOnly &&\n state.isDraggingInternally &&\n attributes.onDragEnd &&\n ReactEditor.hasTarget(editor, event.target)\n ) {\n attributes.onDragEnd(event)\n }\n\n // When dropping on a different droppable element than the current editor,\n // `onDrop` is not called. So we need to clean up in `onDragEnd` instead.\n // Note: `onDragEnd` is only called when `onDrop` is not called\n state.isDraggingInternally = false\n },\n [readOnly, state, attributes, editor]\n )}\n onFocus={useCallback(\n (event: React.FocusEvent<HTMLDivElement>) => {\n if (\n !readOnly &&\n !state.isUpdatingSelection &&\n ReactEditor.hasEditableTarget(editor, event.target) &&\n !isEventHandled(event, attributes.onFocus)\n ) {\n const el = ReactEditor.toDOMNode(editor, editor)\n const root = ReactEditor.findDocumentOrShadowRoot(editor)\n state.latestElement = root.activeElement\n\n // COMPAT: If the editor has nested editable elements, the focus\n // can go to them. In Firefox, this must be prevented because it\n // results in issues with keyboard navigation. (2017/03/30)\n if (IS_FIREFOX && event.target !== el) {\n el.focus()\n return\n }\n\n IS_FOCUSED.set(editor, true)\n }\n },\n [readOnly, state, editor, attributes.onFocus]\n )}\n onKeyDown={useCallback(\n (event: React.KeyboardEvent<HTMLDivElement>) => {\n if (\n !readOnly &&\n ReactEditor.hasEditableTarget(editor, event.target)\n ) {\n androidInputManagerRef.current?.handleKeyDown(event)\n\n const { nativeEvent } = event\n\n // COMPAT: The composition end event isn't fired reliably in all browsers,\n // so we sometimes might end up stuck in a composition state even though we\n // aren't composing any more.\n if (\n ReactEditor.isComposing(editor) &&\n nativeEvent.isComposing === false\n ) {\n IS_COMPOSING.set(editor, false)\n setIsComposing(false)\n }\n\n if (\n isEventHandled(event, attributes.onKeyDown) ||\n ReactEditor.isComposing(editor)\n ) {\n return\n }\n\n const { selection } = editor\n const element =\n editor.children[\n selection !== null ? selection.focus.path[0] : 0\n ]\n const isRTL = getDirection(Node.string(element)) === 'rtl'\n\n // COMPAT: Since we prevent the default behavior on\n // `beforeinput` events, the browser doesn't think there's ever\n // any history stack to undo or redo, so we have to manage these\n // hotkeys ourselves. (2019/11/06)\n if (Hotkeys.isRedo(nativeEvent)) {\n event.preventDefault()\n const maybeHistoryEditor: any = editor\n\n if (typeof maybeHistoryEditor.redo === 'function') {\n maybeHistoryEditor.redo()\n }\n\n return\n }\n\n if (Hotkeys.isUndo(nativeEvent)) {\n event.preventDefault()\n const maybeHistoryEditor: any = editor\n\n if (typeof maybeHistoryEditor.undo === 'function') {\n maybeHistoryEditor.undo()\n }\n\n return\n }\n\n // COMPAT: Certain browsers don't handle the selection updates\n // properly. In Chrome, the selection isn't properly extended.\n // And in Firefox, the selection isn't properly collapsed.\n // (2017/10/17)\n if (Hotkeys.isMoveLineBackward(nativeEvent)) {\n event.preventDefault()\n Transforms.move(editor, { unit: 'line', reverse: true })\n return\n }\n\n if (Hotkeys.isMoveLineForward(nativeEvent)) {\n event.preventDefault()\n Transforms.move(editor, { unit: 'line' })\n return\n }\n\n if (Hotkeys.isExtendLineBackward(nativeEvent)) {\n event.preventDefault()\n Transforms.move(editor, {\n unit: 'line',\n edge: 'focus',\n reverse: true,\n })\n return\n }\n\n if (Hotkeys.isExtendLineForward(nativeEvent)) {\n event.preventDefault()\n Transforms.move(editor, { unit: 'line', edge: 'focus' })\n return\n }\n\n // COMPAT: If a void node is selected, or a zero-width text node\n // adjacent to an inline is selected, we need to handle these\n // hotkeys manually because browsers won't be able to skip over\n // the void node with the zero-width space not being an empty\n // string.\n if (Hotkeys.isMoveBackward(nativeEvent)) {\n event.preventDefault()\n\n if (selection && Range.isCollapsed(selection)) {\n Transforms.move(editor, { reverse: !isRTL })\n } else {\n Transforms.collapse(editor, { edge: 'start' })\n }\n\n return\n }\n\n if (Hotkeys.isMoveForward(nativeEvent)) {\n event.preventDefault()\n\n if (selection && Range.isCollapsed(selection)) {\n Transforms.move(editor, { reverse: isRTL })\n } else {\n Transforms.collapse(editor, { edge: 'end' })\n }\n\n return\n }\n\n if (Hotkeys.isMoveWordBackward(nativeEvent)) {\n event.preventDefault()\n\n if (selection && Range.isExpanded(selection)) {\n Transforms.collapse(editor, { edge: 'focus' })\n }\n\n Transforms.move(editor, { unit: 'word', reverse: !isRTL })\n return\n }\n\n if (Hotkeys.isMoveWordForward(nativeEvent)) {\n event.preventDefault()\n\n if (selection && Range.isExpanded(selection)) {\n Transforms.collapse(editor, { edge: 'focus' })\n }\n\n Transforms.move(editor, { unit: 'word', reverse: isRTL })\n return\n }\n\n // COMPAT: Certain browsers don't support the `beforeinput` event, so we\n // fall back to guessing at the input intention for hotkeys.\n // COMPAT: In iOS, some of these hotkeys are handled in the\n if (!HAS_BEFORE_INPUT_SUPPORT) {\n // We don't have a core behavior for these, but they change the\n // DOM if we don't prevent them, so we have to.\n if (\n Hotkeys.isBold(nativeEvent) ||\n Hotkeys.isItalic(nativeEvent) ||\n Hotkeys.isTransposeCharacter(nativeEvent)\n ) {\n event.preventDefault()\n return\n }\n\n if (Hotkeys.isSoftBreak(nativeEvent)) {\n event.preventDefault()\n Editor.insertSoftBreak(editor)\n return\n }\n\n if (Hotkeys.isSplitBlock(nativeEvent)) {\n event.preventDefault()\n Editor.insertBreak(editor)\n return\n }\n\n if (Hotkeys.isDeleteBackward(nativeEvent)) {\n event.preventDefault()\n\n if (selection && Range.isExpanded(selection)) {\n Editor.deleteFragment(editor, { direction: 'backward' })\n } else {\n Editor.deleteBackward(editor)\n }\n\n return\n }\n\n if (Hotkeys.isDeleteForward(nativeEvent)) {\n event.preventDefault()\n\n if (selection && Range.isExpanded(selection)) {\n Editor.deleteFragment(editor, { direction: 'forward' })\n } else {\n Editor.deleteForward(editor)\n }\n\n return\n }\n\n if (Hotkeys.isDeleteLineBackward(nativeEvent)) {\n event.preventDefault()\n\n if (selection && Range.isExpanded(selection)) {\n Editor.deleteFragment(editor, { direction: 'backward' })\n } else {\n Editor.deleteBackward(editor, { unit: 'line' })\n }\n\n return\n }\n\n if (Hotkeys.isDeleteLineForward(nativeEvent)) {\n event.preventDefault()\n\n if (selection && Range.isExpanded(selection)) {\n Editor.deleteFragment(editor, { direction: 'forward' })\n } else {\n Editor.deleteForward(editor, { unit: 'line' })\n }\n\n return\n }\n\n if (Hotkeys.isDeleteWordBackward(nativeEvent)) {\n event.preventDefault()\n\n if (selection && Range.isExpanded(selection)) {\n Editor.deleteFragment(editor, { direction: 'backward' })\n } else {\n Editor.deleteBackward(editor, { unit: 'word' })\n }\n\n return\n }\n\n if (Hotkeys.isDeleteWordForward(nativeEvent)) {\n event.preventDefault()\n\n if (selection && Range.isExpanded(selection)) {\n Editor.deleteFragment(editor, { direction: 'forward' })\n } else {\n Editor.deleteForward(editor, { unit: 'word' })\n }\n\n return\n }\n } else {\n if (IS_CHROME || IS_WEBKIT) {\n // COMPAT: Chrome and Safari support `beforeinput` event but do not fire\n // an event when deleting backwards in a selected void inline node\n if (\n selection &&\n (Hotkeys.isDeleteBackward(nativeEvent) ||\n Hotkeys.isDeleteForward(nativeEvent)) &&\n Range.isCollapsed(selection)\n ) {\n const currentNode = Node.parent(\n editor,\n selection.anchor.path\n )\n\n if (\n Element.isElement(currentNode) &&\n Editor.isVoid(editor, currentNode) &&\n (Editor.isInline(editor, currentNode) ||\n Editor.isBlock(editor, currentNode))\n ) {\n event.preventDefault()\n Editor.deleteBackward(editor, { unit: 'block' })\n\n return\n }\n }\n }\n }\n }\n },\n [readOnly, editor, attributes.onKeyDown]\n )}\n onPaste={useCallback(\n (event: React.ClipboardEvent<HTMLDivElement>) => {\n if (\n !readOnly &&\n ReactEditor.hasEditableTarget(editor, event.target) &&\n !isEventHandled(event, attributes.onPaste)\n ) {\n // COMPAT: Certain browsers don't support the `beforeinput` event, so we\n // fall back to React's `onPaste` here instead.\n // COMPAT: Firefox, Chrome and Safari don't emit `beforeinput` events\n // when \"paste without formatting\" is used, so fallback. (2020/02/20)\n // COMPAT: Safari InputEvents generated by pasting won't include\n // application/x-slate-fragment items, so use the\n // ClipboardEvent here. (2023/03/15)\n if (\n !HAS_BEFORE_INPUT_SUPPORT ||\n isPlainTextOnlyPaste(event.nativeEvent) ||\n IS_WEBKIT\n ) {\n event.preventDefault()\n ReactEditor.insertData(editor, event.clipboardData)\n }\n }\n },\n [readOnly, editor, attributes.onPaste]\n )}\n >\n <Children\n decorations={decorations}\n node={editor}\n renderElement={renderElement}\n renderPlaceholder={renderPlaceholder}\n renderLeaf={renderLeaf}\n selection={editor.selection}\n />\n </Component>\n </RestoreDOM>\n </DecorateContext.Provider>\n </ReadOnlyContext.Provider>\n )\n}\n\n/**\n * The props that get passed to renderPlaceholder\n */\nexport type RenderPlaceholderProps = {\n children: any\n attributes: {\n 'data-slate-placeholder': boolean\n dir?: 'rtl'\n contentEditable: boolean\n ref: React.RefCallback<any>\n style: React.CSSProperties\n }\n}\n\n/**\n * The default placeholder element\n */\n\nexport const DefaultPlaceholder = ({\n attributes,\n children,\n}: RenderPlaceholderProps) => (\n // COMPAT: Artificially add a line-break to the end on the placeholder element\n // to prevent Android IMEs to pick up its content in autocorrect and to auto-capitalize the first letter\n <span {...attributes}>\n {children}\n {IS_ANDROID && <br />}\n </span>\n)\n\n/**\n * A default memoized decorate function.\n */\n\nexport const defaultDecorate: (entry: NodeEntry) => Range[] = () => []\n\n/**\n * A default implement to scroll dom range into view.\n */\n\nconst defaultScrollSelectionIntoView = (\n editor: ReactEditor,\n domRange: DOMRange\n) => {\n // This was affecting the selection of multiple blocks and dragging behavior,\n // so enabled only if the selection has been collapsed.\n if (\n domRange.getBoundingClientRect &&\n (!editor.selection ||\n (editor.selection && Range.isCollapsed(editor.selection)))\n ) {\n const leafEl = domRange.startContainer.parentElement!\n leafEl.getBoundingClientRect = domRange.getBoundingClientRect.bind(domRange)\n scrollIntoView(leafEl, {\n scrollMode: 'if-needed',\n })\n\n // @ts-expect-error an unorthodox delete D:\n delete leafEl.getBoundingClientRect\n }\n}\n\n/**\n * Check if an event is overrided by a handler.\n */\n\nexport const isEventHandled = <\n EventType extends React.SyntheticEvent<unknown, unknown>\n>(\n event: EventType,\n handler?: (event: EventType) => void | boolean\n) => {\n if (!handler) {\n return false\n }\n // The custom event handler may return a boolean to specify whether the event\n // shall be treated as being handled or not.\n const shouldTreatEventAsHandled = handler(event)\n\n if (shouldTreatEventAsHandled != null) {\n return shouldTreatEventAsHandled\n }\n\n return event.isDefaultPrevented() || event.isPropagationStopped()\n}\n\n/**\n * Check if the event's target is an input element\n */\nexport const isDOMEventTargetInput = <\n EventType extends React.SyntheticEvent<unknown, unknown>\n>(\n event: EventType\n) => {\n return (\n isDOMNode(event.target) &&\n (event.target instanceof HTMLInputElement ||\n event.target instanceof HTMLTextAreaElement)\n )\n}\n\n/**\n * Check if a DOM event is overrided by a handler.\n */\n\nexport const isDOMEventHandled = <E extends Event>(\n event: E,\n handler?: (event: E) => void | boolean\n) => {\n if (!handler) {\n return false\n }\n\n // The custom event handler may return a boolean to specify whether the event\n // shall be treated as being handled or not.\n const shouldTreatEventAsHandled = handler(event)\n\n if (shouldTreatEventAsHandled != null) {\n return shouldTreatEventAsHandled\n }\n\n return event.defaultPrevented\n}\n","import { createContext, useContext } from 'react'\n\n/**\n * A React context for sharing the `focused` state of the editor.\n */\n\nexport const FocusedContext = createContext(false)\n\n/**\n * Get the current `focused` state of the editor.\n */\n\nexport const useFocused = (): boolean => {\n return useContext(FocusedContext)\n}\n","import {\n createContext,\n useCallback,\n useContext,\n useMemo,\n useReducer,\n useRef,\n} from 'react'\nimport { Editor } from 'slate'\nimport { useIsomorphicLayoutEffect } from './use-isomorphic-layout-effect'\n\nfunction isError(error: any): error is Error {\n return error instanceof Error\n}\n\ntype EditorChangeHandler = (editor: Editor) => void\n/**\n * A React context for sharing the editor selector context in a way to control rerenders\n */\n\nexport const SlateSelectorContext = createContext<{\n getSlate: () => Editor\n addEventListener: (callback: EditorChangeHandler) => () => void\n}>({} as any)\n\nconst refEquality = (a: any, b: any) => a === b\n\n/**\n * use redux style selectors to prevent rerendering on every keystroke.\n * Bear in mind rerendering can only prevented if the returned value is a value type or for reference types (e.g. objects and arrays) add a custom equality function.\n *\n * Example:\n * ```\n * const isSelectionActive = useSlateSelector(editor => Boolean(editor.selection));\n * ```\n */\nexport function useSlateSelector<T>(\n selector: (editor: Editor) => T,\n equalityFn: (a: T, b: T) => boolean = refEquality\n) {\n const [, forceRender] = useReducer(s => s + 1, 0)\n const context = useContext(SlateSelectorContext)\n if (!context) {\n throw new Error(\n `The \\`useSlateSelector\\` hook must be used inside the <Slate> component's context.`\n )\n }\n const { getSlate, addEventListener } = context\n\n const latestSubscriptionCallbackError = useRef<Error | undefined>()\n const latestSelector = useRef<(editor: Editor) => T>(() => null as any)\n const latestSelectedState = useRef<T>((null as any) as T)\n let selectedState: T\n\n try {\n if (\n selector !== latestSelector.current ||\n latestSubscriptionCallbackError.current\n ) {\n selectedState = selector(getSlate())\n } else {\n selectedState = latestSelectedState.current\n }\n } catch (err) {\n if (latestSubscriptionCallbackError.current && isError(err)) {\n err.message += `\\nThe error may be correlated with this previous error:\\n${latestSubscriptionCallbackError.current.stack}\\n\\n`\n }\n\n throw err\n }\n useIsomorphicLayoutEffect(() => {\n latestSelector.current = selector\n latestSelectedState.current = selectedState\n latestSubscriptionCallbackError.current = undefined\n })\n\n useIsomorphicLayoutEffect(\n () => {\n function checkForUpdates() {\n try {\n const newSelectedState = latestSelector.current(getSlate())\n\n if (equalityFn(newSelectedState, latestSelectedState.current)) {\n return\n }\n\n latestSelectedState.current = newSelectedState\n } catch (err) {\n // we ignore all errors here, since when the component\n // is re-rendered, the selectors are called again, and\n // will throw again, if neither props nor store state\n // changed\n latestSubscriptionCallbackError.current = err\n }\n\n forceRender()\n }\n\n const unsubscribe = addEventListener(checkForUpdates)\n\n checkForUpdates()\n\n return () => unsubscribe()\n },\n // don't rerender on equalityFn change since we want to be able to define it inline\n [addEventListener, getSlate]\n )\n\n return selectedState\n}\n\n/**\n * Create selector context with editor updating on every editor change\n */\nexport function useSelectorContext(editor: Editor) {\n const eventListeners = useRef<EditorChangeHandler[]>([]).current\n const slateRef = useRef<{\n editor: Editor\n }>({\n editor,\n }).current\n const onChange = useCallback(\n (editor: Editor) => {\n slateRef.editor = editor\n eventListeners.forEach((listener: EditorChangeHandler) =>\n listener(editor)\n )\n },\n [eventListeners, slateRef]\n )\n\n const selectorContext = useMemo(() => {\n return {\n getSlate: () => slateRef.editor,\n addEventListener: (callback: EditorChangeHandler) => {\n eventListeners.push(callback)\n return () => {\n eventListeners.splice(eventListeners.indexOf(callback), 1)\n }\n },\n }\n }, [eventListeners, slateRef])\n return { selectorContext, onChange }\n}\n","import React, { useCallback, useEffect, useState } from 'react'\nimport { Descendant, Editor, Node, Scrubber } from 'slate'\nimport { FocusedContext } from '../hooks/use-focused'\nimport { useIsomorphicLayoutEffect } from '../hooks/use-isomorphic-layout-effect'\nimport { SlateContext, SlateContextValue } from '../hooks/use-slate'\nimport {\n useSelectorContext,\n SlateSelectorContext,\n} from '../hooks/use-slate-selector'\nimport { EditorContext } from '../hooks/use-slate-static'\nimport { ReactEditor } from '../plugin/react-editor'\nimport { REACT_MAJOR_VERSION } from '../utils/environment'\nimport { EDITOR_TO_ON_CHANGE } from '../utils/weak-maps'\n\n/**\n * A wrapper around the provider to handle `onChange` events, because the editor\n * is a mutable singleton so it won't ever register as \"changed\" otherwise.\n */\n\nexport const Slate = (props: {\n editor: ReactEditor\n initialValue: Descendant[]\n children: React.ReactNode\n onChange?: (value: Descendant[]) => void\n}) => {\n const { editor, children, onChange, initialValue, ...rest } = props\n\n const [context, setContext] = React.useState<SlateContextValue>(() => {\n if (!Node.isNodeList(initialValue)) {\n throw new Error(\n `[Slate] initialValue is invalid! Expected a list of elements but got: ${Scrubber.stringify(\n initialValue\n )}`\n )\n }\n if (!Editor.isEditor(editor)) {\n throw new Error(\n `[Slate] editor is invalid! You passed: ${Scrubber.stringify(editor)}`\n )\n }\n editor.children = initialValue\n Object.assign(editor, rest)\n return { v: 0, editor }\n })\n\n const {\n selectorContext,\n onChange: handleSelectorChange,\n } = useSelectorContext(editor)\n\n const onContextChange = useCallback(() => {\n if (onChange) {\n onChange(editor.children)\n }\n\n setContext(prevContext => ({\n v: prevContext.v + 1,\n editor,\n }))\n handleSelectorChange(editor)\n }, [editor, handleSelectorChange, onChange])\n\n useEffect(() => {\n EDITOR_TO_ON_CHANGE.set(editor, onContextChange)\n\n return () => {\n EDITOR_TO_ON_CHANGE.set(editor, () => {})\n }\n }, [editor, onContextChange])\n\n const [isFocused, setIsFocused] = useState(ReactEditor.isFocused(editor))\n\n useEffect(() => {\n setIsFocused(ReactEditor.isFocused(editor))\n }, [editor])\n\n useIsomorphicLayoutEffect(() => {\n const fn = () => setIsFocused(ReactEditor.isFocused(editor))\n if (REACT_MAJOR_VERSION >= 17) {\n // In React >= 17 onFocus and onBlur listen to the focusin and focusout events during the bubbling phase.\n // Therefore in order for <Editable />'s handlers to run first, which is necessary for ReactEditor.isFocused(editor)\n // to return the correct value, we have to listen to the focusin and focusout events without useCapture here.\n document.addEventListener('focusin', fn)\n document.addEventListener('focusout', fn)\n return () => {\n document.removeEventListener('focusin', fn)\n document.removeEventListener('focusout', fn)\n }\n } else {\n document.addEventListener('focus', fn, true)\n document.addEventListener('blur', fn, true)\n return () => {\n document.removeEventListener('focus', fn, true)\n document.removeEventListener('blur', fn, true)\n }\n }\n }, [])\n\n return (\n <SlateSelectorContext.Provider value={selectorContext}>\n <SlateContext.Provider value={context}>\n <EditorContext.Provider value={context.editor}>\n <FocusedContext.Provider value={isFocused}>\n {children}\n </FocusedContext.Provider>\n </EditorContext.Provider>\n </SlateContext.Provider>\n </SlateSelectorContext.Provider>\n )\n}\n","import { useContext } from 'react'\n\nimport { EditorContext } from './use-slate-static'\n\n/**\n * Get the current editor object from the React context.\n * @deprecated Use useSlateStatic instead.\n */\n\nexport const useEditor = () => {\n const editor = useContext(EditorContext)\n\n if (!editor) {\n throw new Error(\n `The \\`useEditor\\` hook must be used inside the <Slate> component's context.`\n )\n }\n\n return editor\n}\n","import { BaseSelection, Range } from 'slate'\n\nimport { useSlateSelector } from './use-slate-selector'\n\n/**\n * Get the current slate selection.\n * Only triggers a rerender when the selection actually changes\n */\nexport const useSlateSelection = () => {\n return useSlateSelector(editor => editor.selection, isSelectionEqual)\n}\n\nconst isSelectionEqual = (a: BaseSelection, b: BaseSelection) => {\n if (!a && !b) return true\n if (!a || !b) return false\n return Range.equals(a, b)\n}\n","/**\n * Utilities for single-line deletion\n */\n\nimport { Editor, Range } from 'slate'\nimport { ReactEditor } from '../plugin/react-editor'\n\nconst doRectsIntersect = (rect: DOMRect, compareRect: DOMRect) => {\n const middle = (compareRect.top + compareRect.bottom) / 2\n\n return rect.top <= middle && rect.bottom >= middle\n}\n\nconst areRangesSameLine = (\n editor: ReactEditor,\n range1: Range,\n range2: Range\n) => {\n const rect1 = ReactEditor.toDOMRange(editor, range1).getBoundingClientRect()\n const rect2 = ReactEditor.toDOMRange(editor, range2).getBoundingClientRect()\n\n return doRectsIntersect(rect1, rect2) && doRectsIntersect(rect2, rect1)\n}\n\n/**\n * A helper utility that returns the end portion of a `Range`\n * which is located on a single line.\n *\n * @param {Editor} editor The editor object to compare against\n * @param {Range} parentRange The parent range to compare against\n * @returns {Range} A valid portion of the parentRange which is one a single line\n */\nexport const findCurrentLineRange = (\n editor: ReactEditor,\n parentRange: Range\n): Range => {\n const parentRangeBoundary = Editor.range(editor, Range.end(parentRange))\n const positions = Array.from(Editor.positions(editor, { at: parentRange }))\n\n let left = 0\n let right = positions.length\n let middle = Math.floor(right / 2)\n\n if (\n areRangesSameLine(\n editor,\n Editor.range(editor, positions[left]),\n parentRangeBoundary\n )\n ) {\n return Editor.range(editor, positions[left], parentRangeBoundary)\n }\n\n if (positions.length < 2) {\n return Editor.range(\n editor,\n positions[positions.length - 1],\n parentRangeBoundary\n )\n }\n\n while (middle !== positions.length && middle !== left) {\n if (\n areRangesSameLine(\n editor,\n Editor.range(editor, positions[middle]),\n parentRangeBoundary\n )\n ) {\n right = middle\n } else {\n left = middle\n }\n\n middle = Math.floor((left + right) / 2)\n }\n\n return Editor.range(editor, positions[right], parentRangeBoundary)\n}\n","import ReactDOM from 'react-dom'\nimport {\n BaseEditor,\n Editor,\n Element,\n Node,\n Operation,\n Path,\n PathRef,\n Point,\n Range,\n Transforms,\n} from 'slate'\nimport {\n TextDiff,\n transformPendingPoint,\n transformPendingRange,\n transformTextDiff,\n} from '../utils/diff-text'\nimport {\n getPlainText,\n getSlateFragmentAttribute,\n isDOMText,\n} from '../utils/dom'\nimport { Key } from '../utils/key'\nimport { findCurrentLineRange } from '../utils/lines'\nimport {\n EDITOR_TO_KEY_TO_ELEMENT,\n EDITOR_TO_ON_CHANGE,\n EDITOR_TO_PENDING_ACTION,\n EDITOR_TO_PENDING_DIFFS,\n EDITOR_TO_PENDING_INSERTION_MARKS,\n EDITOR_TO_PENDING_SELECTION,\n EDITOR_TO_SCHEDULE_FLUSH,\n EDITOR_TO_USER_MARKS,\n EDITOR_TO_USER_SELECTION,\n NODE_TO_KEY,\n} from '../utils/weak-maps'\nimport { ReactEditor } from './react-editor'\nimport { REACT_MAJOR_VERSION } from '../utils/environment'\n\n/**\n * `withReact` adds React and DOM specific behaviors to the editor.\n *\n * If you are using TypeScript, you must extend Slate's CustomTypes to use\n * this plugin.\n *\n * See https://docs.slatejs.org/concepts/11-typescript to learn how.\n */\n\nexport const withReact = <T extends BaseEditor>(\n editor: T,\n clipboardFormatKey = 'x-slate-fragment'\n): T & ReactEditor => {\n const e = editor as T & ReactEditor\n const { apply, onChange, deleteBackward, addMark, removeMark } = e\n\n // The WeakMap which maps a key to a specific HTMLElement must be scoped to the editor instance to\n // avoid collisions between editors in the DOM that share the same value.\n EDITOR_TO_KEY_TO_ELEMENT.set(e, new WeakMap())\n\n e.addMark = (key, value) => {\n EDITOR_TO_SCHEDULE_FLUSH.get(e)?.()\n\n if (\n !EDITOR_TO_PENDING_INSERTION_MARKS.get(e) &&\n EDITOR_TO_PENDING_DIFFS.get(e)?.length\n ) {\n // Ensure the current pending diffs originating from changes before the addMark\n // are applied with the current formatting\n EDITOR_TO_PENDING_INSERTION_MARKS.set(e, null)\n }\n\n EDITOR_TO_USER_MARKS.delete(e)\n\n addMark(key, value)\n }\n\n e.removeMark = key => {\n if (\n !EDITOR_TO_PENDING_INSERTION_MARKS.get(e) &&\n EDITOR_TO_PENDING_DIFFS.get(e)?.length\n ) {\n // Ensure the current pending diffs originating from changes before the addMark\n // are applied with the current formatting\n EDITOR_TO_PENDING_INSERTION_MARKS.set(e, null)\n }\n\n EDITOR_TO_USER_MARKS.delete(e)\n\n removeMark(key)\n }\n\n e.deleteBackward = unit => {\n if (unit !== 'line') {\n return deleteBackward(unit)\n }\n\n if (e.selection && Range.isCollapsed(e.selection)) {\n const parentBlockEntry = Editor.above(e, {\n match: n => Element.isElement(n) && Editor.isBlock(e, n),\n at: e.selection,\n })\n\n if (parentBlockEntry) {\n const [, parentBlockPath] = parentBlockEntry\n const parentElementRange = Editor.range(\n e,\n parentBlockPath,\n e.selection.anchor\n )\n\n const currentLineRange = findCurrentLineRange(e, parentElementRange)\n\n if (!Range.isCollapsed(currentLineRange)) {\n Transforms.delete(e, { at: currentLineRange })\n }\n }\n }\n }\n\n // This attempts to reset the NODE_TO_KEY entry to the correct value\n // as apply() changes the object reference and hence invalidates the NODE_TO_KEY entry\n e.apply = (op: Operation) => {\n const matches: [Path, Key][] = []\n const pathRefMatches: [PathRef, Key][] = []\n\n const pendingDiffs = EDITOR_TO_PENDING_DIFFS.get(e)\n if (pendingDiffs?.length) {\n const transformed = pendingDiffs\n .map(textDiff => transformTextDiff(textDiff, op))\n .filter(Boolean) as TextDiff[]\n\n EDITOR_TO_PENDING_DIFFS.set(e, transformed)\n }\n\n const pendingSelection = EDITOR_TO_PENDING_SELECTION.get(e)\n if (pendingSelection) {\n EDITOR_TO_PENDING_SELECTION.set(\n e,\n transformPendingRange(e, pendingSelection, op)\n )\n }\n\n const pendingAction = EDITOR_TO_PENDING_ACTION.get(e)\n if (pendingAction?.at) {\n const at = Point.isPoint(pendingAction?.at)\n ? transformPendingPoint(e, pendingAction.at, op)\n : transformPendingRange(e, pendingAction.at, op)\n\n EDITOR_TO_PENDING_ACTION.set(e, at ? { ...pendingAction, at } : null)\n }\n\n switch (op.type) {\n case 'insert_text':\n case 'remove_text':\n case 'set_node':\n case 'split_node': {\n matches.push(...getMatches(e, op.path))\n break\n }\n\n case 'set_selection': {\n // Selection was manually set, don't restore the user selection after the change.\n EDITOR_TO_USER_SELECTION.get(e)?.unref()\n EDITOR_TO_USER_SELECTION.delete(e)\n break\n }\n\n case 'insert_node':\n case 'remove_node': {\n matches.push(...getMatches(e, Path.parent(op.path)))\n break\n }\n\n case 'merge_node': {\n const prevPath = Path.previous(op.path)\n matches.push(...getMatches(e, prevPath))\n break\n }\n\n case 'move_node': {\n const commonPath = Path.common(\n Path.parent(op.path),\n Path.parent(op.newPath)\n )\n matches.push(...getMatches(e, commonPath))\n\n let changedPath: Path\n if (Path.isBefore(op.path, op.newPath)) {\n matches.push(...getMatches(e, Path.parent(op.path)))\n changedPath = op.newPath\n } else {\n matches.push(...getMatches(e, Path.parent(op.newPath)))\n changedPath = op.path\n }\n\n const changedNode = Node.get(editor, Path.parent(changedPath))\n const changedNodeKey = ReactEditor.findKey(e, changedNode)\n const changedPathRef = Editor.pathRef(e, Path.parent(changedPath))\n pathRefMatches.push([changedPathRef, changedNodeKey])\n\n break\n }\n }\n\n apply(op)\n\n for (const [path, key] of matches) {\n const [node] = Editor.node(e, path)\n NODE_TO_KEY.set(node, key)\n }\n\n for (const [pathRef, key] of pathRefMatches) {\n if (pathRef.current) {\n const [node] = Editor.node(e, pathRef.current)\n NODE_TO_KEY.set(node, key)\n }\n }\n }\n\n e.setFragmentData = (data: Pick<DataTransfer, 'getData' | 'setData'>) => {\n const { selection } = e\n\n if (!selection) {\n return\n }\n\n const [start, end] = Range.edges(selection)\n const startVoid = Editor.void(e, { at: start.path })\n const endVoid = Editor.void(e, { at: end.path })\n\n if (Range.isCollapsed(selection) && !startVoid) {\n return\n }\n\n // Create a fake selection so that we can add a Base64-encoded copy of the\n // fragment to the HTML, to decode on future pastes.\n const domRange = ReactEditor.toDOMRange(e, selection)\n let contents = domRange.cloneContents()\n let attach = contents.childNodes[0] as HTMLElement\n\n // Make sure attach is non-empty, since empty nodes will not get copied.\n contents.childNodes.forEach(node => {\n if (node.textContent && node.textContent.trim() !== '') {\n attach = node as HTMLElement\n }\n })\n\n // COMPAT: If the end node is a void node, we need to move the end of the\n // range from the void node's spacer span, to the end of the void node's\n // content, since the spacer is before void's content in the DOM.\n if (endVoid) {\n const [voidNode] = endVoid\n const r = domRange.cloneRange()\n const domNode = ReactEditor.toDOMNode(e, voidNode)\n r.setEndAfter(domNode)\n contents = r.cloneContents()\n }\n\n // COMPAT: If the start node is a void node, we need to attach the encoded\n // fragment to the void node's content node instead of the spacer, because\n // attaching it to empty `<div>/<span>` nodes will end up having it erased by\n // most browsers. (2018/04/27)\n if (startVoid) {\n attach = contents.querySelector('[data-slate-spacer]')! as HTMLElement\n }\n\n // Remove any zero-width space spans from the cloned DOM so that they don't\n // show up elsewhere when pasted.\n Array.from(contents.querySelectorAll('[data-slate-zero-width]')).forEach(\n zw => {\n const isNewline = zw.getAttribute('data-slate-zero-width') === 'n'\n zw.textContent = isNewline ? '\\n' : ''\n }\n )\n\n // Set a `data-slate-fragment` attribute on a non-empty node, so it shows up\n // in the HTML, and can be used for intra-Slate pasting. If it's a text\n // node, wrap it in a `<span>` so we have something to set an attribute on.\n if (isDOMText(attach)) {\n const span = attach.ownerDocument.createElement('span')\n // COMPAT: In Chrome and Safari, if we don't add the `white-space` style\n // then leading and trailing spaces will be ignored. (2017/09/21)\n span.style.whiteSpace = 'pre'\n span.appendChild(attach)\n contents.appendChild(span)\n attach = span\n }\n\n const fragment = e.getFragment()\n const string = JSON.stringify(fragment)\n const encoded = window.btoa(encodeURIComponent(string))\n attach.setAttribute('data-slate-fragment', encoded)\n data.setData(`application/${clipboardFormatKey}`, encoded)\n\n // Add the content to a <div> so that we can get its inner HTML.\n const div = contents.ownerDocument.createElement('div')\n div.appendChild(contents)\n div.setAttribute('hidden', 'true')\n contents.ownerDocument.body.appendChild(div)\n data.setData('text/html', div.innerHTML)\n data.setData('text/plain', getPlainText(div))\n contents.ownerDocument.body.removeChild(div)\n return data\n }\n\n e.insertData = (data: DataTransfer) => {\n if (!e.insertFragmentData(data)) {\n e.insertTextData(data)\n }\n }\n\n e.insertFragmentData = (data: DataTransfer): boolean => {\n /**\n * Checking copied fragment from application/x-slate-fragment or data-slate-fragment\n */\n const fragment =\n data.getData(`application/${clipboardFormatKey}`) ||\n getSlateFragmentAttribute(data)\n\n if (fragment) {\n const decoded = decodeURIComponent(window.atob(fragment))\n const parsed = JSON.parse(decoded) as Node[]\n e.insertFragment(parsed)\n return true\n }\n return false\n }\n\n e.insertTextData = (data: DataTransfer): boolean => {\n const text = data.getData('text/plain')\n\n if (text) {\n const lines = text.split(/\\r\\n|\\r|\\n/)\n let split = false\n\n for (const line of lines) {\n if (split) {\n Transforms.splitNodes(e, { always: true })\n }\n\n e.insertText(line)\n split = true\n }\n return true\n }\n return false\n }\n\n e.onChange = options => {\n // COMPAT: React < 18 doesn't batch `setState` hook calls, which means\n // that the children and selection can get out of sync for one render\n // pass. So we have to use this unstable API to ensure it batches them.\n // (2019/12/03)\n // https://github.com/facebook/react/issues/14259#issuecomment-439702367\n const maybeBatchUpdates =\n REACT_MAJOR_VERSION < 18\n ? ReactDOM.unstable_batchedUpdates\n : (callback: () => void) => callback()\n\n maybeBatchUpdates(() => {\n const onContextChange = EDITOR_TO_ON_CHANGE.get(e)\n\n if (onContextChange) {\n onContextChange()\n }\n\n onChange(options)\n })\n }\n\n return e\n}\n\nconst getMatches = (e: Editor, path: Path) => {\n const matches: [Path, Key][] = []\n for (const [n, p] of Editor.levels(e, { at: path })) {\n const key = ReactEditor.findKey(e, n)\n matches.push([p, key])\n }\n return matches\n}\n"],"names":["EditorContext","createContext","useSlateStatic","editor","useContext","Error","REACT_MAJOR_VERSION","parseInt","React","version","split","IS_IOS","navigator","window","test","userAgent","MSStream","IS_APPLE","IS_ANDROID","IS_FIREFOX","IS_WEBKIT","IS_EDGE_LEGACY","IS_CHROME","IS_CHROME_LEGACY","IS_ANDROID_CHROME_LEGACY","IS_FIREFOX_LEGACY","IS_UC_MOBILE","IS_WECHATBROWSER","CAN_USE_DOM","document","createElement","HAS_BEFORE_INPUT_SUPPORT","globalThis","InputEvent","prototype","getTargetRanges","NODE_TO_INDEX","WeakMap","NODE_TO_PARENT","EDITOR_TO_WINDOW","EDITOR_TO_ELEMENT","EDITOR_TO_PLACEHOLDER_ELEMENT","ELEMENT_TO_NODE","NODE_TO_ELEMENT","NODE_TO_KEY","EDITOR_TO_KEY_TO_ELEMENT","IS_READ_ONLY","IS_FOCUSED","IS_COMPOSING","EDITOR_TO_USER_SELECTION","EDITOR_TO_ON_CHANGE","EDITOR_TO_SCHEDULE_FLUSH","EDITOR_TO_PENDING_INSERTION_MARKS","EDITOR_TO_USER_MARKS","EDITOR_TO_PENDING_DIFFS","EDITOR_TO_PENDING_ACTION","EDITOR_TO_PENDING_SELECTION","EDITOR_TO_FORCE_RENDER","PLACEHOLDER_SYMBOL","Symbol","MARK_PLACEHOLDER_SYMBOL","DOMText","Text","getDefaultView","value","ownerDocument","defaultView","isDOMComment","isDOMNode","nodeType","isDOMElement","Node","isDOMSelection","anchorNode","Selection","isDOMText","isPlainTextOnlyPaste","event","clipboardData","getData","types","length","normalizeDOMPoint","domPoint","node","offset","childNodes","isLast","index","getEditableChildAndIndex","i","getEditableChild","textContent","hasShadowRoot","parent","parentNode","toString","direction","child","triedForward","triedBackward","getAttribute","getPlainText","domNode","text","nodeValue","Array","from","childNode","display","getComputedStyle","getPropertyValue","tagName","catchSlateFragment","getSlateFragmentAttribute","dataTransfer","htmlData","match","fragment","isTrackedMutation","mutation","batch","target","matches","ReactEditor","getWindow","contains","hasDOMNode","editable","parentMutation","find","addedNodes","removedNodes","n","Key","id","androidPendingDiffs","get","androidScheduleFlush","blur","el","toDOMNode","root","findDocumentOrShadowRoot","set","activeElement","deselect","selection","domSelection","getSelection","rangeCount","removeAllRanges","Transforms","getRootNode","Document","ShadowRoot","findEventRange","nativeEvent","x","clientX","y","clientY","toSlateNode","path","findPath","Element","isElement","Editor","isVoid","rect","getBoundingClientRect","isPrev","isInline","left","width","top","height","edge","point","before","after","range","domRange","caretRangeFromPoint","position","caretPositionFromPoint","createRange","setStart","offsetNode","setEnd","toSlateRange","exactMatch","suppressThrow","findKey","key","isEditor","unshift","Scrubber","stringify","focus","toDOMRange","addRange","preventScroll","options","editorEl","targetEl","parentElement","err","message","includes","closest","isContentEditable","hasEditableTarget","hasRange","anchor","hasPath","hasSelectableTarget","isTargetInsideNonReadonlyVoid","hasTarget","insertData","data","insertFragmentData","insertTextData","isComposing","isFocused","isReadOnly","slateNode","setFragmentData","originEvent","KEY_TO_ELEMENT","toDOMPoint","at","selector","texts","querySelectorAll","start","attr","trueLength","end","nextText","hasAttribute","domText","startsWith","Math","min","max","isBackward","Range","domAnchor","domFocus","isCollapsed","startNode","startOffset","endNode","endOffset","startEl","isStartAtZeroWidth","endEl","isEndAtZeroWidth","domEl","toSlatePoint","nearestNode","nearestOffset","textNode","potentialVoidNode","voidNode","leafNode","contents","cloneContents","removals","slice","call","forEach","textContext","removeChild","leafNodes","current","endsWith","querySelector","startContainer","anchorOffset","focusNode","focusOffset","firstRange","getRangeAt","lastRange","HTMLTableRowElement","getLastChildren","element","childElementCount","children","firstNodeRow","lastNodeRow","firstNode","lastNode","HTMLElement","innerHTML","endContainer","collapsed","isExpanded","isForward","mode","unhangRange","voids","verifyDiffState","textDiff","diff","isText","nextPath","Path","next","nextNode","applyStringDiff","diffs","reduce","longestCommonPrefixLength","str","another","charAt","longestCommonSuffixLength","normalizeStringDiff","targetText","removedText","prefixLength","suffixLength","normalized","mergeStringDiffs","a","b","overlap","applied","sliceEnd","targetRange","normalizePoint","leaf","parentBlock","above","isBlock","entry","isDescendant","normalizeRange","transformPendingPoint","op","pendingDiffs","equals","Point","transform","affinity","transformed","type","transformPendingRange","transformTextDiff","newPath","RESOLVE_DELAY","FLUSH_DELAY","debug","isDataTransfer","constructor","name","createAndroidInputManager","scheduleOnDOMSelectionChange","onDOMSelectionChange","flushing","compositionEndTimeoutId","flushTimeoutId","actionTimeoutId","idCounter","insertPositionHint","applyPendingSelection","pendingSelection","select","performAction","action","isPoint","run","flush","clearTimeout","hasPendingDiffs","hasPendingAction","setTimeout","selectionRef","rangeRef","marks","scheduleSelectionChange","pendingMarks","undefined","insertText","deleteFragment","filter","cancel","unref","userMarks","onChange","handleCompositionEnd","_event","handleCompositionStart","updatePlaceholderVisibility","forceHide","placeholderElement","style","removeProperty","storeDiff","idx","findIndex","change","push","merged","splice","scheduleAction","handleDOMBeforeInput","inputType","nativeTargetRange","canStoreDiff","edges","relevantPendingDiffs","handleUserSelect","targetNode","deleteForward","nativeCollapsed","deleteBackward","unit","insertSoftBreak","insertBreak","replace","parts","line","hintPosition","search","diffPosition","scheduleFlush","hasPendingChanges","isFlushing","pathChanged","parentPathChanged","handleInput","handleKeyDown","_","handleDomMutations","mutations","some","useIsMounted","isMountedRef","useRef","useEffect","useIsomorphicLayoutEffect","useLayoutEffect","useMutationObserver","callback","useState","MutationObserver","mutationObserver","takeRecords","observe","disconnect","MUTATION_OBSERVER_CONFIG","subtree","childList","characterData","useAndroidInputManager","isMounted","inputManager","shallowCompare","obj1","obj2","Object","keys","every","hasOwnProperty","isDecorationFlagsEqual","other","rangeOwnProps","otherOwnProps","isElementDecorationsEqual","list","isTextDecorationsEqual","String","props","parentPath","isMarkPlaceholder","ZeroWidthString","string","isLineBreak","TextString","isTrailing","ref","getTextContent","initialText","textWithTrailing","MemoizedText","memo","forwardRef","attributes","disconnectPlaceholderResizeObserver","placeholderResizeObserver","releaseObserver","clearTimeoutRef","timeoutRef","Leaf","renderPlaceholder","renderLeaf","DefaultLeaf","placeholderRef","showPlaceholder","setShowPlaceholder","showPlaceholderTimeoutRef","callbackPlaceholderRef","useCallback","placeholderEl","onPlaceholderResize","ResizeObserver","ResizeObserverPolyfill","leafIsPlaceholder","placeholderProps","placeholder","pointerEvents","maxWidth","opacity","userSelect","textDecoration","WebkitUserModify","contentEditable","Fragment","MemoizedLeaf","prev","decorations","leaves","SlateText","callbackRef","span","renderElement","p","DefaultElement","readOnly","useReadOnly","useChildren","hasInlines","dir","getDirection","Tag","color","outline","MemoizedElement","DecorateContext","useDecorate","SelectedContext","useSelected","decorate","isLeafBlock","concat","sel","intersection","ds","dec","d","Provider","ElementComponent","TextComponent","ReadOnlyContext","SlateContext","useSlate","context","useSlateWithV","useTrackUserInput","receivedUserInput","animationFrameIdRef","onUserInput","cancelAnimationFrame","requestAnimationFrame","TRIPLE_CLICK","HOTKEYS","bold","compose","moveBackward","moveForward","moveWordBackward","moveWordForward","extendBackward","extendForward","italic","splitBlock","undo","APPLE_HOTKEYS","moveLineBackward","moveLineForward","deleteLineBackward","deleteLineForward","deleteWordBackward","deleteWordForward","extendLineBackward","extendLineForward","redo","transposeCharacter","WINDOWS_HOTKEYS","create","generic","apple","windows","isGeneric","isHotkey","isApple","isWindows","isBold","isCompose","isMoveBackward","isMoveForward","isDeleteBackward","isDeleteForward","isDeleteLineBackward","isDeleteLineForward","isDeleteWordBackward","isDeleteWordForward","isExtendBackward","isExtendForward","isExtendLineBackward","isExtendLineForward","isItalic","isMoveLineBackward","isMoveLineForward","isMoveWordBackward","isMoveWordForward","isRedo","isSoftBreak","isSplitBlock","isTransposeCharacter","isUndo","require$$0","createRestoreDomManager","bufferedMutations","clear","registerMutations","trackedMutations","restoreDOM","reverse","insertBefore","nextSibling","characterDataOldValue","RestoreDOMComponent","manager","pendingMutations","Component","RestoreDOM","Children","Editable","defaultRenderPlaceholder","DefaultPlaceholder","autoFocus","defaultDecorate","propsOnDOMBeforeInput","onDOMBeforeInput","scrollSelectionIntoView","defaultScrollSelectionIntoView","userStyle","as","disableDefaultStyles","setIsComposing","deferredOperations","placeholderHeight","setPlaceholderHeight","useReducer","s","forceRender","state","useMemo","isDraggingInternally","isUpdatingSelection","latestElement","hasMarkPlaceholder","androidInputManagerRef","throttle","androidInputManager","anchorNodeSelectable","focusNodeSelectable","debounce","setDomSelection","forceChange","hasDomSelection","editorElement","hasDomSelectionInEditor","slateRange","newDomRange","collapseToEnd","setBaseAndExtent","ensureSelection","timeoutId","animationFrameId","ensureDomSelection","e","isDOMEventHandled","isCompositionChange","native","lastText","createTreeWalker","NodeFilter","SHOW_TEXT","lastChild","whiteSpace","block","preventDefault","toRestore","removeEventListener","addEventListener","placeHolderResizeHandler","rest","loose","unset","fromEntries","map","mark","role","spellCheck","autoCorrect","autoCapitalize","zindex","suppressContentEditableWarning","wordWrap","minHeight","onBeforeInput","isEventHandled","onInput","onBlur","relatedTarget","onClick","detail","blockPath","startVoid","endVoid","onCompositionEnd","placeholderMarks","onCompositionUpdate","onCompositionStart","inline","inlinePath","isEnd","setSelection","onCopy","isDOMEventTargetInput","onCut","onDragOver","onDragStart","voidMatch","onDrop","draggedRange","onDragEnd","onFocus","onKeyDown","isRTL","Hotkeys","maybeHistoryEditor","move","collapse","currentNode","onPaste","leafEl","bind","scrollIntoView","scrollMode","handler","shouldTreatEventAsHandled","isDefaultPrevented","isPropagationStopped","HTMLInputElement","HTMLTextAreaElement","defaultPrevented","FocusedContext","useFocused","isError","error","SlateSelectorContext","refEquality","useSlateSelector","equalityFn","getSlate","latestSubscriptionCallbackError","latestSelector","latestSelectedState","selectedState","stack","checkForUpdates","newSelectedState","unsubscribe","useSelectorContext","eventListeners","slateRef","listener","selectorContext","indexOf","Slate","initialValue","isNodeList","assign","v","setContext","handleSelectorChange","onContextChange","prevContext","setIsFocused","fn","useEditor","useSlateSelection","isSelectionEqual","doRectsIntersect","compareRect","middle","bottom","areRangesSameLine","range1","range2","rect1","rect2","findCurrentLineRange","parentRange","parentRangeBoundary","positions","right","floor","withReact","clipboardFormatKey","apply","addMark","removeMark","parentBlockEntry","parentBlockPath","parentElementRange","currentLineRange","pathRefMatches","Boolean","pendingAction","getMatches","prevPath","previous","commonPath","common","changedPath","isBefore","changedNode","changedNodeKey","changedPathRef","pathRef","attach","trim","r","cloneRange","setEndAfter","zw","isNewline","appendChild","getFragment","JSON","encoded","btoa","encodeURIComponent","setAttribute","setData","div","body","decoded","decodeURIComponent","atob","parsed","parse","insertFragment","lines","splitNodes","always","maybeBatchUpdates","ReactDOM","unstable_batchedUpdates","levels"],"mappings":"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"}