@pie-element/ebsr 9.0.2-next.28 → 9.0.2-next.45

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 (2154) hide show
  1. package/configure/package.json +2 -2
  2. package/controller/package.json +1 -1
  3. package/package.json +3 -3
  4. package/configure/node_modules/@pie-element/multiple-choice/CHANGELOG.json +0 -1972
  5. package/configure/node_modules/@pie-element/multiple-choice/CHANGELOG.md +0 -2478
  6. package/configure/node_modules/@pie-element/multiple-choice/LICENSE.md +0 -5
  7. package/configure/node_modules/@pie-element/multiple-choice/PRINT.md +0 -35
  8. package/configure/node_modules/@pie-element/multiple-choice/README.md +0 -56
  9. package/configure/node_modules/@pie-element/multiple-choice/choice.png +0 -0
  10. package/configure/node_modules/@pie-element/multiple-choice/configure/CHANGELOG.json +0 -1387
  11. package/configure/node_modules/@pie-element/multiple-choice/configure/CHANGELOG.md +0 -1949
  12. package/configure/node_modules/@pie-element/multiple-choice/configure/lib/defaults.js +0 -133
  13. package/configure/node_modules/@pie-element/multiple-choice/configure/lib/defaults.js.map +0 -1
  14. package/configure/node_modules/@pie-element/multiple-choice/configure/lib/index.js +0 -248
  15. package/configure/node_modules/@pie-element/multiple-choice/configure/lib/index.js.map +0 -1
  16. package/configure/node_modules/@pie-element/multiple-choice/configure/lib/main.js +0 -610
  17. package/configure/node_modules/@pie-element/multiple-choice/configure/lib/main.js.map +0 -1
  18. package/configure/node_modules/@pie-element/multiple-choice/configure/lib/utils.js +0 -18
  19. package/configure/node_modules/@pie-element/multiple-choice/configure/lib/utils.js.map +0 -1
  20. package/configure/node_modules/@pie-element/multiple-choice/configure/package.json +0 -18
  21. package/configure/node_modules/@pie-element/multiple-choice/controller/CHANGELOG.json +0 -527
  22. package/configure/node_modules/@pie-element/multiple-choice/controller/CHANGELOG.md +0 -869
  23. package/configure/node_modules/@pie-element/multiple-choice/controller/lib/defaults.js +0 -18
  24. package/configure/node_modules/@pie-element/multiple-choice/controller/lib/defaults.js.map +0 -1
  25. package/configure/node_modules/@pie-element/multiple-choice/controller/lib/index.js +0 -306
  26. package/configure/node_modules/@pie-element/multiple-choice/controller/lib/index.js.map +0 -1
  27. package/configure/node_modules/@pie-element/multiple-choice/controller/lib/utils.js +0 -36
  28. package/configure/node_modules/@pie-element/multiple-choice/controller/lib/utils.js.map +0 -1
  29. package/configure/node_modules/@pie-element/multiple-choice/controller/package.json +0 -15
  30. package/configure/node_modules/@pie-element/multiple-choice/docs/config-schema.json +0 -614
  31. package/configure/node_modules/@pie-element/multiple-choice/docs/config-schema.json.md +0 -469
  32. package/configure/node_modules/@pie-element/multiple-choice/docs/demo/config.js +0 -8
  33. package/configure/node_modules/@pie-element/multiple-choice/docs/demo/generate.js +0 -53
  34. package/configure/node_modules/@pie-element/multiple-choice/docs/demo/index.html +0 -1
  35. package/configure/node_modules/@pie-element/multiple-choice/docs/demo/session.js +0 -7
  36. package/configure/node_modules/@pie-element/multiple-choice/docs/pie-schema.json +0 -411
  37. package/configure/node_modules/@pie-element/multiple-choice/docs/pie-schema.json.md +0 -327
  38. package/configure/node_modules/@pie-element/multiple-choice/lib/choice-input.js +0 -332
  39. package/configure/node_modules/@pie-element/multiple-choice/lib/choice-input.js.map +0 -1
  40. package/configure/node_modules/@pie-element/multiple-choice/lib/choice.js +0 -165
  41. package/configure/node_modules/@pie-element/multiple-choice/lib/choice.js.map +0 -1
  42. package/configure/node_modules/@pie-element/multiple-choice/lib/feedback-tick.js +0 -174
  43. package/configure/node_modules/@pie-element/multiple-choice/lib/feedback-tick.js.map +0 -1
  44. package/configure/node_modules/@pie-element/multiple-choice/lib/index.js +0 -156
  45. package/configure/node_modules/@pie-element/multiple-choice/lib/index.js.map +0 -1
  46. package/configure/node_modules/@pie-element/multiple-choice/lib/main.js +0 -96
  47. package/configure/node_modules/@pie-element/multiple-choice/lib/main.js.map +0 -1
  48. package/configure/node_modules/@pie-element/multiple-choice/lib/multiple-choice.js +0 -359
  49. package/configure/node_modules/@pie-element/multiple-choice/lib/multiple-choice.js.map +0 -1
  50. package/configure/node_modules/@pie-element/multiple-choice/lib/print.js +0 -129
  51. package/configure/node_modules/@pie-element/multiple-choice/lib/print.js.map +0 -1
  52. package/configure/node_modules/@pie-element/multiple-choice/lib/session-updater.js +0 -35
  53. package/configure/node_modules/@pie-element/multiple-choice/lib/session-updater.js.map +0 -1
  54. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/CHANGELOG.json +0 -1
  55. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/CHANGELOG.md +0 -71
  56. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/LICENSE.md +0 -5
  57. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/categorize.js +0 -127
  58. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/categorize.js.map +0 -1
  59. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/charting.js +0 -35
  60. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/charting.js.map +0 -1
  61. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/categorize/index.js +0 -545
  62. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/categorize/index.js.map +0 -1
  63. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/categorize/scoring.js +0 -130
  64. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/categorize/scoring.js.map +0 -1
  65. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/axes.js +0 -538
  66. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/axes.js.map +0 -1
  67. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/bars/bar.js +0 -60
  68. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/bars/bar.js.map +0 -1
  69. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/bars/common/bars.js +0 -222
  70. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/bars/common/bars.js.map +0 -1
  71. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/bars/histogram.js +0 -61
  72. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/bars/histogram.js.map +0 -1
  73. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/chart-setup.js +0 -402
  74. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/chart-setup.js.map +0 -1
  75. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/chart-type.js +0 -61
  76. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/chart-type.js.map +0 -1
  77. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/chart-types.js +0 -22
  78. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/chart-types.js.map +0 -1
  79. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/chart.js +0 -370
  80. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/chart.js.map +0 -1
  81. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/common/drag-handle.js +0 -148
  82. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/common/drag-handle.js.map +0 -1
  83. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/common/drag-icon.js +0 -62
  84. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/common/drag-icon.js.map +0 -1
  85. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/common/styles.js +0 -22
  86. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/common/styles.js.map +0 -1
  87. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/grid.js +0 -76
  88. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/grid.js.map +0 -1
  89. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/index.js +0 -35
  90. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/index.js.map +0 -1
  91. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/line/common/drag-handle.js +0 -124
  92. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/line/common/drag-handle.js.map +0 -1
  93. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/line/common/line.js +0 -211
  94. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/line/common/line.js.map +0 -1
  95. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/line/line-cross.js +0 -124
  96. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/line/line-cross.js.map +0 -1
  97. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/line/line-dot.js +0 -92
  98. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/line/line-dot.js.map +0 -1
  99. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/mark-label.js +0 -201
  100. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/mark-label.js.map +0 -1
  101. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/plot/common/plot.js +0 -232
  102. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/plot/common/plot.js.map +0 -1
  103. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/plot/dot.js +0 -94
  104. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/plot/dot.js.map +0 -1
  105. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/plot/line.js +0 -122
  106. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/plot/line.js.map +0 -1
  107. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/tool-menu.js +0 -119
  108. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/tool-menu.js.map +0 -1
  109. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/utils.js +0 -187
  110. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/charting/utils.js.map +0 -1
  111. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/alert-dialog.js +0 -45
  112. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/alert-dialog.js.map +0 -1
  113. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/checkbox.js +0 -78
  114. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/checkbox.js.map +0 -1
  115. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/choice-configuration/feedback-menu.js +0 -129
  116. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/choice-configuration/feedback-menu.js.map +0 -1
  117. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/choice-configuration/index.js +0 -392
  118. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/choice-configuration/index.js.map +0 -1
  119. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/choice-utils.js +0 -42
  120. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/choice-utils.js.map +0 -1
  121. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/feedback-config/feedback-selector.js +0 -160
  122. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/feedback-config/feedback-selector.js.map +0 -1
  123. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/feedback-config/group.js +0 -63
  124. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/feedback-config/group.js.map +0 -1
  125. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/feedback-config/index.js +0 -146
  126. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/feedback-config/index.js.map +0 -1
  127. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/form-section.js +0 -37
  128. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/form-section.js.map +0 -1
  129. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/help.js +0 -113
  130. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/help.js.map +0 -1
  131. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/index.js +0 -187
  132. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/index.js.map +0 -1
  133. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/input.js +0 -110
  134. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/input.js.map +0 -1
  135. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/inputs.js +0 -111
  136. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/inputs.js.map +0 -1
  137. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/langs.js +0 -147
  138. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/langs.js.map +0 -1
  139. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/layout/config-layout.js +0 -97
  140. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/layout/config-layout.js.map +0 -1
  141. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/layout/index.js +0 -21
  142. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/layout/index.js.map +0 -1
  143. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/layout/layout-contents.js +0 -160
  144. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/layout/layout-contents.js.map +0 -1
  145. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/layout/settings-box.js +0 -63
  146. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/layout/settings-box.js.map +0 -1
  147. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/mui-box/index.js +0 -71
  148. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/mui-box/index.js.map +0 -1
  149. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/number-text-field-custom.js +0 -312
  150. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/number-text-field-custom.js.map +0 -1
  151. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/number-text-field.js +0 -220
  152. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/number-text-field.js.map +0 -1
  153. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/radio-with-label.js +0 -33
  154. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/radio-with-label.js.map +0 -1
  155. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/settings/display-size.js +0 -64
  156. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/settings/display-size.js.map +0 -1
  157. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/settings/index.js +0 -108
  158. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/settings/index.js.map +0 -1
  159. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/settings/panel.js +0 -392
  160. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/settings/panel.js.map +0 -1
  161. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/settings/settings-radio-label.js +0 -37
  162. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/settings/settings-radio-label.js.map +0 -1
  163. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/settings/toggle.js +0 -48
  164. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/settings/toggle.js.map +0 -1
  165. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/tabs/index.js +0 -85
  166. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/tabs/index.js.map +0 -1
  167. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/tags-input/index.js +0 -159
  168. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/tags-input/index.js.map +0 -1
  169. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/two-choice.js +0 -144
  170. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/two-choice.js.map +0 -1
  171. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/with-stateful-model.js +0 -64
  172. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/config-ui/with-stateful-model.js.map +0 -1
  173. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/controller-utils/index.js +0 -25
  174. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/controller-utils/index.js.map +0 -1
  175. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/controller-utils/partial-scoring.js +0 -25
  176. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/controller-utils/partial-scoring.js.map +0 -1
  177. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/controller-utils/persistence.js +0 -113
  178. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/controller-utils/persistence.js.map +0 -1
  179. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/correct-answer-toggle/expander.js +0 -73
  180. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/correct-answer-toggle/expander.js.map +0 -1
  181. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/correct-answer-toggle/index.js +0 -140
  182. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/correct-answer-toggle/index.js.map +0 -1
  183. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/correct-answer-toggle/styles.js +0 -62
  184. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/correct-answer-toggle/styles.js.map +0 -1
  185. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/choice.js +0 -99
  186. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/choice.js.map +0 -1
  187. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/drag-in-the-blank-dp.js +0 -28
  188. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/drag-in-the-blank-dp.js.map +0 -1
  189. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/drag-type.js +0 -14
  190. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/drag-type.js.map +0 -1
  191. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/droppable-placeholder.js +0 -63
  192. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/droppable-placeholder.js.map +0 -1
  193. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/ica-dp.js +0 -29
  194. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/ica-dp.js.map +0 -1
  195. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/index.js +0 -75
  196. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/index.js.map +0 -1
  197. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/match-list-dp.js +0 -29
  198. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/match-list-dp.js.map +0 -1
  199. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/placeholder.js +0 -88
  200. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/placeholder.js.map +0 -1
  201. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/preview-component.js +0 -116
  202. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/preview-component.js.map +0 -1
  203. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/swap.js +0 -19
  204. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/swap.js.map +0 -1
  205. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/uid-context.js +0 -26
  206. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/uid-context.js.map +0 -1
  207. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/with-drag-context.js +0 -40
  208. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/drag/with-drag-context.js.map +0 -1
  209. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/components.js +0 -85
  210. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/components.js.map +0 -1
  211. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/editor.js +0 -1177
  212. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/editor.js.map +0 -1
  213. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/index.js +0 -164
  214. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/index.js.map +0 -1
  215. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/new-serialization.js +0 -273
  216. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/new-serialization.js.map +0 -1
  217. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/parse-html.js +0 -16
  218. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/parse-html.js.map +0 -1
  219. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/characters/custom-popper.js +0 -62
  220. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/characters/custom-popper.js.map +0 -1
  221. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/characters/index.js +0 -247
  222. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/characters/index.js.map +0 -1
  223. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/characters/utils.js +0 -378
  224. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/characters/utils.js.map +0 -1
  225. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/hotKeys/index.js +0 -60
  226. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/hotKeys/index.js.map +0 -1
  227. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/html/icons/index.js +0 -30
  228. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/html/icons/index.js.map +0 -1
  229. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/html/index.js +0 -89
  230. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/html/index.js.map +0 -1
  231. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/image/alt-dialog.js +0 -101
  232. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/image/alt-dialog.js.map +0 -1
  233. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/image/component.js +0 -398
  234. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/image/component.js.map +0 -1
  235. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/image/image-toolbar.js +0 -136
  236. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/image/image-toolbar.js.map +0 -1
  237. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/image/index.js +0 -342
  238. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/image/index.js.map +0 -1
  239. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/image/insert-image-handler.js +0 -153
  240. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/image/insert-image-handler.js.map +0 -1
  241. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/index.js +0 -101
  242. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/index.js.map +0 -1
  243. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/list/index.js +0 -131
  244. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/list/index.js.map +0 -1
  245. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/math/index.js +0 -381
  246. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/math/index.js.map +0 -1
  247. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/media/index.js +0 -364
  248. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/media/index.js.map +0 -1
  249. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/media/media-dialog.js +0 -573
  250. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/media/media-dialog.js.map +0 -1
  251. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/media/media-toolbar.js +0 -80
  252. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/media/media-toolbar.js.map +0 -1
  253. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/media/media-wrapper.js +0 -50
  254. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/media/media-wrapper.js.map +0 -1
  255. 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 +0 -209
  256. 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 +0 -1
  257. 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 +0 -117
  258. 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 +0 -1
  259. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/respArea/explicit-constructed-response/index.js +0 -49
  260. 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 +0 -1
  261. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/respArea/icons/index.js +0 -75
  262. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/respArea/icons/index.js.map +0 -1
  263. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/respArea/index.js +0 -281
  264. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/respArea/index.js.map +0 -1
  265. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/respArea/inline-dropdown/index.js +0 -63
  266. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/respArea/inline-dropdown/index.js.map +0 -1
  267. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/respArea/utils.js +0 -86
  268. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/respArea/utils.js.map +0 -1
  269. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/table/icons/index.js +0 -57
  270. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/table/icons/index.js.map +0 -1
  271. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/table/index.js +0 -606
  272. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/table/index.js.map +0 -1
  273. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/table/table-toolbar.js +0 -123
  274. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/table/table-toolbar.js.map +0 -1
  275. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/toolbar/default-toolbar.js +0 -166
  276. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/toolbar/default-toolbar.js.map +0 -1
  277. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/toolbar/done-button.js +0 -40
  278. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/toolbar/done-button.js.map +0 -1
  279. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/toolbar/editor-and-toolbar.js +0 -227
  280. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/toolbar/editor-and-toolbar.js.map +0 -1
  281. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/toolbar/index.js +0 -29
  282. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/toolbar/index.js.map +0 -1
  283. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/toolbar/toolbar-buttons.js +0 -125
  284. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/toolbar/toolbar-buttons.js.map +0 -1
  285. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/toolbar/toolbar.js +0 -300
  286. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/toolbar/toolbar.js.map +0 -1
  287. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/utils.js +0 -59
  288. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/plugins/utils.js.map +0 -1
  289. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/serialization.js +0 -413
  290. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/serialization.js.map +0 -1
  291. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/test-serializer.js +0 -137
  292. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/test-serializer.js.map +0 -1
  293. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/theme.js +0 -8
  294. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/editable-html/theme.js.map +0 -1
  295. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/feedback/index.js +0 -88
  296. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/feedback/index.js.map +0 -1
  297. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/axis/arrow.js +0 -86
  298. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/axis/arrow.js.map +0 -1
  299. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/axis/axes.js +0 -346
  300. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/axis/axes.js.map +0 -1
  301. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/axis/index.js +0 -22
  302. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/axis/index.js.map +0 -1
  303. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/bg.js +0 -114
  304. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/bg.js.map +0 -1
  305. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/container/actions.js +0 -18
  306. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/container/actions.js.map +0 -1
  307. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/container/index.js +0 -123
  308. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/container/index.js.map +0 -1
  309. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/container/marks.js +0 -22
  310. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/container/marks.js.map +0 -1
  311. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/container/middleware.js +0 -19
  312. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/container/middleware.js.map +0 -1
  313. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/container/reducer.js +0 -18
  314. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/container/reducer.js.map +0 -1
  315. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/coordinates-label.js +0 -82
  316. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/coordinates-label.js.map +0 -1
  317. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/graph-with-controls.js +0 -309
  318. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/graph-with-controls.js.map +0 -1
  319. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/graph.js +0 -302
  320. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/graph.js.map +0 -1
  321. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/grid-setup.js +0 -423
  322. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/grid-setup.js.map +0 -1
  323. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/grid.js +0 -145
  324. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/grid.js.map +0 -1
  325. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/index.js +0 -41
  326. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/index.js.map +0 -1
  327. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/labels.js +0 -248
  328. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/labels.js.map +0 -1
  329. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/mark-label.js +0 -169
  330. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/mark-label.js.map +0 -1
  331. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/toggle-bar.js +0 -281
  332. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/toggle-bar.js.map +0 -1
  333. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tool-menu.js +0 -102
  334. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tool-menu.js.map +0 -1
  335. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/circle/bg-circle.js +0 -135
  336. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/circle/bg-circle.js.map +0 -1
  337. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/circle/component.js +0 -329
  338. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/circle/component.js.map +0 -1
  339. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/circle/index.js +0 -41
  340. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/circle/index.js.map +0 -1
  341. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/index.js +0 -67
  342. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/index.js.map +0 -1
  343. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/line/component.js +0 -81
  344. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/line/component.js.map +0 -1
  345. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/line/index.js +0 -11
  346. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/line/index.js.map +0 -1
  347. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/parabola/component.js +0 -27
  348. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/parabola/component.js.map +0 -1
  349. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/parabola/index.js +0 -50
  350. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/parabola/index.js.map +0 -1
  351. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/point/component.js +0 -139
  352. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/point/component.js.map +0 -1
  353. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/point/index.js +0 -24
  354. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/point/index.js.map +0 -1
  355. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/polygon/component.js +0 -417
  356. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/polygon/component.js.map +0 -1
  357. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/polygon/index.js +0 -89
  358. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/polygon/index.js.map +0 -1
  359. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/polygon/line.js +0 -117
  360. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/polygon/line.js.map +0 -1
  361. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/polygon/polygon.js +0 -123
  362. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/polygon/polygon.js.map +0 -1
  363. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/ray/component.js +0 -80
  364. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/ray/component.js.map +0 -1
  365. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/ray/index.js +0 -11
  366. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/ray/index.js.map +0 -1
  367. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/segment/component.js +0 -59
  368. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/segment/component.js.map +0 -1
  369. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/segment/index.js +0 -11
  370. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/segment/index.js.map +0 -1
  371. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/shared/arrow-head.js +0 -58
  372. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/shared/arrow-head.js.map +0 -1
  373. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/shared/line/index.js +0 -481
  374. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/shared/line/index.js.map +0 -1
  375. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/shared/line/line-path.js +0 -111
  376. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/shared/line/line-path.js.map +0 -1
  377. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/shared/line/with-root-edge.js +0 -111
  378. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/shared/line/with-root-edge.js.map +0 -1
  379. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/shared/point/arrow-point.js +0 -88
  380. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/shared/point/arrow-point.js.map +0 -1
  381. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/shared/point/arrow.js +0 -72
  382. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/shared/point/arrow.js.map +0 -1
  383. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/shared/point/base-point.js +0 -112
  384. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/shared/point/base-point.js.map +0 -1
  385. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/shared/point/index.js +0 -73
  386. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/shared/point/index.js.map +0 -1
  387. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/shared/styles.js +0 -26
  388. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/shared/styles.js.map +0 -1
  389. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/shared/types.js +0 -16
  390. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/shared/types.js.map +0 -1
  391. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/sine/component.js +0 -34
  392. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/sine/component.js.map +0 -1
  393. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/sine/index.js +0 -50
  394. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/sine/index.js.map +0 -1
  395. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/vector/component.js +0 -70
  396. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/vector/component.js.map +0 -1
  397. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/vector/index.js +0 -11
  398. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/tools/vector/index.js.map +0 -1
  399. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/undo-redo.js +0 -97
  400. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/undo-redo.js.map +0 -1
  401. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/use-debounce.js +0 -25
  402. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/use-debounce.js.map +0 -1
  403. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/utils.js +0 -230
  404. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing/utils.js.map +0 -1
  405. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing-utils/index.js +0 -153
  406. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/graphing-utils/index.js.map +0 -1
  407. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/correct-icon.js +0 -74
  408. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/correct-icon.js.map +0 -1
  409. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/correct-response-icon.js +0 -139
  410. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/correct-response-icon.js.map +0 -1
  411. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/icon-base.js +0 -186
  412. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/icon-base.js.map +0 -1
  413. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/icon-root.js +0 -102
  414. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/icon-root.js.map +0 -1
  415. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/image-konva.js +0 -112
  416. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/image-konva.js.map +0 -1
  417. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/incorrect-icon.js +0 -78
  418. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/incorrect-icon.js.map +0 -1
  419. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/index.js +0 -70
  420. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/index.js.map +0 -1
  421. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/instructions-icon.js +0 -207
  422. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/instructions-icon.js.map +0 -1
  423. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/learn-more-icon.js +0 -120
  424. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/learn-more-icon.js.map +0 -1
  425. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/nothing-submitted-icon.js +0 -156
  426. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/nothing-submitted-icon.js.map +0 -1
  427. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/partially-correct-icon.js +0 -68
  428. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/partially-correct-icon.js.map +0 -1
  429. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/show-rationale-icon.js +0 -174
  430. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/show-rationale-icon.js.map +0 -1
  431. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/sized.js +0 -32
  432. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/icons/sized.js.map +0 -1
  433. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/choices/choice.js +0 -132
  434. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/choices/choice.js.map +0 -1
  435. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/choices/index.js +0 -98
  436. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/choices/index.js.map +0 -1
  437. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/componentize.js +0 -21
  438. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/componentize.js.map +0 -1
  439. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/components/blank.js +0 -259
  440. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/components/blank.js.map +0 -1
  441. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/components/correct-input.js +0 -95
  442. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/components/correct-input.js.map +0 -1
  443. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/components/dropdown.js +0 -189
  444. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/components/dropdown.js.map +0 -1
  445. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/components/input.js +0 -50
  446. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/components/input.js.map +0 -1
  447. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/constructed-response.js +0 -45
  448. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/constructed-response.js.map +0 -1
  449. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/drag-in-the-blank.js +0 -158
  450. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/drag-in-the-blank.js.map +0 -1
  451. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/index.js +0 -48
  452. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/index.js.map +0 -1
  453. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/inline-dropdown.js +0 -38
  454. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/inline-dropdown.js.map +0 -1
  455. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/mask.js +0 -161
  456. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/mask.js.map +0 -1
  457. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/new-serialization.js +0 -261
  458. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/new-serialization.js.map +0 -1
  459. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/parse-html.js +0 -16
  460. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/parse-html.js.map +0 -1
  461. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/serialization.js +0 -175
  462. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/serialization.js.map +0 -1
  463. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/test-serializer.js +0 -163
  464. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/test-serializer.js.map +0 -1
  465. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/with-mask.js +0 -67
  466. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/mask-markup/with-mask.js.map +0 -1
  467. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-evaluator/index.js +0 -157
  468. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-evaluator/index.js.map +0 -1
  469. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/horizontal-keypad.js +0 -93
  470. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/horizontal-keypad.js.map +0 -1
  471. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/index.js +0 -58
  472. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/index.js.map +0 -1
  473. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keypad/index.js +0 -381
  474. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keypad/index.js.map +0 -1
  475. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keypad/keys-layout.js +0 -25
  476. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keypad/keys-layout.js.map +0 -1
  477. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/basic-operators.js +0 -33
  478. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/basic-operators.js.map +0 -1
  479. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/chars.js +0 -12
  480. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/chars.js.map +0 -1
  481. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/comparison.js +0 -39
  482. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/comparison.js.map +0 -1
  483. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/constants.js +0 -37
  484. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/constants.js.map +0 -1
  485. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/digits.js +0 -47
  486. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/digits.js.map +0 -1
  487. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/edit.js +0 -14
  488. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/edit.js.map +0 -1
  489. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/exponent.js +0 -30
  490. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/exponent.js.map +0 -1
  491. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/fractions.js +0 -29
  492. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/fractions.js.map +0 -1
  493. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/geometry.js +0 -138
  494. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/geometry.js.map +0 -1
  495. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/grades.js +0 -247
  496. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/grades.js.map +0 -1
  497. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/index.js +0 -36
  498. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/index.js.map +0 -1
  499. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/log.js +0 -27
  500. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/log.js.map +0 -1
  501. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/logic.js +0 -19
  502. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/logic.js.map +0 -1
  503. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/matrices.js +0 -19
  504. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/matrices.js.map +0 -1
  505. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/misc.js +0 -62
  506. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/misc.js.map +0 -1
  507. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/navigation.js +0 -20
  508. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/navigation.js.map +0 -1
  509. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/operators.js +0 -15
  510. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/operators.js.map +0 -1
  511. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/statistics.js +0 -40
  512. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/statistics.js.map +0 -1
  513. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/sub-sup.js +0 -19
  514. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/sub-sup.js.map +0 -1
  515. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/trigonometry.js +0 -45
  516. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/trigonometry.js.map +0 -1
  517. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/utils.js +0 -87
  518. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/utils.js.map +0 -1
  519. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/vars.js +0 -24
  520. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/keys/vars.js.map +0 -1
  521. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/math-input.js +0 -155
  522. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/math-input.js.map +0 -1
  523. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/mq/custom-elements.js +0 -20
  524. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/mq/custom-elements.js.map +0 -1
  525. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/mq/index.js +0 -21
  526. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/mq/index.js.map +0 -1
  527. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/mq/input.js +0 -199
  528. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/mq/input.js.map +0 -1
  529. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/mq/static.js +0 -193
  530. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-input/mq/static.js.map +0 -1
  531. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-rendering/index.js +0 -34
  532. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-rendering/index.js.map +0 -1
  533. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-rendering/mml-to-latex.js +0 -12
  534. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-rendering/mml-to-latex.js.map +0 -1
  535. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-rendering/mstack/chtml.js +0 -235
  536. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-rendering/mstack/chtml.js.map +0 -1
  537. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-rendering/mstack/index.js +0 -18
  538. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-rendering/mstack/index.js.map +0 -1
  539. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-rendering/mstack/mml.js +0 -76
  540. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-rendering/mstack/mml.js.map +0 -1
  541. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-rendering/normalization.js +0 -68
  542. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-rendering/normalization.js.map +0 -1
  543. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-rendering/render-math.js +0 -304
  544. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-rendering/render-math.js.map +0 -1
  545. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-toolbar/done-button.js +0 -54
  546. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-toolbar/done-button.js.map +0 -1
  547. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-toolbar/editor-and-pad.js +0 -589
  548. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-toolbar/editor-and-pad.js.map +0 -1
  549. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-toolbar/index.js +0 -242
  550. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-toolbar/index.js.map +0 -1
  551. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-toolbar/math-preview.js +0 -211
  552. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/math-toolbar/math-preview.js.map +0 -1
  553. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/plot/draggable.js +0 -46
  554. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/plot/draggable.js.map +0 -1
  555. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/plot/graph-props.js +0 -46
  556. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/plot/graph-props.js.map +0 -1
  557. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/plot/grid-draggable.js +0 -273
  558. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/plot/grid-draggable.js.map +0 -1
  559. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/plot/index.js +0 -45
  560. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/plot/index.js.map +0 -1
  561. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/plot/label.js +0 -143
  562. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/plot/label.js.map +0 -1
  563. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/plot/root.js +0 -339
  564. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/plot/root.js.map +0 -1
  565. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/plot/trig.js +0 -149
  566. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/plot/trig.js.map +0 -1
  567. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/plot/types.js +0 -40
  568. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/plot/types.js.map +0 -1
  569. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/plot/utils.js +0 -156
  570. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/plot/utils.js.map +0 -1
  571. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/collapsible/index.js +0 -106
  572. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/collapsible/index.js.map +0 -1
  573. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/color.js +0 -94
  574. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/color.js.map +0 -1
  575. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/feedback.js +0 -123
  576. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/feedback.js.map +0 -1
  577. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/has-text.js +0 -19
  578. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/has-text.js.map +0 -1
  579. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/html-and-math.js +0 -71
  580. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/html-and-math.js.map +0 -1
  581. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/index.js +0 -86
  582. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/index.js.map +0 -1
  583. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/input-container.js +0 -48
  584. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/input-container.js.map +0 -1
  585. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/preview-layout.js +0 -110
  586. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/preview-layout.js.map +0 -1
  587. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/preview-prompt.js +0 -168
  588. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/preview-prompt.js.map +0 -1
  589. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/purpose.js +0 -22
  590. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/purpose.js.map +0 -1
  591. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/readable.js +0 -22
  592. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/readable.js.map +0 -1
  593. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/response-indicators.js +0 -116
  594. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/response-indicators.js.map +0 -1
  595. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/withUndoReset.js +0 -149
  596. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/render-ui/withUndoReset.js.map +0 -1
  597. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/rubric/authoring.js +0 -400
  598. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/rubric/authoring.js.map +0 -1
  599. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/rubric/index.js +0 -19
  600. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/rubric/index.js.map +0 -1
  601. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/rubric/point-menu.js +0 -138
  602. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/rubric/point-menu.js.map +0 -1
  603. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/scoring-config/index.js +0 -78
  604. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/scoring-config/index.js.map +0 -1
  605. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/style-utils/index.js +0 -19
  606. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/style-utils/index.js.map +0 -1
  607. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/test-utils/index.js +0 -29
  608. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/test-utils/index.js.map +0 -1
  609. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/index.js +0 -58
  610. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/index.js.map +0 -1
  611. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/legend.js +0 -89
  612. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/legend.js.map +0 -1
  613. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/text-select.js +0 -108
  614. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/text-select.js.map +0 -1
  615. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/token-select/index.js +0 -199
  616. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/token-select/index.js.map +0 -1
  617. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/token-select/token.js +0 -203
  618. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/token-select/token.js.map +0 -1
  619. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/tokenizer/builder.js +0 -267
  620. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/tokenizer/builder.js.map +0 -1
  621. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/tokenizer/controls.js +0 -99
  622. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/tokenizer/controls.js.map +0 -1
  623. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/tokenizer/index.js +0 -161
  624. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/tokenizer/index.js.map +0 -1
  625. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/tokenizer/selection-utils.js +0 -55
  626. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/tokenizer/selection-utils.js.map +0 -1
  627. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/tokenizer/token-text.js +0 -171
  628. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/tokenizer/token-text.js.map +0 -1
  629. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/utils.js +0 -51
  630. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/text-select/utils.js.map +0 -1
  631. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/anchor-utils.js +0 -193
  632. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/anchor-utils.js.map +0 -1
  633. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/anchor.js +0 -35
  634. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/anchor.js.map +0 -1
  635. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/index.js +0 -34
  636. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/index.js.map +0 -1
  637. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/protractor/graphic.js +0 -158
  638. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/protractor/graphic.js.map +0 -1
  639. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/protractor/index.js +0 -95
  640. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/protractor/index.js.map +0 -1
  641. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/rotatable.js +0 -348
  642. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/rotatable.js.map +0 -1
  643. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/ruler/graphic.js +0 -98
  644. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/ruler/graphic.js.map +0 -1
  645. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/ruler/index.js +0 -120
  646. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/ruler/index.js.map +0 -1
  647. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/ruler/unit-type.js +0 -58
  648. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/ruler/unit-type.js.map +0 -1
  649. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/ruler/unit.js +0 -133
  650. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/ruler/unit.js.map +0 -1
  651. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/style-utils.js +0 -21
  652. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/style-utils.js.map +0 -1
  653. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/transform-origin.js +0 -71
  654. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/tools/transform-origin.js.map +0 -1
  655. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/translator/en.js +0 -78
  656. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/translator/en.js.map +0 -1
  657. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/translator/es.js +0 -78
  658. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/translator/es.js.map +0 -1
  659. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/translator/index.js +0 -55
  660. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/code/translator/index.js.map +0 -1
  661. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/config-ui.js +0 -175
  662. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/config-ui.js.map +0 -1
  663. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/controller-utils.js +0 -25
  664. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/controller-utils.js.map +0 -1
  665. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/correct-answer-toggle.js +0 -10
  666. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/correct-answer-toggle.js.map +0 -1
  667. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/drag.js +0 -67
  668. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/drag.js.map +0 -1
  669. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/editable-html.js +0 -42
  670. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/editable-html.js.map +0 -1
  671. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/feedback.js +0 -25
  672. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/feedback.js.map +0 -1
  673. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/graphing-utils.js +0 -61
  674. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/graphing-utils.js.map +0 -1
  675. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/graphing.js +0 -41
  676. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/graphing.js.map +0 -1
  677. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/icons.js +0 -61
  678. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/icons.js.map +0 -1
  679. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/mask-markup.js +0 -43
  680. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/mask-markup.js.map +0 -1
  681. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/math-evaluator.js +0 -10
  682. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/math-evaluator.js.map +0 -1
  683. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/math-input.js +0 -49
  684. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/math-input.js.map +0 -1
  685. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/math-rendering.js +0 -31
  686. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/math-rendering.js.map +0 -1
  687. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/math-toolbar.js +0 -31
  688. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/math-toolbar.js.map +0 -1
  689. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/package.json +0 -90
  690. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/plot.js +0 -49
  691. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/plot.js.map +0 -1
  692. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/render-ui.js +0 -79
  693. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/render-ui.js.map +0 -1
  694. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/rubric.js +0 -19
  695. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/rubric.js.map +0 -1
  696. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/scoring-config.js +0 -10
  697. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/scoring-config.js.map +0 -1
  698. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/categorize.js +0 -45
  699. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/charting.js +0 -6
  700. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/categorize/index.js +0 -573
  701. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/categorize/scoring.js +0 -118
  702. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/axes.jsx +0 -488
  703. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/bars/bar.js +0 -28
  704. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/bars/common/bars.jsx +0 -207
  705. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/bars/histogram.js +0 -28
  706. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/chart-setup.jsx +0 -372
  707. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/chart-type.js +0 -35
  708. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/chart-types.js +0 -8
  709. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/chart.jsx +0 -340
  710. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/common/drag-handle.jsx +0 -133
  711. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/common/drag-icon.jsx +0 -44
  712. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/common/styles.js +0 -19
  713. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/grid.jsx +0 -47
  714. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/index.js +0 -6
  715. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/line/common/drag-handle.jsx +0 -95
  716. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/line/common/line.jsx +0 -163
  717. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/line/line-cross.js +0 -73
  718. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/line/line-dot.js +0 -52
  719. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/mark-label.jsx +0 -198
  720. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/plot/common/plot.jsx +0 -194
  721. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/plot/dot.js +0 -51
  722. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/plot/line.js +0 -76
  723. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/tool-menu.jsx +0 -93
  724. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/charting/utils.js +0 -198
  725. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/alert-dialog.jsx +0 -43
  726. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/checkbox.jsx +0 -66
  727. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/choice-configuration/feedback-menu.jsx +0 -90
  728. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/choice-configuration/index.jsx +0 -360
  729. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/choice-utils.js +0 -30
  730. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/feedback-config/feedback-selector.jsx +0 -122
  731. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/feedback-config/group.jsx +0 -52
  732. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/feedback-config/index.jsx +0 -112
  733. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/form-section.jsx +0 -23
  734. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/help.jsx +0 -87
  735. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/index.js +0 -55
  736. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/input.jsx +0 -72
  737. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/inputs.jsx +0 -91
  738. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/langs.jsx +0 -111
  739. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/layout/config-layout.jsx +0 -67
  740. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/layout/index.js +0 -4
  741. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/layout/layout-contents.jsx +0 -118
  742. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/layout/settings-box.jsx +0 -35
  743. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/mui-box/index.jsx +0 -64
  744. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/number-text-field-custom.jsx +0 -279
  745. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/number-text-field.jsx +0 -201
  746. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/radio-with-label.jsx +0 -18
  747. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/settings/display-size.jsx +0 -52
  748. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/settings/index.js +0 -82
  749. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/settings/panel.jsx +0 -325
  750. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/settings/settings-radio-label.jsx +0 -20
  751. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/settings/toggle.jsx +0 -31
  752. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/tabs/index.jsx +0 -47
  753. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/tags-input/index.jsx +0 -119
  754. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/two-choice.jsx +0 -94
  755. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/config-ui/with-stateful-model.jsx +0 -36
  756. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/controller-utils/index.js +0 -4
  757. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/controller-utils/partial-scoring.js +0 -21
  758. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/controller-utils/persistence.js +0 -105
  759. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/correct-answer-toggle/expander.jsx +0 -59
  760. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/correct-answer-toggle/index.jsx +0 -94
  761. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/correct-answer-toggle/styles.js +0 -61
  762. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/drag/choice.jsx +0 -76
  763. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/drag/drag-in-the-blank-dp.jsx +0 -19
  764. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/drag/drag-type.js +0 -7
  765. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/drag/droppable-placeholder.jsx +0 -35
  766. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/drag/ica-dp.jsx +0 -23
  767. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/drag/index.js +0 -23
  768. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/drag/match-list-dp.jsx +0 -23
  769. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/drag/placeholder.jsx +0 -86
  770. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/drag/preview-component.jsx +0 -113
  771. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/drag/swap.js +0 -14
  772. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/drag/uid-context.js +0 -13
  773. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/drag/with-drag-context.js +0 -25
  774. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/components.js +0 -135
  775. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/editor.jsx +0 -1248
  776. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/index.jsx +0 -131
  777. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/new-serialization.jsx +0 -310
  778. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/parse-html.js +0 -8
  779. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/README.md +0 -27
  780. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/characters/custom-popper.js +0 -48
  781. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/characters/index.jsx +0 -271
  782. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/characters/utils.js +0 -447
  783. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/hotKeys/index.js +0 -54
  784. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/html/icons/index.jsx +0 -19
  785. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/html/index.jsx +0 -81
  786. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/image/alt-dialog.jsx +0 -82
  787. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/image/component.jsx +0 -375
  788. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/image/image-toolbar.jsx +0 -100
  789. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/image/index.jsx +0 -327
  790. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/image/insert-image-handler.js +0 -128
  791. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/index.jsx +0 -104
  792. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/list/index.jsx +0 -147
  793. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/math/index.jsx +0 -362
  794. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/media/index.jsx +0 -353
  795. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/media/media-dialog.js +0 -576
  796. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/media/media-toolbar.jsx +0 -56
  797. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/media/media-wrapper.jsx +0 -45
  798. 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 +0 -187
  799. 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 +0 -109
  800. 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 +0 -47
  801. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/respArea/icons/index.jsx +0 -71
  802. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/respArea/index.jsx +0 -283
  803. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/respArea/inline-dropdown/index.jsx +0 -64
  804. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/respArea/utils.jsx +0 -74
  805. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/table/icons/index.jsx +0 -53
  806. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/table/index.jsx +0 -560
  807. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/table/table-toolbar.jsx +0 -98
  808. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/toolbar/default-toolbar.jsx +0 -173
  809. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/toolbar/done-button.jsx +0 -36
  810. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/toolbar/editor-and-toolbar.jsx +0 -252
  811. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/toolbar/index.jsx +0 -23
  812. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/toolbar/toolbar-buttons.jsx +0 -97
  813. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/toolbar/toolbar.jsx +0 -332
  814. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/plugins/utils.js +0 -47
  815. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/serialization.jsx +0 -446
  816. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/test-serializer.js +0 -132
  817. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/editable-html/theme.js +0 -1
  818. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/feedback/index.js +0 -61
  819. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/axis/arrow.jsx +0 -62
  820. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/axis/axes.jsx +0 -307
  821. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/axis/index.js +0 -2
  822. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/bg.jsx +0 -96
  823. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/container/actions.js +0 -8
  824. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/container/index.jsx +0 -86
  825. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/container/marks.js +0 -14
  826. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/container/middleware.js +0 -7
  827. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/container/reducer.js +0 -5
  828. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/coordinates-label.jsx +0 -72
  829. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/graph-with-controls.jsx +0 -246
  830. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/graph.jsx +0 -275
  831. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/grid-setup.jsx +0 -424
  832. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/grid.jsx +0 -137
  833. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/index.js +0 -7
  834. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/labels.jsx +0 -213
  835. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/mark-label.jsx +0 -144
  836. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/toggle-bar.jsx +0 -243
  837. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tool-menu.jsx +0 -72
  838. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/circle/bg-circle.jsx +0 -88
  839. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/circle/component.jsx +0 -283
  840. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/circle/index.js +0 -25
  841. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/index.js +0 -15
  842. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/line/component.jsx +0 -70
  843. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/line/index.js +0 -4
  844. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/parabola/component.jsx +0 -22
  845. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/parabola/index.js +0 -31
  846. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/point/component.jsx +0 -114
  847. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/point/index.js +0 -11
  848. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/polygon/component.jsx +0 -373
  849. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/polygon/index.js +0 -52
  850. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/polygon/line.jsx +0 -78
  851. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/polygon/polygon.jsx +0 -98
  852. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/ray/component.jsx +0 -69
  853. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/ray/index.js +0 -4
  854. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/segment/component.jsx +0 -48
  855. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/segment/index.js +0 -4
  856. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/shared/arrow-head.jsx +0 -44
  857. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/shared/line/index.jsx +0 -408
  858. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/shared/line/line-path.jsx +0 -88
  859. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/shared/line/with-root-edge.jsx +0 -90
  860. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/shared/point/arrow-point.jsx +0 -60
  861. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/shared/point/arrow.jsx +0 -40
  862. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/shared/point/base-point.jsx +0 -73
  863. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/shared/point/index.jsx +0 -60
  864. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/shared/styles.js +0 -20
  865. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/shared/types.js +0 -10
  866. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/sine/component.jsx +0 -32
  867. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/sine/index.js +0 -33
  868. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/vector/component.jsx +0 -60
  869. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/tools/vector/index.js +0 -4
  870. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/undo-redo.jsx +0 -51
  871. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/use-debounce.js +0 -13
  872. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing/utils.js +0 -226
  873. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/graphing-utils/index.js +0 -119
  874. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/icons/correct-icon.jsx +0 -64
  875. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/icons/correct-response-icon.jsx +0 -121
  876. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/icons/icon-base.jsx +0 -158
  877. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/icons/icon-root.jsx +0 -76
  878. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/icons/image-konva.jsx +0 -76
  879. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/icons/incorrect-icon.jsx +0 -61
  880. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/icons/index.js +0 -21
  881. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/icons/instructions-icon.jsx +0 -189
  882. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/icons/learn-more-icon.jsx +0 -107
  883. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/icons/nothing-submitted-icon.jsx +0 -130
  884. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/icons/partially-correct-icon.jsx +0 -49
  885. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/icons/show-rationale-icon.jsx +0 -152
  886. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/icons/sized.jsx +0 -25
  887. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/mask-markup/choices/choice.jsx +0 -110
  888. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/mask-markup/choices/index.jsx +0 -63
  889. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/mask-markup/componentize.js +0 -13
  890. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/mask-markup/components/blank.jsx +0 -249
  891. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/mask-markup/components/correct-input.jsx +0 -93
  892. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/mask-markup/components/dropdown.jsx +0 -160
  893. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/mask-markup/components/input.jsx +0 -48
  894. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/mask-markup/constructed-response.jsx +0 -34
  895. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/mask-markup/drag-in-the-blank.jsx +0 -124
  896. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/mask-markup/index.js +0 -7
  897. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/mask-markup/inline-dropdown.jsx +0 -27
  898. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/mask-markup/mask.jsx +0 -125
  899. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/mask-markup/new-serialization.jsx +0 -291
  900. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/mask-markup/parse-html.js +0 -8
  901. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/mask-markup/serialization.js +0 -182
  902. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/mask-markup/test-serializer.js +0 -163
  903. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/mask-markup/with-mask.jsx +0 -35
  904. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-evaluator/index.js +0 -169
  905. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/horizontal-keypad.jsx +0 -56
  906. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/index.jsx +0 -27
  907. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keypad/index.jsx +0 -366
  908. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keypad/keys-layout.js +0 -17
  909. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/basic-operators.js +0 -32
  910. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/chars.js +0 -5
  911. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/comparison.js +0 -28
  912. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/constants.js +0 -35
  913. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/digits.js +0 -40
  914. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/edit.js +0 -3
  915. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/exponent.js +0 -28
  916. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/fractions.js +0 -26
  917. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/geometry.js +0 -140
  918. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/grades.js +0 -356
  919. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/index.js +0 -21
  920. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/log.js +0 -22
  921. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/logic.js +0 -15
  922. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/matrices.js +0 -15
  923. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/misc.js +0 -65
  924. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/navigation.js +0 -8
  925. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/operators.js +0 -10
  926. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/statistics.js +0 -38
  927. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/sub-sup.js +0 -15
  928. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/trigonometry.js +0 -15
  929. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/utils.js +0 -71
  930. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/keys/vars.js +0 -19
  931. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/math-input.jsx +0 -128
  932. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/mq/custom-elements.js +0 -11
  933. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/mq/index.js +0 -4
  934. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/mq/input.jsx +0 -163
  935. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-input/mq/static.jsx +0 -156
  936. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-rendering/index.js +0 -5
  937. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-rendering/mml-to-latex.js +0 -2
  938. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-rendering/mstack/chtml.js +0 -220
  939. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-rendering/mstack/index.js +0 -13
  940. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-rendering/mstack/mml.js +0 -24
  941. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-rendering/normalization.js +0 -69
  942. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-rendering/render-math.js +0 -339
  943. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-toolbar/done-button.jsx +0 -47
  944. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-toolbar/editor-and-pad.jsx +0 -597
  945. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-toolbar/index.jsx +0 -213
  946. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/math-toolbar/math-preview.jsx +0 -205
  947. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/plot/draggable.jsx +0 -11
  948. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/plot/graph-props.js +0 -38
  949. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/plot/grid-draggable.jsx +0 -228
  950. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/plot/index.js +0 -9
  951. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/plot/label.jsx +0 -151
  952. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/plot/root.jsx +0 -336
  953. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/plot/trig.js +0 -150
  954. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/plot/types.js +0 -41
  955. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/plot/utils.js +0 -156
  956. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/render-ui/collapsible/index.jsx +0 -63
  957. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/render-ui/color.js +0 -55
  958. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/render-ui/feedback.jsx +0 -100
  959. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/render-ui/has-text.js +0 -14
  960. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/render-ui/html-and-math.js +0 -34
  961. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/render-ui/index.js +0 -27
  962. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/render-ui/input-container.jsx +0 -41
  963. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/render-ui/preview-layout.jsx +0 -84
  964. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/render-ui/preview-prompt.jsx +0 -130
  965. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/render-ui/purpose.jsx +0 -17
  966. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/render-ui/readable.jsx +0 -19
  967. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/render-ui/response-indicators.jsx +0 -89
  968. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/render-ui/withUndoReset.jsx +0 -116
  969. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/rubric/authoring.jsx +0 -359
  970. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/rubric/index.js +0 -8
  971. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/rubric/point-menu.jsx +0 -94
  972. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/scoring-config/index.jsx +0 -57
  973. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/style-utils/index.js +0 -10
  974. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/test-utils/index.js +0 -18
  975. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/text-select/index.js +0 -8
  976. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/text-select/legend.js +0 -78
  977. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/text-select/text-select.jsx +0 -79
  978. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/text-select/token-select/index.jsx +0 -162
  979. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/text-select/token-select/token.jsx +0 -199
  980. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/text-select/tokenizer/builder.js +0 -259
  981. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/text-select/tokenizer/controls.jsx +0 -69
  982. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/text-select/tokenizer/index.jsx +0 -149
  983. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/text-select/tokenizer/selection-utils.js +0 -49
  984. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/text-select/tokenizer/token-text.jsx +0 -124
  985. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/text-select/utils.js +0 -56
  986. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/tools/anchor-utils.js +0 -152
  987. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/tools/anchor.jsx +0 -21
  988. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/tools/index.js +0 -6
  989. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/tools/protractor/graphic.jsx +0 -87
  990. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/tools/protractor/index.jsx +0 -65
  991. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/tools/rotatable.jsx +0 -295
  992. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/tools/ruler/graphic.jsx +0 -51
  993. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/tools/ruler/index.jsx +0 -81
  994. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/tools/ruler/unit-type.jsx +0 -45
  995. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/tools/ruler/unit.jsx +0 -87
  996. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/tools/style-utils.js +0 -7
  997. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/tools/transform-origin.jsx +0 -60
  998. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/translator/en.js +0 -75
  999. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/translator/es.js +0 -75
  1000. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/code/translator/index.js +0 -45
  1001. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/config-ui.js +0 -62
  1002. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/controller-utils.js +0 -3
  1003. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/correct-answer-toggle.js +0 -3
  1004. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/drag.js +0 -25
  1005. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/editable-html.js +0 -4
  1006. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/feedback.js +0 -11
  1007. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/graphing-utils.js +0 -23
  1008. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/graphing.js +0 -7
  1009. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/icons.js +0 -23
  1010. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/mask-markup.js +0 -3
  1011. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/math-evaluator.js +0 -3
  1012. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/math-input.js +0 -3
  1013. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/math-rendering.js +0 -3
  1014. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/math-toolbar.js +0 -13
  1015. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/plot.js +0 -3
  1016. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/render-ui.js +0 -29
  1017. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/rubric.js +0 -3
  1018. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/scoring-config.js +0 -3
  1019. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/style-utils.js +0 -3
  1020. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/test-utils.js +0 -3
  1021. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/text-select.js +0 -3
  1022. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/tools.js +0 -3
  1023. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/src/translator.js +0 -3
  1024. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/style-utils.js +0 -13
  1025. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/style-utils.js.map +0 -1
  1026. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/test-utils.js +0 -13
  1027. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/test-utils.js.map +0 -1
  1028. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/text-select.js +0 -49
  1029. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/text-select.js.map +0 -1
  1030. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/tools.js +0 -31
  1031. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/tools.js.map +0 -1
  1032. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/translator.js +0 -10
  1033. package/configure/node_modules/@pie-element/multiple-choice/node_modules/@pie-lib/pie-toolbox/translator.js.map +0 -1
  1034. package/configure/node_modules/@pie-element/multiple-choice/package.json +0 -31
  1035. package/configure/node_modules/@types/lodash/LICENSE +0 -21
  1036. package/configure/node_modules/@types/lodash/README.md +0 -15
  1037. package/configure/node_modules/@types/lodash/add.d.ts +0 -2
  1038. package/configure/node_modules/@types/lodash/after.d.ts +0 -2
  1039. package/configure/node_modules/@types/lodash/ary.d.ts +0 -2
  1040. package/configure/node_modules/@types/lodash/assign.d.ts +0 -2
  1041. package/configure/node_modules/@types/lodash/assignIn.d.ts +0 -2
  1042. package/configure/node_modules/@types/lodash/assignInWith.d.ts +0 -2
  1043. package/configure/node_modules/@types/lodash/assignWith.d.ts +0 -2
  1044. package/configure/node_modules/@types/lodash/at.d.ts +0 -2
  1045. package/configure/node_modules/@types/lodash/attempt.d.ts +0 -2
  1046. package/configure/node_modules/@types/lodash/before.d.ts +0 -2
  1047. package/configure/node_modules/@types/lodash/bind.d.ts +0 -2
  1048. package/configure/node_modules/@types/lodash/bindAll.d.ts +0 -2
  1049. package/configure/node_modules/@types/lodash/bindKey.d.ts +0 -2
  1050. package/configure/node_modules/@types/lodash/camelCase.d.ts +0 -2
  1051. package/configure/node_modules/@types/lodash/capitalize.d.ts +0 -2
  1052. package/configure/node_modules/@types/lodash/castArray.d.ts +0 -2
  1053. package/configure/node_modules/@types/lodash/ceil.d.ts +0 -2
  1054. package/configure/node_modules/@types/lodash/chain.d.ts +0 -2
  1055. package/configure/node_modules/@types/lodash/chunk.d.ts +0 -2
  1056. package/configure/node_modules/@types/lodash/clamp.d.ts +0 -2
  1057. package/configure/node_modules/@types/lodash/clone.d.ts +0 -2
  1058. package/configure/node_modules/@types/lodash/cloneDeep.d.ts +0 -2
  1059. package/configure/node_modules/@types/lodash/cloneDeepWith.d.ts +0 -2
  1060. package/configure/node_modules/@types/lodash/cloneWith.d.ts +0 -2
  1061. package/configure/node_modules/@types/lodash/common/array.d.ts +0 -2127
  1062. package/configure/node_modules/@types/lodash/common/collection.d.ts +0 -1934
  1063. package/configure/node_modules/@types/lodash/common/common.d.ts +0 -280
  1064. package/configure/node_modules/@types/lodash/common/date.d.ts +0 -23
  1065. package/configure/node_modules/@types/lodash/common/function.d.ts +0 -1446
  1066. package/configure/node_modules/@types/lodash/common/lang.d.ts +0 -1700
  1067. package/configure/node_modules/@types/lodash/common/math.d.ts +0 -405
  1068. package/configure/node_modules/@types/lodash/common/number.d.ts +0 -131
  1069. package/configure/node_modules/@types/lodash/common/object.d.ts +0 -2580
  1070. package/configure/node_modules/@types/lodash/common/seq.d.ts +0 -210
  1071. package/configure/node_modules/@types/lodash/common/string.d.ts +0 -788
  1072. package/configure/node_modules/@types/lodash/common/util.d.ts +0 -1220
  1073. package/configure/node_modules/@types/lodash/compact.d.ts +0 -2
  1074. package/configure/node_modules/@types/lodash/concat.d.ts +0 -2
  1075. package/configure/node_modules/@types/lodash/cond.d.ts +0 -2
  1076. package/configure/node_modules/@types/lodash/conformsTo.d.ts +0 -2
  1077. package/configure/node_modules/@types/lodash/constant.d.ts +0 -2
  1078. package/configure/node_modules/@types/lodash/countBy.d.ts +0 -2
  1079. package/configure/node_modules/@types/lodash/create.d.ts +0 -2
  1080. package/configure/node_modules/@types/lodash/curry.d.ts +0 -2
  1081. package/configure/node_modules/@types/lodash/curryRight.d.ts +0 -2
  1082. package/configure/node_modules/@types/lodash/debounce.d.ts +0 -2
  1083. package/configure/node_modules/@types/lodash/deburr.d.ts +0 -2
  1084. package/configure/node_modules/@types/lodash/defaultTo.d.ts +0 -2
  1085. package/configure/node_modules/@types/lodash/defaults.d.ts +0 -2
  1086. package/configure/node_modules/@types/lodash/defaultsDeep.d.ts +0 -2
  1087. package/configure/node_modules/@types/lodash/defer.d.ts +0 -2
  1088. package/configure/node_modules/@types/lodash/delay.d.ts +0 -2
  1089. package/configure/node_modules/@types/lodash/difference.d.ts +0 -2
  1090. package/configure/node_modules/@types/lodash/differenceBy.d.ts +0 -2
  1091. package/configure/node_modules/@types/lodash/differenceWith.d.ts +0 -2
  1092. package/configure/node_modules/@types/lodash/divide.d.ts +0 -2
  1093. package/configure/node_modules/@types/lodash/drop.d.ts +0 -2
  1094. package/configure/node_modules/@types/lodash/dropRight.d.ts +0 -2
  1095. package/configure/node_modules/@types/lodash/dropRightWhile.d.ts +0 -2
  1096. package/configure/node_modules/@types/lodash/dropWhile.d.ts +0 -2
  1097. package/configure/node_modules/@types/lodash/each.d.ts +0 -2
  1098. package/configure/node_modules/@types/lodash/eachRight.d.ts +0 -2
  1099. package/configure/node_modules/@types/lodash/endsWith.d.ts +0 -2
  1100. package/configure/node_modules/@types/lodash/entries.d.ts +0 -2
  1101. package/configure/node_modules/@types/lodash/entriesIn.d.ts +0 -2
  1102. package/configure/node_modules/@types/lodash/eq.d.ts +0 -2
  1103. package/configure/node_modules/@types/lodash/escape.d.ts +0 -2
  1104. package/configure/node_modules/@types/lodash/escapeRegExp.d.ts +0 -2
  1105. package/configure/node_modules/@types/lodash/every.d.ts +0 -2
  1106. package/configure/node_modules/@types/lodash/extend.d.ts +0 -2
  1107. package/configure/node_modules/@types/lodash/extendWith.d.ts +0 -2
  1108. package/configure/node_modules/@types/lodash/fill.d.ts +0 -2
  1109. package/configure/node_modules/@types/lodash/filter.d.ts +0 -2
  1110. package/configure/node_modules/@types/lodash/find.d.ts +0 -2
  1111. package/configure/node_modules/@types/lodash/findIndex.d.ts +0 -2
  1112. package/configure/node_modules/@types/lodash/findKey.d.ts +0 -2
  1113. package/configure/node_modules/@types/lodash/findLast.d.ts +0 -2
  1114. package/configure/node_modules/@types/lodash/findLastIndex.d.ts +0 -2
  1115. package/configure/node_modules/@types/lodash/findLastKey.d.ts +0 -2
  1116. package/configure/node_modules/@types/lodash/first.d.ts +0 -2
  1117. package/configure/node_modules/@types/lodash/flatMap.d.ts +0 -2
  1118. package/configure/node_modules/@types/lodash/flatMapDeep.d.ts +0 -2
  1119. package/configure/node_modules/@types/lodash/flatMapDepth.d.ts +0 -2
  1120. package/configure/node_modules/@types/lodash/flatten.d.ts +0 -2
  1121. package/configure/node_modules/@types/lodash/flattenDeep.d.ts +0 -2
  1122. package/configure/node_modules/@types/lodash/flattenDepth.d.ts +0 -2
  1123. package/configure/node_modules/@types/lodash/flip.d.ts +0 -2
  1124. package/configure/node_modules/@types/lodash/floor.d.ts +0 -2
  1125. package/configure/node_modules/@types/lodash/flow.d.ts +0 -2
  1126. package/configure/node_modules/@types/lodash/flowRight.d.ts +0 -2
  1127. package/configure/node_modules/@types/lodash/forEach.d.ts +0 -2
  1128. package/configure/node_modules/@types/lodash/forEachRight.d.ts +0 -2
  1129. package/configure/node_modules/@types/lodash/forIn.d.ts +0 -2
  1130. package/configure/node_modules/@types/lodash/forInRight.d.ts +0 -2
  1131. package/configure/node_modules/@types/lodash/forOwn.d.ts +0 -2
  1132. package/configure/node_modules/@types/lodash/forOwnRight.d.ts +0 -2
  1133. package/configure/node_modules/@types/lodash/fp/F.d.ts +0 -2
  1134. package/configure/node_modules/@types/lodash/fp/T.d.ts +0 -2
  1135. package/configure/node_modules/@types/lodash/fp/__.d.ts +0 -3
  1136. package/configure/node_modules/@types/lodash/fp/add.d.ts +0 -2
  1137. package/configure/node_modules/@types/lodash/fp/after.d.ts +0 -2
  1138. package/configure/node_modules/@types/lodash/fp/all.d.ts +0 -2
  1139. package/configure/node_modules/@types/lodash/fp/allPass.d.ts +0 -2
  1140. package/configure/node_modules/@types/lodash/fp/always.d.ts +0 -2
  1141. package/configure/node_modules/@types/lodash/fp/any.d.ts +0 -2
  1142. package/configure/node_modules/@types/lodash/fp/anyPass.d.ts +0 -2
  1143. package/configure/node_modules/@types/lodash/fp/apply.d.ts +0 -2
  1144. package/configure/node_modules/@types/lodash/fp/ary.d.ts +0 -2
  1145. package/configure/node_modules/@types/lodash/fp/assign.d.ts +0 -2
  1146. package/configure/node_modules/@types/lodash/fp/assignAll.d.ts +0 -2
  1147. package/configure/node_modules/@types/lodash/fp/assignAllWith.d.ts +0 -2
  1148. package/configure/node_modules/@types/lodash/fp/assignIn.d.ts +0 -2
  1149. package/configure/node_modules/@types/lodash/fp/assignInAll.d.ts +0 -2
  1150. package/configure/node_modules/@types/lodash/fp/assignInAllWith.d.ts +0 -2
  1151. package/configure/node_modules/@types/lodash/fp/assignInWith.d.ts +0 -2
  1152. package/configure/node_modules/@types/lodash/fp/assignWith.d.ts +0 -2
  1153. package/configure/node_modules/@types/lodash/fp/assoc.d.ts +0 -2
  1154. package/configure/node_modules/@types/lodash/fp/assocPath.d.ts +0 -2
  1155. package/configure/node_modules/@types/lodash/fp/at.d.ts +0 -2
  1156. package/configure/node_modules/@types/lodash/fp/attempt.d.ts +0 -2
  1157. package/configure/node_modules/@types/lodash/fp/before.d.ts +0 -2
  1158. package/configure/node_modules/@types/lodash/fp/bind.d.ts +0 -2
  1159. package/configure/node_modules/@types/lodash/fp/bindAll.d.ts +0 -2
  1160. package/configure/node_modules/@types/lodash/fp/bindKey.d.ts +0 -2
  1161. package/configure/node_modules/@types/lodash/fp/camelCase.d.ts +0 -2
  1162. package/configure/node_modules/@types/lodash/fp/capitalize.d.ts +0 -2
  1163. package/configure/node_modules/@types/lodash/fp/castArray.d.ts +0 -2
  1164. package/configure/node_modules/@types/lodash/fp/ceil.d.ts +0 -2
  1165. package/configure/node_modules/@types/lodash/fp/chunk.d.ts +0 -2
  1166. package/configure/node_modules/@types/lodash/fp/clamp.d.ts +0 -2
  1167. package/configure/node_modules/@types/lodash/fp/clone.d.ts +0 -2
  1168. package/configure/node_modules/@types/lodash/fp/cloneDeep.d.ts +0 -2
  1169. package/configure/node_modules/@types/lodash/fp/cloneDeepWith.d.ts +0 -2
  1170. package/configure/node_modules/@types/lodash/fp/cloneWith.d.ts +0 -2
  1171. package/configure/node_modules/@types/lodash/fp/compact.d.ts +0 -2
  1172. package/configure/node_modules/@types/lodash/fp/complement.d.ts +0 -2
  1173. package/configure/node_modules/@types/lodash/fp/compose.d.ts +0 -2
  1174. package/configure/node_modules/@types/lodash/fp/concat.d.ts +0 -2
  1175. package/configure/node_modules/@types/lodash/fp/cond.d.ts +0 -2
  1176. package/configure/node_modules/@types/lodash/fp/conforms.d.ts +0 -2
  1177. package/configure/node_modules/@types/lodash/fp/conformsTo.d.ts +0 -2
  1178. package/configure/node_modules/@types/lodash/fp/constant.d.ts +0 -2
  1179. package/configure/node_modules/@types/lodash/fp/contains.d.ts +0 -2
  1180. package/configure/node_modules/@types/lodash/fp/convert.d.ts +0 -15
  1181. package/configure/node_modules/@types/lodash/fp/countBy.d.ts +0 -2
  1182. package/configure/node_modules/@types/lodash/fp/create.d.ts +0 -2
  1183. package/configure/node_modules/@types/lodash/fp/curry.d.ts +0 -2
  1184. package/configure/node_modules/@types/lodash/fp/curryN.d.ts +0 -2
  1185. package/configure/node_modules/@types/lodash/fp/curryRight.d.ts +0 -2
  1186. package/configure/node_modules/@types/lodash/fp/curryRightN.d.ts +0 -2
  1187. package/configure/node_modules/@types/lodash/fp/debounce.d.ts +0 -2
  1188. package/configure/node_modules/@types/lodash/fp/deburr.d.ts +0 -2
  1189. package/configure/node_modules/@types/lodash/fp/defaultTo.d.ts +0 -2
  1190. package/configure/node_modules/@types/lodash/fp/defaults.d.ts +0 -2
  1191. package/configure/node_modules/@types/lodash/fp/defaultsAll.d.ts +0 -2
  1192. package/configure/node_modules/@types/lodash/fp/defaultsDeep.d.ts +0 -2
  1193. package/configure/node_modules/@types/lodash/fp/defaultsDeepAll.d.ts +0 -2
  1194. package/configure/node_modules/@types/lodash/fp/defer.d.ts +0 -2
  1195. package/configure/node_modules/@types/lodash/fp/delay.d.ts +0 -2
  1196. package/configure/node_modules/@types/lodash/fp/difference.d.ts +0 -2
  1197. package/configure/node_modules/@types/lodash/fp/differenceBy.d.ts +0 -2
  1198. package/configure/node_modules/@types/lodash/fp/differenceWith.d.ts +0 -2
  1199. package/configure/node_modules/@types/lodash/fp/dissoc.d.ts +0 -2
  1200. package/configure/node_modules/@types/lodash/fp/dissocPath.d.ts +0 -2
  1201. package/configure/node_modules/@types/lodash/fp/divide.d.ts +0 -2
  1202. package/configure/node_modules/@types/lodash/fp/drop.d.ts +0 -2
  1203. package/configure/node_modules/@types/lodash/fp/dropLast.d.ts +0 -2
  1204. package/configure/node_modules/@types/lodash/fp/dropLastWhile.d.ts +0 -2
  1205. package/configure/node_modules/@types/lodash/fp/dropRight.d.ts +0 -2
  1206. package/configure/node_modules/@types/lodash/fp/dropRightWhile.d.ts +0 -2
  1207. package/configure/node_modules/@types/lodash/fp/dropWhile.d.ts +0 -2
  1208. package/configure/node_modules/@types/lodash/fp/each.d.ts +0 -2
  1209. package/configure/node_modules/@types/lodash/fp/eachRight.d.ts +0 -2
  1210. package/configure/node_modules/@types/lodash/fp/endsWith.d.ts +0 -2
  1211. package/configure/node_modules/@types/lodash/fp/entries.d.ts +0 -2
  1212. package/configure/node_modules/@types/lodash/fp/entriesIn.d.ts +0 -2
  1213. package/configure/node_modules/@types/lodash/fp/eq.d.ts +0 -2
  1214. package/configure/node_modules/@types/lodash/fp/equals.d.ts +0 -2
  1215. package/configure/node_modules/@types/lodash/fp/escape.d.ts +0 -2
  1216. package/configure/node_modules/@types/lodash/fp/escapeRegExp.d.ts +0 -2
  1217. package/configure/node_modules/@types/lodash/fp/every.d.ts +0 -2
  1218. package/configure/node_modules/@types/lodash/fp/extend.d.ts +0 -2
  1219. package/configure/node_modules/@types/lodash/fp/extendAll.d.ts +0 -2
  1220. package/configure/node_modules/@types/lodash/fp/extendAllWith.d.ts +0 -2
  1221. package/configure/node_modules/@types/lodash/fp/extendWith.d.ts +0 -2
  1222. package/configure/node_modules/@types/lodash/fp/fill.d.ts +0 -2
  1223. package/configure/node_modules/@types/lodash/fp/filter.d.ts +0 -2
  1224. package/configure/node_modules/@types/lodash/fp/find.d.ts +0 -2
  1225. package/configure/node_modules/@types/lodash/fp/findFrom.d.ts +0 -2
  1226. package/configure/node_modules/@types/lodash/fp/findIndex.d.ts +0 -2
  1227. package/configure/node_modules/@types/lodash/fp/findIndexFrom.d.ts +0 -2
  1228. package/configure/node_modules/@types/lodash/fp/findKey.d.ts +0 -2
  1229. package/configure/node_modules/@types/lodash/fp/findLast.d.ts +0 -2
  1230. package/configure/node_modules/@types/lodash/fp/findLastFrom.d.ts +0 -2
  1231. package/configure/node_modules/@types/lodash/fp/findLastIndex.d.ts +0 -2
  1232. package/configure/node_modules/@types/lodash/fp/findLastIndexFrom.d.ts +0 -2
  1233. package/configure/node_modules/@types/lodash/fp/findLastKey.d.ts +0 -2
  1234. package/configure/node_modules/@types/lodash/fp/first.d.ts +0 -2
  1235. package/configure/node_modules/@types/lodash/fp/flatMap.d.ts +0 -2
  1236. package/configure/node_modules/@types/lodash/fp/flatMapDeep.d.ts +0 -2
  1237. package/configure/node_modules/@types/lodash/fp/flatMapDepth.d.ts +0 -2
  1238. package/configure/node_modules/@types/lodash/fp/flatten.d.ts +0 -2
  1239. package/configure/node_modules/@types/lodash/fp/flattenDeep.d.ts +0 -2
  1240. package/configure/node_modules/@types/lodash/fp/flattenDepth.d.ts +0 -2
  1241. package/configure/node_modules/@types/lodash/fp/flip.d.ts +0 -2
  1242. package/configure/node_modules/@types/lodash/fp/floor.d.ts +0 -2
  1243. package/configure/node_modules/@types/lodash/fp/flow.d.ts +0 -2
  1244. package/configure/node_modules/@types/lodash/fp/flowRight.d.ts +0 -2
  1245. package/configure/node_modules/@types/lodash/fp/forEach.d.ts +0 -2
  1246. package/configure/node_modules/@types/lodash/fp/forEachRight.d.ts +0 -2
  1247. package/configure/node_modules/@types/lodash/fp/forIn.d.ts +0 -2
  1248. package/configure/node_modules/@types/lodash/fp/forInRight.d.ts +0 -2
  1249. package/configure/node_modules/@types/lodash/fp/forOwn.d.ts +0 -2
  1250. package/configure/node_modules/@types/lodash/fp/forOwnRight.d.ts +0 -2
  1251. package/configure/node_modules/@types/lodash/fp/fromPairs.d.ts +0 -2
  1252. package/configure/node_modules/@types/lodash/fp/functions.d.ts +0 -2
  1253. package/configure/node_modules/@types/lodash/fp/functionsIn.d.ts +0 -2
  1254. package/configure/node_modules/@types/lodash/fp/get.d.ts +0 -2
  1255. package/configure/node_modules/@types/lodash/fp/getOr.d.ts +0 -2
  1256. package/configure/node_modules/@types/lodash/fp/groupBy.d.ts +0 -2
  1257. package/configure/node_modules/@types/lodash/fp/gt.d.ts +0 -2
  1258. package/configure/node_modules/@types/lodash/fp/gte.d.ts +0 -2
  1259. package/configure/node_modules/@types/lodash/fp/has.d.ts +0 -2
  1260. package/configure/node_modules/@types/lodash/fp/hasIn.d.ts +0 -2
  1261. package/configure/node_modules/@types/lodash/fp/head.d.ts +0 -2
  1262. package/configure/node_modules/@types/lodash/fp/identical.d.ts +0 -2
  1263. package/configure/node_modules/@types/lodash/fp/identity.d.ts +0 -2
  1264. package/configure/node_modules/@types/lodash/fp/inRange.d.ts +0 -2
  1265. package/configure/node_modules/@types/lodash/fp/includes.d.ts +0 -2
  1266. package/configure/node_modules/@types/lodash/fp/includesFrom.d.ts +0 -2
  1267. package/configure/node_modules/@types/lodash/fp/indexBy.d.ts +0 -2
  1268. package/configure/node_modules/@types/lodash/fp/indexOf.d.ts +0 -2
  1269. package/configure/node_modules/@types/lodash/fp/indexOfFrom.d.ts +0 -2
  1270. package/configure/node_modules/@types/lodash/fp/init.d.ts +0 -2
  1271. package/configure/node_modules/@types/lodash/fp/initial.d.ts +0 -2
  1272. package/configure/node_modules/@types/lodash/fp/intersection.d.ts +0 -2
  1273. package/configure/node_modules/@types/lodash/fp/intersectionBy.d.ts +0 -2
  1274. package/configure/node_modules/@types/lodash/fp/intersectionWith.d.ts +0 -2
  1275. package/configure/node_modules/@types/lodash/fp/invert.d.ts +0 -2
  1276. package/configure/node_modules/@types/lodash/fp/invertBy.d.ts +0 -2
  1277. package/configure/node_modules/@types/lodash/fp/invertObj.d.ts +0 -2
  1278. package/configure/node_modules/@types/lodash/fp/invoke.d.ts +0 -2
  1279. package/configure/node_modules/@types/lodash/fp/invokeArgs.d.ts +0 -2
  1280. package/configure/node_modules/@types/lodash/fp/invokeArgsMap.d.ts +0 -2
  1281. package/configure/node_modules/@types/lodash/fp/invokeMap.d.ts +0 -2
  1282. package/configure/node_modules/@types/lodash/fp/isArguments.d.ts +0 -2
  1283. package/configure/node_modules/@types/lodash/fp/isArray.d.ts +0 -2
  1284. package/configure/node_modules/@types/lodash/fp/isArrayBuffer.d.ts +0 -2
  1285. package/configure/node_modules/@types/lodash/fp/isArrayLike.d.ts +0 -2
  1286. package/configure/node_modules/@types/lodash/fp/isArrayLikeObject.d.ts +0 -2
  1287. package/configure/node_modules/@types/lodash/fp/isBoolean.d.ts +0 -2
  1288. package/configure/node_modules/@types/lodash/fp/isBuffer.d.ts +0 -2
  1289. package/configure/node_modules/@types/lodash/fp/isDate.d.ts +0 -2
  1290. package/configure/node_modules/@types/lodash/fp/isElement.d.ts +0 -2
  1291. package/configure/node_modules/@types/lodash/fp/isEmpty.d.ts +0 -2
  1292. package/configure/node_modules/@types/lodash/fp/isEqual.d.ts +0 -2
  1293. package/configure/node_modules/@types/lodash/fp/isEqualWith.d.ts +0 -2
  1294. package/configure/node_modules/@types/lodash/fp/isError.d.ts +0 -2
  1295. package/configure/node_modules/@types/lodash/fp/isFinite.d.ts +0 -2
  1296. package/configure/node_modules/@types/lodash/fp/isFunction.d.ts +0 -2
  1297. package/configure/node_modules/@types/lodash/fp/isInteger.d.ts +0 -2
  1298. package/configure/node_modules/@types/lodash/fp/isLength.d.ts +0 -2
  1299. package/configure/node_modules/@types/lodash/fp/isMap.d.ts +0 -2
  1300. package/configure/node_modules/@types/lodash/fp/isMatch.d.ts +0 -2
  1301. package/configure/node_modules/@types/lodash/fp/isMatchWith.d.ts +0 -2
  1302. package/configure/node_modules/@types/lodash/fp/isNaN.d.ts +0 -2
  1303. package/configure/node_modules/@types/lodash/fp/isNative.d.ts +0 -2
  1304. package/configure/node_modules/@types/lodash/fp/isNil.d.ts +0 -2
  1305. package/configure/node_modules/@types/lodash/fp/isNull.d.ts +0 -2
  1306. package/configure/node_modules/@types/lodash/fp/isNumber.d.ts +0 -2
  1307. package/configure/node_modules/@types/lodash/fp/isObject.d.ts +0 -2
  1308. package/configure/node_modules/@types/lodash/fp/isObjectLike.d.ts +0 -2
  1309. package/configure/node_modules/@types/lodash/fp/isPlainObject.d.ts +0 -2
  1310. package/configure/node_modules/@types/lodash/fp/isRegExp.d.ts +0 -2
  1311. package/configure/node_modules/@types/lodash/fp/isSafeInteger.d.ts +0 -2
  1312. package/configure/node_modules/@types/lodash/fp/isSet.d.ts +0 -2
  1313. package/configure/node_modules/@types/lodash/fp/isString.d.ts +0 -2
  1314. package/configure/node_modules/@types/lodash/fp/isSymbol.d.ts +0 -2
  1315. package/configure/node_modules/@types/lodash/fp/isTypedArray.d.ts +0 -2
  1316. package/configure/node_modules/@types/lodash/fp/isUndefined.d.ts +0 -2
  1317. package/configure/node_modules/@types/lodash/fp/isWeakMap.d.ts +0 -2
  1318. package/configure/node_modules/@types/lodash/fp/isWeakSet.d.ts +0 -2
  1319. package/configure/node_modules/@types/lodash/fp/iteratee.d.ts +0 -2
  1320. package/configure/node_modules/@types/lodash/fp/join.d.ts +0 -2
  1321. package/configure/node_modules/@types/lodash/fp/juxt.d.ts +0 -2
  1322. package/configure/node_modules/@types/lodash/fp/kebabCase.d.ts +0 -2
  1323. package/configure/node_modules/@types/lodash/fp/keyBy.d.ts +0 -2
  1324. package/configure/node_modules/@types/lodash/fp/keys.d.ts +0 -2
  1325. package/configure/node_modules/@types/lodash/fp/keysIn.d.ts +0 -2
  1326. package/configure/node_modules/@types/lodash/fp/last.d.ts +0 -2
  1327. package/configure/node_modules/@types/lodash/fp/lastIndexOf.d.ts +0 -2
  1328. package/configure/node_modules/@types/lodash/fp/lastIndexOfFrom.d.ts +0 -2
  1329. package/configure/node_modules/@types/lodash/fp/lowerCase.d.ts +0 -2
  1330. package/configure/node_modules/@types/lodash/fp/lowerFirst.d.ts +0 -2
  1331. package/configure/node_modules/@types/lodash/fp/lt.d.ts +0 -2
  1332. package/configure/node_modules/@types/lodash/fp/lte.d.ts +0 -2
  1333. package/configure/node_modules/@types/lodash/fp/map.d.ts +0 -2
  1334. package/configure/node_modules/@types/lodash/fp/mapKeys.d.ts +0 -2
  1335. package/configure/node_modules/@types/lodash/fp/mapValues.d.ts +0 -2
  1336. package/configure/node_modules/@types/lodash/fp/matches.d.ts +0 -2
  1337. package/configure/node_modules/@types/lodash/fp/matchesProperty.d.ts +0 -2
  1338. package/configure/node_modules/@types/lodash/fp/max.d.ts +0 -2
  1339. package/configure/node_modules/@types/lodash/fp/maxBy.d.ts +0 -2
  1340. package/configure/node_modules/@types/lodash/fp/mean.d.ts +0 -2
  1341. package/configure/node_modules/@types/lodash/fp/meanBy.d.ts +0 -2
  1342. package/configure/node_modules/@types/lodash/fp/memoize.d.ts +0 -2
  1343. package/configure/node_modules/@types/lodash/fp/merge.d.ts +0 -2
  1344. package/configure/node_modules/@types/lodash/fp/mergeAll.d.ts +0 -2
  1345. package/configure/node_modules/@types/lodash/fp/mergeAllWith.d.ts +0 -2
  1346. package/configure/node_modules/@types/lodash/fp/mergeWith.d.ts +0 -2
  1347. package/configure/node_modules/@types/lodash/fp/method.d.ts +0 -2
  1348. package/configure/node_modules/@types/lodash/fp/methodOf.d.ts +0 -2
  1349. package/configure/node_modules/@types/lodash/fp/min.d.ts +0 -2
  1350. package/configure/node_modules/@types/lodash/fp/minBy.d.ts +0 -2
  1351. package/configure/node_modules/@types/lodash/fp/multiply.d.ts +0 -2
  1352. package/configure/node_modules/@types/lodash/fp/nAry.d.ts +0 -2
  1353. package/configure/node_modules/@types/lodash/fp/negate.d.ts +0 -2
  1354. package/configure/node_modules/@types/lodash/fp/noConflict.d.ts +0 -2
  1355. package/configure/node_modules/@types/lodash/fp/noop.d.ts +0 -2
  1356. package/configure/node_modules/@types/lodash/fp/now.d.ts +0 -2
  1357. package/configure/node_modules/@types/lodash/fp/nth.d.ts +0 -2
  1358. package/configure/node_modules/@types/lodash/fp/nthArg.d.ts +0 -2
  1359. package/configure/node_modules/@types/lodash/fp/omit.d.ts +0 -2
  1360. package/configure/node_modules/@types/lodash/fp/omitAll.d.ts +0 -2
  1361. package/configure/node_modules/@types/lodash/fp/omitBy.d.ts +0 -2
  1362. package/configure/node_modules/@types/lodash/fp/once.d.ts +0 -2
  1363. package/configure/node_modules/@types/lodash/fp/orderBy.d.ts +0 -2
  1364. package/configure/node_modules/@types/lodash/fp/over.d.ts +0 -2
  1365. package/configure/node_modules/@types/lodash/fp/overArgs.d.ts +0 -2
  1366. package/configure/node_modules/@types/lodash/fp/overEvery.d.ts +0 -2
  1367. package/configure/node_modules/@types/lodash/fp/overSome.d.ts +0 -2
  1368. package/configure/node_modules/@types/lodash/fp/pad.d.ts +0 -2
  1369. package/configure/node_modules/@types/lodash/fp/padChars.d.ts +0 -2
  1370. package/configure/node_modules/@types/lodash/fp/padCharsEnd.d.ts +0 -2
  1371. package/configure/node_modules/@types/lodash/fp/padCharsStart.d.ts +0 -2
  1372. package/configure/node_modules/@types/lodash/fp/padEnd.d.ts +0 -2
  1373. package/configure/node_modules/@types/lodash/fp/padStart.d.ts +0 -2
  1374. package/configure/node_modules/@types/lodash/fp/parseInt.d.ts +0 -2
  1375. package/configure/node_modules/@types/lodash/fp/partial.d.ts +0 -2
  1376. package/configure/node_modules/@types/lodash/fp/partialRight.d.ts +0 -2
  1377. package/configure/node_modules/@types/lodash/fp/partition.d.ts +0 -2
  1378. package/configure/node_modules/@types/lodash/fp/path.d.ts +0 -2
  1379. package/configure/node_modules/@types/lodash/fp/pathEq.d.ts +0 -2
  1380. package/configure/node_modules/@types/lodash/fp/pathOr.d.ts +0 -2
  1381. package/configure/node_modules/@types/lodash/fp/paths.d.ts +0 -2
  1382. package/configure/node_modules/@types/lodash/fp/pick.d.ts +0 -2
  1383. package/configure/node_modules/@types/lodash/fp/pickAll.d.ts +0 -2
  1384. package/configure/node_modules/@types/lodash/fp/pickBy.d.ts +0 -2
  1385. package/configure/node_modules/@types/lodash/fp/pipe.d.ts +0 -2
  1386. package/configure/node_modules/@types/lodash/fp/placeholder.d.ts +0 -3
  1387. package/configure/node_modules/@types/lodash/fp/pluck.d.ts +0 -2
  1388. package/configure/node_modules/@types/lodash/fp/prop.d.ts +0 -2
  1389. package/configure/node_modules/@types/lodash/fp/propEq.d.ts +0 -2
  1390. package/configure/node_modules/@types/lodash/fp/propOr.d.ts +0 -2
  1391. package/configure/node_modules/@types/lodash/fp/property.d.ts +0 -2
  1392. package/configure/node_modules/@types/lodash/fp/propertyOf.d.ts +0 -2
  1393. package/configure/node_modules/@types/lodash/fp/props.d.ts +0 -2
  1394. package/configure/node_modules/@types/lodash/fp/pull.d.ts +0 -2
  1395. package/configure/node_modules/@types/lodash/fp/pullAll.d.ts +0 -2
  1396. package/configure/node_modules/@types/lodash/fp/pullAllBy.d.ts +0 -2
  1397. package/configure/node_modules/@types/lodash/fp/pullAllWith.d.ts +0 -2
  1398. package/configure/node_modules/@types/lodash/fp/pullAt.d.ts +0 -2
  1399. package/configure/node_modules/@types/lodash/fp/random.d.ts +0 -2
  1400. package/configure/node_modules/@types/lodash/fp/range.d.ts +0 -2
  1401. package/configure/node_modules/@types/lodash/fp/rangeRight.d.ts +0 -2
  1402. package/configure/node_modules/@types/lodash/fp/rangeStep.d.ts +0 -2
  1403. package/configure/node_modules/@types/lodash/fp/rangeStepRight.d.ts +0 -2
  1404. package/configure/node_modules/@types/lodash/fp/rearg.d.ts +0 -2
  1405. package/configure/node_modules/@types/lodash/fp/reduce.d.ts +0 -2
  1406. package/configure/node_modules/@types/lodash/fp/reduceRight.d.ts +0 -2
  1407. package/configure/node_modules/@types/lodash/fp/reject.d.ts +0 -2
  1408. package/configure/node_modules/@types/lodash/fp/remove.d.ts +0 -2
  1409. package/configure/node_modules/@types/lodash/fp/repeat.d.ts +0 -2
  1410. package/configure/node_modules/@types/lodash/fp/replace.d.ts +0 -2
  1411. package/configure/node_modules/@types/lodash/fp/rest.d.ts +0 -2
  1412. package/configure/node_modules/@types/lodash/fp/restFrom.d.ts +0 -2
  1413. package/configure/node_modules/@types/lodash/fp/result.d.ts +0 -2
  1414. package/configure/node_modules/@types/lodash/fp/reverse.d.ts +0 -2
  1415. package/configure/node_modules/@types/lodash/fp/round.d.ts +0 -2
  1416. package/configure/node_modules/@types/lodash/fp/runInContext.d.ts +0 -2
  1417. package/configure/node_modules/@types/lodash/fp/sample.d.ts +0 -2
  1418. package/configure/node_modules/@types/lodash/fp/sampleSize.d.ts +0 -2
  1419. package/configure/node_modules/@types/lodash/fp/set.d.ts +0 -2
  1420. package/configure/node_modules/@types/lodash/fp/setWith.d.ts +0 -2
  1421. package/configure/node_modules/@types/lodash/fp/shuffle.d.ts +0 -2
  1422. package/configure/node_modules/@types/lodash/fp/size.d.ts +0 -2
  1423. package/configure/node_modules/@types/lodash/fp/slice.d.ts +0 -2
  1424. package/configure/node_modules/@types/lodash/fp/snakeCase.d.ts +0 -2
  1425. package/configure/node_modules/@types/lodash/fp/some.d.ts +0 -2
  1426. package/configure/node_modules/@types/lodash/fp/sortBy.d.ts +0 -2
  1427. package/configure/node_modules/@types/lodash/fp/sortedIndex.d.ts +0 -2
  1428. package/configure/node_modules/@types/lodash/fp/sortedIndexBy.d.ts +0 -2
  1429. package/configure/node_modules/@types/lodash/fp/sortedIndexOf.d.ts +0 -2
  1430. package/configure/node_modules/@types/lodash/fp/sortedLastIndex.d.ts +0 -2
  1431. package/configure/node_modules/@types/lodash/fp/sortedLastIndexBy.d.ts +0 -2
  1432. package/configure/node_modules/@types/lodash/fp/sortedLastIndexOf.d.ts +0 -2
  1433. package/configure/node_modules/@types/lodash/fp/sortedUniq.d.ts +0 -2
  1434. package/configure/node_modules/@types/lodash/fp/sortedUniqBy.d.ts +0 -2
  1435. package/configure/node_modules/@types/lodash/fp/split.d.ts +0 -2
  1436. package/configure/node_modules/@types/lodash/fp/spread.d.ts +0 -2
  1437. package/configure/node_modules/@types/lodash/fp/spreadFrom.d.ts +0 -2
  1438. package/configure/node_modules/@types/lodash/fp/startCase.d.ts +0 -2
  1439. package/configure/node_modules/@types/lodash/fp/startsWith.d.ts +0 -2
  1440. package/configure/node_modules/@types/lodash/fp/stubArray.d.ts +0 -2
  1441. package/configure/node_modules/@types/lodash/fp/stubFalse.d.ts +0 -2
  1442. package/configure/node_modules/@types/lodash/fp/stubObject.d.ts +0 -2
  1443. package/configure/node_modules/@types/lodash/fp/stubString.d.ts +0 -2
  1444. package/configure/node_modules/@types/lodash/fp/stubTrue.d.ts +0 -2
  1445. package/configure/node_modules/@types/lodash/fp/subtract.d.ts +0 -2
  1446. package/configure/node_modules/@types/lodash/fp/sum.d.ts +0 -2
  1447. package/configure/node_modules/@types/lodash/fp/sumBy.d.ts +0 -2
  1448. package/configure/node_modules/@types/lodash/fp/symmetricDifference.d.ts +0 -2
  1449. package/configure/node_modules/@types/lodash/fp/symmetricDifferenceBy.d.ts +0 -2
  1450. package/configure/node_modules/@types/lodash/fp/symmetricDifferenceWith.d.ts +0 -2
  1451. package/configure/node_modules/@types/lodash/fp/tail.d.ts +0 -2
  1452. package/configure/node_modules/@types/lodash/fp/take.d.ts +0 -2
  1453. package/configure/node_modules/@types/lodash/fp/takeLast.d.ts +0 -2
  1454. package/configure/node_modules/@types/lodash/fp/takeLastWhile.d.ts +0 -2
  1455. package/configure/node_modules/@types/lodash/fp/takeRight.d.ts +0 -2
  1456. package/configure/node_modules/@types/lodash/fp/takeRightWhile.d.ts +0 -2
  1457. package/configure/node_modules/@types/lodash/fp/takeWhile.d.ts +0 -2
  1458. package/configure/node_modules/@types/lodash/fp/tap.d.ts +0 -2
  1459. package/configure/node_modules/@types/lodash/fp/template.d.ts +0 -2
  1460. package/configure/node_modules/@types/lodash/fp/throttle.d.ts +0 -2
  1461. package/configure/node_modules/@types/lodash/fp/thru.d.ts +0 -2
  1462. package/configure/node_modules/@types/lodash/fp/times.d.ts +0 -2
  1463. package/configure/node_modules/@types/lodash/fp/toArray.d.ts +0 -2
  1464. package/configure/node_modules/@types/lodash/fp/toFinite.d.ts +0 -2
  1465. package/configure/node_modules/@types/lodash/fp/toInteger.d.ts +0 -2
  1466. package/configure/node_modules/@types/lodash/fp/toLength.d.ts +0 -2
  1467. package/configure/node_modules/@types/lodash/fp/toLower.d.ts +0 -2
  1468. package/configure/node_modules/@types/lodash/fp/toNumber.d.ts +0 -2
  1469. package/configure/node_modules/@types/lodash/fp/toPairs.d.ts +0 -2
  1470. package/configure/node_modules/@types/lodash/fp/toPairsIn.d.ts +0 -2
  1471. package/configure/node_modules/@types/lodash/fp/toPath.d.ts +0 -2
  1472. package/configure/node_modules/@types/lodash/fp/toPlainObject.d.ts +0 -2
  1473. package/configure/node_modules/@types/lodash/fp/toSafeInteger.d.ts +0 -2
  1474. package/configure/node_modules/@types/lodash/fp/toString.d.ts +0 -2
  1475. package/configure/node_modules/@types/lodash/fp/toUpper.d.ts +0 -2
  1476. package/configure/node_modules/@types/lodash/fp/transform.d.ts +0 -2
  1477. package/configure/node_modules/@types/lodash/fp/trim.d.ts +0 -2
  1478. package/configure/node_modules/@types/lodash/fp/trimChars.d.ts +0 -2
  1479. package/configure/node_modules/@types/lodash/fp/trimCharsEnd.d.ts +0 -2
  1480. package/configure/node_modules/@types/lodash/fp/trimCharsStart.d.ts +0 -2
  1481. package/configure/node_modules/@types/lodash/fp/trimEnd.d.ts +0 -2
  1482. package/configure/node_modules/@types/lodash/fp/trimStart.d.ts +0 -2
  1483. package/configure/node_modules/@types/lodash/fp/truncate.d.ts +0 -2
  1484. package/configure/node_modules/@types/lodash/fp/unapply.d.ts +0 -2
  1485. package/configure/node_modules/@types/lodash/fp/unary.d.ts +0 -2
  1486. package/configure/node_modules/@types/lodash/fp/unescape.d.ts +0 -2
  1487. package/configure/node_modules/@types/lodash/fp/union.d.ts +0 -2
  1488. package/configure/node_modules/@types/lodash/fp/unionBy.d.ts +0 -2
  1489. package/configure/node_modules/@types/lodash/fp/unionWith.d.ts +0 -2
  1490. package/configure/node_modules/@types/lodash/fp/uniq.d.ts +0 -2
  1491. package/configure/node_modules/@types/lodash/fp/uniqBy.d.ts +0 -2
  1492. package/configure/node_modules/@types/lodash/fp/uniqWith.d.ts +0 -2
  1493. package/configure/node_modules/@types/lodash/fp/uniqueId.d.ts +0 -2
  1494. package/configure/node_modules/@types/lodash/fp/unnest.d.ts +0 -2
  1495. package/configure/node_modules/@types/lodash/fp/unset.d.ts +0 -2
  1496. package/configure/node_modules/@types/lodash/fp/unzip.d.ts +0 -2
  1497. package/configure/node_modules/@types/lodash/fp/unzipWith.d.ts +0 -2
  1498. package/configure/node_modules/@types/lodash/fp/update.d.ts +0 -2
  1499. package/configure/node_modules/@types/lodash/fp/updateWith.d.ts +0 -2
  1500. package/configure/node_modules/@types/lodash/fp/upperCase.d.ts +0 -2
  1501. package/configure/node_modules/@types/lodash/fp/upperFirst.d.ts +0 -2
  1502. package/configure/node_modules/@types/lodash/fp/useWith.d.ts +0 -2
  1503. package/configure/node_modules/@types/lodash/fp/values.d.ts +0 -2
  1504. package/configure/node_modules/@types/lodash/fp/valuesIn.d.ts +0 -2
  1505. package/configure/node_modules/@types/lodash/fp/where.d.ts +0 -2
  1506. package/configure/node_modules/@types/lodash/fp/whereEq.d.ts +0 -2
  1507. package/configure/node_modules/@types/lodash/fp/without.d.ts +0 -2
  1508. package/configure/node_modules/@types/lodash/fp/words.d.ts +0 -2
  1509. package/configure/node_modules/@types/lodash/fp/wrap.d.ts +0 -2
  1510. package/configure/node_modules/@types/lodash/fp/xor.d.ts +0 -2
  1511. package/configure/node_modules/@types/lodash/fp/xorBy.d.ts +0 -2
  1512. package/configure/node_modules/@types/lodash/fp/xorWith.d.ts +0 -2
  1513. package/configure/node_modules/@types/lodash/fp/zip.d.ts +0 -2
  1514. package/configure/node_modules/@types/lodash/fp/zipAll.d.ts +0 -2
  1515. package/configure/node_modules/@types/lodash/fp/zipObj.d.ts +0 -2
  1516. package/configure/node_modules/@types/lodash/fp/zipObject.d.ts +0 -2
  1517. package/configure/node_modules/@types/lodash/fp/zipObjectDeep.d.ts +0 -2
  1518. package/configure/node_modules/@types/lodash/fp/zipWith.d.ts +0 -2
  1519. package/configure/node_modules/@types/lodash/fp.d.ts +0 -4950
  1520. package/configure/node_modules/@types/lodash/fromPairs.d.ts +0 -2
  1521. package/configure/node_modules/@types/lodash/functions.d.ts +0 -2
  1522. package/configure/node_modules/@types/lodash/functionsIn.d.ts +0 -2
  1523. package/configure/node_modules/@types/lodash/get.d.ts +0 -2
  1524. package/configure/node_modules/@types/lodash/groupBy.d.ts +0 -2
  1525. package/configure/node_modules/@types/lodash/gt.d.ts +0 -2
  1526. package/configure/node_modules/@types/lodash/gte.d.ts +0 -2
  1527. package/configure/node_modules/@types/lodash/has.d.ts +0 -2
  1528. package/configure/node_modules/@types/lodash/hasIn.d.ts +0 -2
  1529. package/configure/node_modules/@types/lodash/head.d.ts +0 -2
  1530. package/configure/node_modules/@types/lodash/identity.d.ts +0 -2
  1531. package/configure/node_modules/@types/lodash/inRange.d.ts +0 -2
  1532. package/configure/node_modules/@types/lodash/includes.d.ts +0 -2
  1533. package/configure/node_modules/@types/lodash/index.d.ts +0 -21
  1534. package/configure/node_modules/@types/lodash/indexOf.d.ts +0 -2
  1535. package/configure/node_modules/@types/lodash/initial.d.ts +0 -2
  1536. package/configure/node_modules/@types/lodash/intersection.d.ts +0 -2
  1537. package/configure/node_modules/@types/lodash/intersectionBy.d.ts +0 -2
  1538. package/configure/node_modules/@types/lodash/intersectionWith.d.ts +0 -2
  1539. package/configure/node_modules/@types/lodash/invert.d.ts +0 -2
  1540. package/configure/node_modules/@types/lodash/invertBy.d.ts +0 -2
  1541. package/configure/node_modules/@types/lodash/invoke.d.ts +0 -2
  1542. package/configure/node_modules/@types/lodash/invokeMap.d.ts +0 -2
  1543. package/configure/node_modules/@types/lodash/isArguments.d.ts +0 -2
  1544. package/configure/node_modules/@types/lodash/isArray.d.ts +0 -2
  1545. package/configure/node_modules/@types/lodash/isArrayBuffer.d.ts +0 -2
  1546. package/configure/node_modules/@types/lodash/isArrayLike.d.ts +0 -2
  1547. package/configure/node_modules/@types/lodash/isArrayLikeObject.d.ts +0 -2
  1548. package/configure/node_modules/@types/lodash/isBoolean.d.ts +0 -2
  1549. package/configure/node_modules/@types/lodash/isBuffer.d.ts +0 -2
  1550. package/configure/node_modules/@types/lodash/isDate.d.ts +0 -2
  1551. package/configure/node_modules/@types/lodash/isElement.d.ts +0 -2
  1552. package/configure/node_modules/@types/lodash/isEmpty.d.ts +0 -2
  1553. package/configure/node_modules/@types/lodash/isEqual.d.ts +0 -2
  1554. package/configure/node_modules/@types/lodash/isEqualWith.d.ts +0 -2
  1555. package/configure/node_modules/@types/lodash/isError.d.ts +0 -2
  1556. package/configure/node_modules/@types/lodash/isFinite.d.ts +0 -2
  1557. package/configure/node_modules/@types/lodash/isFunction.d.ts +0 -2
  1558. package/configure/node_modules/@types/lodash/isInteger.d.ts +0 -2
  1559. package/configure/node_modules/@types/lodash/isLength.d.ts +0 -2
  1560. package/configure/node_modules/@types/lodash/isMap.d.ts +0 -2
  1561. package/configure/node_modules/@types/lodash/isMatch.d.ts +0 -2
  1562. package/configure/node_modules/@types/lodash/isMatchWith.d.ts +0 -2
  1563. package/configure/node_modules/@types/lodash/isNaN.d.ts +0 -2
  1564. package/configure/node_modules/@types/lodash/isNative.d.ts +0 -2
  1565. package/configure/node_modules/@types/lodash/isNil.d.ts +0 -2
  1566. package/configure/node_modules/@types/lodash/isNull.d.ts +0 -2
  1567. package/configure/node_modules/@types/lodash/isNumber.d.ts +0 -2
  1568. package/configure/node_modules/@types/lodash/isObject.d.ts +0 -2
  1569. package/configure/node_modules/@types/lodash/isObjectLike.d.ts +0 -2
  1570. package/configure/node_modules/@types/lodash/isPlainObject.d.ts +0 -2
  1571. package/configure/node_modules/@types/lodash/isRegExp.d.ts +0 -2
  1572. package/configure/node_modules/@types/lodash/isSafeInteger.d.ts +0 -2
  1573. package/configure/node_modules/@types/lodash/isSet.d.ts +0 -2
  1574. package/configure/node_modules/@types/lodash/isString.d.ts +0 -2
  1575. package/configure/node_modules/@types/lodash/isSymbol.d.ts +0 -2
  1576. package/configure/node_modules/@types/lodash/isTypedArray.d.ts +0 -2
  1577. package/configure/node_modules/@types/lodash/isUndefined.d.ts +0 -2
  1578. package/configure/node_modules/@types/lodash/isWeakMap.d.ts +0 -2
  1579. package/configure/node_modules/@types/lodash/isWeakSet.d.ts +0 -2
  1580. package/configure/node_modules/@types/lodash/iteratee.d.ts +0 -2
  1581. package/configure/node_modules/@types/lodash/join.d.ts +0 -2
  1582. package/configure/node_modules/@types/lodash/kebabCase.d.ts +0 -2
  1583. package/configure/node_modules/@types/lodash/keyBy.d.ts +0 -2
  1584. package/configure/node_modules/@types/lodash/keys.d.ts +0 -2
  1585. package/configure/node_modules/@types/lodash/keysIn.d.ts +0 -2
  1586. package/configure/node_modules/@types/lodash/last.d.ts +0 -2
  1587. package/configure/node_modules/@types/lodash/lastIndexOf.d.ts +0 -2
  1588. package/configure/node_modules/@types/lodash/lowerCase.d.ts +0 -2
  1589. package/configure/node_modules/@types/lodash/lowerFirst.d.ts +0 -2
  1590. package/configure/node_modules/@types/lodash/lt.d.ts +0 -2
  1591. package/configure/node_modules/@types/lodash/lte.d.ts +0 -2
  1592. package/configure/node_modules/@types/lodash/map.d.ts +0 -2
  1593. package/configure/node_modules/@types/lodash/mapKeys.d.ts +0 -2
  1594. package/configure/node_modules/@types/lodash/mapValues.d.ts +0 -2
  1595. package/configure/node_modules/@types/lodash/matches.d.ts +0 -2
  1596. package/configure/node_modules/@types/lodash/matchesProperty.d.ts +0 -2
  1597. package/configure/node_modules/@types/lodash/max.d.ts +0 -2
  1598. package/configure/node_modules/@types/lodash/maxBy.d.ts +0 -2
  1599. package/configure/node_modules/@types/lodash/mean.d.ts +0 -2
  1600. package/configure/node_modules/@types/lodash/meanBy.d.ts +0 -2
  1601. package/configure/node_modules/@types/lodash/memoize.d.ts +0 -2
  1602. package/configure/node_modules/@types/lodash/merge.d.ts +0 -2
  1603. package/configure/node_modules/@types/lodash/mergeWith.d.ts +0 -2
  1604. package/configure/node_modules/@types/lodash/method.d.ts +0 -2
  1605. package/configure/node_modules/@types/lodash/methodOf.d.ts +0 -2
  1606. package/configure/node_modules/@types/lodash/min.d.ts +0 -2
  1607. package/configure/node_modules/@types/lodash/minBy.d.ts +0 -2
  1608. package/configure/node_modules/@types/lodash/mixin.d.ts +0 -2
  1609. package/configure/node_modules/@types/lodash/multiply.d.ts +0 -2
  1610. package/configure/node_modules/@types/lodash/negate.d.ts +0 -2
  1611. package/configure/node_modules/@types/lodash/noConflict.d.ts +0 -2
  1612. package/configure/node_modules/@types/lodash/noop.d.ts +0 -2
  1613. package/configure/node_modules/@types/lodash/now.d.ts +0 -2
  1614. package/configure/node_modules/@types/lodash/nth.d.ts +0 -2
  1615. package/configure/node_modules/@types/lodash/nthArg.d.ts +0 -2
  1616. package/configure/node_modules/@types/lodash/omit.d.ts +0 -2
  1617. package/configure/node_modules/@types/lodash/omitBy.d.ts +0 -2
  1618. package/configure/node_modules/@types/lodash/once.d.ts +0 -2
  1619. package/configure/node_modules/@types/lodash/orderBy.d.ts +0 -2
  1620. package/configure/node_modules/@types/lodash/over.d.ts +0 -2
  1621. package/configure/node_modules/@types/lodash/overArgs.d.ts +0 -2
  1622. package/configure/node_modules/@types/lodash/overEvery.d.ts +0 -2
  1623. package/configure/node_modules/@types/lodash/overSome.d.ts +0 -2
  1624. package/configure/node_modules/@types/lodash/package.json +0 -60
  1625. package/configure/node_modules/@types/lodash/pad.d.ts +0 -2
  1626. package/configure/node_modules/@types/lodash/padEnd.d.ts +0 -2
  1627. package/configure/node_modules/@types/lodash/padStart.d.ts +0 -2
  1628. package/configure/node_modules/@types/lodash/parseInt.d.ts +0 -2
  1629. package/configure/node_modules/@types/lodash/partial.d.ts +0 -2
  1630. package/configure/node_modules/@types/lodash/partialRight.d.ts +0 -2
  1631. package/configure/node_modules/@types/lodash/partition.d.ts +0 -2
  1632. package/configure/node_modules/@types/lodash/pick.d.ts +0 -2
  1633. package/configure/node_modules/@types/lodash/pickBy.d.ts +0 -2
  1634. package/configure/node_modules/@types/lodash/property.d.ts +0 -2
  1635. package/configure/node_modules/@types/lodash/propertyOf.d.ts +0 -2
  1636. package/configure/node_modules/@types/lodash/pull.d.ts +0 -2
  1637. package/configure/node_modules/@types/lodash/pullAll.d.ts +0 -2
  1638. package/configure/node_modules/@types/lodash/pullAllBy.d.ts +0 -2
  1639. package/configure/node_modules/@types/lodash/pullAllWith.d.ts +0 -2
  1640. package/configure/node_modules/@types/lodash/pullAt.d.ts +0 -2
  1641. package/configure/node_modules/@types/lodash/random.d.ts +0 -2
  1642. package/configure/node_modules/@types/lodash/range.d.ts +0 -2
  1643. package/configure/node_modules/@types/lodash/rangeRight.d.ts +0 -2
  1644. package/configure/node_modules/@types/lodash/rearg.d.ts +0 -2
  1645. package/configure/node_modules/@types/lodash/reduce.d.ts +0 -2
  1646. package/configure/node_modules/@types/lodash/reduceRight.d.ts +0 -2
  1647. package/configure/node_modules/@types/lodash/reject.d.ts +0 -2
  1648. package/configure/node_modules/@types/lodash/remove.d.ts +0 -2
  1649. package/configure/node_modules/@types/lodash/repeat.d.ts +0 -2
  1650. package/configure/node_modules/@types/lodash/replace.d.ts +0 -2
  1651. package/configure/node_modules/@types/lodash/rest.d.ts +0 -2
  1652. package/configure/node_modules/@types/lodash/result.d.ts +0 -2
  1653. package/configure/node_modules/@types/lodash/reverse.d.ts +0 -2
  1654. package/configure/node_modules/@types/lodash/round.d.ts +0 -2
  1655. package/configure/node_modules/@types/lodash/runInContext.d.ts +0 -2
  1656. package/configure/node_modules/@types/lodash/sample.d.ts +0 -2
  1657. package/configure/node_modules/@types/lodash/sampleSize.d.ts +0 -2
  1658. package/configure/node_modules/@types/lodash/set.d.ts +0 -2
  1659. package/configure/node_modules/@types/lodash/setWith.d.ts +0 -2
  1660. package/configure/node_modules/@types/lodash/shuffle.d.ts +0 -2
  1661. package/configure/node_modules/@types/lodash/size.d.ts +0 -2
  1662. package/configure/node_modules/@types/lodash/slice.d.ts +0 -2
  1663. package/configure/node_modules/@types/lodash/snakeCase.d.ts +0 -2
  1664. package/configure/node_modules/@types/lodash/some.d.ts +0 -2
  1665. package/configure/node_modules/@types/lodash/sortBy.d.ts +0 -2
  1666. package/configure/node_modules/@types/lodash/sortedIndex.d.ts +0 -2
  1667. package/configure/node_modules/@types/lodash/sortedIndexBy.d.ts +0 -2
  1668. package/configure/node_modules/@types/lodash/sortedIndexOf.d.ts +0 -2
  1669. package/configure/node_modules/@types/lodash/sortedLastIndex.d.ts +0 -2
  1670. package/configure/node_modules/@types/lodash/sortedLastIndexBy.d.ts +0 -2
  1671. package/configure/node_modules/@types/lodash/sortedLastIndexOf.d.ts +0 -2
  1672. package/configure/node_modules/@types/lodash/sortedUniq.d.ts +0 -2
  1673. package/configure/node_modules/@types/lodash/sortedUniqBy.d.ts +0 -2
  1674. package/configure/node_modules/@types/lodash/split.d.ts +0 -2
  1675. package/configure/node_modules/@types/lodash/spread.d.ts +0 -2
  1676. package/configure/node_modules/@types/lodash/startCase.d.ts +0 -2
  1677. package/configure/node_modules/@types/lodash/startsWith.d.ts +0 -2
  1678. package/configure/node_modules/@types/lodash/stubFalse.d.ts +0 -2
  1679. package/configure/node_modules/@types/lodash/stubTrue.d.ts +0 -2
  1680. package/configure/node_modules/@types/lodash/subtract.d.ts +0 -2
  1681. package/configure/node_modules/@types/lodash/sum.d.ts +0 -2
  1682. package/configure/node_modules/@types/lodash/sumBy.d.ts +0 -2
  1683. package/configure/node_modules/@types/lodash/tail.d.ts +0 -2
  1684. package/configure/node_modules/@types/lodash/take.d.ts +0 -2
  1685. package/configure/node_modules/@types/lodash/takeRight.d.ts +0 -2
  1686. package/configure/node_modules/@types/lodash/takeRightWhile.d.ts +0 -2
  1687. package/configure/node_modules/@types/lodash/takeWhile.d.ts +0 -2
  1688. package/configure/node_modules/@types/lodash/tap.d.ts +0 -2
  1689. package/configure/node_modules/@types/lodash/template.d.ts +0 -2
  1690. package/configure/node_modules/@types/lodash/throttle.d.ts +0 -2
  1691. package/configure/node_modules/@types/lodash/thru.d.ts +0 -2
  1692. package/configure/node_modules/@types/lodash/times.d.ts +0 -2
  1693. package/configure/node_modules/@types/lodash/toArray.d.ts +0 -2
  1694. package/configure/node_modules/@types/lodash/toFinite.d.ts +0 -2
  1695. package/configure/node_modules/@types/lodash/toInteger.d.ts +0 -2
  1696. package/configure/node_modules/@types/lodash/toLength.d.ts +0 -2
  1697. package/configure/node_modules/@types/lodash/toLower.d.ts +0 -2
  1698. package/configure/node_modules/@types/lodash/toNumber.d.ts +0 -2
  1699. package/configure/node_modules/@types/lodash/toPairs.d.ts +0 -2
  1700. package/configure/node_modules/@types/lodash/toPairsIn.d.ts +0 -2
  1701. package/configure/node_modules/@types/lodash/toPath.d.ts +0 -2
  1702. package/configure/node_modules/@types/lodash/toPlainObject.d.ts +0 -2
  1703. package/configure/node_modules/@types/lodash/toSafeInteger.d.ts +0 -2
  1704. package/configure/node_modules/@types/lodash/toString.d.ts +0 -2
  1705. package/configure/node_modules/@types/lodash/toUpper.d.ts +0 -2
  1706. package/configure/node_modules/@types/lodash/transform.d.ts +0 -2
  1707. package/configure/node_modules/@types/lodash/trim.d.ts +0 -2
  1708. package/configure/node_modules/@types/lodash/trimEnd.d.ts +0 -2
  1709. package/configure/node_modules/@types/lodash/trimStart.d.ts +0 -2
  1710. package/configure/node_modules/@types/lodash/truncate.d.ts +0 -2
  1711. package/configure/node_modules/@types/lodash/unary.d.ts +0 -2
  1712. package/configure/node_modules/@types/lodash/unescape.d.ts +0 -2
  1713. package/configure/node_modules/@types/lodash/union.d.ts +0 -2
  1714. package/configure/node_modules/@types/lodash/unionBy.d.ts +0 -2
  1715. package/configure/node_modules/@types/lodash/unionWith.d.ts +0 -2
  1716. package/configure/node_modules/@types/lodash/uniq.d.ts +0 -2
  1717. package/configure/node_modules/@types/lodash/uniqBy.d.ts +0 -2
  1718. package/configure/node_modules/@types/lodash/uniqWith.d.ts +0 -2
  1719. package/configure/node_modules/@types/lodash/uniqueId.d.ts +0 -2
  1720. package/configure/node_modules/@types/lodash/unset.d.ts +0 -2
  1721. package/configure/node_modules/@types/lodash/unzip.d.ts +0 -2
  1722. package/configure/node_modules/@types/lodash/unzipWith.d.ts +0 -2
  1723. package/configure/node_modules/@types/lodash/update.d.ts +0 -2
  1724. package/configure/node_modules/@types/lodash/updateWith.d.ts +0 -2
  1725. package/configure/node_modules/@types/lodash/upperCase.d.ts +0 -2
  1726. package/configure/node_modules/@types/lodash/upperFirst.d.ts +0 -2
  1727. package/configure/node_modules/@types/lodash/values.d.ts +0 -2
  1728. package/configure/node_modules/@types/lodash/valuesIn.d.ts +0 -2
  1729. package/configure/node_modules/@types/lodash/without.d.ts +0 -2
  1730. package/configure/node_modules/@types/lodash/words.d.ts +0 -2
  1731. package/configure/node_modules/@types/lodash/wrap.d.ts +0 -2
  1732. package/configure/node_modules/@types/lodash/xor.d.ts +0 -2
  1733. package/configure/node_modules/@types/lodash/xorBy.d.ts +0 -2
  1734. package/configure/node_modules/@types/lodash/xorWith.d.ts +0 -2
  1735. package/configure/node_modules/@types/lodash/zip.d.ts +0 -2
  1736. package/configure/node_modules/@types/lodash/zipObject.d.ts +0 -2
  1737. package/configure/node_modules/@types/lodash/zipObjectDeep.d.ts +0 -2
  1738. package/configure/node_modules/@types/lodash/zipWith.d.ts +0 -2
  1739. package/configure/node_modules/direction/cli.js +0 -46
  1740. package/configure/node_modules/direction/index.js +0 -26
  1741. package/configure/node_modules/direction/license +0 -22
  1742. package/configure/node_modules/direction/package.json +0 -80
  1743. package/configure/node_modules/direction/readme.md +0 -84
  1744. package/configure/node_modules/is-hotkey/.babelrc +0 -3
  1745. package/configure/node_modules/is-hotkey/.github/workflows/actions.yml +0 -11
  1746. package/configure/node_modules/is-hotkey/.travis.yml +0 -6
  1747. package/configure/node_modules/is-hotkey/License.md +0 -9
  1748. package/configure/node_modules/is-hotkey/Readme.md +0 -122
  1749. package/configure/node_modules/is-hotkey/lib/index.js +0 -249
  1750. package/configure/node_modules/is-hotkey/lib/is-hotkey.umd.js +0 -263
  1751. package/configure/node_modules/is-hotkey/package.json +0 -38
  1752. package/configure/node_modules/is-hotkey/src/index.js +0 -222
  1753. package/configure/node_modules/is-plain-object/LICENSE +0 -21
  1754. package/configure/node_modules/is-plain-object/README.md +0 -125
  1755. package/configure/node_modules/is-plain-object/dist/is-plain-object.js +0 -38
  1756. package/configure/node_modules/is-plain-object/dist/is-plain-object.mjs +0 -34
  1757. package/configure/node_modules/is-plain-object/is-plain-object.d.ts +0 -1
  1758. package/configure/node_modules/is-plain-object/package.json +0 -85
  1759. package/configure/node_modules/slate/Readme.md +0 -3
  1760. package/configure/node_modules/slate/dist/core/apply.d.ts +0 -4
  1761. package/configure/node_modules/slate/dist/core/apply.d.ts.map +0 -1
  1762. package/configure/node_modules/slate/dist/core/get-dirty-paths.d.ts +0 -7
  1763. package/configure/node_modules/slate/dist/core/get-dirty-paths.d.ts.map +0 -1
  1764. package/configure/node_modules/slate/dist/core/get-fragment.d.ts +0 -4
  1765. package/configure/node_modules/slate/dist/core/get-fragment.d.ts.map +0 -1
  1766. package/configure/node_modules/slate/dist/core/index.d.ts +0 -6
  1767. package/configure/node_modules/slate/dist/core/index.d.ts.map +0 -1
  1768. package/configure/node_modules/slate/dist/core/normalize-node.d.ts +0 -4
  1769. package/configure/node_modules/slate/dist/core/normalize-node.d.ts.map +0 -1
  1770. package/configure/node_modules/slate/dist/core/should-normalize.d.ts +0 -4
  1771. package/configure/node_modules/slate/dist/core/should-normalize.d.ts.map +0 -1
  1772. package/configure/node_modules/slate/dist/create-editor.d.ts +0 -6
  1773. package/configure/node_modules/slate/dist/create-editor.d.ts.map +0 -1
  1774. package/configure/node_modules/slate/dist/editor/above.d.ts +0 -3
  1775. package/configure/node_modules/slate/dist/editor/above.d.ts.map +0 -1
  1776. package/configure/node_modules/slate/dist/editor/add-mark.d.ts +0 -3
  1777. package/configure/node_modules/slate/dist/editor/add-mark.d.ts.map +0 -1
  1778. package/configure/node_modules/slate/dist/editor/after.d.ts +0 -3
  1779. package/configure/node_modules/slate/dist/editor/after.d.ts.map +0 -1
  1780. package/configure/node_modules/slate/dist/editor/before.d.ts +0 -3
  1781. package/configure/node_modules/slate/dist/editor/before.d.ts.map +0 -1
  1782. package/configure/node_modules/slate/dist/editor/delete-backward.d.ts +0 -4
  1783. package/configure/node_modules/slate/dist/editor/delete-backward.d.ts.map +0 -1
  1784. package/configure/node_modules/slate/dist/editor/delete-forward.d.ts +0 -4
  1785. package/configure/node_modules/slate/dist/editor/delete-forward.d.ts.map +0 -1
  1786. package/configure/node_modules/slate/dist/editor/delete-fragment.d.ts +0 -3
  1787. package/configure/node_modules/slate/dist/editor/delete-fragment.d.ts.map +0 -1
  1788. package/configure/node_modules/slate/dist/editor/edges.d.ts +0 -3
  1789. package/configure/node_modules/slate/dist/editor/edges.d.ts.map +0 -1
  1790. package/configure/node_modules/slate/dist/editor/element-read-only.d.ts +0 -3
  1791. package/configure/node_modules/slate/dist/editor/element-read-only.d.ts.map +0 -1
  1792. package/configure/node_modules/slate/dist/editor/end.d.ts +0 -3
  1793. package/configure/node_modules/slate/dist/editor/end.d.ts.map +0 -1
  1794. package/configure/node_modules/slate/dist/editor/first.d.ts +0 -3
  1795. package/configure/node_modules/slate/dist/editor/first.d.ts.map +0 -1
  1796. package/configure/node_modules/slate/dist/editor/fragment.d.ts +0 -3
  1797. package/configure/node_modules/slate/dist/editor/fragment.d.ts.map +0 -1
  1798. package/configure/node_modules/slate/dist/editor/get-void.d.ts +0 -3
  1799. package/configure/node_modules/slate/dist/editor/get-void.d.ts.map +0 -1
  1800. package/configure/node_modules/slate/dist/editor/has-blocks.d.ts +0 -3
  1801. package/configure/node_modules/slate/dist/editor/has-blocks.d.ts.map +0 -1
  1802. package/configure/node_modules/slate/dist/editor/has-inlines.d.ts +0 -3
  1803. package/configure/node_modules/slate/dist/editor/has-inlines.d.ts.map +0 -1
  1804. package/configure/node_modules/slate/dist/editor/has-path.d.ts +0 -3
  1805. package/configure/node_modules/slate/dist/editor/has-path.d.ts.map +0 -1
  1806. package/configure/node_modules/slate/dist/editor/has-texts.d.ts +0 -3
  1807. package/configure/node_modules/slate/dist/editor/has-texts.d.ts.map +0 -1
  1808. package/configure/node_modules/slate/dist/editor/index.d.ts +0 -55
  1809. package/configure/node_modules/slate/dist/editor/index.d.ts.map +0 -1
  1810. package/configure/node_modules/slate/dist/editor/insert-break.d.ts +0 -3
  1811. package/configure/node_modules/slate/dist/editor/insert-break.d.ts.map +0 -1
  1812. package/configure/node_modules/slate/dist/editor/insert-node.d.ts +0 -3
  1813. package/configure/node_modules/slate/dist/editor/insert-node.d.ts.map +0 -1
  1814. package/configure/node_modules/slate/dist/editor/insert-soft-break.d.ts +0 -3
  1815. package/configure/node_modules/slate/dist/editor/insert-soft-break.d.ts.map +0 -1
  1816. package/configure/node_modules/slate/dist/editor/insert-text.d.ts +0 -3
  1817. package/configure/node_modules/slate/dist/editor/insert-text.d.ts.map +0 -1
  1818. package/configure/node_modules/slate/dist/editor/is-block.d.ts +0 -3
  1819. package/configure/node_modules/slate/dist/editor/is-block.d.ts.map +0 -1
  1820. package/configure/node_modules/slate/dist/editor/is-edge.d.ts +0 -3
  1821. package/configure/node_modules/slate/dist/editor/is-edge.d.ts.map +0 -1
  1822. package/configure/node_modules/slate/dist/editor/is-editor.d.ts +0 -3
  1823. package/configure/node_modules/slate/dist/editor/is-editor.d.ts.map +0 -1
  1824. package/configure/node_modules/slate/dist/editor/is-empty.d.ts +0 -3
  1825. package/configure/node_modules/slate/dist/editor/is-empty.d.ts.map +0 -1
  1826. package/configure/node_modules/slate/dist/editor/is-end.d.ts +0 -3
  1827. package/configure/node_modules/slate/dist/editor/is-end.d.ts.map +0 -1
  1828. package/configure/node_modules/slate/dist/editor/is-normalizing.d.ts +0 -3
  1829. package/configure/node_modules/slate/dist/editor/is-normalizing.d.ts.map +0 -1
  1830. package/configure/node_modules/slate/dist/editor/is-start.d.ts +0 -3
  1831. package/configure/node_modules/slate/dist/editor/is-start.d.ts.map +0 -1
  1832. package/configure/node_modules/slate/dist/editor/last.d.ts +0 -3
  1833. package/configure/node_modules/slate/dist/editor/last.d.ts.map +0 -1
  1834. package/configure/node_modules/slate/dist/editor/leaf.d.ts +0 -3
  1835. package/configure/node_modules/slate/dist/editor/leaf.d.ts.map +0 -1
  1836. package/configure/node_modules/slate/dist/editor/levels.d.ts +0 -4
  1837. package/configure/node_modules/slate/dist/editor/levels.d.ts.map +0 -1
  1838. package/configure/node_modules/slate/dist/editor/marks.d.ts +0 -3
  1839. package/configure/node_modules/slate/dist/editor/marks.d.ts.map +0 -1
  1840. package/configure/node_modules/slate/dist/editor/next.d.ts +0 -3
  1841. package/configure/node_modules/slate/dist/editor/next.d.ts.map +0 -1
  1842. package/configure/node_modules/slate/dist/editor/node.d.ts +0 -3
  1843. package/configure/node_modules/slate/dist/editor/node.d.ts.map +0 -1
  1844. package/configure/node_modules/slate/dist/editor/nodes.d.ts +0 -4
  1845. package/configure/node_modules/slate/dist/editor/nodes.d.ts.map +0 -1
  1846. package/configure/node_modules/slate/dist/editor/normalize.d.ts +0 -3
  1847. package/configure/node_modules/slate/dist/editor/normalize.d.ts.map +0 -1
  1848. package/configure/node_modules/slate/dist/editor/parent.d.ts +0 -3
  1849. package/configure/node_modules/slate/dist/editor/parent.d.ts.map +0 -1
  1850. package/configure/node_modules/slate/dist/editor/path-ref.d.ts +0 -3
  1851. package/configure/node_modules/slate/dist/editor/path-ref.d.ts.map +0 -1
  1852. package/configure/node_modules/slate/dist/editor/path-refs.d.ts +0 -3
  1853. package/configure/node_modules/slate/dist/editor/path-refs.d.ts.map +0 -1
  1854. package/configure/node_modules/slate/dist/editor/path.d.ts +0 -3
  1855. package/configure/node_modules/slate/dist/editor/path.d.ts.map +0 -1
  1856. package/configure/node_modules/slate/dist/editor/point-ref.d.ts +0 -3
  1857. package/configure/node_modules/slate/dist/editor/point-ref.d.ts.map +0 -1
  1858. package/configure/node_modules/slate/dist/editor/point-refs.d.ts +0 -3
  1859. package/configure/node_modules/slate/dist/editor/point-refs.d.ts.map +0 -1
  1860. package/configure/node_modules/slate/dist/editor/point.d.ts +0 -3
  1861. package/configure/node_modules/slate/dist/editor/point.d.ts.map +0 -1
  1862. package/configure/node_modules/slate/dist/editor/positions.d.ts +0 -4
  1863. package/configure/node_modules/slate/dist/editor/positions.d.ts.map +0 -1
  1864. package/configure/node_modules/slate/dist/editor/previous.d.ts +0 -3
  1865. package/configure/node_modules/slate/dist/editor/previous.d.ts.map +0 -1
  1866. package/configure/node_modules/slate/dist/editor/range-ref.d.ts +0 -3
  1867. package/configure/node_modules/slate/dist/editor/range-ref.d.ts.map +0 -1
  1868. package/configure/node_modules/slate/dist/editor/range-refs.d.ts +0 -3
  1869. package/configure/node_modules/slate/dist/editor/range-refs.d.ts.map +0 -1
  1870. package/configure/node_modules/slate/dist/editor/range.d.ts +0 -3
  1871. package/configure/node_modules/slate/dist/editor/range.d.ts.map +0 -1
  1872. package/configure/node_modules/slate/dist/editor/remove-mark.d.ts +0 -3
  1873. package/configure/node_modules/slate/dist/editor/remove-mark.d.ts.map +0 -1
  1874. package/configure/node_modules/slate/dist/editor/set-normalizing.d.ts +0 -3
  1875. package/configure/node_modules/slate/dist/editor/set-normalizing.d.ts.map +0 -1
  1876. package/configure/node_modules/slate/dist/editor/start.d.ts +0 -3
  1877. package/configure/node_modules/slate/dist/editor/start.d.ts.map +0 -1
  1878. package/configure/node_modules/slate/dist/editor/string.d.ts +0 -3
  1879. package/configure/node_modules/slate/dist/editor/string.d.ts.map +0 -1
  1880. package/configure/node_modules/slate/dist/editor/unhang-range.d.ts +0 -3
  1881. package/configure/node_modules/slate/dist/editor/unhang-range.d.ts.map +0 -1
  1882. package/configure/node_modules/slate/dist/editor/without-normalizing.d.ts +0 -3
  1883. package/configure/node_modules/slate/dist/editor/without-normalizing.d.ts.map +0 -1
  1884. package/configure/node_modules/slate/dist/index.d.ts +0 -9
  1885. package/configure/node_modules/slate/dist/index.d.ts.map +0 -1
  1886. package/configure/node_modules/slate/dist/index.es.js +0 -6357
  1887. package/configure/node_modules/slate/dist/index.es.js.map +0 -1
  1888. package/configure/node_modules/slate/dist/index.js +0 -7299
  1889. package/configure/node_modules/slate/dist/index.js.map +0 -1
  1890. package/configure/node_modules/slate/dist/interfaces/editor.d.ts +0 -498
  1891. package/configure/node_modules/slate/dist/interfaces/editor.d.ts.map +0 -1
  1892. package/configure/node_modules/slate/dist/interfaces/element.d.ts +0 -47
  1893. package/configure/node_modules/slate/dist/interfaces/element.d.ts.map +0 -1
  1894. package/configure/node_modules/slate/dist/interfaces/index.d.ts +0 -15
  1895. package/configure/node_modules/slate/dist/interfaces/index.d.ts.map +0 -1
  1896. package/configure/node_modules/slate/dist/interfaces/location.d.ts +0 -30
  1897. package/configure/node_modules/slate/dist/interfaces/location.d.ts.map +0 -1
  1898. package/configure/node_modules/slate/dist/interfaces/node.d.ts +0 -174
  1899. package/configure/node_modules/slate/dist/interfaces/node.d.ts.map +0 -1
  1900. package/configure/node_modules/slate/dist/interfaces/operation.d.ts +0 -108
  1901. package/configure/node_modules/slate/dist/interfaces/operation.d.ts.map +0 -1
  1902. package/configure/node_modules/slate/dist/interfaces/path-ref.d.ts +0 -19
  1903. package/configure/node_modules/slate/dist/interfaces/path-ref.d.ts.map +0 -1
  1904. package/configure/node_modules/slate/dist/interfaces/path.d.ts +0 -133
  1905. package/configure/node_modules/slate/dist/interfaces/path.d.ts.map +0 -1
  1906. package/configure/node_modules/slate/dist/interfaces/point-ref.d.ts +0 -20
  1907. package/configure/node_modules/slate/dist/interfaces/point-ref.d.ts.map +0 -1
  1908. package/configure/node_modules/slate/dist/interfaces/point.d.ts +0 -50
  1909. package/configure/node_modules/slate/dist/interfaces/point.d.ts.map +0 -1
  1910. package/configure/node_modules/slate/dist/interfaces/range-ref.d.ts +0 -19
  1911. package/configure/node_modules/slate/dist/interfaces/range-ref.d.ts.map +0 -1
  1912. package/configure/node_modules/slate/dist/interfaces/range.d.ts +0 -81
  1913. package/configure/node_modules/slate/dist/interfaces/range.d.ts.map +0 -1
  1914. package/configure/node_modules/slate/dist/interfaces/scrubber.d.ts +0 -22
  1915. package/configure/node_modules/slate/dist/interfaces/scrubber.d.ts.map +0 -1
  1916. package/configure/node_modules/slate/dist/interfaces/text.d.ts +0 -48
  1917. package/configure/node_modules/slate/dist/interfaces/text.d.ts.map +0 -1
  1918. package/configure/node_modules/slate/dist/interfaces/transforms/general.d.ts +0 -9
  1919. package/configure/node_modules/slate/dist/interfaces/transforms/general.d.ts.map +0 -1
  1920. package/configure/node_modules/slate/dist/interfaces/transforms/index.d.ts +0 -6
  1921. package/configure/node_modules/slate/dist/interfaces/transforms/index.d.ts.map +0 -1
  1922. package/configure/node_modules/slate/dist/interfaces/transforms/node.d.ts +0 -118
  1923. package/configure/node_modules/slate/dist/interfaces/transforms/node.d.ts.map +0 -1
  1924. package/configure/node_modules/slate/dist/interfaces/transforms/selection.d.ts +0 -42
  1925. package/configure/node_modules/slate/dist/interfaces/transforms/selection.d.ts.map +0 -1
  1926. package/configure/node_modules/slate/dist/interfaces/transforms/text.d.ts +0 -37
  1927. package/configure/node_modules/slate/dist/interfaces/transforms/text.d.ts.map +0 -1
  1928. package/configure/node_modules/slate/dist/slate.js +0 -8640
  1929. package/configure/node_modules/slate/dist/slate.min.js +0 -8
  1930. package/configure/node_modules/slate/dist/transforms-node/index.d.ts +0 -11
  1931. package/configure/node_modules/slate/dist/transforms-node/index.d.ts.map +0 -1
  1932. package/configure/node_modules/slate/dist/transforms-node/insert-nodes.d.ts +0 -3
  1933. package/configure/node_modules/slate/dist/transforms-node/insert-nodes.d.ts.map +0 -1
  1934. package/configure/node_modules/slate/dist/transforms-node/lift-nodes.d.ts +0 -3
  1935. package/configure/node_modules/slate/dist/transforms-node/lift-nodes.d.ts.map +0 -1
  1936. package/configure/node_modules/slate/dist/transforms-node/merge-nodes.d.ts +0 -3
  1937. package/configure/node_modules/slate/dist/transforms-node/merge-nodes.d.ts.map +0 -1
  1938. package/configure/node_modules/slate/dist/transforms-node/move-nodes.d.ts +0 -3
  1939. package/configure/node_modules/slate/dist/transforms-node/move-nodes.d.ts.map +0 -1
  1940. package/configure/node_modules/slate/dist/transforms-node/remove-nodes.d.ts +0 -3
  1941. package/configure/node_modules/slate/dist/transforms-node/remove-nodes.d.ts.map +0 -1
  1942. package/configure/node_modules/slate/dist/transforms-node/set-nodes.d.ts +0 -3
  1943. package/configure/node_modules/slate/dist/transforms-node/set-nodes.d.ts.map +0 -1
  1944. package/configure/node_modules/slate/dist/transforms-node/split-nodes.d.ts +0 -3
  1945. package/configure/node_modules/slate/dist/transforms-node/split-nodes.d.ts.map +0 -1
  1946. package/configure/node_modules/slate/dist/transforms-node/unset-nodes.d.ts +0 -3
  1947. package/configure/node_modules/slate/dist/transforms-node/unset-nodes.d.ts.map +0 -1
  1948. package/configure/node_modules/slate/dist/transforms-node/unwrap-nodes.d.ts +0 -3
  1949. package/configure/node_modules/slate/dist/transforms-node/unwrap-nodes.d.ts.map +0 -1
  1950. package/configure/node_modules/slate/dist/transforms-node/wrap-nodes.d.ts +0 -3
  1951. package/configure/node_modules/slate/dist/transforms-node/wrap-nodes.d.ts.map +0 -1
  1952. package/configure/node_modules/slate/dist/transforms-selection/collapse.d.ts +0 -3
  1953. package/configure/node_modules/slate/dist/transforms-selection/collapse.d.ts.map +0 -1
  1954. package/configure/node_modules/slate/dist/transforms-selection/deselect.d.ts +0 -3
  1955. package/configure/node_modules/slate/dist/transforms-selection/deselect.d.ts.map +0 -1
  1956. package/configure/node_modules/slate/dist/transforms-selection/index.d.ts +0 -7
  1957. package/configure/node_modules/slate/dist/transforms-selection/index.d.ts.map +0 -1
  1958. package/configure/node_modules/slate/dist/transforms-selection/move.d.ts +0 -3
  1959. package/configure/node_modules/slate/dist/transforms-selection/move.d.ts.map +0 -1
  1960. package/configure/node_modules/slate/dist/transforms-selection/select.d.ts +0 -3
  1961. package/configure/node_modules/slate/dist/transforms-selection/select.d.ts.map +0 -1
  1962. package/configure/node_modules/slate/dist/transforms-selection/set-point.d.ts +0 -3
  1963. package/configure/node_modules/slate/dist/transforms-selection/set-point.d.ts.map +0 -1
  1964. package/configure/node_modules/slate/dist/transforms-selection/set-selection.d.ts +0 -3
  1965. package/configure/node_modules/slate/dist/transforms-selection/set-selection.d.ts.map +0 -1
  1966. package/configure/node_modules/slate/dist/transforms-text/delete-text.d.ts +0 -3
  1967. package/configure/node_modules/slate/dist/transforms-text/delete-text.d.ts.map +0 -1
  1968. package/configure/node_modules/slate/dist/transforms-text/index.d.ts +0 -3
  1969. package/configure/node_modules/slate/dist/transforms-text/index.d.ts.map +0 -1
  1970. package/configure/node_modules/slate/dist/transforms-text/insert-fragment.d.ts +0 -3
  1971. package/configure/node_modules/slate/dist/transforms-text/insert-fragment.d.ts.map +0 -1
  1972. package/configure/node_modules/slate/dist/types/custom-types.d.ts +0 -10
  1973. package/configure/node_modules/slate/dist/types/custom-types.d.ts.map +0 -1
  1974. package/configure/node_modules/slate/dist/types/index.d.ts +0 -3
  1975. package/configure/node_modules/slate/dist/types/index.d.ts.map +0 -1
  1976. package/configure/node_modules/slate/dist/types/types.d.ts +0 -11
  1977. package/configure/node_modules/slate/dist/types/types.d.ts.map +0 -1
  1978. package/configure/node_modules/slate/dist/utils/deep-equal.d.ts +0 -2
  1979. package/configure/node_modules/slate/dist/utils/deep-equal.d.ts.map +0 -1
  1980. package/configure/node_modules/slate/dist/utils/get-default-insert-location.d.ts +0 -9
  1981. package/configure/node_modules/slate/dist/utils/get-default-insert-location.d.ts.map +0 -1
  1982. package/configure/node_modules/slate/dist/utils/index.d.ts +0 -7
  1983. package/configure/node_modules/slate/dist/utils/index.d.ts.map +0 -1
  1984. package/configure/node_modules/slate/dist/utils/match-path.d.ts +0 -5
  1985. package/configure/node_modules/slate/dist/utils/match-path.d.ts.map +0 -1
  1986. package/configure/node_modules/slate/dist/utils/string.d.ts +0 -18
  1987. package/configure/node_modules/slate/dist/utils/string.d.ts.map +0 -1
  1988. package/configure/node_modules/slate/dist/utils/types.d.ts +0 -5
  1989. package/configure/node_modules/slate/dist/utils/types.d.ts.map +0 -1
  1990. package/configure/node_modules/slate/dist/utils/weak-maps.d.ts +0 -9
  1991. package/configure/node_modules/slate/dist/utils/weak-maps.d.ts.map +0 -1
  1992. package/configure/node_modules/slate/package.json +0 -48
  1993. package/configure/node_modules/slate-history/Readme.md +0 -1
  1994. package/configure/node_modules/slate-history/dist/history-editor.d.ts +0 -50
  1995. package/configure/node_modules/slate-history/dist/history-editor.d.ts.map +0 -1
  1996. package/configure/node_modules/slate-history/dist/history.d.ts +0 -21
  1997. package/configure/node_modules/slate-history/dist/history.d.ts.map +0 -1
  1998. package/configure/node_modules/slate-history/dist/index.d.ts +0 -4
  1999. package/configure/node_modules/slate-history/dist/index.d.ts.map +0 -1
  2000. package/configure/node_modules/slate-history/dist/index.es.js +0 -208
  2001. package/configure/node_modules/slate-history/dist/index.es.js.map +0 -1
  2002. package/configure/node_modules/slate-history/dist/index.js +0 -222
  2003. package/configure/node_modules/slate-history/dist/index.js.map +0 -1
  2004. package/configure/node_modules/slate-history/dist/slate-history.js +0 -257
  2005. package/configure/node_modules/slate-history/dist/slate-history.min.js +0 -7
  2006. package/configure/node_modules/slate-history/dist/with-history.d.ts +0 -12
  2007. package/configure/node_modules/slate-history/dist/with-history.d.ts.map +0 -1
  2008. package/configure/node_modules/slate-history/package.json +0 -42
  2009. package/configure/node_modules/slate-html-serializer/Changelog.md +0 -67
  2010. package/configure/node_modules/slate-html-serializer/Readme.md +0 -1
  2011. package/configure/node_modules/slate-html-serializer/dist/slate-html-serializer.js +0 -548
  2012. package/configure/node_modules/slate-html-serializer/dist/slate-html-serializer.min.js +0 -1
  2013. package/configure/node_modules/slate-html-serializer/lib/slate-html-serializer.es.js +0 -513
  2014. package/configure/node_modules/slate-html-serializer/lib/slate-html-serializer.es.js.map +0 -1
  2015. package/configure/node_modules/slate-html-serializer/lib/slate-html-serializer.js +0 -519
  2016. package/configure/node_modules/slate-html-serializer/lib/slate-html-serializer.js.map +0 -1
  2017. package/configure/node_modules/slate-html-serializer/package.json +0 -48
  2018. package/configure/node_modules/slate-hyperscript/Readme.md +0 -1
  2019. package/configure/node_modules/slate-hyperscript/dist/creators.d.ts +0 -51
  2020. package/configure/node_modules/slate-hyperscript/dist/creators.d.ts.map +0 -1
  2021. package/configure/node_modules/slate-hyperscript/dist/hyperscript.d.ts +0 -34
  2022. package/configure/node_modules/slate-hyperscript/dist/hyperscript.d.ts.map +0 -1
  2023. package/configure/node_modules/slate-hyperscript/dist/index.d.ts +0 -19
  2024. package/configure/node_modules/slate-hyperscript/dist/index.d.ts.map +0 -1
  2025. package/configure/node_modules/slate-hyperscript/dist/index.es.js +0 -379
  2026. package/configure/node_modules/slate-hyperscript/dist/index.es.js.map +0 -1
  2027. package/configure/node_modules/slate-hyperscript/dist/index.js +0 -663
  2028. package/configure/node_modules/slate-hyperscript/dist/index.js.map +0 -1
  2029. package/configure/node_modules/slate-hyperscript/dist/slate-hyperscript.js +0 -698
  2030. package/configure/node_modules/slate-hyperscript/dist/slate-hyperscript.min.js +0 -8
  2031. package/configure/node_modules/slate-hyperscript/dist/tokens.d.ts +0 -45
  2032. package/configure/node_modules/slate-hyperscript/dist/tokens.d.ts.map +0 -1
  2033. package/configure/node_modules/slate-hyperscript/package.json +0 -40
  2034. package/configure/node_modules/slate-plain-serializer/Changelog.md +0 -57
  2035. package/configure/node_modules/slate-plain-serializer/Readme.md +0 -1
  2036. package/configure/node_modules/slate-plain-serializer/dist/slate-plain-serializer.js +0 -122
  2037. package/configure/node_modules/slate-plain-serializer/dist/slate-plain-serializer.min.js +0 -1
  2038. package/configure/node_modules/slate-plain-serializer/lib/slate-plain-serializer.es.js +0 -116
  2039. package/configure/node_modules/slate-plain-serializer/lib/slate-plain-serializer.es.js.map +0 -1
  2040. package/configure/node_modules/slate-plain-serializer/lib/slate-plain-serializer.js +0 -120
  2041. package/configure/node_modules/slate-plain-serializer/lib/slate-plain-serializer.js.map +0 -1
  2042. package/configure/node_modules/slate-plain-serializer/package.json +0 -43
  2043. package/configure/node_modules/slate-prop-types/Changelog.md +0 -45
  2044. package/configure/node_modules/slate-prop-types/Readme.md +0 -1
  2045. package/configure/node_modules/slate-prop-types/dist/slate-prop-types.js +0 -130
  2046. package/configure/node_modules/slate-prop-types/dist/slate-prop-types.min.js +0 -1
  2047. package/configure/node_modules/slate-prop-types/lib/slate-prop-types.es.js +0 -123
  2048. package/configure/node_modules/slate-prop-types/lib/slate-prop-types.es.js.map +0 -1
  2049. package/configure/node_modules/slate-prop-types/lib/slate-prop-types.js +0 -127
  2050. package/configure/node_modules/slate-prop-types/lib/slate-prop-types.js.map +0 -1
  2051. package/configure/node_modules/slate-prop-types/package.json +0 -38
  2052. package/configure/node_modules/slate-react/Readme.md +0 -8
  2053. package/configure/node_modules/slate-react/dist/components/editable.d.ts +0 -84
  2054. package/configure/node_modules/slate-react/dist/components/editable.d.ts.map +0 -1
  2055. package/configure/node_modules/slate-react/dist/components/element.d.ts +0 -28
  2056. package/configure/node_modules/slate-react/dist/components/element.d.ts.map +0 -1
  2057. package/configure/node_modules/slate-react/dist/components/leaf.d.ts +0 -14
  2058. package/configure/node_modules/slate-react/dist/components/leaf.d.ts.map +0 -1
  2059. package/configure/node_modules/slate-react/dist/components/restore-dom/restore-dom-manager.d.ts +0 -9
  2060. package/configure/node_modules/slate-react/dist/components/restore-dom/restore-dom-manager.d.ts.map +0 -1
  2061. package/configure/node_modules/slate-react/dist/components/restore-dom/restore-dom.d.ts +0 -8
  2062. package/configure/node_modules/slate-react/dist/components/restore-dom/restore-dom.d.ts.map +0 -1
  2063. package/configure/node_modules/slate-react/dist/components/slate.d.ts +0 -14
  2064. package/configure/node_modules/slate-react/dist/components/slate.d.ts.map +0 -1
  2065. package/configure/node_modules/slate-react/dist/components/string.d.ts +0 -21
  2066. package/configure/node_modules/slate-react/dist/components/string.d.ts.map +0 -1
  2067. package/configure/node_modules/slate-react/dist/components/text.d.ts +0 -13
  2068. package/configure/node_modules/slate-react/dist/components/text.d.ts.map +0 -1
  2069. package/configure/node_modules/slate-react/dist/custom-types.d.ts +0 -16
  2070. package/configure/node_modules/slate-react/dist/custom-types.d.ts.map +0 -1
  2071. package/configure/node_modules/slate-react/dist/hooks/android-input-manager/android-input-manager.d.ts +0 -30
  2072. package/configure/node_modules/slate-react/dist/hooks/android-input-manager/android-input-manager.d.ts.map +0 -1
  2073. package/configure/node_modules/slate-react/dist/hooks/android-input-manager/use-android-input-manager.d.ts +0 -8
  2074. package/configure/node_modules/slate-react/dist/hooks/android-input-manager/use-android-input-manager.d.ts.map +0 -1
  2075. package/configure/node_modules/slate-react/dist/hooks/use-children.d.ts +0 -16
  2076. package/configure/node_modules/slate-react/dist/hooks/use-children.d.ts.map +0 -1
  2077. package/configure/node_modules/slate-react/dist/hooks/use-decorate.d.ts +0 -11
  2078. package/configure/node_modules/slate-react/dist/hooks/use-decorate.d.ts.map +0 -1
  2079. package/configure/node_modules/slate-react/dist/hooks/use-editor.d.ts +0 -6
  2080. package/configure/node_modules/slate-react/dist/hooks/use-editor.d.ts.map +0 -1
  2081. package/configure/node_modules/slate-react/dist/hooks/use-focused.d.ts +0 -10
  2082. package/configure/node_modules/slate-react/dist/hooks/use-focused.d.ts.map +0 -1
  2083. package/configure/node_modules/slate-react/dist/hooks/use-is-mounted.d.ts +0 -2
  2084. package/configure/node_modules/slate-react/dist/hooks/use-is-mounted.d.ts.map +0 -1
  2085. package/configure/node_modules/slate-react/dist/hooks/use-isomorphic-layout-effect.d.ts +0 -6
  2086. package/configure/node_modules/slate-react/dist/hooks/use-isomorphic-layout-effect.d.ts.map +0 -1
  2087. package/configure/node_modules/slate-react/dist/hooks/use-mutation-observer.d.ts +0 -3
  2088. package/configure/node_modules/slate-react/dist/hooks/use-mutation-observer.d.ts.map +0 -1
  2089. package/configure/node_modules/slate-react/dist/hooks/use-read-only.d.ts +0 -10
  2090. package/configure/node_modules/slate-react/dist/hooks/use-read-only.d.ts.map +0 -1
  2091. package/configure/node_modules/slate-react/dist/hooks/use-selected.d.ts +0 -10
  2092. package/configure/node_modules/slate-react/dist/hooks/use-selected.d.ts.map +0 -1
  2093. package/configure/node_modules/slate-react/dist/hooks/use-slate-selection.d.ts +0 -7
  2094. package/configure/node_modules/slate-react/dist/hooks/use-slate-selection.d.ts.map +0 -1
  2095. package/configure/node_modules/slate-react/dist/hooks/use-slate-selector.d.ts +0 -32
  2096. package/configure/node_modules/slate-react/dist/hooks/use-slate-selector.d.ts.map +0 -1
  2097. package/configure/node_modules/slate-react/dist/hooks/use-slate-static.d.ts +0 -12
  2098. package/configure/node_modules/slate-react/dist/hooks/use-slate-static.d.ts.map +0 -1
  2099. package/configure/node_modules/slate-react/dist/hooks/use-slate.d.ts +0 -24
  2100. package/configure/node_modules/slate-react/dist/hooks/use-slate.d.ts.map +0 -1
  2101. package/configure/node_modules/slate-react/dist/hooks/use-track-user-input.d.ts +0 -6
  2102. package/configure/node_modules/slate-react/dist/hooks/use-track-user-input.d.ts.map +0 -1
  2103. package/configure/node_modules/slate-react/dist/index.d.ts +0 -15
  2104. package/configure/node_modules/slate-react/dist/index.d.ts.map +0 -1
  2105. package/configure/node_modules/slate-react/dist/index.es.js +0 -5256
  2106. package/configure/node_modules/slate-react/dist/index.es.js.map +0 -1
  2107. package/configure/node_modules/slate-react/dist/index.js +0 -5877
  2108. package/configure/node_modules/slate-react/dist/index.js.map +0 -1
  2109. package/configure/node_modules/slate-react/dist/plugin/react-editor.d.ts +0 -151
  2110. package/configure/node_modules/slate-react/dist/plugin/react-editor.d.ts.map +0 -1
  2111. package/configure/node_modules/slate-react/dist/plugin/with-react.d.ts +0 -12
  2112. package/configure/node_modules/slate-react/dist/plugin/with-react.d.ts.map +0 -1
  2113. package/configure/node_modules/slate-react/dist/slate-react.js +0 -34712
  2114. package/configure/node_modules/slate-react/dist/slate-react.min.js +0 -1
  2115. package/configure/node_modules/slate-react/dist/utils/constants.d.ts +0 -2
  2116. package/configure/node_modules/slate-react/dist/utils/constants.d.ts.map +0 -1
  2117. package/configure/node_modules/slate-react/dist/utils/diff-text.d.ts +0 -45
  2118. package/configure/node_modules/slate-react/dist/utils/diff-text.d.ts.map +0 -1
  2119. package/configure/node_modules/slate-react/dist/utils/dom.d.ts +0 -84
  2120. package/configure/node_modules/slate-react/dist/utils/dom.d.ts.map +0 -1
  2121. package/configure/node_modules/slate-react/dist/utils/environment.d.ts +0 -16
  2122. package/configure/node_modules/slate-react/dist/utils/environment.d.ts.map +0 -1
  2123. package/configure/node_modules/slate-react/dist/utils/hotkeys.d.ts +0 -31
  2124. package/configure/node_modules/slate-react/dist/utils/hotkeys.d.ts.map +0 -1
  2125. package/configure/node_modules/slate-react/dist/utils/key.d.ts +0 -12
  2126. package/configure/node_modules/slate-react/dist/utils/key.d.ts.map +0 -1
  2127. package/configure/node_modules/slate-react/dist/utils/lines.d.ts +0 -15
  2128. package/configure/node_modules/slate-react/dist/utils/lines.d.ts.map +0 -1
  2129. package/configure/node_modules/slate-react/dist/utils/range-list.d.ts +0 -19
  2130. package/configure/node_modules/slate-react/dist/utils/range-list.d.ts.map +0 -1
  2131. package/configure/node_modules/slate-react/dist/utils/types.d.ts +0 -2
  2132. package/configure/node_modules/slate-react/dist/utils/types.d.ts.map +0 -1
  2133. package/configure/node_modules/slate-react/dist/utils/weak-maps.d.ts +0 -52
  2134. package/configure/node_modules/slate-react/dist/utils/weak-maps.d.ts.map +0 -1
  2135. package/configure/node_modules/slate-react/package.json +0 -73
  2136. package/configure/node_modules/slate-soft-break/Changelog.md +0 -57
  2137. package/configure/node_modules/slate-soft-break/Readme.md +0 -23
  2138. package/configure/node_modules/slate-soft-break/dist/slate-soft-break.js +0 -23
  2139. package/configure/node_modules/slate-soft-break/dist/slate-soft-break.min.js +0 -1
  2140. package/configure/node_modules/slate-soft-break/lib/slate-soft-break.es.js +0 -14
  2141. package/configure/node_modules/slate-soft-break/lib/slate-soft-break.es.js.map +0 -1
  2142. package/configure/node_modules/slate-soft-break/lib/slate-soft-break.js +0 -18
  2143. package/configure/node_modules/slate-soft-break/lib/slate-soft-break.js.map +0 -1
  2144. package/configure/node_modules/slate-soft-break/package.json +0 -22
  2145. package/configure/node_modules/tiny-invariant/LICENSE +0 -21
  2146. package/configure/node_modules/tiny-invariant/README.md +0 -88
  2147. package/configure/node_modules/tiny-invariant/dist/tiny-invariant.cjs.js +0 -17
  2148. package/configure/node_modules/tiny-invariant/dist/tiny-invariant.cjs.js.flow +0 -3
  2149. package/configure/node_modules/tiny-invariant/dist/tiny-invariant.esm.js +0 -15
  2150. package/configure/node_modules/tiny-invariant/dist/tiny-invariant.js +0 -20
  2151. package/configure/node_modules/tiny-invariant/dist/tiny-invariant.min.js +0 -1
  2152. package/configure/node_modules/tiny-invariant/package.json +0 -53
  2153. package/configure/node_modules/tiny-invariant/src/index.d.ts +0 -1
  2154. package/configure/node_modules/tiny-invariant/src/index.js +0 -22
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sources":["../src/interfaces/path-ref.ts","../src/interfaces/point-ref.ts","../src/interfaces/range-ref.ts","../src/utils/weak-maps.ts","../../../.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/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/unsupportedIterableToArray.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/interfaces/path.ts","../../../.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/nonIterableRest.js","../../../.yarn/cache/@babel-runtime-npm-7.15.3-6333c71362-2f0b8d2d4e.zip/node_modules/@babel/runtime/helpers/slicedToArray.js","../src/interfaces/transforms/general.ts","../src/interfaces/transforms/node.ts","../src/interfaces/transforms/selection.ts","../src/utils/deep-equal.ts","../../../.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/interfaces/range.ts","../src/interfaces/element.ts","../src/interfaces/node.ts","../src/interfaces/operation.ts","../src/editor/is-editor.ts","../src/interfaces/editor.ts","../src/interfaces/location.ts","../src/interfaces/point.ts","../src/interfaces/scrubber.ts","../src/interfaces/text.ts","../src/utils/get-default-insert-location.ts","../src/utils/match-path.ts","../src/utils/string.ts","../src/interfaces/transforms/text.ts","../src/interfaces/transforms/index.ts","../src/core/apply.ts","../src/core/get-dirty-paths.ts","../src/core/get-fragment.ts","../src/core/normalize-node.ts","../src/core/should-normalize.ts","../src/editor/above.ts","../src/editor/add-mark.ts","../src/editor/after.ts","../src/editor/before.ts","../src/editor/delete-backward.ts","../src/editor/delete-forward.ts","../src/editor/delete-fragment.ts","../src/editor/edges.ts","../src/editor/element-read-only.ts","../src/editor/end.ts","../src/editor/first.ts","../src/editor/fragment.ts","../src/editor/get-void.ts","../src/editor/has-blocks.ts","../src/editor/has-inlines.ts","../src/editor/has-path.ts","../src/editor/has-texts.ts","../src/editor/insert-break.ts","../src/editor/insert-node.ts","../src/editor/insert-soft-break.ts","../src/editor/insert-text.ts","../src/editor/is-block.ts","../src/editor/is-edge.ts","../src/editor/is-empty.ts","../src/editor/is-end.ts","../src/editor/is-normalizing.ts","../src/editor/is-start.ts","../src/editor/last.ts","../src/editor/leaf.ts","../src/editor/levels.ts","../src/editor/marks.ts","../src/editor/next.ts","../src/editor/node.ts","../src/editor/nodes.ts","../src/editor/normalize.ts","../src/editor/parent.ts","../src/editor/path-ref.ts","../src/editor/path-refs.ts","../src/editor/path.ts","../src/editor/point-ref.ts","../src/editor/point-refs.ts","../src/editor/point.ts","../src/editor/positions.ts","../src/editor/previous.ts","../src/editor/range-ref.ts","../src/editor/range-refs.ts","../src/editor/range.ts","../src/editor/remove-mark.ts","../src/editor/set-normalizing.ts","../src/editor/start.ts","../src/editor/string.ts","../src/editor/unhang-range.ts","../src/editor/without-normalizing.ts","../src/transforms-text/delete-text.ts","../src/transforms-text/insert-fragment.ts","../src/transforms-selection/collapse.ts","../src/transforms-selection/deselect.ts","../src/transforms-selection/move.ts","../src/transforms-selection/select.ts","../src/transforms-selection/set-point.ts","../src/transforms-selection/set-selection.ts","../src/transforms-node/insert-nodes.ts","../src/transforms-node/lift-nodes.ts","../src/transforms-node/merge-nodes.ts","../src/transforms-node/move-nodes.ts","../src/transforms-node/remove-nodes.ts","../src/transforms-node/set-nodes.ts","../src/transforms-node/split-nodes.ts","../src/transforms-node/unset-nodes.ts","../src/transforms-node/unwrap-nodes.ts","../src/transforms-node/wrap-nodes.ts","../src/create-editor.ts"],"sourcesContent":["import { Operation, Path } from '..'\n\n/**\n * `PathRef` objects keep a specific path in a document synced over time as new\n * operations are applied to the editor. You can access their `current` property\n * at any time for the up-to-date path value.\n */\n\nexport interface PathRef {\n current: Path | null\n affinity: 'forward' | 'backward' | null\n unref(): Path | null\n}\n\nexport interface PathRefInterface {\n /**\n * Transform the path ref's current value by an operation.\n */\n transform: (ref: PathRef, op: Operation) => void\n}\n\n// eslint-disable-next-line no-redeclare\nexport const PathRef: PathRefInterface = {\n transform(ref: PathRef, op: Operation): void {\n const { current, affinity } = ref\n\n if (current == null) {\n return\n }\n\n const path = Path.transform(current, op, { affinity })\n ref.current = path\n\n if (path == null) {\n ref.unref()\n }\n },\n}\n","import { Operation, Point } from '..'\nimport { TextDirection } from '../types/types'\n\n/**\n * `PointRef` objects keep a specific point in a document synced over time as new\n * operations are applied to the editor. You can access their `current` property\n * at any time for the up-to-date point value.\n */\n\nexport interface PointRef {\n current: Point | null\n affinity: TextDirection | null\n unref(): Point | null\n}\n\nexport interface PointRefInterface {\n /**\n * Transform the point ref's current value by an operation.\n */\n transform: (ref: PointRef, op: Operation) => void\n}\n\n// eslint-disable-next-line no-redeclare\nexport const PointRef: PointRefInterface = {\n transform(ref: PointRef, op: Operation): void {\n const { current, affinity } = ref\n\n if (current == null) {\n return\n }\n\n const point = Point.transform(current, op, { affinity })\n ref.current = point\n\n if (point == null) {\n ref.unref()\n }\n },\n}\n","import { Operation, Range } from '..'\n\n/**\n * `RangeRef` objects keep a specific range in a document synced over time as new\n * operations are applied to the editor. You can access their `current` property\n * at any time for the up-to-date range value.\n */\n\nexport interface RangeRef {\n current: Range | null\n affinity: 'forward' | 'backward' | 'outward' | 'inward' | null\n unref(): Range | null\n}\n\nexport interface RangeRefInterface {\n /**\n * Transform the range ref's current value by an operation.\n */\n transform: (ref: RangeRef, op: Operation) => void\n}\n\n// eslint-disable-next-line no-redeclare\nexport const RangeRef: RangeRefInterface = {\n transform(ref: RangeRef, op: Operation): void {\n const { current, affinity } = ref\n\n if (current == null) {\n return\n }\n\n const path = Range.transform(current, op, { affinity })\n ref.current = path\n\n if (path == null) {\n ref.unref()\n }\n },\n}\n","import { Editor, Path, PathRef, PointRef, RangeRef } from '..'\n\nexport const DIRTY_PATHS: WeakMap<Editor, Path[]> = new WeakMap()\nexport const DIRTY_PATH_KEYS: WeakMap<Editor, Set<string>> = new WeakMap()\nexport const FLUSHING: WeakMap<Editor, boolean> = new WeakMap()\nexport const NORMALIZING: WeakMap<Editor, boolean> = new WeakMap()\nexport const PATH_REFS: WeakMap<Editor, Set<PathRef>> = new WeakMap()\nexport const POINT_REFS: WeakMap<Editor, Set<PointRef>> = new WeakMap()\nexport const RANGE_REFS: WeakMap<Editor, Set<RangeRef>> = new WeakMap()\n","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 _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;","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 _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;","import {\n InsertNodeOperation,\n MergeNodeOperation,\n MoveNodeOperation,\n Operation,\n RemoveNodeOperation,\n SplitNodeOperation,\n} from '..'\nimport { TextDirection } from '../types/types'\n\n/**\n * `Path` arrays are a list of indexes that describe a node's exact position in\n * a Slate node tree. Although they are usually relative to the root `Editor`\n * object, they can be relative to any `Node` object.\n */\n\nexport type Path = number[]\n\nexport interface PathAncestorsOptions {\n reverse?: boolean\n}\n\nexport interface PathLevelsOptions {\n reverse?: boolean\n}\n\nexport interface PathTransformOptions {\n affinity?: TextDirection | null\n}\n\nexport interface PathInterface {\n /**\n * Get a list of ancestor paths for a given path.\n *\n * The paths are sorted from shallowest to deepest ancestor. However, if the\n * `reverse: true` option is passed, they are reversed.\n */\n ancestors: (path: Path, options?: PathAncestorsOptions) => Path[]\n\n /**\n * Get the common ancestor path of two paths.\n */\n common: (path: Path, another: Path) => Path\n\n /**\n * Compare a path to another, returning an integer indicating whether the path\n * was before, at, or after the other.\n *\n * Note: Two paths of unequal length can still receive a `0` result if one is\n * directly above or below the other. If you want exact matching, use\n * [[Path.equals]] instead.\n */\n compare: (path: Path, another: Path) => -1 | 0 | 1\n\n /**\n * Check if a path ends after one of the indexes in another.\n */\n endsAfter: (path: Path, another: Path) => boolean\n\n /**\n * Check if a path ends at one of the indexes in another.\n */\n endsAt: (path: Path, another: Path) => boolean\n\n /**\n * Check if a path ends before one of the indexes in another.\n */\n endsBefore: (path: Path, another: Path) => boolean\n\n /**\n * Check if a path is exactly equal to another.\n */\n equals: (path: Path, another: Path) => boolean\n\n /**\n * Check if the path of previous sibling node exists\n */\n hasPrevious: (path: Path) => boolean\n\n /**\n * Check if a path is after another.\n */\n isAfter: (path: Path, another: Path) => boolean\n\n /**\n * Check if a path is an ancestor of another.\n */\n isAncestor: (path: Path, another: Path) => boolean\n\n /**\n * Check if a path is before another.\n */\n isBefore: (path: Path, another: Path) => boolean\n\n /**\n * Check if a path is a child of another.\n */\n isChild: (path: Path, another: Path) => boolean\n\n /**\n * Check if a path is equal to or an ancestor of another.\n */\n isCommon: (path: Path, another: Path) => boolean\n\n /**\n * Check if a path is a descendant of another.\n */\n isDescendant: (path: Path, another: Path) => boolean\n\n /**\n * Check if a path is the parent of another.\n */\n isParent: (path: Path, another: Path) => boolean\n\n /**\n * Check is a value implements the `Path` interface.\n */\n isPath: (value: any) => value is Path\n\n /**\n * Check if a path is a sibling of another.\n */\n isSibling: (path: Path, another: Path) => boolean\n\n /**\n * Get a list of paths at every level down to a path. Note: this is the same\n * as `Path.ancestors`, but including the path itself.\n *\n * The paths are sorted from shallowest to deepest. However, if the `reverse:\n * true` option is passed, they are reversed.\n */\n levels: (path: Path, options?: PathLevelsOptions) => Path[]\n\n /**\n * Given a path, get the path to the next sibling node.\n */\n next: (path: Path) => Path\n\n /**\n * Returns whether this operation can affect paths or not. Used as an\n * optimization when updating dirty paths during normalization\n *\n * NOTE: This *must* be kept in sync with the implementation of 'transform'\n * below\n */\n operationCanTransformPath: (\n operation: Operation\n ) => operation is\n | InsertNodeOperation\n | RemoveNodeOperation\n | MergeNodeOperation\n | SplitNodeOperation\n | MoveNodeOperation\n\n /**\n * Given a path, return a new path referring to the parent node above it.\n */\n parent: (path: Path) => Path\n\n /**\n * Given a path, get the path to the previous sibling node.\n */\n previous: (path: Path) => Path\n\n /**\n * Get a path relative to an ancestor.\n */\n relative: (path: Path, ancestor: Path) => Path\n\n /**\n * Transform a path by an operation.\n */\n transform: (\n path: Path,\n operation: Operation,\n options?: PathTransformOptions\n ) => Path | null\n}\n\n// eslint-disable-next-line no-redeclare\nexport const Path: PathInterface = {\n ancestors(path: Path, options: PathAncestorsOptions = {}): Path[] {\n const { reverse = false } = options\n let paths = Path.levels(path, options)\n\n if (reverse) {\n paths = paths.slice(1)\n } else {\n paths = paths.slice(0, -1)\n }\n\n return paths\n },\n\n common(path: Path, another: Path): Path {\n const common: Path = []\n\n for (let i = 0; i < path.length && i < another.length; i++) {\n const av = path[i]\n const bv = another[i]\n\n if (av !== bv) {\n break\n }\n\n common.push(av)\n }\n\n return common\n },\n\n compare(path: Path, another: Path): -1 | 0 | 1 {\n const min = Math.min(path.length, another.length)\n\n for (let i = 0; i < min; i++) {\n if (path[i] < another[i]) return -1\n if (path[i] > another[i]) return 1\n }\n\n return 0\n },\n\n endsAfter(path: Path, another: Path): boolean {\n const i = path.length - 1\n const as = path.slice(0, i)\n const bs = another.slice(0, i)\n const av = path[i]\n const bv = another[i]\n return Path.equals(as, bs) && av > bv\n },\n\n endsAt(path: Path, another: Path): boolean {\n const i = path.length\n const as = path.slice(0, i)\n const bs = another.slice(0, i)\n return Path.equals(as, bs)\n },\n\n endsBefore(path: Path, another: Path): boolean {\n const i = path.length - 1\n const as = path.slice(0, i)\n const bs = another.slice(0, i)\n const av = path[i]\n const bv = another[i]\n return Path.equals(as, bs) && av < bv\n },\n\n equals(path: Path, another: Path): boolean {\n return (\n path.length === another.length && path.every((n, i) => n === another[i])\n )\n },\n\n hasPrevious(path: Path): boolean {\n return path[path.length - 1] > 0\n },\n\n isAfter(path: Path, another: Path): boolean {\n return Path.compare(path, another) === 1\n },\n\n isAncestor(path: Path, another: Path): boolean {\n return path.length < another.length && Path.compare(path, another) === 0\n },\n\n isBefore(path: Path, another: Path): boolean {\n return Path.compare(path, another) === -1\n },\n\n isChild(path: Path, another: Path): boolean {\n return (\n path.length === another.length + 1 && Path.compare(path, another) === 0\n )\n },\n\n isCommon(path: Path, another: Path): boolean {\n return path.length <= another.length && Path.compare(path, another) === 0\n },\n\n isDescendant(path: Path, another: Path): boolean {\n return path.length > another.length && Path.compare(path, another) === 0\n },\n\n isParent(path: Path, another: Path): boolean {\n return (\n path.length + 1 === another.length && Path.compare(path, another) === 0\n )\n },\n\n isPath(value: any): value is Path {\n return (\n Array.isArray(value) &&\n (value.length === 0 || typeof value[0] === 'number')\n )\n },\n\n isSibling(path: Path, another: Path): boolean {\n if (path.length !== another.length) {\n return false\n }\n\n const as = path.slice(0, -1)\n const bs = another.slice(0, -1)\n const al = path[path.length - 1]\n const bl = another[another.length - 1]\n return al !== bl && Path.equals(as, bs)\n },\n\n levels(path: Path, options: PathLevelsOptions = {}): Path[] {\n const { reverse = false } = options\n const list: Path[] = []\n\n for (let i = 0; i <= path.length; i++) {\n list.push(path.slice(0, i))\n }\n\n if (reverse) {\n list.reverse()\n }\n\n return list\n },\n\n next(path: Path): Path {\n if (path.length === 0) {\n throw new Error(\n `Cannot get the next path of a root path [${path}], because it has no next index.`\n )\n }\n\n const last = path[path.length - 1]\n return path.slice(0, -1).concat(last + 1)\n },\n\n operationCanTransformPath(\n operation: Operation\n ): operation is\n | InsertNodeOperation\n | RemoveNodeOperation\n | MergeNodeOperation\n | SplitNodeOperation\n | MoveNodeOperation {\n switch (operation.type) {\n case 'insert_node':\n case 'remove_node':\n case 'merge_node':\n case 'split_node':\n case 'move_node':\n return true\n default:\n return false\n }\n },\n\n parent(path: Path): Path {\n if (path.length === 0) {\n throw new Error(`Cannot get the parent path of the root path [${path}].`)\n }\n\n return path.slice(0, -1)\n },\n\n previous(path: Path): Path {\n if (path.length === 0) {\n throw new Error(\n `Cannot get the previous path of a root path [${path}], because it has no previous index.`\n )\n }\n\n const last = path[path.length - 1]\n\n if (last <= 0) {\n throw new Error(\n `Cannot get the previous path of a first child path [${path}] because it would result in a negative index.`\n )\n }\n\n return path.slice(0, -1).concat(last - 1)\n },\n\n relative(path: Path, ancestor: Path): Path {\n if (!Path.isAncestor(ancestor, path) && !Path.equals(path, ancestor)) {\n throw new Error(\n `Cannot get the relative path of [${path}] inside ancestor [${ancestor}], because it is not above or equal to the path.`\n )\n }\n\n return path.slice(ancestor.length)\n },\n\n transform(\n path: Path | null,\n operation: Operation,\n options: PathTransformOptions = {}\n ): Path | null {\n if (!path) return null\n\n // PERF: use destructing instead of immer\n const p = [...path]\n const { affinity = 'forward' } = options\n\n // PERF: Exit early if the operation is guaranteed not to have an effect.\n if (path.length === 0) {\n return p\n }\n\n switch (operation.type) {\n case 'insert_node': {\n const { path: op } = operation\n\n if (\n Path.equals(op, p) ||\n Path.endsBefore(op, p) ||\n Path.isAncestor(op, p)\n ) {\n p[op.length - 1] += 1\n }\n\n break\n }\n\n case 'remove_node': {\n const { path: op } = operation\n\n if (Path.equals(op, p) || Path.isAncestor(op, p)) {\n return null\n } else if (Path.endsBefore(op, p)) {\n p[op.length - 1] -= 1\n }\n\n break\n }\n\n case 'merge_node': {\n const { path: op, position } = operation\n\n if (Path.equals(op, p) || Path.endsBefore(op, p)) {\n p[op.length - 1] -= 1\n } else if (Path.isAncestor(op, p)) {\n p[op.length - 1] -= 1\n p[op.length] += position\n }\n\n break\n }\n\n case 'split_node': {\n const { path: op, position } = operation\n\n if (Path.equals(op, p)) {\n if (affinity === 'forward') {\n p[p.length - 1] += 1\n } else if (affinity === 'backward') {\n // Nothing, because it still refers to the right path.\n } else {\n return null\n }\n } else if (Path.endsBefore(op, p)) {\n p[op.length - 1] += 1\n } else if (Path.isAncestor(op, p) && path[op.length] >= position) {\n p[op.length - 1] += 1\n p[op.length] -= position\n }\n\n break\n }\n\n case 'move_node': {\n const { path: op, newPath: onp } = operation\n\n // If the old and new path are the same, it's a no-op.\n if (Path.equals(op, onp)) {\n return p\n }\n\n if (Path.isAncestor(op, p) || Path.equals(op, p)) {\n const copy = onp.slice()\n\n if (Path.endsBefore(op, onp) && op.length < onp.length) {\n copy[op.length - 1] -= 1\n }\n\n return copy.concat(p.slice(op.length))\n } else if (\n Path.isSibling(op, onp) &&\n (Path.isAncestor(onp, p) || Path.equals(onp, p))\n ) {\n if (Path.endsBefore(op, p)) {\n p[op.length - 1] -= 1\n } else {\n p[op.length - 1] += 1\n }\n } else if (\n Path.endsBefore(onp, p) ||\n Path.equals(onp, p) ||\n Path.isAncestor(onp, p)\n ) {\n if (Path.endsBefore(op, p)) {\n p[op.length - 1] -= 1\n }\n\n p[onp.length - 1] += 1\n } else if (Path.endsBefore(op, p)) {\n if (Path.equals(onp, p)) {\n p[onp.length - 1] += 1\n }\n\n p[op.length - 1] -= 1\n }\n\n break\n }\n }\n\n return p\n },\n}\n","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 _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;","import { createDraft, finishDraft, isDraft } from 'immer'\nimport {\n Ancestor,\n Descendant,\n Editor,\n Element,\n Node,\n NodeEntry,\n Operation,\n Path,\n Point,\n Range,\n Scrubber,\n Selection,\n Text,\n} from '../../index'\n\nexport interface GeneralTransforms {\n /**\n * Transform the editor by an operation.\n */\n transform: (editor: Editor, op: Operation) => void\n}\n\nconst applyToDraft = (editor: Editor, selection: Selection, op: Operation) => {\n switch (op.type) {\n case 'insert_node': {\n const { path, node } = op\n const parent = Node.parent(editor, path)\n const index = path[path.length - 1]\n\n if (index > parent.children.length) {\n throw new Error(\n `Cannot apply an \"insert_node\" operation at path [${path}] because the destination is past the end of the node.`\n )\n }\n\n parent.children.splice(index, 0, node)\n\n if (selection) {\n for (const [point, key] of Range.points(selection)) {\n selection[key] = Point.transform(point, op)!\n }\n }\n\n break\n }\n\n case 'insert_text': {\n const { path, offset, text } = op\n if (text.length === 0) break\n const node = Node.leaf(editor, path)\n const before = node.text.slice(0, offset)\n const after = node.text.slice(offset)\n node.text = before + text + after\n\n if (selection) {\n for (const [point, key] of Range.points(selection)) {\n selection[key] = Point.transform(point, op)!\n }\n }\n\n break\n }\n\n case 'merge_node': {\n const { path } = op\n const node = Node.get(editor, path)\n const prevPath = Path.previous(path)\n const prev = Node.get(editor, prevPath)\n const parent = Node.parent(editor, path)\n const index = path[path.length - 1]\n\n if (Text.isText(node) && Text.isText(prev)) {\n prev.text += node.text\n } else if (!Text.isText(node) && !Text.isText(prev)) {\n prev.children.push(...node.children)\n } else {\n throw new Error(\n `Cannot apply a \"merge_node\" operation at path [${path}] to nodes of different interfaces: ${Scrubber.stringify(\n node\n )} ${Scrubber.stringify(prev)}`\n )\n }\n\n parent.children.splice(index, 1)\n\n if (selection) {\n for (const [point, key] of Range.points(selection)) {\n selection[key] = Point.transform(point, op)!\n }\n }\n\n break\n }\n\n case 'move_node': {\n const { path, newPath } = op\n\n if (Path.isAncestor(path, newPath)) {\n throw new Error(\n `Cannot move a path [${path}] to new path [${newPath}] because the destination is inside itself.`\n )\n }\n\n const node = Node.get(editor, path)\n const parent = Node.parent(editor, path)\n const index = path[path.length - 1]\n\n // This is tricky, but since the `path` and `newPath` both refer to\n // the same snapshot in time, there's a mismatch. After either\n // removing the original position, the second step's path can be out\n // of date. So instead of using the `op.newPath` directly, we\n // transform `op.path` to ascertain what the `newPath` would be after\n // the operation was applied.\n parent.children.splice(index, 1)\n const truePath = Path.transform(path, op)!\n const newParent = Node.get(editor, Path.parent(truePath)) as Ancestor\n const newIndex = truePath[truePath.length - 1]\n\n newParent.children.splice(newIndex, 0, node)\n\n if (selection) {\n for (const [point, key] of Range.points(selection)) {\n selection[key] = Point.transform(point, op)!\n }\n }\n\n break\n }\n\n case 'remove_node': {\n const { path } = op\n const index = path[path.length - 1]\n const parent = Node.parent(editor, path)\n parent.children.splice(index, 1)\n\n // Transform all of the points in the value, but if the point was in the\n // node that was removed we need to update the range or remove it.\n if (selection) {\n for (const [point, key] of Range.points(selection)) {\n const result = Point.transform(point, op)\n\n if (selection != null && result != null) {\n selection[key] = result\n } else {\n let prev: NodeEntry<Text> | undefined\n let next: NodeEntry<Text> | undefined\n\n for (const [n, p] of Node.texts(editor)) {\n if (Path.compare(p, path) === -1) {\n prev = [n, p]\n } else {\n next = [n, p]\n break\n }\n }\n\n let preferNext = false\n if (prev && next) {\n if (Path.equals(next[1], path)) {\n preferNext = !Path.hasPrevious(next[1])\n } else {\n preferNext =\n Path.common(prev[1], path).length <\n Path.common(next[1], path).length\n }\n }\n\n if (prev && !preferNext) {\n point.path = prev[1]\n point.offset = prev[0].text.length\n } else if (next) {\n point.path = next[1]\n point.offset = 0\n } else {\n selection = null\n }\n }\n }\n }\n\n break\n }\n\n case 'remove_text': {\n const { path, offset, text } = op\n if (text.length === 0) break\n const node = Node.leaf(editor, path)\n const before = node.text.slice(0, offset)\n const after = node.text.slice(offset + text.length)\n node.text = before + after\n\n if (selection) {\n for (const [point, key] of Range.points(selection)) {\n selection[key] = Point.transform(point, op)!\n }\n }\n\n break\n }\n\n case 'set_node': {\n const { path, properties, newProperties } = op\n\n if (path.length === 0) {\n throw new Error(`Cannot set properties on the root node!`)\n }\n\n const node = Node.get(editor, path)\n\n for (const key in newProperties) {\n if (key === 'children' || key === 'text') {\n throw new Error(`Cannot set the \"${key}\" property of nodes!`)\n }\n\n const value = newProperties[key]\n\n if (value == null) {\n delete node[key]\n } else {\n node[key] = value\n }\n }\n\n // properties that were previously defined, but are now missing, must be deleted\n for (const key in properties) {\n if (!newProperties.hasOwnProperty(key)) {\n delete node[key]\n }\n }\n\n break\n }\n\n case 'set_selection': {\n const { newProperties } = op\n\n if (newProperties == null) {\n selection = newProperties\n } else {\n if (selection == null) {\n if (!Range.isRange(newProperties)) {\n throw new Error(\n `Cannot apply an incomplete \"set_selection\" operation properties ${Scrubber.stringify(\n newProperties\n )} when there is no current selection.`\n )\n }\n\n selection = { ...newProperties }\n }\n\n for (const key in newProperties) {\n const value = newProperties[key]\n\n if (value == null) {\n if (key === 'anchor' || key === 'focus') {\n throw new Error(`Cannot remove the \"${key}\" selection property`)\n }\n\n delete selection[key]\n } else {\n selection[key] = value\n }\n }\n }\n\n break\n }\n\n case 'split_node': {\n const { path, position, properties } = op\n\n if (path.length === 0) {\n throw new Error(\n `Cannot apply a \"split_node\" operation at path [${path}] because the root node cannot be split.`\n )\n }\n\n const node = Node.get(editor, path)\n const parent = Node.parent(editor, path)\n const index = path[path.length - 1]\n let newNode: Descendant\n\n if (Text.isText(node)) {\n const before = node.text.slice(0, position)\n const after = node.text.slice(position)\n node.text = before\n newNode = {\n ...(properties as Partial<Text>),\n text: after,\n }\n } else {\n const before = node.children.slice(0, position)\n const after = node.children.slice(position)\n node.children = before\n\n newNode = {\n ...(properties as Partial<Element>),\n children: after,\n }\n }\n\n parent.children.splice(index + 1, 0, newNode)\n\n if (selection) {\n for (const [point, key] of Range.points(selection)) {\n selection[key] = Point.transform(point, op)!\n }\n }\n\n break\n }\n }\n return selection\n}\n\n// eslint-disable-next-line no-redeclare\nexport const GeneralTransforms: GeneralTransforms = {\n transform(editor: Editor, op: Operation): void {\n editor.children = createDraft(editor.children)\n let selection = editor.selection && createDraft(editor.selection)\n\n try {\n selection = applyToDraft(editor, selection, op)\n } finally {\n editor.children = finishDraft(editor.children)\n\n if (selection) {\n editor.selection = isDraft(selection)\n ? (finishDraft(selection) as Range)\n : selection\n } else {\n editor.selection = null\n }\n }\n },\n}\n","import { Editor, Element, Location, Node, Path } from '../../index'\nimport { NodeMatch, PropsCompare, PropsMerge } from '../editor'\nimport { MaximizeMode, RangeMode } from '../../types/types'\n\nexport interface NodeInsertNodesOptions<T extends Node> {\n at?: Location\n match?: NodeMatch<T>\n mode?: RangeMode\n hanging?: boolean\n select?: boolean\n voids?: boolean\n}\n\nexport interface NodeTransforms {\n /**\n * Insert nodes in the editor\n * at the specified location or (if not defined) the current selection or (if not defined) the end of the document.\n */\n insertNodes: <T extends Node>(\n editor: Editor,\n nodes: Node | Node[],\n options?: NodeInsertNodesOptions<T>\n ) => void\n\n /**\n * Lift nodes at a specific location upwards in the document tree, splitting\n * their parent in two if necessary.\n */\n liftNodes: <T extends Node>(\n editor: Editor,\n options?: {\n at?: Location\n match?: NodeMatch<T>\n mode?: MaximizeMode\n voids?: boolean\n }\n ) => void\n\n /**\n * Merge a node at a location with the previous node of the same depth,\n * removing any empty containing nodes after the merge if necessary.\n */\n mergeNodes: <T extends Node>(\n editor: Editor,\n options?: {\n at?: Location\n match?: NodeMatch<T>\n mode?: RangeMode\n hanging?: boolean\n voids?: boolean\n }\n ) => void\n\n /**\n * Move the nodes at a location to a new location.\n */\n moveNodes: <T extends Node>(\n editor: Editor,\n options: {\n at?: Location\n match?: NodeMatch<T>\n mode?: MaximizeMode\n to: Path\n voids?: boolean\n }\n ) => void\n\n /**\n * Remove the nodes at a specific location in the document.\n */\n removeNodes: <T extends Node>(\n editor: Editor,\n options?: {\n at?: Location\n match?: NodeMatch<T>\n mode?: RangeMode\n hanging?: boolean\n voids?: boolean\n }\n ) => void\n\n /**\n * Set new properties on the nodes at a location.\n */\n setNodes: <T extends Node>(\n editor: Editor,\n props: Partial<T>,\n options?: {\n at?: Location\n match?: NodeMatch<T>\n mode?: MaximizeMode\n hanging?: boolean\n split?: boolean\n voids?: boolean\n compare?: PropsCompare\n merge?: PropsMerge\n }\n ) => void\n\n /**\n * Split the nodes at a specific location.\n */\n splitNodes: <T extends Node>(\n editor: Editor,\n options?: {\n at?: Location\n match?: NodeMatch<T>\n mode?: RangeMode\n always?: boolean\n height?: number\n voids?: boolean\n }\n ) => void\n\n /**\n * Unset properties on the nodes at a location.\n */\n unsetNodes: <T extends Node>(\n editor: Editor,\n props: string | string[],\n options?: {\n at?: Location\n match?: NodeMatch<T>\n mode?: MaximizeMode\n hanging?: boolean\n split?: boolean\n voids?: boolean\n }\n ) => void\n\n /**\n * Unwrap the nodes at a location from a parent node, splitting the parent if\n * necessary to ensure that only the content in the range is unwrapped.\n */\n unwrapNodes: <T extends Node>(\n editor: Editor,\n options?: {\n at?: Location\n match?: NodeMatch<T>\n mode?: MaximizeMode\n split?: boolean\n voids?: boolean\n }\n ) => void\n\n /**\n * Wrap the nodes at a location in a new container node, splitting the edges\n * of the range first to ensure that only the content in the range is wrapped.\n */\n wrapNodes: <T extends Node>(\n editor: Editor,\n element: Element,\n options?: {\n at?: Location\n match?: NodeMatch<T>\n mode?: MaximizeMode\n split?: boolean\n voids?: boolean\n }\n ) => void\n}\n\n// eslint-disable-next-line no-redeclare\nexport const NodeTransforms: NodeTransforms = {\n insertNodes(editor, nodes, options) {\n editor.insertNodes(nodes, options)\n },\n liftNodes(editor, options) {\n editor.liftNodes(options)\n },\n mergeNodes(editor, options) {\n editor.mergeNodes(options)\n },\n moveNodes(editor, options) {\n editor.moveNodes(options)\n },\n removeNodes(editor, options) {\n editor.removeNodes(options)\n },\n setNodes(editor, props, options) {\n editor.setNodes(props, options)\n },\n splitNodes(editor, options) {\n editor.splitNodes(options)\n },\n unsetNodes(editor, props, options) {\n editor.unsetNodes(props, options)\n },\n unwrapNodes(editor, options) {\n editor.unwrapNodes(options)\n },\n wrapNodes(editor, element, options) {\n editor.wrapNodes(element, options)\n },\n}\n","import { Editor, Location, Point, Range } from '../../index'\nimport { MoveUnit, SelectionEdge } from '../../types/types'\n\nexport interface SelectionCollapseOptions {\n edge?: SelectionEdge\n}\n\nexport interface SelectionMoveOptions {\n distance?: number\n unit?: MoveUnit\n reverse?: boolean\n edge?: SelectionEdge\n}\n\nexport interface SelectionSetPointOptions {\n edge?: SelectionEdge\n}\n\nexport interface SelectionTransforms {\n /**\n * Collapse the selection.\n */\n collapse: (editor: Editor, options?: SelectionCollapseOptions) => void\n\n /**\n * Unset the selection.\n */\n deselect: (editor: Editor) => void\n\n /**\n * Move the selection's point forward or backward.\n */\n move: (editor: Editor, options?: SelectionMoveOptions) => void\n\n /**\n * Set the selection to a new value.\n */\n select: (editor: Editor, target: Location) => void\n\n /**\n * Set new properties on one of the selection's points.\n */\n setPoint: (\n editor: Editor,\n props: Partial<Point>,\n options?: SelectionSetPointOptions\n ) => void\n\n /**\n * Set new properties on the selection.\n */\n setSelection: (editor: Editor, props: Partial<Range>) => void\n}\n\n// eslint-disable-next-line no-redeclare\nexport const SelectionTransforms: SelectionTransforms = {\n collapse(editor, options) {\n editor.collapse(options)\n },\n deselect(editor) {\n editor.deselect()\n },\n move(editor, options) {\n editor.move(options)\n },\n select(editor, target) {\n editor.select(target)\n },\n setPoint(editor, props, options) {\n editor.setPoint(props, options)\n },\n setSelection(editor, props) {\n editor.setSelection(props)\n },\n}\n","import { isPlainObject } from 'is-plain-object'\n\n/*\n Custom deep equal comparison for Slate nodes.\n\n We don't need general purpose deep equality;\n Slate only supports plain values, Arrays, and nested objects.\n Complex values nested inside Arrays are not supported.\n\n Slate objects are designed to be serialised, so\n missing keys are deliberately normalised to undefined.\n */\nexport const isDeepEqual = (\n node: Record<string, any>,\n another: Record<string, any>\n): boolean => {\n for (const key in node) {\n const a = node[key]\n const b = another[key]\n if (isPlainObject(a) && isPlainObject(b)) {\n if (!isDeepEqual(a, b)) return false\n } else if (Array.isArray(a) && Array.isArray(b)) {\n if (a.length !== b.length) return false\n for (let i = 0; i < a.length; i++) {\n if (a[i] !== b[i]) return false\n }\n } else if (a !== b) {\n return false\n }\n }\n\n /*\n Deep object equality is only necessary in one direction; in the reverse direction\n we are only looking for keys that are missing.\n As above, undefined keys are normalised to missing.\n */\n\n for (const key in another) {\n if (node[key] === undefined && another[key] !== undefined) {\n return false\n }\n }\n\n return true\n}\n","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 { produce } from 'immer'\nimport { isPlainObject } from 'is-plain-object'\nimport { ExtendedType, Operation, Path, Point, PointEntry } from '..'\nimport { RangeDirection } from '../types/types'\n\n/**\n * `Range` objects are a set of points that refer to a specific span of a Slate\n * document. They can define a span inside a single node or a can span across\n * multiple nodes.\n */\n\nexport interface BaseRange {\n anchor: Point\n focus: Point\n}\n\nexport type Range = ExtendedType<'Range', BaseRange>\n\nexport interface RangeEdgesOptions {\n reverse?: boolean\n}\n\nexport interface RangeTransformOptions {\n affinity?: RangeDirection | null\n}\n\nexport interface RangeInterface {\n /**\n * Get the start and end points of a range, in the order in which they appear\n * in the document.\n */\n edges: (range: Range, options?: RangeEdgesOptions) => [Point, Point]\n\n /**\n * Get the end point of a range.\n */\n end: (range: Range) => Point\n\n /**\n * Check if a range is exactly equal to another.\n */\n equals: (range: Range, another: Range) => boolean\n\n /**\n * Check if a range includes a path, a point or part of another range.\n */\n includes: (range: Range, target: Path | Point | Range) => boolean\n\n /**\n * Get the intersection of a range with another.\n */\n intersection: (range: Range, another: Range) => Range | null\n\n /**\n * Check if a range is backward, meaning that its anchor point appears in the\n * document _after_ its focus point.\n */\n isBackward: (range: Range) => boolean\n\n /**\n * Check if a range is collapsed, meaning that both its anchor and focus\n * points refer to the exact same position in the document.\n */\n isCollapsed: (range: Range) => boolean\n\n /**\n * Check if a range is expanded.\n *\n * This is the opposite of [[Range.isCollapsed]] and is provided for legibility.\n */\n isExpanded: (range: Range) => boolean\n\n /**\n * Check if a range is forward.\n *\n * This is the opposite of [[Range.isBackward]] and is provided for legibility.\n */\n isForward: (range: Range) => boolean\n\n /**\n * Check if a value implements the [[Range]] interface.\n */\n isRange: (value: any) => value is Range\n\n /**\n * Iterate through all of the point entries in a range.\n */\n points: (range: Range) => Generator<PointEntry, void, undefined>\n\n /**\n * Get the start point of a range.\n */\n start: (range: Range) => Point\n\n /**\n * Transform a range by an operation.\n */\n transform: (\n range: Range,\n op: Operation,\n options?: RangeTransformOptions\n ) => Range | null\n}\n\n// eslint-disable-next-line no-redeclare\nexport const Range: RangeInterface = {\n edges(range: Range, options: RangeEdgesOptions = {}): [Point, Point] {\n const { reverse = false } = options\n const { anchor, focus } = range\n return Range.isBackward(range) === reverse\n ? [anchor, focus]\n : [focus, anchor]\n },\n\n end(range: Range): Point {\n const [, end] = Range.edges(range)\n return end\n },\n\n equals(range: Range, another: Range): boolean {\n return (\n Point.equals(range.anchor, another.anchor) &&\n Point.equals(range.focus, another.focus)\n )\n },\n\n includes(range: Range, target: Path | Point | Range): boolean {\n if (Range.isRange(target)) {\n if (\n Range.includes(range, target.anchor) ||\n Range.includes(range, target.focus)\n ) {\n return true\n }\n\n const [rs, re] = Range.edges(range)\n const [ts, te] = Range.edges(target)\n return Point.isBefore(rs, ts) && Point.isAfter(re, te)\n }\n\n const [start, end] = Range.edges(range)\n let isAfterStart = false\n let isBeforeEnd = false\n\n if (Point.isPoint(target)) {\n isAfterStart = Point.compare(target, start) >= 0\n isBeforeEnd = Point.compare(target, end) <= 0\n } else {\n isAfterStart = Path.compare(target, start.path) >= 0\n isBeforeEnd = Path.compare(target, end.path) <= 0\n }\n\n return isAfterStart && isBeforeEnd\n },\n\n intersection(range: Range, another: Range): Range | null {\n const { anchor, focus, ...rest } = range\n const [s1, e1] = Range.edges(range)\n const [s2, e2] = Range.edges(another)\n const start = Point.isBefore(s1, s2) ? s2 : s1\n const end = Point.isBefore(e1, e2) ? e1 : e2\n\n if (Point.isBefore(end, start)) {\n return null\n } else {\n return { anchor: start, focus: end, ...rest }\n }\n },\n\n isBackward(range: Range): boolean {\n const { anchor, focus } = range\n return Point.isAfter(anchor, focus)\n },\n\n isCollapsed(range: Range): boolean {\n const { anchor, focus } = range\n return Point.equals(anchor, focus)\n },\n\n isExpanded(range: Range): boolean {\n return !Range.isCollapsed(range)\n },\n\n isForward(range: Range): boolean {\n return !Range.isBackward(range)\n },\n\n isRange(value: any): value is Range {\n return (\n isPlainObject(value) &&\n Point.isPoint(value.anchor) &&\n Point.isPoint(value.focus)\n )\n },\n\n *points(range: Range): Generator<PointEntry, void, undefined> {\n yield [range.anchor, 'anchor']\n yield [range.focus, 'focus']\n },\n\n start(range: Range): Point {\n const [start] = Range.edges(range)\n return start\n },\n\n transform(\n range: Range | null,\n op: Operation,\n options: RangeTransformOptions = {}\n ): Range | null {\n return produce(range, r => {\n if (r === null) {\n return null\n }\n const { affinity = 'inward' } = options\n let affinityAnchor: 'forward' | 'backward' | null\n let affinityFocus: 'forward' | 'backward' | null\n\n if (affinity === 'inward') {\n // If the range is collapsed, make sure to use the same affinity to\n // avoid the two points passing each other and expanding in the opposite\n // direction\n const isCollapsed = Range.isCollapsed(r)\n if (Range.isForward(r)) {\n affinityAnchor = 'forward'\n affinityFocus = isCollapsed ? affinityAnchor : 'backward'\n } else {\n affinityAnchor = 'backward'\n affinityFocus = isCollapsed ? affinityAnchor : 'forward'\n }\n } else if (affinity === 'outward') {\n if (Range.isForward(r)) {\n affinityAnchor = 'backward'\n affinityFocus = 'forward'\n } else {\n affinityAnchor = 'forward'\n affinityFocus = 'backward'\n }\n } else {\n affinityAnchor = affinity\n affinityFocus = affinity\n }\n const anchor = Point.transform(r.anchor, op, { affinity: affinityAnchor })\n const focus = Point.transform(r.focus, op, { affinity: affinityFocus })\n\n if (!anchor || !focus) {\n return null\n }\n\n r.anchor = anchor\n r.focus = focus\n })\n },\n}\n","import { isPlainObject } from 'is-plain-object'\nimport { Ancestor, Descendant, Editor, ExtendedType, Node, Path } from '..'\n\n/**\n * `Element` objects are a type of node in a Slate document that contain other\n * element nodes or text nodes. They can be either \"blocks\" or \"inlines\"\n * depending on the Slate editor's configuration.\n */\n\nexport interface BaseElement {\n children: Descendant[]\n}\n\nexport type Element = ExtendedType<'Element', BaseElement>\n\nexport interface ElementInterface {\n /**\n * Check if a value implements the 'Ancestor' interface.\n */\n isAncestor: (value: any) => value is Ancestor\n\n /**\n * Check if a value implements the `Element` interface.\n */\n isElement: (value: any) => value is Element\n\n /**\n * Check if a value is an array of `Element` objects.\n */\n isElementList: (value: any) => value is Element[]\n\n /**\n * Check if a set of props is a partial of Element.\n */\n isElementProps: (props: any) => props is Partial<Element>\n\n /**\n * Check if a value implements the `Element` interface and has elementKey with selected value.\n * Default it check to `type` key value\n */\n isElementType: <T extends Element>(\n value: any,\n elementVal: string,\n elementKey?: string\n ) => value is T\n\n /**\n * Check if an element matches set of properties.\n *\n * Note: this checks custom properties, and it does not ensure that any\n * children are equivalent.\n */\n matches: (element: Element, props: Partial<Element>) => boolean\n}\n\n/**\n * Shared the function with isElementType utility\n */\nconst isElement = (value: any): value is Element => {\n return (\n isPlainObject(value) &&\n Node.isNodeList(value.children) &&\n !Editor.isEditor(value)\n )\n}\n\n// eslint-disable-next-line no-redeclare\nexport const Element: ElementInterface = {\n isAncestor(value: any): value is Ancestor {\n return isPlainObject(value) && Node.isNodeList(value.children)\n },\n\n isElement,\n\n isElementList(value: any): value is Element[] {\n return Array.isArray(value) && value.every(val => Element.isElement(val))\n },\n\n isElementProps(props: any): props is Partial<Element> {\n return (props as Partial<Element>).children !== undefined\n },\n\n isElementType: <T extends Element>(\n value: any,\n elementVal: string,\n elementKey: string = 'type'\n ): value is T => {\n return isElement(value) && value[elementKey] === elementVal\n },\n\n matches(element: Element, props: Partial<Element>): boolean {\n for (const key in props) {\n if (key === 'children') {\n continue\n }\n\n if (element[key] !== props[key]) {\n return false\n }\n }\n\n return true\n },\n}\n\n/**\n * `ElementEntry` objects refer to an `Element` and the `Path` where it can be\n * found inside a root node.\n */\nexport type ElementEntry = [Element, Path]\n","import { produce } from 'immer'\nimport { Editor, Path, Range, Scrubber, Text } from '..'\nimport { Element, ElementEntry } from './element'\n\n/**\n * The `Node` union type represents all of the different types of nodes that\n * occur in a Slate document tree.\n */\n\nexport type BaseNode = Editor | Element | Text\nexport type Node = Editor | Element | Text\n\nexport interface NodeAncestorsOptions {\n reverse?: boolean\n}\n\nexport interface NodeChildrenOptions {\n reverse?: boolean\n}\n\nexport interface NodeDescendantsOptions {\n from?: Path\n to?: Path\n reverse?: boolean\n pass?: (node: NodeEntry) => boolean\n}\n\nexport interface NodeElementsOptions {\n from?: Path\n to?: Path\n reverse?: boolean\n pass?: (node: NodeEntry) => boolean\n}\n\nexport interface NodeLevelsOptions {\n reverse?: boolean\n}\n\nexport interface NodeNodesOptions {\n from?: Path\n to?: Path\n reverse?: boolean\n pass?: (entry: NodeEntry) => boolean\n}\n\nexport interface NodeTextsOptions {\n from?: Path\n to?: Path\n reverse?: boolean\n pass?: (node: NodeEntry) => boolean\n}\n\nexport interface NodeInterface {\n /**\n * Get the node at a specific path, asserting that it's an ancestor node.\n */\n ancestor: (root: Node, path: Path) => Ancestor\n\n /**\n * Return a generator of all the ancestor nodes above a specific path.\n *\n * By default the order is top-down, from highest to lowest ancestor in\n * the tree, but you can pass the `reverse: true` option to go bottom-up.\n */\n ancestors: (\n root: Node,\n path: Path,\n options?: NodeAncestorsOptions\n ) => Generator<NodeEntry<Ancestor>, void, undefined>\n\n /**\n * Get the child of a node at a specific index.\n */\n child: (root: Node, index: number) => Descendant\n\n /**\n * Iterate over the children of a node at a specific path.\n */\n children: (\n root: Node,\n path: Path,\n options?: NodeChildrenOptions\n ) => Generator<NodeEntry<Descendant>, void, undefined>\n\n /**\n * Get an entry for the common ancesetor node of two paths.\n */\n common: (root: Node, path: Path, another: Path) => NodeEntry\n\n /**\n * Get the node at a specific path, asserting that it's a descendant node.\n */\n descendant: (root: Node, path: Path) => Descendant\n\n /**\n * Return a generator of all the descendant node entries inside a root node.\n */\n descendants: (\n root: Node,\n options?: NodeDescendantsOptions\n ) => Generator<NodeEntry<Descendant>, void, undefined>\n\n /**\n * Return a generator of all the element nodes inside a root node. Each iteration\n * will return an `ElementEntry` tuple consisting of `[Element, Path]`. If the\n * root node is an element it will be included in the iteration as well.\n */\n elements: (\n root: Node,\n options?: NodeElementsOptions\n ) => Generator<ElementEntry, void, undefined>\n\n /**\n * Extract props from a Node.\n */\n extractProps: (node: Node) => NodeProps\n\n /**\n * Get the first node entry in a root node from a path.\n */\n first: (root: Node, path: Path) => NodeEntry\n\n /**\n * Get the sliced fragment represented by a range inside a root node.\n */\n fragment: (root: Node, range: Range) => Descendant[]\n\n /**\n * Get the descendant node referred to by a specific path. If the path is an\n * empty array, it refers to the root node itself.\n */\n get: (root: Node, path: Path) => Node\n\n /**\n * Check if a descendant node exists at a specific path.\n */\n has: (root: Node, path: Path) => boolean\n\n /**\n * Check if a value implements the `Node` interface.\n */\n isNode: (value: any) => value is Node\n\n /**\n * Check if a value is a list of `Node` objects.\n */\n isNodeList: (value: any) => value is Node[]\n\n /**\n * Get the last node entry in a root node from a path.\n */\n last: (root: Node, path: Path) => NodeEntry\n\n /**\n * Get the node at a specific path, ensuring it's a leaf text node.\n */\n leaf: (root: Node, path: Path) => Text\n\n /**\n * Return a generator of the in a branch of the tree, from a specific path.\n *\n * By default the order is top-down, from highest to lowest node in the tree,\n * but you can pass the `reverse: true` option to go bottom-up.\n */\n levels: (\n root: Node,\n path: Path,\n options?: NodeLevelsOptions\n ) => Generator<NodeEntry, void, undefined>\n\n /**\n * Check if a node matches a set of props.\n */\n matches: (node: Node, props: Partial<Node>) => boolean\n\n /**\n * Return a generator of all the node entries of a root node. Each entry is\n * returned as a `[Node, Path]` tuple, with the path referring to the node's\n * position inside the root node.\n */\n nodes: (\n root: Node,\n options?: NodeNodesOptions\n ) => Generator<NodeEntry, void, undefined>\n\n /**\n * Get the parent of a node at a specific path.\n */\n parent: (root: Node, path: Path) => Ancestor\n\n /**\n * Get the concatenated text string of a node's content.\n *\n * Note that this will not include spaces or line breaks between block nodes.\n * It is not a user-facing string, but a string for performing offset-related\n * computations for a node.\n */\n string: (node: Node) => string\n\n /**\n * Return a generator of all leaf text nodes in a root node.\n */\n texts: (\n root: Node,\n options?: NodeTextsOptions\n ) => Generator<NodeEntry<Text>, void, undefined>\n}\n\nconst IS_NODE_LIST_CACHE = new WeakMap<any[], boolean>()\n\n// eslint-disable-next-line no-redeclare\nexport const Node: NodeInterface = {\n ancestor(root: Node, path: Path): Ancestor {\n const node = Node.get(root, path)\n\n if (Text.isText(node)) {\n throw new Error(\n `Cannot get the ancestor node at path [${path}] because it refers to a text node instead: ${Scrubber.stringify(\n node\n )}`\n )\n }\n\n return node\n },\n\n *ancestors(\n root: Node,\n path: Path,\n options: NodeAncestorsOptions = {}\n ): Generator<NodeEntry<Ancestor>, void, undefined> {\n for (const p of Path.ancestors(path, options)) {\n const n = Node.ancestor(root, p)\n const entry: NodeEntry<Ancestor> = [n, p]\n yield entry\n }\n },\n\n child(root: Node, index: number): Descendant {\n if (Text.isText(root)) {\n throw new Error(\n `Cannot get the child of a text node: ${Scrubber.stringify(root)}`\n )\n }\n\n const c = root.children[index] as Descendant\n\n if (c == null) {\n throw new Error(\n `Cannot get child at index \\`${index}\\` in node: ${Scrubber.stringify(\n root\n )}`\n )\n }\n\n return c\n },\n\n *children(\n root: Node,\n path: Path,\n options: NodeChildrenOptions = {}\n ): Generator<NodeEntry<Descendant>, void, undefined> {\n const { reverse = false } = options\n const ancestor = Node.ancestor(root, path)\n const { children } = ancestor\n let index = reverse ? children.length - 1 : 0\n\n while (reverse ? index >= 0 : index < children.length) {\n const child = Node.child(ancestor, index)\n const childPath = path.concat(index)\n yield [child, childPath]\n index = reverse ? index - 1 : index + 1\n }\n },\n\n common(root: Node, path: Path, another: Path): NodeEntry {\n const p = Path.common(path, another)\n const n = Node.get(root, p)\n return [n, p]\n },\n\n descendant(root: Node, path: Path): Descendant {\n const node = Node.get(root, path)\n\n if (Editor.isEditor(node)) {\n throw new Error(\n `Cannot get the descendant node at path [${path}] because it refers to the root editor node instead: ${Scrubber.stringify(\n node\n )}`\n )\n }\n\n return node\n },\n\n *descendants(\n root: Node,\n options: NodeDescendantsOptions = {}\n ): Generator<NodeEntry<Descendant>, void, undefined> {\n for (const [node, path] of Node.nodes(root, options)) {\n if (path.length !== 0) {\n // NOTE: we have to coerce here because checking the path's length does\n // guarantee that `node` is not a `Editor`, but TypeScript doesn't know.\n yield [node, path] as NodeEntry<Descendant>\n }\n }\n },\n\n *elements(\n root: Node,\n options: NodeElementsOptions = {}\n ): Generator<ElementEntry, void, undefined> {\n for (const [node, path] of Node.nodes(root, options)) {\n if (Element.isElement(node)) {\n yield [node, path]\n }\n }\n },\n\n extractProps(node: Node): NodeProps {\n if (Element.isAncestor(node)) {\n const { children, ...properties } = node\n\n return properties\n } else {\n const { text, ...properties } = node\n\n return properties\n }\n },\n\n first(root: Node, path: Path): NodeEntry {\n const p = path.slice()\n let n = Node.get(root, p)\n\n while (n) {\n if (Text.isText(n) || n.children.length === 0) {\n break\n } else {\n n = n.children[0]\n p.push(0)\n }\n }\n\n return [n, p]\n },\n\n fragment(root: Node, range: Range): Descendant[] {\n if (Text.isText(root)) {\n throw new Error(\n `Cannot get a fragment starting from a root text node: ${Scrubber.stringify(\n root\n )}`\n )\n }\n\n const newRoot = produce({ children: root.children }, r => {\n const [start, end] = Range.edges(range)\n const nodeEntries = Node.nodes(r, {\n reverse: true,\n pass: ([, path]) => !Range.includes(range, path),\n })\n\n for (const [, path] of nodeEntries) {\n if (!Range.includes(range, path)) {\n const parent = Node.parent(r, path)\n const index = path[path.length - 1]\n parent.children.splice(index, 1)\n }\n\n if (Path.equals(path, end.path)) {\n const leaf = Node.leaf(r, path)\n leaf.text = leaf.text.slice(0, end.offset)\n }\n\n if (Path.equals(path, start.path)) {\n const leaf = Node.leaf(r, path)\n leaf.text = leaf.text.slice(start.offset)\n }\n }\n\n if (Editor.isEditor(r)) {\n r.selection = null\n }\n })\n\n return newRoot.children\n },\n\n get(root: Node, path: Path): Node {\n let node = root\n\n for (let i = 0; i < path.length; i++) {\n const p = path[i]\n\n if (Text.isText(node) || !node.children[p]) {\n throw new Error(\n `Cannot find a descendant at path [${path}] in node: ${Scrubber.stringify(\n root\n )}`\n )\n }\n\n node = node.children[p]\n }\n\n return node\n },\n\n has(root: Node, path: Path): boolean {\n let node = root\n\n for (let i = 0; i < path.length; i++) {\n const p = path[i]\n\n if (Text.isText(node) || !node.children[p]) {\n return false\n }\n\n node = node.children[p]\n }\n\n return true\n },\n\n isNode(value: any): value is Node {\n return (\n Text.isText(value) || Element.isElement(value) || Editor.isEditor(value)\n )\n },\n\n isNodeList(value: any): value is Node[] {\n if (!Array.isArray(value)) {\n return false\n }\n const cachedResult = IS_NODE_LIST_CACHE.get(value)\n if (cachedResult !== undefined) {\n return cachedResult\n }\n const isNodeList = value.every(val => Node.isNode(val))\n IS_NODE_LIST_CACHE.set(value, isNodeList)\n return isNodeList\n },\n\n last(root: Node, path: Path): NodeEntry {\n const p = path.slice()\n let n = Node.get(root, p)\n\n while (n) {\n if (Text.isText(n) || n.children.length === 0) {\n break\n } else {\n const i = n.children.length - 1\n n = n.children[i]\n p.push(i)\n }\n }\n\n return [n, p]\n },\n\n leaf(root: Node, path: Path): Text {\n const node = Node.get(root, path)\n\n if (!Text.isText(node)) {\n throw new Error(\n `Cannot get the leaf node at path [${path}] because it refers to a non-leaf node: ${Scrubber.stringify(\n node\n )}`\n )\n }\n\n return node\n },\n\n *levels(\n root: Node,\n path: Path,\n options: NodeLevelsOptions = {}\n ): Generator<NodeEntry, void, undefined> {\n for (const p of Path.levels(path, options)) {\n const n = Node.get(root, p)\n yield [n, p]\n }\n },\n\n matches(node: Node, props: Partial<Node>): boolean {\n return (\n (Element.isElement(node) &&\n Element.isElementProps(props) &&\n Element.matches(node, props)) ||\n (Text.isText(node) &&\n Text.isTextProps(props) &&\n Text.matches(node, props))\n )\n },\n\n *nodes(\n root: Node,\n options: NodeNodesOptions = {}\n ): Generator<NodeEntry, void, undefined> {\n const { pass, reverse = false } = options\n const { from = [], to } = options\n const visited = new Set()\n let p: Path = []\n let n = root\n\n while (true) {\n if (to && (reverse ? Path.isBefore(p, to) : Path.isAfter(p, to))) {\n break\n }\n\n if (!visited.has(n)) {\n yield [n, p]\n }\n\n // If we're allowed to go downward and we haven't descended yet, do.\n if (\n !visited.has(n) &&\n !Text.isText(n) &&\n n.children.length !== 0 &&\n (pass == null || pass([n, p]) === false)\n ) {\n visited.add(n)\n let nextIndex = reverse ? n.children.length - 1 : 0\n\n if (Path.isAncestor(p, from)) {\n nextIndex = from[p.length]\n }\n\n p = p.concat(nextIndex)\n n = Node.get(root, p)\n continue\n }\n\n // If we're at the root and we can't go down, we're done.\n if (p.length === 0) {\n break\n }\n\n // If we're going forward...\n if (!reverse) {\n const newPath = Path.next(p)\n\n if (Node.has(root, newPath)) {\n p = newPath\n n = Node.get(root, p)\n continue\n }\n }\n\n // If we're going backward...\n if (reverse && p[p.length - 1] !== 0) {\n const newPath = Path.previous(p)\n p = newPath\n n = Node.get(root, p)\n continue\n }\n\n // Otherwise we're going upward...\n p = Path.parent(p)\n n = Node.get(root, p)\n visited.add(n)\n }\n },\n\n parent(root: Node, path: Path): Ancestor {\n const parentPath = Path.parent(path)\n const p = Node.get(root, parentPath)\n\n if (Text.isText(p)) {\n throw new Error(\n `Cannot get the parent of path [${path}] because it does not exist in the root.`\n )\n }\n\n return p\n },\n\n string(node: Node): string {\n if (Text.isText(node)) {\n return node.text\n } else {\n return node.children.map(Node.string).join('')\n }\n },\n\n *texts(\n root: Node,\n options: NodeTextsOptions = {}\n ): Generator<NodeEntry<Text>, void, undefined> {\n for (const [node, path] of Node.nodes(root, options)) {\n if (Text.isText(node)) {\n yield [node, path]\n }\n }\n },\n}\n\n/**\n * The `Descendant` union type represents nodes that are descendants in the\n * tree. It is returned as a convenience in certain cases to narrow a value\n * further than the more generic `Node` union.\n */\n\nexport type Descendant = Element | Text\n\n/**\n * The `Ancestor` union type represents nodes that are ancestors in the tree.\n * It is returned as a convenience in certain cases to narrow a value further\n * than the more generic `Node` union.\n */\n\nexport type Ancestor = Editor | Element\n\n/**\n * `NodeEntry` objects are returned when iterating over the nodes in a Slate\n * document tree. They consist of the node and its `Path` relative to the root\n * node in the document.\n */\n\nexport type NodeEntry<T extends Node = Node> = [T, Path]\n\n/**\n * Convenience type for returning the props of a node.\n */\nexport type NodeProps =\n | Omit<Editor, 'children'>\n | Omit<Element, 'children'>\n | Omit<Text, 'text'>\n","import { ExtendedType, Node, Path, Range } from '..'\nimport { isPlainObject } from 'is-plain-object'\n\nexport type BaseInsertNodeOperation = {\n type: 'insert_node'\n path: Path\n node: Node\n}\n\nexport type InsertNodeOperation = ExtendedType<\n 'InsertNodeOperation',\n BaseInsertNodeOperation\n>\n\nexport type BaseInsertTextOperation = {\n type: 'insert_text'\n path: Path\n offset: number\n text: string\n}\n\nexport type InsertTextOperation = ExtendedType<\n 'InsertTextOperation',\n BaseInsertTextOperation\n>\n\nexport type BaseMergeNodeOperation = {\n type: 'merge_node'\n path: Path\n position: number\n properties: Partial<Node>\n}\n\nexport type MergeNodeOperation = ExtendedType<\n 'MergeNodeOperation',\n BaseMergeNodeOperation\n>\n\nexport type BaseMoveNodeOperation = {\n type: 'move_node'\n path: Path\n newPath: Path\n}\n\nexport type MoveNodeOperation = ExtendedType<\n 'MoveNodeOperation',\n BaseMoveNodeOperation\n>\n\nexport type BaseRemoveNodeOperation = {\n type: 'remove_node'\n path: Path\n node: Node\n}\n\nexport type RemoveNodeOperation = ExtendedType<\n 'RemoveNodeOperation',\n BaseRemoveNodeOperation\n>\n\nexport type BaseRemoveTextOperation = {\n type: 'remove_text'\n path: Path\n offset: number\n text: string\n}\n\nexport type RemoveTextOperation = ExtendedType<\n 'RemoveTextOperation',\n BaseRemoveTextOperation\n>\n\nexport type BaseSetNodeOperation = {\n type: 'set_node'\n path: Path\n properties: Partial<Node>\n newProperties: Partial<Node>\n}\n\nexport type SetNodeOperation = ExtendedType<\n 'SetNodeOperation',\n BaseSetNodeOperation\n>\n\nexport type BaseSetSelectionOperation =\n | {\n type: 'set_selection'\n properties: null\n newProperties: Range\n }\n | {\n type: 'set_selection'\n properties: Partial<Range>\n newProperties: Partial<Range>\n }\n | {\n type: 'set_selection'\n properties: Range\n newProperties: null\n }\n\nexport type SetSelectionOperation = ExtendedType<\n 'SetSelectionOperation',\n BaseSetSelectionOperation\n>\n\nexport type BaseSplitNodeOperation = {\n type: 'split_node'\n path: Path\n position: number\n properties: Partial<Node>\n}\n\nexport type SplitNodeOperation = ExtendedType<\n 'SplitNodeOperation',\n BaseSplitNodeOperation\n>\n\nexport type NodeOperation =\n | InsertNodeOperation\n | MergeNodeOperation\n | MoveNodeOperation\n | RemoveNodeOperation\n | SetNodeOperation\n | SplitNodeOperation\n\nexport type SelectionOperation = SetSelectionOperation\n\nexport type TextOperation = InsertTextOperation | RemoveTextOperation\n\n/**\n * `Operation` objects define the low-level instructions that Slate editors use\n * to apply changes to their internal state. Representing all changes as\n * operations is what allows Slate editors to easily implement history,\n * collaboration, and other features.\n */\n\nexport type BaseOperation = NodeOperation | SelectionOperation | TextOperation\nexport type Operation = ExtendedType<'Operation', BaseOperation>\n\nexport interface OperationInterface {\n /**\n * Check if a value is a `NodeOperation` object.\n */\n isNodeOperation: (value: any) => value is NodeOperation\n\n /**\n * Check if a value is an `Operation` object.\n */\n isOperation: (value: any) => value is Operation\n\n /**\n * Check if a value is a list of `Operation` objects.\n */\n isOperationList: (value: any) => value is Operation[]\n\n /**\n * Check if a value is a `SelectionOperation` object.\n */\n isSelectionOperation: (value: any) => value is SelectionOperation\n\n /**\n * Check if a value is a `TextOperation` object.\n */\n isTextOperation: (value: any) => value is TextOperation\n\n /**\n * Invert an operation, returning a new operation that will exactly undo the\n * original when applied.\n */\n inverse: (op: Operation) => Operation\n}\n\n// eslint-disable-next-line no-redeclare\nexport const Operation: OperationInterface = {\n isNodeOperation(value: any): value is NodeOperation {\n return Operation.isOperation(value) && value.type.endsWith('_node')\n },\n\n isOperation(value: any): value is Operation {\n if (!isPlainObject(value)) {\n return false\n }\n\n switch (value.type) {\n case 'insert_node':\n return Path.isPath(value.path) && Node.isNode(value.node)\n case 'insert_text':\n return (\n typeof value.offset === 'number' &&\n typeof value.text === 'string' &&\n Path.isPath(value.path)\n )\n case 'merge_node':\n return (\n typeof value.position === 'number' &&\n Path.isPath(value.path) &&\n isPlainObject(value.properties)\n )\n case 'move_node':\n return Path.isPath(value.path) && Path.isPath(value.newPath)\n case 'remove_node':\n return Path.isPath(value.path) && Node.isNode(value.node)\n case 'remove_text':\n return (\n typeof value.offset === 'number' &&\n typeof value.text === 'string' &&\n Path.isPath(value.path)\n )\n case 'set_node':\n return (\n Path.isPath(value.path) &&\n isPlainObject(value.properties) &&\n isPlainObject(value.newProperties)\n )\n case 'set_selection':\n return (\n (value.properties === null && Range.isRange(value.newProperties)) ||\n (value.newProperties === null && Range.isRange(value.properties)) ||\n (isPlainObject(value.properties) &&\n isPlainObject(value.newProperties))\n )\n case 'split_node':\n return (\n Path.isPath(value.path) &&\n typeof value.position === 'number' &&\n isPlainObject(value.properties)\n )\n default:\n return false\n }\n },\n\n isOperationList(value: any): value is Operation[] {\n return (\n Array.isArray(value) && value.every(val => Operation.isOperation(val))\n )\n },\n\n isSelectionOperation(value: any): value is SelectionOperation {\n return Operation.isOperation(value) && value.type.endsWith('_selection')\n },\n\n isTextOperation(value: any): value is TextOperation {\n return Operation.isOperation(value) && value.type.endsWith('_text')\n },\n\n inverse(op: Operation): Operation {\n switch (op.type) {\n case 'insert_node': {\n return { ...op, type: 'remove_node' }\n }\n\n case 'insert_text': {\n return { ...op, type: 'remove_text' }\n }\n\n case 'merge_node': {\n return { ...op, type: 'split_node', path: Path.previous(op.path) }\n }\n\n case 'move_node': {\n const { newPath, path } = op\n\n // PERF: in this case the move operation is a no-op anyways.\n if (Path.equals(newPath, path)) {\n return op\n }\n\n // If the move happens completely within a single parent the path and\n // newPath are stable with respect to each other.\n if (Path.isSibling(path, newPath)) {\n return { ...op, path: newPath, newPath: path }\n }\n\n // If the move does not happen within a single parent it is possible\n // for the move to impact the true path to the location where the node\n // was removed from and where it was inserted. We have to adjust for this\n // and find the original path. We can accomplish this (only in non-sibling)\n // moves by looking at the impact of the move operation on the node\n // after the original move path.\n const inversePath = Path.transform(path, op)!\n const inverseNewPath = Path.transform(Path.next(path), op)!\n return { ...op, path: inversePath, newPath: inverseNewPath }\n }\n\n case 'remove_node': {\n return { ...op, type: 'insert_node' }\n }\n\n case 'remove_text': {\n return { ...op, type: 'insert_text' }\n }\n\n case 'set_node': {\n const { properties, newProperties } = op\n return { ...op, properties: newProperties, newProperties: properties }\n }\n\n case 'set_selection': {\n const { properties, newProperties } = op\n\n if (properties == null) {\n return {\n ...op,\n properties: newProperties as Range,\n newProperties: null,\n }\n } else if (newProperties == null) {\n return {\n ...op,\n properties: null,\n newProperties: properties as Range,\n }\n } else {\n return { ...op, properties: newProperties, newProperties: properties }\n }\n }\n\n case 'split_node': {\n return { ...op, type: 'merge_node', path: Path.next(op.path) }\n }\n }\n },\n}\n","import { Editor, EditorInterface } from '../interfaces/editor'\nimport { isPlainObject } from 'is-plain-object'\nimport { Range } from '../interfaces/range'\nimport { Node } from '../interfaces/node'\nimport { Operation } from '../interfaces/operation'\n\nconst IS_EDITOR_CACHE = new WeakMap<object, boolean>()\n\nexport const isEditor: EditorInterface['isEditor'] = (\n value: any\n): value is Editor => {\n const cachedIsEditor = IS_EDITOR_CACHE.get(value)\n if (cachedIsEditor !== undefined) {\n return cachedIsEditor\n }\n\n if (!isPlainObject(value)) {\n return false\n }\n\n const isEditor =\n typeof value.addMark === 'function' &&\n typeof value.apply === 'function' &&\n typeof value.deleteFragment === 'function' &&\n typeof value.insertBreak === 'function' &&\n typeof value.insertSoftBreak === 'function' &&\n typeof value.insertFragment === 'function' &&\n typeof value.insertNode === 'function' &&\n typeof value.insertText === 'function' &&\n typeof value.isElementReadOnly === 'function' &&\n typeof value.isInline === 'function' &&\n typeof value.isSelectable === 'function' &&\n typeof value.isVoid === 'function' &&\n typeof value.normalizeNode === 'function' &&\n typeof value.onChange === 'function' &&\n typeof value.removeMark === 'function' &&\n typeof value.getDirtyPaths === 'function' &&\n (value.marks === null || isPlainObject(value.marks)) &&\n (value.selection === null || Range.isRange(value.selection)) &&\n Node.isNodeList(value.children) &&\n Operation.isOperationList(value.operations)\n IS_EDITOR_CACHE.set(value, isEditor)\n return isEditor\n}\n","import {\n Ancestor,\n Descendant,\n Element,\n ExtendedType,\n Location,\n Node,\n NodeEntry,\n Operation,\n Path,\n PathRef,\n Point,\n PointRef,\n Range,\n RangeRef,\n Span,\n Text,\n Transforms,\n} from '..'\nimport {\n LeafEdge,\n MaximizeMode,\n RangeDirection,\n SelectionMode,\n TextDirection,\n TextUnit,\n TextUnitAdjustment,\n} from '../types/types'\nimport { OmitFirstArg } from '../utils/types'\nimport { isEditor } from '../editor/is-editor'\nimport {\n TextInsertFragmentOptions,\n TextInsertTextOptions,\n} from './transforms/text'\nimport { NodeInsertNodesOptions } from './transforms/node'\n\n/**\n * The `Editor` interface stores all the state of a Slate editor. It is extended\n * by plugins that wish to add their own helpers and implement new behaviors.\n */\nexport interface BaseEditor {\n // Core state.\n\n children: Descendant[]\n selection: Selection\n operations: Operation[]\n marks: EditorMarks | null\n\n // Overrideable core methods.\n\n apply: (operation: Operation) => void\n getDirtyPaths: (operation: Operation) => Path[]\n getFragment: () => Descendant[]\n isElementReadOnly: (element: Element) => boolean\n isSelectable: (element: Element) => boolean\n markableVoid: (element: Element) => boolean\n normalizeNode: (entry: NodeEntry, options?: { operation?: Operation }) => void\n onChange: (options?: { operation?: Operation }) => void\n shouldNormalize: ({\n iteration,\n dirtyPaths,\n operation,\n }: {\n iteration: number\n initialDirtyPathsLength: number\n dirtyPaths: Path[]\n operation?: Operation\n }) => boolean\n\n // Overrideable core transforms.\n\n addMark: OmitFirstArg<typeof Editor.addMark>\n collapse: OmitFirstArg<typeof Transforms.collapse>\n delete: OmitFirstArg<typeof Transforms.delete>\n deleteBackward: (unit: TextUnit) => void\n deleteForward: (unit: TextUnit) => void\n deleteFragment: OmitFirstArg<typeof Editor.deleteFragment>\n deselect: OmitFirstArg<typeof Transforms.deselect>\n insertBreak: OmitFirstArg<typeof Editor.insertBreak>\n insertFragment: OmitFirstArg<typeof Transforms.insertFragment>\n insertNode: OmitFirstArg<typeof Editor.insertNode>\n insertNodes: OmitFirstArg<typeof Transforms.insertNodes>\n insertSoftBreak: OmitFirstArg<typeof Editor.insertSoftBreak>\n insertText: OmitFirstArg<typeof Transforms.insertText>\n liftNodes: OmitFirstArg<typeof Transforms.liftNodes>\n mergeNodes: OmitFirstArg<typeof Transforms.mergeNodes>\n move: OmitFirstArg<typeof Transforms.move>\n moveNodes: OmitFirstArg<typeof Transforms.moveNodes>\n normalize: OmitFirstArg<typeof Editor.normalize>\n removeMark: OmitFirstArg<typeof Editor.removeMark>\n removeNodes: OmitFirstArg<typeof Transforms.removeNodes>\n select: OmitFirstArg<typeof Transforms.select>\n setNodes: <T extends Node>(\n props: Partial<T>,\n options?: {\n at?: Location\n match?: NodeMatch<T>\n mode?: MaximizeMode\n hanging?: boolean\n split?: boolean\n voids?: boolean\n compare?: PropsCompare\n merge?: PropsMerge\n }\n ) => void\n setNormalizing: OmitFirstArg<typeof Editor.setNormalizing>\n setPoint: OmitFirstArg<typeof Transforms.setPoint>\n setSelection: OmitFirstArg<typeof Transforms.setSelection>\n splitNodes: OmitFirstArg<typeof Transforms.splitNodes>\n unsetNodes: OmitFirstArg<typeof Transforms.unsetNodes>\n unwrapNodes: OmitFirstArg<typeof Transforms.unwrapNodes>\n withoutNormalizing: OmitFirstArg<typeof Editor.withoutNormalizing>\n wrapNodes: OmitFirstArg<typeof Transforms.wrapNodes>\n\n // Overrideable core queries.\n\n above: <T extends Ancestor>(\n options?: EditorAboveOptions<T>\n ) => NodeEntry<T> | undefined\n after: OmitFirstArg<typeof Editor.after>\n before: OmitFirstArg<typeof Editor.before>\n edges: OmitFirstArg<typeof Editor.edges>\n elementReadOnly: OmitFirstArg<typeof Editor.elementReadOnly>\n end: OmitFirstArg<typeof Editor.end>\n first: OmitFirstArg<typeof Editor.first>\n fragment: OmitFirstArg<typeof Editor.fragment>\n getMarks: OmitFirstArg<typeof Editor.marks>\n hasBlocks: OmitFirstArg<typeof Editor.hasBlocks>\n hasInlines: OmitFirstArg<typeof Editor.hasInlines>\n hasPath: OmitFirstArg<typeof Editor.hasPath>\n hasTexts: OmitFirstArg<typeof Editor.hasTexts>\n isBlock: OmitFirstArg<typeof Editor.isBlock>\n isEdge: OmitFirstArg<typeof Editor.isEdge>\n isEmpty: OmitFirstArg<typeof Editor.isEmpty>\n isEnd: OmitFirstArg<typeof Editor.isEnd>\n isInline: OmitFirstArg<typeof Editor.isInline>\n isNormalizing: OmitFirstArg<typeof Editor.isNormalizing>\n isStart: OmitFirstArg<typeof Editor.isStart>\n isVoid: OmitFirstArg<typeof Editor.isVoid>\n last: OmitFirstArg<typeof Editor.last>\n leaf: OmitFirstArg<typeof Editor.leaf>\n levels: <T extends Node>(\n options?: EditorLevelsOptions<T>\n ) => Generator<NodeEntry<T>, void, undefined>\n next: <T extends Descendant>(\n options?: EditorNextOptions<T>\n ) => NodeEntry<T> | undefined\n node: OmitFirstArg<typeof Editor.node>\n nodes: <T extends Node>(\n options?: EditorNodesOptions<T>\n ) => Generator<NodeEntry<T>, void, undefined>\n parent: OmitFirstArg<typeof Editor.parent>\n path: OmitFirstArg<typeof Editor.path>\n pathRef: OmitFirstArg<typeof Editor.pathRef>\n pathRefs: OmitFirstArg<typeof Editor.pathRefs>\n point: OmitFirstArg<typeof Editor.point>\n pointRef: OmitFirstArg<typeof Editor.pointRef>\n pointRefs: OmitFirstArg<typeof Editor.pointRefs>\n positions: OmitFirstArg<typeof Editor.positions>\n previous: <T extends Node>(\n options?: EditorPreviousOptions<T>\n ) => NodeEntry<T> | undefined\n range: OmitFirstArg<typeof Editor.range>\n rangeRef: OmitFirstArg<typeof Editor.rangeRef>\n rangeRefs: OmitFirstArg<typeof Editor.rangeRefs>\n start: OmitFirstArg<typeof Editor.start>\n string: OmitFirstArg<typeof Editor.string>\n unhangRange: OmitFirstArg<typeof Editor.unhangRange>\n void: OmitFirstArg<typeof Editor.void>\n}\n\nexport type Editor = ExtendedType<'Editor', BaseEditor>\n\nexport type BaseSelection = Range | null\n\nexport type Selection = ExtendedType<'Selection', BaseSelection>\n\nexport type EditorMarks = Omit<Text, 'text'>\n\nexport interface EditorAboveOptions<T extends Ancestor> {\n at?: Location\n match?: NodeMatch<T>\n mode?: MaximizeMode\n voids?: boolean\n}\n\nexport interface EditorAfterOptions {\n distance?: number\n unit?: TextUnitAdjustment\n voids?: boolean\n}\n\nexport interface EditorBeforeOptions {\n distance?: number\n unit?: TextUnitAdjustment\n voids?: boolean\n}\n\nexport interface EditorDirectedDeletionOptions {\n unit?: TextUnit\n}\n\nexport interface EditorElementReadOnlyOptions {\n at?: Location\n mode?: MaximizeMode\n voids?: boolean\n}\n\nexport interface EditorFragmentDeletionOptions {\n direction?: TextDirection\n}\n\nexport interface EditorLeafOptions {\n depth?: number\n edge?: LeafEdge\n}\n\nexport interface EditorLevelsOptions<T extends Node> {\n at?: Location\n match?: NodeMatch<T>\n reverse?: boolean\n voids?: boolean\n}\n\nexport interface EditorNextOptions<T extends Descendant> {\n at?: Location\n match?: NodeMatch<T>\n mode?: SelectionMode\n voids?: boolean\n}\n\nexport interface EditorNodeOptions {\n depth?: number\n edge?: LeafEdge\n}\n\nexport interface EditorNodesOptions<T extends Node> {\n at?: Location | Span\n match?: NodeMatch<T>\n mode?: SelectionMode\n universal?: boolean\n reverse?: boolean\n voids?: boolean\n ignoreNonSelectable?: boolean\n}\n\nexport interface EditorNormalizeOptions {\n force?: boolean\n operation?: Operation\n}\n\nexport interface EditorParentOptions {\n depth?: number\n edge?: LeafEdge\n}\n\nexport interface EditorPathOptions {\n depth?: number\n edge?: LeafEdge\n}\n\nexport interface EditorPathRefOptions {\n affinity?: TextDirection | null\n}\n\nexport interface EditorPointOptions {\n edge?: LeafEdge\n}\n\nexport interface EditorPointRefOptions {\n affinity?: TextDirection | null\n}\n\nexport interface EditorPositionsOptions {\n at?: Location\n unit?: TextUnitAdjustment\n reverse?: boolean\n voids?: boolean\n ignoreNonSelectable?: boolean\n}\n\nexport interface EditorPreviousOptions<T extends Node> {\n at?: Location\n match?: NodeMatch<T>\n mode?: SelectionMode\n voids?: boolean\n}\n\nexport interface EditorRangeRefOptions {\n affinity?: RangeDirection | null\n}\n\nexport interface EditorStringOptions {\n voids?: boolean\n}\n\nexport interface EditorUnhangRangeOptions {\n voids?: boolean\n}\n\nexport interface EditorVoidOptions {\n at?: Location\n mode?: MaximizeMode\n voids?: boolean\n}\n\nexport interface EditorInterface {\n /**\n * Get the ancestor above a location in the document.\n */\n above: <T extends Ancestor>(\n editor: Editor,\n options?: EditorAboveOptions<T>\n ) => NodeEntry<T> | undefined\n\n /**\n * Add a custom property to the leaf text nodes in the current selection.\n *\n * If the selection is currently collapsed, the marks will be added to the\n * `editor.marks` property instead, and applied when text is inserted next.\n */\n addMark: (editor: Editor, key: string, value: any) => void\n\n /**\n * Get the point after a location.\n */\n after: (\n editor: Editor,\n at: Location,\n options?: EditorAfterOptions\n ) => Point | undefined\n\n /**\n * Get the point before a location.\n */\n before: (\n editor: Editor,\n at: Location,\n options?: EditorBeforeOptions\n ) => Point | undefined\n\n /**\n * Delete content in the editor backward from the current selection.\n */\n deleteBackward: (\n editor: Editor,\n options?: EditorDirectedDeletionOptions\n ) => void\n\n /**\n * Delete content in the editor forward from the current selection.\n */\n deleteForward: (\n editor: Editor,\n options?: EditorDirectedDeletionOptions\n ) => void\n\n /**\n * Delete the content in the current selection.\n */\n deleteFragment: (\n editor: Editor,\n options?: EditorFragmentDeletionOptions\n ) => void\n\n /**\n * Get the start and end points of a location.\n */\n edges: (editor: Editor, at: Location) => [Point, Point]\n\n /**\n * Match a read-only element in the current branch of the editor.\n */\n elementReadOnly: (\n editor: Editor,\n options?: EditorElementReadOnlyOptions\n ) => NodeEntry<Element> | undefined\n\n /**\n * Get the end point of a location.\n */\n end: (editor: Editor, at: Location) => Point\n\n /**\n * Get the first node at a location.\n */\n first: (editor: Editor, at: Location) => NodeEntry\n\n /**\n * Get the fragment at a location.\n */\n fragment: (editor: Editor, at: Location) => Descendant[]\n\n /**\n * Check if a node has block children.\n */\n hasBlocks: (editor: Editor, element: Element) => boolean\n\n /**\n * Check if a node has inline and text children.\n */\n hasInlines: (editor: Editor, element: Element) => boolean\n\n hasPath: (editor: Editor, path: Path) => boolean\n\n /**\n * Check if a node has text children.\n */\n hasTexts: (editor: Editor, element: Element) => boolean\n\n /**\n * Insert a block break at the current selection.\n *\n * If the selection is currently expanded, it will be deleted first.\n */\n insertBreak: (editor: Editor) => void\n\n /**\n * Inserts a fragment\n * at the specified location or (if not defined) the current selection or (if not defined) the end of the document.\n */\n insertFragment: (\n editor: Editor,\n fragment: Node[],\n options?: TextInsertFragmentOptions\n ) => void\n\n /**\n * Atomically inserts `nodes`\n * at the specified location or (if not defined) the current selection or (if not defined) the end of the document.\n */\n insertNode: <T extends Node>(\n editor: Editor,\n node: Node,\n options?: NodeInsertNodesOptions<T>\n ) => void\n\n /**\n * Insert a soft break at the current selection.\n *\n * If the selection is currently expanded, it will be deleted first.\n */\n insertSoftBreak: (editor: Editor) => void\n\n /**\n * Insert a string of text\n * at the specified location or (if not defined) the current selection or (if not defined) the end of the document.\n */\n insertText: (\n editor: Editor,\n text: string,\n options?: TextInsertTextOptions\n ) => void\n\n /**\n * Check if a value is a block `Element` object.\n */\n isBlock: (editor: Editor, value: Element) => boolean\n\n /**\n * Check if a point is an edge of a location.\n */\n isEdge: (editor: Editor, point: Point, at: Location) => boolean\n\n /**\n * Check if a value is an `Editor` object.\n */\n isEditor: (value: any) => value is Editor\n\n /**\n * Check if a value is a read-only `Element` object.\n */\n isElementReadOnly: (editor: Editor, element: Element) => boolean\n\n /**\n * Check if an element is empty, accounting for void nodes.\n */\n isEmpty: (editor: Editor, element: Element) => boolean\n\n /**\n * Check if a point is the end point of a location.\n */\n isEnd: (editor: Editor, point: Point, at: Location) => boolean\n\n /**\n * Check if a value is an inline `Element` object.\n */\n isInline: (editor: Editor, value: Element) => boolean\n\n /**\n * Check if the editor is currently normalizing after each operation.\n */\n isNormalizing: (editor: Editor) => boolean\n\n /**\n * Check if a value is a selectable `Element` object.\n */\n isSelectable: (editor: Editor, element: Element) => boolean\n\n /**\n * Check if a point is the start point of a location.\n */\n isStart: (editor: Editor, point: Point, at: Location) => boolean\n\n /**\n * Check if a value is a void `Element` object.\n */\n isVoid: (editor: Editor, value: Element) => boolean\n\n /**\n * Get the last node at a location.\n */\n last: (editor: Editor, at: Location) => NodeEntry\n\n /**\n * Get the leaf text node at a location.\n */\n leaf: (\n editor: Editor,\n at: Location,\n options?: EditorLeafOptions\n ) => NodeEntry<Text>\n\n /**\n * Iterate through all of the levels at a location.\n */\n levels: <T extends Node>(\n editor: Editor,\n options?: EditorLevelsOptions<T>\n ) => Generator<NodeEntry<T>, void, undefined>\n\n /**\n * Get the marks that would be added to text at the current selection.\n */\n marks: (editor: Editor) => Omit<Text, 'text'> | null\n\n /**\n * Get the matching node in the branch of the document after a location.\n */\n next: <T extends Descendant>(\n editor: Editor,\n options?: EditorNextOptions<T>\n ) => NodeEntry<T> | undefined\n\n /**\n * Get the node at a location.\n */\n node: (editor: Editor, at: Location, options?: EditorNodeOptions) => NodeEntry\n\n /**\n * Iterate through all of the nodes in the Editor.\n */\n nodes: <T extends Node>(\n editor: Editor,\n options?: EditorNodesOptions<T>\n ) => Generator<NodeEntry<T>, void, undefined>\n\n /**\n * Normalize any dirty objects in the editor.\n */\n normalize: (editor: Editor, options?: EditorNormalizeOptions) => void\n\n /**\n * Get the parent node of a location.\n */\n parent: (\n editor: Editor,\n at: Location,\n options?: EditorParentOptions\n ) => NodeEntry<Ancestor>\n\n /**\n * Get the path of a location.\n */\n path: (editor: Editor, at: Location, options?: EditorPathOptions) => Path\n\n /**\n * Create a mutable ref for a `Path` object, which will stay in sync as new\n * operations are applied to the editor.\n */\n pathRef: (\n editor: Editor,\n path: Path,\n options?: EditorPathRefOptions\n ) => PathRef\n\n /**\n * Get the set of currently tracked path refs of the editor.\n */\n pathRefs: (editor: Editor) => Set<PathRef>\n\n /**\n * Get the start or end point of a location.\n */\n point: (editor: Editor, at: Location, options?: EditorPointOptions) => Point\n\n /**\n * Create a mutable ref for a `Point` object, which will stay in sync as new\n * operations are applied to the editor.\n */\n pointRef: (\n editor: Editor,\n point: Point,\n options?: EditorPointRefOptions\n ) => PointRef\n\n /**\n * Get the set of currently tracked point refs of the editor.\n */\n pointRefs: (editor: Editor) => Set<PointRef>\n\n /**\n * Return all the positions in `at` range where a `Point` can be placed.\n *\n * By default, moves forward by individual offsets at a time, but\n * the `unit` option can be used to to move by character, word, line, or block.\n *\n * The `reverse` option can be used to change iteration direction.\n *\n * Note: By default void nodes are treated as a single point and iteration\n * will not happen inside their content unless you pass in true for the\n * `voids` option, then iteration will occur.\n */\n positions: (\n editor: Editor,\n options?: EditorPositionsOptions\n ) => Generator<Point, void, undefined>\n\n /**\n * Get the matching node in the branch of the document before a location.\n */\n previous: <T extends Node>(\n editor: Editor,\n options?: EditorPreviousOptions<T>\n ) => NodeEntry<T> | undefined\n\n /**\n * Get a range of a location.\n */\n range: (editor: Editor, at: Location, to?: Location) => Range\n\n /**\n * Create a mutable ref for a `Range` object, which will stay in sync as new\n * operations are applied to the editor.\n */\n rangeRef: (\n editor: Editor,\n range: Range,\n options?: EditorRangeRefOptions\n ) => RangeRef\n\n /**\n * Get the set of currently tracked range refs of the editor.\n */\n rangeRefs: (editor: Editor) => Set<RangeRef>\n\n /**\n * Remove a custom property from all of the leaf text nodes in the current\n * selection.\n *\n * If the selection is currently collapsed, the removal will be stored on\n * `editor.marks` and applied to the text inserted next.\n */\n removeMark: (editor: Editor, key: string) => void\n\n /**\n * Manually set if the editor should currently be normalizing.\n *\n * Note: Using this incorrectly can leave the editor in an invalid state.\n *\n */\n setNormalizing: (editor: Editor, isNormalizing: boolean) => void\n\n /**\n * Get the start point of a location.\n */\n start: (editor: Editor, at: Location) => Point\n\n /**\n * Get the text string content of a location.\n *\n * Note: by default the text of void nodes is considered to be an empty\n * string, regardless of content, unless you pass in true for the voids option\n */\n string: (\n editor: Editor,\n at: Location,\n options?: EditorStringOptions\n ) => string\n\n /**\n * Convert a range into a non-hanging one.\n */\n unhangRange: (\n editor: Editor,\n range: Range,\n options?: EditorUnhangRangeOptions\n ) => Range\n\n /**\n * Match a void node in the current branch of the editor.\n */\n void: (\n editor: Editor,\n options?: EditorVoidOptions\n ) => NodeEntry<Element> | undefined\n\n /**\n * Call a function, deferring normalization until after it completes.\n */\n withoutNormalizing: (editor: Editor, fn: () => void) => void\n}\n\n// eslint-disable-next-line no-redeclare\nexport const Editor: EditorInterface = {\n above(editor, options) {\n return editor.above(options)\n },\n\n addMark(editor, key, value) {\n editor.addMark(key, value)\n },\n\n after(editor, at, options) {\n return editor.after(at, options)\n },\n\n before(editor, at, options) {\n return editor.before(at, options)\n },\n\n deleteBackward(editor, options = {}) {\n const { unit = 'character' } = options\n editor.deleteBackward(unit)\n },\n\n deleteForward(editor, options = {}) {\n const { unit = 'character' } = options\n editor.deleteForward(unit)\n },\n\n deleteFragment(editor, options) {\n editor.deleteFragment(options)\n },\n\n edges(editor, at) {\n return editor.edges(at)\n },\n\n elementReadOnly(editor: Editor, options: EditorElementReadOnlyOptions = {}) {\n return editor.elementReadOnly(options)\n },\n\n end(editor, at) {\n return editor.end(at)\n },\n\n first(editor, at) {\n return editor.first(at)\n },\n\n fragment(editor, at) {\n return editor.fragment(at)\n },\n\n hasBlocks(editor, element) {\n return editor.hasBlocks(element)\n },\n\n hasInlines(editor, element) {\n return editor.hasInlines(element)\n },\n\n hasPath(editor, path) {\n return editor.hasPath(path)\n },\n\n hasTexts(editor, element) {\n return editor.hasTexts(element)\n },\n\n insertBreak(editor) {\n editor.insertBreak()\n },\n\n insertFragment(editor, fragment, options) {\n editor.insertFragment(fragment, options)\n },\n\n insertNode(editor, node) {\n editor.insertNode(node)\n },\n\n insertSoftBreak(editor) {\n editor.insertSoftBreak()\n },\n\n insertText(editor, text) {\n editor.insertText(text)\n },\n\n isBlock(editor, value) {\n return editor.isBlock(value)\n },\n\n isEdge(editor, point, at) {\n return editor.isEdge(point, at)\n },\n\n isEditor(value: any): value is Editor {\n return isEditor(value)\n },\n\n isElementReadOnly(editor, element) {\n return editor.isElementReadOnly(element)\n },\n\n isEmpty(editor, element) {\n return editor.isEmpty(element)\n },\n\n isEnd(editor, point, at) {\n return editor.isEnd(point, at)\n },\n\n isInline(editor, value) {\n return editor.isInline(value)\n },\n\n isNormalizing(editor) {\n return editor.isNormalizing()\n },\n\n isSelectable(editor: Editor, value: Element) {\n return editor.isSelectable(value)\n },\n\n isStart(editor, point, at) {\n return editor.isStart(point, at)\n },\n\n isVoid(editor, value) {\n return editor.isVoid(value)\n },\n\n last(editor, at) {\n return editor.last(at)\n },\n\n leaf(editor, at, options) {\n return editor.leaf(at, options)\n },\n\n levels(editor, options) {\n return editor.levels(options)\n },\n\n marks(editor) {\n return editor.getMarks()\n },\n\n next<T extends Descendant>(\n editor: Editor,\n options?: EditorNextOptions<T>\n ): NodeEntry<T> | undefined {\n return editor.next(options)\n },\n\n node(editor, at, options) {\n return editor.node(at, options)\n },\n\n nodes(editor, options) {\n return editor.nodes(options)\n },\n\n normalize(editor, options) {\n editor.normalize(options)\n },\n\n parent(editor, at, options) {\n return editor.parent(at, options)\n },\n\n path(editor, at, options) {\n return editor.path(at, options)\n },\n\n pathRef(editor, path, options) {\n return editor.pathRef(path, options)\n },\n\n pathRefs(editor) {\n return editor.pathRefs()\n },\n\n point(editor, at, options) {\n return editor.point(at, options)\n },\n\n pointRef(editor, point, options) {\n return editor.pointRef(point, options)\n },\n\n pointRefs(editor) {\n return editor.pointRefs()\n },\n\n positions(editor, options) {\n return editor.positions(options)\n },\n\n previous(editor, options) {\n return editor.previous(options)\n },\n\n range(editor, at, to) {\n return editor.range(at, to)\n },\n\n rangeRef(editor, range, options) {\n return editor.rangeRef(range, options)\n },\n\n rangeRefs(editor) {\n return editor.rangeRefs()\n },\n\n removeMark(editor, key) {\n editor.removeMark(key)\n },\n\n setNormalizing(editor, isNormalizing) {\n editor.setNormalizing(isNormalizing)\n },\n\n start(editor, at) {\n return editor.start(at)\n },\n\n string(editor, at, options) {\n return editor.string(at, options)\n },\n\n unhangRange(editor, range, options) {\n return editor.unhangRange(range, options)\n },\n\n void(editor, options) {\n return editor.void(options)\n },\n\n withoutNormalizing(editor, fn: () => void) {\n editor.withoutNormalizing(fn)\n },\n}\n\n/**\n * A helper type for narrowing matched nodes with a predicate.\n */\n\nexport type NodeMatch<T extends Node> =\n | ((node: Node, path: Path) => node is T)\n | ((node: Node, path: Path) => boolean)\n\nexport type PropsCompare = (prop: Partial<Node>, node: Partial<Node>) => boolean\nexport type PropsMerge = (prop: Partial<Node>, node: Partial<Node>) => object\n","import { Path, Point, Range } from '..'\n\n/**\n * The `Location` interface is a union of the ways to refer to a specific\n * location in a Slate document: paths, points or ranges.\n *\n * Methods will often accept a `Location` instead of requiring only a `Path`,\n * `Point` or `Range`. This eliminates the need for developers to manage\n * converting between the different interfaces in their own code base.\n */\n\nexport type Location = Path | Point | Range\n\nexport interface LocationInterface {\n /**\n * Check if a value implements the `Location` interface.\n */\n isLocation: (value: any) => value is Location\n}\n\n// eslint-disable-next-line no-redeclare\nexport const Location: LocationInterface = {\n isLocation(value: any): value is Location {\n return Path.isPath(value) || Point.isPoint(value) || Range.isRange(value)\n },\n}\n\n/**\n * The `Span` interface is a low-level way to refer to locations in nodes\n * without using `Point` which requires leaf text nodes to be present.\n */\n\nexport type Span = [Path, Path]\n\nexport interface SpanInterface {\n /**\n * Check if a value implements the `Span` interface.\n */\n isSpan: (value: any) => value is Span\n}\n\n// eslint-disable-next-line no-redeclare\nexport const Span: SpanInterface = {\n isSpan(value: any): value is Span {\n return (\n Array.isArray(value) && value.length === 2 && value.every(Path.isPath)\n )\n },\n}\n","import { isPlainObject } from 'is-plain-object'\nimport { produce } from 'immer'\nimport { ExtendedType, Operation, Path } from '..'\nimport { TextDirection } from '../types/types'\n\n/**\n * `Point` objects refer to a specific location in a text node in a Slate\n * document. Its path refers to the location of the node in the tree, and its\n * offset refers to the distance into the node's string of text. Points can\n * only refer to `Text` nodes.\n */\n\nexport interface BasePoint {\n path: Path\n offset: number\n}\n\nexport type Point = ExtendedType<'Point', BasePoint>\n\nexport interface PointTransformOptions {\n affinity?: TextDirection | null\n}\n\nexport interface PointInterface {\n /**\n * Compare a point to another, returning an integer indicating whether the\n * point was before, at, or after the other.\n */\n compare: (point: Point, another: Point) => -1 | 0 | 1\n\n /**\n * Check if a point is after another.\n */\n isAfter: (point: Point, another: Point) => boolean\n\n /**\n * Check if a point is before another.\n */\n isBefore: (point: Point, another: Point) => boolean\n\n /**\n * Check if a point is exactly equal to another.\n */\n equals: (point: Point, another: Point) => boolean\n\n /**\n * Check if a value implements the `Point` interface.\n */\n isPoint: (value: any) => value is Point\n\n /**\n * Transform a point by an operation.\n */\n transform: (\n point: Point,\n op: Operation,\n options?: PointTransformOptions\n ) => Point | null\n}\n\n// eslint-disable-next-line no-redeclare\nexport const Point: PointInterface = {\n compare(point: Point, another: Point): -1 | 0 | 1 {\n const result = Path.compare(point.path, another.path)\n\n if (result === 0) {\n if (point.offset < another.offset) return -1\n if (point.offset > another.offset) return 1\n return 0\n }\n\n return result\n },\n\n isAfter(point: Point, another: Point): boolean {\n return Point.compare(point, another) === 1\n },\n\n isBefore(point: Point, another: Point): boolean {\n return Point.compare(point, another) === -1\n },\n\n equals(point: Point, another: Point): boolean {\n // PERF: ensure the offsets are equal first since they are cheaper to check.\n return (\n point.offset === another.offset && Path.equals(point.path, another.path)\n )\n },\n\n isPoint(value: any): value is Point {\n return (\n isPlainObject(value) &&\n typeof value.offset === 'number' &&\n Path.isPath(value.path)\n )\n },\n\n transform(\n point: Point | null,\n op: Operation,\n options: PointTransformOptions = {}\n ): Point | null {\n return produce(point, p => {\n if (p === null) {\n return null\n }\n const { affinity = 'forward' } = options\n const { path, offset } = p\n\n switch (op.type) {\n case 'insert_node':\n case 'move_node': {\n p.path = Path.transform(path, op, options)!\n break\n }\n\n case 'insert_text': {\n if (\n Path.equals(op.path, path) &&\n (op.offset < offset ||\n (op.offset === offset && affinity === 'forward'))\n ) {\n p.offset += op.text.length\n }\n\n break\n }\n\n case 'merge_node': {\n if (Path.equals(op.path, path)) {\n p.offset += op.position\n }\n\n p.path = Path.transform(path, op, options)!\n break\n }\n\n case 'remove_text': {\n if (Path.equals(op.path, path) && op.offset <= offset) {\n p.offset -= Math.min(offset - op.offset, op.text.length)\n }\n\n break\n }\n\n case 'remove_node': {\n if (Path.equals(op.path, path) || Path.isAncestor(op.path, path)) {\n return null\n }\n\n p.path = Path.transform(path, op, options)!\n break\n }\n\n case 'split_node': {\n if (Path.equals(op.path, path)) {\n if (op.position === offset && affinity == null) {\n return null\n } else if (\n op.position < offset ||\n (op.position === offset && affinity === 'forward')\n ) {\n p.offset -= op.position\n\n p.path = Path.transform(path, op, {\n ...options,\n affinity: 'forward',\n })!\n }\n } else {\n p.path = Path.transform(path, op, options)!\n }\n\n break\n }\n }\n })\n },\n}\n\n/**\n * `PointEntry` objects are returned when iterating over `Point` objects that\n * belong to a range.\n */\n\nexport type PointEntry = [Point, 'anchor' | 'focus']\n","export type Scrubber = (key: string, value: unknown) => unknown\n\nexport interface ScrubberInterface {\n setScrubber(scrubber: Scrubber | undefined): void\n stringify(value: any): string\n}\n\nlet _scrubber: Scrubber | undefined = undefined\n\n/**\n * This interface implements a stringify() function, which is used by Slate\n * internally when generating exceptions containing end user data. Developers\n * using Slate may call Scrubber.setScrubber() to alter the behavior of this\n * stringify() function.\n *\n * For example, to prevent the cleartext logging of 'text' fields within Nodes:\n *\n * import { Scrubber } from 'slate';\n * Scrubber.setScrubber((key, val) => {\n * if (key === 'text') return '...scrubbed...'\n * return val\n * });\n *\n */\n// eslint-disable-next-line no-redeclare\nexport const Scrubber: ScrubberInterface = {\n setScrubber(scrubber: Scrubber | undefined): void {\n _scrubber = scrubber\n },\n\n stringify(value: any): string {\n return JSON.stringify(value, _scrubber)\n },\n}\n","import { isPlainObject } from 'is-plain-object'\nimport { Range } from '..'\nimport { ExtendedType } from '../types/custom-types'\nimport { isDeepEqual } from '../utils/deep-equal'\n\n/**\n * `Text` objects represent the nodes that contain the actual text content of a\n * Slate document along with any formatting properties. They are always leaf\n * nodes in the document tree as they cannot contain any children.\n */\n\nexport interface BaseText {\n text: string\n}\n\nexport type Text = ExtendedType<'Text', BaseText>\n\nexport interface TextEqualsOptions {\n loose?: boolean\n}\n\nexport interface TextInterface {\n /**\n * Check if two text nodes are equal.\n *\n * When loose is set, the text is not compared. This is\n * used to check whether sibling text nodes can be merged.\n */\n equals: (text: Text, another: Text, options?: TextEqualsOptions) => boolean\n\n /**\n * Check if a value implements the `Text` interface.\n */\n isText: (value: any) => value is Text\n\n /**\n * Check if a value is a list of `Text` objects.\n */\n isTextList: (value: any) => value is Text[]\n\n /**\n * Check if some props are a partial of Text.\n */\n isTextProps: (props: any) => props is Partial<Text>\n\n /**\n * Check if an text matches set of properties.\n *\n * Note: this is for matching custom properties, and it does not ensure that\n * the `text` property are two nodes equal.\n */\n matches: (text: Text, props: Partial<Text>) => boolean\n\n /**\n * Get the leaves for a text node given decorations.\n */\n decorations: (node: Text, decorations: Range[]) => Text[]\n}\n\n// eslint-disable-next-line no-redeclare\nexport const Text: TextInterface = {\n equals(text: Text, another: Text, options: TextEqualsOptions = {}): boolean {\n const { loose = false } = options\n\n function omitText(obj: Record<any, any>) {\n const { text, ...rest } = obj\n\n return rest\n }\n\n return isDeepEqual(\n loose ? omitText(text) : text,\n loose ? omitText(another) : another\n )\n },\n\n isText(value: any): value is Text {\n return isPlainObject(value) && typeof value.text === 'string'\n },\n\n isTextList(value: any): value is Text[] {\n return Array.isArray(value) && value.every(val => Text.isText(val))\n },\n\n isTextProps(props: any): props is Partial<Text> {\n return (props as Partial<Text>).text !== undefined\n },\n\n matches(text: Text, props: Partial<Text>): boolean {\n for (const key in props) {\n if (key === 'text') {\n continue\n }\n\n if (!text.hasOwnProperty(key) || text[key] !== props[key]) {\n return false\n }\n }\n\n return true\n },\n\n decorations(node: Text, decorations: Range[]): Text[] {\n let leaves: Text[] = [{ ...node }]\n\n for (const dec of decorations) {\n const { anchor, focus, ...rest } = dec\n const [start, end] = Range.edges(dec)\n const next = []\n let leafEnd = 0\n const decorationStart = start.offset\n const decorationEnd = end.offset\n\n for (const leaf of leaves) {\n const { length } = leaf.text\n const leafStart = leafEnd\n leafEnd += length\n\n // If the range encompasses the entire leaf, add the range.\n if (decorationStart <= leafStart && leafEnd <= decorationEnd) {\n Object.assign(leaf, rest)\n next.push(leaf)\n continue\n }\n\n // If the range expanded and match the leaf, or starts after, or ends before it, continue.\n if (\n (decorationStart !== decorationEnd &&\n (decorationStart === leafEnd || decorationEnd === leafStart)) ||\n decorationStart > leafEnd ||\n decorationEnd < leafStart ||\n (decorationEnd === leafStart && leafStart !== 0)\n ) {\n next.push(leaf)\n continue\n }\n\n // Otherwise we need to split the leaf, at the start, end, or both,\n // and add the range to the middle intersecting section. Do the end\n // split first since we don't need to update the offset that way.\n let middle = leaf\n let before\n let after\n\n if (decorationEnd < leafEnd) {\n const off = decorationEnd - leafStart\n after = { ...middle, text: middle.text.slice(off) }\n middle = { ...middle, text: middle.text.slice(0, off) }\n }\n\n if (decorationStart > leafStart) {\n const off = decorationStart - leafStart\n before = { ...middle, text: middle.text.slice(0, off) }\n middle = { ...middle, text: middle.text.slice(off) }\n }\n\n Object.assign(middle, rest)\n\n if (before) {\n next.push(before)\n }\n\n next.push(middle)\n\n if (after) {\n next.push(after)\n }\n }\n\n leaves = next\n }\n\n return leaves\n },\n}\n","import { Editor, Location } from '../interfaces'\n\n/**\n * Get the default location to insert content into the editor.\n * By default, use the selection as the target location. But if there is\n * no selection, insert at the end of the document since that is such a\n * common use case when inserting from a non-selected state.\n */\nexport const getDefaultInsertLocation = (editor: Editor): Location => {\n if (editor.selection) {\n return editor.selection\n } else if (editor.children.length > 0) {\n return Editor.end(editor, [])\n } else {\n return [0]\n }\n}\n","import { Editor } from '../interfaces/editor'\nimport { Path } from '../interfaces/path'\nimport { Node } from '../interfaces/node'\n\nexport const matchPath = (\n editor: Editor,\n path: Path\n): ((node: Node) => boolean) => {\n const [node] = Editor.node(editor, path)\n return n => n === node\n}\n","// Character (grapheme cluster) boundaries are determined according to\n// the default grapheme cluster boundary specification, extended grapheme clusters variant[1].\n//\n// References:\n//\n// [1] https://www.unicode.org/reports/tr29/#Default_Grapheme_Cluster_Table\n// [2] https://www.unicode.org/Public/UCD/latest/ucd/auxiliary/GraphemeBreakProperty.txt\n// [3] https://www.unicode.org/Public/UCD/latest/ucd/auxiliary/GraphemeBreakTest.html\n// [4] https://www.unicode.org/Public/UCD/latest/ucd/auxiliary/GraphemeBreakTest.txt\n\n/**\n * Get the distance to the end of the first character in a string of text.\n */\n\nexport const getCharacterDistance = (str: string, isRTL = false): number => {\n const isLTR = !isRTL\n const codepoints = isRTL ? codepointsIteratorRTL(str) : str\n\n let left: CodepointType = CodepointType.None\n let right: CodepointType = CodepointType.None\n let distance = 0\n // Evaluation of these conditions are deferred.\n let gb11: boolean | null = null // Is GB11 applicable?\n let gb12Or13: boolean | null = null // Is GB12 or GB13 applicable?\n\n for (const char of codepoints) {\n const code = char.codePointAt(0)\n if (!code) break\n\n const type = getCodepointType(char, code)\n ;[left, right] = isLTR ? [right, type] : [type, left]\n\n if (\n intersects(left, CodepointType.ZWJ) &&\n intersects(right, CodepointType.ExtPict)\n ) {\n if (isLTR) {\n gb11 = endsWithEmojiZWJ(str.substring(0, distance))\n } else {\n gb11 = endsWithEmojiZWJ(str.substring(0, str.length - distance))\n }\n if (!gb11) break\n }\n\n if (\n intersects(left, CodepointType.RI) &&\n intersects(right, CodepointType.RI)\n ) {\n if (gb12Or13 !== null) {\n gb12Or13 = !gb12Or13\n } else {\n if (isLTR) {\n gb12Or13 = true\n } else {\n gb12Or13 = endsWithOddNumberOfRIs(\n str.substring(0, str.length - distance)\n )\n }\n }\n if (!gb12Or13) break\n }\n\n if (\n left !== CodepointType.None &&\n right !== CodepointType.None &&\n isBoundaryPair(left, right)\n ) {\n break\n }\n\n distance += char.length\n }\n\n return distance || 1\n}\n\nconst SPACE = /\\s/\nconst PUNCTUATION = /[\\u0021-\\u0023\\u0025-\\u002A\\u002C-\\u002F\\u003A\\u003B\\u003F\\u0040\\u005B-\\u005D\\u005F\\u007B\\u007D\\u00A1\\u00A7\\u00AB\\u00B6\\u00B7\\u00BB\\u00BF\\u037E\\u0387\\u055A-\\u055F\\u0589\\u058A\\u05BE\\u05C0\\u05C3\\u05C6\\u05F3\\u05F4\\u0609\\u060A\\u060C\\u060D\\u061B\\u061E\\u061F\\u066A-\\u066D\\u06D4\\u0700-\\u070D\\u07F7-\\u07F9\\u0830-\\u083E\\u085E\\u0964\\u0965\\u0970\\u0AF0\\u0DF4\\u0E4F\\u0E5A\\u0E5B\\u0F04-\\u0F12\\u0F14\\u0F3A-\\u0F3D\\u0F85\\u0FD0-\\u0FD4\\u0FD9\\u0FDA\\u104A-\\u104F\\u10FB\\u1360-\\u1368\\u1400\\u166D\\u166E\\u169B\\u169C\\u16EB-\\u16ED\\u1735\\u1736\\u17D4-\\u17D6\\u17D8-\\u17DA\\u1800-\\u180A\\u1944\\u1945\\u1A1E\\u1A1F\\u1AA0-\\u1AA6\\u1AA8-\\u1AAD\\u1B5A-\\u1B60\\u1BFC-\\u1BFF\\u1C3B-\\u1C3F\\u1C7E\\u1C7F\\u1CC0-\\u1CC7\\u1CD3\\u2010-\\u2027\\u2030-\\u2043\\u2045-\\u2051\\u2053-\\u205E\\u207D\\u207E\\u208D\\u208E\\u2329\\u232A\\u2768-\\u2775\\u27C5\\u27C6\\u27E6-\\u27EF\\u2983-\\u2998\\u29D8-\\u29DB\\u29FC\\u29FD\\u2CF9-\\u2CFC\\u2CFE\\u2CFF\\u2D70\\u2E00-\\u2E2E\\u2E30-\\u2E3B\\u3001-\\u3003\\u3008-\\u3011\\u3014-\\u301F\\u3030\\u303D\\u30A0\\u30FB\\uA4FE\\uA4FF\\uA60D-\\uA60F\\uA673\\uA67E\\uA6F2-\\uA6F7\\uA874-\\uA877\\uA8CE\\uA8CF\\uA8F8-\\uA8FA\\uA92E\\uA92F\\uA95F\\uA9C1-\\uA9CD\\uA9DE\\uA9DF\\uAA5C-\\uAA5F\\uAADE\\uAADF\\uAAF0\\uAAF1\\uABEB\\uFD3E\\uFD3F\\uFE10-\\uFE19\\uFE30-\\uFE52\\uFE54-\\uFE61\\uFE63\\uFE68\\uFE6A\\uFE6B\\uFF01-\\uFF03\\uFF05-\\uFF0A\\uFF0C-\\uFF0F\\uFF1A\\uFF1B\\uFF1F\\uFF20\\uFF3B-\\uFF3D\\uFF3F\\uFF5B\\uFF5D\\uFF5F-\\uFF65]/\nconst CHAMELEON = /['\\u2018\\u2019]/\n\n/**\n * Get the distance to the end of the first word in a string of text.\n */\n\nexport const getWordDistance = (text: string, isRTL = false): number => {\n let dist = 0\n let started = false\n\n while (text.length > 0) {\n const charDist = getCharacterDistance(text, isRTL)\n const [char, remaining] = splitByCharacterDistance(text, charDist, isRTL)\n\n if (isWordCharacter(char, remaining, isRTL)) {\n started = true\n dist += charDist\n } else if (!started) {\n dist += charDist\n } else {\n break\n }\n\n text = remaining\n }\n\n return dist\n}\n\n/**\n * Split a string in two parts at a given distance starting from the end when\n * `isRTL` is set to `true`.\n */\n\nexport const splitByCharacterDistance = (\n str: string,\n dist: number,\n isRTL?: boolean\n): [string, string] => {\n if (isRTL) {\n const at = str.length - dist\n return [str.slice(at, str.length), str.slice(0, at)]\n }\n\n return [str.slice(0, dist), str.slice(dist)]\n}\n\n/**\n * Check if a character is a word character. The `remaining` argument is used\n * because sometimes you must read subsequent characters to truly determine it.\n */\n\nconst isWordCharacter = (\n char: string,\n remaining: string,\n isRTL = false\n): boolean => {\n if (SPACE.test(char)) {\n return false\n }\n\n // Chameleons count as word characters as long as they're in a word, so\n // recurse to see if the next one is a word character or not.\n if (CHAMELEON.test(char)) {\n const charDist = getCharacterDistance(remaining, isRTL)\n const [nextChar, nextRemaining] = splitByCharacterDistance(\n remaining,\n charDist,\n isRTL\n )\n\n if (isWordCharacter(nextChar, nextRemaining, isRTL)) {\n return true\n }\n }\n\n if (PUNCTUATION.test(char)) {\n return false\n }\n\n return true\n}\n\n/**\n * Iterate on codepoints from right to left.\n */\n\nexport const codepointsIteratorRTL = function*(str: string) {\n const end = str.length - 1\n\n for (let i = 0; i < str.length; i++) {\n const char1 = str.charAt(end - i)\n\n if (isLowSurrogate(char1.charCodeAt(0))) {\n const char2 = str.charAt(end - i - 1)\n if (isHighSurrogate(char2.charCodeAt(0))) {\n yield char2 + char1\n\n i++\n continue\n }\n }\n\n yield char1\n }\n}\n\n/**\n * Is `charCode` a high surrogate.\n *\n * https://en.wikipedia.org/wiki/Universal_Character_Set_characters#Surrogates\n */\n\nconst isHighSurrogate = (charCode: number) => {\n return charCode >= 0xd800 && charCode <= 0xdbff\n}\n\n/**\n * Is `charCode` a low surrogate.\n *\n * https://en.wikipedia.org/wiki/Universal_Character_Set_characters#Surrogates\n */\n\nconst isLowSurrogate = (charCode: number) => {\n return charCode >= 0xdc00 && charCode <= 0xdfff\n}\n\nenum CodepointType {\n None = 0,\n Extend = 1 << 0,\n ZWJ = 1 << 1,\n RI = 1 << 2,\n Prepend = 1 << 3,\n SpacingMark = 1 << 4,\n L = 1 << 5,\n V = 1 << 6,\n T = 1 << 7,\n LV = 1 << 8,\n LVT = 1 << 9,\n ExtPict = 1 << 10,\n Any = 1 << 11,\n}\n\nconst reExtend = /^[\\p{Gr_Ext}\\p{EMod}]$/u\nconst rePrepend = /^[\\u0600-\\u0605\\u06DD\\u070F\\u0890-\\u0891\\u08E2\\u0D4E\\u{110BD}\\u{110CD}\\u{111C2}-\\u{111C3}\\u{1193F}\\u{11941}\\u{11A3A}\\u{11A84}-\\u{11A89}\\u{11D46}]$/u\nconst reSpacingMark = /^[\\u0903\\u093B\\u093E-\\u0940\\u0949-\\u094C\\u094E-\\u094F\\u0982-\\u0983\\u09BF-\\u09C0\\u09C7-\\u09C8\\u09CB-\\u09CC\\u0A03\\u0A3E-\\u0A40\\u0A83\\u0ABE-\\u0AC0\\u0AC9\\u0ACB-\\u0ACC\\u0B02-\\u0B03\\u0B40\\u0B47-\\u0B48\\u0B4B-\\u0B4C\\u0BBF\\u0BC1-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCC\\u0C01-\\u0C03\\u0C41-\\u0C44\\u0C82-\\u0C83\\u0CBE\\u0CC0-\\u0CC1\\u0CC3-\\u0CC4\\u0CC7-\\u0CC8\\u0CCA-\\u0CCB\\u0D02-\\u0D03\\u0D3F-\\u0D40\\u0D46-\\u0D48\\u0D4A-\\u0D4C\\u0D82-\\u0D83\\u0DD0-\\u0DD1\\u0DD8-\\u0DDE\\u0DF2-\\u0DF3\\u0E33\\u0EB3\\u0F3E-\\u0F3F\\u0F7F\\u1031\\u103B-\\u103C\\u1056-\\u1057\\u1084\\u1715\\u1734\\u17B6\\u17BE-\\u17C5\\u17C7-\\u17C8\\u1923-\\u1926\\u1929-\\u192B\\u1930-\\u1931\\u1933-\\u1938\\u1A19-\\u1A1A\\u1A55\\u1A57\\u1A6D-\\u1A72\\u1B04\\u1B3B\\u1B3D-\\u1B41\\u1B43-\\u1B44\\u1B82\\u1BA1\\u1BA6-\\u1BA7\\u1BAA\\u1BE7\\u1BEA-\\u1BEC\\u1BEE\\u1BF2-\\u1BF3\\u1C24-\\u1C2B\\u1C34-\\u1C35\\u1CE1\\u1CF7\\uA823-\\uA824\\uA827\\uA880-\\uA881\\uA8B4-\\uA8C3\\uA952-\\uA953\\uA983\\uA9B4-\\uA9B5\\uA9BA-\\uA9BB\\uA9BE-\\uA9C0\\uAA2F-\\uAA30\\uAA33-\\uAA34\\uAA4D\\uAAEB\\uAAEE-\\uAAEF\\uAAF5\\uABE3-\\uABE4\\uABE6-\\uABE7\\uABE9-\\uABEA\\uABEC\\u{11000}\\u{11002}\\u{11082}\\u{110B0}-\\u{110B2}\\u{110B7}-\\u{110B8}\\u{1112C}\\u{11145}-\\u{11146}\\u{11182}\\u{111B3}-\\u{111B5}\\u{111BF}-\\u{111C0}\\u{111CE}\\u{1122C}-\\u{1122E}\\u{11232}-\\u{11233}\\u{11235}\\u{112E0}-\\u{112E2}\\u{11302}-\\u{11303}\\u{1133F}\\u{11341}-\\u{11344}\\u{11347}-\\u{11348}\\u{1134B}-\\u{1134D}\\u{11362}-\\u{11363}\\u{11435}-\\u{11437}\\u{11440}-\\u{11441}\\u{11445}\\u{114B1}-\\u{114B2}\\u{114B9}\\u{114BB}-\\u{114BC}\\u{114BE}\\u{114C1}\\u{115B0}-\\u{115B1}\\u{115B8}-\\u{115BB}\\u{115BE}\\u{11630}-\\u{11632}\\u{1163B}-\\u{1163C}\\u{1163E}\\u{116AC}\\u{116AE}-\\u{116AF}\\u{116B6}\\u{11726}\\u{1182C}-\\u{1182E}\\u{11838}\\u{11931}-\\u{11935}\\u{11937}-\\u{11938}\\u{1193D}\\u{11940}\\u{11942}\\u{119D1}-\\u{119D3}\\u{119DC}-\\u{119DF}\\u{119E4}\\u{11A39}\\u{11A57}-\\u{11A58}\\u{11A97}\\u{11C2F}\\u{11C3E}\\u{11CA9}\\u{11CB1}\\u{11CB4}\\u{11D8A}-\\u{11D8E}\\u{11D93}-\\u{11D94}\\u{11D96}\\u{11EF5}-\\u{11EF6}\\u{16F51}-\\u{16F87}\\u{16FF0}-\\u{16FF1}\\u{1D166}\\u{1D16D}]$/u\nconst reL = /^[\\u1100-\\u115F\\uA960-\\uA97C]$/u\nconst reV = /^[\\u1160-\\u11A7\\uD7B0-\\uD7C6]$/u\nconst reT = /^[\\u11A8-\\u11FF\\uD7CB-\\uD7FB]$/u\nconst reLV = /^[\\uAC00\\uAC1C\\uAC38\\uAC54\\uAC70\\uAC8C\\uACA8\\uACC4\\uACE0\\uACFC\\uAD18\\uAD34\\uAD50\\uAD6C\\uAD88\\uADA4\\uADC0\\uADDC\\uADF8\\uAE14\\uAE30\\uAE4C\\uAE68\\uAE84\\uAEA0\\uAEBC\\uAED8\\uAEF4\\uAF10\\uAF2C\\uAF48\\uAF64\\uAF80\\uAF9C\\uAFB8\\uAFD4\\uAFF0\\uB00C\\uB028\\uB044\\uB060\\uB07C\\uB098\\uB0B4\\uB0D0\\uB0EC\\uB108\\uB124\\uB140\\uB15C\\uB178\\uB194\\uB1B0\\uB1CC\\uB1E8\\uB204\\uB220\\uB23C\\uB258\\uB274\\uB290\\uB2AC\\uB2C8\\uB2E4\\uB300\\uB31C\\uB338\\uB354\\uB370\\uB38C\\uB3A8\\uB3C4\\uB3E0\\uB3FC\\uB418\\uB434\\uB450\\uB46C\\uB488\\uB4A4\\uB4C0\\uB4DC\\uB4F8\\uB514\\uB530\\uB54C\\uB568\\uB584\\uB5A0\\uB5BC\\uB5D8\\uB5F4\\uB610\\uB62C\\uB648\\uB664\\uB680\\uB69C\\uB6B8\\uB6D4\\uB6F0\\uB70C\\uB728\\uB744\\uB760\\uB77C\\uB798\\uB7B4\\uB7D0\\uB7EC\\uB808\\uB824\\uB840\\uB85C\\uB878\\uB894\\uB8B0\\uB8CC\\uB8E8\\uB904\\uB920\\uB93C\\uB958\\uB974\\uB990\\uB9AC\\uB9C8\\uB9E4\\uBA00\\uBA1C\\uBA38\\uBA54\\uBA70\\uBA8C\\uBAA8\\uBAC4\\uBAE0\\uBAFC\\uBB18\\uBB34\\uBB50\\uBB6C\\uBB88\\uBBA4\\uBBC0\\uBBDC\\uBBF8\\uBC14\\uBC30\\uBC4C\\uBC68\\uBC84\\uBCA0\\uBCBC\\uBCD8\\uBCF4\\uBD10\\uBD2C\\uBD48\\uBD64\\uBD80\\uBD9C\\uBDB8\\uBDD4\\uBDF0\\uBE0C\\uBE28\\uBE44\\uBE60\\uBE7C\\uBE98\\uBEB4\\uBED0\\uBEEC\\uBF08\\uBF24\\uBF40\\uBF5C\\uBF78\\uBF94\\uBFB0\\uBFCC\\uBFE8\\uC004\\uC020\\uC03C\\uC058\\uC074\\uC090\\uC0AC\\uC0C8\\uC0E4\\uC100\\uC11C\\uC138\\uC154\\uC170\\uC18C\\uC1A8\\uC1C4\\uC1E0\\uC1FC\\uC218\\uC234\\uC250\\uC26C\\uC288\\uC2A4\\uC2C0\\uC2DC\\uC2F8\\uC314\\uC330\\uC34C\\uC368\\uC384\\uC3A0\\uC3BC\\uC3D8\\uC3F4\\uC410\\uC42C\\uC448\\uC464\\uC480\\uC49C\\uC4B8\\uC4D4\\uC4F0\\uC50C\\uC528\\uC544\\uC560\\uC57C\\uC598\\uC5B4\\uC5D0\\uC5EC\\uC608\\uC624\\uC640\\uC65C\\uC678\\uC694\\uC6B0\\uC6CC\\uC6E8\\uC704\\uC720\\uC73C\\uC758\\uC774\\uC790\\uC7AC\\uC7C8\\uC7E4\\uC800\\uC81C\\uC838\\uC854\\uC870\\uC88C\\uC8A8\\uC8C4\\uC8E0\\uC8FC\\uC918\\uC934\\uC950\\uC96C\\uC988\\uC9A4\\uC9C0\\uC9DC\\uC9F8\\uCA14\\uCA30\\uCA4C\\uCA68\\uCA84\\uCAA0\\uCABC\\uCAD8\\uCAF4\\uCB10\\uCB2C\\uCB48\\uCB64\\uCB80\\uCB9C\\uCBB8\\uCBD4\\uCBF0\\uCC0C\\uCC28\\uCC44\\uCC60\\uCC7C\\uCC98\\uCCB4\\uCCD0\\uCCEC\\uCD08\\uCD24\\uCD40\\uCD5C\\uCD78\\uCD94\\uCDB0\\uCDCC\\uCDE8\\uCE04\\uCE20\\uCE3C\\uCE58\\uCE74\\uCE90\\uCEAC\\uCEC8\\uCEE4\\uCF00\\uCF1C\\uCF38\\uCF54\\uCF70\\uCF8C\\uCFA8\\uCFC4\\uCFE0\\uCFFC\\uD018\\uD034\\uD050\\uD06C\\uD088\\uD0A4\\uD0C0\\uD0DC\\uD0F8\\uD114\\uD130\\uD14C\\uD168\\uD184\\uD1A0\\uD1BC\\uD1D8\\uD1F4\\uD210\\uD22C\\uD248\\uD264\\uD280\\uD29C\\uD2B8\\uD2D4\\uD2F0\\uD30C\\uD328\\uD344\\uD360\\uD37C\\uD398\\uD3B4\\uD3D0\\uD3EC\\uD408\\uD424\\uD440\\uD45C\\uD478\\uD494\\uD4B0\\uD4CC\\uD4E8\\uD504\\uD520\\uD53C\\uD558\\uD574\\uD590\\uD5AC\\uD5C8\\uD5E4\\uD600\\uD61C\\uD638\\uD654\\uD670\\uD68C\\uD6A8\\uD6C4\\uD6E0\\uD6FC\\uD718\\uD734\\uD750\\uD76C\\uD788]$/u\nconst reLVT = /^[\\uAC01-\\uAC1B\\uAC1D-\\uAC37\\uAC39-\\uAC53\\uAC55-\\uAC6F\\uAC71-\\uAC8B\\uAC8D-\\uACA7\\uACA9-\\uACC3\\uACC5-\\uACDF\\uACE1-\\uACFB\\uACFD-\\uAD17\\uAD19-\\uAD33\\uAD35-\\uAD4F\\uAD51-\\uAD6B\\uAD6D-\\uAD87\\uAD89-\\uADA3\\uADA5-\\uADBF\\uADC1-\\uADDB\\uADDD-\\uADF7\\uADF9-\\uAE13\\uAE15-\\uAE2F\\uAE31-\\uAE4B\\uAE4D-\\uAE67\\uAE69-\\uAE83\\uAE85-\\uAE9F\\uAEA1-\\uAEBB\\uAEBD-\\uAED7\\uAED9-\\uAEF3\\uAEF5-\\uAF0F\\uAF11-\\uAF2B\\uAF2D-\\uAF47\\uAF49-\\uAF63\\uAF65-\\uAF7F\\uAF81-\\uAF9B\\uAF9D-\\uAFB7\\uAFB9-\\uAFD3\\uAFD5-\\uAFEF\\uAFF1-\\uB00B\\uB00D-\\uB027\\uB029-\\uB043\\uB045-\\uB05F\\uB061-\\uB07B\\uB07D-\\uB097\\uB099-\\uB0B3\\uB0B5-\\uB0CF\\uB0D1-\\uB0EB\\uB0ED-\\uB107\\uB109-\\uB123\\uB125-\\uB13F\\uB141-\\uB15B\\uB15D-\\uB177\\uB179-\\uB193\\uB195-\\uB1AF\\uB1B1-\\uB1CB\\uB1CD-\\uB1E7\\uB1E9-\\uB203\\uB205-\\uB21F\\uB221-\\uB23B\\uB23D-\\uB257\\uB259-\\uB273\\uB275-\\uB28F\\uB291-\\uB2AB\\uB2AD-\\uB2C7\\uB2C9-\\uB2E3\\uB2E5-\\uB2FF\\uB301-\\uB31B\\uB31D-\\uB337\\uB339-\\uB353\\uB355-\\uB36F\\uB371-\\uB38B\\uB38D-\\uB3A7\\uB3A9-\\uB3C3\\uB3C5-\\uB3DF\\uB3E1-\\uB3FB\\uB3FD-\\uB417\\uB419-\\uB433\\uB435-\\uB44F\\uB451-\\uB46B\\uB46D-\\uB487\\uB489-\\uB4A3\\uB4A5-\\uB4BF\\uB4C1-\\uB4DB\\uB4DD-\\uB4F7\\uB4F9-\\uB513\\uB515-\\uB52F\\uB531-\\uB54B\\uB54D-\\uB567\\uB569-\\uB583\\uB585-\\uB59F\\uB5A1-\\uB5BB\\uB5BD-\\uB5D7\\uB5D9-\\uB5F3\\uB5F5-\\uB60F\\uB611-\\uB62B\\uB62D-\\uB647\\uB649-\\uB663\\uB665-\\uB67F\\uB681-\\uB69B\\uB69D-\\uB6B7\\uB6B9-\\uB6D3\\uB6D5-\\uB6EF\\uB6F1-\\uB70B\\uB70D-\\uB727\\uB729-\\uB743\\uB745-\\uB75F\\uB761-\\uB77B\\uB77D-\\uB797\\uB799-\\uB7B3\\uB7B5-\\uB7CF\\uB7D1-\\uB7EB\\uB7ED-\\uB807\\uB809-\\uB823\\uB825-\\uB83F\\uB841-\\uB85B\\uB85D-\\uB877\\uB879-\\uB893\\uB895-\\uB8AF\\uB8B1-\\uB8CB\\uB8CD-\\uB8E7\\uB8E9-\\uB903\\uB905-\\uB91F\\uB921-\\uB93B\\uB93D-\\uB957\\uB959-\\uB973\\uB975-\\uB98F\\uB991-\\uB9AB\\uB9AD-\\uB9C7\\uB9C9-\\uB9E3\\uB9E5-\\uB9FF\\uBA01-\\uBA1B\\uBA1D-\\uBA37\\uBA39-\\uBA53\\uBA55-\\uBA6F\\uBA71-\\uBA8B\\uBA8D-\\uBAA7\\uBAA9-\\uBAC3\\uBAC5-\\uBADF\\uBAE1-\\uBAFB\\uBAFD-\\uBB17\\uBB19-\\uBB33\\uBB35-\\uBB4F\\uBB51-\\uBB6B\\uBB6D-\\uBB87\\uBB89-\\uBBA3\\uBBA5-\\uBBBF\\uBBC1-\\uBBDB\\uBBDD-\\uBBF7\\uBBF9-\\uBC13\\uBC15-\\uBC2F\\uBC31-\\uBC4B\\uBC4D-\\uBC67\\uBC69-\\uBC83\\uBC85-\\uBC9F\\uBCA1-\\uBCBB\\uBCBD-\\uBCD7\\uBCD9-\\uBCF3\\uBCF5-\\uBD0F\\uBD11-\\uBD2B\\uBD2D-\\uBD47\\uBD49-\\uBD63\\uBD65-\\uBD7F\\uBD81-\\uBD9B\\uBD9D-\\uBDB7\\uBDB9-\\uBDD3\\uBDD5-\\uBDEF\\uBDF1-\\uBE0B\\uBE0D-\\uBE27\\uBE29-\\uBE43\\uBE45-\\uBE5F\\uBE61-\\uBE7B\\uBE7D-\\uBE97\\uBE99-\\uBEB3\\uBEB5-\\uBECF\\uBED1-\\uBEEB\\uBEED-\\uBF07\\uBF09-\\uBF23\\uBF25-\\uBF3F\\uBF41-\\uBF5B\\uBF5D-\\uBF77\\uBF79-\\uBF93\\uBF95-\\uBFAF\\uBFB1-\\uBFCB\\uBFCD-\\uBFE7\\uBFE9-\\uC003\\uC005-\\uC01F\\uC021-\\uC03B\\uC03D-\\uC057\\uC059-\\uC073\\uC075-\\uC08F\\uC091-\\uC0AB\\uC0AD-\\uC0C7\\uC0C9-\\uC0E3\\uC0E5-\\uC0FF\\uC101-\\uC11B\\uC11D-\\uC137\\uC139-\\uC153\\uC155-\\uC16F\\uC171-\\uC18B\\uC18D-\\uC1A7\\uC1A9-\\uC1C3\\uC1C5-\\uC1DF\\uC1E1-\\uC1FB\\uC1FD-\\uC217\\uC219-\\uC233\\uC235-\\uC24F\\uC251-\\uC26B\\uC26D-\\uC287\\uC289-\\uC2A3\\uC2A5-\\uC2BF\\uC2C1-\\uC2DB\\uC2DD-\\uC2F7\\uC2F9-\\uC313\\uC315-\\uC32F\\uC331-\\uC34B\\uC34D-\\uC367\\uC369-\\uC383\\uC385-\\uC39F\\uC3A1-\\uC3BB\\uC3BD-\\uC3D7\\uC3D9-\\uC3F3\\uC3F5-\\uC40F\\uC411-\\uC42B\\uC42D-\\uC447\\uC449-\\uC463\\uC465-\\uC47F\\uC481-\\uC49B\\uC49D-\\uC4B7\\uC4B9-\\uC4D3\\uC4D5-\\uC4EF\\uC4F1-\\uC50B\\uC50D-\\uC527\\uC529-\\uC543\\uC545-\\uC55F\\uC561-\\uC57B\\uC57D-\\uC597\\uC599-\\uC5B3\\uC5B5-\\uC5CF\\uC5D1-\\uC5EB\\uC5ED-\\uC607\\uC609-\\uC623\\uC625-\\uC63F\\uC641-\\uC65B\\uC65D-\\uC677\\uC679-\\uC693\\uC695-\\uC6AF\\uC6B1-\\uC6CB\\uC6CD-\\uC6E7\\uC6E9-\\uC703\\uC705-\\uC71F\\uC721-\\uC73B\\uC73D-\\uC757\\uC759-\\uC773\\uC775-\\uC78F\\uC791-\\uC7AB\\uC7AD-\\uC7C7\\uC7C9-\\uC7E3\\uC7E5-\\uC7FF\\uC801-\\uC81B\\uC81D-\\uC837\\uC839-\\uC853\\uC855-\\uC86F\\uC871-\\uC88B\\uC88D-\\uC8A7\\uC8A9-\\uC8C3\\uC8C5-\\uC8DF\\uC8E1-\\uC8FB\\uC8FD-\\uC917\\uC919-\\uC933\\uC935-\\uC94F\\uC951-\\uC96B\\uC96D-\\uC987\\uC989-\\uC9A3\\uC9A5-\\uC9BF\\uC9C1-\\uC9DB\\uC9DD-\\uC9F7\\uC9F9-\\uCA13\\uCA15-\\uCA2F\\uCA31-\\uCA4B\\uCA4D-\\uCA67\\uCA69-\\uCA83\\uCA85-\\uCA9F\\uCAA1-\\uCABB\\uCABD-\\uCAD7\\uCAD9-\\uCAF3\\uCAF5-\\uCB0F\\uCB11-\\uCB2B\\uCB2D-\\uCB47\\uCB49-\\uCB63\\uCB65-\\uCB7F\\uCB81-\\uCB9B\\uCB9D-\\uCBB7\\uCBB9-\\uCBD3\\uCBD5-\\uCBEF\\uCBF1-\\uCC0B\\uCC0D-\\uCC27\\uCC29-\\uCC43\\uCC45-\\uCC5F\\uCC61-\\uCC7B\\uCC7D-\\uCC97\\uCC99-\\uCCB3\\uCCB5-\\uCCCF\\uCCD1-\\uCCEB\\uCCED-\\uCD07\\uCD09-\\uCD23\\uCD25-\\uCD3F\\uCD41-\\uCD5B\\uCD5D-\\uCD77\\uCD79-\\uCD93\\uCD95-\\uCDAF\\uCDB1-\\uCDCB\\uCDCD-\\uCDE7\\uCDE9-\\uCE03\\uCE05-\\uCE1F\\uCE21-\\uCE3B\\uCE3D-\\uCE57\\uCE59-\\uCE73\\uCE75-\\uCE8F\\uCE91-\\uCEAB\\uCEAD-\\uCEC7\\uCEC9-\\uCEE3\\uCEE5-\\uCEFF\\uCF01-\\uCF1B\\uCF1D-\\uCF37\\uCF39-\\uCF53\\uCF55-\\uCF6F\\uCF71-\\uCF8B\\uCF8D-\\uCFA7\\uCFA9-\\uCFC3\\uCFC5-\\uCFDF\\uCFE1-\\uCFFB\\uCFFD-\\uD017\\uD019-\\uD033\\uD035-\\uD04F\\uD051-\\uD06B\\uD06D-\\uD087\\uD089-\\uD0A3\\uD0A5-\\uD0BF\\uD0C1-\\uD0DB\\uD0DD-\\uD0F7\\uD0F9-\\uD113\\uD115-\\uD12F\\uD131-\\uD14B\\uD14D-\\uD167\\uD169-\\uD183\\uD185-\\uD19F\\uD1A1-\\uD1BB\\uD1BD-\\uD1D7\\uD1D9-\\uD1F3\\uD1F5-\\uD20F\\uD211-\\uD22B\\uD22D-\\uD247\\uD249-\\uD263\\uD265-\\uD27F\\uD281-\\uD29B\\uD29D-\\uD2B7\\uD2B9-\\uD2D3\\uD2D5-\\uD2EF\\uD2F1-\\uD30B\\uD30D-\\uD327\\uD329-\\uD343\\uD345-\\uD35F\\uD361-\\uD37B\\uD37D-\\uD397\\uD399-\\uD3B3\\uD3B5-\\uD3CF\\uD3D1-\\uD3EB\\uD3ED-\\uD407\\uD409-\\uD423\\uD425-\\uD43F\\uD441-\\uD45B\\uD45D-\\uD477\\uD479-\\uD493\\uD495-\\uD4AF\\uD4B1-\\uD4CB\\uD4CD-\\uD4E7\\uD4E9-\\uD503\\uD505-\\uD51F\\uD521-\\uD53B\\uD53D-\\uD557\\uD559-\\uD573\\uD575-\\uD58F\\uD591-\\uD5AB\\uD5AD-\\uD5C7\\uD5C9-\\uD5E3\\uD5E5-\\uD5FF\\uD601-\\uD61B\\uD61D-\\uD637\\uD639-\\uD653\\uD655-\\uD66F\\uD671-\\uD68B\\uD68D-\\uD6A7\\uD6A9-\\uD6C3\\uD6C5-\\uD6DF\\uD6E1-\\uD6FB\\uD6FD-\\uD717\\uD719-\\uD733\\uD735-\\uD74F\\uD751-\\uD76B\\uD76D-\\uD787\\uD789-\\uD7A3]$/u\nconst reExtPict = /^\\p{ExtPict}$/u\n\nconst getCodepointType = (char: string, code: number): CodepointType => {\n let type = CodepointType.Any\n if (char.search(reExtend) !== -1) {\n type |= CodepointType.Extend\n }\n if (code === 0x200d) {\n type |= CodepointType.ZWJ\n }\n if (code >= 0x1f1e6 && code <= 0x1f1ff) {\n type |= CodepointType.RI\n }\n if (char.search(rePrepend) !== -1) {\n type |= CodepointType.Prepend\n }\n if (char.search(reSpacingMark) !== -1) {\n type |= CodepointType.SpacingMark\n }\n if (char.search(reL) !== -1) {\n type |= CodepointType.L\n }\n if (char.search(reV) !== -1) {\n type |= CodepointType.V\n }\n if (char.search(reT) !== -1) {\n type |= CodepointType.T\n }\n if (char.search(reLV) !== -1) {\n type |= CodepointType.LV\n }\n if (char.search(reLVT) !== -1) {\n type |= CodepointType.LVT\n }\n if (char.search(reExtPict) !== -1) {\n type |= CodepointType.ExtPict\n }\n\n return type\n}\n\nfunction intersects(x: CodepointType, y: CodepointType) {\n return (x & y) !== 0\n}\n\nconst NonBoundaryPairs: [CodepointType, CodepointType][] = [\n // GB6\n [\n CodepointType.L,\n CodepointType.L | CodepointType.V | CodepointType.LV | CodepointType.LVT,\n ],\n // GB7\n [CodepointType.LV | CodepointType.V, CodepointType.V | CodepointType.T],\n // GB8\n [CodepointType.LVT | CodepointType.T, CodepointType.T],\n // GB9\n [CodepointType.Any, CodepointType.Extend | CodepointType.ZWJ],\n // GB9a\n [CodepointType.Any, CodepointType.SpacingMark],\n // GB9b\n [CodepointType.Prepend, CodepointType.Any],\n // GB11\n [CodepointType.ZWJ, CodepointType.ExtPict],\n // GB12 and GB13\n [CodepointType.RI, CodepointType.RI],\n]\n\nfunction isBoundaryPair(left: CodepointType, right: CodepointType) {\n return (\n NonBoundaryPairs.findIndex(\n r => intersects(left, r[0]) && intersects(right, r[1])\n ) === -1\n )\n}\n\nconst endingEmojiZWJ = /\\p{ExtPict}[\\p{Gr_Ext}\\p{EMod}]*\\u200D$/u\nconst endsWithEmojiZWJ = (str: string): boolean => {\n return str.search(endingEmojiZWJ) !== -1\n}\n\nconst endingRIs = /\\p{RI}+$/gu\nconst endsWithOddNumberOfRIs = (str: string): boolean => {\n const match = str.match(endingRIs)\n if (match === null) {\n return false\n } else {\n // A RI is represented by a surrogate pair.\n const numRIs = match[0].length / 2\n return numRIs % 2 === 1\n }\n}\n","import { Editor, Location, Node, Path, Range, Transforms } from '../../index'\nimport { TextUnit } from '../../types/types'\nimport { getDefaultInsertLocation } from '../../utils'\n\nexport interface TextDeleteOptions {\n at?: Location\n distance?: number\n unit?: TextUnit\n reverse?: boolean\n hanging?: boolean\n voids?: boolean\n}\n\nexport interface TextInsertFragmentOptions {\n at?: Location\n hanging?: boolean\n voids?: boolean\n}\n\nexport interface TextInsertTextOptions {\n at?: Location\n voids?: boolean\n}\n\nexport interface TextTransforms {\n /**\n * Delete content in the editor.\n */\n delete: (editor: Editor, options?: TextDeleteOptions) => void\n\n /**\n * Insert a fragment in the editor\n * at the specified location or (if not defined) the current selection or (if not defined) the end of the document.\n */\n insertFragment: (\n editor: Editor,\n fragment: Node[],\n options?: TextInsertFragmentOptions\n ) => void\n\n /**\n * Insert a string of text in the editor\n * at the specified location or (if not defined) the current selection or (if not defined) the end of the document.\n */\n insertText: (\n editor: Editor,\n text: string,\n options?: TextInsertTextOptions\n ) => void\n}\n\n// eslint-disable-next-line no-redeclare\nexport const TextTransforms: TextTransforms = {\n delete(editor, options) {\n editor.delete(options)\n },\n insertFragment(editor, fragment, options) {\n editor.insertFragment(fragment, options)\n },\n insertText(\n editor: Editor,\n text: string,\n options: TextInsertTextOptions = {}\n ): void {\n Editor.withoutNormalizing(editor, () => {\n const { voids = false } = options\n let { at = getDefaultInsertLocation(editor) } = options\n\n if (Path.isPath(at)) {\n at = Editor.range(editor, at)\n }\n\n if (Range.isRange(at)) {\n if (Range.isCollapsed(at)) {\n at = at.anchor\n } else {\n const end = Range.end(at)\n if (!voids && Editor.void(editor, { at: end })) {\n return\n }\n const start = Range.start(at)\n const startRef = Editor.pointRef(editor, start)\n const endRef = Editor.pointRef(editor, end)\n Transforms.delete(editor, { at, voids })\n const startPoint = startRef.unref()\n const endPoint = endRef.unref()\n\n at = startPoint || endPoint!\n Transforms.setSelection(editor, { anchor: at, focus: at })\n }\n }\n\n if (\n (!voids && Editor.void(editor, { at })) ||\n Editor.elementReadOnly(editor, { at })\n ) {\n return\n }\n\n const { path, offset } = at\n if (text.length > 0)\n editor.apply({ type: 'insert_text', path, offset, text })\n })\n },\n}\n","import { GeneralTransforms } from './general'\nimport { NodeTransforms } from './node'\nimport { SelectionTransforms } from './selection'\nimport { TextTransforms } from './text'\n\nexport const Transforms: GeneralTransforms &\n NodeTransforms &\n SelectionTransforms &\n TextTransforms = {\n ...GeneralTransforms,\n ...NodeTransforms,\n ...SelectionTransforms,\n ...TextTransforms,\n}\n","import { PathRef } from '../interfaces/path-ref'\nimport { PointRef } from '../interfaces/point-ref'\nimport { RangeRef } from '../interfaces/range-ref'\nimport { DIRTY_PATH_KEYS, DIRTY_PATHS, FLUSHING } from '../utils/weak-maps'\nimport { Path } from '../interfaces/path'\nimport { Transforms } from '../interfaces/transforms'\nimport { WithEditorFirstArg } from '../utils/types'\nimport { Editor } from '../interfaces/editor'\n\nexport const apply: WithEditorFirstArg<Editor['apply']> = (editor, op) => {\n for (const ref of Editor.pathRefs(editor)) {\n PathRef.transform(ref, op)\n }\n\n for (const ref of Editor.pointRefs(editor)) {\n PointRef.transform(ref, op)\n }\n\n for (const ref of Editor.rangeRefs(editor)) {\n RangeRef.transform(ref, op)\n }\n\n const oldDirtyPaths = DIRTY_PATHS.get(editor) || []\n const oldDirtyPathKeys = DIRTY_PATH_KEYS.get(editor) || new Set()\n let dirtyPaths: Path[]\n let dirtyPathKeys: Set<string>\n\n const add = (path: Path | null) => {\n if (path) {\n const key = path.join(',')\n\n if (!dirtyPathKeys.has(key)) {\n dirtyPathKeys.add(key)\n dirtyPaths.push(path)\n }\n }\n }\n\n if (Path.operationCanTransformPath(op)) {\n dirtyPaths = []\n dirtyPathKeys = new Set()\n for (const path of oldDirtyPaths) {\n const newPath = Path.transform(path, op)\n add(newPath)\n }\n } else {\n dirtyPaths = oldDirtyPaths\n dirtyPathKeys = oldDirtyPathKeys\n }\n\n const newDirtyPaths = editor.getDirtyPaths(op)\n for (const path of newDirtyPaths) {\n add(path)\n }\n\n DIRTY_PATHS.set(editor, dirtyPaths)\n DIRTY_PATH_KEYS.set(editor, dirtyPathKeys)\n Transforms.transform(editor, op)\n editor.operations.push(op)\n Editor.normalize(editor, {\n operation: op,\n })\n\n // Clear any formats applied to the cursor if the selection changes.\n if (op.type === 'set_selection') {\n editor.marks = null\n }\n\n if (!FLUSHING.get(editor)) {\n FLUSHING.set(editor, true)\n\n Promise.resolve().then(() => {\n FLUSHING.set(editor, false)\n editor.onChange({ operation: op })\n editor.operations = []\n })\n }\n}\n","import { WithEditorFirstArg } from '../utils/types'\nimport { Path } from '../interfaces/path'\nimport { Text } from '../interfaces/text'\nimport { Node } from '../interfaces/node'\nimport { Editor } from '../interfaces/editor'\n\n/**\n * Get the \"dirty\" paths generated from an operation.\n */\nexport const getDirtyPaths: WithEditorFirstArg<Editor['getDirtyPaths']> = (\n editor,\n op\n) => {\n switch (op.type) {\n case 'insert_text':\n case 'remove_text':\n case 'set_node': {\n const { path } = op\n return Path.levels(path)\n }\n\n case 'insert_node': {\n const { node, path } = op\n const levels = Path.levels(path)\n const descendants = Text.isText(node)\n ? []\n : Array.from(Node.nodes(node), ([, p]) => path.concat(p))\n\n return [...levels, ...descendants]\n }\n\n case 'merge_node': {\n const { path } = op\n const ancestors = Path.ancestors(path)\n const previousPath = Path.previous(path)\n return [...ancestors, previousPath]\n }\n\n case 'move_node': {\n const { path, newPath } = op\n\n if (Path.equals(path, newPath)) {\n return []\n }\n\n const oldAncestors: Path[] = []\n const newAncestors: Path[] = []\n\n for (const ancestor of Path.ancestors(path)) {\n const p = Path.transform(ancestor, op)\n oldAncestors.push(p!)\n }\n\n for (const ancestor of Path.ancestors(newPath)) {\n const p = Path.transform(ancestor, op)\n newAncestors.push(p!)\n }\n\n const newParent = newAncestors[newAncestors.length - 1]\n const newIndex = newPath[newPath.length - 1]\n const resultPath = newParent.concat(newIndex)\n\n return [...oldAncestors, ...newAncestors, resultPath]\n }\n\n case 'remove_node': {\n const { path } = op\n const ancestors = Path.ancestors(path)\n return [...ancestors]\n }\n\n case 'split_node': {\n const { path } = op\n const levels = Path.levels(path)\n const nextPath = Path.next(path)\n return [...levels, nextPath]\n }\n\n default: {\n return []\n }\n }\n}\n","import { Editor, Node } from '../interfaces'\nimport { WithEditorFirstArg } from '../utils'\n\nexport const getFragment: WithEditorFirstArg<Editor['getFragment']> = editor => {\n const { selection } = editor\n\n if (selection) {\n return Node.fragment(editor, selection)\n }\n return []\n}\n","import { WithEditorFirstArg } from '../utils/types'\nimport { Text } from '../interfaces/text'\nimport { Element } from '../interfaces/element'\nimport { Transforms } from '../interfaces/transforms'\nimport { Descendant, Node } from '../interfaces/node'\nimport { Editor } from '../interfaces/editor'\n\nexport const normalizeNode: WithEditorFirstArg<Editor['normalizeNode']> = (\n editor,\n entry\n) => {\n const [node, path] = entry\n\n // There are no core normalizations for text nodes.\n if (Text.isText(node)) {\n return\n }\n\n // Ensure that block and inline nodes have at least one text child.\n if (Element.isElement(node) && node.children.length === 0) {\n const child = { text: '' }\n Transforms.insertNodes(editor, child, {\n at: path.concat(0),\n voids: true,\n })\n return\n }\n\n // Determine whether the node should have block or inline children.\n const shouldHaveInlines = Editor.isEditor(node)\n ? false\n : Element.isElement(node) &&\n (editor.isInline(node) ||\n node.children.length === 0 ||\n Text.isText(node.children[0]) ||\n editor.isInline(node.children[0]))\n\n // Since we'll be applying operations while iterating, keep track of an\n // index that accounts for any added/removed nodes.\n let n = 0\n\n for (let i = 0; i < node.children.length; i++, n++) {\n const currentNode = Node.get(editor, path)\n if (Text.isText(currentNode)) continue\n const child = currentNode.children[n] as Descendant\n const prev = currentNode.children[n - 1] as Descendant\n const isLast = i === node.children.length - 1\n const isInlineOrText =\n Text.isText(child) || (Element.isElement(child) && editor.isInline(child))\n\n // Only allow block nodes in the top-level children and parent blocks\n // that only contain block nodes. Similarly, only allow inline nodes in\n // other inline nodes, or parent blocks that only contain inlines and\n // text.\n if (isInlineOrText !== shouldHaveInlines) {\n Transforms.removeNodes(editor, { at: path.concat(n), voids: true })\n n--\n } else if (Element.isElement(child)) {\n // Ensure that inline nodes are surrounded by text nodes.\n if (editor.isInline(child)) {\n if (prev == null || !Text.isText(prev)) {\n const newChild = { text: '' }\n Transforms.insertNodes(editor, newChild, {\n at: path.concat(n),\n voids: true,\n })\n n++\n } else if (isLast) {\n const newChild = { text: '' }\n Transforms.insertNodes(editor, newChild, {\n at: path.concat(n + 1),\n voids: true,\n })\n n++\n }\n }\n } else {\n // Merge adjacent text nodes that are empty or match.\n if (prev != null && Text.isText(prev)) {\n if (Text.equals(child, prev, { loose: true })) {\n Transforms.mergeNodes(editor, { at: path.concat(n), voids: true })\n n--\n } else if (prev.text === '') {\n Transforms.removeNodes(editor, {\n at: path.concat(n - 1),\n voids: true,\n })\n n--\n } else if (child.text === '') {\n Transforms.removeNodes(editor, {\n at: path.concat(n),\n voids: true,\n })\n n--\n }\n }\n }\n }\n}\n","import { WithEditorFirstArg } from '../utils/types'\nimport { Editor } from '../interfaces/editor'\n\nexport const shouldNormalize: WithEditorFirstArg<Editor['shouldNormalize']> = (\n editor,\n { iteration, initialDirtyPathsLength }\n) => {\n const maxIterations = initialDirtyPathsLength * 42 // HACK: better way?\n\n if (iteration > maxIterations) {\n throw new Error(\n `Could not completely normalize the editor after ${maxIterations} iterations! This is usually due to incorrect normalization logic that leaves a node in an invalid state.`\n )\n }\n\n return true\n}\n","import { Editor, EditorInterface } from '../interfaces/editor'\nimport { Text } from '../interfaces/text'\nimport { Range } from '../interfaces/range'\nimport { Path } from '../interfaces/path'\n\nexport const above: EditorInterface['above'] = (editor, options = {}) => {\n const {\n voids = false,\n mode = 'lowest',\n at = editor.selection,\n match,\n } = options\n\n if (!at) {\n return\n }\n\n const path = Editor.path(editor, at)\n const reverse = mode === 'lowest'\n\n for (const [n, p] of Editor.levels(editor, {\n at: path,\n voids,\n match,\n reverse,\n })) {\n if (Text.isText(n)) continue\n if (Range.isRange(at)) {\n if (\n Path.isAncestor(p, at.anchor.path) &&\n Path.isAncestor(p, at.focus.path)\n ) {\n return [n, p]\n }\n } else {\n if (!Path.equals(path, p)) {\n return [n, p]\n }\n }\n }\n}\n","import { Node } from '../interfaces/node'\nimport { Path } from '../interfaces/path'\nimport { Text } from '../interfaces/text'\nimport { Range } from '../interfaces/range'\nimport { Transforms } from '../interfaces/transforms'\nimport { FLUSHING } from '../utils/weak-maps'\nimport { Editor, EditorInterface } from '../interfaces/editor'\n\nexport const addMark: EditorInterface['addMark'] = (editor, key, value) => {\n const { selection } = editor\n\n if (selection) {\n const match = (node: Node, path: Path) => {\n if (!Text.isText(node)) {\n return false // marks can only be applied to text\n }\n const [parentNode, parentPath] = Editor.parent(editor, path)\n return !editor.isVoid(parentNode) || editor.markableVoid(parentNode)\n }\n const expandedSelection = Range.isExpanded(selection)\n let markAcceptingVoidSelected = false\n if (!expandedSelection) {\n const [selectedNode, selectedPath] = Editor.node(editor, selection)\n if (selectedNode && match(selectedNode, selectedPath)) {\n const [parentNode] = Editor.parent(editor, selectedPath)\n markAcceptingVoidSelected =\n parentNode && editor.markableVoid(parentNode)\n }\n }\n if (expandedSelection || markAcceptingVoidSelected) {\n Transforms.setNodes(\n editor,\n { [key]: value },\n {\n match,\n split: true,\n voids: true,\n }\n )\n } else {\n const marks = {\n ...(Editor.marks(editor) || {}),\n [key]: value,\n }\n\n editor.marks = marks\n if (!FLUSHING.get(editor)) {\n editor.onChange()\n }\n }\n }\n}\n","import { Editor, EditorInterface } from '../interfaces/editor'\n\nexport const after: EditorInterface['after'] = (editor, at, options = {}) => {\n const anchor = Editor.point(editor, at, { edge: 'end' })\n const focus = Editor.end(editor, [])\n const range = { anchor, focus }\n const { distance = 1 } = options\n let d = 0\n let target\n\n for (const p of Editor.positions(editor, {\n ...options,\n at: range,\n })) {\n if (d > distance) {\n break\n }\n\n if (d !== 0) {\n target = p\n }\n\n d++\n }\n\n return target\n}\n","import { Editor, EditorInterface } from '../interfaces/editor'\n\nexport const before: EditorInterface['before'] = (editor, at, options = {}) => {\n const anchor = Editor.start(editor, [])\n const focus = Editor.point(editor, at, { edge: 'start' })\n const range = { anchor, focus }\n const { distance = 1 } = options\n let d = 0\n let target\n\n for (const p of Editor.positions(editor, {\n ...options,\n at: range,\n reverse: true,\n })) {\n if (d > distance) {\n break\n }\n\n if (d !== 0) {\n target = p\n }\n\n d++\n }\n\n return target\n}\n","import { Editor } from '../interfaces/editor'\nimport { Transforms } from '../interfaces/transforms'\nimport { Range } from '../interfaces/range'\nimport { WithEditorFirstArg } from '../utils/types'\n\nexport const deleteBackward: WithEditorFirstArg<Editor['deleteBackward']> = (\n editor,\n unit\n) => {\n const { selection } = editor\n\n if (selection && Range.isCollapsed(selection)) {\n Transforms.delete(editor, { unit, reverse: true })\n }\n}\n","import { Editor } from '../interfaces/editor'\nimport { Transforms } from '../interfaces/transforms'\nimport { Range } from '../interfaces/range'\nimport { WithEditorFirstArg } from '../utils/types'\n\nexport const deleteForward: WithEditorFirstArg<Editor['deleteForward']> = (\n editor,\n unit\n) => {\n const { selection } = editor\n\n if (selection && Range.isCollapsed(selection)) {\n Transforms.delete(editor, { unit })\n }\n}\n","import { Range } from '../interfaces/range'\nimport { Transforms } from '../interfaces/transforms'\nimport { EditorInterface } from '../interfaces/editor'\n\nexport const deleteFragment: EditorInterface['deleteFragment'] = (\n editor,\n { direction = 'forward' } = {}\n) => {\n const { selection } = editor\n\n if (selection && Range.isExpanded(selection)) {\n Transforms.delete(editor, { reverse: direction === 'backward' })\n }\n}\n","import { Editor, EditorInterface } from '../interfaces/editor'\n\nexport const edges: EditorInterface['edges'] = (editor, at) => {\n return [Editor.start(editor, at), Editor.end(editor, at)]\n}\n","import { Element } from '../interfaces/element'\nimport { Editor, EditorInterface } from '../interfaces/editor'\n\nexport const elementReadOnly: EditorInterface['elementReadOnly'] = (\n editor,\n options = {}\n) => {\n return Editor.above(editor, {\n ...options,\n match: n => Element.isElement(n) && Editor.isElementReadOnly(editor, n),\n })\n}\n","import { Editor, EditorInterface } from '../interfaces/editor'\n\nexport const end: EditorInterface['end'] = (editor, at) => {\n return Editor.point(editor, at, { edge: 'end' })\n}\n","import { Editor, EditorInterface } from '../interfaces/editor'\n\nexport const first: EditorInterface['first'] = (editor, at) => {\n const path = Editor.path(editor, at, { edge: 'start' })\n return Editor.node(editor, path)\n}\n","import { Editor, EditorInterface } from '../interfaces/editor'\nimport { Node } from '../interfaces/node'\n\nexport const fragment: EditorInterface['fragment'] = (editor, at) => {\n const range = Editor.range(editor, at)\n return Node.fragment(editor, range)\n}\n","import { Editor, EditorInterface } from '../interfaces/editor'\nimport { Element } from '../interfaces/element'\n\nexport const getVoid: EditorInterface['void'] = (editor, options = {}) => {\n return Editor.above(editor, {\n ...options,\n match: n => Element.isElement(n) && Editor.isVoid(editor, n),\n })\n}\n","import { Editor, EditorInterface } from '../interfaces/editor'\nimport { Element } from '../interfaces/element'\n\nexport const hasBlocks: EditorInterface['hasBlocks'] = (editor, element) => {\n return element.children.some(\n n => Element.isElement(n) && Editor.isBlock(editor, n)\n )\n}\n","import { Editor, EditorInterface } from '../interfaces/editor'\nimport { Text } from '../interfaces/text'\n\nexport const hasInlines: EditorInterface['hasInlines'] = (editor, element) => {\n return element.children.some(\n n => Text.isText(n) || Editor.isInline(editor, n)\n )\n}\n","import { EditorInterface } from '../interfaces/editor'\nimport { Node } from '../interfaces/node'\n\nexport const hasPath: EditorInterface['hasPath'] = (editor, path) => {\n return Node.has(editor, path)\n}\n","import { EditorInterface } from '../interfaces/editor'\nimport { Text } from '../interfaces/text'\n\nexport const hasTexts: EditorInterface['hasTexts'] = (editor, element) => {\n return element.children.every(n => Text.isText(n))\n}\n","import { Transforms } from '../interfaces/transforms'\nimport { EditorInterface } from '../interfaces/editor'\n\nexport const insertBreak: EditorInterface['insertBreak'] = editor => {\n Transforms.splitNodes(editor, { always: true })\n}\n","import { Transforms } from '../interfaces/transforms'\nimport { EditorInterface } from '../interfaces/editor'\n\nexport const insertNode: EditorInterface['insertNode'] = (\n editor,\n node,\n options\n) => {\n Transforms.insertNodes(editor, node, options)\n}\n","import { Transforms } from '../interfaces/transforms'\nimport { EditorInterface } from '../interfaces/editor'\n\nexport const insertSoftBreak: EditorInterface['insertSoftBreak'] = editor => {\n Transforms.splitNodes(editor, { always: true })\n}\n","import { Transforms } from '../interfaces/transforms'\nimport { EditorInterface } from '../interfaces/editor'\n\nexport const insertText: EditorInterface['insertText'] = (\n editor,\n text,\n options = {}\n) => {\n const { selection, marks } = editor\n\n if (selection) {\n if (marks) {\n const node = { text, ...marks }\n Transforms.insertNodes(editor, node, {\n at: options.at,\n voids: options.voids,\n })\n } else {\n Transforms.insertText(editor, text, options)\n }\n\n editor.marks = null\n }\n}\n","import { EditorInterface } from '../interfaces/editor'\n\nexport const isBlock: EditorInterface['isBlock'] = (editor, value) => {\n return !editor.isInline(value)\n}\n","import { Editor, EditorInterface } from '../interfaces/editor'\n\nexport const isEdge: EditorInterface['isEdge'] = (editor, point, at) => {\n return Editor.isStart(editor, point, at) || Editor.isEnd(editor, point, at)\n}\n","import { EditorInterface } from '../interfaces/editor'\nimport { Text } from '../interfaces/text'\n\nexport const isEmpty: EditorInterface['isEmpty'] = (editor, element) => {\n const { children } = element\n const [first] = children\n return (\n children.length === 0 ||\n (children.length === 1 &&\n Text.isText(first) &&\n first.text === '' &&\n !editor.isVoid(element))\n )\n}\n","import { Editor, EditorInterface } from '../interfaces/editor'\nimport { Point } from '../interfaces/point'\n\nexport const isEnd: EditorInterface['isEnd'] = (editor, point, at) => {\n const end = Editor.end(editor, at)\n return Point.equals(point, end)\n}\n","import { EditorInterface } from '../interfaces/editor'\nimport { NORMALIZING } from '../utils/weak-maps'\n\nexport const isNormalizing: EditorInterface['isNormalizing'] = editor => {\n const isNormalizing = NORMALIZING.get(editor)\n return isNormalizing === undefined ? true : isNormalizing\n}\n","import { Editor, EditorInterface } from '../interfaces/editor'\nimport { Point } from '../interfaces/point'\n\nexport const isStart: EditorInterface['isStart'] = (editor, point, at) => {\n // PERF: If the offset isn't `0` we know it's not the start.\n if (point.offset !== 0) {\n return false\n }\n\n const start = Editor.start(editor, at)\n return Point.equals(point, start)\n}\n","import { Editor, EditorInterface } from '../interfaces/editor'\n\nexport const last: EditorInterface['last'] = (editor, at) => {\n const path = Editor.path(editor, at, { edge: 'end' })\n return Editor.node(editor, path)\n}\n","import { Editor, EditorInterface } from '../interfaces/editor'\nimport { Node } from '../interfaces/node'\n\nexport const leaf: EditorInterface['leaf'] = (editor, at, options = {}) => {\n const path = Editor.path(editor, at, options)\n const node = Node.leaf(editor, path)\n return [node, path]\n}\n","import { Node, NodeEntry } from '../interfaces/node'\nimport { Editor, EditorLevelsOptions } from '../interfaces/editor'\nimport { Element } from '../interfaces/element'\n\nexport function* levels<T extends Node>(\n editor: Editor,\n options: EditorLevelsOptions<T> = {}\n): Generator<NodeEntry<T>, void, undefined> {\n const { at = editor.selection, reverse = false, voids = false } = options\n let { match } = options\n\n if (match == null) {\n match = () => true\n }\n\n if (!at) {\n return\n }\n\n const levels: NodeEntry<T>[] = []\n const path = Editor.path(editor, at)\n\n for (const [n, p] of Node.levels(editor, path)) {\n if (!match(n, p)) {\n continue\n }\n\n levels.push([n, p])\n\n if (!voids && Element.isElement(n) && Editor.isVoid(editor, n)) {\n break\n }\n }\n\n if (reverse) {\n levels.reverse()\n }\n\n yield* levels\n}\n","import { Editor, EditorInterface } from '../interfaces/editor'\nimport { NodeEntry } from '../interfaces/node'\nimport { Range } from '../interfaces/range'\nimport { Path } from '../interfaces/path'\nimport { Text } from '../interfaces/text'\nimport { Element } from '../interfaces/element'\n\nexport const marks: EditorInterface['marks'] = (editor, options = {}) => {\n const { marks, selection } = editor\n\n if (!selection) {\n return null\n }\n\n if (marks) {\n return marks\n }\n\n if (Range.isExpanded(selection)) {\n const [match] = Editor.nodes(editor, { match: Text.isText })\n\n if (match) {\n const [node] = match as NodeEntry<Text>\n const { text, ...rest } = node\n return rest\n } else {\n return {}\n }\n }\n\n const { anchor } = selection\n const { path } = anchor\n let [node] = Editor.leaf(editor, path)\n\n if (anchor.offset === 0) {\n const prev = Editor.previous(editor, { at: path, match: Text.isText })\n const markedVoid = Editor.above(editor, {\n match: n =>\n Element.isElement(n) &&\n Editor.isVoid(editor, n) &&\n editor.markableVoid(n),\n })\n if (!markedVoid) {\n const block = Editor.above(editor, {\n match: n => Element.isElement(n) && Editor.isBlock(editor, n),\n })\n\n if (prev && block) {\n const [prevNode, prevPath] = prev\n const [, blockPath] = block\n\n if (Path.isAncestor(blockPath, prevPath)) {\n node = prevNode as Text\n }\n }\n }\n }\n\n const { text, ...rest } = node\n return rest\n}\n","import { Editor, EditorInterface } from '../interfaces/editor'\nimport { Span } from '../interfaces/location'\nimport { Path } from '../interfaces/path'\n\nexport const next: EditorInterface['next'] = (editor, options = {}) => {\n const { mode = 'lowest', voids = false } = options\n let { match, at = editor.selection } = options\n\n if (!at) {\n return\n }\n\n const pointAfterLocation = Editor.after(editor, at, { voids })\n\n if (!pointAfterLocation) return\n\n const [, to] = Editor.last(editor, [])\n\n const span: Span = [pointAfterLocation.path, to]\n\n if (Path.isPath(at) && at.length === 0) {\n throw new Error(`Cannot get the next node from the root node!`)\n }\n\n if (match == null) {\n if (Path.isPath(at)) {\n const [parent] = Editor.parent(editor, at)\n match = n => parent.children.includes(n)\n } else {\n match = () => true\n }\n }\n\n const [next] = Editor.nodes(editor, { at: span, match, mode, voids })\n return next\n}\n","import { Editor, EditorInterface } from '../interfaces/editor'\nimport { Node } from '../interfaces/node'\n\nexport const node: EditorInterface['node'] = (editor, at, options = {}) => {\n const path = Editor.path(editor, at, options)\n const node = Node.get(editor, path)\n return [node, path]\n}\n","import { Node, NodeEntry } from '../interfaces/node'\nimport { Editor, EditorNodesOptions } from '../interfaces/editor'\nimport { Span } from '../interfaces/location'\nimport { Element } from '../interfaces/element'\nimport { Path } from '../interfaces/path'\nimport { Text } from '../interfaces/text'\n\nexport function* nodes<T extends Node>(\n editor: Editor,\n options: EditorNodesOptions<T> = {}\n): Generator<NodeEntry<T>, void, undefined> {\n const {\n at = editor.selection,\n mode = 'all',\n universal = false,\n reverse = false,\n voids = false,\n ignoreNonSelectable = false,\n } = options\n let { match } = options\n\n if (!match) {\n match = () => true\n }\n\n if (!at) {\n return\n }\n\n let from\n let to\n\n if (Span.isSpan(at)) {\n from = at[0]\n to = at[1]\n } else {\n const first = Editor.path(editor, at, { edge: 'start' })\n const last = Editor.path(editor, at, { edge: 'end' })\n from = reverse ? last : first\n to = reverse ? first : last\n }\n\n const nodeEntries = Node.nodes(editor, {\n reverse,\n from,\n to,\n pass: ([node]) => {\n if (!Element.isElement(node)) return false\n if (\n !voids &&\n (Editor.isVoid(editor, node) || Editor.isElementReadOnly(editor, node))\n )\n return true\n if (ignoreNonSelectable && !Editor.isSelectable(editor, node)) return true\n return false\n },\n })\n\n const matches: NodeEntry<T>[] = []\n let hit: NodeEntry<T> | undefined\n\n for (const [node, path] of nodeEntries) {\n if (\n ignoreNonSelectable &&\n Element.isElement(node) &&\n !Editor.isSelectable(editor, node)\n ) {\n continue\n }\n\n const isLower = hit && Path.compare(path, hit[1]) === 0\n\n // In highest mode any node lower than the last hit is not a match.\n if (mode === 'highest' && isLower) {\n continue\n }\n\n if (!match(node, path)) {\n // If we've arrived at a leaf text node that is not lower than the last\n // hit, then we've found a branch that doesn't include a match, which\n // means the match is not universal.\n if (universal && !isLower && Text.isText(node)) {\n return\n } else {\n continue\n }\n }\n\n // If there's a match and it's lower than the last, update the hit.\n if (mode === 'lowest' && isLower) {\n hit = [node, path]\n continue\n }\n\n // In lowest mode we emit the last hit, once it's guaranteed lowest.\n const emit: NodeEntry<T> | undefined =\n mode === 'lowest' ? hit : [node, path]\n\n if (emit) {\n if (universal) {\n matches.push(emit)\n } else {\n yield emit\n }\n }\n\n hit = [node, path]\n }\n\n // Since lowest is always emitting one behind, catch up at the end.\n if (mode === 'lowest' && hit) {\n if (universal) {\n matches.push(hit)\n } else {\n yield hit\n }\n }\n\n // Universal defers to ensure that the match occurs in every branch, so we\n // yield all of the matches after iterating.\n if (universal) {\n yield* matches\n }\n}\n","import { Editor, EditorInterface } from '../interfaces/editor'\nimport { DIRTY_PATH_KEYS, DIRTY_PATHS } from '../utils/weak-maps'\nimport { Path } from '../interfaces/path'\nimport { Node } from '../interfaces/node'\nimport { Element } from '../interfaces/element'\n\nexport const normalize: EditorInterface['normalize'] = (\n editor,\n options = {}\n) => {\n const { force = false, operation } = options\n const getDirtyPaths = (editor: Editor) => {\n return DIRTY_PATHS.get(editor) || []\n }\n\n const getDirtyPathKeys = (editor: Editor) => {\n return DIRTY_PATH_KEYS.get(editor) || new Set()\n }\n\n const popDirtyPath = (editor: Editor): Path => {\n const path = getDirtyPaths(editor).pop()!\n const key = path.join(',')\n getDirtyPathKeys(editor).delete(key)\n return path\n }\n\n if (!Editor.isNormalizing(editor)) {\n return\n }\n\n if (force) {\n const allPaths = Array.from(Node.nodes(editor), ([, p]) => p)\n const allPathKeys = new Set(allPaths.map(p => p.join(',')))\n DIRTY_PATHS.set(editor, allPaths)\n DIRTY_PATH_KEYS.set(editor, allPathKeys)\n }\n\n if (getDirtyPaths(editor).length === 0) {\n return\n }\n\n Editor.withoutNormalizing(editor, () => {\n /*\n Fix dirty elements with no children.\n editor.normalizeNode() does fix this, but some normalization fixes also require it to work.\n Running an initial pass avoids the catch-22 race condition.\n */\n for (const dirtyPath of getDirtyPaths(editor)) {\n if (Node.has(editor, dirtyPath)) {\n const entry = Editor.node(editor, dirtyPath)\n const [node, _] = entry\n\n /*\n The default normalizer inserts an empty text node in this scenario, but it can be customised.\n So there is some risk here.\n\n As long as the normalizer only inserts child nodes for this case it is safe to do in any order;\n by definition adding children to an empty node can't cause other paths to change.\n */\n if (Element.isElement(node) && node.children.length === 0) {\n editor.normalizeNode(entry, { operation })\n }\n }\n }\n\n let dirtyPaths = getDirtyPaths(editor)\n const initialDirtyPathsLength = dirtyPaths.length\n let iteration = 0\n\n while (dirtyPaths.length !== 0) {\n if (\n !editor.shouldNormalize({\n dirtyPaths,\n iteration,\n initialDirtyPathsLength,\n operation,\n })\n ) {\n return\n }\n\n const dirtyPath = popDirtyPath(editor)\n\n // If the node doesn't exist in the tree, it does not need to be normalized.\n if (Node.has(editor, dirtyPath)) {\n const entry = Editor.node(editor, dirtyPath)\n editor.normalizeNode(entry, { operation })\n }\n iteration++\n dirtyPaths = getDirtyPaths(editor)\n }\n })\n}\n","import { Editor, EditorInterface } from '../interfaces/editor'\nimport { Path } from '../interfaces/path'\nimport { Ancestor, NodeEntry } from '../interfaces/node'\n\nexport const parent: EditorInterface['parent'] = (editor, at, options = {}) => {\n const path = Editor.path(editor, at, options)\n const parentPath = Path.parent(path)\n const entry = Editor.node(editor, parentPath)\n return entry as NodeEntry<Ancestor>\n}\n","import { Editor, EditorInterface } from '../interfaces/editor'\nimport { PathRef } from '../interfaces/path-ref'\n\nexport const pathRef: EditorInterface['pathRef'] = (\n editor,\n path,\n options = {}\n) => {\n const { affinity = 'forward' } = options\n const ref: PathRef = {\n current: path,\n affinity,\n unref() {\n const { current } = ref\n const pathRefs = Editor.pathRefs(editor)\n pathRefs.delete(ref)\n ref.current = null\n return current\n },\n }\n\n const refs = Editor.pathRefs(editor)\n refs.add(ref)\n return ref\n}\n","import { EditorInterface } from '../interfaces/editor'\nimport { PATH_REFS } from '../utils/weak-maps'\n\nexport const pathRefs: EditorInterface['pathRefs'] = editor => {\n let refs = PATH_REFS.get(editor)\n\n if (!refs) {\n refs = new Set()\n PATH_REFS.set(editor, refs)\n }\n\n return refs\n}\n","import { EditorInterface, Node, Path, Point, Range } from '../interfaces'\n\nexport const path: EditorInterface['path'] = (editor, at, options = {}) => {\n const { depth, edge } = options\n\n if (Path.isPath(at)) {\n if (edge === 'start') {\n const [, firstPath] = Node.first(editor, at)\n at = firstPath\n } else if (edge === 'end') {\n const [, lastPath] = Node.last(editor, at)\n at = lastPath\n }\n }\n\n if (Range.isRange(at)) {\n if (edge === 'start') {\n at = Range.start(at)\n } else if (edge === 'end') {\n at = Range.end(at)\n } else {\n at = Path.common(at.anchor.path, at.focus.path)\n }\n }\n\n if (Point.isPoint(at)) {\n at = at.path\n }\n\n if (depth != null) {\n at = at.slice(0, depth)\n }\n\n return at\n}\n","import { Editor, EditorInterface } from '../interfaces/editor'\nimport { PointRef } from '../interfaces/point-ref'\n\nexport const pointRef: EditorInterface['pointRef'] = (\n editor,\n point,\n options = {}\n) => {\n const { affinity = 'forward' } = options\n const ref: PointRef = {\n current: point,\n affinity,\n unref() {\n const { current } = ref\n const pointRefs = Editor.pointRefs(editor)\n pointRefs.delete(ref)\n ref.current = null\n return current\n },\n }\n\n const refs = Editor.pointRefs(editor)\n refs.add(ref)\n return ref\n}\n","import { EditorInterface } from '../interfaces/editor'\nimport { POINT_REFS } from '../utils/weak-maps'\n\nexport const pointRefs: EditorInterface['pointRefs'] = editor => {\n let refs = POINT_REFS.get(editor)\n\n if (!refs) {\n refs = new Set()\n POINT_REFS.set(editor, refs)\n }\n\n return refs\n}\n","import { EditorInterface } from '../interfaces/editor'\nimport { Path } from '../interfaces/path'\nimport { Node } from '../interfaces/node'\nimport { Text } from '../interfaces/text'\nimport { Range } from '../interfaces/range'\n\nexport const point: EditorInterface['point'] = (editor, at, options = {}) => {\n const { edge = 'start' } = options\n\n if (Path.isPath(at)) {\n let path\n\n if (edge === 'end') {\n const [, lastPath] = Node.last(editor, at)\n path = lastPath\n } else {\n const [, firstPath] = Node.first(editor, at)\n path = firstPath\n }\n\n const node = Node.get(editor, path)\n\n if (!Text.isText(node)) {\n throw new Error(\n `Cannot get the ${edge} point in the node at path [${at}] because it has no ${edge} text node.`\n )\n }\n\n return { path, offset: edge === 'end' ? node.text.length : 0 }\n }\n\n if (Range.isRange(at)) {\n const [start, end] = Range.edges(at)\n return edge === 'start' ? start : end\n }\n\n return at\n}\n","import { Editor, EditorPositionsOptions } from '../interfaces/editor'\nimport { Point } from '../interfaces/point'\nimport { Range } from '../interfaces/range'\nimport { Element } from '../interfaces/element'\nimport { Path } from '../interfaces/path'\nimport { Text } from '../interfaces/text'\nimport {\n getCharacterDistance,\n getWordDistance,\n splitByCharacterDistance,\n} from '../utils/string'\n\nexport function* positions(\n editor: Editor,\n options: EditorPositionsOptions = {}\n): Generator<Point, void, undefined> {\n const {\n at = editor.selection,\n unit = 'offset',\n reverse = false,\n voids = false,\n ignoreNonSelectable = false,\n } = options\n\n if (!at) {\n return\n }\n\n /**\n * Algorithm notes:\n *\n * Each step `distance` is dynamic depending on the underlying text\n * and the `unit` specified. Each step, e.g., a line or word, may\n * span multiple text nodes, so we iterate through the text both on\n * two levels in step-sync:\n *\n * `leafText` stores the text on a text leaf level, and is advanced\n * through using the counters `leafTextOffset` and `leafTextRemaining`.\n *\n * `blockText` stores the text on a block level, and is shortened\n * by `distance` every time it is advanced.\n *\n * We only maintain a window of one blockText and one leafText because\n * a block node always appears before all of its leaf nodes.\n */\n\n const range = Editor.range(editor, at)\n const [start, end] = Range.edges(range)\n const first = reverse ? end : start\n let isNewBlock = false\n let blockText = ''\n let distance = 0 // Distance for leafText to catch up to blockText.\n let leafTextRemaining = 0\n let leafTextOffset = 0\n\n // Iterate through all nodes in range, grabbing entire textual content\n // of block nodes in blockText, and text nodes in leafText.\n // Exploits the fact that nodes are sequenced in such a way that we first\n // encounter the block node, then all of its text nodes, so when iterating\n // through the blockText and leafText we just need to remember a window of\n // one block node and leaf node, respectively.\n for (const [node, path] of Editor.nodes(editor, {\n at,\n reverse,\n voids,\n ignoreNonSelectable,\n })) {\n /*\n * ELEMENT NODE - Yield position(s) for voids, collect blockText for blocks\n */\n if (Element.isElement(node)) {\n // Void nodes are a special case, so by default we will always\n // yield their first point. If the `voids` option is set to true,\n // then we will iterate over their content.\n if (!voids && (editor.isVoid(node) || editor.isElementReadOnly(node))) {\n yield Editor.start(editor, path)\n continue\n }\n\n // Inline element nodes are ignored as they don't themselves\n // contribute to `blockText` or `leafText` - their parent and\n // children do.\n if (editor.isInline(node)) continue\n\n // Block element node - set `blockText` to its text content.\n if (Editor.hasInlines(editor, node)) {\n // We always exhaust block nodes before encountering a new one:\n // console.assert(blockText === '',\n // `blockText='${blockText}' - `+\n // `not exhausted before new block node`, path)\n\n // Ensure range considered is capped to `range`, in the\n // start/end edge cases where block extends beyond range.\n // Equivalent to this, but presumably more performant:\n // blockRange = Editor.range(editor, ...Editor.edges(editor, path))\n // blockRange = Range.intersection(range, blockRange) // intersect\n // blockText = Editor.string(editor, blockRange, { voids })\n const e = Path.isAncestor(path, end.path)\n ? end\n : Editor.end(editor, path)\n const s = Path.isAncestor(path, start.path)\n ? start\n : Editor.start(editor, path)\n\n blockText = Editor.string(editor, { anchor: s, focus: e }, { voids })\n isNewBlock = true\n }\n }\n\n /*\n * TEXT LEAF NODE - Iterate through text content, yielding\n * positions every `distance` offset according to `unit`.\n */\n if (Text.isText(node)) {\n const isFirst = Path.equals(path, first.path)\n\n // Proof that we always exhaust text nodes before encountering a new one:\n // console.assert(leafTextRemaining <= 0,\n // `leafTextRemaining=${leafTextRemaining} - `+\n // `not exhausted before new leaf text node`, path)\n\n // Reset `leafText` counters for new text node.\n if (isFirst) {\n leafTextRemaining = reverse\n ? first.offset\n : node.text.length - first.offset\n leafTextOffset = first.offset // Works for reverse too.\n } else {\n leafTextRemaining = node.text.length\n leafTextOffset = reverse ? leafTextRemaining : 0\n }\n\n // Yield position at the start of node (potentially).\n if (isFirst || isNewBlock || unit === 'offset') {\n yield { path, offset: leafTextOffset }\n isNewBlock = false\n }\n\n // Yield positions every (dynamically calculated) `distance` offset.\n while (true) {\n // If `leafText` has caught up with `blockText` (distance=0),\n // and if blockText is exhausted, break to get another block node,\n // otherwise advance blockText forward by the new `distance`.\n if (distance === 0) {\n if (blockText === '') break\n distance = calcDistance(blockText, unit, reverse)\n // Split the string at the previously found distance and use the\n // remaining string for the next iteration.\n blockText = splitByCharacterDistance(blockText, distance, reverse)[1]\n }\n\n // Advance `leafText` by the current `distance`.\n leafTextOffset = reverse\n ? leafTextOffset - distance\n : leafTextOffset + distance\n leafTextRemaining = leafTextRemaining - distance\n\n // If `leafText` is exhausted, break to get a new leaf node\n // and set distance to the overflow amount, so we'll (maybe)\n // catch up to blockText in the next leaf text node.\n if (leafTextRemaining < 0) {\n distance = -leafTextRemaining\n break\n }\n\n // Successfully walked `distance` offsets through `leafText`\n // to catch up with `blockText`, so we can reset `distance`\n // and yield this position in this node.\n distance = 0\n yield { path, offset: leafTextOffset }\n }\n }\n }\n // Proof that upon completion, we've exahusted both leaf and block text:\n // console.assert(leafTextRemaining <= 0, \"leafText wasn't exhausted\")\n // console.assert(blockText === '', \"blockText wasn't exhausted\")\n\n // Helper:\n // Return the distance in offsets for a step of size `unit` on given string.\n function calcDistance(text: string, unit: string, reverse?: boolean) {\n if (unit === 'character') {\n return getCharacterDistance(text, reverse)\n } else if (unit === 'word') {\n return getWordDistance(text, reverse)\n } else if (unit === 'line' || unit === 'block') {\n return text.length\n }\n return 1\n }\n}\n","import { Editor, EditorInterface } from '../interfaces/editor'\nimport { Span } from '../interfaces/location'\nimport { Path } from '../interfaces/path'\n\nexport const previous: EditorInterface['previous'] = (editor, options = {}) => {\n const { mode = 'lowest', voids = false } = options\n let { match, at = editor.selection } = options\n\n if (!at) {\n return\n }\n\n const pointBeforeLocation = Editor.before(editor, at, { voids })\n\n if (!pointBeforeLocation) {\n return\n }\n\n const [, to] = Editor.first(editor, [])\n\n // The search location is from the start of the document to the path of\n // the point before the location passed in\n const span: Span = [pointBeforeLocation.path, to]\n\n if (Path.isPath(at) && at.length === 0) {\n throw new Error(`Cannot get the previous node from the root node!`)\n }\n\n if (match == null) {\n if (Path.isPath(at)) {\n const [parent] = Editor.parent(editor, at)\n match = n => parent.children.includes(n)\n } else {\n match = () => true\n }\n }\n\n const [previous] = Editor.nodes(editor, {\n reverse: true,\n at: span,\n match,\n mode,\n voids,\n })\n\n return previous\n}\n","import { Editor, EditorInterface } from '../interfaces/editor'\nimport { RangeRef } from '../interfaces/range-ref'\n\nexport const rangeRef: EditorInterface['rangeRef'] = (\n editor,\n range,\n options = {}\n) => {\n const { affinity = 'forward' } = options\n const ref: RangeRef = {\n current: range,\n affinity,\n unref() {\n const { current } = ref\n const rangeRefs = Editor.rangeRefs(editor)\n rangeRefs.delete(ref)\n ref.current = null\n return current\n },\n }\n\n const refs = Editor.rangeRefs(editor)\n refs.add(ref)\n return ref\n}\n","import { EditorInterface } from '../interfaces/editor'\nimport { RANGE_REFS } from '../utils/weak-maps'\n\nexport const rangeRefs: EditorInterface['rangeRefs'] = editor => {\n let refs = RANGE_REFS.get(editor)\n\n if (!refs) {\n refs = new Set()\n RANGE_REFS.set(editor, refs)\n }\n\n return refs\n}\n","import { Editor, EditorInterface } from '../interfaces/editor'\nimport { Range } from '../interfaces/range'\n\nexport const range: EditorInterface['range'] = (editor, at, to) => {\n if (Range.isRange(at) && !to) {\n return at\n }\n\n const start = Editor.start(editor, at)\n const end = Editor.end(editor, to || at)\n return { anchor: start, focus: end }\n}\n","import { Node } from '../interfaces/node'\nimport { Path } from '../interfaces/path'\nimport { Text } from '../interfaces/text'\nimport { Range } from '../interfaces/range'\nimport { Transforms } from '../interfaces/transforms'\nimport { FLUSHING } from '../utils/weak-maps'\nimport { Editor, EditorInterface } from '../interfaces/editor'\n\nexport const removeMark: EditorInterface['removeMark'] = (editor, key) => {\n const { selection } = editor\n\n if (selection) {\n const match = (node: Node, path: Path) => {\n if (!Text.isText(node)) {\n return false // marks can only be applied to text\n }\n const [parentNode, parentPath] = Editor.parent(editor, path)\n return !editor.isVoid(parentNode) || editor.markableVoid(parentNode)\n }\n const expandedSelection = Range.isExpanded(selection)\n let markAcceptingVoidSelected = false\n if (!expandedSelection) {\n const [selectedNode, selectedPath] = Editor.node(editor, selection)\n if (selectedNode && match(selectedNode, selectedPath)) {\n const [parentNode] = Editor.parent(editor, selectedPath)\n markAcceptingVoidSelected =\n parentNode && editor.markableVoid(parentNode)\n }\n }\n if (expandedSelection || markAcceptingVoidSelected) {\n Transforms.unsetNodes(editor, key, {\n match,\n split: true,\n voids: true,\n })\n } else {\n const marks = { ...(Editor.marks(editor) || {}) }\n delete marks[key]\n editor.marks = marks\n if (!FLUSHING.get(editor)) {\n editor.onChange()\n }\n }\n }\n}\n","import { EditorInterface } from '../interfaces/editor'\nimport { NORMALIZING } from '../utils/weak-maps'\n\nexport const setNormalizing: EditorInterface['setNormalizing'] = (\n editor,\n isNormalizing\n) => {\n NORMALIZING.set(editor, isNormalizing)\n}\n","import { Editor, EditorInterface } from '../interfaces/editor'\n\nexport const start: EditorInterface['start'] = (editor, at) => {\n return Editor.point(editor, at, { edge: 'start' })\n}\n","import { Editor, EditorInterface } from '../interfaces/editor'\nimport { Range } from '../interfaces/range'\nimport { Text } from '../interfaces/text'\nimport { Path } from '../interfaces/path'\n\nexport const string: EditorInterface['string'] = (editor, at, options = {}) => {\n const { voids = false } = options\n const range = Editor.range(editor, at)\n const [start, end] = Range.edges(range)\n let text = ''\n\n for (const [node, path] of Editor.nodes(editor, {\n at: range,\n match: Text.isText,\n voids,\n })) {\n let t = node.text\n\n if (Path.equals(path, end.path)) {\n t = t.slice(0, end.offset)\n }\n\n if (Path.equals(path, start.path)) {\n t = t.slice(start.offset)\n }\n\n text += t\n }\n\n return text\n}\n","import { Editor, EditorInterface } from '../interfaces/editor'\nimport { Range } from '../interfaces/range'\nimport { Path } from '../interfaces/path'\nimport { Element } from '../interfaces/element'\nimport { Text } from '../interfaces/text'\n\nexport const unhangRange: EditorInterface['unhangRange'] = (\n editor,\n range,\n options = {}\n) => {\n const { voids = false } = options\n let [start, end] = Range.edges(range)\n\n // PERF: exit early if we can guarantee that the range isn't hanging.\n if (\n start.offset !== 0 ||\n end.offset !== 0 ||\n Range.isCollapsed(range) ||\n Path.hasPrevious(end.path)\n ) {\n return range\n }\n\n const endBlock = Editor.above(editor, {\n at: end,\n match: n => Element.isElement(n) && Editor.isBlock(editor, n),\n voids,\n })\n const blockPath = endBlock ? endBlock[1] : []\n const first = Editor.start(editor, start)\n const before = { anchor: first, focus: end }\n let skip = true\n\n for (const [node, path] of Editor.nodes(editor, {\n at: before,\n match: Text.isText,\n reverse: true,\n voids,\n })) {\n if (skip) {\n skip = false\n continue\n }\n\n if (node.text !== '' || Path.isBefore(path, blockPath)) {\n end = { path, offset: node.text.length }\n break\n }\n }\n\n return { anchor: start, focus: end }\n}\n","import { Editor, EditorInterface } from '../interfaces/editor'\n\nexport const withoutNormalizing: EditorInterface['withoutNormalizing'] = (\n editor,\n fn\n) => {\n const value = Editor.isNormalizing(editor)\n Editor.setNormalizing(editor, false)\n try {\n fn()\n } finally {\n Editor.setNormalizing(editor, value)\n }\n Editor.normalize(editor)\n}\n","import { TextTransforms } from '../interfaces/transforms/text'\nimport { Editor } from '../interfaces/editor'\nimport { Range } from '../interfaces/range'\nimport { Point } from '../interfaces/point'\nimport { Path } from '../interfaces/path'\nimport { Transforms } from '../interfaces/transforms'\nimport { Element } from '../interfaces/element'\nimport { NodeEntry } from '../interfaces/node'\n\nexport const deleteText: TextTransforms['delete'] = (editor, options = {}) => {\n Editor.withoutNormalizing(editor, () => {\n const {\n reverse = false,\n unit = 'character',\n distance = 1,\n voids = false,\n } = options\n let { at = editor.selection, hanging = false } = options\n\n if (!at) {\n return\n }\n\n let isCollapsed = false\n if (Range.isRange(at) && Range.isCollapsed(at)) {\n isCollapsed = true\n at = at.anchor\n }\n\n if (Point.isPoint(at)) {\n const furthestVoid = Editor.void(editor, { at, mode: 'highest' })\n\n if (!voids && furthestVoid) {\n const [, voidPath] = furthestVoid\n at = voidPath\n } else {\n const opts = { unit, distance }\n const target = reverse\n ? Editor.before(editor, at, opts) || Editor.start(editor, [])\n : Editor.after(editor, at, opts) || Editor.end(editor, [])\n at = { anchor: at, focus: target }\n hanging = true\n }\n }\n\n if (Path.isPath(at)) {\n Transforms.removeNodes(editor, { at, voids })\n return\n }\n\n if (Range.isCollapsed(at)) {\n return\n }\n\n if (!hanging) {\n const [, end] = Range.edges(at)\n const endOfDoc = Editor.end(editor, [])\n\n if (!Point.equals(end, endOfDoc)) {\n at = Editor.unhangRange(editor, at, { voids })\n }\n }\n\n let [start, end] = Range.edges(at)\n const startBlock = Editor.above(editor, {\n match: n => Element.isElement(n) && Editor.isBlock(editor, n),\n at: start,\n voids,\n })\n const endBlock = Editor.above(editor, {\n match: n => Element.isElement(n) && Editor.isBlock(editor, n),\n at: end,\n voids,\n })\n const isAcrossBlocks =\n startBlock && endBlock && !Path.equals(startBlock[1], endBlock[1])\n const isSingleText = Path.equals(start.path, end.path)\n const startNonEditable = voids\n ? null\n : Editor.void(editor, { at: start, mode: 'highest' }) ??\n Editor.elementReadOnly(editor, { at: start, mode: 'highest' })\n const endNonEditable = voids\n ? null\n : Editor.void(editor, { at: end, mode: 'highest' }) ??\n Editor.elementReadOnly(editor, { at: end, mode: 'highest' })\n\n // If the start or end points are inside an inline void, nudge them out.\n if (startNonEditable) {\n const before = Editor.before(editor, start)\n\n if (before && startBlock && Path.isAncestor(startBlock[1], before.path)) {\n start = before\n }\n }\n\n if (endNonEditable) {\n const after = Editor.after(editor, end)\n\n if (after && endBlock && Path.isAncestor(endBlock[1], after.path)) {\n end = after\n }\n }\n\n // Get the highest nodes that are completely inside the range, as well as\n // the start and end nodes.\n const matches: NodeEntry[] = []\n let lastPath: Path | undefined\n\n for (const entry of Editor.nodes(editor, { at, voids })) {\n const [node, path] = entry\n\n if (lastPath && Path.compare(path, lastPath) === 0) {\n continue\n }\n\n if (\n (!voids &&\n Element.isElement(node) &&\n (Editor.isVoid(editor, node) ||\n Editor.isElementReadOnly(editor, node))) ||\n (!Path.isCommon(path, start.path) && !Path.isCommon(path, end.path))\n ) {\n matches.push(entry)\n lastPath = path\n }\n }\n\n const pathRefs = Array.from(matches, ([, p]) => Editor.pathRef(editor, p))\n const startRef = Editor.pointRef(editor, start)\n const endRef = Editor.pointRef(editor, end)\n\n let removedText = ''\n\n if (!isSingleText && !startNonEditable) {\n const point = startRef.current!\n const [node] = Editor.leaf(editor, point)\n const { path } = point\n const { offset } = start\n const text = node.text.slice(offset)\n if (text.length > 0) {\n editor.apply({ type: 'remove_text', path, offset, text })\n removedText = text\n }\n }\n\n pathRefs\n .reverse()\n .map(r => r.unref())\n .filter((r): r is Path => r !== null)\n .forEach(p => Transforms.removeNodes(editor, { at: p, voids }))\n\n if (!endNonEditable) {\n const point = endRef.current!\n const [node] = Editor.leaf(editor, point)\n const { path } = point\n const offset = isSingleText ? start.offset : 0\n const text = node.text.slice(offset, end.offset)\n if (text.length > 0) {\n editor.apply({ type: 'remove_text', path, offset, text })\n removedText = text\n }\n }\n\n if (!isSingleText && isAcrossBlocks && endRef.current && startRef.current) {\n Transforms.mergeNodes(editor, {\n at: endRef.current,\n hanging: true,\n voids,\n })\n }\n\n // For Thai script, deleting N character(s) backward should delete\n // N code point(s) instead of an entire grapheme cluster.\n // Therefore, the remaining code points should be inserted back.\n if (\n isCollapsed &&\n reverse &&\n unit === 'character' &&\n removedText.length > 1 &&\n removedText.match(/[\\u0E00-\\u0E7F]+/)\n ) {\n Transforms.insertText(\n editor,\n removedText.slice(0, removedText.length - distance)\n )\n }\n\n const startUnref = startRef.unref()\n const endUnref = endRef.unref()\n const point = reverse ? startUnref || endUnref : endUnref || startUnref\n\n if (options.at == null && point) {\n Transforms.select(editor, point)\n }\n })\n}\n","import { Transforms } from '../interfaces/transforms'\nimport { Editor } from '../interfaces/editor'\nimport { Range } from '../interfaces/range'\nimport { Path } from '../interfaces/path'\nimport { Element } from '../interfaces/element'\nimport { Node, NodeEntry } from '../interfaces/node'\nimport { Text } from '../interfaces/text'\nimport { TextTransforms } from '../interfaces/transforms/text'\nimport { getDefaultInsertLocation } from '../utils'\n\nexport const insertFragment: TextTransforms['insertFragment'] = (\n editor,\n fragment,\n options = {}\n) => {\n Editor.withoutNormalizing(editor, () => {\n const { hanging = false, voids = false } = options\n let { at = getDefaultInsertLocation(editor) } = options\n\n if (!fragment.length) {\n return\n }\n\n if (Range.isRange(at)) {\n if (!hanging) {\n at = Editor.unhangRange(editor, at, { voids })\n }\n\n if (Range.isCollapsed(at)) {\n at = at.anchor\n } else {\n const [, end] = Range.edges(at)\n\n if (!voids && Editor.void(editor, { at: end })) {\n return\n }\n\n const pointRef = Editor.pointRef(editor, end)\n Transforms.delete(editor, { at })\n at = pointRef.unref()!\n }\n } else if (Path.isPath(at)) {\n at = Editor.start(editor, at)\n }\n\n if (!voids && Editor.void(editor, { at })) {\n return\n }\n\n // If the insert point is at the edge of an inline node, move it outside\n // instead since it will need to be split otherwise.\n const inlineElementMatch = Editor.above(editor, {\n at,\n match: n => Element.isElement(n) && Editor.isInline(editor, n),\n mode: 'highest',\n voids,\n })\n\n if (inlineElementMatch) {\n const [, inlinePath] = inlineElementMatch\n\n if (Editor.isEnd(editor, at, inlinePath)) {\n const after = Editor.after(editor, inlinePath)!\n at = after\n } else if (Editor.isStart(editor, at, inlinePath)) {\n const before = Editor.before(editor, inlinePath)!\n at = before\n }\n }\n\n const blockMatch = Editor.above(editor, {\n match: n => Element.isElement(n) && Editor.isBlock(editor, n),\n at,\n voids,\n })!\n const [, blockPath] = blockMatch\n const isBlockStart = Editor.isStart(editor, at, blockPath)\n const isBlockEnd = Editor.isEnd(editor, at, blockPath)\n const isBlockEmpty = isBlockStart && isBlockEnd\n const mergeStart = !isBlockStart || (isBlockStart && isBlockEnd)\n const mergeEnd = !isBlockEnd\n const [, firstPath] = Node.first({ children: fragment }, [])\n const [, lastPath] = Node.last({ children: fragment }, [])\n\n const matches: NodeEntry[] = []\n const matcher = ([n, p]: NodeEntry) => {\n const isRoot = p.length === 0\n if (isRoot) {\n return false\n }\n\n if (isBlockEmpty) {\n return true\n }\n\n if (\n mergeStart &&\n Path.isAncestor(p, firstPath) &&\n Element.isElement(n) &&\n !editor.isVoid(n) &&\n !editor.isInline(n)\n ) {\n return false\n }\n\n if (\n mergeEnd &&\n Path.isAncestor(p, lastPath) &&\n Element.isElement(n) &&\n !editor.isVoid(n) &&\n !editor.isInline(n)\n ) {\n return false\n }\n\n return true\n }\n\n for (const entry of Node.nodes({ children: fragment }, { pass: matcher })) {\n if (matcher(entry)) {\n matches.push(entry)\n }\n }\n\n const starts = []\n const middles = []\n const ends = []\n let starting = true\n let hasBlocks = false\n\n for (const [node] of matches) {\n if (Element.isElement(node) && !editor.isInline(node)) {\n starting = false\n hasBlocks = true\n middles.push(node)\n } else if (starting) {\n starts.push(node)\n } else {\n ends.push(node)\n }\n }\n\n const [inlineMatch] = Editor.nodes(editor, {\n at,\n match: n => Text.isText(n) || Editor.isInline(editor, n),\n mode: 'highest',\n voids,\n })!\n\n const [, inlinePath] = inlineMatch\n const isInlineStart = Editor.isStart(editor, at, inlinePath)\n const isInlineEnd = Editor.isEnd(editor, at, inlinePath)\n\n const middleRef = Editor.pathRef(\n editor,\n isBlockEnd && !ends.length ? Path.next(blockPath) : blockPath\n )\n\n const endRef = Editor.pathRef(\n editor,\n isInlineEnd ? Path.next(inlinePath) : inlinePath\n )\n\n Transforms.splitNodes(editor, {\n at,\n match: n =>\n hasBlocks\n ? Element.isElement(n) && Editor.isBlock(editor, n)\n : Text.isText(n) || Editor.isInline(editor, n),\n mode: hasBlocks ? 'lowest' : 'highest',\n always:\n hasBlocks &&\n (!isBlockStart || starts.length > 0) &&\n (!isBlockEnd || ends.length > 0),\n voids,\n })\n\n const startRef = Editor.pathRef(\n editor,\n !isInlineStart || (isInlineStart && isInlineEnd)\n ? Path.next(inlinePath)\n : inlinePath\n )\n\n Transforms.insertNodes(editor, starts, {\n at: startRef.current!,\n match: n => Text.isText(n) || Editor.isInline(editor, n),\n mode: 'highest',\n voids,\n })\n\n if (isBlockEmpty && !starts.length && middles.length && !ends.length) {\n Transforms.delete(editor, { at: blockPath, voids })\n }\n\n Transforms.insertNodes(editor, middles, {\n at: middleRef.current!,\n match: n => Element.isElement(n) && Editor.isBlock(editor, n),\n mode: 'lowest',\n voids,\n })\n\n Transforms.insertNodes(editor, ends, {\n at: endRef.current!,\n match: n => Text.isText(n) || Editor.isInline(editor, n),\n mode: 'highest',\n voids,\n })\n\n if (!options.at) {\n let path\n\n if (ends.length > 0 && endRef.current) {\n path = Path.previous(endRef.current)\n } else if (middles.length > 0 && middleRef.current) {\n path = Path.previous(middleRef.current)\n } else if (startRef.current) {\n path = Path.previous(startRef.current)\n }\n\n if (path) {\n const end = Editor.end(editor, path)\n Transforms.select(editor, end)\n }\n }\n\n startRef.unref()\n middleRef.unref()\n endRef.unref()\n })\n}\n","import { SelectionTransforms } from '../interfaces/transforms/selection'\nimport { Transforms } from '../interfaces/transforms'\nimport { Range } from '../interfaces/range'\n\nexport const collapse: SelectionTransforms['collapse'] = (\n editor,\n options = {}\n) => {\n const { edge = 'anchor' } = options\n const { selection } = editor\n\n if (!selection) {\n return\n } else if (edge === 'anchor') {\n Transforms.select(editor, selection.anchor)\n } else if (edge === 'focus') {\n Transforms.select(editor, selection.focus)\n } else if (edge === 'start') {\n const [start] = Range.edges(selection)\n Transforms.select(editor, start)\n } else if (edge === 'end') {\n const [, end] = Range.edges(selection)\n Transforms.select(editor, end)\n }\n}\n","import { SelectionTransforms } from '../interfaces/transforms/selection'\n\nexport const deselect: SelectionTransforms['deselect'] = editor => {\n const { selection } = editor\n\n if (selection) {\n editor.apply({\n type: 'set_selection',\n properties: selection,\n newProperties: null,\n })\n }\n}\n","import { SelectionTransforms } from '../interfaces/transforms/selection'\nimport { Range } from '../interfaces/range'\nimport { Editor } from '../interfaces/editor'\nimport { Transforms } from '../interfaces/transforms'\n\nexport const move: SelectionTransforms['move'] = (editor, options = {}) => {\n const { selection } = editor\n const { distance = 1, unit = 'character', reverse = false } = options\n let { edge = null } = options\n\n if (!selection) {\n return\n }\n\n if (edge === 'start') {\n edge = Range.isBackward(selection) ? 'focus' : 'anchor'\n }\n\n if (edge === 'end') {\n edge = Range.isBackward(selection) ? 'anchor' : 'focus'\n }\n\n const { anchor, focus } = selection\n const opts = { distance, unit, ignoreNonSelectable: true }\n const props: Partial<Range> = {}\n\n if (edge == null || edge === 'anchor') {\n const point = reverse\n ? Editor.before(editor, anchor, opts)\n : Editor.after(editor, anchor, opts)\n\n if (point) {\n props.anchor = point\n }\n }\n\n if (edge == null || edge === 'focus') {\n const point = reverse\n ? Editor.before(editor, focus, opts)\n : Editor.after(editor, focus, opts)\n\n if (point) {\n props.focus = point\n }\n }\n\n Transforms.setSelection(editor, props)\n}\n","import { SelectionTransforms } from '../interfaces/transforms/selection'\nimport { Editor } from '../interfaces/editor'\nimport { Transforms } from '../interfaces/transforms'\nimport { Range } from '../interfaces/range'\nimport { Scrubber } from '../interfaces/scrubber'\n\nexport const select: SelectionTransforms['select'] = (editor, target) => {\n const { selection } = editor\n target = Editor.range(editor, target)\n\n if (selection) {\n Transforms.setSelection(editor, target)\n return\n }\n\n if (!Range.isRange(target)) {\n throw new Error(\n `When setting the selection and the current selection is \\`null\\` you must provide at least an \\`anchor\\` and \\`focus\\`, but you passed: ${Scrubber.stringify(\n target\n )}`\n )\n }\n\n editor.apply({\n type: 'set_selection',\n properties: selection,\n newProperties: target,\n })\n}\n","import { SelectionTransforms } from '../interfaces/transforms/selection'\nimport { Range } from '../interfaces/range'\nimport { Transforms } from '../interfaces/transforms'\n\nexport const setPoint: SelectionTransforms['setPoint'] = (\n editor,\n props,\n options = {}\n) => {\n const { selection } = editor\n let { edge = 'both' } = options\n\n if (!selection) {\n return\n }\n\n if (edge === 'start') {\n edge = Range.isBackward(selection) ? 'focus' : 'anchor'\n }\n\n if (edge === 'end') {\n edge = Range.isBackward(selection) ? 'anchor' : 'focus'\n }\n\n const { anchor, focus } = selection\n const point = edge === 'anchor' ? anchor : focus\n\n Transforms.setSelection(editor, {\n [edge === 'anchor' ? 'anchor' : 'focus']: { ...point, ...props },\n })\n}\n","import { SelectionTransforms } from '../interfaces/transforms/selection'\nimport { Range } from '../interfaces/range'\nimport { Point } from '../interfaces/point'\n\nexport const setSelection: SelectionTransforms['setSelection'] = (\n editor,\n props\n) => {\n const { selection } = editor\n const oldProps: Partial<Range> | null = {}\n const newProps: Partial<Range> = {}\n\n if (!selection) {\n return\n }\n\n for (const k in props) {\n if (\n (k === 'anchor' &&\n props.anchor != null &&\n !Point.equals(props.anchor, selection.anchor)) ||\n (k === 'focus' &&\n props.focus != null &&\n !Point.equals(props.focus, selection.focus)) ||\n (k !== 'anchor' && k !== 'focus' && props[k] !== selection[k])\n ) {\n oldProps[k] = selection[k]\n newProps[k] = props[k]\n }\n }\n\n if (Object.keys(oldProps).length > 0) {\n editor.apply({\n type: 'set_selection',\n properties: oldProps,\n newProperties: newProps,\n })\n }\n}\n","import { NodeTransforms } from '../interfaces/transforms/node'\nimport { Editor } from '../interfaces/editor'\nimport { Node } from '../interfaces/node'\nimport { Range } from '../interfaces/range'\nimport { Transforms } from '../interfaces/transforms'\nimport { Point } from '../interfaces/point'\nimport { Text } from '../interfaces/text'\nimport { Element } from '../interfaces/element'\nimport { Path } from '../interfaces/path'\nimport { getDefaultInsertLocation } from '../utils'\n\nexport const insertNodes: NodeTransforms['insertNodes'] = (\n editor,\n nodes,\n options = {}\n) => {\n Editor.withoutNormalizing(editor, () => {\n const { hanging = false, voids = false, mode = 'lowest' } = options\n let { at, match, select } = options\n\n if (Node.isNode(nodes)) {\n nodes = [nodes]\n }\n\n if (nodes.length === 0) {\n return\n }\n\n const [node] = nodes\n\n if (!at) {\n at = getDefaultInsertLocation(editor)\n select = true\n }\n\n if (select == null) {\n select = false\n }\n\n if (Range.isRange(at)) {\n if (!hanging) {\n at = Editor.unhangRange(editor, at, { voids })\n }\n\n if (Range.isCollapsed(at)) {\n at = at.anchor\n } else {\n const [, end] = Range.edges(at)\n const pointRef = Editor.pointRef(editor, end)\n Transforms.delete(editor, { at })\n at = pointRef.unref()!\n }\n }\n\n if (Point.isPoint(at)) {\n if (match == null) {\n if (Text.isText(node)) {\n match = n => Text.isText(n)\n } else if (editor.isInline(node)) {\n match = n => Text.isText(n) || Editor.isInline(editor, n)\n } else {\n match = n => Element.isElement(n) && Editor.isBlock(editor, n)\n }\n }\n\n const [entry] = Editor.nodes(editor, {\n at: at.path,\n match,\n mode,\n voids,\n })\n\n if (entry) {\n const [, matchPath] = entry\n const pathRef = Editor.pathRef(editor, matchPath)\n const isAtEnd = Editor.isEnd(editor, at, matchPath)\n Transforms.splitNodes(editor, { at, match, mode, voids })\n const path = pathRef.unref()!\n at = isAtEnd ? Path.next(path) : path\n } else {\n return\n }\n }\n\n const parentPath = Path.parent(at)\n let index = at[at.length - 1]\n\n if (!voids && Editor.void(editor, { at: parentPath })) {\n return\n }\n\n for (const node of nodes) {\n const path = parentPath.concat(index)\n index++\n editor.apply({ type: 'insert_node', path, node })\n at = Path.next(at)\n }\n at = Path.previous(at)\n\n if (select) {\n const point = Editor.end(editor, at)\n\n if (point) {\n Transforms.select(editor, point)\n }\n }\n })\n}\n","import { NodeTransforms } from '../interfaces/transforms/node'\nimport { Editor } from '../interfaces/editor'\nimport { Path } from '../interfaces/path'\nimport { matchPath } from '../utils/match-path'\nimport { Element } from '../interfaces/element'\nimport { Ancestor, NodeEntry } from '../interfaces/node'\nimport { Transforms } from '../interfaces/transforms'\n\nexport const liftNodes: NodeTransforms['liftNodes'] = (\n editor,\n options = {}\n) => {\n Editor.withoutNormalizing(editor, () => {\n const { at = editor.selection, mode = 'lowest', voids = false } = options\n let { match } = options\n\n if (match == null) {\n match = Path.isPath(at)\n ? matchPath(editor, at)\n : n => Element.isElement(n) && Editor.isBlock(editor, n)\n }\n\n if (!at) {\n return\n }\n\n const matches = Editor.nodes(editor, { at, match, mode, voids })\n const pathRefs = Array.from(matches, ([, p]) => Editor.pathRef(editor, p))\n\n for (const pathRef of pathRefs) {\n const path = pathRef.unref()!\n\n if (path.length < 2) {\n throw new Error(\n `Cannot lift node at a path [${path}] because it has a depth of less than \\`2\\`.`\n )\n }\n\n const parentNodeEntry = Editor.node(editor, Path.parent(path))\n const [parent, parentPath] = parentNodeEntry as NodeEntry<Ancestor>\n const index = path[path.length - 1]\n const { length } = parent.children\n\n if (length === 1) {\n const toPath = Path.next(parentPath)\n Transforms.moveNodes(editor, { at: path, to: toPath, voids })\n Transforms.removeNodes(editor, { at: parentPath, voids })\n } else if (index === 0) {\n Transforms.moveNodes(editor, { at: path, to: parentPath, voids })\n } else if (index === length - 1) {\n const toPath = Path.next(parentPath)\n Transforms.moveNodes(editor, { at: path, to: toPath, voids })\n } else {\n const splitPath = Path.next(path)\n const toPath = Path.next(parentPath)\n Transforms.splitNodes(editor, { at: splitPath, voids })\n Transforms.moveNodes(editor, { at: path, to: toPath, voids })\n }\n }\n })\n}\n","import { NodeTransforms } from '../interfaces/transforms/node'\nimport { Editor } from '../interfaces/editor'\nimport { Path } from '../interfaces/path'\nimport { Element } from '../interfaces/element'\nimport { Range } from '../interfaces/range'\nimport { Transforms } from '../interfaces/transforms'\nimport { Text } from '../interfaces/text'\nimport { Scrubber } from '../interfaces/scrubber'\nimport { Node } from '../interfaces/node'\n\nconst hasSingleChildNest = (editor: Editor, node: Node): boolean => {\n if (Element.isElement(node)) {\n const element = node as Element\n if (Editor.isVoid(editor, node)) {\n return true\n } else if (element.children.length === 1) {\n return hasSingleChildNest(editor, element.children[0])\n } else {\n return false\n }\n } else if (Editor.isEditor(node)) {\n return false\n } else {\n return true\n }\n}\n\nexport const mergeNodes: NodeTransforms['mergeNodes'] = (\n editor,\n options = {}\n) => {\n Editor.withoutNormalizing(editor, () => {\n let { match, at = editor.selection } = options\n const { hanging = false, voids = false, mode = 'lowest' } = options\n\n if (!at) {\n return\n }\n\n if (match == null) {\n if (Path.isPath(at)) {\n const [parent] = Editor.parent(editor, at)\n match = n => parent.children.includes(n)\n } else {\n match = n => Element.isElement(n) && Editor.isBlock(editor, n)\n }\n }\n\n if (!hanging && Range.isRange(at)) {\n at = Editor.unhangRange(editor, at, { voids })\n }\n\n if (Range.isRange(at)) {\n if (Range.isCollapsed(at)) {\n at = at.anchor\n } else {\n const [, end] = Range.edges(at)\n const pointRef = Editor.pointRef(editor, end)\n Transforms.delete(editor, { at })\n at = pointRef.unref()!\n\n if (options.at == null) {\n Transforms.select(editor, at)\n }\n }\n }\n\n const [current] = Editor.nodes(editor, { at, match, voids, mode })\n const prev = Editor.previous(editor, { at, match, voids, mode })\n\n if (!current || !prev) {\n return\n }\n\n const [node, path] = current\n const [prevNode, prevPath] = prev\n\n if (path.length === 0 || prevPath.length === 0) {\n return\n }\n\n const newPath = Path.next(prevPath)\n const commonPath = Path.common(path, prevPath)\n const isPreviousSibling = Path.isSibling(path, prevPath)\n const levels = Array.from(Editor.levels(editor, { at: path }), ([n]) => n)\n .slice(commonPath.length)\n .slice(0, -1)\n\n // Determine if the merge will leave an ancestor of the path empty as a\n // result, in which case we'll want to remove it after merging.\n const emptyAncestor = Editor.above(editor, {\n at: path,\n mode: 'highest',\n match: n => levels.includes(n) && hasSingleChildNest(editor, n),\n })\n\n const emptyRef = emptyAncestor && Editor.pathRef(editor, emptyAncestor[1])\n let properties\n let position\n\n // Ensure that the nodes are equivalent, and figure out what the position\n // and extra properties of the merge will be.\n if (Text.isText(node) && Text.isText(prevNode)) {\n const { text, ...rest } = node\n position = prevNode.text.length\n properties = rest as Partial<Text>\n } else if (Element.isElement(node) && Element.isElement(prevNode)) {\n const { children, ...rest } = node\n position = prevNode.children.length\n properties = rest as Partial<Element>\n } else {\n throw new Error(\n `Cannot merge the node at path [${path}] with the previous sibling because it is not the same kind: ${Scrubber.stringify(\n node\n )} ${Scrubber.stringify(prevNode)}`\n )\n }\n\n // If the node isn't already the next sibling of the previous node, move\n // it so that it is before merging.\n if (!isPreviousSibling) {\n Transforms.moveNodes(editor, { at: path, to: newPath, voids })\n }\n\n // If there was going to be an empty ancestor of the node that was merged,\n // we remove it from the tree.\n if (emptyRef) {\n Transforms.removeNodes(editor, { at: emptyRef.current!, voids })\n }\n\n // If the target node that we're merging with is empty, remove it instead\n // of merging the two. This is a common rich text editor behavior to\n // prevent losing formatting when deleting entire nodes when you have a\n // hanging selection.\n // if prevNode is first child in parent,don't remove it.\n if (\n (Element.isElement(prevNode) && Editor.isEmpty(editor, prevNode)) ||\n (Text.isText(prevNode) &&\n prevNode.text === '' &&\n prevPath[prevPath.length - 1] !== 0)\n ) {\n Transforms.removeNodes(editor, { at: prevPath, voids })\n } else {\n editor.apply({\n type: 'merge_node',\n path: newPath,\n position,\n properties,\n })\n }\n\n if (emptyRef) {\n emptyRef.unref()\n }\n })\n}\n","import { NodeTransforms } from '../interfaces/transforms/node'\nimport { Editor } from '../interfaces/editor'\nimport { Path } from '../interfaces/path'\nimport { matchPath } from '../utils/match-path'\nimport { Element } from '../interfaces/element'\n\nexport const moveNodes: NodeTransforms['moveNodes'] = (editor, options) => {\n Editor.withoutNormalizing(editor, () => {\n const {\n to,\n at = editor.selection,\n mode = 'lowest',\n voids = false,\n } = options\n let { match } = options\n\n if (!at) {\n return\n }\n\n if (match == null) {\n match = Path.isPath(at)\n ? matchPath(editor, at)\n : n => Element.isElement(n) && Editor.isBlock(editor, n)\n }\n\n const toRef = Editor.pathRef(editor, to)\n const targets = Editor.nodes(editor, { at, match, mode, voids })\n const pathRefs = Array.from(targets, ([, p]) => Editor.pathRef(editor, p))\n\n for (const pathRef of pathRefs) {\n const path = pathRef.unref()!\n const newPath = toRef.current!\n\n if (path.length !== 0) {\n editor.apply({ type: 'move_node', path, newPath })\n }\n\n if (\n toRef.current &&\n Path.isSibling(newPath, path) &&\n Path.isAfter(newPath, path)\n ) {\n // When performing a sibling move to a later index, the path at the destination is shifted\n // to before the insertion point instead of after. To ensure our group of nodes are inserted\n // in the correct order we increment toRef to account for that\n toRef.current = Path.next(toRef.current)\n }\n }\n\n toRef.unref()\n })\n}\n","import { NodeTransforms } from '../interfaces/transforms/node'\nimport { Editor } from '../interfaces/editor'\nimport { Path } from '../interfaces/path'\nimport { matchPath } from '../utils/match-path'\nimport { Element } from '../interfaces/element'\nimport { Range } from '../interfaces/range'\n\nexport const removeNodes: NodeTransforms['removeNodes'] = (\n editor,\n options = {}\n) => {\n Editor.withoutNormalizing(editor, () => {\n const { hanging = false, voids = false, mode = 'lowest' } = options\n let { at = editor.selection, match } = options\n\n if (!at) {\n return\n }\n\n if (match == null) {\n match = Path.isPath(at)\n ? matchPath(editor, at)\n : n => Element.isElement(n) && Editor.isBlock(editor, n)\n }\n\n if (!hanging && Range.isRange(at)) {\n at = Editor.unhangRange(editor, at, { voids })\n }\n\n const depths = Editor.nodes(editor, { at, match, mode, voids })\n const pathRefs = Array.from(depths, ([, p]) => Editor.pathRef(editor, p))\n\n for (const pathRef of pathRefs) {\n const path = pathRef.unref()!\n\n if (path) {\n const [node] = Editor.node(editor, path)\n editor.apply({ type: 'remove_node', path, node })\n }\n }\n })\n}\n","import { NodeTransforms } from '../interfaces/transforms/node'\nimport { Editor } from '../interfaces/editor'\nimport { Path } from '../interfaces/path'\nimport { matchPath } from '../utils/match-path'\nimport { Element } from '../interfaces/element'\nimport { Range } from '../interfaces/range'\nimport { Transforms } from '../interfaces/transforms'\nimport { Node } from '../interfaces/node'\n\nexport const setNodes: NodeTransforms['setNodes'] = (\n editor,\n props: Partial<Node>,\n options = {}\n) => {\n Editor.withoutNormalizing(editor, () => {\n let { match, at = editor.selection, compare, merge } = options\n const {\n hanging = false,\n mode = 'lowest',\n split = false,\n voids = false,\n } = options\n\n if (!at) {\n return\n }\n\n if (match == null) {\n match = Path.isPath(at)\n ? matchPath(editor, at)\n : n => Element.isElement(n) && Editor.isBlock(editor, n)\n }\n\n if (!hanging && Range.isRange(at)) {\n at = Editor.unhangRange(editor, at, { voids })\n }\n\n if (split && Range.isRange(at)) {\n if (\n Range.isCollapsed(at) &&\n Editor.leaf(editor, at.anchor)[0].text.length > 0\n ) {\n // If the range is collapsed in a non-empty node and 'split' is true, there's nothing to\n // set that won't get normalized away\n return\n }\n const rangeRef = Editor.rangeRef(editor, at, { affinity: 'inward' })\n const [start, end] = Range.edges(at)\n const splitMode = mode === 'lowest' ? 'lowest' : 'highest'\n const endAtEndOfNode = Editor.isEnd(editor, end, end.path)\n Transforms.splitNodes(editor, {\n at: end,\n match,\n mode: splitMode,\n voids,\n always: !endAtEndOfNode,\n })\n const startAtStartOfNode = Editor.isStart(editor, start, start.path)\n Transforms.splitNodes(editor, {\n at: start,\n match,\n mode: splitMode,\n voids,\n always: !startAtStartOfNode,\n })\n at = rangeRef.unref()!\n\n if (options.at == null) {\n Transforms.select(editor, at)\n }\n }\n\n if (!compare) {\n compare = (prop, nodeProp) => prop !== nodeProp\n }\n\n for (const [node, path] of Editor.nodes(editor, {\n at,\n match,\n mode,\n voids,\n })) {\n const properties: Partial<Node> = {}\n const newProperties: Partial<Node> = {}\n\n // You can't set properties on the editor node.\n if (path.length === 0) {\n continue\n }\n\n let hasChanges = false\n\n for (const k in props) {\n if (k === 'children' || k === 'text') {\n continue\n }\n\n if (compare(props[k], node[k])) {\n hasChanges = true\n // Omit new properties from the old properties list\n if (node.hasOwnProperty(k)) properties[k] = node[k]\n // Omit properties that have been removed from the new properties list\n if (merge) {\n if (props[k] != null) newProperties[k] = merge(node[k], props[k])\n } else {\n if (props[k] != null) newProperties[k] = props[k]\n }\n }\n }\n\n if (hasChanges) {\n editor.apply({\n type: 'set_node',\n path,\n properties,\n newProperties,\n })\n }\n }\n })\n}\n","import { NodeTransforms } from '../interfaces/transforms/node'\nimport { Editor } from '../interfaces/editor'\nimport { Element } from '../interfaces/element'\nimport { Range } from '../interfaces/range'\nimport { Path } from '../interfaces/path'\nimport { PointRef } from '../interfaces/point-ref'\nimport { Transforms } from '../interfaces/transforms'\nimport { Node } from '../interfaces/node'\nimport { Point } from '../interfaces/point'\n\n/**\n * Convert a range into a point by deleting it's content.\n */\nconst deleteRange = (editor: Editor, range: Range): Point | null => {\n if (Range.isCollapsed(range)) {\n return range.anchor\n } else {\n const [, end] = Range.edges(range)\n const pointRef = Editor.pointRef(editor, end)\n Transforms.delete(editor, { at: range })\n return pointRef.unref()\n }\n}\n\nexport const splitNodes: NodeTransforms['splitNodes'] = (\n editor,\n options = {}\n) => {\n Editor.withoutNormalizing(editor, () => {\n const { mode = 'lowest', voids = false } = options\n let { match, at = editor.selection, height = 0, always = false } = options\n\n if (match == null) {\n match = n => Element.isElement(n) && Editor.isBlock(editor, n)\n }\n\n if (Range.isRange(at)) {\n at = deleteRange(editor, at)\n }\n\n // If the target is a path, the default height-skipping and position\n // counters need to account for us potentially splitting at a non-leaf.\n if (Path.isPath(at)) {\n const path = at\n const point = Editor.point(editor, path)\n const [parent] = Editor.parent(editor, path)\n match = n => n === parent\n height = point.path.length - path.length + 1\n at = point\n always = true\n }\n\n if (!at) {\n return\n }\n\n const beforeRef = Editor.pointRef(editor, at, {\n affinity: 'backward',\n })\n let afterRef: PointRef | undefined\n try {\n const [highest] = Editor.nodes(editor, { at, match, mode, voids })\n\n if (!highest) {\n return\n }\n\n const voidMatch = Editor.void(editor, { at, mode: 'highest' })\n const nudge = 0\n\n if (!voids && voidMatch) {\n const [voidNode, voidPath] = voidMatch\n\n if (Element.isElement(voidNode) && editor.isInline(voidNode)) {\n let after = Editor.after(editor, voidPath)\n\n if (!after) {\n const text = { text: '' }\n const afterPath = Path.next(voidPath)\n Transforms.insertNodes(editor, text, { at: afterPath, voids })\n after = Editor.point(editor, afterPath)!\n }\n\n at = after\n always = true\n }\n\n const siblingHeight = at.path.length - voidPath.length\n height = siblingHeight + 1\n always = true\n }\n\n afterRef = Editor.pointRef(editor, at)\n const depth = at.path.length - height\n const [, highestPath] = highest\n const lowestPath = at.path.slice(0, depth)\n let position = height === 0 ? at.offset : at.path[depth] + nudge\n\n for (const [node, path] of Editor.levels(editor, {\n at: lowestPath,\n reverse: true,\n voids,\n })) {\n let split = false\n\n if (\n path.length < highestPath.length ||\n path.length === 0 ||\n (!voids && Element.isElement(node) && Editor.isVoid(editor, node))\n ) {\n break\n }\n\n const point = beforeRef.current!\n const isEnd = Editor.isEnd(editor, point, path)\n\n if (always || !beforeRef || !Editor.isEdge(editor, point, path)) {\n split = true\n const properties = Node.extractProps(node)\n editor.apply({\n type: 'split_node',\n path,\n position,\n properties,\n })\n }\n\n position = path[path.length - 1] + (split || isEnd ? 1 : 0)\n }\n\n if (options.at == null) {\n const point = afterRef.current || Editor.end(editor, [])\n Transforms.select(editor, point)\n }\n } finally {\n beforeRef.unref()\n afterRef?.unref()\n }\n })\n}\n","import { NodeTransforms } from '../interfaces/transforms/node'\nimport { Transforms } from '../interfaces/transforms'\n\nexport const unsetNodes: NodeTransforms['unsetNodes'] = (\n editor,\n props,\n options = {}\n) => {\n if (!Array.isArray(props)) {\n props = [props]\n }\n\n const obj = {}\n\n for (const key of props) {\n obj[key] = null\n }\n\n Transforms.setNodes(editor, obj, options)\n}\n","import { NodeTransforms } from '../interfaces/transforms/node'\nimport { Editor } from '../interfaces/editor'\nimport { Path } from '../interfaces/path'\nimport { matchPath } from '../utils/match-path'\nimport { Element } from '../interfaces/element'\nimport { Range } from '../interfaces/range'\nimport { Transforms } from '../interfaces/transforms'\n\nexport const unwrapNodes: NodeTransforms['unwrapNodes'] = (\n editor,\n options = {}\n) => {\n Editor.withoutNormalizing(editor, () => {\n const { mode = 'lowest', split = false, voids = false } = options\n let { at = editor.selection, match } = options\n\n if (!at) {\n return\n }\n\n if (match == null) {\n match = Path.isPath(at)\n ? matchPath(editor, at)\n : n => Element.isElement(n) && Editor.isBlock(editor, n)\n }\n\n if (Path.isPath(at)) {\n at = Editor.range(editor, at)\n }\n\n const rangeRef = Range.isRange(at) ? Editor.rangeRef(editor, at) : null\n const matches = Editor.nodes(editor, { at, match, mode, voids })\n const pathRefs = Array.from(\n matches,\n ([, p]) => Editor.pathRef(editor, p)\n // unwrapNode will call liftNode which does not support splitting the node when nested.\n // If we do not reverse the order and call it from top to the bottom, it will remove all blocks\n // that wrap target node. So we reverse the order.\n ).reverse()\n\n for (const pathRef of pathRefs) {\n const path = pathRef.unref()!\n const [node] = Editor.node(editor, path)\n let range = Editor.range(editor, path)\n\n if (split && rangeRef) {\n range = Range.intersection(rangeRef.current!, range)!\n }\n\n Transforms.liftNodes(editor, {\n at: range,\n match: n => Element.isAncestor(node) && node.children.includes(n),\n voids,\n })\n }\n\n if (rangeRef) {\n rangeRef.unref()\n }\n })\n}\n","import { NodeTransforms } from '../interfaces/transforms/node'\nimport { Editor } from '../interfaces/editor'\nimport { Path } from '../interfaces/path'\nimport { matchPath } from '../utils/match-path'\nimport { Element } from '../interfaces/element'\nimport { Text } from '../interfaces/text'\nimport { Range } from '../interfaces/range'\nimport { Transforms } from '../interfaces/transforms'\n\nexport const wrapNodes: NodeTransforms['wrapNodes'] = (\n editor,\n element,\n options = {}\n) => {\n Editor.withoutNormalizing(editor, () => {\n const { mode = 'lowest', split = false, voids = false } = options\n let { match, at = editor.selection } = options\n\n if (!at) {\n return\n }\n\n if (match == null) {\n if (Path.isPath(at)) {\n match = matchPath(editor, at)\n } else if (editor.isInline(element)) {\n match = n =>\n (Element.isElement(n) && Editor.isInline(editor, n)) || Text.isText(n)\n } else {\n match = n => Element.isElement(n) && Editor.isBlock(editor, n)\n }\n }\n\n if (split && Range.isRange(at)) {\n const [start, end] = Range.edges(at)\n const rangeRef = Editor.rangeRef(editor, at, {\n affinity: 'inward',\n })\n Transforms.splitNodes(editor, { at: end, match, voids })\n Transforms.splitNodes(editor, { at: start, match, voids })\n at = rangeRef.unref()!\n\n if (options.at == null) {\n Transforms.select(editor, at)\n }\n }\n\n const roots = Array.from(\n Editor.nodes(editor, {\n at,\n match: editor.isInline(element)\n ? n => Element.isElement(n) && Editor.isBlock(editor, n)\n : n => Editor.isEditor(n),\n mode: 'lowest',\n voids,\n })\n )\n\n for (const [, rootPath] of roots) {\n const a = Range.isRange(at)\n ? Range.intersection(at, Editor.range(editor, rootPath))\n : at\n\n if (!a) {\n continue\n }\n\n const matches = Array.from(\n Editor.nodes(editor, { at: a, match, mode, voids })\n )\n\n if (matches.length > 0) {\n const [first] = matches\n const last = matches[matches.length - 1]\n const [, firstPath] = first\n const [, lastPath] = last\n\n if (firstPath.length === 0 && lastPath.length === 0) {\n // if there's no matching parent - usually means the node is an editor - don't do anything\n continue\n }\n\n const commonPath = Path.equals(firstPath, lastPath)\n ? Path.parent(firstPath)\n : Path.common(firstPath, lastPath)\n\n const range = Editor.range(editor, firstPath, lastPath)\n const commonNodeEntry = Editor.node(editor, commonPath)\n const [commonNode] = commonNodeEntry\n const depth = commonPath.length + 1\n const wrapperPath = Path.next(lastPath.slice(0, depth))\n const wrapper = { ...element, children: [] }\n Transforms.insertNodes(editor, wrapper, { at: wrapperPath, voids })\n\n Transforms.moveNodes(editor, {\n at: range,\n match: n =>\n Element.isAncestor(commonNode) && commonNode.children.includes(n),\n to: wrapperPath.concat(0),\n voids,\n })\n }\n }\n })\n}\n","import {\n addMark,\n deleteFragment,\n Editor,\n getDirtyPaths,\n getFragment,\n insertBreak,\n insertFragment,\n insertNode,\n insertSoftBreak,\n insertText,\n normalizeNode,\n removeMark,\n shouldNormalize,\n} from './'\nimport { apply } from './core'\nimport {\n above,\n after,\n before,\n deleteBackward,\n deleteForward,\n edges,\n elementReadOnly,\n end,\n first,\n fragment,\n getVoid,\n hasBlocks,\n hasInlines,\n hasPath,\n hasTexts,\n isBlock,\n isEdge,\n isEmpty,\n isEnd,\n isNormalizing,\n isStart,\n last,\n leaf,\n levels,\n marks,\n next,\n node,\n nodes,\n normalize,\n parent,\n path,\n pathRef,\n pathRefs,\n point,\n pointRef,\n pointRefs,\n positions,\n previous,\n range,\n rangeRef,\n rangeRefs,\n setNormalizing,\n start,\n string,\n unhangRange,\n withoutNormalizing,\n} from './editor'\nimport { deleteText } from './transforms-text'\nimport {\n collapse,\n deselect,\n move,\n select,\n setPoint,\n setSelection,\n} from './transforms-selection'\nimport {\n insertNodes,\n liftNodes,\n mergeNodes,\n moveNodes,\n removeNodes,\n setNodes,\n splitNodes,\n unsetNodes,\n unwrapNodes,\n wrapNodes,\n} from './transforms-node'\n\n/**\n * Create a new Slate `Editor` object.\n */\nexport const createEditor = (): Editor => {\n const editor: Editor = {\n children: [],\n operations: [],\n selection: null,\n marks: null,\n isElementReadOnly: () => false,\n isInline: () => false,\n isSelectable: () => true,\n isVoid: () => false,\n markableVoid: () => false,\n onChange: () => {},\n\n // Core\n apply: (...args) => apply(editor, ...args),\n\n // Editor\n addMark: (...args) => addMark(editor, ...args),\n deleteBackward: (...args) => deleteBackward(editor, ...args),\n deleteForward: (...args) => deleteForward(editor, ...args),\n deleteFragment: (...args) => deleteFragment(editor, ...args),\n getFragment: (...args) => getFragment(editor, ...args),\n insertBreak: (...args) => insertBreak(editor, ...args),\n insertSoftBreak: (...args) => insertSoftBreak(editor, ...args),\n insertFragment: (...args) => insertFragment(editor, ...args),\n insertNode: (...args) => insertNode(editor, ...args),\n insertText: (...args) => insertText(editor, ...args),\n normalizeNode: (...args) => normalizeNode(editor, ...args),\n removeMark: (...args) => removeMark(editor, ...args),\n getDirtyPaths: (...args) => getDirtyPaths(editor, ...args),\n shouldNormalize: (...args) => shouldNormalize(editor, ...args),\n\n // Editor interface\n above: (...args) => above(editor, ...args),\n after: (...args) => after(editor, ...args),\n before: (...args) => before(editor, ...args),\n collapse: (...args) => collapse(editor, ...args),\n delete: (...args) => deleteText(editor, ...args),\n deselect: (...args) => deselect(editor, ...args),\n edges: (...args) => edges(editor, ...args),\n elementReadOnly: (...args) => elementReadOnly(editor, ...args),\n end: (...args) => end(editor, ...args),\n first: (...args) => first(editor, ...args),\n fragment: (...args) => fragment(editor, ...args),\n getMarks: (...args) => marks(editor, ...args),\n hasBlocks: (...args) => hasBlocks(editor, ...args),\n hasInlines: (...args) => hasInlines(editor, ...args),\n hasPath: (...args) => hasPath(editor, ...args),\n hasTexts: (...args) => hasTexts(editor, ...args),\n insertNodes: (...args) => insertNodes(editor, ...args),\n isBlock: (...args) => isBlock(editor, ...args),\n isEdge: (...args) => isEdge(editor, ...args),\n isEmpty: (...args) => isEmpty(editor, ...args),\n isEnd: (...args) => isEnd(editor, ...args),\n isNormalizing: (...args) => isNormalizing(editor, ...args),\n isStart: (...args) => isStart(editor, ...args),\n last: (...args) => last(editor, ...args),\n leaf: (...args) => leaf(editor, ...args),\n levels: (...args) => levels(editor, ...args),\n liftNodes: (...args) => liftNodes(editor, ...args),\n mergeNodes: (...args) => mergeNodes(editor, ...args),\n move: (...args) => move(editor, ...args),\n moveNodes: (...args) => moveNodes(editor, ...args),\n next: (...args) => next(editor, ...args),\n node: (...args) => node(editor, ...args),\n nodes: (...args) => nodes(editor, ...args),\n normalize: (...args) => normalize(editor, ...args),\n parent: (...args) => parent(editor, ...args),\n path: (...args) => path(editor, ...args),\n pathRef: (...args) => pathRef(editor, ...args),\n pathRefs: (...args) => pathRefs(editor, ...args),\n point: (...args) => point(editor, ...args),\n pointRef: (...args) => pointRef(editor, ...args),\n pointRefs: (...args) => pointRefs(editor, ...args),\n positions: (...args) => positions(editor, ...args),\n previous: (...args) => previous(editor, ...args),\n range: (...args) => range(editor, ...args),\n rangeRef: (...args) => rangeRef(editor, ...args),\n rangeRefs: (...args) => rangeRefs(editor, ...args),\n removeNodes: (...args) => removeNodes(editor, ...args),\n select: (...args) => select(editor, ...args),\n setNodes: (...args) => setNodes(editor, ...args),\n setNormalizing: (...args) => setNormalizing(editor, ...args),\n setPoint: (...args) => setPoint(editor, ...args),\n setSelection: (...args) => setSelection(editor, ...args),\n splitNodes: (...args) => splitNodes(editor, ...args),\n start: (...args) => start(editor, ...args),\n string: (...args) => string(editor, ...args),\n unhangRange: (...args) => unhangRange(editor, ...args),\n unsetNodes: (...args) => unsetNodes(editor, ...args),\n unwrapNodes: (...args) => unwrapNodes(editor, ...args),\n void: (...args) => getVoid(editor, ...args),\n withoutNormalizing: (...args) => withoutNormalizing(editor, ...args),\n wrapNodes: (...args) => wrapNodes(editor, ...args),\n }\n\n return editor\n}\n"],"names":["PathRef","transform","ref","op","current","affinity","path","Path","unref","PointRef","point","Point","RangeRef","Range","DIRTY_PATHS","WeakMap","DIRTY_PATH_KEYS","FLUSHING","NORMALIZING","PATH_REFS","POINT_REFS","RANGE_REFS","ancestors","options","reverse","paths","levels","slice","common","another","i","length","av","bv","push","compare","min","Math","endsAfter","as","bs","equals","endsAt","endsBefore","every","n","hasPrevious","isAfter","isAncestor","isBefore","isChild","isCommon","isDescendant","isParent","isPath","value","Array","isArray","isSibling","al","bl","list","next","Error","last","concat","operationCanTransformPath","operation","type","parent","previous","relative","ancestor","p","position","onp","newPath","copy","applyToDraft","editor","selection","node","Node","index","children","splice","points","key","offset","text","leaf","before","after","get","prevPath","prev","Text","isText","Scrubber","stringify","truePath","newParent","newIndex","result","texts","preferNext","properties","newProperties","hasOwnProperty","isRange","newNode","GeneralTransforms","createDraft","finishDraft","isDraft","NodeTransforms","insertNodes","nodes","liftNodes","mergeNodes","moveNodes","removeNodes","setNodes","props","splitNodes","unsetNodes","unwrapNodes","wrapNodes","element","SelectionTransforms","collapse","deselect","move","select","target","setPoint","setSelection","isDeepEqual","a","b","isPlainObject","undefined","edges","range","anchor","focus","isBackward","end","includes","rs","re","ts","te","start","isAfterStart","isBeforeEnd","isPoint","intersection","rest","s1","e1","s2","e2","isCollapsed","isExpanded","isForward","produce","r","affinityAnchor","affinityFocus","isElement","isNodeList","Editor","isEditor","Element","isElementList","val","isElementProps","isElementType","elementVal","elementKey","matches","IS_NODE_LIST_CACHE","root","entry","child","c","childPath","descendant","descendants","elements","extractProps","first","fragment","newRoot","nodeEntries","pass","has","isNode","cachedResult","set","isTextProps","from","to","visited","Set","add","nextIndex","parentPath","string","map","join","Operation","isNodeOperation","isOperation","endsWith","isOperationList","isSelectionOperation","isTextOperation","inverse","inversePath","inverseNewPath","IS_EDITOR_CACHE","cachedIsEditor","addMark","apply","deleteFragment","insertBreak","insertSoftBreak","insertFragment","insertNode","insertText","isElementReadOnly","isInline","isSelectable","isVoid","normalizeNode","onChange","removeMark","getDirtyPaths","marks","operations","above","at","deleteBackward","unit","deleteForward","elementReadOnly","hasBlocks","hasInlines","hasPath","hasTexts","isBlock","isEdge","isEmpty","isEnd","isNormalizing","isStart","getMarks","normalize","pathRef","pathRefs","pointRef","pointRefs","positions","rangeRef","rangeRefs","setNormalizing","unhangRange","withoutNormalizing","fn","Location","isLocation","Span","isSpan","_scrubber","setScrubber","scrubber","JSON","loose","omitText","obj","isTextList","decorations","leaves","dec","leafEnd","decorationStart","decorationEnd","leafStart","Object","assign","middle","off","getDefaultInsertLocation","matchPath","getCharacterDistance","str","isRTL","isLTR","codepoints","codepointsIteratorRTL","left","CodepointType","None","right","distance","gb11","gb12Or13","char","code","codePointAt","getCodepointType","intersects","ZWJ","ExtPict","endsWithEmojiZWJ","substring","RI","endsWithOddNumberOfRIs","isBoundaryPair","SPACE","PUNCTUATION","CHAMELEON","getWordDistance","dist","started","charDist","splitByCharacterDistance","remaining","isWordCharacter","test","nextChar","nextRemaining","char1","charAt","isLowSurrogate","charCodeAt","char2","isHighSurrogate","charCode","reExtend","rePrepend","reSpacingMark","reL","reV","reT","reLV","reLVT","reExtPict","Any","search","Extend","Prepend","SpacingMark","L","V","T","LV","LVT","x","y","NonBoundaryPairs","findIndex","endingEmojiZWJ","endingRIs","match","numRIs","TextTransforms","voids","startRef","endRef","Transforms","startPoint","endPoint","oldDirtyPaths","oldDirtyPathKeys","dirtyPaths","dirtyPathKeys","newDirtyPaths","Promise","resolve","then","previousPath","oldAncestors","newAncestors","resultPath","nextPath","getFragment","shouldHaveInlines","currentNode","isLast","isInlineOrText","newChild","shouldNormalize","iteration","initialDirtyPathsLength","maxIterations","mode","parentNode","markableVoid","expandedSelection","markAcceptingVoidSelected","selectedNode","selectedPath","split","edge","d","direction","getVoid","some","always","markedVoid","block","prevNode","blockPath","pointAfterLocation","span","universal","ignoreNonSelectable","hit","isLower","emit","force","getDirtyPathKeys","popDirtyPath","pop","allPaths","allPathKeys","dirtyPath","_","refs","depth","firstPath","lastPath","isNewBlock","blockText","leafTextRemaining","leafTextOffset","e","s","isFirst","calcDistance","pointBeforeLocation","t","endBlock","skip","deleteText","hanging","furthestVoid","voidPath","opts","endOfDoc","startBlock","isAcrossBlocks","isSingleText","startNonEditable","endNonEditable","removedText","filter","forEach","startUnref","endUnref","inlineElementMatch","inlinePath","blockMatch","isBlockStart","isBlockEnd","isBlockEmpty","mergeStart","mergeEnd","matcher","isRoot","starts","middles","ends","starting","inlineMatch","isInlineStart","isInlineEnd","middleRef","oldProps","newProps","k","keys","isAtEnd","parentNodeEntry","toPath","splitPath","hasSingleChildNest","commonPath","isPreviousSibling","emptyAncestor","emptyRef","toRef","targets","depths","merge","splitMode","endAtEndOfNode","startAtStartOfNode","prop","nodeProp","hasChanges","deleteRange","height","beforeRef","afterRef","highest","voidMatch","nudge","voidNode","afterPath","siblingHeight","highestPath","lowestPath","roots","rootPath","commonNodeEntry","commonNode","wrapperPath","wrapper","createEditor","args"],"mappings":"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"}