@gientech/modual 2.0.8 → 2.0.9

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 (415) hide show
  1. package/.editorconfig +38 -0
  2. package/.prettierignore +16 -0
  3. package/.prettierrc +17 -0
  4. package/INSTALL_TROUBLESHOOTING.md +316 -0
  5. package/USAGE.md +247 -0
  6. package/bash.exe.stackdump +40 -0
  7. package/components.json +21 -0
  8. package/dist/README.md +761 -0
  9. package/dist/package.json +68 -0
  10. package/doc_assets/2.png +0 -0
  11. package/doc_assets/demo.md +27 -0
  12. package/doc_assets/demos/dist-app/assets/index.Dh-ZAS9Z.css +2 -0
  13. package/doc_assets/demos/dist-app/assets/index.Dv8KVW18.js +23699 -0
  14. package/doc_assets/demos/dist-app/assets/index.Dv8KVW18.js.map +1 -0
  15. package/doc_assets/demos/dist-app/index.html +14 -0
  16. package/doc_assets/demos/dist-app/vite.svg +1 -0
  17. package/doc_assets/images/1.png +0 -0
  18. package/doc_assets/images/3.png +0 -0
  19. package/doc_assets/images/component-screenshot.png +1 -0
  20. package/doc_assets/install.md +5 -0
  21. package/doc_assets/v2.0.7/345/217/230/346/233/264/346/200/273/347/273/223.md +115 -0
  22. package/doc_assets//346/226/271/346/241/210//344/274/230/345/214/226/346/226/271/346/241/210-/345/244/232/344/274/232/350/257/235SSE/350/277/236/346/216/245/347/256/241/347/220/206.md +504 -0
  23. package/eslint.config.js +92 -0
  24. package/index.html +13 -0
  25. package/package.json +103 -41
  26. package/package.json.demo-backup +109 -0
  27. package/postcss.config.cjs +19 -0
  28. package/public/icons/answerAwartar.png +0 -0
  29. package/public/icons/docx-file.png +0 -0
  30. package/public/icons/folder.png +0 -0
  31. package/public/icons/html.png +0 -0
  32. package/public/icons/image.png +0 -0
  33. package/public/icons/jpg-file.png +0 -0
  34. package/public/icons/json.png +0 -0
  35. package/public/icons/md.png +0 -0
  36. package/public/icons/pdf.png +0 -0
  37. package/public/icons/pptx.png +0 -0
  38. package/public/icons/questionAwartar.png +0 -0
  39. package/public/icons/sheets.png +0 -0
  40. package/public/icons/txt.png +0 -0
  41. package/public/icons/xlsx.png +0 -0
  42. package/public/vite.svg +1 -0
  43. package/public/worker/pdf.worker.min.js +22 -0
  44. package/scripts/README.md +133 -0
  45. package/scripts/build-demo.js +88 -0
  46. package/scripts/decrypt-api-key.js +95 -0
  47. package/scripts/demo-selector.js +216 -0
  48. package/scripts/dev-demo.js +76 -0
  49. package/scripts/preview-demo.js +130 -0
  50. package/scripts/run-demo.bat +34 -0
  51. package/src/assets/img/close.png +0 -0
  52. package/src/assets/img/database.png +0 -0
  53. package/src/assets/img/downArrow.png +0 -0
  54. package/src/assets/img/downLoad.png +0 -0
  55. package/src/assets/img/excel.png +0 -0
  56. package/src/assets/img/graphIcon.png +0 -0
  57. package/src/assets/img/img.png +0 -0
  58. package/src/assets/img/pdf.png +0 -0
  59. package/src/assets/img/ppt.png +0 -0
  60. package/src/assets/img/singleQa.png +0 -0
  61. package/src/assets/img/txt.png +0 -0
  62. package/src/assets/img/webSearch.png +0 -0
  63. package/src/assets/img/word.png +0 -0
  64. package/src/assets/login/homeBg.png +0 -0
  65. package/src/assets/login/left.jpg +0 -0
  66. package/src/assets/login/logoImg.png +0 -0
  67. package/src/examples/ConversationAssistantPage/index.tsx +41 -0
  68. package/src/examples/Demo/index.tsx +12 -0
  69. package/src/examples/LoginPage/index.tsx +18 -0
  70. package/src/examples/chat/components/DrawerGraphPreview.tsx +78 -0
  71. package/src/examples/chat/index.tsx +166 -0
  72. package/src/examples/chat/logo03.png +0 -0
  73. package/src/examples/gientechStreamFilesReader/index.tsx +951 -0
  74. package/src/examples/headlessChat/assets/mind.svg +6 -0
  75. package/src/examples/headlessChat/assets/net.svg +7 -0
  76. package/src/examples/headlessChat/index.tsx +285 -0
  77. package/src/examples/ragDatabaseDataPage/index.tsx +40 -0
  78. package/src/examples/ragDatabaseIdPage/index.tsx +47 -0
  79. package/src/examples/ragDatabasePage/index.tsx +36 -0
  80. package/src/examples/ragModelManagePage/index.tsx +38 -0
  81. package/src/examples/ragSearchPage/index.tsx +0 -0
  82. package/src/examples/ragSensitiveWordsPage/index.tsx +32 -0
  83. package/src/examples/streamFiles/index.tsx +417 -0
  84. package/src/lib_enter.ts +43 -0
  85. package/src/main.tsx +5 -0
  86. package/src/main.tsx.backup +5 -0
  87. package/src/modules/CHAT_UNIFICATION_PLAN.md +324 -0
  88. package/src/modules/assistantConfig/assets/databse.svg +6 -0
  89. package/src/modules/assistantConfig/assets/empty.png +0 -0
  90. package/src/modules/assistantConfig/assets/graph.svg +4 -0
  91. package/src/modules/assistantConfig/assets/knowledge.svg +4 -0
  92. package/src/modules/assistantConfig/assets/sensitive.svg +5 -0
  93. package/src/modules/assistantConfig/components/Database.tsx +171 -0
  94. package/src/modules/assistantConfig/components/Graph.tsx +177 -0
  95. package/src/modules/assistantConfig/components/Knowledge.tsx +276 -0
  96. package/src/modules/assistantConfig/components/NotFoundContent.tsx +21 -0
  97. package/src/modules/assistantConfig/components/Paragraph.tsx +51 -0
  98. package/src/modules/assistantConfig/components/ParamsItem.tsx +39 -0
  99. package/src/modules/assistantConfig/components/ResourceBinderItem.tsx +133 -0
  100. package/src/modules/assistantConfig/components/SearchableSelector.tsx +500 -0
  101. package/src/modules/assistantConfig/components/Sensitive.tsx +221 -0
  102. package/src/modules/assistantConfig/components/SliderInput.tsx +65 -0
  103. package/src/modules/assistantConfig/constants.tsx +75 -0
  104. package/src/modules/assistantConfig/index.tsx +710 -0
  105. package/src/modules/assistantConfig/server.ts +262 -0
  106. package/src/modules/chat/Conversations/Item.tsx +167 -0
  107. package/src/modules/chat/Conversations/List.tsx +210 -0
  108. package/src/modules/chat/Conversations/groupByTime.ts +39 -0
  109. package/src/modules/chat/Conversations/index.tsx +252 -0
  110. package/src/modules/chat/ReferenceBar.tsx +622 -0
  111. package/src/modules/chat/constants.tsx +57 -0
  112. package/src/modules/chat/index.tsx +2449 -0
  113. package/src/modules/chat/referenceCom/DeleteModal.tsx +75 -0
  114. package/src/modules/chat/referenceCom/DrawerContent.tsx +136 -0
  115. package/src/modules/chat/referenceCom/DrawerDatabase.tsx +102 -0
  116. package/src/modules/chat/referenceCom/DrawerGraphPreview.tsx +86 -0
  117. package/src/modules/chat/referenceCom/DrawerPreview.tsx +73 -0
  118. package/src/modules/chat/referenceCom/DrawerTitle.tsx +26 -0
  119. package/src/modules/chat/referenceCom/RenameModal.tsx +86 -0
  120. package/src/modules/chat/referenceCom/TagCom.tsx +30 -0
  121. package/src/modules/chat/style.less +3 -0
  122. package/src/modules/chat/types.ts +17 -0
  123. package/src/modules/chat/utils/index.ts +348 -0
  124. package/src/modules/database/CreateModal.tsx +403 -0
  125. package/src/modules/database/assets/Doris.png +0 -0
  126. package/src/modules/database/assets/PostgreSQL.png +0 -0
  127. package/src/modules/database/assets/SQLServer.png +0 -0
  128. package/src/modules/database/assets/database.svg +11 -0
  129. package/src/modules/database/assets/database_add.svg +53 -0
  130. package/src/modules/database/assets/database_connect.svg +66 -0
  131. package/src/modules/database/assets/database_upload.svg +29 -0
  132. package/src/modules/database/assets/empty.png +0 -0
  133. package/src/modules/database/assets/mysql.svg +14 -0
  134. package/src/modules/database/index.tsx +477 -0
  135. package/src/modules/database/server.ts +196 -0
  136. package/src/modules/databaseId/CustomCom.tsx +156 -0
  137. package/src/modules/databaseId/EditConfig.tsx +280 -0
  138. package/src/modules/databaseId/UploadDrawer.tsx +535 -0
  139. package/src/modules/databaseId/assets/aiOptimize.svg +10 -0
  140. package/src/modules/databaseId/assets/empty.png +0 -0
  141. package/src/modules/databaseId/assets/template.svg +6 -0
  142. package/src/modules/databaseId/assets/upload.svg +9 -0
  143. package/src/modules/databaseId/assets/useTemp.svg +6 -0
  144. package/src/modules/databaseId/index.tsx +769 -0
  145. package/src/modules/databaseId/server.ts +286 -0
  146. package/src/modules/databaseId/style.css +5 -0
  147. package/src/modules/databaseTable/EditRowDrawer.tsx +124 -0
  148. package/src/modules/databaseTable/index.tsx +359 -0
  149. package/src/modules/databaseTable/server.ts +180 -0
  150. package/src/modules/headlessChat/ReferenceBar.tsx +783 -0
  151. package/src/modules/headlessChat/constants.tsx +54 -0
  152. package/src/modules/headlessChat/index.tsx +1782 -0
  153. package/src/modules/headlessChat/referenceCom/DeleteModal.tsx +75 -0
  154. package/src/modules/headlessChat/referenceCom/DrawerContent.tsx +136 -0
  155. package/src/modules/headlessChat/referenceCom/DrawerDatabase.tsx +102 -0
  156. package/src/modules/headlessChat/referenceCom/DrawerGraphPreview.tsx +86 -0
  157. package/src/modules/headlessChat/referenceCom/DrawerPreview.tsx +73 -0
  158. package/src/modules/headlessChat/referenceCom/DrawerTitle.tsx +26 -0
  159. package/src/modules/headlessChat/referenceCom/RenameModal.tsx +86 -0
  160. package/src/modules/headlessChat/referenceCom/TagCom.tsx +30 -0
  161. package/src/modules/headlessChat/style.less +3 -0
  162. package/src/modules/headlessChat/types.ts +23 -0
  163. package/src/modules/headlessChat/utils/index.ts +348 -0
  164. package/src/modules/login/components/Login/LoginBox/index.tsx +102 -0
  165. package/src/modules/login/components/Login/RegisterBox/index.tsx +180 -0
  166. package/src/modules/login/components/Login/index.tsx +100 -0
  167. package/src/modules/login/index.tsx +106 -0
  168. package/src/modules/login/style.css +3 -0
  169. package/src/modules/login/useServices.ts +53 -0
  170. package/src/modules/login/utils.ts +42 -0
  171. package/src/modules/modelManage/ConfigDrawer.tsx +249 -0
  172. package/src/modules/modelManage/ReplaceModal.tsx +124 -0
  173. package/src/modules/modelManage/assets/empty.png +0 -0
  174. package/src/modules/modelManage/const.ts +51 -0
  175. package/src/modules/modelManage/index.tsx +606 -0
  176. package/src/modules/modelManage/server.ts +223 -0
  177. package/src/modules/nodegraph/index.tsx +1 -0
  178. package/src/modules/search/assets/Icon-history.svg +8 -0
  179. package/src/modules/search/assets/answerAwartar.png +0 -0
  180. package/src/modules/search/assets/doc.png +0 -0
  181. package/src/modules/search/assets/genera.gif +0 -0
  182. package/src/modules/search/assets/icon-robot.svg +9 -0
  183. package/src/modules/search/assets/icon-search-bar.svg +14 -0
  184. package/src/modules/search/assets/icon-sub-title.svg +3 -0
  185. package/src/modules/search/assets/icon-title.svg +9 -0
  186. package/src/modules/search/assets/icon-zoomOut.svg +9 -0
  187. package/src/modules/search/assets/iconAi.svg +9 -0
  188. package/src/modules/search/assets/pdf.png +0 -0
  189. package/src/modules/search/assets/ppt.png +0 -0
  190. package/src/modules/search/assets/search.svg +3 -0
  191. package/src/modules/search/assets/selected.svg +4 -0
  192. package/src/modules/search/assets/txt.png +0 -0
  193. package/src/modules/search/assets/xls.png +0 -0
  194. package/src/modules/search/components/AssisSelect.tsx +137 -0
  195. package/src/modules/search/components/Editor/ChatViewEditor.tsx +261 -0
  196. package/src/modules/search/components/Editor/aichat.css +1 -0
  197. package/src/modules/search/components/Editor/constant.ts +13 -0
  198. package/src/modules/search/components/Editor/index.tsx +113 -0
  199. package/src/modules/search/components/Editor/plugins/autofomatRules.ts +332 -0
  200. package/src/modules/search/components/Editor/plugins/convertImgPlugins.tsx +20 -0
  201. package/src/modules/search/components/Editor/plugins/createIndexes.tsx +38 -0
  202. package/src/modules/search/components/Editor/plugins/displayer.ts +298 -0
  203. package/src/modules/search/components/Editor/plugins/imageClick.tsx +32 -0
  204. package/src/modules/search/components/Editor/plugins/myplugin.tsx +98 -0
  205. package/src/modules/search/components/Editor/ui/avatar.tsx +19 -0
  206. package/src/modules/search/components/Editor/ui/blockquote-element.tsx +21 -0
  207. package/src/modules/search/components/Editor/ui/button.tsx +58 -0
  208. package/src/modules/search/components/Editor/ui/calendar.tsx +68 -0
  209. package/src/modules/search/components/Editor/ui/caption.tsx +46 -0
  210. package/src/modules/search/components/Editor/ui/checkbox.tsx +27 -0
  211. package/src/modules/search/components/Editor/ui/code-block-combobox.tsx +188 -0
  212. package/src/modules/search/components/Editor/ui/code-block-element.css +434 -0
  213. package/src/modules/search/components/Editor/ui/code-block-element.tsx +39 -0
  214. package/src/modules/search/components/Editor/ui/code-leaf.tsx +24 -0
  215. package/src/modules/search/components/Editor/ui/code-line-element.tsx +10 -0
  216. package/src/modules/search/components/Editor/ui/code-syntax-leaf.tsx +21 -0
  217. package/src/modules/search/components/Editor/ui/column-element.tsx +30 -0
  218. package/src/modules/search/components/Editor/ui/column-group-element.tsx +94 -0
  219. package/src/modules/search/components/Editor/ui/command.tsx +75 -0
  220. package/src/modules/search/components/Editor/ui/comment-avatar.tsx +22 -0
  221. package/src/modules/search/components/Editor/ui/comment-create-form.tsx +37 -0
  222. package/src/modules/search/components/Editor/ui/comment-item.tsx +74 -0
  223. package/src/modules/search/components/Editor/ui/comment-leaf.tsx +49 -0
  224. package/src/modules/search/components/Editor/ui/comment-more-dropdown.tsx +42 -0
  225. package/src/modules/search/components/Editor/ui/comment-reply-items.tsx +22 -0
  226. package/src/modules/search/components/Editor/ui/comment-resolve-button.tsx +32 -0
  227. package/src/modules/search/components/Editor/ui/comment-value.tsx +34 -0
  228. package/src/modules/search/components/Editor/ui/comments-popover.tsx +63 -0
  229. package/src/modules/search/components/Editor/ui/date-element.tsx +83 -0
  230. package/src/modules/search/components/Editor/ui/dialog.tsx +63 -0
  231. package/src/modules/search/components/Editor/ui/draggable.tsx +177 -0
  232. package/src/modules/search/components/Editor/ui/dropdown-menu.tsx +180 -0
  233. package/src/modules/search/components/Editor/ui/emoji-input-element.tsx +85 -0
  234. package/src/modules/search/components/Editor/ui/excalidraw-element.tsx +28 -0
  235. package/src/modules/search/components/Editor/ui/fixed-toolbar-buttons.tsx +76 -0
  236. package/src/modules/search/components/Editor/ui/fixed-toolbar.tsx +8 -0
  237. package/src/modules/search/components/Editor/ui/floating-toolbar-buttons.tsx +51 -0
  238. package/src/modules/search/components/Editor/ui/floating-toolbar.tsx +77 -0
  239. package/src/modules/search/components/Editor/ui/heading-element.tsx +48 -0
  240. package/src/modules/search/components/Editor/ui/highlight-leaf.tsx +17 -0
  241. package/src/modules/search/components/Editor/ui/hr-element.tsx +30 -0
  242. package/src/modules/search/components/Editor/ui/icons.tsx +267 -0
  243. package/src/modules/search/components/Editor/ui/image-element.tsx +74 -0
  244. package/src/modules/search/components/Editor/ui/inline-combobox.tsx +368 -0
  245. package/src/modules/search/components/Editor/ui/input.tsx +25 -0
  246. package/src/modules/search/components/Editor/ui/insert-dropdown-menu.tsx +218 -0
  247. package/src/modules/search/components/Editor/ui/kbd-leaf.tsx +20 -0
  248. package/src/modules/search/components/Editor/ui/link-element.tsx +29 -0
  249. package/src/modules/search/components/Editor/ui/link-floating-toolbar.tsx +161 -0
  250. package/src/modules/search/components/Editor/ui/list-element.tsx +30 -0
  251. package/src/modules/search/components/Editor/ui/mark-toolbar-button.tsx +24 -0
  252. package/src/modules/search/components/Editor/ui/media-embed-element.tsx +133 -0
  253. package/src/modules/search/components/Editor/ui/media-popover.tsx +97 -0
  254. package/src/modules/search/components/Editor/ui/mention-element.tsx +43 -0
  255. package/src/modules/search/components/Editor/ui/mention-input-element.tsx +141 -0
  256. package/src/modules/search/components/Editor/ui/mode-dropdown-menu.tsx +93 -0
  257. package/src/modules/search/components/Editor/ui/more-dropdown-menu.tsx +67 -0
  258. package/src/modules/search/components/Editor/ui/paragraph-element.tsx +4 -0
  259. package/src/modules/search/components/Editor/ui/placeholder.tsx +52 -0
  260. package/src/modules/search/components/Editor/ui/popover.tsx +32 -0
  261. package/src/modules/search/components/Editor/ui/resizable.tsx +66 -0
  262. package/src/modules/search/components/Editor/ui/separator.tsx +25 -0
  263. package/src/modules/search/components/Editor/ui/style.less +12 -0
  264. package/src/modules/search/components/Editor/ui/table-cell-element.tsx +143 -0
  265. package/src/modules/search/components/Editor/ui/table-element.tsx +243 -0
  266. package/src/modules/search/components/Editor/ui/table-row-element.tsx +22 -0
  267. package/src/modules/search/components/Editor/ui/tableValue.tsx +135 -0
  268. package/src/modules/search/components/Editor/ui/todo-list-element.tsx +43 -0
  269. package/src/modules/search/components/Editor/ui/toggle-element.tsx +31 -0
  270. package/src/modules/search/components/Editor/ui/toolbar.tsx +157 -0
  271. package/src/modules/search/components/Editor/ui/tooltip.tsx +65 -0
  272. package/src/modules/search/components/Editor/ui/turn-into-dropdown-menu.tsx +160 -0
  273. package/src/modules/search/components/Editor/ui/with-draggables.tsx +175 -0
  274. package/src/modules/search/components/FileList.tsx +287 -0
  275. package/src/modules/search/components/ImageGroupView/index.tsx +85 -0
  276. package/src/modules/search/components/ResultContent.tsx +232 -0
  277. package/src/modules/search/components/SearchInput.tsx +232 -0
  278. package/src/modules/search/components/SearchLanding.tsx +74 -0
  279. package/src/modules/search/components/SearchView.tsx +563 -0
  280. package/src/modules/search/components/SimpleEditor.tsx +158 -0
  281. package/src/modules/search/components/SimpleFileList.tsx +215 -0
  282. package/src/modules/search/index.tsx +10 -0
  283. package/src/modules/search/reademe.md +1 -0
  284. package/src/modules/search/servers/apis.tsx +19 -0
  285. package/src/modules/search/servers/index.ts +184 -0
  286. package/src/modules/search/style.less +503 -0
  287. package/src/modules/search/type.ts +22 -0
  288. package/src/modules/search/utils.ts +34 -0
  289. package/src/modules/sensitive/index.tsx +313 -0
  290. package/src/modules/sensitive/server.ts +122 -0
  291. package/src/modules/streamFilesReader/GientechStreamReader.tsx +1625 -0
  292. package/src/modules/streamFilesReader/components/Header/Toolbar.tsx +0 -0
  293. package/src/modules/streamFilesReader/components/Header/index.tsx +297 -0
  294. package/src/modules/streamFilesReader/index.tsx +3 -0
  295. package/src/style.css +6 -0
  296. package/src/type.d.ts +0 -0
  297. package/src/utils/commonFn.tsx +111 -0
  298. package/src/utils/decryptApiKey.ts +40 -0
  299. package/src/utils/gientechCommon/components/AppError.tsx +32 -0
  300. package/src/utils/gientechCommon/components/AppLoading.tsx +75 -0
  301. package/src/utils/gientechCommon/components/DeleteModal.tsx +75 -0
  302. package/src/utils/gientechCommon/components/DisplayError.tsx +33 -0
  303. package/src/utils/gientechCommon/components/DisplayLoading.tsx +38 -0
  304. package/src/utils/gientechCommon/components/FeedBackModal.tsx +319 -0
  305. package/src/utils/gientechCommon/components/FileCardCommon.tsx +82 -0
  306. package/src/utils/gientechCommon/components/FileManager/index.tsx +418 -0
  307. package/src/utils/gientechCommon/components/FileManager/style.css +5 -0
  308. package/src/utils/gientechCommon/components/Messages/GientechNewChatWelcome.tsx +581 -0
  309. package/src/utils/gientechCommon/components/Messages/ReferenceCard.tsx +359 -0
  310. package/src/utils/gientechCommon/components/Messages/RetriveItem.tsx +245 -0
  311. package/src/utils/gientechCommon/components/Messages/WebRetriveItem.tsx +209 -0
  312. package/src/utils/gientechCommon/components/Messages/defaultBot.png +0 -0
  313. package/src/utils/gientechCommon/components/Messages/defaultStyleSet.tsx +148 -0
  314. package/src/utils/gientechCommon/components/Messages/defaultWeLogo.svg +14 -0
  315. package/src/utils/gientechCommon/components/RenameModal.tsx +86 -0
  316. package/src/utils/gientechCommon/components/style.less +11 -0
  317. package/src/utils/gientechCommon/configs/commonConfig.ts +2 -0
  318. package/src/utils/gientechCommon/configs/senderConfig.ts +0 -0
  319. package/src/utils/gientechCommon/configs/stylesConfig.ts +142 -0
  320. package/src/utils/gientechCommon/hooks/AichatUseController.tsx +417 -0
  321. package/src/utils/gientechCommon/hooks/useFileDisplayTools.tsx +251 -0
  322. package/src/utils/gientechCommon/hooks/useFileManager.ts +208 -0
  323. package/src/utils/gientechCommon/slate/converters/deserializers.ts +763 -0
  324. package/src/utils/gientechCommon/slate/converters/mockData.ts +232 -0
  325. package/src/utils/gientechCommon/slate/converters/slateConverters.ts +258 -0
  326. package/src/utils/gientechCommon/slate/richElements/index.tsx +499 -0
  327. package/src/utils/gientechCommon/utils/fileUtils.ts +86 -0
  328. package/src/utils/gientechCommon/utils/request.ts +37 -0
  329. package/src/utils/gientechCommon/utils/serverFn.ts +172 -0
  330. package/src/utils/index.tsx +142 -0
  331. package/src/utils/testconfigs/demologin/index.tsx +32 -0
  332. package/src/utils/testconfigs/index.ts +59 -0
  333. package/src/vite-env.d.ts +42 -0
  334. package/stats.html +4949 -0
  335. package/tailwind.config.js +170 -0
  336. package/tsconfig.app.json +30 -0
  337. package/tsconfig.app.tsbuildinfo +11 -0
  338. package/tsconfig.json +13 -0
  339. package/tsconfig.node.json +22 -0
  340. package/tsconfig.node.tsbuildinfo +1 -0
  341. package/vite.config.app.ts +93 -0
  342. package/vite.config.ts +232 -0
  343. package/workflows/release.yml +60 -0
  344. package//346/215/242/350/241/214/346/240/274/345/274/217/344/277/235/346/214/201/344/274/230/345/214/226/346/226/271/346/241/210.md +359 -0
  345. /package/{assets → dist/assets}/Doris.png +0 -0
  346. /package/{assets → dist/assets}/GientechStreamReader-CNj6Rcm7.js +0 -0
  347. /package/{assets → dist/assets}/PostgreSQL.png +0 -0
  348. /package/{assets → dist/assets}/SQLServer.png +0 -0
  349. /package/{assets → dist/assets}/database.svg +0 -0
  350. /package/{assets → dist/assets}/database_add.svg +0 -0
  351. /package/{assets → dist/assets}/database_connect.svg +0 -0
  352. /package/{assets → dist/assets}/database_upload.svg +0 -0
  353. /package/{assets → dist/assets}/databse.svg +0 -0
  354. /package/{assets → dist/assets}/defaultWeLogo.svg +0 -0
  355. /package/{assets → dist/assets}/empty.png +0 -0
  356. /package/{assets → dist/assets}/graph.svg +0 -0
  357. /package/{assets → dist/assets}/homeBg.png +0 -0
  358. /package/{assets → dist/assets}/index-B2yNvzjy.js +0 -0
  359. /package/{assets → dist/assets}/index-BJv0t0eJ.js +0 -0
  360. /package/{assets → dist/assets}/index-BKe5FgcC.js +0 -0
  361. /package/{assets → dist/assets}/index-CU45mVZ4.js +0 -0
  362. /package/{assets → dist/assets}/index-CpW6Dhpp.js +0 -0
  363. /package/{assets → dist/assets}/index-D72cKELw.js +0 -0
  364. /package/{assets → dist/assets}/index-DdVFXD_y.js +0 -0
  365. /package/{assets → dist/assets}/index-DrkSoKz6.js +0 -0
  366. /package/{assets → dist/assets}/index-ZopkeZtI.js +0 -0
  367. /package/{assets → dist/assets}/index-g-SUxfJH.js +0 -0
  368. /package/{assets → dist/assets}/index-j0kQJd0a.js +0 -0
  369. /package/{assets → dist/assets}/knowledge.svg +0 -0
  370. /package/{assets → dist/assets}/left.jpg +0 -0
  371. /package/{assets → dist/assets}/logoImg.png +0 -0
  372. /package/{assets → dist/assets}/mysql.svg +0 -0
  373. /package/{assets → dist/assets}/plus-V9zUoSq6.js +0 -0
  374. /package/{assets → dist/assets}/sensitive.svg +0 -0
  375. /package/{assets → dist/assets}/style-CGmZ5osp.js +0 -0
  376. /package/{assets → dist/assets}/style.css +0 -0
  377. /package/{assets → dist/assets}/style2.css +0 -0
  378. /package/{assets → dist/assets}/style3.css +0 -0
  379. /package/{assets → dist/assets}/style4.css +0 -0
  380. /package/{assets → dist/assets}/worker-BbpylX7l.js +0 -0
  381. /package/{assets → dist/assets}/x-CnaaLGJF.js +0 -0
  382. /package/{assistantConfig.d.ts → dist/assistantConfig.d.ts} +0 -0
  383. /package/{assistantConfig.js → dist/assistantConfig.js} +0 -0
  384. /package/{chat.d.ts → dist/chat.d.ts} +0 -0
  385. /package/{chat.js → dist/chat.js} +0 -0
  386. /package/{database.d.ts → dist/database.d.ts} +0 -0
  387. /package/{database.js → dist/database.js} +0 -0
  388. /package/{databaseId.d.ts → dist/databaseId.d.ts} +0 -0
  389. /package/{databaseId.js → dist/databaseId.js} +0 -0
  390. /package/{databaseTable.d.ts → dist/databaseTable.d.ts} +0 -0
  391. /package/{databaseTable.js → dist/databaseTable.js} +0 -0
  392. /package/{icons → dist/icons}/answerAwartar.png +0 -0
  393. /package/{icons → dist/icons}/docx-file.png +0 -0
  394. /package/{icons → dist/icons}/folder.png +0 -0
  395. /package/{icons → dist/icons}/html.png +0 -0
  396. /package/{icons → dist/icons}/image.png +0 -0
  397. /package/{icons → dist/icons}/jpg-file.png +0 -0
  398. /package/{icons → dist/icons}/json.png +0 -0
  399. /package/{icons → dist/icons}/md.png +0 -0
  400. /package/{icons → dist/icons}/pdf.png +0 -0
  401. /package/{icons → dist/icons}/pptx.png +0 -0
  402. /package/{icons → dist/icons}/questionAwartar.png +0 -0
  403. /package/{icons → dist/icons}/sheets.png +0 -0
  404. /package/{icons → dist/icons}/txt.png +0 -0
  405. /package/{icons → dist/icons}/xlsx.png +0 -0
  406. /package/{index.d.ts → dist/index.d.ts} +0 -0
  407. /package/{index.js → dist/index.js} +0 -0
  408. /package/{modelManage.d.ts → dist/modelManage.d.ts} +0 -0
  409. /package/{modelManage.js → dist/modelManage.js} +0 -0
  410. /package/{sensitive.d.ts → dist/sensitive.d.ts} +0 -0
  411. /package/{sensitive.js → dist/sensitive.js} +0 -0
  412. /package/{streamFilesReader.d.ts → dist/streamFilesReader.d.ts} +0 -0
  413. /package/{streamFilesReader.js → dist/streamFilesReader.js} +0 -0
  414. /package/{vite.svg → dist/vite.svg} +0 -0
  415. /package/{worker → dist/worker}/pdf.worker.min.js +0 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.Dv8KVW18.js","sources":["../../../../node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react.production.min.js","../../../../node_modules/.pnpm/react@18.3.1/node_modules/react/index.js","../../../../node_modules/.pnpm/react@18.3.1/node_modules/react/cjs/react-jsx-runtime.production.min.js","../../../../node_modules/.pnpm/react@18.3.1/node_modules/react/jsx-runtime.js","../../../../node_modules/.pnpm/scheduler@0.23.2/node_modules/scheduler/cjs/scheduler.production.min.js","../../../../node_modules/.pnpm/scheduler@0.23.2/node_modules/scheduler/index.js","../../../../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/cjs/react-dom.production.min.js","../../../../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/index.js","../../../../node_modules/.pnpm/react-dom@18.3.1_react@18.3.1/node_modules/react-dom/client.js","../../../../node_modules/.pnpm/tslib@2.6.2/node_modules/tslib/tslib.es6.mjs","../../../../node_modules/.pnpm/stylis@4.3.2/node_modules/stylis/src/Enum.js","../../../../node_modules/.pnpm/stylis@4.3.2/node_modules/stylis/src/Utility.js","../../../../node_modules/.pnpm/stylis@4.3.2/node_modules/stylis/src/Tokenizer.js","../../../../node_modules/.pnpm/stylis@4.3.2/node_modules/stylis/src/Parser.js","../../../../node_modules/.pnpm/stylis@4.3.2/node_modules/stylis/src/Prefixer.js","../../../../node_modules/.pnpm/stylis@4.3.2/node_modules/stylis/src/Serializer.js","../../../../node_modules/.pnpm/stylis@4.3.2/node_modules/stylis/src/Middleware.js","../../../../node_modules/.pnpm/@emotion+unitless@0.8.1/node_modules/@emotion/unitless/dist/emotion-unitless.esm.js","../../../../node_modules/.pnpm/styled-components@6.1.19_react-dom@18.3.1_react@18.3.1__react@18.3.1/node_modules/styled-components/dist/styled-components.browser.esm.js","../../../../node_modules/.pnpm/is-plain-object@5.0.0/node_modules/is-plain-object/dist/is-plain-object.mjs","../../../../node_modules/.pnpm/immer@10.1.1/node_modules/immer/dist/immer.mjs","../../../../node_modules/.pnpm/slate@0.103.0/node_modules/slate/dist/index.es.js","../../../../node_modules/.pnpm/direction@1.0.4/node_modules/direction/index.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObject.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_freeGlobal.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_root.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/now.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_trimmedEndIndex.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseTrim.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_Symbol.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_getRawTag.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_objectToString.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/_baseGetTag.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isObjectLike.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/isSymbol.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/toNumber.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/debounce.js","../../../../node_modules/.pnpm/lodash@4.17.21/node_modules/lodash/throttle.js","../../../../node_modules/.pnpm/compute-scroll-into-view@3.1.1/node_modules/compute-scroll-into-view/dist/index.js","../../../../node_modules/.pnpm/scroll-into-view-if-needed@3.1.0/node_modules/scroll-into-view-if-needed/dist/index.js","../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/resizeObservers.js","../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/hasActiveObservations.js","../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/hasSkippedObservations.js","../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/deliverResizeLoopError.js","../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverBoxOptions.js","../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/freeze.js","../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverSize.js","../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/DOMRectReadOnly.js","../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/element.js","../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/global.js","../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateBoxSize.js","../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverEntry.js","../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/calculateDepthForNode.js","../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/broadcastActiveObservations.js","../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/algorithms/gatherActiveObservationsAtDepth.js","../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/process.js","../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/queueMicroTask.js","../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/queueResizeObserver.js","../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/utils/scheduler.js","../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObservation.js","../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverDetail.js","../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserverController.js","../../../../node_modules/.pnpm/@juggle+resize-observer@3.4.0/node_modules/@juggle/resize-observer/lib/ResizeObserver.js","../../../../node_modules/.pnpm/is-hotkey@0.2.0/node_modules/is-hotkey/lib/index.js","../../../../node_modules/.pnpm/slate-react@0.110.3_react-dom@18.3.1_react@18.3.1__react@18.3.1_slate@0.103.0/node_modules/slate-react/dist/index.es.js","../../../../node_modules/.pnpm/marked@15.0.12/node_modules/marked/lib/marked.esm.js","../../src/core/richElements/TemplateField.tsx","../../src/core/richElements/TemplateLeaf.tsx","../../src/core/richElements/index.tsx","../../src/core/richElements/styles.tsx","../../src/core/UnifiedRichText.tsx","../../src/adopters/PromptTempDesigner.tsx","../../src/TestTemplateDesigner.tsx","../../src/main.tsx"],"sourcesContent":["/**\n * @license React\n * react.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var l=Symbol.for(\"react.element\"),n=Symbol.for(\"react.portal\"),p=Symbol.for(\"react.fragment\"),q=Symbol.for(\"react.strict_mode\"),r=Symbol.for(\"react.profiler\"),t=Symbol.for(\"react.provider\"),u=Symbol.for(\"react.context\"),v=Symbol.for(\"react.forward_ref\"),w=Symbol.for(\"react.suspense\"),x=Symbol.for(\"react.memo\"),y=Symbol.for(\"react.lazy\"),z=Symbol.iterator;function A(a){if(null===a||\"object\"!==typeof a)return null;a=z&&a[z]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}\nvar B={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},C=Object.assign,D={};function E(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}E.prototype.isReactComponent={};\nE.prototype.setState=function(a,b){if(\"object\"!==typeof a&&\"function\"!==typeof a&&null!=a)throw Error(\"setState(...): takes an object of state variables to update or a function which returns an object of state variables.\");this.updater.enqueueSetState(this,a,b,\"setState\")};E.prototype.forceUpdate=function(a){this.updater.enqueueForceUpdate(this,a,\"forceUpdate\")};function F(){}F.prototype=E.prototype;function G(a,b,e){this.props=a;this.context=b;this.refs=D;this.updater=e||B}var H=G.prototype=new F;\nH.constructor=G;C(H,E.prototype);H.isPureReactComponent=!0;var I=Array.isArray,J=Object.prototype.hasOwnProperty,K={current:null},L={key:!0,ref:!0,__self:!0,__source:!0};\nfunction M(a,b,e){var d,c={},k=null,h=null;if(null!=b)for(d in void 0!==b.ref&&(h=b.ref),void 0!==b.key&&(k=\"\"+b.key),b)J.call(b,d)&&!L.hasOwnProperty(d)&&(c[d]=b[d]);var g=arguments.length-2;if(1===g)c.children=e;else if(1<g){for(var f=Array(g),m=0;m<g;m++)f[m]=arguments[m+2];c.children=f}if(a&&a.defaultProps)for(d in g=a.defaultProps,g)void 0===c[d]&&(c[d]=g[d]);return{$$typeof:l,type:a,key:k,ref:h,props:c,_owner:K.current}}\nfunction N(a,b){return{$$typeof:l,type:a.type,key:b,ref:a.ref,props:a.props,_owner:a._owner}}function O(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===l}function escape(a){var b={\"=\":\"=0\",\":\":\"=2\"};return\"$\"+a.replace(/[=:]/g,function(a){return b[a]})}var P=/\\/+/g;function Q(a,b){return\"object\"===typeof a&&null!==a&&null!=a.key?escape(\"\"+a.key):b.toString(36)}\nfunction R(a,b,e,d,c){var k=typeof a;if(\"undefined\"===k||\"boolean\"===k)a=null;var h=!1;if(null===a)h=!0;else switch(k){case \"string\":case \"number\":h=!0;break;case \"object\":switch(a.$$typeof){case l:case n:h=!0}}if(h)return h=a,c=c(h),a=\"\"===d?\".\"+Q(h,0):d,I(c)?(e=\"\",null!=a&&(e=a.replace(P,\"$&/\")+\"/\"),R(c,b,e,\"\",function(a){return a})):null!=c&&(O(c)&&(c=N(c,e+(!c.key||h&&h.key===c.key?\"\":(\"\"+c.key).replace(P,\"$&/\")+\"/\")+a)),b.push(c)),1;h=0;d=\"\"===d?\".\":d+\":\";if(I(a))for(var g=0;g<a.length;g++){k=\na[g];var f=d+Q(k,g);h+=R(k,b,e,f,c)}else if(f=A(a),\"function\"===typeof f)for(a=f.call(a),g=0;!(k=a.next()).done;)k=k.value,f=d+Q(k,g++),h+=R(k,b,e,f,c);else if(\"object\"===k)throw b=String(a),Error(\"Objects are not valid as a React child (found: \"+(\"[object Object]\"===b?\"object with keys {\"+Object.keys(a).join(\", \")+\"}\":b)+\"). If you meant to render a collection of children, use an array instead.\");return h}\nfunction S(a,b,e){if(null==a)return a;var d=[],c=0;R(a,d,\"\",\"\",function(a){return b.call(e,a,c++)});return d}function T(a){if(-1===a._status){var b=a._result;b=b();b.then(function(b){if(0===a._status||-1===a._status)a._status=1,a._result=b},function(b){if(0===a._status||-1===a._status)a._status=2,a._result=b});-1===a._status&&(a._status=0,a._result=b)}if(1===a._status)return a._result.default;throw a._result;}\nvar U={current:null},V={transition:null},W={ReactCurrentDispatcher:U,ReactCurrentBatchConfig:V,ReactCurrentOwner:K};function X(){throw Error(\"act(...) is not supported in production builds of React.\");}\nexports.Children={map:S,forEach:function(a,b,e){S(a,function(){b.apply(this,arguments)},e)},count:function(a){var b=0;S(a,function(){b++});return b},toArray:function(a){return S(a,function(a){return a})||[]},only:function(a){if(!O(a))throw Error(\"React.Children.only expected to receive a single React element child.\");return a}};exports.Component=E;exports.Fragment=p;exports.Profiler=r;exports.PureComponent=G;exports.StrictMode=q;exports.Suspense=w;\nexports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=W;exports.act=X;\nexports.cloneElement=function(a,b,e){if(null===a||void 0===a)throw Error(\"React.cloneElement(...): The argument must be a React element, but you passed \"+a+\".\");var d=C({},a.props),c=a.key,k=a.ref,h=a._owner;if(null!=b){void 0!==b.ref&&(k=b.ref,h=K.current);void 0!==b.key&&(c=\"\"+b.key);if(a.type&&a.type.defaultProps)var g=a.type.defaultProps;for(f in b)J.call(b,f)&&!L.hasOwnProperty(f)&&(d[f]=void 0===b[f]&&void 0!==g?g[f]:b[f])}var f=arguments.length-2;if(1===f)d.children=e;else if(1<f){g=Array(f);\nfor(var m=0;m<f;m++)g[m]=arguments[m+2];d.children=g}return{$$typeof:l,type:a.type,key:c,ref:k,props:d,_owner:h}};exports.createContext=function(a){a={$$typeof:u,_currentValue:a,_currentValue2:a,_threadCount:0,Provider:null,Consumer:null,_defaultValue:null,_globalName:null};a.Provider={$$typeof:t,_context:a};return a.Consumer=a};exports.createElement=M;exports.createFactory=function(a){var b=M.bind(null,a);b.type=a;return b};exports.createRef=function(){return{current:null}};\nexports.forwardRef=function(a){return{$$typeof:v,render:a}};exports.isValidElement=O;exports.lazy=function(a){return{$$typeof:y,_payload:{_status:-1,_result:a},_init:T}};exports.memo=function(a,b){return{$$typeof:x,type:a,compare:void 0===b?null:b}};exports.startTransition=function(a){var b=V.transition;V.transition={};try{a()}finally{V.transition=b}};exports.unstable_act=X;exports.useCallback=function(a,b){return U.current.useCallback(a,b)};exports.useContext=function(a){return U.current.useContext(a)};\nexports.useDebugValue=function(){};exports.useDeferredValue=function(a){return U.current.useDeferredValue(a)};exports.useEffect=function(a,b){return U.current.useEffect(a,b)};exports.useId=function(){return U.current.useId()};exports.useImperativeHandle=function(a,b,e){return U.current.useImperativeHandle(a,b,e)};exports.useInsertionEffect=function(a,b){return U.current.useInsertionEffect(a,b)};exports.useLayoutEffect=function(a,b){return U.current.useLayoutEffect(a,b)};\nexports.useMemo=function(a,b){return U.current.useMemo(a,b)};exports.useReducer=function(a,b,e){return U.current.useReducer(a,b,e)};exports.useRef=function(a){return U.current.useRef(a)};exports.useState=function(a){return U.current.useState(a)};exports.useSyncExternalStore=function(a,b,e){return U.current.useSyncExternalStore(a,b,e)};exports.useTransition=function(){return U.current.useTransition()};exports.version=\"18.3.1\";\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react.production.min.js');\n} else {\n module.exports = require('./cjs/react.development.js');\n}\n","/**\n * @license React\n * react-jsx-runtime.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var f=require(\"react\"),k=Symbol.for(\"react.element\"),l=Symbol.for(\"react.fragment\"),m=Object.prototype.hasOwnProperty,n=f.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED.ReactCurrentOwner,p={key:!0,ref:!0,__self:!0,__source:!0};\nfunction q(c,a,g){var b,d={},e=null,h=null;void 0!==g&&(e=\"\"+g);void 0!==a.key&&(e=\"\"+a.key);void 0!==a.ref&&(h=a.ref);for(b in a)m.call(a,b)&&!p.hasOwnProperty(b)&&(d[b]=a[b]);if(c&&c.defaultProps)for(b in a=c.defaultProps,a)void 0===d[b]&&(d[b]=a[b]);return{$$typeof:k,type:c,key:e,ref:h,props:d,_owner:n.current}}exports.Fragment=l;exports.jsx=q;exports.jsxs=q;\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-jsx-runtime.production.min.js');\n} else {\n module.exports = require('./cjs/react-jsx-runtime.development.js');\n}\n","/**\n * @license React\n * scheduler.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';function f(a,b){var c=a.length;a.push(b);a:for(;0<c;){var d=c-1>>>1,e=a[d];if(0<g(e,b))a[d]=b,a[c]=e,c=d;else break a}}function h(a){return 0===a.length?null:a[0]}function k(a){if(0===a.length)return null;var b=a[0],c=a.pop();if(c!==b){a[0]=c;a:for(var d=0,e=a.length,w=e>>>1;d<w;){var m=2*(d+1)-1,C=a[m],n=m+1,x=a[n];if(0>g(C,c))n<e&&0>g(x,C)?(a[d]=x,a[n]=c,d=n):(a[d]=C,a[m]=c,d=m);else if(n<e&&0>g(x,c))a[d]=x,a[n]=c,d=n;else break a}}return b}\nfunction g(a,b){var c=a.sortIndex-b.sortIndex;return 0!==c?c:a.id-b.id}if(\"object\"===typeof performance&&\"function\"===typeof performance.now){var l=performance;exports.unstable_now=function(){return l.now()}}else{var p=Date,q=p.now();exports.unstable_now=function(){return p.now()-q}}var r=[],t=[],u=1,v=null,y=3,z=!1,A=!1,B=!1,D=\"function\"===typeof setTimeout?setTimeout:null,E=\"function\"===typeof clearTimeout?clearTimeout:null,F=\"undefined\"!==typeof setImmediate?setImmediate:null;\n\"undefined\"!==typeof navigator&&void 0!==navigator.scheduling&&void 0!==navigator.scheduling.isInputPending&&navigator.scheduling.isInputPending.bind(navigator.scheduling);function G(a){for(var b=h(t);null!==b;){if(null===b.callback)k(t);else if(b.startTime<=a)k(t),b.sortIndex=b.expirationTime,f(r,b);else break;b=h(t)}}function H(a){B=!1;G(a);if(!A)if(null!==h(r))A=!0,I(J);else{var b=h(t);null!==b&&K(H,b.startTime-a)}}\nfunction J(a,b){A=!1;B&&(B=!1,E(L),L=-1);z=!0;var c=y;try{G(b);for(v=h(r);null!==v&&(!(v.expirationTime>b)||a&&!M());){var d=v.callback;if(\"function\"===typeof d){v.callback=null;y=v.priorityLevel;var e=d(v.expirationTime<=b);b=exports.unstable_now();\"function\"===typeof e?v.callback=e:v===h(r)&&k(r);G(b)}else k(r);v=h(r)}if(null!==v)var w=!0;else{var m=h(t);null!==m&&K(H,m.startTime-b);w=!1}return w}finally{v=null,y=c,z=!1}}var N=!1,O=null,L=-1,P=5,Q=-1;\nfunction M(){return exports.unstable_now()-Q<P?!1:!0}function R(){if(null!==O){var a=exports.unstable_now();Q=a;var b=!0;try{b=O(!0,a)}finally{b?S():(N=!1,O=null)}}else N=!1}var S;if(\"function\"===typeof F)S=function(){F(R)};else if(\"undefined\"!==typeof MessageChannel){var T=new MessageChannel,U=T.port2;T.port1.onmessage=R;S=function(){U.postMessage(null)}}else S=function(){D(R,0)};function I(a){O=a;N||(N=!0,S())}function K(a,b){L=D(function(){a(exports.unstable_now())},b)}\nexports.unstable_IdlePriority=5;exports.unstable_ImmediatePriority=1;exports.unstable_LowPriority=4;exports.unstable_NormalPriority=3;exports.unstable_Profiling=null;exports.unstable_UserBlockingPriority=2;exports.unstable_cancelCallback=function(a){a.callback=null};exports.unstable_continueExecution=function(){A||z||(A=!0,I(J))};\nexports.unstable_forceFrameRate=function(a){0>a||125<a?console.error(\"forceFrameRate takes a positive int between 0 and 125, forcing frame rates higher than 125 fps is not supported\"):P=0<a?Math.floor(1E3/a):5};exports.unstable_getCurrentPriorityLevel=function(){return y};exports.unstable_getFirstCallbackNode=function(){return h(r)};exports.unstable_next=function(a){switch(y){case 1:case 2:case 3:var b=3;break;default:b=y}var c=y;y=b;try{return a()}finally{y=c}};exports.unstable_pauseExecution=function(){};\nexports.unstable_requestPaint=function(){};exports.unstable_runWithPriority=function(a,b){switch(a){case 1:case 2:case 3:case 4:case 5:break;default:a=3}var c=y;y=a;try{return b()}finally{y=c}};\nexports.unstable_scheduleCallback=function(a,b,c){var d=exports.unstable_now();\"object\"===typeof c&&null!==c?(c=c.delay,c=\"number\"===typeof c&&0<c?d+c:d):c=d;switch(a){case 1:var e=-1;break;case 2:e=250;break;case 5:e=1073741823;break;case 4:e=1E4;break;default:e=5E3}e=c+e;a={id:u++,callback:b,priorityLevel:a,startTime:c,expirationTime:e,sortIndex:-1};c>d?(a.sortIndex=c,f(t,a),null===h(r)&&a===h(t)&&(B?(E(L),L=-1):B=!0,K(H,c-d))):(a.sortIndex=e,f(r,a),A||z||(A=!0,I(J)));return a};\nexports.unstable_shouldYield=M;exports.unstable_wrapCallback=function(a){var b=y;return function(){var c=y;y=b;try{return a.apply(this,arguments)}finally{y=c}}};\n","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/scheduler.production.min.js');\n} else {\n module.exports = require('./cjs/scheduler.development.js');\n}\n","/**\n * @license React\n * react-dom.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n/*\n Modernizr 3.0.0pre (Custom Build) | MIT\n*/\n'use strict';var aa=require(\"react\"),ca=require(\"scheduler\");function p(a){for(var b=\"https://reactjs.org/docs/error-decoder.html?invariant=\"+a,c=1;c<arguments.length;c++)b+=\"&args[]=\"+encodeURIComponent(arguments[c]);return\"Minified React error #\"+a+\"; visit \"+b+\" for the full message or use the non-minified dev environment for full errors and additional helpful warnings.\"}var da=new Set,ea={};function fa(a,b){ha(a,b);ha(a+\"Capture\",b)}\nfunction ha(a,b){ea[a]=b;for(a=0;a<b.length;a++)da.add(b[a])}\nvar ia=!(\"undefined\"===typeof window||\"undefined\"===typeof window.document||\"undefined\"===typeof window.document.createElement),ja=Object.prototype.hasOwnProperty,ka=/^[:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD][:A-Z_a-z\\u00C0-\\u00D6\\u00D8-\\u00F6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD\\-.0-9\\u00B7\\u0300-\\u036F\\u203F-\\u2040]*$/,la=\n{},ma={};function oa(a){if(ja.call(ma,a))return!0;if(ja.call(la,a))return!1;if(ka.test(a))return ma[a]=!0;la[a]=!0;return!1}function pa(a,b,c,d){if(null!==c&&0===c.type)return!1;switch(typeof b){case \"function\":case \"symbol\":return!0;case \"boolean\":if(d)return!1;if(null!==c)return!c.acceptsBooleans;a=a.toLowerCase().slice(0,5);return\"data-\"!==a&&\"aria-\"!==a;default:return!1}}\nfunction qa(a,b,c,d){if(null===b||\"undefined\"===typeof b||pa(a,b,c,d))return!0;if(d)return!1;if(null!==c)switch(c.type){case 3:return!b;case 4:return!1===b;case 5:return isNaN(b);case 6:return isNaN(b)||1>b}return!1}function v(a,b,c,d,e,f,g){this.acceptsBooleans=2===b||3===b||4===b;this.attributeName=d;this.attributeNamespace=e;this.mustUseProperty=c;this.propertyName=a;this.type=b;this.sanitizeURL=f;this.removeEmptyString=g}var z={};\n\"children dangerouslySetInnerHTML defaultValue defaultChecked innerHTML suppressContentEditableWarning suppressHydrationWarning style\".split(\" \").forEach(function(a){z[a]=new v(a,0,!1,a,null,!1,!1)});[[\"acceptCharset\",\"accept-charset\"],[\"className\",\"class\"],[\"htmlFor\",\"for\"],[\"httpEquiv\",\"http-equiv\"]].forEach(function(a){var b=a[0];z[b]=new v(b,1,!1,a[1],null,!1,!1)});[\"contentEditable\",\"draggable\",\"spellCheck\",\"value\"].forEach(function(a){z[a]=new v(a,2,!1,a.toLowerCase(),null,!1,!1)});\n[\"autoReverse\",\"externalResourcesRequired\",\"focusable\",\"preserveAlpha\"].forEach(function(a){z[a]=new v(a,2,!1,a,null,!1,!1)});\"allowFullScreen async autoFocus autoPlay controls default defer disabled disablePictureInPicture disableRemotePlayback formNoValidate hidden loop noModule noValidate open playsInline readOnly required reversed scoped seamless itemScope\".split(\" \").forEach(function(a){z[a]=new v(a,3,!1,a.toLowerCase(),null,!1,!1)});\n[\"checked\",\"multiple\",\"muted\",\"selected\"].forEach(function(a){z[a]=new v(a,3,!0,a,null,!1,!1)});[\"capture\",\"download\"].forEach(function(a){z[a]=new v(a,4,!1,a,null,!1,!1)});[\"cols\",\"rows\",\"size\",\"span\"].forEach(function(a){z[a]=new v(a,6,!1,a,null,!1,!1)});[\"rowSpan\",\"start\"].forEach(function(a){z[a]=new v(a,5,!1,a.toLowerCase(),null,!1,!1)});var ra=/[\\-:]([a-z])/g;function sa(a){return a[1].toUpperCase()}\n\"accent-height alignment-baseline arabic-form baseline-shift cap-height clip-path clip-rule color-interpolation color-interpolation-filters color-profile color-rendering dominant-baseline enable-background fill-opacity fill-rule flood-color flood-opacity font-family font-size font-size-adjust font-stretch font-style font-variant font-weight glyph-name glyph-orientation-horizontal glyph-orientation-vertical horiz-adv-x horiz-origin-x image-rendering letter-spacing lighting-color marker-end marker-mid marker-start overline-position overline-thickness paint-order panose-1 pointer-events rendering-intent shape-rendering stop-color stop-opacity strikethrough-position strikethrough-thickness stroke-dasharray stroke-dashoffset stroke-linecap stroke-linejoin stroke-miterlimit stroke-opacity stroke-width text-anchor text-decoration text-rendering underline-position underline-thickness unicode-bidi unicode-range units-per-em v-alphabetic v-hanging v-ideographic v-mathematical vector-effect vert-adv-y vert-origin-x vert-origin-y word-spacing writing-mode xmlns:xlink x-height\".split(\" \").forEach(function(a){var b=a.replace(ra,\nsa);z[b]=new v(b,1,!1,a,null,!1,!1)});\"xlink:actuate xlink:arcrole xlink:role xlink:show xlink:title xlink:type\".split(\" \").forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/1999/xlink\",!1,!1)});[\"xml:base\",\"xml:lang\",\"xml:space\"].forEach(function(a){var b=a.replace(ra,sa);z[b]=new v(b,1,!1,a,\"http://www.w3.org/XML/1998/namespace\",!1,!1)});[\"tabIndex\",\"crossOrigin\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!1,!1)});\nz.xlinkHref=new v(\"xlinkHref\",1,!1,\"xlink:href\",\"http://www.w3.org/1999/xlink\",!0,!1);[\"src\",\"href\",\"action\",\"formAction\"].forEach(function(a){z[a]=new v(a,1,!1,a.toLowerCase(),null,!0,!0)});\nfunction ta(a,b,c,d){var e=z.hasOwnProperty(b)?z[b]:null;if(null!==e?0!==e.type:d||!(2<b.length)||\"o\"!==b[0]&&\"O\"!==b[0]||\"n\"!==b[1]&&\"N\"!==b[1])qa(b,c,e,d)&&(c=null),d||null===e?oa(b)&&(null===c?a.removeAttribute(b):a.setAttribute(b,\"\"+c)):e.mustUseProperty?a[e.propertyName]=null===c?3===e.type?!1:\"\":c:(b=e.attributeName,d=e.attributeNamespace,null===c?a.removeAttribute(b):(e=e.type,c=3===e||4===e&&!0===c?\"\":\"\"+c,d?a.setAttributeNS(d,b,c):a.setAttribute(b,c)))}\nvar ua=aa.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED,va=Symbol.for(\"react.element\"),wa=Symbol.for(\"react.portal\"),ya=Symbol.for(\"react.fragment\"),za=Symbol.for(\"react.strict_mode\"),Aa=Symbol.for(\"react.profiler\"),Ba=Symbol.for(\"react.provider\"),Ca=Symbol.for(\"react.context\"),Da=Symbol.for(\"react.forward_ref\"),Ea=Symbol.for(\"react.suspense\"),Fa=Symbol.for(\"react.suspense_list\"),Ga=Symbol.for(\"react.memo\"),Ha=Symbol.for(\"react.lazy\");Symbol.for(\"react.scope\");Symbol.for(\"react.debug_trace_mode\");\nvar Ia=Symbol.for(\"react.offscreen\");Symbol.for(\"react.legacy_hidden\");Symbol.for(\"react.cache\");Symbol.for(\"react.tracing_marker\");var Ja=Symbol.iterator;function Ka(a){if(null===a||\"object\"!==typeof a)return null;a=Ja&&a[Ja]||a[\"@@iterator\"];return\"function\"===typeof a?a:null}var A=Object.assign,La;function Ma(a){if(void 0===La)try{throw Error();}catch(c){var b=c.stack.trim().match(/\\n( *(at )?)/);La=b&&b[1]||\"\"}return\"\\n\"+La+a}var Na=!1;\nfunction Oa(a,b){if(!a||Na)return\"\";Na=!0;var c=Error.prepareStackTrace;Error.prepareStackTrace=void 0;try{if(b)if(b=function(){throw Error();},Object.defineProperty(b.prototype,\"props\",{set:function(){throw Error();}}),\"object\"===typeof Reflect&&Reflect.construct){try{Reflect.construct(b,[])}catch(l){var d=l}Reflect.construct(a,[],b)}else{try{b.call()}catch(l){d=l}a.call(b.prototype)}else{try{throw Error();}catch(l){d=l}a()}}catch(l){if(l&&d&&\"string\"===typeof l.stack){for(var e=l.stack.split(\"\\n\"),\nf=d.stack.split(\"\\n\"),g=e.length-1,h=f.length-1;1<=g&&0<=h&&e[g]!==f[h];)h--;for(;1<=g&&0<=h;g--,h--)if(e[g]!==f[h]){if(1!==g||1!==h){do if(g--,h--,0>h||e[g]!==f[h]){var k=\"\\n\"+e[g].replace(\" at new \",\" at \");a.displayName&&k.includes(\"<anonymous>\")&&(k=k.replace(\"<anonymous>\",a.displayName));return k}while(1<=g&&0<=h)}break}}}finally{Na=!1,Error.prepareStackTrace=c}return(a=a?a.displayName||a.name:\"\")?Ma(a):\"\"}\nfunction Pa(a){switch(a.tag){case 5:return Ma(a.type);case 16:return Ma(\"Lazy\");case 13:return Ma(\"Suspense\");case 19:return Ma(\"SuspenseList\");case 0:case 2:case 15:return a=Oa(a.type,!1),a;case 11:return a=Oa(a.type.render,!1),a;case 1:return a=Oa(a.type,!0),a;default:return\"\"}}\nfunction Qa(a){if(null==a)return null;if(\"function\"===typeof a)return a.displayName||a.name||null;if(\"string\"===typeof a)return a;switch(a){case ya:return\"Fragment\";case wa:return\"Portal\";case Aa:return\"Profiler\";case za:return\"StrictMode\";case Ea:return\"Suspense\";case Fa:return\"SuspenseList\"}if(\"object\"===typeof a)switch(a.$$typeof){case Ca:return(a.displayName||\"Context\")+\".Consumer\";case Ba:return(a._context.displayName||\"Context\")+\".Provider\";case Da:var b=a.render;a=a.displayName;a||(a=b.displayName||\nb.name||\"\",a=\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");return a;case Ga:return b=a.displayName||null,null!==b?b:Qa(a.type)||\"Memo\";case Ha:b=a._payload;a=a._init;try{return Qa(a(b))}catch(c){}}return null}\nfunction Ra(a){var b=a.type;switch(a.tag){case 24:return\"Cache\";case 9:return(b.displayName||\"Context\")+\".Consumer\";case 10:return(b._context.displayName||\"Context\")+\".Provider\";case 18:return\"DehydratedFragment\";case 11:return a=b.render,a=a.displayName||a.name||\"\",b.displayName||(\"\"!==a?\"ForwardRef(\"+a+\")\":\"ForwardRef\");case 7:return\"Fragment\";case 5:return b;case 4:return\"Portal\";case 3:return\"Root\";case 6:return\"Text\";case 16:return Qa(b);case 8:return b===za?\"StrictMode\":\"Mode\";case 22:return\"Offscreen\";\ncase 12:return\"Profiler\";case 21:return\"Scope\";case 13:return\"Suspense\";case 19:return\"SuspenseList\";case 25:return\"TracingMarker\";case 1:case 0:case 17:case 2:case 14:case 15:if(\"function\"===typeof b)return b.displayName||b.name||null;if(\"string\"===typeof b)return b}return null}function Sa(a){switch(typeof a){case \"boolean\":case \"number\":case \"string\":case \"undefined\":return a;case \"object\":return a;default:return\"\"}}\nfunction Ta(a){var b=a.type;return(a=a.nodeName)&&\"input\"===a.toLowerCase()&&(\"checkbox\"===b||\"radio\"===b)}\nfunction Ua(a){var b=Ta(a)?\"checked\":\"value\",c=Object.getOwnPropertyDescriptor(a.constructor.prototype,b),d=\"\"+a[b];if(!a.hasOwnProperty(b)&&\"undefined\"!==typeof c&&\"function\"===typeof c.get&&\"function\"===typeof c.set){var e=c.get,f=c.set;Object.defineProperty(a,b,{configurable:!0,get:function(){return e.call(this)},set:function(a){d=\"\"+a;f.call(this,a)}});Object.defineProperty(a,b,{enumerable:c.enumerable});return{getValue:function(){return d},setValue:function(a){d=\"\"+a},stopTracking:function(){a._valueTracker=\nnull;delete a[b]}}}}function Va(a){a._valueTracker||(a._valueTracker=Ua(a))}function Wa(a){if(!a)return!1;var b=a._valueTracker;if(!b)return!0;var c=b.getValue();var d=\"\";a&&(d=Ta(a)?a.checked?\"true\":\"false\":a.value);a=d;return a!==c?(b.setValue(a),!0):!1}function Xa(a){a=a||(\"undefined\"!==typeof document?document:void 0);if(\"undefined\"===typeof a)return null;try{return a.activeElement||a.body}catch(b){return a.body}}\nfunction Ya(a,b){var c=b.checked;return A({},b,{defaultChecked:void 0,defaultValue:void 0,value:void 0,checked:null!=c?c:a._wrapperState.initialChecked})}function Za(a,b){var c=null==b.defaultValue?\"\":b.defaultValue,d=null!=b.checked?b.checked:b.defaultChecked;c=Sa(null!=b.value?b.value:c);a._wrapperState={initialChecked:d,initialValue:c,controlled:\"checkbox\"===b.type||\"radio\"===b.type?null!=b.checked:null!=b.value}}function ab(a,b){b=b.checked;null!=b&&ta(a,\"checked\",b,!1)}\nfunction bb(a,b){ab(a,b);var c=Sa(b.value),d=b.type;if(null!=c)if(\"number\"===d){if(0===c&&\"\"===a.value||a.value!=c)a.value=\"\"+c}else a.value!==\"\"+c&&(a.value=\"\"+c);else if(\"submit\"===d||\"reset\"===d){a.removeAttribute(\"value\");return}b.hasOwnProperty(\"value\")?cb(a,b.type,c):b.hasOwnProperty(\"defaultValue\")&&cb(a,b.type,Sa(b.defaultValue));null==b.checked&&null!=b.defaultChecked&&(a.defaultChecked=!!b.defaultChecked)}\nfunction db(a,b,c){if(b.hasOwnProperty(\"value\")||b.hasOwnProperty(\"defaultValue\")){var d=b.type;if(!(\"submit\"!==d&&\"reset\"!==d||void 0!==b.value&&null!==b.value))return;b=\"\"+a._wrapperState.initialValue;c||b===a.value||(a.value=b);a.defaultValue=b}c=a.name;\"\"!==c&&(a.name=\"\");a.defaultChecked=!!a._wrapperState.initialChecked;\"\"!==c&&(a.name=c)}\nfunction cb(a,b,c){if(\"number\"!==b||Xa(a.ownerDocument)!==a)null==c?a.defaultValue=\"\"+a._wrapperState.initialValue:a.defaultValue!==\"\"+c&&(a.defaultValue=\"\"+c)}var eb=Array.isArray;\nfunction fb(a,b,c,d){a=a.options;if(b){b={};for(var e=0;e<c.length;e++)b[\"$\"+c[e]]=!0;for(c=0;c<a.length;c++)e=b.hasOwnProperty(\"$\"+a[c].value),a[c].selected!==e&&(a[c].selected=e),e&&d&&(a[c].defaultSelected=!0)}else{c=\"\"+Sa(c);b=null;for(e=0;e<a.length;e++){if(a[e].value===c){a[e].selected=!0;d&&(a[e].defaultSelected=!0);return}null!==b||a[e].disabled||(b=a[e])}null!==b&&(b.selected=!0)}}\nfunction gb(a,b){if(null!=b.dangerouslySetInnerHTML)throw Error(p(91));return A({},b,{value:void 0,defaultValue:void 0,children:\"\"+a._wrapperState.initialValue})}function hb(a,b){var c=b.value;if(null==c){c=b.children;b=b.defaultValue;if(null!=c){if(null!=b)throw Error(p(92));if(eb(c)){if(1<c.length)throw Error(p(93));c=c[0]}b=c}null==b&&(b=\"\");c=b}a._wrapperState={initialValue:Sa(c)}}\nfunction ib(a,b){var c=Sa(b.value),d=Sa(b.defaultValue);null!=c&&(c=\"\"+c,c!==a.value&&(a.value=c),null==b.defaultValue&&a.defaultValue!==c&&(a.defaultValue=c));null!=d&&(a.defaultValue=\"\"+d)}function jb(a){var b=a.textContent;b===a._wrapperState.initialValue&&\"\"!==b&&null!==b&&(a.value=b)}function kb(a){switch(a){case \"svg\":return\"http://www.w3.org/2000/svg\";case \"math\":return\"http://www.w3.org/1998/Math/MathML\";default:return\"http://www.w3.org/1999/xhtml\"}}\nfunction lb(a,b){return null==a||\"http://www.w3.org/1999/xhtml\"===a?kb(b):\"http://www.w3.org/2000/svg\"===a&&\"foreignObject\"===b?\"http://www.w3.org/1999/xhtml\":a}\nvar mb,nb=function(a){return\"undefined\"!==typeof MSApp&&MSApp.execUnsafeLocalFunction?function(b,c,d,e){MSApp.execUnsafeLocalFunction(function(){return a(b,c,d,e)})}:a}(function(a,b){if(\"http://www.w3.org/2000/svg\"!==a.namespaceURI||\"innerHTML\"in a)a.innerHTML=b;else{mb=mb||document.createElement(\"div\");mb.innerHTML=\"<svg>\"+b.valueOf().toString()+\"</svg>\";for(b=mb.firstChild;a.firstChild;)a.removeChild(a.firstChild);for(;b.firstChild;)a.appendChild(b.firstChild)}});\nfunction ob(a,b){if(b){var c=a.firstChild;if(c&&c===a.lastChild&&3===c.nodeType){c.nodeValue=b;return}}a.textContent=b}\nvar pb={animationIterationCount:!0,aspectRatio:!0,borderImageOutset:!0,borderImageSlice:!0,borderImageWidth:!0,boxFlex:!0,boxFlexGroup:!0,boxOrdinalGroup:!0,columnCount:!0,columns:!0,flex:!0,flexGrow:!0,flexPositive:!0,flexShrink:!0,flexNegative:!0,flexOrder:!0,gridArea:!0,gridRow:!0,gridRowEnd:!0,gridRowSpan:!0,gridRowStart:!0,gridColumn:!0,gridColumnEnd:!0,gridColumnSpan:!0,gridColumnStart:!0,fontWeight:!0,lineClamp:!0,lineHeight:!0,opacity:!0,order:!0,orphans:!0,tabSize:!0,widows:!0,zIndex:!0,\nzoom:!0,fillOpacity:!0,floodOpacity:!0,stopOpacity:!0,strokeDasharray:!0,strokeDashoffset:!0,strokeMiterlimit:!0,strokeOpacity:!0,strokeWidth:!0},qb=[\"Webkit\",\"ms\",\"Moz\",\"O\"];Object.keys(pb).forEach(function(a){qb.forEach(function(b){b=b+a.charAt(0).toUpperCase()+a.substring(1);pb[b]=pb[a]})});function rb(a,b,c){return null==b||\"boolean\"===typeof b||\"\"===b?\"\":c||\"number\"!==typeof b||0===b||pb.hasOwnProperty(a)&&pb[a]?(\"\"+b).trim():b+\"px\"}\nfunction sb(a,b){a=a.style;for(var c in b)if(b.hasOwnProperty(c)){var d=0===c.indexOf(\"--\"),e=rb(c,b[c],d);\"float\"===c&&(c=\"cssFloat\");d?a.setProperty(c,e):a[c]=e}}var tb=A({menuitem:!0},{area:!0,base:!0,br:!0,col:!0,embed:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0});\nfunction ub(a,b){if(b){if(tb[a]&&(null!=b.children||null!=b.dangerouslySetInnerHTML))throw Error(p(137,a));if(null!=b.dangerouslySetInnerHTML){if(null!=b.children)throw Error(p(60));if(\"object\"!==typeof b.dangerouslySetInnerHTML||!(\"__html\"in b.dangerouslySetInnerHTML))throw Error(p(61));}if(null!=b.style&&\"object\"!==typeof b.style)throw Error(p(62));}}\nfunction vb(a,b){if(-1===a.indexOf(\"-\"))return\"string\"===typeof b.is;switch(a){case \"annotation-xml\":case \"color-profile\":case \"font-face\":case \"font-face-src\":case \"font-face-uri\":case \"font-face-format\":case \"font-face-name\":case \"missing-glyph\":return!1;default:return!0}}var wb=null;function xb(a){a=a.target||a.srcElement||window;a.correspondingUseElement&&(a=a.correspondingUseElement);return 3===a.nodeType?a.parentNode:a}var yb=null,zb=null,Ab=null;\nfunction Bb(a){if(a=Cb(a)){if(\"function\"!==typeof yb)throw Error(p(280));var b=a.stateNode;b&&(b=Db(b),yb(a.stateNode,a.type,b))}}function Eb(a){zb?Ab?Ab.push(a):Ab=[a]:zb=a}function Fb(){if(zb){var a=zb,b=Ab;Ab=zb=null;Bb(a);if(b)for(a=0;a<b.length;a++)Bb(b[a])}}function Gb(a,b){return a(b)}function Hb(){}var Ib=!1;function Jb(a,b,c){if(Ib)return a(b,c);Ib=!0;try{return Gb(a,b,c)}finally{if(Ib=!1,null!==zb||null!==Ab)Hb(),Fb()}}\nfunction Kb(a,b){var c=a.stateNode;if(null===c)return null;var d=Db(c);if(null===d)return null;c=d[b];a:switch(b){case \"onClick\":case \"onClickCapture\":case \"onDoubleClick\":case \"onDoubleClickCapture\":case \"onMouseDown\":case \"onMouseDownCapture\":case \"onMouseMove\":case \"onMouseMoveCapture\":case \"onMouseUp\":case \"onMouseUpCapture\":case \"onMouseEnter\":(d=!d.disabled)||(a=a.type,d=!(\"button\"===a||\"input\"===a||\"select\"===a||\"textarea\"===a));a=!d;break a;default:a=!1}if(a)return null;if(c&&\"function\"!==\ntypeof c)throw Error(p(231,b,typeof c));return c}var Lb=!1;if(ia)try{var Mb={};Object.defineProperty(Mb,\"passive\",{get:function(){Lb=!0}});window.addEventListener(\"test\",Mb,Mb);window.removeEventListener(\"test\",Mb,Mb)}catch(a){Lb=!1}function Nb(a,b,c,d,e,f,g,h,k){var l=Array.prototype.slice.call(arguments,3);try{b.apply(c,l)}catch(m){this.onError(m)}}var Ob=!1,Pb=null,Qb=!1,Rb=null,Sb={onError:function(a){Ob=!0;Pb=a}};function Tb(a,b,c,d,e,f,g,h,k){Ob=!1;Pb=null;Nb.apply(Sb,arguments)}\nfunction Ub(a,b,c,d,e,f,g,h,k){Tb.apply(this,arguments);if(Ob){if(Ob){var l=Pb;Ob=!1;Pb=null}else throw Error(p(198));Qb||(Qb=!0,Rb=l)}}function Vb(a){var b=a,c=a;if(a.alternate)for(;b.return;)b=b.return;else{a=b;do b=a,0!==(b.flags&4098)&&(c=b.return),a=b.return;while(a)}return 3===b.tag?c:null}function Wb(a){if(13===a.tag){var b=a.memoizedState;null===b&&(a=a.alternate,null!==a&&(b=a.memoizedState));if(null!==b)return b.dehydrated}return null}function Xb(a){if(Vb(a)!==a)throw Error(p(188));}\nfunction Yb(a){var b=a.alternate;if(!b){b=Vb(a);if(null===b)throw Error(p(188));return b!==a?null:a}for(var c=a,d=b;;){var e=c.return;if(null===e)break;var f=e.alternate;if(null===f){d=e.return;if(null!==d){c=d;continue}break}if(e.child===f.child){for(f=e.child;f;){if(f===c)return Xb(e),a;if(f===d)return Xb(e),b;f=f.sibling}throw Error(p(188));}if(c.return!==d.return)c=e,d=f;else{for(var g=!1,h=e.child;h;){if(h===c){g=!0;c=e;d=f;break}if(h===d){g=!0;d=e;c=f;break}h=h.sibling}if(!g){for(h=f.child;h;){if(h===\nc){g=!0;c=f;d=e;break}if(h===d){g=!0;d=f;c=e;break}h=h.sibling}if(!g)throw Error(p(189));}}if(c.alternate!==d)throw Error(p(190));}if(3!==c.tag)throw Error(p(188));return c.stateNode.current===c?a:b}function Zb(a){a=Yb(a);return null!==a?$b(a):null}function $b(a){if(5===a.tag||6===a.tag)return a;for(a=a.child;null!==a;){var b=$b(a);if(null!==b)return b;a=a.sibling}return null}\nvar ac=ca.unstable_scheduleCallback,bc=ca.unstable_cancelCallback,cc=ca.unstable_shouldYield,dc=ca.unstable_requestPaint,B=ca.unstable_now,ec=ca.unstable_getCurrentPriorityLevel,fc=ca.unstable_ImmediatePriority,gc=ca.unstable_UserBlockingPriority,hc=ca.unstable_NormalPriority,ic=ca.unstable_LowPriority,jc=ca.unstable_IdlePriority,kc=null,lc=null;function mc(a){if(lc&&\"function\"===typeof lc.onCommitFiberRoot)try{lc.onCommitFiberRoot(kc,a,void 0,128===(a.current.flags&128))}catch(b){}}\nvar oc=Math.clz32?Math.clz32:nc,pc=Math.log,qc=Math.LN2;function nc(a){a>>>=0;return 0===a?32:31-(pc(a)/qc|0)|0}var rc=64,sc=4194304;\nfunction tc(a){switch(a&-a){case 1:return 1;case 2:return 2;case 4:return 4;case 8:return 8;case 16:return 16;case 32:return 32;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return a&4194240;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return a&130023424;case 134217728:return 134217728;case 268435456:return 268435456;case 536870912:return 536870912;case 1073741824:return 1073741824;\ndefault:return a}}function uc(a,b){var c=a.pendingLanes;if(0===c)return 0;var d=0,e=a.suspendedLanes,f=a.pingedLanes,g=c&268435455;if(0!==g){var h=g&~e;0!==h?d=tc(h):(f&=g,0!==f&&(d=tc(f)))}else g=c&~e,0!==g?d=tc(g):0!==f&&(d=tc(f));if(0===d)return 0;if(0!==b&&b!==d&&0===(b&e)&&(e=d&-d,f=b&-b,e>=f||16===e&&0!==(f&4194240)))return b;0!==(d&4)&&(d|=c&16);b=a.entangledLanes;if(0!==b)for(a=a.entanglements,b&=d;0<b;)c=31-oc(b),e=1<<c,d|=a[c],b&=~e;return d}\nfunction vc(a,b){switch(a){case 1:case 2:case 4:return b+250;case 8:case 16:case 32:case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:return b+5E3;case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:return-1;case 134217728:case 268435456:case 536870912:case 1073741824:return-1;default:return-1}}\nfunction wc(a,b){for(var c=a.suspendedLanes,d=a.pingedLanes,e=a.expirationTimes,f=a.pendingLanes;0<f;){var g=31-oc(f),h=1<<g,k=e[g];if(-1===k){if(0===(h&c)||0!==(h&d))e[g]=vc(h,b)}else k<=b&&(a.expiredLanes|=h);f&=~h}}function xc(a){a=a.pendingLanes&-1073741825;return 0!==a?a:a&1073741824?1073741824:0}function yc(){var a=rc;rc<<=1;0===(rc&4194240)&&(rc=64);return a}function zc(a){for(var b=[],c=0;31>c;c++)b.push(a);return b}\nfunction Ac(a,b,c){a.pendingLanes|=b;536870912!==b&&(a.suspendedLanes=0,a.pingedLanes=0);a=a.eventTimes;b=31-oc(b);a[b]=c}function Bc(a,b){var c=a.pendingLanes&~b;a.pendingLanes=b;a.suspendedLanes=0;a.pingedLanes=0;a.expiredLanes&=b;a.mutableReadLanes&=b;a.entangledLanes&=b;b=a.entanglements;var d=a.eventTimes;for(a=a.expirationTimes;0<c;){var e=31-oc(c),f=1<<e;b[e]=0;d[e]=-1;a[e]=-1;c&=~f}}\nfunction Cc(a,b){var c=a.entangledLanes|=b;for(a=a.entanglements;c;){var d=31-oc(c),e=1<<d;e&b|a[d]&b&&(a[d]|=b);c&=~e}}var C=0;function Dc(a){a&=-a;return 1<a?4<a?0!==(a&268435455)?16:536870912:4:1}var Ec,Fc,Gc,Hc,Ic,Jc=!1,Kc=[],Lc=null,Mc=null,Nc=null,Oc=new Map,Pc=new Map,Qc=[],Rc=\"mousedown mouseup touchcancel touchend touchstart auxclick dblclick pointercancel pointerdown pointerup dragend dragstart drop compositionend compositionstart keydown keypress keyup input textInput copy cut paste click change contextmenu reset submit\".split(\" \");\nfunction Sc(a,b){switch(a){case \"focusin\":case \"focusout\":Lc=null;break;case \"dragenter\":case \"dragleave\":Mc=null;break;case \"mouseover\":case \"mouseout\":Nc=null;break;case \"pointerover\":case \"pointerout\":Oc.delete(b.pointerId);break;case \"gotpointercapture\":case \"lostpointercapture\":Pc.delete(b.pointerId)}}\nfunction Tc(a,b,c,d,e,f){if(null===a||a.nativeEvent!==f)return a={blockedOn:b,domEventName:c,eventSystemFlags:d,nativeEvent:f,targetContainers:[e]},null!==b&&(b=Cb(b),null!==b&&Fc(b)),a;a.eventSystemFlags|=d;b=a.targetContainers;null!==e&&-1===b.indexOf(e)&&b.push(e);return a}\nfunction Uc(a,b,c,d,e){switch(b){case \"focusin\":return Lc=Tc(Lc,a,b,c,d,e),!0;case \"dragenter\":return Mc=Tc(Mc,a,b,c,d,e),!0;case \"mouseover\":return Nc=Tc(Nc,a,b,c,d,e),!0;case \"pointerover\":var f=e.pointerId;Oc.set(f,Tc(Oc.get(f)||null,a,b,c,d,e));return!0;case \"gotpointercapture\":return f=e.pointerId,Pc.set(f,Tc(Pc.get(f)||null,a,b,c,d,e)),!0}return!1}\nfunction Vc(a){var b=Wc(a.target);if(null!==b){var c=Vb(b);if(null!==c)if(b=c.tag,13===b){if(b=Wb(c),null!==b){a.blockedOn=b;Ic(a.priority,function(){Gc(c)});return}}else if(3===b&&c.stateNode.current.memoizedState.isDehydrated){a.blockedOn=3===c.tag?c.stateNode.containerInfo:null;return}}a.blockedOn=null}\nfunction Xc(a){if(null!==a.blockedOn)return!1;for(var b=a.targetContainers;0<b.length;){var c=Yc(a.domEventName,a.eventSystemFlags,b[0],a.nativeEvent);if(null===c){c=a.nativeEvent;var d=new c.constructor(c.type,c);wb=d;c.target.dispatchEvent(d);wb=null}else return b=Cb(c),null!==b&&Fc(b),a.blockedOn=c,!1;b.shift()}return!0}function Zc(a,b,c){Xc(a)&&c.delete(b)}function $c(){Jc=!1;null!==Lc&&Xc(Lc)&&(Lc=null);null!==Mc&&Xc(Mc)&&(Mc=null);null!==Nc&&Xc(Nc)&&(Nc=null);Oc.forEach(Zc);Pc.forEach(Zc)}\nfunction ad(a,b){a.blockedOn===b&&(a.blockedOn=null,Jc||(Jc=!0,ca.unstable_scheduleCallback(ca.unstable_NormalPriority,$c)))}\nfunction bd(a){function b(b){return ad(b,a)}if(0<Kc.length){ad(Kc[0],a);for(var c=1;c<Kc.length;c++){var d=Kc[c];d.blockedOn===a&&(d.blockedOn=null)}}null!==Lc&&ad(Lc,a);null!==Mc&&ad(Mc,a);null!==Nc&&ad(Nc,a);Oc.forEach(b);Pc.forEach(b);for(c=0;c<Qc.length;c++)d=Qc[c],d.blockedOn===a&&(d.blockedOn=null);for(;0<Qc.length&&(c=Qc[0],null===c.blockedOn);)Vc(c),null===c.blockedOn&&Qc.shift()}var cd=ua.ReactCurrentBatchConfig,dd=!0;\nfunction ed(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=1,fd(a,b,c,d)}finally{C=e,cd.transition=f}}function gd(a,b,c,d){var e=C,f=cd.transition;cd.transition=null;try{C=4,fd(a,b,c,d)}finally{C=e,cd.transition=f}}\nfunction fd(a,b,c,d){if(dd){var e=Yc(a,b,c,d);if(null===e)hd(a,b,d,id,c),Sc(a,d);else if(Uc(e,a,b,c,d))d.stopPropagation();else if(Sc(a,d),b&4&&-1<Rc.indexOf(a)){for(;null!==e;){var f=Cb(e);null!==f&&Ec(f);f=Yc(a,b,c,d);null===f&&hd(a,b,d,id,c);if(f===e)break;e=f}null!==e&&d.stopPropagation()}else hd(a,b,d,null,c)}}var id=null;\nfunction Yc(a,b,c,d){id=null;a=xb(d);a=Wc(a);if(null!==a)if(b=Vb(a),null===b)a=null;else if(c=b.tag,13===c){a=Wb(b);if(null!==a)return a;a=null}else if(3===c){if(b.stateNode.current.memoizedState.isDehydrated)return 3===b.tag?b.stateNode.containerInfo:null;a=null}else b!==a&&(a=null);id=a;return null}\nfunction jd(a){switch(a){case \"cancel\":case \"click\":case \"close\":case \"contextmenu\":case \"copy\":case \"cut\":case \"auxclick\":case \"dblclick\":case \"dragend\":case \"dragstart\":case \"drop\":case \"focusin\":case \"focusout\":case \"input\":case \"invalid\":case \"keydown\":case \"keypress\":case \"keyup\":case \"mousedown\":case \"mouseup\":case \"paste\":case \"pause\":case \"play\":case \"pointercancel\":case \"pointerdown\":case \"pointerup\":case \"ratechange\":case \"reset\":case \"resize\":case \"seeked\":case \"submit\":case \"touchcancel\":case \"touchend\":case \"touchstart\":case \"volumechange\":case \"change\":case \"selectionchange\":case \"textInput\":case \"compositionstart\":case \"compositionend\":case \"compositionupdate\":case \"beforeblur\":case \"afterblur\":case \"beforeinput\":case \"blur\":case \"fullscreenchange\":case \"focus\":case \"hashchange\":case \"popstate\":case \"select\":case \"selectstart\":return 1;case \"drag\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"mousemove\":case \"mouseout\":case \"mouseover\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"scroll\":case \"toggle\":case \"touchmove\":case \"wheel\":case \"mouseenter\":case \"mouseleave\":case \"pointerenter\":case \"pointerleave\":return 4;\ncase \"message\":switch(ec()){case fc:return 1;case gc:return 4;case hc:case ic:return 16;case jc:return 536870912;default:return 16}default:return 16}}var kd=null,ld=null,md=null;function nd(){if(md)return md;var a,b=ld,c=b.length,d,e=\"value\"in kd?kd.value:kd.textContent,f=e.length;for(a=0;a<c&&b[a]===e[a];a++);var g=c-a;for(d=1;d<=g&&b[c-d]===e[f-d];d++);return md=e.slice(a,1<d?1-d:void 0)}\nfunction od(a){var b=a.keyCode;\"charCode\"in a?(a=a.charCode,0===a&&13===b&&(a=13)):a=b;10===a&&(a=13);return 32<=a||13===a?a:0}function pd(){return!0}function qd(){return!1}\nfunction rd(a){function b(b,d,e,f,g){this._reactName=b;this._targetInst=e;this.type=d;this.nativeEvent=f;this.target=g;this.currentTarget=null;for(var c in a)a.hasOwnProperty(c)&&(b=a[c],this[c]=b?b(f):f[c]);this.isDefaultPrevented=(null!=f.defaultPrevented?f.defaultPrevented:!1===f.returnValue)?pd:qd;this.isPropagationStopped=qd;return this}A(b.prototype,{preventDefault:function(){this.defaultPrevented=!0;var a=this.nativeEvent;a&&(a.preventDefault?a.preventDefault():\"unknown\"!==typeof a.returnValue&&\n(a.returnValue=!1),this.isDefaultPrevented=pd)},stopPropagation:function(){var a=this.nativeEvent;a&&(a.stopPropagation?a.stopPropagation():\"unknown\"!==typeof a.cancelBubble&&(a.cancelBubble=!0),this.isPropagationStopped=pd)},persist:function(){},isPersistent:pd});return b}\nvar sd={eventPhase:0,bubbles:0,cancelable:0,timeStamp:function(a){return a.timeStamp||Date.now()},defaultPrevented:0,isTrusted:0},td=rd(sd),ud=A({},sd,{view:0,detail:0}),vd=rd(ud),wd,xd,yd,Ad=A({},ud,{screenX:0,screenY:0,clientX:0,clientY:0,pageX:0,pageY:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,getModifierState:zd,button:0,buttons:0,relatedTarget:function(a){return void 0===a.relatedTarget?a.fromElement===a.srcElement?a.toElement:a.fromElement:a.relatedTarget},movementX:function(a){if(\"movementX\"in\na)return a.movementX;a!==yd&&(yd&&\"mousemove\"===a.type?(wd=a.screenX-yd.screenX,xd=a.screenY-yd.screenY):xd=wd=0,yd=a);return wd},movementY:function(a){return\"movementY\"in a?a.movementY:xd}}),Bd=rd(Ad),Cd=A({},Ad,{dataTransfer:0}),Dd=rd(Cd),Ed=A({},ud,{relatedTarget:0}),Fd=rd(Ed),Gd=A({},sd,{animationName:0,elapsedTime:0,pseudoElement:0}),Hd=rd(Gd),Id=A({},sd,{clipboardData:function(a){return\"clipboardData\"in a?a.clipboardData:window.clipboardData}}),Jd=rd(Id),Kd=A({},sd,{data:0}),Ld=rd(Kd),Md={Esc:\"Escape\",\nSpacebar:\" \",Left:\"ArrowLeft\",Up:\"ArrowUp\",Right:\"ArrowRight\",Down:\"ArrowDown\",Del:\"Delete\",Win:\"OS\",Menu:\"ContextMenu\",Apps:\"ContextMenu\",Scroll:\"ScrollLock\",MozPrintableKey:\"Unidentified\"},Nd={8:\"Backspace\",9:\"Tab\",12:\"Clear\",13:\"Enter\",16:\"Shift\",17:\"Control\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Escape\",32:\" \",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"ArrowLeft\",38:\"ArrowUp\",39:\"ArrowRight\",40:\"ArrowDown\",45:\"Insert\",46:\"Delete\",112:\"F1\",113:\"F2\",114:\"F3\",115:\"F4\",116:\"F5\",117:\"F6\",118:\"F7\",\n119:\"F8\",120:\"F9\",121:\"F10\",122:\"F11\",123:\"F12\",144:\"NumLock\",145:\"ScrollLock\",224:\"Meta\"},Od={Alt:\"altKey\",Control:\"ctrlKey\",Meta:\"metaKey\",Shift:\"shiftKey\"};function Pd(a){var b=this.nativeEvent;return b.getModifierState?b.getModifierState(a):(a=Od[a])?!!b[a]:!1}function zd(){return Pd}\nvar Qd=A({},ud,{key:function(a){if(a.key){var b=Md[a.key]||a.key;if(\"Unidentified\"!==b)return b}return\"keypress\"===a.type?(a=od(a),13===a?\"Enter\":String.fromCharCode(a)):\"keydown\"===a.type||\"keyup\"===a.type?Nd[a.keyCode]||\"Unidentified\":\"\"},code:0,location:0,ctrlKey:0,shiftKey:0,altKey:0,metaKey:0,repeat:0,locale:0,getModifierState:zd,charCode:function(a){return\"keypress\"===a.type?od(a):0},keyCode:function(a){return\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0},which:function(a){return\"keypress\"===\na.type?od(a):\"keydown\"===a.type||\"keyup\"===a.type?a.keyCode:0}}),Rd=rd(Qd),Sd=A({},Ad,{pointerId:0,width:0,height:0,pressure:0,tangentialPressure:0,tiltX:0,tiltY:0,twist:0,pointerType:0,isPrimary:0}),Td=rd(Sd),Ud=A({},ud,{touches:0,targetTouches:0,changedTouches:0,altKey:0,metaKey:0,ctrlKey:0,shiftKey:0,getModifierState:zd}),Vd=rd(Ud),Wd=A({},sd,{propertyName:0,elapsedTime:0,pseudoElement:0}),Xd=rd(Wd),Yd=A({},Ad,{deltaX:function(a){return\"deltaX\"in a?a.deltaX:\"wheelDeltaX\"in a?-a.wheelDeltaX:0},\ndeltaY:function(a){return\"deltaY\"in a?a.deltaY:\"wheelDeltaY\"in a?-a.wheelDeltaY:\"wheelDelta\"in a?-a.wheelDelta:0},deltaZ:0,deltaMode:0}),Zd=rd(Yd),$d=[9,13,27,32],ae=ia&&\"CompositionEvent\"in window,be=null;ia&&\"documentMode\"in document&&(be=document.documentMode);var ce=ia&&\"TextEvent\"in window&&!be,de=ia&&(!ae||be&&8<be&&11>=be),ee=String.fromCharCode(32),fe=!1;\nfunction ge(a,b){switch(a){case \"keyup\":return-1!==$d.indexOf(b.keyCode);case \"keydown\":return 229!==b.keyCode;case \"keypress\":case \"mousedown\":case \"focusout\":return!0;default:return!1}}function he(a){a=a.detail;return\"object\"===typeof a&&\"data\"in a?a.data:null}var ie=!1;function je(a,b){switch(a){case \"compositionend\":return he(b);case \"keypress\":if(32!==b.which)return null;fe=!0;return ee;case \"textInput\":return a=b.data,a===ee&&fe?null:a;default:return null}}\nfunction ke(a,b){if(ie)return\"compositionend\"===a||!ae&&ge(a,b)?(a=nd(),md=ld=kd=null,ie=!1,a):null;switch(a){case \"paste\":return null;case \"keypress\":if(!(b.ctrlKey||b.altKey||b.metaKey)||b.ctrlKey&&b.altKey){if(b.char&&1<b.char.length)return b.char;if(b.which)return String.fromCharCode(b.which)}return null;case \"compositionend\":return de&&\"ko\"!==b.locale?null:b.data;default:return null}}\nvar le={color:!0,date:!0,datetime:!0,\"datetime-local\":!0,email:!0,month:!0,number:!0,password:!0,range:!0,search:!0,tel:!0,text:!0,time:!0,url:!0,week:!0};function me(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return\"input\"===b?!!le[a.type]:\"textarea\"===b?!0:!1}function ne(a,b,c,d){Eb(d);b=oe(b,\"onChange\");0<b.length&&(c=new td(\"onChange\",\"change\",null,c,d),a.push({event:c,listeners:b}))}var pe=null,qe=null;function re(a){se(a,0)}function te(a){var b=ue(a);if(Wa(b))return a}\nfunction ve(a,b){if(\"change\"===a)return b}var we=!1;if(ia){var xe;if(ia){var ye=\"oninput\"in document;if(!ye){var ze=document.createElement(\"div\");ze.setAttribute(\"oninput\",\"return;\");ye=\"function\"===typeof ze.oninput}xe=ye}else xe=!1;we=xe&&(!document.documentMode||9<document.documentMode)}function Ae(){pe&&(pe.detachEvent(\"onpropertychange\",Be),qe=pe=null)}function Be(a){if(\"value\"===a.propertyName&&te(qe)){var b=[];ne(b,qe,a,xb(a));Jb(re,b)}}\nfunction Ce(a,b,c){\"focusin\"===a?(Ae(),pe=b,qe=c,pe.attachEvent(\"onpropertychange\",Be)):\"focusout\"===a&&Ae()}function De(a){if(\"selectionchange\"===a||\"keyup\"===a||\"keydown\"===a)return te(qe)}function Ee(a,b){if(\"click\"===a)return te(b)}function Fe(a,b){if(\"input\"===a||\"change\"===a)return te(b)}function Ge(a,b){return a===b&&(0!==a||1/a===1/b)||a!==a&&b!==b}var He=\"function\"===typeof Object.is?Object.is:Ge;\nfunction Ie(a,b){if(He(a,b))return!0;if(\"object\"!==typeof a||null===a||\"object\"!==typeof b||null===b)return!1;var c=Object.keys(a),d=Object.keys(b);if(c.length!==d.length)return!1;for(d=0;d<c.length;d++){var e=c[d];if(!ja.call(b,e)||!He(a[e],b[e]))return!1}return!0}function Je(a){for(;a&&a.firstChild;)a=a.firstChild;return a}\nfunction Ke(a,b){var c=Je(a);a=0;for(var d;c;){if(3===c.nodeType){d=a+c.textContent.length;if(a<=b&&d>=b)return{node:c,offset:b-a};a=d}a:{for(;c;){if(c.nextSibling){c=c.nextSibling;break a}c=c.parentNode}c=void 0}c=Je(c)}}function Le(a,b){return a&&b?a===b?!0:a&&3===a.nodeType?!1:b&&3===b.nodeType?Le(a,b.parentNode):\"contains\"in a?a.contains(b):a.compareDocumentPosition?!!(a.compareDocumentPosition(b)&16):!1:!1}\nfunction Me(){for(var a=window,b=Xa();b instanceof a.HTMLIFrameElement;){try{var c=\"string\"===typeof b.contentWindow.location.href}catch(d){c=!1}if(c)a=b.contentWindow;else break;b=Xa(a.document)}return b}function Ne(a){var b=a&&a.nodeName&&a.nodeName.toLowerCase();return b&&(\"input\"===b&&(\"text\"===a.type||\"search\"===a.type||\"tel\"===a.type||\"url\"===a.type||\"password\"===a.type)||\"textarea\"===b||\"true\"===a.contentEditable)}\nfunction Oe(a){var b=Me(),c=a.focusedElem,d=a.selectionRange;if(b!==c&&c&&c.ownerDocument&&Le(c.ownerDocument.documentElement,c)){if(null!==d&&Ne(c))if(b=d.start,a=d.end,void 0===a&&(a=b),\"selectionStart\"in c)c.selectionStart=b,c.selectionEnd=Math.min(a,c.value.length);else if(a=(b=c.ownerDocument||document)&&b.defaultView||window,a.getSelection){a=a.getSelection();var e=c.textContent.length,f=Math.min(d.start,e);d=void 0===d.end?f:Math.min(d.end,e);!a.extend&&f>d&&(e=d,d=f,f=e);e=Ke(c,f);var g=Ke(c,\nd);e&&g&&(1!==a.rangeCount||a.anchorNode!==e.node||a.anchorOffset!==e.offset||a.focusNode!==g.node||a.focusOffset!==g.offset)&&(b=b.createRange(),b.setStart(e.node,e.offset),a.removeAllRanges(),f>d?(a.addRange(b),a.extend(g.node,g.offset)):(b.setEnd(g.node,g.offset),a.addRange(b)))}b=[];for(a=c;a=a.parentNode;)1===a.nodeType&&b.push({element:a,left:a.scrollLeft,top:a.scrollTop});\"function\"===typeof c.focus&&c.focus();for(c=0;c<b.length;c++)a=b[c],a.element.scrollLeft=a.left,a.element.scrollTop=a.top}}\nvar Pe=ia&&\"documentMode\"in document&&11>=document.documentMode,Qe=null,Re=null,Se=null,Te=!1;\nfunction Ue(a,b,c){var d=c.window===c?c.document:9===c.nodeType?c:c.ownerDocument;Te||null==Qe||Qe!==Xa(d)||(d=Qe,\"selectionStart\"in d&&Ne(d)?d={start:d.selectionStart,end:d.selectionEnd}:(d=(d.ownerDocument&&d.ownerDocument.defaultView||window).getSelection(),d={anchorNode:d.anchorNode,anchorOffset:d.anchorOffset,focusNode:d.focusNode,focusOffset:d.focusOffset}),Se&&Ie(Se,d)||(Se=d,d=oe(Re,\"onSelect\"),0<d.length&&(b=new td(\"onSelect\",\"select\",null,b,c),a.push({event:b,listeners:d}),b.target=Qe)))}\nfunction Ve(a,b){var c={};c[a.toLowerCase()]=b.toLowerCase();c[\"Webkit\"+a]=\"webkit\"+b;c[\"Moz\"+a]=\"moz\"+b;return c}var We={animationend:Ve(\"Animation\",\"AnimationEnd\"),animationiteration:Ve(\"Animation\",\"AnimationIteration\"),animationstart:Ve(\"Animation\",\"AnimationStart\"),transitionend:Ve(\"Transition\",\"TransitionEnd\")},Xe={},Ye={};\nia&&(Ye=document.createElement(\"div\").style,\"AnimationEvent\"in window||(delete We.animationend.animation,delete We.animationiteration.animation,delete We.animationstart.animation),\"TransitionEvent\"in window||delete We.transitionend.transition);function Ze(a){if(Xe[a])return Xe[a];if(!We[a])return a;var b=We[a],c;for(c in b)if(b.hasOwnProperty(c)&&c in Ye)return Xe[a]=b[c];return a}var $e=Ze(\"animationend\"),af=Ze(\"animationiteration\"),bf=Ze(\"animationstart\"),cf=Ze(\"transitionend\"),df=new Map,ef=\"abort auxClick cancel canPlay canPlayThrough click close contextMenu copy cut drag dragEnd dragEnter dragExit dragLeave dragOver dragStart drop durationChange emptied encrypted ended error gotPointerCapture input invalid keyDown keyPress keyUp load loadedData loadedMetadata loadStart lostPointerCapture mouseDown mouseMove mouseOut mouseOver mouseUp paste pause play playing pointerCancel pointerDown pointerMove pointerOut pointerOver pointerUp progress rateChange reset resize seeked seeking stalled submit suspend timeUpdate touchCancel touchEnd touchStart volumeChange scroll toggle touchMove waiting wheel\".split(\" \");\nfunction ff(a,b){df.set(a,b);fa(b,[a])}for(var gf=0;gf<ef.length;gf++){var hf=ef[gf],jf=hf.toLowerCase(),kf=hf[0].toUpperCase()+hf.slice(1);ff(jf,\"on\"+kf)}ff($e,\"onAnimationEnd\");ff(af,\"onAnimationIteration\");ff(bf,\"onAnimationStart\");ff(\"dblclick\",\"onDoubleClick\");ff(\"focusin\",\"onFocus\");ff(\"focusout\",\"onBlur\");ff(cf,\"onTransitionEnd\");ha(\"onMouseEnter\",[\"mouseout\",\"mouseover\"]);ha(\"onMouseLeave\",[\"mouseout\",\"mouseover\"]);ha(\"onPointerEnter\",[\"pointerout\",\"pointerover\"]);\nha(\"onPointerLeave\",[\"pointerout\",\"pointerover\"]);fa(\"onChange\",\"change click focusin focusout input keydown keyup selectionchange\".split(\" \"));fa(\"onSelect\",\"focusout contextmenu dragend focusin keydown keyup mousedown mouseup selectionchange\".split(\" \"));fa(\"onBeforeInput\",[\"compositionend\",\"keypress\",\"textInput\",\"paste\"]);fa(\"onCompositionEnd\",\"compositionend focusout keydown keypress keyup mousedown\".split(\" \"));fa(\"onCompositionStart\",\"compositionstart focusout keydown keypress keyup mousedown\".split(\" \"));\nfa(\"onCompositionUpdate\",\"compositionupdate focusout keydown keypress keyup mousedown\".split(\" \"));var lf=\"abort canplay canplaythrough durationchange emptied encrypted ended error loadeddata loadedmetadata loadstart pause play playing progress ratechange resize seeked seeking stalled suspend timeupdate volumechange waiting\".split(\" \"),mf=new Set(\"cancel close invalid load scroll toggle\".split(\" \").concat(lf));\nfunction nf(a,b,c){var d=a.type||\"unknown-event\";a.currentTarget=c;Ub(d,b,void 0,a);a.currentTarget=null}\nfunction se(a,b){b=0!==(b&4);for(var c=0;c<a.length;c++){var d=a[c],e=d.event;d=d.listeners;a:{var f=void 0;if(b)for(var g=d.length-1;0<=g;g--){var h=d[g],k=h.instance,l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}else for(g=0;g<d.length;g++){h=d[g];k=h.instance;l=h.currentTarget;h=h.listener;if(k!==f&&e.isPropagationStopped())break a;nf(e,h,l);f=k}}}if(Qb)throw a=Rb,Qb=!1,Rb=null,a;}\nfunction D(a,b){var c=b[of];void 0===c&&(c=b[of]=new Set);var d=a+\"__bubble\";c.has(d)||(pf(b,a,2,!1),c.add(d))}function qf(a,b,c){var d=0;b&&(d|=4);pf(c,a,d,b)}var rf=\"_reactListening\"+Math.random().toString(36).slice(2);function sf(a){if(!a[rf]){a[rf]=!0;da.forEach(function(b){\"selectionchange\"!==b&&(mf.has(b)||qf(b,!1,a),qf(b,!0,a))});var b=9===a.nodeType?a:a.ownerDocument;null===b||b[rf]||(b[rf]=!0,qf(\"selectionchange\",!1,b))}}\nfunction pf(a,b,c,d){switch(jd(b)){case 1:var e=ed;break;case 4:e=gd;break;default:e=fd}c=e.bind(null,b,c,a);e=void 0;!Lb||\"touchstart\"!==b&&\"touchmove\"!==b&&\"wheel\"!==b||(e=!0);d?void 0!==e?a.addEventListener(b,c,{capture:!0,passive:e}):a.addEventListener(b,c,!0):void 0!==e?a.addEventListener(b,c,{passive:e}):a.addEventListener(b,c,!1)}\nfunction hd(a,b,c,d,e){var f=d;if(0===(b&1)&&0===(b&2)&&null!==d)a:for(;;){if(null===d)return;var g=d.tag;if(3===g||4===g){var h=d.stateNode.containerInfo;if(h===e||8===h.nodeType&&h.parentNode===e)break;if(4===g)for(g=d.return;null!==g;){var k=g.tag;if(3===k||4===k)if(k=g.stateNode.containerInfo,k===e||8===k.nodeType&&k.parentNode===e)return;g=g.return}for(;null!==h;){g=Wc(h);if(null===g)return;k=g.tag;if(5===k||6===k){d=f=g;continue a}h=h.parentNode}}d=d.return}Jb(function(){var d=f,e=xb(c),g=[];\na:{var h=df.get(a);if(void 0!==h){var k=td,n=a;switch(a){case \"keypress\":if(0===od(c))break a;case \"keydown\":case \"keyup\":k=Rd;break;case \"focusin\":n=\"focus\";k=Fd;break;case \"focusout\":n=\"blur\";k=Fd;break;case \"beforeblur\":case \"afterblur\":k=Fd;break;case \"click\":if(2===c.button)break a;case \"auxclick\":case \"dblclick\":case \"mousedown\":case \"mousemove\":case \"mouseup\":case \"mouseout\":case \"mouseover\":case \"contextmenu\":k=Bd;break;case \"drag\":case \"dragend\":case \"dragenter\":case \"dragexit\":case \"dragleave\":case \"dragover\":case \"dragstart\":case \"drop\":k=\nDd;break;case \"touchcancel\":case \"touchend\":case \"touchmove\":case \"touchstart\":k=Vd;break;case $e:case af:case bf:k=Hd;break;case cf:k=Xd;break;case \"scroll\":k=vd;break;case \"wheel\":k=Zd;break;case \"copy\":case \"cut\":case \"paste\":k=Jd;break;case \"gotpointercapture\":case \"lostpointercapture\":case \"pointercancel\":case \"pointerdown\":case \"pointermove\":case \"pointerout\":case \"pointerover\":case \"pointerup\":k=Td}var t=0!==(b&4),J=!t&&\"scroll\"===a,x=t?null!==h?h+\"Capture\":null:h;t=[];for(var w=d,u;null!==\nw;){u=w;var F=u.stateNode;5===u.tag&&null!==F&&(u=F,null!==x&&(F=Kb(w,x),null!=F&&t.push(tf(w,F,u))));if(J)break;w=w.return}0<t.length&&(h=new k(h,n,null,c,e),g.push({event:h,listeners:t}))}}if(0===(b&7)){a:{h=\"mouseover\"===a||\"pointerover\"===a;k=\"mouseout\"===a||\"pointerout\"===a;if(h&&c!==wb&&(n=c.relatedTarget||c.fromElement)&&(Wc(n)||n[uf]))break a;if(k||h){h=e.window===e?e:(h=e.ownerDocument)?h.defaultView||h.parentWindow:window;if(k){if(n=c.relatedTarget||c.toElement,k=d,n=n?Wc(n):null,null!==\nn&&(J=Vb(n),n!==J||5!==n.tag&&6!==n.tag))n=null}else k=null,n=d;if(k!==n){t=Bd;F=\"onMouseLeave\";x=\"onMouseEnter\";w=\"mouse\";if(\"pointerout\"===a||\"pointerover\"===a)t=Td,F=\"onPointerLeave\",x=\"onPointerEnter\",w=\"pointer\";J=null==k?h:ue(k);u=null==n?h:ue(n);h=new t(F,w+\"leave\",k,c,e);h.target=J;h.relatedTarget=u;F=null;Wc(e)===d&&(t=new t(x,w+\"enter\",n,c,e),t.target=u,t.relatedTarget=J,F=t);J=F;if(k&&n)b:{t=k;x=n;w=0;for(u=t;u;u=vf(u))w++;u=0;for(F=x;F;F=vf(F))u++;for(;0<w-u;)t=vf(t),w--;for(;0<u-w;)x=\nvf(x),u--;for(;w--;){if(t===x||null!==x&&t===x.alternate)break b;t=vf(t);x=vf(x)}t=null}else t=null;null!==k&&wf(g,h,k,t,!1);null!==n&&null!==J&&wf(g,J,n,t,!0)}}}a:{h=d?ue(d):window;k=h.nodeName&&h.nodeName.toLowerCase();if(\"select\"===k||\"input\"===k&&\"file\"===h.type)var na=ve;else if(me(h))if(we)na=Fe;else{na=De;var xa=Ce}else(k=h.nodeName)&&\"input\"===k.toLowerCase()&&(\"checkbox\"===h.type||\"radio\"===h.type)&&(na=Ee);if(na&&(na=na(a,d))){ne(g,na,c,e);break a}xa&&xa(a,h,d);\"focusout\"===a&&(xa=h._wrapperState)&&\nxa.controlled&&\"number\"===h.type&&cb(h,\"number\",h.value)}xa=d?ue(d):window;switch(a){case \"focusin\":if(me(xa)||\"true\"===xa.contentEditable)Qe=xa,Re=d,Se=null;break;case \"focusout\":Se=Re=Qe=null;break;case \"mousedown\":Te=!0;break;case \"contextmenu\":case \"mouseup\":case \"dragend\":Te=!1;Ue(g,c,e);break;case \"selectionchange\":if(Pe)break;case \"keydown\":case \"keyup\":Ue(g,c,e)}var $a;if(ae)b:{switch(a){case \"compositionstart\":var ba=\"onCompositionStart\";break b;case \"compositionend\":ba=\"onCompositionEnd\";\nbreak b;case \"compositionupdate\":ba=\"onCompositionUpdate\";break b}ba=void 0}else ie?ge(a,c)&&(ba=\"onCompositionEnd\"):\"keydown\"===a&&229===c.keyCode&&(ba=\"onCompositionStart\");ba&&(de&&\"ko\"!==c.locale&&(ie||\"onCompositionStart\"!==ba?\"onCompositionEnd\"===ba&&ie&&($a=nd()):(kd=e,ld=\"value\"in kd?kd.value:kd.textContent,ie=!0)),xa=oe(d,ba),0<xa.length&&(ba=new Ld(ba,a,null,c,e),g.push({event:ba,listeners:xa}),$a?ba.data=$a:($a=he(c),null!==$a&&(ba.data=$a))));if($a=ce?je(a,c):ke(a,c))d=oe(d,\"onBeforeInput\"),\n0<d.length&&(e=new Ld(\"onBeforeInput\",\"beforeinput\",null,c,e),g.push({event:e,listeners:d}),e.data=$a)}se(g,b)})}function tf(a,b,c){return{instance:a,listener:b,currentTarget:c}}function oe(a,b){for(var c=b+\"Capture\",d=[];null!==a;){var e=a,f=e.stateNode;5===e.tag&&null!==f&&(e=f,f=Kb(a,c),null!=f&&d.unshift(tf(a,f,e)),f=Kb(a,b),null!=f&&d.push(tf(a,f,e)));a=a.return}return d}function vf(a){if(null===a)return null;do a=a.return;while(a&&5!==a.tag);return a?a:null}\nfunction wf(a,b,c,d,e){for(var f=b._reactName,g=[];null!==c&&c!==d;){var h=c,k=h.alternate,l=h.stateNode;if(null!==k&&k===d)break;5===h.tag&&null!==l&&(h=l,e?(k=Kb(c,f),null!=k&&g.unshift(tf(c,k,h))):e||(k=Kb(c,f),null!=k&&g.push(tf(c,k,h))));c=c.return}0!==g.length&&a.push({event:b,listeners:g})}var xf=/\\r\\n?/g,yf=/\\u0000|\\uFFFD/g;function zf(a){return(\"string\"===typeof a?a:\"\"+a).replace(xf,\"\\n\").replace(yf,\"\")}function Af(a,b,c){b=zf(b);if(zf(a)!==b&&c)throw Error(p(425));}function Bf(){}\nvar Cf=null,Df=null;function Ef(a,b){return\"textarea\"===a||\"noscript\"===a||\"string\"===typeof b.children||\"number\"===typeof b.children||\"object\"===typeof b.dangerouslySetInnerHTML&&null!==b.dangerouslySetInnerHTML&&null!=b.dangerouslySetInnerHTML.__html}\nvar Ff=\"function\"===typeof setTimeout?setTimeout:void 0,Gf=\"function\"===typeof clearTimeout?clearTimeout:void 0,Hf=\"function\"===typeof Promise?Promise:void 0,Jf=\"function\"===typeof queueMicrotask?queueMicrotask:\"undefined\"!==typeof Hf?function(a){return Hf.resolve(null).then(a).catch(If)}:Ff;function If(a){setTimeout(function(){throw a;})}\nfunction Kf(a,b){var c=b,d=0;do{var e=c.nextSibling;a.removeChild(c);if(e&&8===e.nodeType)if(c=e.data,\"/$\"===c){if(0===d){a.removeChild(e);bd(b);return}d--}else\"$\"!==c&&\"$?\"!==c&&\"$!\"!==c||d++;c=e}while(c);bd(b)}function Lf(a){for(;null!=a;a=a.nextSibling){var b=a.nodeType;if(1===b||3===b)break;if(8===b){b=a.data;if(\"$\"===b||\"$!\"===b||\"$?\"===b)break;if(\"/$\"===b)return null}}return a}\nfunction Mf(a){a=a.previousSibling;for(var b=0;a;){if(8===a.nodeType){var c=a.data;if(\"$\"===c||\"$!\"===c||\"$?\"===c){if(0===b)return a;b--}else\"/$\"===c&&b++}a=a.previousSibling}return null}var Nf=Math.random().toString(36).slice(2),Of=\"__reactFiber$\"+Nf,Pf=\"__reactProps$\"+Nf,uf=\"__reactContainer$\"+Nf,of=\"__reactEvents$\"+Nf,Qf=\"__reactListeners$\"+Nf,Rf=\"__reactHandles$\"+Nf;\nfunction Wc(a){var b=a[Of];if(b)return b;for(var c=a.parentNode;c;){if(b=c[uf]||c[Of]){c=b.alternate;if(null!==b.child||null!==c&&null!==c.child)for(a=Mf(a);null!==a;){if(c=a[Of])return c;a=Mf(a)}return b}a=c;c=a.parentNode}return null}function Cb(a){a=a[Of]||a[uf];return!a||5!==a.tag&&6!==a.tag&&13!==a.tag&&3!==a.tag?null:a}function ue(a){if(5===a.tag||6===a.tag)return a.stateNode;throw Error(p(33));}function Db(a){return a[Pf]||null}var Sf=[],Tf=-1;function Uf(a){return{current:a}}\nfunction E(a){0>Tf||(a.current=Sf[Tf],Sf[Tf]=null,Tf--)}function G(a,b){Tf++;Sf[Tf]=a.current;a.current=b}var Vf={},H=Uf(Vf),Wf=Uf(!1),Xf=Vf;function Yf(a,b){var c=a.type.contextTypes;if(!c)return Vf;var d=a.stateNode;if(d&&d.__reactInternalMemoizedUnmaskedChildContext===b)return d.__reactInternalMemoizedMaskedChildContext;var e={},f;for(f in c)e[f]=b[f];d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=b,a.__reactInternalMemoizedMaskedChildContext=e);return e}\nfunction Zf(a){a=a.childContextTypes;return null!==a&&void 0!==a}function $f(){E(Wf);E(H)}function ag(a,b,c){if(H.current!==Vf)throw Error(p(168));G(H,b);G(Wf,c)}function bg(a,b,c){var d=a.stateNode;b=b.childContextTypes;if(\"function\"!==typeof d.getChildContext)return c;d=d.getChildContext();for(var e in d)if(!(e in b))throw Error(p(108,Ra(a)||\"Unknown\",e));return A({},c,d)}\nfunction cg(a){a=(a=a.stateNode)&&a.__reactInternalMemoizedMergedChildContext||Vf;Xf=H.current;G(H,a);G(Wf,Wf.current);return!0}function dg(a,b,c){var d=a.stateNode;if(!d)throw Error(p(169));c?(a=bg(a,b,Xf),d.__reactInternalMemoizedMergedChildContext=a,E(Wf),E(H),G(H,a)):E(Wf);G(Wf,c)}var eg=null,fg=!1,gg=!1;function hg(a){null===eg?eg=[a]:eg.push(a)}function ig(a){fg=!0;hg(a)}\nfunction jg(){if(!gg&&null!==eg){gg=!0;var a=0,b=C;try{var c=eg;for(C=1;a<c.length;a++){var d=c[a];do d=d(!0);while(null!==d)}eg=null;fg=!1}catch(e){throw null!==eg&&(eg=eg.slice(a+1)),ac(fc,jg),e;}finally{C=b,gg=!1}}return null}var kg=[],lg=0,mg=null,ng=0,og=[],pg=0,qg=null,rg=1,sg=\"\";function tg(a,b){kg[lg++]=ng;kg[lg++]=mg;mg=a;ng=b}\nfunction ug(a,b,c){og[pg++]=rg;og[pg++]=sg;og[pg++]=qg;qg=a;var d=rg;a=sg;var e=32-oc(d)-1;d&=~(1<<e);c+=1;var f=32-oc(b)+e;if(30<f){var g=e-e%5;f=(d&(1<<g)-1).toString(32);d>>=g;e-=g;rg=1<<32-oc(b)+e|c<<e|d;sg=f+a}else rg=1<<f|c<<e|d,sg=a}function vg(a){null!==a.return&&(tg(a,1),ug(a,1,0))}function wg(a){for(;a===mg;)mg=kg[--lg],kg[lg]=null,ng=kg[--lg],kg[lg]=null;for(;a===qg;)qg=og[--pg],og[pg]=null,sg=og[--pg],og[pg]=null,rg=og[--pg],og[pg]=null}var xg=null,yg=null,I=!1,zg=null;\nfunction Ag(a,b){var c=Bg(5,null,null,0);c.elementType=\"DELETED\";c.stateNode=b;c.return=a;b=a.deletions;null===b?(a.deletions=[c],a.flags|=16):b.push(c)}\nfunction Cg(a,b){switch(a.tag){case 5:var c=a.type;b=1!==b.nodeType||c.toLowerCase()!==b.nodeName.toLowerCase()?null:b;return null!==b?(a.stateNode=b,xg=a,yg=Lf(b.firstChild),!0):!1;case 6:return b=\"\"===a.pendingProps||3!==b.nodeType?null:b,null!==b?(a.stateNode=b,xg=a,yg=null,!0):!1;case 13:return b=8!==b.nodeType?null:b,null!==b?(c=null!==qg?{id:rg,overflow:sg}:null,a.memoizedState={dehydrated:b,treeContext:c,retryLane:1073741824},c=Bg(18,null,null,0),c.stateNode=b,c.return=a,a.child=c,xg=a,yg=\nnull,!0):!1;default:return!1}}function Dg(a){return 0!==(a.mode&1)&&0===(a.flags&128)}function Eg(a){if(I){var b=yg;if(b){var c=b;if(!Cg(a,b)){if(Dg(a))throw Error(p(418));b=Lf(c.nextSibling);var d=xg;b&&Cg(a,b)?Ag(d,c):(a.flags=a.flags&-4097|2,I=!1,xg=a)}}else{if(Dg(a))throw Error(p(418));a.flags=a.flags&-4097|2;I=!1;xg=a}}}function Fg(a){for(a=a.return;null!==a&&5!==a.tag&&3!==a.tag&&13!==a.tag;)a=a.return;xg=a}\nfunction Gg(a){if(a!==xg)return!1;if(!I)return Fg(a),I=!0,!1;var b;(b=3!==a.tag)&&!(b=5!==a.tag)&&(b=a.type,b=\"head\"!==b&&\"body\"!==b&&!Ef(a.type,a.memoizedProps));if(b&&(b=yg)){if(Dg(a))throw Hg(),Error(p(418));for(;b;)Ag(a,b),b=Lf(b.nextSibling)}Fg(a);if(13===a.tag){a=a.memoizedState;a=null!==a?a.dehydrated:null;if(!a)throw Error(p(317));a:{a=a.nextSibling;for(b=0;a;){if(8===a.nodeType){var c=a.data;if(\"/$\"===c){if(0===b){yg=Lf(a.nextSibling);break a}b--}else\"$\"!==c&&\"$!\"!==c&&\"$?\"!==c||b++}a=a.nextSibling}yg=\nnull}}else yg=xg?Lf(a.stateNode.nextSibling):null;return!0}function Hg(){for(var a=yg;a;)a=Lf(a.nextSibling)}function Ig(){yg=xg=null;I=!1}function Jg(a){null===zg?zg=[a]:zg.push(a)}var Kg=ua.ReactCurrentBatchConfig;\nfunction Lg(a,b,c){a=c.ref;if(null!==a&&\"function\"!==typeof a&&\"object\"!==typeof a){if(c._owner){c=c._owner;if(c){if(1!==c.tag)throw Error(p(309));var d=c.stateNode}if(!d)throw Error(p(147,a));var e=d,f=\"\"+a;if(null!==b&&null!==b.ref&&\"function\"===typeof b.ref&&b.ref._stringRef===f)return b.ref;b=function(a){var b=e.refs;null===a?delete b[f]:b[f]=a};b._stringRef=f;return b}if(\"string\"!==typeof a)throw Error(p(284));if(!c._owner)throw Error(p(290,a));}return a}\nfunction Mg(a,b){a=Object.prototype.toString.call(b);throw Error(p(31,\"[object Object]\"===a?\"object with keys {\"+Object.keys(b).join(\", \")+\"}\":a));}function Ng(a){var b=a._init;return b(a._payload)}\nfunction Og(a){function b(b,c){if(a){var d=b.deletions;null===d?(b.deletions=[c],b.flags|=16):d.push(c)}}function c(c,d){if(!a)return null;for(;null!==d;)b(c,d),d=d.sibling;return null}function d(a,b){for(a=new Map;null!==b;)null!==b.key?a.set(b.key,b):a.set(b.index,b),b=b.sibling;return a}function e(a,b){a=Pg(a,b);a.index=0;a.sibling=null;return a}function f(b,c,d){b.index=d;if(!a)return b.flags|=1048576,c;d=b.alternate;if(null!==d)return d=d.index,d<c?(b.flags|=2,c):d;b.flags|=2;return c}function g(b){a&&\nnull===b.alternate&&(b.flags|=2);return b}function h(a,b,c,d){if(null===b||6!==b.tag)return b=Qg(c,a.mode,d),b.return=a,b;b=e(b,c);b.return=a;return b}function k(a,b,c,d){var f=c.type;if(f===ya)return m(a,b,c.props.children,d,c.key);if(null!==b&&(b.elementType===f||\"object\"===typeof f&&null!==f&&f.$$typeof===Ha&&Ng(f)===b.type))return d=e(b,c.props),d.ref=Lg(a,b,c),d.return=a,d;d=Rg(c.type,c.key,c.props,null,a.mode,d);d.ref=Lg(a,b,c);d.return=a;return d}function l(a,b,c,d){if(null===b||4!==b.tag||\nb.stateNode.containerInfo!==c.containerInfo||b.stateNode.implementation!==c.implementation)return b=Sg(c,a.mode,d),b.return=a,b;b=e(b,c.children||[]);b.return=a;return b}function m(a,b,c,d,f){if(null===b||7!==b.tag)return b=Tg(c,a.mode,d,f),b.return=a,b;b=e(b,c);b.return=a;return b}function q(a,b,c){if(\"string\"===typeof b&&\"\"!==b||\"number\"===typeof b)return b=Qg(\"\"+b,a.mode,c),b.return=a,b;if(\"object\"===typeof b&&null!==b){switch(b.$$typeof){case va:return c=Rg(b.type,b.key,b.props,null,a.mode,c),\nc.ref=Lg(a,null,b),c.return=a,c;case wa:return b=Sg(b,a.mode,c),b.return=a,b;case Ha:var d=b._init;return q(a,d(b._payload),c)}if(eb(b)||Ka(b))return b=Tg(b,a.mode,c,null),b.return=a,b;Mg(a,b)}return null}function r(a,b,c,d){var e=null!==b?b.key:null;if(\"string\"===typeof c&&\"\"!==c||\"number\"===typeof c)return null!==e?null:h(a,b,\"\"+c,d);if(\"object\"===typeof c&&null!==c){switch(c.$$typeof){case va:return c.key===e?k(a,b,c,d):null;case wa:return c.key===e?l(a,b,c,d):null;case Ha:return e=c._init,r(a,\nb,e(c._payload),d)}if(eb(c)||Ka(c))return null!==e?null:m(a,b,c,d,null);Mg(a,c)}return null}function y(a,b,c,d,e){if(\"string\"===typeof d&&\"\"!==d||\"number\"===typeof d)return a=a.get(c)||null,h(b,a,\"\"+d,e);if(\"object\"===typeof d&&null!==d){switch(d.$$typeof){case va:return a=a.get(null===d.key?c:d.key)||null,k(b,a,d,e);case wa:return a=a.get(null===d.key?c:d.key)||null,l(b,a,d,e);case Ha:var f=d._init;return y(a,b,c,f(d._payload),e)}if(eb(d)||Ka(d))return a=a.get(c)||null,m(b,a,d,e,null);Mg(b,d)}return null}\nfunction n(e,g,h,k){for(var l=null,m=null,u=g,w=g=0,x=null;null!==u&&w<h.length;w++){u.index>w?(x=u,u=null):x=u.sibling;var n=r(e,u,h[w],k);if(null===n){null===u&&(u=x);break}a&&u&&null===n.alternate&&b(e,u);g=f(n,g,w);null===m?l=n:m.sibling=n;m=n;u=x}if(w===h.length)return c(e,u),I&&tg(e,w),l;if(null===u){for(;w<h.length;w++)u=q(e,h[w],k),null!==u&&(g=f(u,g,w),null===m?l=u:m.sibling=u,m=u);I&&tg(e,w);return l}for(u=d(e,u);w<h.length;w++)x=y(u,e,w,h[w],k),null!==x&&(a&&null!==x.alternate&&u.delete(null===\nx.key?w:x.key),g=f(x,g,w),null===m?l=x:m.sibling=x,m=x);a&&u.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function t(e,g,h,k){var l=Ka(h);if(\"function\"!==typeof l)throw Error(p(150));h=l.call(h);if(null==h)throw Error(p(151));for(var u=l=null,m=g,w=g=0,x=null,n=h.next();null!==m&&!n.done;w++,n=h.next()){m.index>w?(x=m,m=null):x=m.sibling;var t=r(e,m,n.value,k);if(null===t){null===m&&(m=x);break}a&&m&&null===t.alternate&&b(e,m);g=f(t,g,w);null===u?l=t:u.sibling=t;u=t;m=x}if(n.done)return c(e,\nm),I&&tg(e,w),l;if(null===m){for(;!n.done;w++,n=h.next())n=q(e,n.value,k),null!==n&&(g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);I&&tg(e,w);return l}for(m=d(e,m);!n.done;w++,n=h.next())n=y(m,e,w,n.value,k),null!==n&&(a&&null!==n.alternate&&m.delete(null===n.key?w:n.key),g=f(n,g,w),null===u?l=n:u.sibling=n,u=n);a&&m.forEach(function(a){return b(e,a)});I&&tg(e,w);return l}function J(a,d,f,h){\"object\"===typeof f&&null!==f&&f.type===ya&&null===f.key&&(f=f.props.children);if(\"object\"===typeof f&&null!==f){switch(f.$$typeof){case va:a:{for(var k=\nf.key,l=d;null!==l;){if(l.key===k){k=f.type;if(k===ya){if(7===l.tag){c(a,l.sibling);d=e(l,f.props.children);d.return=a;a=d;break a}}else if(l.elementType===k||\"object\"===typeof k&&null!==k&&k.$$typeof===Ha&&Ng(k)===l.type){c(a,l.sibling);d=e(l,f.props);d.ref=Lg(a,l,f);d.return=a;a=d;break a}c(a,l);break}else b(a,l);l=l.sibling}f.type===ya?(d=Tg(f.props.children,a.mode,h,f.key),d.return=a,a=d):(h=Rg(f.type,f.key,f.props,null,a.mode,h),h.ref=Lg(a,d,f),h.return=a,a=h)}return g(a);case wa:a:{for(l=f.key;null!==\nd;){if(d.key===l)if(4===d.tag&&d.stateNode.containerInfo===f.containerInfo&&d.stateNode.implementation===f.implementation){c(a,d.sibling);d=e(d,f.children||[]);d.return=a;a=d;break a}else{c(a,d);break}else b(a,d);d=d.sibling}d=Sg(f,a.mode,h);d.return=a;a=d}return g(a);case Ha:return l=f._init,J(a,d,l(f._payload),h)}if(eb(f))return n(a,d,f,h);if(Ka(f))return t(a,d,f,h);Mg(a,f)}return\"string\"===typeof f&&\"\"!==f||\"number\"===typeof f?(f=\"\"+f,null!==d&&6===d.tag?(c(a,d.sibling),d=e(d,f),d.return=a,a=d):\n(c(a,d),d=Qg(f,a.mode,h),d.return=a,a=d),g(a)):c(a,d)}return J}var Ug=Og(!0),Vg=Og(!1),Wg=Uf(null),Xg=null,Yg=null,Zg=null;function $g(){Zg=Yg=Xg=null}function ah(a){var b=Wg.current;E(Wg);a._currentValue=b}function bh(a,b,c){for(;null!==a;){var d=a.alternate;(a.childLanes&b)!==b?(a.childLanes|=b,null!==d&&(d.childLanes|=b)):null!==d&&(d.childLanes&b)!==b&&(d.childLanes|=b);if(a===c)break;a=a.return}}\nfunction ch(a,b){Xg=a;Zg=Yg=null;a=a.dependencies;null!==a&&null!==a.firstContext&&(0!==(a.lanes&b)&&(dh=!0),a.firstContext=null)}function eh(a){var b=a._currentValue;if(Zg!==a)if(a={context:a,memoizedValue:b,next:null},null===Yg){if(null===Xg)throw Error(p(308));Yg=a;Xg.dependencies={lanes:0,firstContext:a}}else Yg=Yg.next=a;return b}var fh=null;function gh(a){null===fh?fh=[a]:fh.push(a)}\nfunction hh(a,b,c,d){var e=b.interleaved;null===e?(c.next=c,gh(b)):(c.next=e.next,e.next=c);b.interleaved=c;return ih(a,d)}function ih(a,b){a.lanes|=b;var c=a.alternate;null!==c&&(c.lanes|=b);c=a;for(a=a.return;null!==a;)a.childLanes|=b,c=a.alternate,null!==c&&(c.childLanes|=b),c=a,a=a.return;return 3===c.tag?c.stateNode:null}var jh=!1;function kh(a){a.updateQueue={baseState:a.memoizedState,firstBaseUpdate:null,lastBaseUpdate:null,shared:{pending:null,interleaved:null,lanes:0},effects:null}}\nfunction lh(a,b){a=a.updateQueue;b.updateQueue===a&&(b.updateQueue={baseState:a.baseState,firstBaseUpdate:a.firstBaseUpdate,lastBaseUpdate:a.lastBaseUpdate,shared:a.shared,effects:a.effects})}function mh(a,b){return{eventTime:a,lane:b,tag:0,payload:null,callback:null,next:null}}\nfunction nh(a,b,c){var d=a.updateQueue;if(null===d)return null;d=d.shared;if(0!==(K&2)){var e=d.pending;null===e?b.next=b:(b.next=e.next,e.next=b);d.pending=b;return ih(a,c)}e=d.interleaved;null===e?(b.next=b,gh(d)):(b.next=e.next,e.next=b);d.interleaved=b;return ih(a,c)}function oh(a,b,c){b=b.updateQueue;if(null!==b&&(b=b.shared,0!==(c&4194240))){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nfunction ph(a,b){var c=a.updateQueue,d=a.alternate;if(null!==d&&(d=d.updateQueue,c===d)){var e=null,f=null;c=c.firstBaseUpdate;if(null!==c){do{var g={eventTime:c.eventTime,lane:c.lane,tag:c.tag,payload:c.payload,callback:c.callback,next:null};null===f?e=f=g:f=f.next=g;c=c.next}while(null!==c);null===f?e=f=b:f=f.next=b}else e=f=b;c={baseState:d.baseState,firstBaseUpdate:e,lastBaseUpdate:f,shared:d.shared,effects:d.effects};a.updateQueue=c;return}a=c.lastBaseUpdate;null===a?c.firstBaseUpdate=b:a.next=\nb;c.lastBaseUpdate=b}\nfunction qh(a,b,c,d){var e=a.updateQueue;jh=!1;var f=e.firstBaseUpdate,g=e.lastBaseUpdate,h=e.shared.pending;if(null!==h){e.shared.pending=null;var k=h,l=k.next;k.next=null;null===g?f=l:g.next=l;g=k;var m=a.alternate;null!==m&&(m=m.updateQueue,h=m.lastBaseUpdate,h!==g&&(null===h?m.firstBaseUpdate=l:h.next=l,m.lastBaseUpdate=k))}if(null!==f){var q=e.baseState;g=0;m=l=k=null;h=f;do{var r=h.lane,y=h.eventTime;if((d&r)===r){null!==m&&(m=m.next={eventTime:y,lane:0,tag:h.tag,payload:h.payload,callback:h.callback,\nnext:null});a:{var n=a,t=h;r=b;y=c;switch(t.tag){case 1:n=t.payload;if(\"function\"===typeof n){q=n.call(y,q,r);break a}q=n;break a;case 3:n.flags=n.flags&-65537|128;case 0:n=t.payload;r=\"function\"===typeof n?n.call(y,q,r):n;if(null===r||void 0===r)break a;q=A({},q,r);break a;case 2:jh=!0}}null!==h.callback&&0!==h.lane&&(a.flags|=64,r=e.effects,null===r?e.effects=[h]:r.push(h))}else y={eventTime:y,lane:r,tag:h.tag,payload:h.payload,callback:h.callback,next:null},null===m?(l=m=y,k=q):m=m.next=y,g|=r;\nh=h.next;if(null===h)if(h=e.shared.pending,null===h)break;else r=h,h=r.next,r.next=null,e.lastBaseUpdate=r,e.shared.pending=null}while(1);null===m&&(k=q);e.baseState=k;e.firstBaseUpdate=l;e.lastBaseUpdate=m;b=e.shared.interleaved;if(null!==b){e=b;do g|=e.lane,e=e.next;while(e!==b)}else null===f&&(e.shared.lanes=0);rh|=g;a.lanes=g;a.memoizedState=q}}\nfunction sh(a,b,c){a=b.effects;b.effects=null;if(null!==a)for(b=0;b<a.length;b++){var d=a[b],e=d.callback;if(null!==e){d.callback=null;d=c;if(\"function\"!==typeof e)throw Error(p(191,e));e.call(d)}}}var th={},uh=Uf(th),vh=Uf(th),wh=Uf(th);function xh(a){if(a===th)throw Error(p(174));return a}\nfunction yh(a,b){G(wh,b);G(vh,a);G(uh,th);a=b.nodeType;switch(a){case 9:case 11:b=(b=b.documentElement)?b.namespaceURI:lb(null,\"\");break;default:a=8===a?b.parentNode:b,b=a.namespaceURI||null,a=a.tagName,b=lb(b,a)}E(uh);G(uh,b)}function zh(){E(uh);E(vh);E(wh)}function Ah(a){xh(wh.current);var b=xh(uh.current);var c=lb(b,a.type);b!==c&&(G(vh,a),G(uh,c))}function Bh(a){vh.current===a&&(E(uh),E(vh))}var L=Uf(0);\nfunction Ch(a){for(var b=a;null!==b;){if(13===b.tag){var c=b.memoizedState;if(null!==c&&(c=c.dehydrated,null===c||\"$?\"===c.data||\"$!\"===c.data))return b}else if(19===b.tag&&void 0!==b.memoizedProps.revealOrder){if(0!==(b.flags&128))return b}else if(null!==b.child){b.child.return=b;b=b.child;continue}if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return null;b=b.return}b.sibling.return=b.return;b=b.sibling}return null}var Dh=[];\nfunction Eh(){for(var a=0;a<Dh.length;a++)Dh[a]._workInProgressVersionPrimary=null;Dh.length=0}var Fh=ua.ReactCurrentDispatcher,Gh=ua.ReactCurrentBatchConfig,Hh=0,M=null,N=null,O=null,Ih=!1,Jh=!1,Kh=0,Lh=0;function P(){throw Error(p(321));}function Mh(a,b){if(null===b)return!1;for(var c=0;c<b.length&&c<a.length;c++)if(!He(a[c],b[c]))return!1;return!0}\nfunction Nh(a,b,c,d,e,f){Hh=f;M=b;b.memoizedState=null;b.updateQueue=null;b.lanes=0;Fh.current=null===a||null===a.memoizedState?Oh:Ph;a=c(d,e);if(Jh){f=0;do{Jh=!1;Kh=0;if(25<=f)throw Error(p(301));f+=1;O=N=null;b.updateQueue=null;Fh.current=Qh;a=c(d,e)}while(Jh)}Fh.current=Rh;b=null!==N&&null!==N.next;Hh=0;O=N=M=null;Ih=!1;if(b)throw Error(p(300));return a}function Sh(){var a=0!==Kh;Kh=0;return a}\nfunction Th(){var a={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};null===O?M.memoizedState=O=a:O=O.next=a;return O}function Uh(){if(null===N){var a=M.alternate;a=null!==a?a.memoizedState:null}else a=N.next;var b=null===O?M.memoizedState:O.next;if(null!==b)O=b,N=a;else{if(null===a)throw Error(p(310));N=a;a={memoizedState:N.memoizedState,baseState:N.baseState,baseQueue:N.baseQueue,queue:N.queue,next:null};null===O?M.memoizedState=O=a:O=O.next=a}return O}\nfunction Vh(a,b){return\"function\"===typeof b?b(a):b}\nfunction Wh(a){var b=Uh(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=N,e=d.baseQueue,f=c.pending;if(null!==f){if(null!==e){var g=e.next;e.next=f.next;f.next=g}d.baseQueue=e=f;c.pending=null}if(null!==e){f=e.next;d=d.baseState;var h=g=null,k=null,l=f;do{var m=l.lane;if((Hh&m)===m)null!==k&&(k=k.next={lane:0,action:l.action,hasEagerState:l.hasEagerState,eagerState:l.eagerState,next:null}),d=l.hasEagerState?l.eagerState:a(d,l.action);else{var q={lane:m,action:l.action,hasEagerState:l.hasEagerState,\neagerState:l.eagerState,next:null};null===k?(h=k=q,g=d):k=k.next=q;M.lanes|=m;rh|=m}l=l.next}while(null!==l&&l!==f);null===k?g=d:k.next=h;He(d,b.memoizedState)||(dh=!0);b.memoizedState=d;b.baseState=g;b.baseQueue=k;c.lastRenderedState=d}a=c.interleaved;if(null!==a){e=a;do f=e.lane,M.lanes|=f,rh|=f,e=e.next;while(e!==a)}else null===e&&(c.lanes=0);return[b.memoizedState,c.dispatch]}\nfunction Xh(a){var b=Uh(),c=b.queue;if(null===c)throw Error(p(311));c.lastRenderedReducer=a;var d=c.dispatch,e=c.pending,f=b.memoizedState;if(null!==e){c.pending=null;var g=e=e.next;do f=a(f,g.action),g=g.next;while(g!==e);He(f,b.memoizedState)||(dh=!0);b.memoizedState=f;null===b.baseQueue&&(b.baseState=f);c.lastRenderedState=f}return[f,d]}function Yh(){}\nfunction Zh(a,b){var c=M,d=Uh(),e=b(),f=!He(d.memoizedState,e);f&&(d.memoizedState=e,dh=!0);d=d.queue;$h(ai.bind(null,c,d,a),[a]);if(d.getSnapshot!==b||f||null!==O&&O.memoizedState.tag&1){c.flags|=2048;bi(9,ci.bind(null,c,d,e,b),void 0,null);if(null===Q)throw Error(p(349));0!==(Hh&30)||di(c,b,e)}return e}function di(a,b,c){a.flags|=16384;a={getSnapshot:b,value:c};b=M.updateQueue;null===b?(b={lastEffect:null,stores:null},M.updateQueue=b,b.stores=[a]):(c=b.stores,null===c?b.stores=[a]:c.push(a))}\nfunction ci(a,b,c,d){b.value=c;b.getSnapshot=d;ei(b)&&fi(a)}function ai(a,b,c){return c(function(){ei(b)&&fi(a)})}function ei(a){var b=a.getSnapshot;a=a.value;try{var c=b();return!He(a,c)}catch(d){return!0}}function fi(a){var b=ih(a,1);null!==b&&gi(b,a,1,-1)}\nfunction hi(a){var b=Th();\"function\"===typeof a&&(a=a());b.memoizedState=b.baseState=a;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:Vh,lastRenderedState:a};b.queue=a;a=a.dispatch=ii.bind(null,M,a);return[b.memoizedState,a]}\nfunction bi(a,b,c,d){a={tag:a,create:b,destroy:c,deps:d,next:null};b=M.updateQueue;null===b?(b={lastEffect:null,stores:null},M.updateQueue=b,b.lastEffect=a.next=a):(c=b.lastEffect,null===c?b.lastEffect=a.next=a:(d=c.next,c.next=a,a.next=d,b.lastEffect=a));return a}function ji(){return Uh().memoizedState}function ki(a,b,c,d){var e=Th();M.flags|=a;e.memoizedState=bi(1|b,c,void 0,void 0===d?null:d)}\nfunction li(a,b,c,d){var e=Uh();d=void 0===d?null:d;var f=void 0;if(null!==N){var g=N.memoizedState;f=g.destroy;if(null!==d&&Mh(d,g.deps)){e.memoizedState=bi(b,c,f,d);return}}M.flags|=a;e.memoizedState=bi(1|b,c,f,d)}function mi(a,b){return ki(8390656,8,a,b)}function $h(a,b){return li(2048,8,a,b)}function ni(a,b){return li(4,2,a,b)}function oi(a,b){return li(4,4,a,b)}\nfunction pi(a,b){if(\"function\"===typeof b)return a=a(),b(a),function(){b(null)};if(null!==b&&void 0!==b)return a=a(),b.current=a,function(){b.current=null}}function qi(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return li(4,4,pi.bind(null,b,a),c)}function ri(){}function si(a,b){var c=Uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Mh(b,d[1]))return d[0];c.memoizedState=[a,b];return a}\nfunction ti(a,b){var c=Uh();b=void 0===b?null:b;var d=c.memoizedState;if(null!==d&&null!==b&&Mh(b,d[1]))return d[0];a=a();c.memoizedState=[a,b];return a}function ui(a,b,c){if(0===(Hh&21))return a.baseState&&(a.baseState=!1,dh=!0),a.memoizedState=c;He(c,b)||(c=yc(),M.lanes|=c,rh|=c,a.baseState=!0);return b}function vi(a,b){var c=C;C=0!==c&&4>c?c:4;a(!0);var d=Gh.transition;Gh.transition={};try{a(!1),b()}finally{C=c,Gh.transition=d}}function wi(){return Uh().memoizedState}\nfunction xi(a,b,c){var d=yi(a);c={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,c);else if(c=hh(a,b,c,d),null!==c){var e=R();gi(c,a,d,e);Bi(c,b,d)}}\nfunction ii(a,b,c){var d=yi(a),e={lane:d,action:c,hasEagerState:!1,eagerState:null,next:null};if(zi(a))Ai(b,e);else{var f=a.alternate;if(0===a.lanes&&(null===f||0===f.lanes)&&(f=b.lastRenderedReducer,null!==f))try{var g=b.lastRenderedState,h=f(g,c);e.hasEagerState=!0;e.eagerState=h;if(He(h,g)){var k=b.interleaved;null===k?(e.next=e,gh(b)):(e.next=k.next,k.next=e);b.interleaved=e;return}}catch(l){}finally{}c=hh(a,b,e,d);null!==c&&(e=R(),gi(c,a,d,e),Bi(c,b,d))}}\nfunction zi(a){var b=a.alternate;return a===M||null!==b&&b===M}function Ai(a,b){Jh=Ih=!0;var c=a.pending;null===c?b.next=b:(b.next=c.next,c.next=b);a.pending=b}function Bi(a,b,c){if(0!==(c&4194240)){var d=b.lanes;d&=a.pendingLanes;c|=d;b.lanes=c;Cc(a,c)}}\nvar Rh={readContext:eh,useCallback:P,useContext:P,useEffect:P,useImperativeHandle:P,useInsertionEffect:P,useLayoutEffect:P,useMemo:P,useReducer:P,useRef:P,useState:P,useDebugValue:P,useDeferredValue:P,useTransition:P,useMutableSource:P,useSyncExternalStore:P,useId:P,unstable_isNewReconciler:!1},Oh={readContext:eh,useCallback:function(a,b){Th().memoizedState=[a,void 0===b?null:b];return a},useContext:eh,useEffect:mi,useImperativeHandle:function(a,b,c){c=null!==c&&void 0!==c?c.concat([a]):null;return ki(4194308,\n4,pi.bind(null,b,a),c)},useLayoutEffect:function(a,b){return ki(4194308,4,a,b)},useInsertionEffect:function(a,b){return ki(4,2,a,b)},useMemo:function(a,b){var c=Th();b=void 0===b?null:b;a=a();c.memoizedState=[a,b];return a},useReducer:function(a,b,c){var d=Th();b=void 0!==c?c(b):b;d.memoizedState=d.baseState=b;a={pending:null,interleaved:null,lanes:0,dispatch:null,lastRenderedReducer:a,lastRenderedState:b};d.queue=a;a=a.dispatch=xi.bind(null,M,a);return[d.memoizedState,a]},useRef:function(a){var b=\nTh();a={current:a};return b.memoizedState=a},useState:hi,useDebugValue:ri,useDeferredValue:function(a){return Th().memoizedState=a},useTransition:function(){var a=hi(!1),b=a[0];a=vi.bind(null,a[1]);Th().memoizedState=a;return[b,a]},useMutableSource:function(){},useSyncExternalStore:function(a,b,c){var d=M,e=Th();if(I){if(void 0===c)throw Error(p(407));c=c()}else{c=b();if(null===Q)throw Error(p(349));0!==(Hh&30)||di(d,b,c)}e.memoizedState=c;var f={value:c,getSnapshot:b};e.queue=f;mi(ai.bind(null,d,\nf,a),[a]);d.flags|=2048;bi(9,ci.bind(null,d,f,c,b),void 0,null);return c},useId:function(){var a=Th(),b=Q.identifierPrefix;if(I){var c=sg;var d=rg;c=(d&~(1<<32-oc(d)-1)).toString(32)+c;b=\":\"+b+\"R\"+c;c=Kh++;0<c&&(b+=\"H\"+c.toString(32));b+=\":\"}else c=Lh++,b=\":\"+b+\"r\"+c.toString(32)+\":\";return a.memoizedState=b},unstable_isNewReconciler:!1},Ph={readContext:eh,useCallback:si,useContext:eh,useEffect:$h,useImperativeHandle:qi,useInsertionEffect:ni,useLayoutEffect:oi,useMemo:ti,useReducer:Wh,useRef:ji,useState:function(){return Wh(Vh)},\nuseDebugValue:ri,useDeferredValue:function(a){var b=Uh();return ui(b,N.memoizedState,a)},useTransition:function(){var a=Wh(Vh)[0],b=Uh().memoizedState;return[a,b]},useMutableSource:Yh,useSyncExternalStore:Zh,useId:wi,unstable_isNewReconciler:!1},Qh={readContext:eh,useCallback:si,useContext:eh,useEffect:$h,useImperativeHandle:qi,useInsertionEffect:ni,useLayoutEffect:oi,useMemo:ti,useReducer:Xh,useRef:ji,useState:function(){return Xh(Vh)},useDebugValue:ri,useDeferredValue:function(a){var b=Uh();return null===\nN?b.memoizedState=a:ui(b,N.memoizedState,a)},useTransition:function(){var a=Xh(Vh)[0],b=Uh().memoizedState;return[a,b]},useMutableSource:Yh,useSyncExternalStore:Zh,useId:wi,unstable_isNewReconciler:!1};function Ci(a,b){if(a&&a.defaultProps){b=A({},b);a=a.defaultProps;for(var c in a)void 0===b[c]&&(b[c]=a[c]);return b}return b}function Di(a,b,c,d){b=a.memoizedState;c=c(d,b);c=null===c||void 0===c?b:A({},b,c);a.memoizedState=c;0===a.lanes&&(a.updateQueue.baseState=c)}\nvar Ei={isMounted:function(a){return(a=a._reactInternals)?Vb(a)===a:!1},enqueueSetState:function(a,b,c){a=a._reactInternals;var d=R(),e=yi(a),f=mh(d,e);f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=nh(a,f,e);null!==b&&(gi(b,a,e,d),oh(b,a,e))},enqueueReplaceState:function(a,b,c){a=a._reactInternals;var d=R(),e=yi(a),f=mh(d,e);f.tag=1;f.payload=b;void 0!==c&&null!==c&&(f.callback=c);b=nh(a,f,e);null!==b&&(gi(b,a,e,d),oh(b,a,e))},enqueueForceUpdate:function(a,b){a=a._reactInternals;var c=R(),d=\nyi(a),e=mh(c,d);e.tag=2;void 0!==b&&null!==b&&(e.callback=b);b=nh(a,e,d);null!==b&&(gi(b,a,d,c),oh(b,a,d))}};function Fi(a,b,c,d,e,f,g){a=a.stateNode;return\"function\"===typeof a.shouldComponentUpdate?a.shouldComponentUpdate(d,f,g):b.prototype&&b.prototype.isPureReactComponent?!Ie(c,d)||!Ie(e,f):!0}\nfunction Gi(a,b,c){var d=!1,e=Vf;var f=b.contextType;\"object\"===typeof f&&null!==f?f=eh(f):(e=Zf(b)?Xf:H.current,d=b.contextTypes,f=(d=null!==d&&void 0!==d)?Yf(a,e):Vf);b=new b(c,f);a.memoizedState=null!==b.state&&void 0!==b.state?b.state:null;b.updater=Ei;a.stateNode=b;b._reactInternals=a;d&&(a=a.stateNode,a.__reactInternalMemoizedUnmaskedChildContext=e,a.__reactInternalMemoizedMaskedChildContext=f);return b}\nfunction Hi(a,b,c,d){a=b.state;\"function\"===typeof b.componentWillReceiveProps&&b.componentWillReceiveProps(c,d);\"function\"===typeof b.UNSAFE_componentWillReceiveProps&&b.UNSAFE_componentWillReceiveProps(c,d);b.state!==a&&Ei.enqueueReplaceState(b,b.state,null)}\nfunction Ii(a,b,c,d){var e=a.stateNode;e.props=c;e.state=a.memoizedState;e.refs={};kh(a);var f=b.contextType;\"object\"===typeof f&&null!==f?e.context=eh(f):(f=Zf(b)?Xf:H.current,e.context=Yf(a,f));e.state=a.memoizedState;f=b.getDerivedStateFromProps;\"function\"===typeof f&&(Di(a,b,f,c),e.state=a.memoizedState);\"function\"===typeof b.getDerivedStateFromProps||\"function\"===typeof e.getSnapshotBeforeUpdate||\"function\"!==typeof e.UNSAFE_componentWillMount&&\"function\"!==typeof e.componentWillMount||(b=e.state,\n\"function\"===typeof e.componentWillMount&&e.componentWillMount(),\"function\"===typeof e.UNSAFE_componentWillMount&&e.UNSAFE_componentWillMount(),b!==e.state&&Ei.enqueueReplaceState(e,e.state,null),qh(a,c,e,d),e.state=a.memoizedState);\"function\"===typeof e.componentDidMount&&(a.flags|=4194308)}function Ji(a,b){try{var c=\"\",d=b;do c+=Pa(d),d=d.return;while(d);var e=c}catch(f){e=\"\\nError generating stack: \"+f.message+\"\\n\"+f.stack}return{value:a,source:b,stack:e,digest:null}}\nfunction Ki(a,b,c){return{value:a,source:null,stack:null!=c?c:null,digest:null!=b?b:null}}function Li(a,b){try{console.error(b.value)}catch(c){setTimeout(function(){throw c;})}}var Mi=\"function\"===typeof WeakMap?WeakMap:Map;function Ni(a,b,c){c=mh(-1,c);c.tag=3;c.payload={element:null};var d=b.value;c.callback=function(){Oi||(Oi=!0,Pi=d);Li(a,b)};return c}\nfunction Qi(a,b,c){c=mh(-1,c);c.tag=3;var d=a.type.getDerivedStateFromError;if(\"function\"===typeof d){var e=b.value;c.payload=function(){return d(e)};c.callback=function(){Li(a,b)}}var f=a.stateNode;null!==f&&\"function\"===typeof f.componentDidCatch&&(c.callback=function(){Li(a,b);\"function\"!==typeof d&&(null===Ri?Ri=new Set([this]):Ri.add(this));var c=b.stack;this.componentDidCatch(b.value,{componentStack:null!==c?c:\"\"})});return c}\nfunction Si(a,b,c){var d=a.pingCache;if(null===d){d=a.pingCache=new Mi;var e=new Set;d.set(b,e)}else e=d.get(b),void 0===e&&(e=new Set,d.set(b,e));e.has(c)||(e.add(c),a=Ti.bind(null,a,b,c),b.then(a,a))}function Ui(a){do{var b;if(b=13===a.tag)b=a.memoizedState,b=null!==b?null!==b.dehydrated?!0:!1:!0;if(b)return a;a=a.return}while(null!==a);return null}\nfunction Vi(a,b,c,d,e){if(0===(a.mode&1))return a===b?a.flags|=65536:(a.flags|=128,c.flags|=131072,c.flags&=-52805,1===c.tag&&(null===c.alternate?c.tag=17:(b=mh(-1,1),b.tag=2,nh(c,b,1))),c.lanes|=1),a;a.flags|=65536;a.lanes=e;return a}var Wi=ua.ReactCurrentOwner,dh=!1;function Xi(a,b,c,d){b.child=null===a?Vg(b,null,c,d):Ug(b,a.child,c,d)}\nfunction Yi(a,b,c,d,e){c=c.render;var f=b.ref;ch(b,e);d=Nh(a,b,c,d,f,e);c=Sh();if(null!==a&&!dh)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);I&&c&&vg(b);b.flags|=1;Xi(a,b,d,e);return b.child}\nfunction $i(a,b,c,d,e){if(null===a){var f=c.type;if(\"function\"===typeof f&&!aj(f)&&void 0===f.defaultProps&&null===c.compare&&void 0===c.defaultProps)return b.tag=15,b.type=f,bj(a,b,f,d,e);a=Rg(c.type,null,d,b,b.mode,e);a.ref=b.ref;a.return=b;return b.child=a}f=a.child;if(0===(a.lanes&e)){var g=f.memoizedProps;c=c.compare;c=null!==c?c:Ie;if(c(g,d)&&a.ref===b.ref)return Zi(a,b,e)}b.flags|=1;a=Pg(f,d);a.ref=b.ref;a.return=b;return b.child=a}\nfunction bj(a,b,c,d,e){if(null!==a){var f=a.memoizedProps;if(Ie(f,d)&&a.ref===b.ref)if(dh=!1,b.pendingProps=d=f,0!==(a.lanes&e))0!==(a.flags&131072)&&(dh=!0);else return b.lanes=a.lanes,Zi(a,b,e)}return cj(a,b,c,d,e)}\nfunction dj(a,b,c){var d=b.pendingProps,e=d.children,f=null!==a?a.memoizedState:null;if(\"hidden\"===d.mode)if(0===(b.mode&1))b.memoizedState={baseLanes:0,cachePool:null,transitions:null},G(ej,fj),fj|=c;else{if(0===(c&1073741824))return a=null!==f?f.baseLanes|c:c,b.lanes=b.childLanes=1073741824,b.memoizedState={baseLanes:a,cachePool:null,transitions:null},b.updateQueue=null,G(ej,fj),fj|=a,null;b.memoizedState={baseLanes:0,cachePool:null,transitions:null};d=null!==f?f.baseLanes:c;G(ej,fj);fj|=d}else null!==\nf?(d=f.baseLanes|c,b.memoizedState=null):d=c,G(ej,fj),fj|=d;Xi(a,b,e,c);return b.child}function gj(a,b){var c=b.ref;if(null===a&&null!==c||null!==a&&a.ref!==c)b.flags|=512,b.flags|=2097152}function cj(a,b,c,d,e){var f=Zf(c)?Xf:H.current;f=Yf(b,f);ch(b,e);c=Nh(a,b,c,d,f,e);d=Sh();if(null!==a&&!dh)return b.updateQueue=a.updateQueue,b.flags&=-2053,a.lanes&=~e,Zi(a,b,e);I&&d&&vg(b);b.flags|=1;Xi(a,b,c,e);return b.child}\nfunction hj(a,b,c,d,e){if(Zf(c)){var f=!0;cg(b)}else f=!1;ch(b,e);if(null===b.stateNode)ij(a,b),Gi(b,c,d),Ii(b,c,d,e),d=!0;else if(null===a){var g=b.stateNode,h=b.memoizedProps;g.props=h;var k=g.context,l=c.contextType;\"object\"===typeof l&&null!==l?l=eh(l):(l=Zf(c)?Xf:H.current,l=Yf(b,l));var m=c.getDerivedStateFromProps,q=\"function\"===typeof m||\"function\"===typeof g.getSnapshotBeforeUpdate;q||\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||\n(h!==d||k!==l)&&Hi(b,g,d,l);jh=!1;var r=b.memoizedState;g.state=r;qh(b,d,g,e);k=b.memoizedState;h!==d||r!==k||Wf.current||jh?(\"function\"===typeof m&&(Di(b,c,m,d),k=b.memoizedState),(h=jh||Fi(b,c,h,d,r,k,l))?(q||\"function\"!==typeof g.UNSAFE_componentWillMount&&\"function\"!==typeof g.componentWillMount||(\"function\"===typeof g.componentWillMount&&g.componentWillMount(),\"function\"===typeof g.UNSAFE_componentWillMount&&g.UNSAFE_componentWillMount()),\"function\"===typeof g.componentDidMount&&(b.flags|=4194308)):\n(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),b.memoizedProps=d,b.memoizedState=k),g.props=d,g.state=k,g.context=l,d=h):(\"function\"===typeof g.componentDidMount&&(b.flags|=4194308),d=!1)}else{g=b.stateNode;lh(a,b);h=b.memoizedProps;l=b.type===b.elementType?h:Ci(b.type,h);g.props=l;q=b.pendingProps;r=g.context;k=c.contextType;\"object\"===typeof k&&null!==k?k=eh(k):(k=Zf(c)?Xf:H.current,k=Yf(b,k));var y=c.getDerivedStateFromProps;(m=\"function\"===typeof y||\"function\"===typeof g.getSnapshotBeforeUpdate)||\n\"function\"!==typeof g.UNSAFE_componentWillReceiveProps&&\"function\"!==typeof g.componentWillReceiveProps||(h!==q||r!==k)&&Hi(b,g,d,k);jh=!1;r=b.memoizedState;g.state=r;qh(b,d,g,e);var n=b.memoizedState;h!==q||r!==n||Wf.current||jh?(\"function\"===typeof y&&(Di(b,c,y,d),n=b.memoizedState),(l=jh||Fi(b,c,l,d,r,n,k)||!1)?(m||\"function\"!==typeof g.UNSAFE_componentWillUpdate&&\"function\"!==typeof g.componentWillUpdate||(\"function\"===typeof g.componentWillUpdate&&g.componentWillUpdate(d,n,k),\"function\"===typeof g.UNSAFE_componentWillUpdate&&\ng.UNSAFE_componentWillUpdate(d,n,k)),\"function\"===typeof g.componentDidUpdate&&(b.flags|=4),\"function\"===typeof g.getSnapshotBeforeUpdate&&(b.flags|=1024)):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),b.memoizedProps=d,b.memoizedState=n),g.props=d,g.state=n,g.context=k,d=l):(\"function\"!==typeof g.componentDidUpdate||h===a.memoizedProps&&r===\na.memoizedState||(b.flags|=4),\"function\"!==typeof g.getSnapshotBeforeUpdate||h===a.memoizedProps&&r===a.memoizedState||(b.flags|=1024),d=!1)}return jj(a,b,c,d,f,e)}\nfunction jj(a,b,c,d,e,f){gj(a,b);var g=0!==(b.flags&128);if(!d&&!g)return e&&dg(b,c,!1),Zi(a,b,f);d=b.stateNode;Wi.current=b;var h=g&&\"function\"!==typeof c.getDerivedStateFromError?null:d.render();b.flags|=1;null!==a&&g?(b.child=Ug(b,a.child,null,f),b.child=Ug(b,null,h,f)):Xi(a,b,h,f);b.memoizedState=d.state;e&&dg(b,c,!0);return b.child}function kj(a){var b=a.stateNode;b.pendingContext?ag(a,b.pendingContext,b.pendingContext!==b.context):b.context&&ag(a,b.context,!1);yh(a,b.containerInfo)}\nfunction lj(a,b,c,d,e){Ig();Jg(e);b.flags|=256;Xi(a,b,c,d);return b.child}var mj={dehydrated:null,treeContext:null,retryLane:0};function nj(a){return{baseLanes:a,cachePool:null,transitions:null}}\nfunction oj(a,b,c){var d=b.pendingProps,e=L.current,f=!1,g=0!==(b.flags&128),h;(h=g)||(h=null!==a&&null===a.memoizedState?!1:0!==(e&2));if(h)f=!0,b.flags&=-129;else if(null===a||null!==a.memoizedState)e|=1;G(L,e&1);if(null===a){Eg(b);a=b.memoizedState;if(null!==a&&(a=a.dehydrated,null!==a))return 0===(b.mode&1)?b.lanes=1:\"$!\"===a.data?b.lanes=8:b.lanes=1073741824,null;g=d.children;a=d.fallback;return f?(d=b.mode,f=b.child,g={mode:\"hidden\",children:g},0===(d&1)&&null!==f?(f.childLanes=0,f.pendingProps=\ng):f=pj(g,d,0,null),a=Tg(a,d,c,null),f.return=b,a.return=b,f.sibling=a,b.child=f,b.child.memoizedState=nj(c),b.memoizedState=mj,a):qj(b,g)}e=a.memoizedState;if(null!==e&&(h=e.dehydrated,null!==h))return rj(a,b,g,d,h,e,c);if(f){f=d.fallback;g=b.mode;e=a.child;h=e.sibling;var k={mode:\"hidden\",children:d.children};0===(g&1)&&b.child!==e?(d=b.child,d.childLanes=0,d.pendingProps=k,b.deletions=null):(d=Pg(e,k),d.subtreeFlags=e.subtreeFlags&14680064);null!==h?f=Pg(h,f):(f=Tg(f,g,c,null),f.flags|=2);f.return=\nb;d.return=b;d.sibling=f;b.child=d;d=f;f=b.child;g=a.child.memoizedState;g=null===g?nj(c):{baseLanes:g.baseLanes|c,cachePool:null,transitions:g.transitions};f.memoizedState=g;f.childLanes=a.childLanes&~c;b.memoizedState=mj;return d}f=a.child;a=f.sibling;d=Pg(f,{mode:\"visible\",children:d.children});0===(b.mode&1)&&(d.lanes=c);d.return=b;d.sibling=null;null!==a&&(c=b.deletions,null===c?(b.deletions=[a],b.flags|=16):c.push(a));b.child=d;b.memoizedState=null;return d}\nfunction qj(a,b){b=pj({mode:\"visible\",children:b},a.mode,0,null);b.return=a;return a.child=b}function sj(a,b,c,d){null!==d&&Jg(d);Ug(b,a.child,null,c);a=qj(b,b.pendingProps.children);a.flags|=2;b.memoizedState=null;return a}\nfunction rj(a,b,c,d,e,f,g){if(c){if(b.flags&256)return b.flags&=-257,d=Ki(Error(p(422))),sj(a,b,g,d);if(null!==b.memoizedState)return b.child=a.child,b.flags|=128,null;f=d.fallback;e=b.mode;d=pj({mode:\"visible\",children:d.children},e,0,null);f=Tg(f,e,g,null);f.flags|=2;d.return=b;f.return=b;d.sibling=f;b.child=d;0!==(b.mode&1)&&Ug(b,a.child,null,g);b.child.memoizedState=nj(g);b.memoizedState=mj;return f}if(0===(b.mode&1))return sj(a,b,g,null);if(\"$!\"===e.data){d=e.nextSibling&&e.nextSibling.dataset;\nif(d)var h=d.dgst;d=h;f=Error(p(419));d=Ki(f,d,void 0);return sj(a,b,g,d)}h=0!==(g&a.childLanes);if(dh||h){d=Q;if(null!==d){switch(g&-g){case 4:e=2;break;case 16:e=8;break;case 64:case 128:case 256:case 512:case 1024:case 2048:case 4096:case 8192:case 16384:case 32768:case 65536:case 131072:case 262144:case 524288:case 1048576:case 2097152:case 4194304:case 8388608:case 16777216:case 33554432:case 67108864:e=32;break;case 536870912:e=268435456;break;default:e=0}e=0!==(e&(d.suspendedLanes|g))?0:e;\n0!==e&&e!==f.retryLane&&(f.retryLane=e,ih(a,e),gi(d,a,e,-1))}tj();d=Ki(Error(p(421)));return sj(a,b,g,d)}if(\"$?\"===e.data)return b.flags|=128,b.child=a.child,b=uj.bind(null,a),e._reactRetry=b,null;a=f.treeContext;yg=Lf(e.nextSibling);xg=b;I=!0;zg=null;null!==a&&(og[pg++]=rg,og[pg++]=sg,og[pg++]=qg,rg=a.id,sg=a.overflow,qg=b);b=qj(b,d.children);b.flags|=4096;return b}function vj(a,b,c){a.lanes|=b;var d=a.alternate;null!==d&&(d.lanes|=b);bh(a.return,b,c)}\nfunction wj(a,b,c,d,e){var f=a.memoizedState;null===f?a.memoizedState={isBackwards:b,rendering:null,renderingStartTime:0,last:d,tail:c,tailMode:e}:(f.isBackwards=b,f.rendering=null,f.renderingStartTime=0,f.last=d,f.tail=c,f.tailMode=e)}\nfunction xj(a,b,c){var d=b.pendingProps,e=d.revealOrder,f=d.tail;Xi(a,b,d.children,c);d=L.current;if(0!==(d&2))d=d&1|2,b.flags|=128;else{if(null!==a&&0!==(a.flags&128))a:for(a=b.child;null!==a;){if(13===a.tag)null!==a.memoizedState&&vj(a,c,b);else if(19===a.tag)vj(a,c,b);else if(null!==a.child){a.child.return=a;a=a.child;continue}if(a===b)break a;for(;null===a.sibling;){if(null===a.return||a.return===b)break a;a=a.return}a.sibling.return=a.return;a=a.sibling}d&=1}G(L,d);if(0===(b.mode&1))b.memoizedState=\nnull;else switch(e){case \"forwards\":c=b.child;for(e=null;null!==c;)a=c.alternate,null!==a&&null===Ch(a)&&(e=c),c=c.sibling;c=e;null===c?(e=b.child,b.child=null):(e=c.sibling,c.sibling=null);wj(b,!1,e,c,f);break;case \"backwards\":c=null;e=b.child;for(b.child=null;null!==e;){a=e.alternate;if(null!==a&&null===Ch(a)){b.child=e;break}a=e.sibling;e.sibling=c;c=e;e=a}wj(b,!0,c,null,f);break;case \"together\":wj(b,!1,null,null,void 0);break;default:b.memoizedState=null}return b.child}\nfunction ij(a,b){0===(b.mode&1)&&null!==a&&(a.alternate=null,b.alternate=null,b.flags|=2)}function Zi(a,b,c){null!==a&&(b.dependencies=a.dependencies);rh|=b.lanes;if(0===(c&b.childLanes))return null;if(null!==a&&b.child!==a.child)throw Error(p(153));if(null!==b.child){a=b.child;c=Pg(a,a.pendingProps);b.child=c;for(c.return=b;null!==a.sibling;)a=a.sibling,c=c.sibling=Pg(a,a.pendingProps),c.return=b;c.sibling=null}return b.child}\nfunction yj(a,b,c){switch(b.tag){case 3:kj(b);Ig();break;case 5:Ah(b);break;case 1:Zf(b.type)&&cg(b);break;case 4:yh(b,b.stateNode.containerInfo);break;case 10:var d=b.type._context,e=b.memoizedProps.value;G(Wg,d._currentValue);d._currentValue=e;break;case 13:d=b.memoizedState;if(null!==d){if(null!==d.dehydrated)return G(L,L.current&1),b.flags|=128,null;if(0!==(c&b.child.childLanes))return oj(a,b,c);G(L,L.current&1);a=Zi(a,b,c);return null!==a?a.sibling:null}G(L,L.current&1);break;case 19:d=0!==(c&\nb.childLanes);if(0!==(a.flags&128)){if(d)return xj(a,b,c);b.flags|=128}e=b.memoizedState;null!==e&&(e.rendering=null,e.tail=null,e.lastEffect=null);G(L,L.current);if(d)break;else return null;case 22:case 23:return b.lanes=0,dj(a,b,c)}return Zi(a,b,c)}var zj,Aj,Bj,Cj;\nzj=function(a,b){for(var c=b.child;null!==c;){if(5===c.tag||6===c.tag)a.appendChild(c.stateNode);else if(4!==c.tag&&null!==c.child){c.child.return=c;c=c.child;continue}if(c===b)break;for(;null===c.sibling;){if(null===c.return||c.return===b)return;c=c.return}c.sibling.return=c.return;c=c.sibling}};Aj=function(){};\nBj=function(a,b,c,d){var e=a.memoizedProps;if(e!==d){a=b.stateNode;xh(uh.current);var f=null;switch(c){case \"input\":e=Ya(a,e);d=Ya(a,d);f=[];break;case \"select\":e=A({},e,{value:void 0});d=A({},d,{value:void 0});f=[];break;case \"textarea\":e=gb(a,e);d=gb(a,d);f=[];break;default:\"function\"!==typeof e.onClick&&\"function\"===typeof d.onClick&&(a.onclick=Bf)}ub(c,d);var g;c=null;for(l in e)if(!d.hasOwnProperty(l)&&e.hasOwnProperty(l)&&null!=e[l])if(\"style\"===l){var h=e[l];for(g in h)h.hasOwnProperty(g)&&\n(c||(c={}),c[g]=\"\")}else\"dangerouslySetInnerHTML\"!==l&&\"children\"!==l&&\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&\"autoFocus\"!==l&&(ea.hasOwnProperty(l)?f||(f=[]):(f=f||[]).push(l,null));for(l in d){var k=d[l];h=null!=e?e[l]:void 0;if(d.hasOwnProperty(l)&&k!==h&&(null!=k||null!=h))if(\"style\"===l)if(h){for(g in h)!h.hasOwnProperty(g)||k&&k.hasOwnProperty(g)||(c||(c={}),c[g]=\"\");for(g in k)k.hasOwnProperty(g)&&h[g]!==k[g]&&(c||(c={}),c[g]=k[g])}else c||(f||(f=[]),f.push(l,\nc)),c=k;else\"dangerouslySetInnerHTML\"===l?(k=k?k.__html:void 0,h=h?h.__html:void 0,null!=k&&h!==k&&(f=f||[]).push(l,k)):\"children\"===l?\"string\"!==typeof k&&\"number\"!==typeof k||(f=f||[]).push(l,\"\"+k):\"suppressContentEditableWarning\"!==l&&\"suppressHydrationWarning\"!==l&&(ea.hasOwnProperty(l)?(null!=k&&\"onScroll\"===l&&D(\"scroll\",a),f||h===k||(f=[])):(f=f||[]).push(l,k))}c&&(f=f||[]).push(\"style\",c);var l=f;if(b.updateQueue=l)b.flags|=4}};Cj=function(a,b,c,d){c!==d&&(b.flags|=4)};\nfunction Dj(a,b){if(!I)switch(a.tailMode){case \"hidden\":b=a.tail;for(var c=null;null!==b;)null!==b.alternate&&(c=b),b=b.sibling;null===c?a.tail=null:c.sibling=null;break;case \"collapsed\":c=a.tail;for(var d=null;null!==c;)null!==c.alternate&&(d=c),c=c.sibling;null===d?b||null===a.tail?a.tail=null:a.tail.sibling=null:d.sibling=null}}\nfunction S(a){var b=null!==a.alternate&&a.alternate.child===a.child,c=0,d=0;if(b)for(var e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags&14680064,d|=e.flags&14680064,e.return=a,e=e.sibling;else for(e=a.child;null!==e;)c|=e.lanes|e.childLanes,d|=e.subtreeFlags,d|=e.flags,e.return=a,e=e.sibling;a.subtreeFlags|=d;a.childLanes=c;return b}\nfunction Ej(a,b,c){var d=b.pendingProps;wg(b);switch(b.tag){case 2:case 16:case 15:case 0:case 11:case 7:case 8:case 12:case 9:case 14:return S(b),null;case 1:return Zf(b.type)&&$f(),S(b),null;case 3:d=b.stateNode;zh();E(Wf);E(H);Eh();d.pendingContext&&(d.context=d.pendingContext,d.pendingContext=null);if(null===a||null===a.child)Gg(b)?b.flags|=4:null===a||a.memoizedState.isDehydrated&&0===(b.flags&256)||(b.flags|=1024,null!==zg&&(Fj(zg),zg=null));Aj(a,b);S(b);return null;case 5:Bh(b);var e=xh(wh.current);\nc=b.type;if(null!==a&&null!=b.stateNode)Bj(a,b,c,d,e),a.ref!==b.ref&&(b.flags|=512,b.flags|=2097152);else{if(!d){if(null===b.stateNode)throw Error(p(166));S(b);return null}a=xh(uh.current);if(Gg(b)){d=b.stateNode;c=b.type;var f=b.memoizedProps;d[Of]=b;d[Pf]=f;a=0!==(b.mode&1);switch(c){case \"dialog\":D(\"cancel\",d);D(\"close\",d);break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",d);break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],d);break;case \"source\":D(\"error\",d);break;case \"img\":case \"image\":case \"link\":D(\"error\",\nd);D(\"load\",d);break;case \"details\":D(\"toggle\",d);break;case \"input\":Za(d,f);D(\"invalid\",d);break;case \"select\":d._wrapperState={wasMultiple:!!f.multiple};D(\"invalid\",d);break;case \"textarea\":hb(d,f),D(\"invalid\",d)}ub(c,f);e=null;for(var g in f)if(f.hasOwnProperty(g)){var h=f[g];\"children\"===g?\"string\"===typeof h?d.textContent!==h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,h,a),e=[\"children\",h]):\"number\"===typeof h&&d.textContent!==\"\"+h&&(!0!==f.suppressHydrationWarning&&Af(d.textContent,\nh,a),e=[\"children\",\"\"+h]):ea.hasOwnProperty(g)&&null!=h&&\"onScroll\"===g&&D(\"scroll\",d)}switch(c){case \"input\":Va(d);db(d,f,!0);break;case \"textarea\":Va(d);jb(d);break;case \"select\":case \"option\":break;default:\"function\"===typeof f.onClick&&(d.onclick=Bf)}d=e;b.updateQueue=d;null!==d&&(b.flags|=4)}else{g=9===e.nodeType?e:e.ownerDocument;\"http://www.w3.org/1999/xhtml\"===a&&(a=kb(c));\"http://www.w3.org/1999/xhtml\"===a?\"script\"===c?(a=g.createElement(\"div\"),a.innerHTML=\"<script>\\x3c/script>\",a=a.removeChild(a.firstChild)):\n\"string\"===typeof d.is?a=g.createElement(c,{is:d.is}):(a=g.createElement(c),\"select\"===c&&(g=a,d.multiple?g.multiple=!0:d.size&&(g.size=d.size))):a=g.createElementNS(a,c);a[Of]=b;a[Pf]=d;zj(a,b,!1,!1);b.stateNode=a;a:{g=vb(c,d);switch(c){case \"dialog\":D(\"cancel\",a);D(\"close\",a);e=d;break;case \"iframe\":case \"object\":case \"embed\":D(\"load\",a);e=d;break;case \"video\":case \"audio\":for(e=0;e<lf.length;e++)D(lf[e],a);e=d;break;case \"source\":D(\"error\",a);e=d;break;case \"img\":case \"image\":case \"link\":D(\"error\",\na);D(\"load\",a);e=d;break;case \"details\":D(\"toggle\",a);e=d;break;case \"input\":Za(a,d);e=Ya(a,d);D(\"invalid\",a);break;case \"option\":e=d;break;case \"select\":a._wrapperState={wasMultiple:!!d.multiple};e=A({},d,{value:void 0});D(\"invalid\",a);break;case \"textarea\":hb(a,d);e=gb(a,d);D(\"invalid\",a);break;default:e=d}ub(c,e);h=e;for(f in h)if(h.hasOwnProperty(f)){var k=h[f];\"style\"===f?sb(a,k):\"dangerouslySetInnerHTML\"===f?(k=k?k.__html:void 0,null!=k&&nb(a,k)):\"children\"===f?\"string\"===typeof k?(\"textarea\"!==\nc||\"\"!==k)&&ob(a,k):\"number\"===typeof k&&ob(a,\"\"+k):\"suppressContentEditableWarning\"!==f&&\"suppressHydrationWarning\"!==f&&\"autoFocus\"!==f&&(ea.hasOwnProperty(f)?null!=k&&\"onScroll\"===f&&D(\"scroll\",a):null!=k&&ta(a,f,k,g))}switch(c){case \"input\":Va(a);db(a,d,!1);break;case \"textarea\":Va(a);jb(a);break;case \"option\":null!=d.value&&a.setAttribute(\"value\",\"\"+Sa(d.value));break;case \"select\":a.multiple=!!d.multiple;f=d.value;null!=f?fb(a,!!d.multiple,f,!1):null!=d.defaultValue&&fb(a,!!d.multiple,d.defaultValue,\n!0);break;default:\"function\"===typeof e.onClick&&(a.onclick=Bf)}switch(c){case \"button\":case \"input\":case \"select\":case \"textarea\":d=!!d.autoFocus;break a;case \"img\":d=!0;break a;default:d=!1}}d&&(b.flags|=4)}null!==b.ref&&(b.flags|=512,b.flags|=2097152)}S(b);return null;case 6:if(a&&null!=b.stateNode)Cj(a,b,a.memoizedProps,d);else{if(\"string\"!==typeof d&&null===b.stateNode)throw Error(p(166));c=xh(wh.current);xh(uh.current);if(Gg(b)){d=b.stateNode;c=b.memoizedProps;d[Of]=b;if(f=d.nodeValue!==c)if(a=\nxg,null!==a)switch(a.tag){case 3:Af(d.nodeValue,c,0!==(a.mode&1));break;case 5:!0!==a.memoizedProps.suppressHydrationWarning&&Af(d.nodeValue,c,0!==(a.mode&1))}f&&(b.flags|=4)}else d=(9===c.nodeType?c:c.ownerDocument).createTextNode(d),d[Of]=b,b.stateNode=d}S(b);return null;case 13:E(L);d=b.memoizedState;if(null===a||null!==a.memoizedState&&null!==a.memoizedState.dehydrated){if(I&&null!==yg&&0!==(b.mode&1)&&0===(b.flags&128))Hg(),Ig(),b.flags|=98560,f=!1;else if(f=Gg(b),null!==d&&null!==d.dehydrated){if(null===\na){if(!f)throw Error(p(318));f=b.memoizedState;f=null!==f?f.dehydrated:null;if(!f)throw Error(p(317));f[Of]=b}else Ig(),0===(b.flags&128)&&(b.memoizedState=null),b.flags|=4;S(b);f=!1}else null!==zg&&(Fj(zg),zg=null),f=!0;if(!f)return b.flags&65536?b:null}if(0!==(b.flags&128))return b.lanes=c,b;d=null!==d;d!==(null!==a&&null!==a.memoizedState)&&d&&(b.child.flags|=8192,0!==(b.mode&1)&&(null===a||0!==(L.current&1)?0===T&&(T=3):tj()));null!==b.updateQueue&&(b.flags|=4);S(b);return null;case 4:return zh(),\nAj(a,b),null===a&&sf(b.stateNode.containerInfo),S(b),null;case 10:return ah(b.type._context),S(b),null;case 17:return Zf(b.type)&&$f(),S(b),null;case 19:E(L);f=b.memoizedState;if(null===f)return S(b),null;d=0!==(b.flags&128);g=f.rendering;if(null===g)if(d)Dj(f,!1);else{if(0!==T||null!==a&&0!==(a.flags&128))for(a=b.child;null!==a;){g=Ch(a);if(null!==g){b.flags|=128;Dj(f,!1);d=g.updateQueue;null!==d&&(b.updateQueue=d,b.flags|=4);b.subtreeFlags=0;d=c;for(c=b.child;null!==c;)f=c,a=d,f.flags&=14680066,\ng=f.alternate,null===g?(f.childLanes=0,f.lanes=a,f.child=null,f.subtreeFlags=0,f.memoizedProps=null,f.memoizedState=null,f.updateQueue=null,f.dependencies=null,f.stateNode=null):(f.childLanes=g.childLanes,f.lanes=g.lanes,f.child=g.child,f.subtreeFlags=0,f.deletions=null,f.memoizedProps=g.memoizedProps,f.memoizedState=g.memoizedState,f.updateQueue=g.updateQueue,f.type=g.type,a=g.dependencies,f.dependencies=null===a?null:{lanes:a.lanes,firstContext:a.firstContext}),c=c.sibling;G(L,L.current&1|2);return b.child}a=\na.sibling}null!==f.tail&&B()>Gj&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304)}else{if(!d)if(a=Ch(g),null!==a){if(b.flags|=128,d=!0,c=a.updateQueue,null!==c&&(b.updateQueue=c,b.flags|=4),Dj(f,!0),null===f.tail&&\"hidden\"===f.tailMode&&!g.alternate&&!I)return S(b),null}else 2*B()-f.renderingStartTime>Gj&&1073741824!==c&&(b.flags|=128,d=!0,Dj(f,!1),b.lanes=4194304);f.isBackwards?(g.sibling=b.child,b.child=g):(c=f.last,null!==c?c.sibling=g:b.child=g,f.last=g)}if(null!==f.tail)return b=f.tail,f.rendering=\nb,f.tail=b.sibling,f.renderingStartTime=B(),b.sibling=null,c=L.current,G(L,d?c&1|2:c&1),b;S(b);return null;case 22:case 23:return Hj(),d=null!==b.memoizedState,null!==a&&null!==a.memoizedState!==d&&(b.flags|=8192),d&&0!==(b.mode&1)?0!==(fj&1073741824)&&(S(b),b.subtreeFlags&6&&(b.flags|=8192)):S(b),null;case 24:return null;case 25:return null}throw Error(p(156,b.tag));}\nfunction Ij(a,b){wg(b);switch(b.tag){case 1:return Zf(b.type)&&$f(),a=b.flags,a&65536?(b.flags=a&-65537|128,b):null;case 3:return zh(),E(Wf),E(H),Eh(),a=b.flags,0!==(a&65536)&&0===(a&128)?(b.flags=a&-65537|128,b):null;case 5:return Bh(b),null;case 13:E(L);a=b.memoizedState;if(null!==a&&null!==a.dehydrated){if(null===b.alternate)throw Error(p(340));Ig()}a=b.flags;return a&65536?(b.flags=a&-65537|128,b):null;case 19:return E(L),null;case 4:return zh(),null;case 10:return ah(b.type._context),null;case 22:case 23:return Hj(),\nnull;case 24:return null;default:return null}}var Jj=!1,U=!1,Kj=\"function\"===typeof WeakSet?WeakSet:Set,V=null;function Lj(a,b){var c=a.ref;if(null!==c)if(\"function\"===typeof c)try{c(null)}catch(d){W(a,b,d)}else c.current=null}function Mj(a,b,c){try{c()}catch(d){W(a,b,d)}}var Nj=!1;\nfunction Oj(a,b){Cf=dd;a=Me();if(Ne(a)){if(\"selectionStart\"in a)var c={start:a.selectionStart,end:a.selectionEnd};else a:{c=(c=a.ownerDocument)&&c.defaultView||window;var d=c.getSelection&&c.getSelection();if(d&&0!==d.rangeCount){c=d.anchorNode;var e=d.anchorOffset,f=d.focusNode;d=d.focusOffset;try{c.nodeType,f.nodeType}catch(F){c=null;break a}var g=0,h=-1,k=-1,l=0,m=0,q=a,r=null;b:for(;;){for(var y;;){q!==c||0!==e&&3!==q.nodeType||(h=g+e);q!==f||0!==d&&3!==q.nodeType||(k=g+d);3===q.nodeType&&(g+=\nq.nodeValue.length);if(null===(y=q.firstChild))break;r=q;q=y}for(;;){if(q===a)break b;r===c&&++l===e&&(h=g);r===f&&++m===d&&(k=g);if(null!==(y=q.nextSibling))break;q=r;r=q.parentNode}q=y}c=-1===h||-1===k?null:{start:h,end:k}}else c=null}c=c||{start:0,end:0}}else c=null;Df={focusedElem:a,selectionRange:c};dd=!1;for(V=b;null!==V;)if(b=V,a=b.child,0!==(b.subtreeFlags&1028)&&null!==a)a.return=b,V=a;else for(;null!==V;){b=V;try{var n=b.alternate;if(0!==(b.flags&1024))switch(b.tag){case 0:case 11:case 15:break;\ncase 1:if(null!==n){var t=n.memoizedProps,J=n.memoizedState,x=b.stateNode,w=x.getSnapshotBeforeUpdate(b.elementType===b.type?t:Ci(b.type,t),J);x.__reactInternalSnapshotBeforeUpdate=w}break;case 3:var u=b.stateNode.containerInfo;1===u.nodeType?u.textContent=\"\":9===u.nodeType&&u.documentElement&&u.removeChild(u.documentElement);break;case 5:case 6:case 4:case 17:break;default:throw Error(p(163));}}catch(F){W(b,b.return,F)}a=b.sibling;if(null!==a){a.return=b.return;V=a;break}V=b.return}n=Nj;Nj=!1;return n}\nfunction Pj(a,b,c){var d=b.updateQueue;d=null!==d?d.lastEffect:null;if(null!==d){var e=d=d.next;do{if((e.tag&a)===a){var f=e.destroy;e.destroy=void 0;void 0!==f&&Mj(b,c,f)}e=e.next}while(e!==d)}}function Qj(a,b){b=b.updateQueue;b=null!==b?b.lastEffect:null;if(null!==b){var c=b=b.next;do{if((c.tag&a)===a){var d=c.create;c.destroy=d()}c=c.next}while(c!==b)}}function Rj(a){var b=a.ref;if(null!==b){var c=a.stateNode;switch(a.tag){case 5:a=c;break;default:a=c}\"function\"===typeof b?b(a):b.current=a}}\nfunction Sj(a){var b=a.alternate;null!==b&&(a.alternate=null,Sj(b));a.child=null;a.deletions=null;a.sibling=null;5===a.tag&&(b=a.stateNode,null!==b&&(delete b[Of],delete b[Pf],delete b[of],delete b[Qf],delete b[Rf]));a.stateNode=null;a.return=null;a.dependencies=null;a.memoizedProps=null;a.memoizedState=null;a.pendingProps=null;a.stateNode=null;a.updateQueue=null}function Tj(a){return 5===a.tag||3===a.tag||4===a.tag}\nfunction Uj(a){a:for(;;){for(;null===a.sibling;){if(null===a.return||Tj(a.return))return null;a=a.return}a.sibling.return=a.return;for(a=a.sibling;5!==a.tag&&6!==a.tag&&18!==a.tag;){if(a.flags&2)continue a;if(null===a.child||4===a.tag)continue a;else a.child.return=a,a=a.child}if(!(a.flags&2))return a.stateNode}}\nfunction Vj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?8===c.nodeType?c.parentNode.insertBefore(a,b):c.insertBefore(a,b):(8===c.nodeType?(b=c.parentNode,b.insertBefore(a,c)):(b=c,b.appendChild(a)),c=c._reactRootContainer,null!==c&&void 0!==c||null!==b.onclick||(b.onclick=Bf));else if(4!==d&&(a=a.child,null!==a))for(Vj(a,b,c),a=a.sibling;null!==a;)Vj(a,b,c),a=a.sibling}\nfunction Wj(a,b,c){var d=a.tag;if(5===d||6===d)a=a.stateNode,b?c.insertBefore(a,b):c.appendChild(a);else if(4!==d&&(a=a.child,null!==a))for(Wj(a,b,c),a=a.sibling;null!==a;)Wj(a,b,c),a=a.sibling}var X=null,Xj=!1;function Yj(a,b,c){for(c=c.child;null!==c;)Zj(a,b,c),c=c.sibling}\nfunction Zj(a,b,c){if(lc&&\"function\"===typeof lc.onCommitFiberUnmount)try{lc.onCommitFiberUnmount(kc,c)}catch(h){}switch(c.tag){case 5:U||Lj(c,b);case 6:var d=X,e=Xj;X=null;Yj(a,b,c);X=d;Xj=e;null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?a.parentNode.removeChild(c):a.removeChild(c)):X.removeChild(c.stateNode));break;case 18:null!==X&&(Xj?(a=X,c=c.stateNode,8===a.nodeType?Kf(a.parentNode,c):1===a.nodeType&&Kf(a,c),bd(a)):Kf(X,c.stateNode));break;case 4:d=X;e=Xj;X=c.stateNode.containerInfo;Xj=!0;\nYj(a,b,c);X=d;Xj=e;break;case 0:case 11:case 14:case 15:if(!U&&(d=c.updateQueue,null!==d&&(d=d.lastEffect,null!==d))){e=d=d.next;do{var f=e,g=f.destroy;f=f.tag;void 0!==g&&(0!==(f&2)?Mj(c,b,g):0!==(f&4)&&Mj(c,b,g));e=e.next}while(e!==d)}Yj(a,b,c);break;case 1:if(!U&&(Lj(c,b),d=c.stateNode,\"function\"===typeof d.componentWillUnmount))try{d.props=c.memoizedProps,d.state=c.memoizedState,d.componentWillUnmount()}catch(h){W(c,b,h)}Yj(a,b,c);break;case 21:Yj(a,b,c);break;case 22:c.mode&1?(U=(d=U)||null!==\nc.memoizedState,Yj(a,b,c),U=d):Yj(a,b,c);break;default:Yj(a,b,c)}}function ak(a){var b=a.updateQueue;if(null!==b){a.updateQueue=null;var c=a.stateNode;null===c&&(c=a.stateNode=new Kj);b.forEach(function(b){var d=bk.bind(null,a,b);c.has(b)||(c.add(b),b.then(d,d))})}}\nfunction ck(a,b){var c=b.deletions;if(null!==c)for(var d=0;d<c.length;d++){var e=c[d];try{var f=a,g=b,h=g;a:for(;null!==h;){switch(h.tag){case 5:X=h.stateNode;Xj=!1;break a;case 3:X=h.stateNode.containerInfo;Xj=!0;break a;case 4:X=h.stateNode.containerInfo;Xj=!0;break a}h=h.return}if(null===X)throw Error(p(160));Zj(f,g,e);X=null;Xj=!1;var k=e.alternate;null!==k&&(k.return=null);e.return=null}catch(l){W(e,b,l)}}if(b.subtreeFlags&12854)for(b=b.child;null!==b;)dk(b,a),b=b.sibling}\nfunction dk(a,b){var c=a.alternate,d=a.flags;switch(a.tag){case 0:case 11:case 14:case 15:ck(b,a);ek(a);if(d&4){try{Pj(3,a,a.return),Qj(3,a)}catch(t){W(a,a.return,t)}try{Pj(5,a,a.return)}catch(t){W(a,a.return,t)}}break;case 1:ck(b,a);ek(a);d&512&&null!==c&&Lj(c,c.return);break;case 5:ck(b,a);ek(a);d&512&&null!==c&&Lj(c,c.return);if(a.flags&32){var e=a.stateNode;try{ob(e,\"\")}catch(t){W(a,a.return,t)}}if(d&4&&(e=a.stateNode,null!=e)){var f=a.memoizedProps,g=null!==c?c.memoizedProps:f,h=a.type,k=a.updateQueue;\na.updateQueue=null;if(null!==k)try{\"input\"===h&&\"radio\"===f.type&&null!=f.name&&ab(e,f);vb(h,g);var l=vb(h,f);for(g=0;g<k.length;g+=2){var m=k[g],q=k[g+1];\"style\"===m?sb(e,q):\"dangerouslySetInnerHTML\"===m?nb(e,q):\"children\"===m?ob(e,q):ta(e,m,q,l)}switch(h){case \"input\":bb(e,f);break;case \"textarea\":ib(e,f);break;case \"select\":var r=e._wrapperState.wasMultiple;e._wrapperState.wasMultiple=!!f.multiple;var y=f.value;null!=y?fb(e,!!f.multiple,y,!1):r!==!!f.multiple&&(null!=f.defaultValue?fb(e,!!f.multiple,\nf.defaultValue,!0):fb(e,!!f.multiple,f.multiple?[]:\"\",!1))}e[Pf]=f}catch(t){W(a,a.return,t)}}break;case 6:ck(b,a);ek(a);if(d&4){if(null===a.stateNode)throw Error(p(162));e=a.stateNode;f=a.memoizedProps;try{e.nodeValue=f}catch(t){W(a,a.return,t)}}break;case 3:ck(b,a);ek(a);if(d&4&&null!==c&&c.memoizedState.isDehydrated)try{bd(b.containerInfo)}catch(t){W(a,a.return,t)}break;case 4:ck(b,a);ek(a);break;case 13:ck(b,a);ek(a);e=a.child;e.flags&8192&&(f=null!==e.memoizedState,e.stateNode.isHidden=f,!f||\nnull!==e.alternate&&null!==e.alternate.memoizedState||(fk=B()));d&4&&ak(a);break;case 22:m=null!==c&&null!==c.memoizedState;a.mode&1?(U=(l=U)||m,ck(b,a),U=l):ck(b,a);ek(a);if(d&8192){l=null!==a.memoizedState;if((a.stateNode.isHidden=l)&&!m&&0!==(a.mode&1))for(V=a,m=a.child;null!==m;){for(q=V=m;null!==V;){r=V;y=r.child;switch(r.tag){case 0:case 11:case 14:case 15:Pj(4,r,r.return);break;case 1:Lj(r,r.return);var n=r.stateNode;if(\"function\"===typeof n.componentWillUnmount){d=r;c=r.return;try{b=d,n.props=\nb.memoizedProps,n.state=b.memoizedState,n.componentWillUnmount()}catch(t){W(d,c,t)}}break;case 5:Lj(r,r.return);break;case 22:if(null!==r.memoizedState){gk(q);continue}}null!==y?(y.return=r,V=y):gk(q)}m=m.sibling}a:for(m=null,q=a;;){if(5===q.tag){if(null===m){m=q;try{e=q.stateNode,l?(f=e.style,\"function\"===typeof f.setProperty?f.setProperty(\"display\",\"none\",\"important\"):f.display=\"none\"):(h=q.stateNode,k=q.memoizedProps.style,g=void 0!==k&&null!==k&&k.hasOwnProperty(\"display\")?k.display:null,h.style.display=\nrb(\"display\",g))}catch(t){W(a,a.return,t)}}}else if(6===q.tag){if(null===m)try{q.stateNode.nodeValue=l?\"\":q.memoizedProps}catch(t){W(a,a.return,t)}}else if((22!==q.tag&&23!==q.tag||null===q.memoizedState||q===a)&&null!==q.child){q.child.return=q;q=q.child;continue}if(q===a)break a;for(;null===q.sibling;){if(null===q.return||q.return===a)break a;m===q&&(m=null);q=q.return}m===q&&(m=null);q.sibling.return=q.return;q=q.sibling}}break;case 19:ck(b,a);ek(a);d&4&&ak(a);break;case 21:break;default:ck(b,\na),ek(a)}}function ek(a){var b=a.flags;if(b&2){try{a:{for(var c=a.return;null!==c;){if(Tj(c)){var d=c;break a}c=c.return}throw Error(p(160));}switch(d.tag){case 5:var e=d.stateNode;d.flags&32&&(ob(e,\"\"),d.flags&=-33);var f=Uj(a);Wj(a,f,e);break;case 3:case 4:var g=d.stateNode.containerInfo,h=Uj(a);Vj(a,h,g);break;default:throw Error(p(161));}}catch(k){W(a,a.return,k)}a.flags&=-3}b&4096&&(a.flags&=-4097)}function hk(a,b,c){V=a;ik(a,b,c)}\nfunction ik(a,b,c){for(var d=0!==(a.mode&1);null!==V;){var e=V,f=e.child;if(22===e.tag&&d){var g=null!==e.memoizedState||Jj;if(!g){var h=e.alternate,k=null!==h&&null!==h.memoizedState||U;h=Jj;var l=U;Jj=g;if((U=k)&&!l)for(V=e;null!==V;)g=V,k=g.child,22===g.tag&&null!==g.memoizedState?jk(e):null!==k?(k.return=g,V=k):jk(e);for(;null!==f;)V=f,ik(f,b,c),f=f.sibling;V=e;Jj=h;U=l}kk(a,b,c)}else 0!==(e.subtreeFlags&8772)&&null!==f?(f.return=e,V=f):kk(a,b,c)}}\nfunction kk(a){for(;null!==V;){var b=V;if(0!==(b.flags&8772)){var c=b.alternate;try{if(0!==(b.flags&8772))switch(b.tag){case 0:case 11:case 15:U||Qj(5,b);break;case 1:var d=b.stateNode;if(b.flags&4&&!U)if(null===c)d.componentDidMount();else{var e=b.elementType===b.type?c.memoizedProps:Ci(b.type,c.memoizedProps);d.componentDidUpdate(e,c.memoizedState,d.__reactInternalSnapshotBeforeUpdate)}var f=b.updateQueue;null!==f&&sh(b,f,d);break;case 3:var g=b.updateQueue;if(null!==g){c=null;if(null!==b.child)switch(b.child.tag){case 5:c=\nb.child.stateNode;break;case 1:c=b.child.stateNode}sh(b,g,c)}break;case 5:var h=b.stateNode;if(null===c&&b.flags&4){c=h;var k=b.memoizedProps;switch(b.type){case \"button\":case \"input\":case \"select\":case \"textarea\":k.autoFocus&&c.focus();break;case \"img\":k.src&&(c.src=k.src)}}break;case 6:break;case 4:break;case 12:break;case 13:if(null===b.memoizedState){var l=b.alternate;if(null!==l){var m=l.memoizedState;if(null!==m){var q=m.dehydrated;null!==q&&bd(q)}}}break;case 19:case 17:case 21:case 22:case 23:case 25:break;\ndefault:throw Error(p(163));}U||b.flags&512&&Rj(b)}catch(r){W(b,b.return,r)}}if(b===a){V=null;break}c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}function gk(a){for(;null!==V;){var b=V;if(b===a){V=null;break}var c=b.sibling;if(null!==c){c.return=b.return;V=c;break}V=b.return}}\nfunction jk(a){for(;null!==V;){var b=V;try{switch(b.tag){case 0:case 11:case 15:var c=b.return;try{Qj(4,b)}catch(k){W(b,c,k)}break;case 1:var d=b.stateNode;if(\"function\"===typeof d.componentDidMount){var e=b.return;try{d.componentDidMount()}catch(k){W(b,e,k)}}var f=b.return;try{Rj(b)}catch(k){W(b,f,k)}break;case 5:var g=b.return;try{Rj(b)}catch(k){W(b,g,k)}}}catch(k){W(b,b.return,k)}if(b===a){V=null;break}var h=b.sibling;if(null!==h){h.return=b.return;V=h;break}V=b.return}}\nvar lk=Math.ceil,mk=ua.ReactCurrentDispatcher,nk=ua.ReactCurrentOwner,ok=ua.ReactCurrentBatchConfig,K=0,Q=null,Y=null,Z=0,fj=0,ej=Uf(0),T=0,pk=null,rh=0,qk=0,rk=0,sk=null,tk=null,fk=0,Gj=Infinity,uk=null,Oi=!1,Pi=null,Ri=null,vk=!1,wk=null,xk=0,yk=0,zk=null,Ak=-1,Bk=0;function R(){return 0!==(K&6)?B():-1!==Ak?Ak:Ak=B()}\nfunction yi(a){if(0===(a.mode&1))return 1;if(0!==(K&2)&&0!==Z)return Z&-Z;if(null!==Kg.transition)return 0===Bk&&(Bk=yc()),Bk;a=C;if(0!==a)return a;a=window.event;a=void 0===a?16:jd(a.type);return a}function gi(a,b,c,d){if(50<yk)throw yk=0,zk=null,Error(p(185));Ac(a,c,d);if(0===(K&2)||a!==Q)a===Q&&(0===(K&2)&&(qk|=c),4===T&&Ck(a,Z)),Dk(a,d),1===c&&0===K&&0===(b.mode&1)&&(Gj=B()+500,fg&&jg())}\nfunction Dk(a,b){var c=a.callbackNode;wc(a,b);var d=uc(a,a===Q?Z:0);if(0===d)null!==c&&bc(c),a.callbackNode=null,a.callbackPriority=0;else if(b=d&-d,a.callbackPriority!==b){null!=c&&bc(c);if(1===b)0===a.tag?ig(Ek.bind(null,a)):hg(Ek.bind(null,a)),Jf(function(){0===(K&6)&&jg()}),c=null;else{switch(Dc(d)){case 1:c=fc;break;case 4:c=gc;break;case 16:c=hc;break;case 536870912:c=jc;break;default:c=hc}c=Fk(c,Gk.bind(null,a))}a.callbackPriority=b;a.callbackNode=c}}\nfunction Gk(a,b){Ak=-1;Bk=0;if(0!==(K&6))throw Error(p(327));var c=a.callbackNode;if(Hk()&&a.callbackNode!==c)return null;var d=uc(a,a===Q?Z:0);if(0===d)return null;if(0!==(d&30)||0!==(d&a.expiredLanes)||b)b=Ik(a,d);else{b=d;var e=K;K|=2;var f=Jk();if(Q!==a||Z!==b)uk=null,Gj=B()+500,Kk(a,b);do try{Lk();break}catch(h){Mk(a,h)}while(1);$g();mk.current=f;K=e;null!==Y?b=0:(Q=null,Z=0,b=T)}if(0!==b){2===b&&(e=xc(a),0!==e&&(d=e,b=Nk(a,e)));if(1===b)throw c=pk,Kk(a,0),Ck(a,d),Dk(a,B()),c;if(6===b)Ck(a,d);\nelse{e=a.current.alternate;if(0===(d&30)&&!Ok(e)&&(b=Ik(a,d),2===b&&(f=xc(a),0!==f&&(d=f,b=Nk(a,f))),1===b))throw c=pk,Kk(a,0),Ck(a,d),Dk(a,B()),c;a.finishedWork=e;a.finishedLanes=d;switch(b){case 0:case 1:throw Error(p(345));case 2:Pk(a,tk,uk);break;case 3:Ck(a,d);if((d&130023424)===d&&(b=fk+500-B(),10<b)){if(0!==uc(a,0))break;e=a.suspendedLanes;if((e&d)!==d){R();a.pingedLanes|=a.suspendedLanes&e;break}a.timeoutHandle=Ff(Pk.bind(null,a,tk,uk),b);break}Pk(a,tk,uk);break;case 4:Ck(a,d);if((d&4194240)===\nd)break;b=a.eventTimes;for(e=-1;0<d;){var g=31-oc(d);f=1<<g;g=b[g];g>e&&(e=g);d&=~f}d=e;d=B()-d;d=(120>d?120:480>d?480:1080>d?1080:1920>d?1920:3E3>d?3E3:4320>d?4320:1960*lk(d/1960))-d;if(10<d){a.timeoutHandle=Ff(Pk.bind(null,a,tk,uk),d);break}Pk(a,tk,uk);break;case 5:Pk(a,tk,uk);break;default:throw Error(p(329));}}}Dk(a,B());return a.callbackNode===c?Gk.bind(null,a):null}\nfunction Nk(a,b){var c=sk;a.current.memoizedState.isDehydrated&&(Kk(a,b).flags|=256);a=Ik(a,b);2!==a&&(b=tk,tk=c,null!==b&&Fj(b));return a}function Fj(a){null===tk?tk=a:tk.push.apply(tk,a)}\nfunction Ok(a){for(var b=a;;){if(b.flags&16384){var c=b.updateQueue;if(null!==c&&(c=c.stores,null!==c))for(var d=0;d<c.length;d++){var e=c[d],f=e.getSnapshot;e=e.value;try{if(!He(f(),e))return!1}catch(g){return!1}}}c=b.child;if(b.subtreeFlags&16384&&null!==c)c.return=b,b=c;else{if(b===a)break;for(;null===b.sibling;){if(null===b.return||b.return===a)return!0;b=b.return}b.sibling.return=b.return;b=b.sibling}}return!0}\nfunction Ck(a,b){b&=~rk;b&=~qk;a.suspendedLanes|=b;a.pingedLanes&=~b;for(a=a.expirationTimes;0<b;){var c=31-oc(b),d=1<<c;a[c]=-1;b&=~d}}function Ek(a){if(0!==(K&6))throw Error(p(327));Hk();var b=uc(a,0);if(0===(b&1))return Dk(a,B()),null;var c=Ik(a,b);if(0!==a.tag&&2===c){var d=xc(a);0!==d&&(b=d,c=Nk(a,d))}if(1===c)throw c=pk,Kk(a,0),Ck(a,b),Dk(a,B()),c;if(6===c)throw Error(p(345));a.finishedWork=a.current.alternate;a.finishedLanes=b;Pk(a,tk,uk);Dk(a,B());return null}\nfunction Qk(a,b){var c=K;K|=1;try{return a(b)}finally{K=c,0===K&&(Gj=B()+500,fg&&jg())}}function Rk(a){null!==wk&&0===wk.tag&&0===(K&6)&&Hk();var b=K;K|=1;var c=ok.transition,d=C;try{if(ok.transition=null,C=1,a)return a()}finally{C=d,ok.transition=c,K=b,0===(K&6)&&jg()}}function Hj(){fj=ej.current;E(ej)}\nfunction Kk(a,b){a.finishedWork=null;a.finishedLanes=0;var c=a.timeoutHandle;-1!==c&&(a.timeoutHandle=-1,Gf(c));if(null!==Y)for(c=Y.return;null!==c;){var d=c;wg(d);switch(d.tag){case 1:d=d.type.childContextTypes;null!==d&&void 0!==d&&$f();break;case 3:zh();E(Wf);E(H);Eh();break;case 5:Bh(d);break;case 4:zh();break;case 13:E(L);break;case 19:E(L);break;case 10:ah(d.type._context);break;case 22:case 23:Hj()}c=c.return}Q=a;Y=a=Pg(a.current,null);Z=fj=b;T=0;pk=null;rk=qk=rh=0;tk=sk=null;if(null!==fh){for(b=\n0;b<fh.length;b++)if(c=fh[b],d=c.interleaved,null!==d){c.interleaved=null;var e=d.next,f=c.pending;if(null!==f){var g=f.next;f.next=e;d.next=g}c.pending=d}fh=null}return a}\nfunction Mk(a,b){do{var c=Y;try{$g();Fh.current=Rh;if(Ih){for(var d=M.memoizedState;null!==d;){var e=d.queue;null!==e&&(e.pending=null);d=d.next}Ih=!1}Hh=0;O=N=M=null;Jh=!1;Kh=0;nk.current=null;if(null===c||null===c.return){T=1;pk=b;Y=null;break}a:{var f=a,g=c.return,h=c,k=b;b=Z;h.flags|=32768;if(null!==k&&\"object\"===typeof k&&\"function\"===typeof k.then){var l=k,m=h,q=m.tag;if(0===(m.mode&1)&&(0===q||11===q||15===q)){var r=m.alternate;r?(m.updateQueue=r.updateQueue,m.memoizedState=r.memoizedState,\nm.lanes=r.lanes):(m.updateQueue=null,m.memoizedState=null)}var y=Ui(g);if(null!==y){y.flags&=-257;Vi(y,g,h,f,b);y.mode&1&&Si(f,l,b);b=y;k=l;var n=b.updateQueue;if(null===n){var t=new Set;t.add(k);b.updateQueue=t}else n.add(k);break a}else{if(0===(b&1)){Si(f,l,b);tj();break a}k=Error(p(426))}}else if(I&&h.mode&1){var J=Ui(g);if(null!==J){0===(J.flags&65536)&&(J.flags|=256);Vi(J,g,h,f,b);Jg(Ji(k,h));break a}}f=k=Ji(k,h);4!==T&&(T=2);null===sk?sk=[f]:sk.push(f);f=g;do{switch(f.tag){case 3:f.flags|=65536;\nb&=-b;f.lanes|=b;var x=Ni(f,k,b);ph(f,x);break a;case 1:h=k;var w=f.type,u=f.stateNode;if(0===(f.flags&128)&&(\"function\"===typeof w.getDerivedStateFromError||null!==u&&\"function\"===typeof u.componentDidCatch&&(null===Ri||!Ri.has(u)))){f.flags|=65536;b&=-b;f.lanes|=b;var F=Qi(f,h,b);ph(f,F);break a}}f=f.return}while(null!==f)}Sk(c)}catch(na){b=na;Y===c&&null!==c&&(Y=c=c.return);continue}break}while(1)}function Jk(){var a=mk.current;mk.current=Rh;return null===a?Rh:a}\nfunction tj(){if(0===T||3===T||2===T)T=4;null===Q||0===(rh&268435455)&&0===(qk&268435455)||Ck(Q,Z)}function Ik(a,b){var c=K;K|=2;var d=Jk();if(Q!==a||Z!==b)uk=null,Kk(a,b);do try{Tk();break}catch(e){Mk(a,e)}while(1);$g();K=c;mk.current=d;if(null!==Y)throw Error(p(261));Q=null;Z=0;return T}function Tk(){for(;null!==Y;)Uk(Y)}function Lk(){for(;null!==Y&&!cc();)Uk(Y)}function Uk(a){var b=Vk(a.alternate,a,fj);a.memoizedProps=a.pendingProps;null===b?Sk(a):Y=b;nk.current=null}\nfunction Sk(a){var b=a;do{var c=b.alternate;a=b.return;if(0===(b.flags&32768)){if(c=Ej(c,b,fj),null!==c){Y=c;return}}else{c=Ij(c,b);if(null!==c){c.flags&=32767;Y=c;return}if(null!==a)a.flags|=32768,a.subtreeFlags=0,a.deletions=null;else{T=6;Y=null;return}}b=b.sibling;if(null!==b){Y=b;return}Y=b=a}while(null!==b);0===T&&(T=5)}function Pk(a,b,c){var d=C,e=ok.transition;try{ok.transition=null,C=1,Wk(a,b,c,d)}finally{ok.transition=e,C=d}return null}\nfunction Wk(a,b,c,d){do Hk();while(null!==wk);if(0!==(K&6))throw Error(p(327));c=a.finishedWork;var e=a.finishedLanes;if(null===c)return null;a.finishedWork=null;a.finishedLanes=0;if(c===a.current)throw Error(p(177));a.callbackNode=null;a.callbackPriority=0;var f=c.lanes|c.childLanes;Bc(a,f);a===Q&&(Y=Q=null,Z=0);0===(c.subtreeFlags&2064)&&0===(c.flags&2064)||vk||(vk=!0,Fk(hc,function(){Hk();return null}));f=0!==(c.flags&15990);if(0!==(c.subtreeFlags&15990)||f){f=ok.transition;ok.transition=null;\nvar g=C;C=1;var h=K;K|=4;nk.current=null;Oj(a,c);dk(c,a);Oe(Df);dd=!!Cf;Df=Cf=null;a.current=c;hk(c,a,e);dc();K=h;C=g;ok.transition=f}else a.current=c;vk&&(vk=!1,wk=a,xk=e);f=a.pendingLanes;0===f&&(Ri=null);mc(c.stateNode,d);Dk(a,B());if(null!==b)for(d=a.onRecoverableError,c=0;c<b.length;c++)e=b[c],d(e.value,{componentStack:e.stack,digest:e.digest});if(Oi)throw Oi=!1,a=Pi,Pi=null,a;0!==(xk&1)&&0!==a.tag&&Hk();f=a.pendingLanes;0!==(f&1)?a===zk?yk++:(yk=0,zk=a):yk=0;jg();return null}\nfunction Hk(){if(null!==wk){var a=Dc(xk),b=ok.transition,c=C;try{ok.transition=null;C=16>a?16:a;if(null===wk)var d=!1;else{a=wk;wk=null;xk=0;if(0!==(K&6))throw Error(p(331));var e=K;K|=4;for(V=a.current;null!==V;){var f=V,g=f.child;if(0!==(V.flags&16)){var h=f.deletions;if(null!==h){for(var k=0;k<h.length;k++){var l=h[k];for(V=l;null!==V;){var m=V;switch(m.tag){case 0:case 11:case 15:Pj(8,m,f)}var q=m.child;if(null!==q)q.return=m,V=q;else for(;null!==V;){m=V;var r=m.sibling,y=m.return;Sj(m);if(m===\nl){V=null;break}if(null!==r){r.return=y;V=r;break}V=y}}}var n=f.alternate;if(null!==n){var t=n.child;if(null!==t){n.child=null;do{var J=t.sibling;t.sibling=null;t=J}while(null!==t)}}V=f}}if(0!==(f.subtreeFlags&2064)&&null!==g)g.return=f,V=g;else b:for(;null!==V;){f=V;if(0!==(f.flags&2048))switch(f.tag){case 0:case 11:case 15:Pj(9,f,f.return)}var x=f.sibling;if(null!==x){x.return=f.return;V=x;break b}V=f.return}}var w=a.current;for(V=w;null!==V;){g=V;var u=g.child;if(0!==(g.subtreeFlags&2064)&&null!==\nu)u.return=g,V=u;else b:for(g=w;null!==V;){h=V;if(0!==(h.flags&2048))try{switch(h.tag){case 0:case 11:case 15:Qj(9,h)}}catch(na){W(h,h.return,na)}if(h===g){V=null;break b}var F=h.sibling;if(null!==F){F.return=h.return;V=F;break b}V=h.return}}K=e;jg();if(lc&&\"function\"===typeof lc.onPostCommitFiberRoot)try{lc.onPostCommitFiberRoot(kc,a)}catch(na){}d=!0}return d}finally{C=c,ok.transition=b}}return!1}function Xk(a,b,c){b=Ji(c,b);b=Ni(a,b,1);a=nh(a,b,1);b=R();null!==a&&(Ac(a,1,b),Dk(a,b))}\nfunction W(a,b,c){if(3===a.tag)Xk(a,a,c);else for(;null!==b;){if(3===b.tag){Xk(b,a,c);break}else if(1===b.tag){var d=b.stateNode;if(\"function\"===typeof b.type.getDerivedStateFromError||\"function\"===typeof d.componentDidCatch&&(null===Ri||!Ri.has(d))){a=Ji(c,a);a=Qi(b,a,1);b=nh(b,a,1);a=R();null!==b&&(Ac(b,1,a),Dk(b,a));break}}b=b.return}}\nfunction Ti(a,b,c){var d=a.pingCache;null!==d&&d.delete(b);b=R();a.pingedLanes|=a.suspendedLanes&c;Q===a&&(Z&c)===c&&(4===T||3===T&&(Z&130023424)===Z&&500>B()-fk?Kk(a,0):rk|=c);Dk(a,b)}function Yk(a,b){0===b&&(0===(a.mode&1)?b=1:(b=sc,sc<<=1,0===(sc&130023424)&&(sc=4194304)));var c=R();a=ih(a,b);null!==a&&(Ac(a,b,c),Dk(a,c))}function uj(a){var b=a.memoizedState,c=0;null!==b&&(c=b.retryLane);Yk(a,c)}\nfunction bk(a,b){var c=0;switch(a.tag){case 13:var d=a.stateNode;var e=a.memoizedState;null!==e&&(c=e.retryLane);break;case 19:d=a.stateNode;break;default:throw Error(p(314));}null!==d&&d.delete(b);Yk(a,c)}var Vk;\nVk=function(a,b,c){if(null!==a)if(a.memoizedProps!==b.pendingProps||Wf.current)dh=!0;else{if(0===(a.lanes&c)&&0===(b.flags&128))return dh=!1,yj(a,b,c);dh=0!==(a.flags&131072)?!0:!1}else dh=!1,I&&0!==(b.flags&1048576)&&ug(b,ng,b.index);b.lanes=0;switch(b.tag){case 2:var d=b.type;ij(a,b);a=b.pendingProps;var e=Yf(b,H.current);ch(b,c);e=Nh(null,b,d,a,e,c);var f=Sh();b.flags|=1;\"object\"===typeof e&&null!==e&&\"function\"===typeof e.render&&void 0===e.$$typeof?(b.tag=1,b.memoizedState=null,b.updateQueue=\nnull,Zf(d)?(f=!0,cg(b)):f=!1,b.memoizedState=null!==e.state&&void 0!==e.state?e.state:null,kh(b),e.updater=Ei,b.stateNode=e,e._reactInternals=b,Ii(b,d,a,c),b=jj(null,b,d,!0,f,c)):(b.tag=0,I&&f&&vg(b),Xi(null,b,e,c),b=b.child);return b;case 16:d=b.elementType;a:{ij(a,b);a=b.pendingProps;e=d._init;d=e(d._payload);b.type=d;e=b.tag=Zk(d);a=Ci(d,a);switch(e){case 0:b=cj(null,b,d,a,c);break a;case 1:b=hj(null,b,d,a,c);break a;case 11:b=Yi(null,b,d,a,c);break a;case 14:b=$i(null,b,d,Ci(d.type,a),c);break a}throw Error(p(306,\nd,\"\"));}return b;case 0:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),cj(a,b,d,e,c);case 1:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),hj(a,b,d,e,c);case 3:a:{kj(b);if(null===a)throw Error(p(387));d=b.pendingProps;f=b.memoizedState;e=f.element;lh(a,b);qh(b,d,null,c);var g=b.memoizedState;d=g.element;if(f.isDehydrated)if(f={element:d,isDehydrated:!1,cache:g.cache,pendingSuspenseBoundaries:g.pendingSuspenseBoundaries,transitions:g.transitions},b.updateQueue.baseState=\nf,b.memoizedState=f,b.flags&256){e=Ji(Error(p(423)),b);b=lj(a,b,d,c,e);break a}else if(d!==e){e=Ji(Error(p(424)),b);b=lj(a,b,d,c,e);break a}else for(yg=Lf(b.stateNode.containerInfo.firstChild),xg=b,I=!0,zg=null,c=Vg(b,null,d,c),b.child=c;c;)c.flags=c.flags&-3|4096,c=c.sibling;else{Ig();if(d===e){b=Zi(a,b,c);break a}Xi(a,b,d,c)}b=b.child}return b;case 5:return Ah(b),null===a&&Eg(b),d=b.type,e=b.pendingProps,f=null!==a?a.memoizedProps:null,g=e.children,Ef(d,e)?g=null:null!==f&&Ef(d,f)&&(b.flags|=32),\ngj(a,b),Xi(a,b,g,c),b.child;case 6:return null===a&&Eg(b),null;case 13:return oj(a,b,c);case 4:return yh(b,b.stateNode.containerInfo),d=b.pendingProps,null===a?b.child=Ug(b,null,d,c):Xi(a,b,d,c),b.child;case 11:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),Yi(a,b,d,e,c);case 7:return Xi(a,b,b.pendingProps,c),b.child;case 8:return Xi(a,b,b.pendingProps.children,c),b.child;case 12:return Xi(a,b,b.pendingProps.children,c),b.child;case 10:a:{d=b.type._context;e=b.pendingProps;f=b.memoizedProps;\ng=e.value;G(Wg,d._currentValue);d._currentValue=g;if(null!==f)if(He(f.value,g)){if(f.children===e.children&&!Wf.current){b=Zi(a,b,c);break a}}else for(f=b.child,null!==f&&(f.return=b);null!==f;){var h=f.dependencies;if(null!==h){g=f.child;for(var k=h.firstContext;null!==k;){if(k.context===d){if(1===f.tag){k=mh(-1,c&-c);k.tag=2;var l=f.updateQueue;if(null!==l){l=l.shared;var m=l.pending;null===m?k.next=k:(k.next=m.next,m.next=k);l.pending=k}}f.lanes|=c;k=f.alternate;null!==k&&(k.lanes|=c);bh(f.return,\nc,b);h.lanes|=c;break}k=k.next}}else if(10===f.tag)g=f.type===b.type?null:f.child;else if(18===f.tag){g=f.return;if(null===g)throw Error(p(341));g.lanes|=c;h=g.alternate;null!==h&&(h.lanes|=c);bh(g,c,b);g=f.sibling}else g=f.child;if(null!==g)g.return=f;else for(g=f;null!==g;){if(g===b){g=null;break}f=g.sibling;if(null!==f){f.return=g.return;g=f;break}g=g.return}f=g}Xi(a,b,e.children,c);b=b.child}return b;case 9:return e=b.type,d=b.pendingProps.children,ch(b,c),e=eh(e),d=d(e),b.flags|=1,Xi(a,b,d,c),\nb.child;case 14:return d=b.type,e=Ci(d,b.pendingProps),e=Ci(d.type,e),$i(a,b,d,e,c);case 15:return bj(a,b,b.type,b.pendingProps,c);case 17:return d=b.type,e=b.pendingProps,e=b.elementType===d?e:Ci(d,e),ij(a,b),b.tag=1,Zf(d)?(a=!0,cg(b)):a=!1,ch(b,c),Gi(b,d,e),Ii(b,d,e,c),jj(null,b,d,!0,a,c);case 19:return xj(a,b,c);case 22:return dj(a,b,c)}throw Error(p(156,b.tag));};function Fk(a,b){return ac(a,b)}\nfunction $k(a,b,c,d){this.tag=a;this.key=c;this.sibling=this.child=this.return=this.stateNode=this.type=this.elementType=null;this.index=0;this.ref=null;this.pendingProps=b;this.dependencies=this.memoizedState=this.updateQueue=this.memoizedProps=null;this.mode=d;this.subtreeFlags=this.flags=0;this.deletions=null;this.childLanes=this.lanes=0;this.alternate=null}function Bg(a,b,c,d){return new $k(a,b,c,d)}function aj(a){a=a.prototype;return!(!a||!a.isReactComponent)}\nfunction Zk(a){if(\"function\"===typeof a)return aj(a)?1:0;if(void 0!==a&&null!==a){a=a.$$typeof;if(a===Da)return 11;if(a===Ga)return 14}return 2}\nfunction Pg(a,b){var c=a.alternate;null===c?(c=Bg(a.tag,b,a.key,a.mode),c.elementType=a.elementType,c.type=a.type,c.stateNode=a.stateNode,c.alternate=a,a.alternate=c):(c.pendingProps=b,c.type=a.type,c.flags=0,c.subtreeFlags=0,c.deletions=null);c.flags=a.flags&14680064;c.childLanes=a.childLanes;c.lanes=a.lanes;c.child=a.child;c.memoizedProps=a.memoizedProps;c.memoizedState=a.memoizedState;c.updateQueue=a.updateQueue;b=a.dependencies;c.dependencies=null===b?null:{lanes:b.lanes,firstContext:b.firstContext};\nc.sibling=a.sibling;c.index=a.index;c.ref=a.ref;return c}\nfunction Rg(a,b,c,d,e,f){var g=2;d=a;if(\"function\"===typeof a)aj(a)&&(g=1);else if(\"string\"===typeof a)g=5;else a:switch(a){case ya:return Tg(c.children,e,f,b);case za:g=8;e|=8;break;case Aa:return a=Bg(12,c,b,e|2),a.elementType=Aa,a.lanes=f,a;case Ea:return a=Bg(13,c,b,e),a.elementType=Ea,a.lanes=f,a;case Fa:return a=Bg(19,c,b,e),a.elementType=Fa,a.lanes=f,a;case Ia:return pj(c,e,f,b);default:if(\"object\"===typeof a&&null!==a)switch(a.$$typeof){case Ba:g=10;break a;case Ca:g=9;break a;case Da:g=11;\nbreak a;case Ga:g=14;break a;case Ha:g=16;d=null;break a}throw Error(p(130,null==a?a:typeof a,\"\"));}b=Bg(g,c,b,e);b.elementType=a;b.type=d;b.lanes=f;return b}function Tg(a,b,c,d){a=Bg(7,a,d,b);a.lanes=c;return a}function pj(a,b,c,d){a=Bg(22,a,d,b);a.elementType=Ia;a.lanes=c;a.stateNode={isHidden:!1};return a}function Qg(a,b,c){a=Bg(6,a,null,b);a.lanes=c;return a}\nfunction Sg(a,b,c){b=Bg(4,null!==a.children?a.children:[],a.key,b);b.lanes=c;b.stateNode={containerInfo:a.containerInfo,pendingChildren:null,implementation:a.implementation};return b}\nfunction al(a,b,c,d,e){this.tag=b;this.containerInfo=a;this.finishedWork=this.pingCache=this.current=this.pendingChildren=null;this.timeoutHandle=-1;this.callbackNode=this.pendingContext=this.context=null;this.callbackPriority=0;this.eventTimes=zc(0);this.expirationTimes=zc(-1);this.entangledLanes=this.finishedLanes=this.mutableReadLanes=this.expiredLanes=this.pingedLanes=this.suspendedLanes=this.pendingLanes=0;this.entanglements=zc(0);this.identifierPrefix=d;this.onRecoverableError=e;this.mutableSourceEagerHydrationData=\nnull}function bl(a,b,c,d,e,f,g,h,k){a=new al(a,b,c,h,k);1===b?(b=1,!0===f&&(b|=8)):b=0;f=Bg(3,null,null,b);a.current=f;f.stateNode=a;f.memoizedState={element:d,isDehydrated:c,cache:null,transitions:null,pendingSuspenseBoundaries:null};kh(f);return a}function cl(a,b,c){var d=3<arguments.length&&void 0!==arguments[3]?arguments[3]:null;return{$$typeof:wa,key:null==d?null:\"\"+d,children:a,containerInfo:b,implementation:c}}\nfunction dl(a){if(!a)return Vf;a=a._reactInternals;a:{if(Vb(a)!==a||1!==a.tag)throw Error(p(170));var b=a;do{switch(b.tag){case 3:b=b.stateNode.context;break a;case 1:if(Zf(b.type)){b=b.stateNode.__reactInternalMemoizedMergedChildContext;break a}}b=b.return}while(null!==b);throw Error(p(171));}if(1===a.tag){var c=a.type;if(Zf(c))return bg(a,c,b)}return b}\nfunction el(a,b,c,d,e,f,g,h,k){a=bl(c,d,!0,a,e,f,g,h,k);a.context=dl(null);c=a.current;d=R();e=yi(c);f=mh(d,e);f.callback=void 0!==b&&null!==b?b:null;nh(c,f,e);a.current.lanes=e;Ac(a,e,d);Dk(a,d);return a}function fl(a,b,c,d){var e=b.current,f=R(),g=yi(e);c=dl(c);null===b.context?b.context=c:b.pendingContext=c;b=mh(f,g);b.payload={element:a};d=void 0===d?null:d;null!==d&&(b.callback=d);a=nh(e,b,g);null!==a&&(gi(a,e,g,f),oh(a,e,g));return g}\nfunction gl(a){a=a.current;if(!a.child)return null;switch(a.child.tag){case 5:return a.child.stateNode;default:return a.child.stateNode}}function hl(a,b){a=a.memoizedState;if(null!==a&&null!==a.dehydrated){var c=a.retryLane;a.retryLane=0!==c&&c<b?c:b}}function il(a,b){hl(a,b);(a=a.alternate)&&hl(a,b)}function jl(){return null}var kl=\"function\"===typeof reportError?reportError:function(a){console.error(a)};function ll(a){this._internalRoot=a}\nml.prototype.render=ll.prototype.render=function(a){var b=this._internalRoot;if(null===b)throw Error(p(409));fl(a,b,null,null)};ml.prototype.unmount=ll.prototype.unmount=function(){var a=this._internalRoot;if(null!==a){this._internalRoot=null;var b=a.containerInfo;Rk(function(){fl(null,a,null,null)});b[uf]=null}};function ml(a){this._internalRoot=a}\nml.prototype.unstable_scheduleHydration=function(a){if(a){var b=Hc();a={blockedOn:null,target:a,priority:b};for(var c=0;c<Qc.length&&0!==b&&b<Qc[c].priority;c++);Qc.splice(c,0,a);0===c&&Vc(a)}};function nl(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType)}function ol(a){return!(!a||1!==a.nodeType&&9!==a.nodeType&&11!==a.nodeType&&(8!==a.nodeType||\" react-mount-point-unstable \"!==a.nodeValue))}function pl(){}\nfunction ql(a,b,c,d,e){if(e){if(\"function\"===typeof d){var f=d;d=function(){var a=gl(g);f.call(a)}}var g=el(b,d,a,0,null,!1,!1,\"\",pl);a._reactRootContainer=g;a[uf]=g.current;sf(8===a.nodeType?a.parentNode:a);Rk();return g}for(;e=a.lastChild;)a.removeChild(e);if(\"function\"===typeof d){var h=d;d=function(){var a=gl(k);h.call(a)}}var k=bl(a,0,!1,null,null,!1,!1,\"\",pl);a._reactRootContainer=k;a[uf]=k.current;sf(8===a.nodeType?a.parentNode:a);Rk(function(){fl(b,k,c,d)});return k}\nfunction rl(a,b,c,d,e){var f=c._reactRootContainer;if(f){var g=f;if(\"function\"===typeof e){var h=e;e=function(){var a=gl(g);h.call(a)}}fl(b,g,a,e)}else g=ql(c,b,a,e,d);return gl(g)}Ec=function(a){switch(a.tag){case 3:var b=a.stateNode;if(b.current.memoizedState.isDehydrated){var c=tc(b.pendingLanes);0!==c&&(Cc(b,c|1),Dk(b,B()),0===(K&6)&&(Gj=B()+500,jg()))}break;case 13:Rk(function(){var b=ih(a,1);if(null!==b){var c=R();gi(b,a,1,c)}}),il(a,1)}};\nFc=function(a){if(13===a.tag){var b=ih(a,134217728);if(null!==b){var c=R();gi(b,a,134217728,c)}il(a,134217728)}};Gc=function(a){if(13===a.tag){var b=yi(a),c=ih(a,b);if(null!==c){var d=R();gi(c,a,b,d)}il(a,b)}};Hc=function(){return C};Ic=function(a,b){var c=C;try{return C=a,b()}finally{C=c}};\nyb=function(a,b,c){switch(b){case \"input\":bb(a,c);b=c.name;if(\"radio\"===c.type&&null!=b){for(c=a;c.parentNode;)c=c.parentNode;c=c.querySelectorAll(\"input[name=\"+JSON.stringify(\"\"+b)+'][type=\"radio\"]');for(b=0;b<c.length;b++){var d=c[b];if(d!==a&&d.form===a.form){var e=Db(d);if(!e)throw Error(p(90));Wa(d);bb(d,e)}}}break;case \"textarea\":ib(a,c);break;case \"select\":b=c.value,null!=b&&fb(a,!!c.multiple,b,!1)}};Gb=Qk;Hb=Rk;\nvar sl={usingClientEntryPoint:!1,Events:[Cb,ue,Db,Eb,Fb,Qk]},tl={findFiberByHostInstance:Wc,bundleType:0,version:\"18.3.1\",rendererPackageName:\"react-dom\"};\nvar ul={bundleType:tl.bundleType,version:tl.version,rendererPackageName:tl.rendererPackageName,rendererConfig:tl.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setErrorHandler:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:ua.ReactCurrentDispatcher,findHostInstanceByFiber:function(a){a=Zb(a);return null===a?null:a.stateNode},findFiberByHostInstance:tl.findFiberByHostInstance||\njl,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null,reconcilerVersion:\"18.3.1-next-f1338f8080-20240426\"};if(\"undefined\"!==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__){var vl=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!vl.isDisabled&&vl.supportsFiber)try{kc=vl.inject(ul),lc=vl}catch(a){}}exports.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED=sl;\nexports.createPortal=function(a,b){var c=2<arguments.length&&void 0!==arguments[2]?arguments[2]:null;if(!nl(b))throw Error(p(200));return cl(a,b,null,c)};exports.createRoot=function(a,b){if(!nl(a))throw Error(p(299));var c=!1,d=\"\",e=kl;null!==b&&void 0!==b&&(!0===b.unstable_strictMode&&(c=!0),void 0!==b.identifierPrefix&&(d=b.identifierPrefix),void 0!==b.onRecoverableError&&(e=b.onRecoverableError));b=bl(a,1,!1,null,null,c,!1,d,e);a[uf]=b.current;sf(8===a.nodeType?a.parentNode:a);return new ll(b)};\nexports.findDOMNode=function(a){if(null==a)return null;if(1===a.nodeType)return a;var b=a._reactInternals;if(void 0===b){if(\"function\"===typeof a.render)throw Error(p(188));a=Object.keys(a).join(\",\");throw Error(p(268,a));}a=Zb(b);a=null===a?null:a.stateNode;return a};exports.flushSync=function(a){return Rk(a)};exports.hydrate=function(a,b,c){if(!ol(b))throw Error(p(200));return rl(null,a,b,!0,c)};\nexports.hydrateRoot=function(a,b,c){if(!nl(a))throw Error(p(405));var d=null!=c&&c.hydratedSources||null,e=!1,f=\"\",g=kl;null!==c&&void 0!==c&&(!0===c.unstable_strictMode&&(e=!0),void 0!==c.identifierPrefix&&(f=c.identifierPrefix),void 0!==c.onRecoverableError&&(g=c.onRecoverableError));b=el(b,null,a,1,null!=c?c:null,e,!1,f,g);a[uf]=b.current;sf(a);if(d)for(a=0;a<d.length;a++)c=d[a],e=c._getVersion,e=e(c._source),null==b.mutableSourceEagerHydrationData?b.mutableSourceEagerHydrationData=[c,e]:b.mutableSourceEagerHydrationData.push(c,\ne);return new ml(b)};exports.render=function(a,b,c){if(!ol(b))throw Error(p(200));return rl(null,a,b,!1,c)};exports.unmountComponentAtNode=function(a){if(!ol(a))throw Error(p(40));return a._reactRootContainer?(Rk(function(){rl(null,null,a,!1,function(){a._reactRootContainer=null;a[uf]=null})}),!0):!1};exports.unstable_batchedUpdates=Qk;\nexports.unstable_renderSubtreeIntoContainer=function(a,b,c,d){if(!ol(c))throw Error(p(200));if(null==a||void 0===a._reactInternals)throw Error(p(38));return rl(a,b,c,!1,d)};exports.version=\"18.3.1-next-f1338f8080-20240426\";\n","'use strict';\n\nfunction checkDCE() {\n /* global __REACT_DEVTOOLS_GLOBAL_HOOK__ */\n if (\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__ === 'undefined' ||\n typeof __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE !== 'function'\n ) {\n return;\n }\n if (process.env.NODE_ENV !== 'production') {\n // This branch is unreachable because this function is only called\n // in production, but the condition is true only in development.\n // Therefore if the branch is still here, dead code elimination wasn't\n // properly applied.\n // Don't change the message. React DevTools relies on it. Also make sure\n // this message doesn't occur elsewhere in this function, or it will cause\n // a false positive.\n throw new Error('^_^');\n }\n try {\n // Verify that the code above has been dead code eliminated (DCE'd).\n __REACT_DEVTOOLS_GLOBAL_HOOK__.checkDCE(checkDCE);\n } catch (err) {\n // DevTools shouldn't crash React, no matter what.\n // We should still report in case we break this code.\n console.error(err);\n }\n}\n\nif (process.env.NODE_ENV === 'production') {\n // DCE check should happen before ReactDOM bundle executes so that\n // DevTools can report bad minification during injection.\n checkDCE();\n module.exports = require('./cjs/react-dom.production.min.js');\n} else {\n module.exports = require('./cjs/react-dom.development.js');\n}\n","'use strict';\n\nvar m = require('react-dom');\nif (process.env.NODE_ENV === 'production') {\n exports.createRoot = m.createRoot;\n exports.hydrateRoot = m.hydrateRoot;\n} else {\n var i = m.__SECRET_INTERNALS_DO_NOT_USE_OR_YOU_WILL_BE_FIRED;\n exports.createRoot = function(c, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.createRoot(c, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n exports.hydrateRoot = function(c, h, o) {\n i.usingClientEntryPoint = true;\n try {\n return m.hydrateRoot(c, h, o);\n } finally {\n i.usingClientEntryPoint = false;\n }\n };\n}\n","/******************************************************************************\nCopyright (c) Microsoft Corporation.\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH\nREGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY\nAND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,\nINDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM\nLOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR\nOTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR\nPERFORMANCE OF THIS SOFTWARE.\n***************************************************************************** */\n/* global Reflect, Promise, SuppressedError, Symbol */\n\nvar extendStatics = function(d, b) {\n extendStatics = Object.setPrototypeOf ||\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\n function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };\n return extendStatics(d, b);\n};\n\nexport function __extends(d, b) {\n if (typeof b !== \"function\" && b !== null)\n throw new TypeError(\"Class extends value \" + String(b) + \" is not a constructor or null\");\n extendStatics(d, b);\n function __() { this.constructor = d; }\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\n}\n\nexport var __assign = function() {\n __assign = Object.assign || function __assign(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\n }\n return t;\n }\n return __assign.apply(this, arguments);\n}\n\nexport function __rest(s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n}\n\nexport function __decorate(decorators, target, key, desc) {\n var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;\n if (typeof Reflect === \"object\" && typeof Reflect.decorate === \"function\") r = Reflect.decorate(decorators, target, key, desc);\n else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;\n return c > 3 && r && Object.defineProperty(target, key, r), r;\n}\n\nexport function __param(paramIndex, decorator) {\n return function (target, key) { decorator(target, key, paramIndex); }\n}\n\nexport function __esDecorate(ctor, descriptorIn, decorators, contextIn, initializers, extraInitializers) {\n function accept(f) { if (f !== void 0 && typeof f !== \"function\") throw new TypeError(\"Function expected\"); return f; }\n var kind = contextIn.kind, key = kind === \"getter\" ? \"get\" : kind === \"setter\" ? \"set\" : \"value\";\n var target = !descriptorIn && ctor ? contextIn[\"static\"] ? ctor : ctor.prototype : null;\n var descriptor = descriptorIn || (target ? Object.getOwnPropertyDescriptor(target, contextIn.name) : {});\n var _, done = false;\n for (var i = decorators.length - 1; i >= 0; i--) {\n var context = {};\n for (var p in contextIn) context[p] = p === \"access\" ? {} : contextIn[p];\n for (var p in contextIn.access) context.access[p] = contextIn.access[p];\n context.addInitializer = function (f) { if (done) throw new TypeError(\"Cannot add initializers after decoration has completed\"); extraInitializers.push(accept(f || null)); };\n var result = (0, decorators[i])(kind === \"accessor\" ? { get: descriptor.get, set: descriptor.set } : descriptor[key], context);\n if (kind === \"accessor\") {\n if (result === void 0) continue;\n if (result === null || typeof result !== \"object\") throw new TypeError(\"Object expected\");\n if (_ = accept(result.get)) descriptor.get = _;\n if (_ = accept(result.set)) descriptor.set = _;\n if (_ = accept(result.init)) initializers.unshift(_);\n }\n else if (_ = accept(result)) {\n if (kind === \"field\") initializers.unshift(_);\n else descriptor[key] = _;\n }\n }\n if (target) Object.defineProperty(target, contextIn.name, descriptor);\n done = true;\n};\n\nexport function __runInitializers(thisArg, initializers, value) {\n var useValue = arguments.length > 2;\n for (var i = 0; i < initializers.length; i++) {\n value = useValue ? initializers[i].call(thisArg, value) : initializers[i].call(thisArg);\n }\n return useValue ? value : void 0;\n};\n\nexport function __propKey(x) {\n return typeof x === \"symbol\" ? x : \"\".concat(x);\n};\n\nexport function __setFunctionName(f, name, prefix) {\n if (typeof name === \"symbol\") name = name.description ? \"[\".concat(name.description, \"]\") : \"\";\n return Object.defineProperty(f, \"name\", { configurable: true, value: prefix ? \"\".concat(prefix, \" \", name) : name });\n};\n\nexport function __metadata(metadataKey, metadataValue) {\n if (typeof Reflect === \"object\" && typeof Reflect.metadata === \"function\") return Reflect.metadata(metadataKey, metadataValue);\n}\n\nexport function __awaiter(thisArg, _arguments, P, generator) {\n function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }\n return new (P || (P = Promise))(function (resolve, reject) {\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\n function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }\n step((generator = generator.apply(thisArg, _arguments || [])).next());\n });\n}\n\nexport function __generator(thisArg, body) {\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\n function verb(n) { return function (v) { return step([n, v]); }; }\n function step(op) {\n if (f) throw new TypeError(\"Generator is already executing.\");\n while (g && (g = 0, op[0] && (_ = 0)), _) try {\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\n if (y = 0, t) op = [op[0] & 2, t.value];\n switch (op[0]) {\n case 0: case 1: t = op; break;\n case 4: _.label++; return { value: op[1], done: false };\n case 5: _.label++; y = op[1]; op = [0]; continue;\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\n default:\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\n if (t[2]) _.ops.pop();\n _.trys.pop(); continue;\n }\n op = body.call(thisArg, _);\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\n }\n}\n\nexport var __createBinding = Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n var desc = Object.getOwnPropertyDescriptor(m, k);\n if (!desc || (\"get\" in desc ? !m.__esModule : desc.writable || desc.configurable)) {\n desc = { enumerable: true, get: function() { return m[k]; } };\n }\n Object.defineProperty(o, k2, desc);\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n});\n\nexport function __exportStar(m, o) {\n for (var p in m) if (p !== \"default\" && !Object.prototype.hasOwnProperty.call(o, p)) __createBinding(o, m, p);\n}\n\nexport function __values(o) {\n var s = typeof Symbol === \"function\" && Symbol.iterator, m = s && o[s], i = 0;\n if (m) return m.call(o);\n if (o && typeof o.length === \"number\") return {\n next: function () {\n if (o && i >= o.length) o = void 0;\n return { value: o && o[i++], done: !o };\n }\n };\n throw new TypeError(s ? \"Object is not iterable.\" : \"Symbol.iterator is not defined.\");\n}\n\nexport function __read(o, n) {\n var m = typeof Symbol === \"function\" && o[Symbol.iterator];\n if (!m) return o;\n var i = m.call(o), r, ar = [], e;\n try {\n while ((n === void 0 || n-- > 0) && !(r = i.next()).done) ar.push(r.value);\n }\n catch (error) { e = { error: error }; }\n finally {\n try {\n if (r && !r.done && (m = i[\"return\"])) m.call(i);\n }\n finally { if (e) throw e.error; }\n }\n return ar;\n}\n\n/** @deprecated */\nexport function __spread() {\n for (var ar = [], i = 0; i < arguments.length; i++)\n ar = ar.concat(__read(arguments[i]));\n return ar;\n}\n\n/** @deprecated */\nexport function __spreadArrays() {\n for (var s = 0, i = 0, il = arguments.length; i < il; i++) s += arguments[i].length;\n for (var r = Array(s), k = 0, i = 0; i < il; i++)\n for (var a = arguments[i], j = 0, jl = a.length; j < jl; j++, k++)\n r[k] = a[j];\n return r;\n}\n\nexport function __spreadArray(to, from, pack) {\n if (pack || arguments.length === 2) for (var i = 0, l = from.length, ar; i < l; i++) {\n if (ar || !(i in from)) {\n if (!ar) ar = Array.prototype.slice.call(from, 0, i);\n ar[i] = from[i];\n }\n }\n return to.concat(ar || Array.prototype.slice.call(from));\n}\n\nexport function __await(v) {\n return this instanceof __await ? (this.v = v, this) : new __await(v);\n}\n\nexport function __asyncGenerator(thisArg, _arguments, generator) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var g = generator.apply(thisArg, _arguments || []), i, q = [];\n return i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i;\n function verb(n) { if (g[n]) i[n] = function (v) { return new Promise(function (a, b) { q.push([n, v, a, b]) > 1 || resume(n, v); }); }; }\n function resume(n, v) { try { step(g[n](v)); } catch (e) { settle(q[0][3], e); } }\n function step(r) { r.value instanceof __await ? Promise.resolve(r.value.v).then(fulfill, reject) : settle(q[0][2], r); }\n function fulfill(value) { resume(\"next\", value); }\n function reject(value) { resume(\"throw\", value); }\n function settle(f, v) { if (f(v), q.shift(), q.length) resume(q[0][0], q[0][1]); }\n}\n\nexport function __asyncDelegator(o) {\n var i, p;\n return i = {}, verb(\"next\"), verb(\"throw\", function (e) { throw e; }), verb(\"return\"), i[Symbol.iterator] = function () { return this; }, i;\n function verb(n, f) { i[n] = o[n] ? function (v) { return (p = !p) ? { value: __await(o[n](v)), done: false } : f ? f(v) : v; } : f; }\n}\n\nexport function __asyncValues(o) {\n if (!Symbol.asyncIterator) throw new TypeError(\"Symbol.asyncIterator is not defined.\");\n var m = o[Symbol.asyncIterator], i;\n return m ? m.call(o) : (o = typeof __values === \"function\" ? __values(o) : o[Symbol.iterator](), i = {}, verb(\"next\"), verb(\"throw\"), verb(\"return\"), i[Symbol.asyncIterator] = function () { return this; }, i);\n function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }\n function settle(resolve, reject, d, v) { Promise.resolve(v).then(function(v) { resolve({ value: v, done: d }); }, reject); }\n}\n\nexport function __makeTemplateObject(cooked, raw) {\n if (Object.defineProperty) { Object.defineProperty(cooked, \"raw\", { value: raw }); } else { cooked.raw = raw; }\n return cooked;\n};\n\nvar __setModuleDefault = Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n};\n\nexport function __importStar(mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n}\n\nexport function __importDefault(mod) {\n return (mod && mod.__esModule) ? mod : { default: mod };\n}\n\nexport function __classPrivateFieldGet(receiver, state, kind, f) {\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a getter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot read private member from an object whose class did not declare it\");\n return kind === \"m\" ? f : kind === \"a\" ? f.call(receiver) : f ? f.value : state.get(receiver);\n}\n\nexport function __classPrivateFieldSet(receiver, state, value, kind, f) {\n if (kind === \"m\") throw new TypeError(\"Private method is not writable\");\n if (kind === \"a\" && !f) throw new TypeError(\"Private accessor was defined without a setter\");\n if (typeof state === \"function\" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError(\"Cannot write private member to an object whose class did not declare it\");\n return (kind === \"a\" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;\n}\n\nexport function __classPrivateFieldIn(state, receiver) {\n if (receiver === null || (typeof receiver !== \"object\" && typeof receiver !== \"function\")) throw new TypeError(\"Cannot use 'in' operator on non-object\");\n return typeof state === \"function\" ? receiver === state : state.has(receiver);\n}\n\nexport function __addDisposableResource(env, value, async) {\n if (value !== null && value !== void 0) {\n if (typeof value !== \"object\" && typeof value !== \"function\") throw new TypeError(\"Object expected.\");\n var dispose;\n if (async) {\n if (!Symbol.asyncDispose) throw new TypeError(\"Symbol.asyncDispose is not defined.\");\n dispose = value[Symbol.asyncDispose];\n }\n if (dispose === void 0) {\n if (!Symbol.dispose) throw new TypeError(\"Symbol.dispose is not defined.\");\n dispose = value[Symbol.dispose];\n }\n if (typeof dispose !== \"function\") throw new TypeError(\"Object not disposable.\");\n env.stack.push({ value: value, dispose: dispose, async: async });\n }\n else if (async) {\n env.stack.push({ async: true });\n }\n return value;\n}\n\nvar _SuppressedError = typeof SuppressedError === \"function\" ? SuppressedError : function (error, suppressed, message) {\n var e = new Error(message);\n return e.name = \"SuppressedError\", e.error = error, e.suppressed = suppressed, e;\n};\n\nexport function __disposeResources(env) {\n function fail(e) {\n env.error = env.hasError ? new _SuppressedError(e, env.error, \"An error was suppressed during disposal.\") : e;\n env.hasError = true;\n }\n function next() {\n while (env.stack.length) {\n var rec = env.stack.pop();\n try {\n var result = rec.dispose && rec.dispose.call(rec.value);\n if (rec.async) return Promise.resolve(result).then(next, function(e) { fail(e); return next(); });\n }\n catch (e) {\n fail(e);\n }\n }\n if (env.hasError) throw env.error;\n }\n return next();\n}\n\nexport default {\n __extends,\n __assign,\n __rest,\n __decorate,\n __param,\n __metadata,\n __awaiter,\n __generator,\n __createBinding,\n __exportStar,\n __values,\n __read,\n __spread,\n __spreadArrays,\n __spreadArray,\n __await,\n __asyncGenerator,\n __asyncDelegator,\n __asyncValues,\n __makeTemplateObject,\n __importStar,\n __importDefault,\n __classPrivateFieldGet,\n __classPrivateFieldSet,\n __classPrivateFieldIn,\n __addDisposableResource,\n __disposeResources,\n};\n","export var MS = '-ms-'\nexport var MOZ = '-moz-'\nexport var WEBKIT = '-webkit-'\n\nexport var COMMENT = 'comm'\nexport var RULESET = 'rule'\nexport var DECLARATION = 'decl'\n\nexport var PAGE = '@page'\nexport var MEDIA = '@media'\nexport var IMPORT = '@import'\nexport var CHARSET = '@charset'\nexport var VIEWPORT = '@viewport'\nexport var SUPPORTS = '@supports'\nexport var DOCUMENT = '@document'\nexport var NAMESPACE = '@namespace'\nexport var KEYFRAMES = '@keyframes'\nexport var FONT_FACE = '@font-face'\nexport var COUNTER_STYLE = '@counter-style'\nexport var FONT_FEATURE_VALUES = '@font-feature-values'\nexport var LAYER = '@layer'\nexport var SCOPE = '@scope'\n","/**\n * @param {number}\n * @return {number}\n */\nexport var abs = Math.abs\n\n/**\n * @param {number}\n * @return {string}\n */\nexport var from = String.fromCharCode\n\n/**\n * @param {object}\n * @return {object}\n */\nexport var assign = Object.assign\n\n/**\n * @param {string} value\n * @param {number} length\n * @return {number}\n */\nexport function hash (value, length) {\n\treturn charat(value, 0) ^ 45 ? (((((((length << 2) ^ charat(value, 0)) << 2) ^ charat(value, 1)) << 2) ^ charat(value, 2)) << 2) ^ charat(value, 3) : 0\n}\n\n/**\n * @param {string} value\n * @return {string}\n */\nexport function trim (value) {\n\treturn value.trim()\n}\n\n/**\n * @param {string} value\n * @param {RegExp} pattern\n * @return {string?}\n */\nexport function match (value, pattern) {\n\treturn (value = pattern.exec(value)) ? value[0] : value\n}\n\n/**\n * @param {string} value\n * @param {(string|RegExp)} pattern\n * @param {string} replacement\n * @return {string}\n */\nexport function replace (value, pattern, replacement) {\n\treturn value.replace(pattern, replacement)\n}\n\n/**\n * @param {string} value\n * @param {string} search\n * @param {number} position\n * @return {number}\n */\nexport function indexof (value, search, position) {\n\treturn value.indexOf(search, position)\n}\n\n/**\n * @param {string} value\n * @param {number} index\n * @return {number}\n */\nexport function charat (value, index) {\n\treturn value.charCodeAt(index) | 0\n}\n\n/**\n * @param {string} value\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function substr (value, begin, end) {\n\treturn value.slice(begin, end)\n}\n\n/**\n * @param {string} value\n * @return {number}\n */\nexport function strlen (value) {\n\treturn value.length\n}\n\n/**\n * @param {any[]} value\n * @return {number}\n */\nexport function sizeof (value) {\n\treturn value.length\n}\n\n/**\n * @param {any} value\n * @param {any[]} array\n * @return {any}\n */\nexport function append (value, array) {\n\treturn array.push(value), value\n}\n\n/**\n * @param {string[]} array\n * @param {function} callback\n * @return {string}\n */\nexport function combine (array, callback) {\n\treturn array.map(callback).join('')\n}\n\n/**\n * @param {string[]} array\n * @param {RegExp} pattern\n * @return {string[]}\n */\nexport function filter (array, pattern) {\n\treturn array.filter(function (value) { return !match(value, pattern) })\n}\n","import {from, trim, charat, strlen, substr, append, assign} from './Utility.js'\n\nexport var line = 1\nexport var column = 1\nexport var length = 0\nexport var position = 0\nexport var character = 0\nexport var characters = ''\n\n/**\n * @param {string} value\n * @param {object | null} root\n * @param {object | null} parent\n * @param {string} type\n * @param {string[] | string} props\n * @param {object[] | string} children\n * @param {object[]} siblings\n * @param {number} length\n */\nexport function node (value, root, parent, type, props, children, length, siblings) {\n\treturn {value: value, root: root, parent: parent, type: type, props: props, children: children, line: line, column: column, length: length, return: '', siblings: siblings}\n}\n\n/**\n * @param {object} root\n * @param {object} props\n * @return {object}\n */\nexport function copy (root, props) {\n\treturn assign(node('', null, null, '', null, null, 0, root.siblings), root, {length: -root.length}, props)\n}\n\n/**\n * @param {object} root\n */\nexport function lift (root) {\n\twhile (root.root)\n\t\troot = copy(root.root, {children: [root]})\n\n\tappend(root, root.siblings)\n}\n\n/**\n * @return {number}\n */\nexport function char () {\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function prev () {\n\tcharacter = position > 0 ? charat(characters, --position) : 0\n\n\tif (column--, character === 10)\n\t\tcolumn = 1, line--\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function next () {\n\tcharacter = position < length ? charat(characters, position++) : 0\n\n\tif (column++, character === 10)\n\t\tcolumn = 1, line++\n\n\treturn character\n}\n\n/**\n * @return {number}\n */\nexport function peek () {\n\treturn charat(characters, position)\n}\n\n/**\n * @return {number}\n */\nexport function caret () {\n\treturn position\n}\n\n/**\n * @param {number} begin\n * @param {number} end\n * @return {string}\n */\nexport function slice (begin, end) {\n\treturn substr(characters, begin, end)\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function token (type) {\n\tswitch (type) {\n\t\t// \\0 \\t \\n \\r \\s whitespace token\n\t\tcase 0: case 9: case 10: case 13: case 32:\n\t\t\treturn 5\n\t\t// ! + , / > @ ~ isolate token\n\t\tcase 33: case 43: case 44: case 47: case 62: case 64: case 126:\n\t\t// ; { } breakpoint token\n\t\tcase 59: case 123: case 125:\n\t\t\treturn 4\n\t\t// : accompanied token\n\t\tcase 58:\n\t\t\treturn 3\n\t\t// \" ' ( [ opening delimit token\n\t\tcase 34: case 39: case 40: case 91:\n\t\t\treturn 2\n\t\t// ) ] closing delimit token\n\t\tcase 41: case 93:\n\t\t\treturn 1\n\t}\n\n\treturn 0\n}\n\n/**\n * @param {string} value\n * @return {any[]}\n */\nexport function alloc (value) {\n\treturn line = column = 1, length = strlen(characters = value), position = 0, []\n}\n\n/**\n * @param {any} value\n * @return {any}\n */\nexport function dealloc (value) {\n\treturn characters = '', value\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function delimit (type) {\n\treturn trim(slice(position - 1, delimiter(type === 91 ? type + 2 : type === 40 ? type + 1 : type)))\n}\n\n/**\n * @param {string} value\n * @return {string[]}\n */\nexport function tokenize (value) {\n\treturn dealloc(tokenizer(alloc(value)))\n}\n\n/**\n * @param {number} type\n * @return {string}\n */\nexport function whitespace (type) {\n\twhile (character = peek())\n\t\tif (character < 33)\n\t\t\tnext()\n\t\telse\n\t\t\tbreak\n\n\treturn token(type) > 2 || token(character) > 3 ? '' : ' '\n}\n\n/**\n * @param {string[]} children\n * @return {string[]}\n */\nexport function tokenizer (children) {\n\twhile (next())\n\t\tswitch (token(character)) {\n\t\t\tcase 0: append(identifier(position - 1), children)\n\t\t\t\tbreak\n\t\t\tcase 2: append(delimit(character), children)\n\t\t\t\tbreak\n\t\t\tdefault: append(from(character), children)\n\t\t}\n\n\treturn children\n}\n\n/**\n * @param {number} index\n * @param {number} count\n * @return {string}\n */\nexport function escaping (index, count) {\n\twhile (--count && next())\n\t\t// not 0-9 A-F a-f\n\t\tif (character < 48 || character > 102 || (character > 57 && character < 65) || (character > 70 && character < 97))\n\t\t\tbreak\n\n\treturn slice(index, caret() + (count < 6 && peek() == 32 && next() == 32))\n}\n\n/**\n * @param {number} type\n * @return {number}\n */\nexport function delimiter (type) {\n\twhile (next())\n\t\tswitch (character) {\n\t\t\t// ] ) \" '\n\t\t\tcase type:\n\t\t\t\treturn position\n\t\t\t// \" '\n\t\t\tcase 34: case 39:\n\t\t\t\tif (type !== 34 && type !== 39)\n\t\t\t\t\tdelimiter(character)\n\t\t\t\tbreak\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (type === 41)\n\t\t\t\t\tdelimiter(type)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tnext()\n\t\t\t\tbreak\n\t\t}\n\n\treturn position\n}\n\n/**\n * @param {number} type\n * @param {number} index\n * @return {number}\n */\nexport function commenter (type, index) {\n\twhile (next())\n\t\t// //\n\t\tif (type + character === 47 + 10)\n\t\t\tbreak\n\t\t// /*\n\t\telse if (type + character === 42 + 42 && peek() === 47)\n\t\t\tbreak\n\n\treturn '/*' + slice(index, position - 1) + '*' + from(type === 47 ? type : next())\n}\n\n/**\n * @param {number} index\n * @return {string}\n */\nexport function identifier (index) {\n\twhile (!token(peek()))\n\t\tnext()\n\n\treturn slice(index, position)\n}\n","import {COMMENT, RULESET, DECLARATION} from './Enum.js'\nimport {abs, charat, trim, from, sizeof, strlen, substr, append, replace, indexof} from './Utility.js'\nimport {node, char, prev, next, peek, caret, alloc, dealloc, delimit, whitespace, escaping, identifier, commenter} from './Tokenizer.js'\n\n/**\n * @param {string} value\n * @return {object[]}\n */\nexport function compile (value) {\n\treturn dealloc(parse('', null, null, null, [''], value = alloc(value), 0, [0], value))\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {string[]} rule\n * @param {string[]} rules\n * @param {string[]} rulesets\n * @param {number[]} pseudo\n * @param {number[]} points\n * @param {string[]} declarations\n * @return {object}\n */\nexport function parse (value, root, parent, rule, rules, rulesets, pseudo, points, declarations) {\n\tvar index = 0\n\tvar offset = 0\n\tvar length = pseudo\n\tvar atrule = 0\n\tvar property = 0\n\tvar previous = 0\n\tvar variable = 1\n\tvar scanning = 1\n\tvar ampersand = 1\n\tvar character = 0\n\tvar type = ''\n\tvar props = rules\n\tvar children = rulesets\n\tvar reference = rule\n\tvar characters = type\n\n\twhile (scanning)\n\t\tswitch (previous = character, character = next()) {\n\t\t\t// (\n\t\t\tcase 40:\n\t\t\t\tif (previous != 108 && charat(characters, length - 1) == 58) {\n\t\t\t\t\tif (indexof(characters += replace(delimit(character), '&', '&\\f'), '&\\f', abs(index ? points[index - 1] : 0)) != -1)\n\t\t\t\t\t\tampersand = -1\n\t\t\t\t\tbreak\n\t\t\t\t}\n\t\t\t// \" ' [\n\t\t\tcase 34: case 39: case 91:\n\t\t\t\tcharacters += delimit(character)\n\t\t\t\tbreak\n\t\t\t// \\t \\n \\r \\s\n\t\t\tcase 9: case 10: case 13: case 32:\n\t\t\t\tcharacters += whitespace(previous)\n\t\t\t\tbreak\n\t\t\t// \\\n\t\t\tcase 92:\n\t\t\t\tcharacters += escaping(caret() - 1, 7)\n\t\t\t\tcontinue\n\t\t\t// /\n\t\t\tcase 47:\n\t\t\t\tswitch (peek()) {\n\t\t\t\t\tcase 42: case 47:\n\t\t\t\t\t\tappend(comment(commenter(next(), caret()), root, parent, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tcharacters += '/'\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\t// {\n\t\t\tcase 123 * variable:\n\t\t\t\tpoints[index++] = strlen(characters) * ampersand\n\t\t\t// } ; \\0\n\t\t\tcase 125 * variable: case 59: case 0:\n\t\t\t\tswitch (character) {\n\t\t\t\t\t// \\0 }\n\t\t\t\t\tcase 0: case 125: scanning = 0\n\t\t\t\t\t// ;\n\t\t\t\t\tcase 59 + offset: if (ampersand == -1) characters = replace(characters, /\\f/g, '')\n\t\t\t\t\t\tif (property > 0 && (strlen(characters) - length))\n\t\t\t\t\t\t\tappend(property > 32 ? declaration(characters + ';', rule, parent, length - 1, declarations) : declaration(replace(characters, ' ', '') + ';', rule, parent, length - 2, declarations), declarations)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @ ;\n\t\t\t\t\tcase 59: characters += ';'\n\t\t\t\t\t// { rule/at-rule\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tappend(reference = ruleset(characters, root, parent, index, offset, rules, points, type, props = [], children = [], length, rulesets), rulesets)\n\n\t\t\t\t\t\tif (character === 123)\n\t\t\t\t\t\t\tif (offset === 0)\n\t\t\t\t\t\t\t\tparse(characters, root, reference, reference, props, rulesets, length, points, children)\n\t\t\t\t\t\t\telse\n\t\t\t\t\t\t\t\tswitch (atrule === 99 && charat(characters, 3) === 110 ? 100 : atrule) {\n\t\t\t\t\t\t\t\t\t// d l m s\n\t\t\t\t\t\t\t\t\tcase 100: case 108: case 109: case 115:\n\t\t\t\t\t\t\t\t\t\tparse(value, reference, reference, rule && append(ruleset(value, reference, reference, 0, 0, rules, points, type, rules, props = [], length, children), children), rules, children, length, points, rule ? props : children)\n\t\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\t\tparse(characters, reference, reference, reference, [''], children, 0, points, children)\n\t\t\t\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tindex = offset = property = 0, variable = ampersand = 1, type = characters = '', length = pseudo\n\t\t\t\tbreak\n\t\t\t// :\n\t\t\tcase 58:\n\t\t\t\tlength = 1 + strlen(characters), property = previous\n\t\t\tdefault:\n\t\t\t\tif (variable < 1)\n\t\t\t\t\tif (character == 123)\n\t\t\t\t\t\t--variable\n\t\t\t\t\telse if (character == 125 && variable++ == 0 && prev() == 125)\n\t\t\t\t\t\tcontinue\n\n\t\t\t\tswitch (characters += from(character), character * variable) {\n\t\t\t\t\t// &\n\t\t\t\t\tcase 38:\n\t\t\t\t\t\tampersand = offset > 0 ? 1 : (characters += '\\f', -1)\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// ,\n\t\t\t\t\tcase 44:\n\t\t\t\t\t\tpoints[index++] = (strlen(characters) - 1) * ampersand, ampersand = 1\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// @\n\t\t\t\t\tcase 64:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (peek() === 45)\n\t\t\t\t\t\t\tcharacters += delimit(next())\n\n\t\t\t\t\t\tatrule = peek(), offset = length = strlen(type = characters += identifier(caret())), character++\n\t\t\t\t\t\tbreak\n\t\t\t\t\t// -\n\t\t\t\t\tcase 45:\n\t\t\t\t\t\tif (previous === 45 && strlen(characters) == 2)\n\t\t\t\t\t\t\tvariable = 0\n\t\t\t\t}\n\t\t}\n\n\treturn rulesets\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} index\n * @param {number} offset\n * @param {string[]} rules\n * @param {number[]} points\n * @param {string} type\n * @param {string[]} props\n * @param {string[]} children\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function ruleset (value, root, parent, index, offset, rules, points, type, props, children, length, siblings) {\n\tvar post = offset - 1\n\tvar rule = offset === 0 ? rules : ['']\n\tvar size = sizeof(rule)\n\n\tfor (var i = 0, j = 0, k = 0; i < index; ++i)\n\t\tfor (var x = 0, y = substr(value, post + 1, post = abs(j = points[i])), z = value; x < size; ++x)\n\t\t\tif (z = trim(j > 0 ? rule[x] + ' ' + y : replace(y, /&\\f/g, rule[x])))\n\t\t\t\tprops[k++] = z\n\n\treturn node(value, root, parent, offset === 0 ? RULESET : type, props, children, length, siblings)\n}\n\n/**\n * @param {number} value\n * @param {object} root\n * @param {object?} parent\n * @param {object[]} siblings\n * @return {object}\n */\nexport function comment (value, root, parent, siblings) {\n\treturn node(value, root, parent, COMMENT, from(char()), substr(value, 2, -2), 0, siblings)\n}\n\n/**\n * @param {string} value\n * @param {object} root\n * @param {object?} parent\n * @param {number} length\n * @param {object[]} siblings\n * @return {object}\n */\nexport function declaration (value, root, parent, length, siblings) {\n\treturn node(value, root, parent, DECLARATION, substr(value, 0, length), substr(value, length + 1, -1), length, siblings)\n}\n","import {MS, MOZ, WEBKIT} from './Enum.js'\nimport {hash, charat, strlen, indexof, replace, substr, match} from './Utility.js'\n\n/**\n * @param {string} value\n * @param {number} length\n * @param {object[]} children\n * @return {string}\n */\nexport function prefix (value, length, children) {\n\tswitch (hash(value, length)) {\n\t\t// color-adjust\n\t\tcase 5103:\n\t\t\treturn WEBKIT + 'print-' + value + value\n\t\t// animation, animation-(delay|direction|duration|fill-mode|iteration-count|name|play-state|timing-function)\n\t\tcase 5737: case 4201: case 3177: case 3433: case 1641: case 4457: case 2921:\n\t\t// text-decoration, filter, clip-path, backface-visibility, column, box-decoration-break\n\t\tcase 5572: case 6356: case 5844: case 3191: case 6645: case 3005:\n\t\t// mask, mask-image, mask-(mode|clip|size), mask-(repeat|origin), mask-position, mask-composite,\n\t\tcase 6391: case 5879: case 5623: case 6135: case 4599: case 4855:\n\t\t// background-clip, columns, column-(count|fill|gap|rule|rule-color|rule-style|rule-width|span|width)\n\t\tcase 4215: case 6389: case 5109: case 5365: case 5621: case 3829:\n\t\t\treturn WEBKIT + value + value\n\t\t// tab-size\n\t\tcase 4789:\n\t\t\treturn MOZ + value + value\n\t\t// appearance, user-select, transform, hyphens, text-size-adjust\n\t\tcase 5349: case 4246: case 4810: case 6968: case 2756:\n\t\t\treturn WEBKIT + value + MOZ + value + MS + value + value\n\t\t// writing-mode\n\t\tcase 5936:\n\t\t\tswitch (charat(value, length + 11)) {\n\t\t\t\t// vertical-l(r)\n\t\t\t\tcase 114:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb') + value\n\t\t\t\t// vertical-r(l)\n\t\t\t\tcase 108:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'tb-rl') + value\n\t\t\t\t// horizontal(-)tb\n\t\t\t\tcase 45:\n\t\t\t\t\treturn WEBKIT + value + MS + replace(value, /[svh]\\w+-[tblr]{2}/, 'lr') + value\n\t\t\t\t// default: fallthrough to below\n\t\t\t}\n\t\t// flex, flex-direction, scroll-snap-type, writing-mode\n\t\tcase 6828: case 4268: case 2903:\n\t\t\treturn WEBKIT + value + MS + value + value\n\t\t// order\n\t\tcase 6165:\n\t\t\treturn WEBKIT + value + MS + 'flex-' + value + value\n\t\t// align-items\n\t\tcase 5187:\n\t\t\treturn WEBKIT + value + replace(value, /(\\w+).+(:[^]+)/, WEBKIT + 'box-$1$2' + MS + 'flex-$1$2') + value\n\t\t// align-self\n\t\tcase 5443:\n\t\t\treturn WEBKIT + value + MS + 'flex-item-' + replace(value, /flex-|-self/g, '') + (!match(value, /flex-|baseline/) ? MS + 'grid-row-' + replace(value, /flex-|-self/g, '') : '') + value\n\t\t// align-content\n\t\tcase 4675:\n\t\t\treturn WEBKIT + value + MS + 'flex-line-pack' + replace(value, /align-content|flex-|-self/g, '') + value\n\t\t// flex-shrink\n\t\tcase 5548:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'shrink', 'negative') + value\n\t\t// flex-basis\n\t\tcase 5292:\n\t\t\treturn WEBKIT + value + MS + replace(value, 'basis', 'preferred-size') + value\n\t\t// flex-grow\n\t\tcase 6060:\n\t\t\treturn WEBKIT + 'box-' + replace(value, '-grow', '') + WEBKIT + value + MS + replace(value, 'grow', 'positive') + value\n\t\t// transition\n\t\tcase 4554:\n\t\t\treturn WEBKIT + replace(value, /([^-])(transform)/g, '$1' + WEBKIT + '$2') + value\n\t\t// cursor\n\t\tcase 6187:\n\t\t\treturn replace(replace(replace(value, /(zoom-|grab)/, WEBKIT + '$1'), /(image-set)/, WEBKIT + '$1'), value, '') + value\n\t\t// background, background-image\n\t\tcase 5495: case 3959:\n\t\t\treturn replace(value, /(image-set\\([^]*)/, WEBKIT + '$1' + '$`$1')\n\t\t// justify-content\n\t\tcase 4968:\n\t\t\treturn replace(replace(value, /(.+:)(flex-)?(.*)/, WEBKIT + 'box-pack:$3' + MS + 'flex-pack:$3'), /s.+-b[^;]+/, 'justify') + WEBKIT + value + value\n\t\t// justify-self\n\t\tcase 4200:\n\t\t\tif (!match(value, /flex-|baseline/)) return MS + 'grid-column-align' + substr(value, length) + value\n\t\t\tbreak\n\t\t// grid-template-(columns|rows)\n\t\tcase 2592: case 3360:\n\t\t\treturn MS + replace(value, 'template-', '') + value\n\t\t// grid-(row|column)-start\n\t\tcase 4384: case 3616:\n\t\t\tif (children && children.some(function (element, index) { return length = index, match(element.props, /grid-\\w+-end/) })) {\n\t\t\t\treturn ~indexof(value + (children = children[length].value), 'span', 0) ? value : (MS + replace(value, '-start', '') + value + MS + 'grid-row-span:' + (~indexof(children, 'span', 0) ? match(children, /\\d+/) : +match(children, /\\d+/) - +match(value, /\\d+/)) + ';')\n\t\t\t}\n\t\t\treturn MS + replace(value, '-start', '') + value\n\t\t// grid-(row|column)-end\n\t\tcase 4896: case 4128:\n\t\t\treturn (children && children.some(function (element) { return match(element.props, /grid-\\w+-start/) })) ? value : MS + replace(replace(value, '-end', '-span'), 'span ', '') + value\n\t\t// (margin|padding)-inline-(start|end)\n\t\tcase 4095: case 3583: case 4068: case 2532:\n\t\t\treturn replace(value, /(.+)-inline(.+)/, WEBKIT + '$1$2') + value\n\t\t// (min|max)?(width|height|inline-size|block-size)\n\t\tcase 8116: case 7059: case 5753: case 5535:\n\t\tcase 5445: case 5701: case 4933: case 4677:\n\t\tcase 5533: case 5789: case 5021: case 4765:\n\t\t\t// stretch, max-content, min-content, fill-available\n\t\t\tif (strlen(value) - 1 - length > 6)\n\t\t\t\tswitch (charat(value, length + 1)) {\n\t\t\t\t\t// (m)ax-content, (m)in-content\n\t\t\t\t\tcase 109:\n\t\t\t\t\t\t// -\n\t\t\t\t\t\tif (charat(value, length + 4) !== 45)\n\t\t\t\t\t\t\tbreak\n\t\t\t\t\t// (f)ill-available, (f)it-content\n\t\t\t\t\tcase 102:\n\t\t\t\t\t\treturn replace(value, /(.+:)(.+)-([^]+)/, '$1' + WEBKIT + '$2-$3' + '$1' + MOZ + (charat(value, length + 3) == 108 ? '$3' : '$2-$3')) + value\n\t\t\t\t\t// (s)tretch\n\t\t\t\t\tcase 115:\n\t\t\t\t\t\treturn ~indexof(value, 'stretch', 0) ? prefix(replace(value, 'stretch', 'fill-available'), length, children) + value : value\n\t\t\t\t}\n\t\t\tbreak\n\t\t// grid-(column|row)\n\t\tcase 5152: case 5920:\n\t\t\treturn replace(value, /(.+?):(\\d+)(\\s*\\/\\s*(span)?\\s*(\\d+))?(.*)/, function (_, a, b, c, d, e, f) { return (MS + a + ':' + b + f) + (c ? (MS + a + '-span:' + (d ? e : +e - +b)) + f : '') + value })\n\t\t// position: sticky\n\t\tcase 4949:\n\t\t\t// stick(y)?\n\t\t\tif (charat(value, length + 6) === 121)\n\t\t\t\treturn replace(value, ':', ':' + WEBKIT) + value\n\t\t\tbreak\n\t\t// display: (flex|inline-flex|grid|inline-grid)\n\t\tcase 6444:\n\t\t\tswitch (charat(value, charat(value, 14) === 45 ? 18 : 11)) {\n\t\t\t\t// (inline-)?fle(x)\n\t\t\t\tcase 120:\n\t\t\t\t\treturn replace(value, /(.+:)([^;\\s!]+)(;|(\\s+)?!.+)?/, '$1' + WEBKIT + (charat(value, 14) === 45 ? 'inline-' : '') + 'box$3' + '$1' + WEBKIT + '$2$3' + '$1' + MS + '$2box$3') + value\n\t\t\t\t// (inline-)?gri(d)\n\t\t\t\tcase 100:\n\t\t\t\t\treturn replace(value, ':', ':' + MS) + value\n\t\t\t}\n\t\t\tbreak\n\t\t// scroll-margin, scroll-margin-(top|right|bottom|left)\n\t\tcase 5719: case 2647: case 2135: case 3927: case 2391:\n\t\t\treturn replace(value, 'scroll-', 'scroll-snap-') + value\n\t}\n\n\treturn value\n}\n","import {IMPORT, LAYER, COMMENT, RULESET, DECLARATION, KEYFRAMES} from './Enum.js'\nimport {strlen} from './Utility.js'\n\n/**\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function serialize (children, callback) {\n\tvar output = ''\n\n\tfor (var i = 0; i < children.length; i++)\n\t\toutput += callback(children[i], i, children, callback) || ''\n\n\treturn output\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n * @return {string}\n */\nexport function stringify (element, index, children, callback) {\n\tswitch (element.type) {\n\t\tcase LAYER: if (element.children.length) break\n\t\tcase IMPORT: case DECLARATION: return element.return = element.return || element.value\n\t\tcase COMMENT: return ''\n\t\tcase KEYFRAMES: return element.return = element.value + '{' + serialize(element.children, callback) + '}'\n\t\tcase RULESET: if (!strlen(element.value = element.props.join(','))) return ''\n\t}\n\n\treturn strlen(children = serialize(element.children, callback)) ? element.return = element.value + '{' + children + '}' : ''\n}\n","import {MS, MOZ, WEBKIT, RULESET, KEYFRAMES, DECLARATION} from './Enum.js'\nimport {match, charat, substr, strlen, sizeof, replace, combine, filter, assign} from './Utility.js'\nimport {copy, lift, tokenize} from './Tokenizer.js'\nimport {serialize} from './Serializer.js'\nimport {prefix} from './Prefixer.js'\n\n/**\n * @param {function[]} collection\n * @return {function}\n */\nexport function middleware (collection) {\n\tvar length = sizeof(collection)\n\n\treturn function (element, index, children, callback) {\n\t\tvar output = ''\n\n\t\tfor (var i = 0; i < length; i++)\n\t\t\toutput += collection[i](element, index, children, callback) || ''\n\n\t\treturn output\n\t}\n}\n\n/**\n * @param {function} callback\n * @return {function}\n */\nexport function rulesheet (callback) {\n\treturn function (element) {\n\t\tif (!element.root)\n\t\t\tif (element = element.return)\n\t\t\t\tcallback(element)\n\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n * @param {function} callback\n */\nexport function prefixer (element, index, children, callback) {\n\tif (element.length > -1)\n\t\tif (!element.return)\n\t\t\tswitch (element.type) {\n\t\t\t\tcase DECLARATION: element.return = prefix(element.value, element.length, children)\n\t\t\t\t\treturn\n\t\t\t\tcase KEYFRAMES:\n\t\t\t\t\treturn serialize([copy(element, {value: replace(element.value, '@', '@' + WEBKIT)})], callback)\n\t\t\t\tcase RULESET:\n\t\t\t\t\tif (element.length)\n\t\t\t\t\t\treturn combine(children = element.props, function (value) {\n\t\t\t\t\t\t\tswitch (match(value, callback = /(::plac\\w+|:read-\\w+)/)) {\n\t\t\t\t\t\t\t\t// :read-(only|write)\n\t\t\t\t\t\t\t\tcase ':read-only': case ':read-write':\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(read-\\w+)/, ':' + MOZ + '$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [value]}))\n\t\t\t\t\t\t\t\t\tassign(element, {props: filter(children, callback)})\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t\t// :placeholder\n\t\t\t\t\t\t\t\tcase '::placeholder':\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(plac\\w+)/, ':' + WEBKIT + 'input-$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(plac\\w+)/, ':' + MOZ + '$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [replace(value, /:(plac\\w+)/, MS + 'input-$1')]}))\n\t\t\t\t\t\t\t\t\tlift(copy(element, {props: [value]}))\n\t\t\t\t\t\t\t\t\tassign(element, {props: filter(children, callback)})\n\t\t\t\t\t\t\t\t\tbreak\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\treturn ''\n\t\t\t\t\t\t})\n\t\t\t}\n}\n\n/**\n * @param {object} element\n * @param {number} index\n * @param {object[]} children\n */\nexport function namespace (element) {\n\tswitch (element.type) {\n\t\tcase RULESET:\n\t\t\telement.props = element.props.map(function (value) {\n\t\t\t\treturn combine(tokenize(value), function (value, index, children) {\n\t\t\t\t\tswitch (charat(value, 0)) {\n\t\t\t\t\t\t// \\f\n\t\t\t\t\t\tcase 12:\n\t\t\t\t\t\t\treturn substr(value, 1, strlen(value))\n\t\t\t\t\t\t// \\0 ( + > ~\n\t\t\t\t\t\tcase 0: case 40: case 43: case 62: case 126:\n\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t// :\n\t\t\t\t\t\tcase 58:\n\t\t\t\t\t\t\tif (children[++index] === 'global')\n\t\t\t\t\t\t\t\tchildren[index] = '', children[++index] = '\\f' + substr(children[index], index = 1, -1)\n\t\t\t\t\t\t// \\s\n\t\t\t\t\t\tcase 32:\n\t\t\t\t\t\t\treturn index === 1 ? '' : value\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tswitch (index) {\n\t\t\t\t\t\t\t\tcase 0: element = value\n\t\t\t\t\t\t\t\t\treturn sizeof(children) > 1 ? '' : value\n\t\t\t\t\t\t\t\tcase index = sizeof(children) - 1: case 2:\n\t\t\t\t\t\t\t\t\treturn index === 2 ? value + element + element : value + element\n\t\t\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\t\t\treturn value\n\t\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t})\n\t}\n}\n","var unitlessKeys = {\n animationIterationCount: 1,\n aspectRatio: 1,\n borderImageOutset: 1,\n borderImageSlice: 1,\n borderImageWidth: 1,\n boxFlex: 1,\n boxFlexGroup: 1,\n boxOrdinalGroup: 1,\n columnCount: 1,\n columns: 1,\n flex: 1,\n flexGrow: 1,\n flexPositive: 1,\n flexShrink: 1,\n flexNegative: 1,\n flexOrder: 1,\n gridRow: 1,\n gridRowEnd: 1,\n gridRowSpan: 1,\n gridRowStart: 1,\n gridColumn: 1,\n gridColumnEnd: 1,\n gridColumnSpan: 1,\n gridColumnStart: 1,\n msGridRow: 1,\n msGridRowSpan: 1,\n msGridColumn: 1,\n msGridColumnSpan: 1,\n fontWeight: 1,\n lineHeight: 1,\n opacity: 1,\n order: 1,\n orphans: 1,\n tabSize: 1,\n widows: 1,\n zIndex: 1,\n zoom: 1,\n WebkitLineClamp: 1,\n // SVG-related properties\n fillOpacity: 1,\n floodOpacity: 1,\n stopOpacity: 1,\n strokeDasharray: 1,\n strokeDashoffset: 1,\n strokeMiterlimit: 1,\n strokeOpacity: 1,\n strokeWidth: 1\n};\n\nexport { unitlessKeys as default };\n","import{__spreadArray as e,__assign as t}from\"tslib\";import n from\"@emotion/is-prop-valid\";import o,{useRef as r,useState as s,useMemo as i,useEffect as a,useContext as c,useDebugValue as l,createElement as u}from\"react\";import p from\"shallowequal\";import*as d from\"stylis\";import h from\"@emotion/unitless\";var f=\"undefined\"!=typeof process&&void 0!==process.env&&(process.env.REACT_APP_SC_ATTR||process.env.SC_ATTR)||\"data-styled\",m=\"active\",y=\"data-styled-version\",v=\"6.1.19\",g=\"/*!sc*/\\n\",S=\"undefined\"!=typeof window&&\"undefined\"!=typeof document,w=Boolean(\"boolean\"==typeof SC_DISABLE_SPEEDY?SC_DISABLE_SPEEDY:\"undefined\"!=typeof process&&void 0!==process.env&&void 0!==process.env.REACT_APP_SC_DISABLE_SPEEDY&&\"\"!==process.env.REACT_APP_SC_DISABLE_SPEEDY?\"false\"!==process.env.REACT_APP_SC_DISABLE_SPEEDY&&process.env.REACT_APP_SC_DISABLE_SPEEDY:\"undefined\"!=typeof process&&void 0!==process.env&&void 0!==process.env.SC_DISABLE_SPEEDY&&\"\"!==process.env.SC_DISABLE_SPEEDY?\"false\"!==process.env.SC_DISABLE_SPEEDY&&process.env.SC_DISABLE_SPEEDY:\"production\"!==process.env.NODE_ENV),b={},E=/invalid hook call/i,N=new Set,P=function(t,n){if(\"production\"!==process.env.NODE_ENV){var o=n?' with the id of \"'.concat(n,'\"'):\"\",s=\"The component \".concat(t).concat(o,\" has been created dynamically.\\n\")+\"You may see this warning because you've called styled inside another component.\\nTo resolve this only create new StyledComponents outside of any render method and function component.\\nSee https://styled-components.com/docs/basics#define-styled-components-outside-of-the-render-method for more info.\\n\",i=console.error;try{var a=!0;console.error=function(t){for(var n=[],o=1;o<arguments.length;o++)n[o-1]=arguments[o];E.test(t)?(a=!1,N.delete(s)):i.apply(void 0,e([t],n,!1))},r(),a&&!N.has(s)&&(console.warn(s),N.add(s))}catch(e){E.test(e.message)&&N.delete(s)}finally{console.error=i}}},_=Object.freeze([]),C=Object.freeze({});function I(e,t,n){return void 0===n&&(n=C),e.theme!==n.theme&&e.theme||t||n.theme}var A=new Set([\"a\",\"abbr\",\"address\",\"area\",\"article\",\"aside\",\"audio\",\"b\",\"base\",\"bdi\",\"bdo\",\"big\",\"blockquote\",\"body\",\"br\",\"button\",\"canvas\",\"caption\",\"cite\",\"code\",\"col\",\"colgroup\",\"data\",\"datalist\",\"dd\",\"del\",\"details\",\"dfn\",\"dialog\",\"div\",\"dl\",\"dt\",\"em\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"header\",\"hgroup\",\"hr\",\"html\",\"i\",\"iframe\",\"img\",\"input\",\"ins\",\"kbd\",\"keygen\",\"label\",\"legend\",\"li\",\"link\",\"main\",\"map\",\"mark\",\"menu\",\"menuitem\",\"meta\",\"meter\",\"nav\",\"noscript\",\"object\",\"ol\",\"optgroup\",\"option\",\"output\",\"p\",\"param\",\"picture\",\"pre\",\"progress\",\"q\",\"rp\",\"rt\",\"ruby\",\"s\",\"samp\",\"script\",\"section\",\"select\",\"small\",\"source\",\"span\",\"strong\",\"style\",\"sub\",\"summary\",\"sup\",\"table\",\"tbody\",\"td\",\"textarea\",\"tfoot\",\"th\",\"thead\",\"time\",\"tr\",\"track\",\"u\",\"ul\",\"use\",\"var\",\"video\",\"wbr\",\"circle\",\"clipPath\",\"defs\",\"ellipse\",\"foreignObject\",\"g\",\"image\",\"line\",\"linearGradient\",\"marker\",\"mask\",\"path\",\"pattern\",\"polygon\",\"polyline\",\"radialGradient\",\"rect\",\"stop\",\"svg\",\"text\",\"tspan\"]),O=/[!\"#$%&'()*+,./:;<=>?@[\\\\\\]^`{|}~-]+/g,D=/(^-|-$)/g;function R(e){return e.replace(O,\"-\").replace(D,\"\")}var T=/(a)(d)/gi,k=52,j=function(e){return String.fromCharCode(e+(e>25?39:97))};function x(e){var t,n=\"\";for(t=Math.abs(e);t>k;t=t/k|0)n=j(t%k)+n;return(j(t%k)+n).replace(T,\"$1-$2\")}var V,F=5381,M=function(e,t){for(var n=t.length;n;)e=33*e^t.charCodeAt(--n);return e},z=function(e){return M(F,e)};function $(e){return x(z(e)>>>0)}function B(e){return\"production\"!==process.env.NODE_ENV&&\"string\"==typeof e&&e||e.displayName||e.name||\"Component\"}function L(e){return\"string\"==typeof e&&(\"production\"===process.env.NODE_ENV||e.charAt(0)===e.charAt(0).toLowerCase())}var G=\"function\"==typeof Symbol&&Symbol.for,Y=G?Symbol.for(\"react.memo\"):60115,W=G?Symbol.for(\"react.forward_ref\"):60112,q={childContextTypes:!0,contextType:!0,contextTypes:!0,defaultProps:!0,displayName:!0,getDefaultProps:!0,getDerivedStateFromError:!0,getDerivedStateFromProps:!0,mixins:!0,propTypes:!0,type:!0},H={name:!0,length:!0,prototype:!0,caller:!0,callee:!0,arguments:!0,arity:!0},U={$$typeof:!0,compare:!0,defaultProps:!0,displayName:!0,propTypes:!0,type:!0},J=((V={})[W]={$$typeof:!0,render:!0,defaultProps:!0,displayName:!0,propTypes:!0},V[Y]=U,V);function X(e){return(\"type\"in(t=e)&&t.type.$$typeof)===Y?U:\"$$typeof\"in e?J[e.$$typeof]:q;var t}var Z=Object.defineProperty,K=Object.getOwnPropertyNames,Q=Object.getOwnPropertySymbols,ee=Object.getOwnPropertyDescriptor,te=Object.getPrototypeOf,ne=Object.prototype;function oe(e,t,n){if(\"string\"!=typeof t){if(ne){var o=te(t);o&&o!==ne&&oe(e,o,n)}var r=K(t);Q&&(r=r.concat(Q(t)));for(var s=X(e),i=X(t),a=0;a<r.length;++a){var c=r[a];if(!(c in H||n&&n[c]||i&&c in i||s&&c in s)){var l=ee(t,c);try{Z(e,c,l)}catch(e){}}}}return e}function re(e){return\"function\"==typeof e}function se(e){return\"object\"==typeof e&&\"styledComponentId\"in e}function ie(e,t){return e&&t?\"\".concat(e,\" \").concat(t):e||t||\"\"}function ae(e,t){if(0===e.length)return\"\";for(var n=e[0],o=1;o<e.length;o++)n+=t?t+e[o]:e[o];return n}function ce(e){return null!==e&&\"object\"==typeof e&&e.constructor.name===Object.name&&!(\"props\"in e&&e.$$typeof)}function le(e,t,n){if(void 0===n&&(n=!1),!n&&!ce(e)&&!Array.isArray(e))return t;if(Array.isArray(t))for(var o=0;o<t.length;o++)e[o]=le(e[o],t[o]);else if(ce(t))for(var o in t)e[o]=le(e[o],t[o]);return e}function ue(e,t){Object.defineProperty(e,\"toString\",{value:t})}var pe=\"production\"!==process.env.NODE_ENV?{1:\"Cannot create styled-component for component: %s.\\n\\n\",2:\"Can't collect styles once you've consumed a `ServerStyleSheet`'s styles! `ServerStyleSheet` is a one off instance for each server-side render cycle.\\n\\n- Are you trying to reuse it across renders?\\n- Are you accidentally calling collectStyles twice?\\n\\n\",3:\"Streaming SSR is only supported in a Node.js environment; Please do not try to call this method in the browser.\\n\\n\",4:\"The `StyleSheetManager` expects a valid target or sheet prop!\\n\\n- Does this error occur on the client and is your target falsy?\\n- Does this error occur on the server and is the sheet falsy?\\n\\n\",5:\"The clone method cannot be used on the client!\\n\\n- Are you running in a client-like environment on the server?\\n- Are you trying to run SSR on the client?\\n\\n\",6:\"Trying to insert a new style tag, but the given Node is unmounted!\\n\\n- Are you using a custom target that isn't mounted?\\n- Does your document not have a valid head element?\\n- Have you accidentally removed a style tag manually?\\n\\n\",7:'ThemeProvider: Please return an object from your \"theme\" prop function, e.g.\\n\\n```js\\ntheme={() => ({})}\\n```\\n\\n',8:'ThemeProvider: Please make your \"theme\" prop an object.\\n\\n',9:\"Missing document `<head>`\\n\\n\",10:\"Cannot find a StyleSheet instance. Usually this happens if there are multiple copies of styled-components loaded at once. Check out this issue for how to troubleshoot and fix the common cases where this situation can happen: https://github.com/styled-components/styled-components/issues/1941#issuecomment-417862021\\n\\n\",11:\"_This error was replaced with a dev-time warning, it will be deleted for v4 final._ [createGlobalStyle] received children which will not be rendered. Please use the component without passing children elements.\\n\\n\",12:\"It seems you are interpolating a keyframe declaration (%s) into an untagged string. This was supported in styled-components v3, but is not longer supported in v4 as keyframes are now injected on-demand. Please wrap your string in the css\\\\`\\\\` helper which ensures the styles are injected correctly. See https://www.styled-components.com/docs/api#css\\n\\n\",13:\"%s is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\\n\\n\",14:'ThemeProvider: \"theme\" prop is required.\\n\\n',15:\"A stylis plugin has been supplied that is not named. We need a name for each plugin to be able to prevent styling collisions between different stylis configurations within the same app. Before you pass your plugin to `<StyleSheetManager stylisPlugins={[]}>`, please make sure each plugin is uniquely-named, e.g.\\n\\n```js\\nObject.defineProperty(importedPlugin, 'name', { value: 'some-unique-name' });\\n```\\n\\n\",16:\"Reached the limit of how many styled components may be created at group %s.\\nYou may only create up to 1,073,741,824 components. If you're creating components dynamically,\\nas for instance in your render method then you may be running into this limitation.\\n\\n\",17:\"CSSStyleSheet could not be found on HTMLStyleElement.\\nHas styled-components' style tag been unmounted or altered by another script?\\n\",18:\"ThemeProvider: Please make sure your useTheme hook is within a `<ThemeProvider>`\"}:{};function de(){for(var e=[],t=0;t<arguments.length;t++)e[t]=arguments[t];for(var n=e[0],o=[],r=1,s=e.length;r<s;r+=1)o.push(e[r]);return o.forEach(function(e){n=n.replace(/%[a-z]/,e)}),n}function he(t){for(var n=[],o=1;o<arguments.length;o++)n[o-1]=arguments[o];return\"production\"===process.env.NODE_ENV?new Error(\"An error occurred. See https://github.com/styled-components/styled-components/blob/main/packages/styled-components/src/utils/errors.md#\".concat(t,\" for more information.\").concat(n.length>0?\" Args: \".concat(n.join(\", \")):\"\")):new Error(de.apply(void 0,e([pe[t]],n,!1)).trim())}var fe=function(){function e(e){this.groupSizes=new Uint32Array(512),this.length=512,this.tag=e}return e.prototype.indexOfGroup=function(e){for(var t=0,n=0;n<e;n++)t+=this.groupSizes[n];return t},e.prototype.insertRules=function(e,t){if(e>=this.groupSizes.length){for(var n=this.groupSizes,o=n.length,r=o;e>=r;)if((r<<=1)<0)throw he(16,\"\".concat(e));this.groupSizes=new Uint32Array(r),this.groupSizes.set(n),this.length=r;for(var s=o;s<r;s++)this.groupSizes[s]=0}for(var i=this.indexOfGroup(e+1),a=(s=0,t.length);s<a;s++)this.tag.insertRule(i,t[s])&&(this.groupSizes[e]++,i++)},e.prototype.clearGroup=function(e){if(e<this.length){var t=this.groupSizes[e],n=this.indexOfGroup(e),o=n+t;this.groupSizes[e]=0;for(var r=n;r<o;r++)this.tag.deleteRule(n)}},e.prototype.getGroup=function(e){var t=\"\";if(e>=this.length||0===this.groupSizes[e])return t;for(var n=this.groupSizes[e],o=this.indexOfGroup(e),r=o+n,s=o;s<r;s++)t+=\"\".concat(this.tag.getRule(s)).concat(g);return t},e}(),me=1<<30,ye=new Map,ve=new Map,ge=1,Se=function(e){if(ye.has(e))return ye.get(e);for(;ve.has(ge);)ge++;var t=ge++;if(\"production\"!==process.env.NODE_ENV&&((0|t)<0||t>me))throw he(16,\"\".concat(t));return ye.set(e,t),ve.set(t,e),t},we=function(e,t){ge=t+1,ye.set(e,t),ve.set(t,e)},be=\"style[\".concat(f,\"][\").concat(y,'=\"').concat(v,'\"]'),Ee=new RegExp(\"^\".concat(f,'\\\\.g(\\\\d+)\\\\[id=\"([\\\\w\\\\d-]+)\"\\\\].*?\"([^\"]*)')),Ne=function(e,t,n){for(var o,r=n.split(\",\"),s=0,i=r.length;s<i;s++)(o=r[s])&&e.registerName(t,o)},Pe=function(e,t){for(var n,o=(null!==(n=t.textContent)&&void 0!==n?n:\"\").split(g),r=[],s=0,i=o.length;s<i;s++){var a=o[s].trim();if(a){var c=a.match(Ee);if(c){var l=0|parseInt(c[1],10),u=c[2];0!==l&&(we(u,l),Ne(e,u,c[3]),e.getTag().insertRules(l,r)),r.length=0}else r.push(a)}}},_e=function(e){for(var t=document.querySelectorAll(be),n=0,o=t.length;n<o;n++){var r=t[n];r&&r.getAttribute(f)!==m&&(Pe(e,r),r.parentNode&&r.parentNode.removeChild(r))}};function Ce(){return\"undefined\"!=typeof __webpack_nonce__?__webpack_nonce__:null}var Ie=function(e){var t=document.head,n=e||t,o=document.createElement(\"style\"),r=function(e){var t=Array.from(e.querySelectorAll(\"style[\".concat(f,\"]\")));return t[t.length-1]}(n),s=void 0!==r?r.nextSibling:null;o.setAttribute(f,m),o.setAttribute(y,v);var i=Ce();return i&&o.setAttribute(\"nonce\",i),n.insertBefore(o,s),o},Ae=function(){function e(e){this.element=Ie(e),this.element.appendChild(document.createTextNode(\"\")),this.sheet=function(e){if(e.sheet)return e.sheet;for(var t=document.styleSheets,n=0,o=t.length;n<o;n++){var r=t[n];if(r.ownerNode===e)return r}throw he(17)}(this.element),this.length=0}return e.prototype.insertRule=function(e,t){try{return this.sheet.insertRule(t,e),this.length++,!0}catch(e){return!1}},e.prototype.deleteRule=function(e){this.sheet.deleteRule(e),this.length--},e.prototype.getRule=function(e){var t=this.sheet.cssRules[e];return t&&t.cssText?t.cssText:\"\"},e}(),Oe=function(){function e(e){this.element=Ie(e),this.nodes=this.element.childNodes,this.length=0}return e.prototype.insertRule=function(e,t){if(e<=this.length&&e>=0){var n=document.createTextNode(t);return this.element.insertBefore(n,this.nodes[e]||null),this.length++,!0}return!1},e.prototype.deleteRule=function(e){this.element.removeChild(this.nodes[e]),this.length--},e.prototype.getRule=function(e){return e<this.length?this.nodes[e].textContent:\"\"},e}(),De=function(){function e(e){this.rules=[],this.length=0}return e.prototype.insertRule=function(e,t){return e<=this.length&&(this.rules.splice(e,0,t),this.length++,!0)},e.prototype.deleteRule=function(e){this.rules.splice(e,1),this.length--},e.prototype.getRule=function(e){return e<this.length?this.rules[e]:\"\"},e}(),Re=S,Te={isServer:!S,useCSSOMInjection:!w},ke=function(){function e(e,n,o){void 0===e&&(e=C),void 0===n&&(n={});var r=this;this.options=t(t({},Te),e),this.gs=n,this.names=new Map(o),this.server=!!e.isServer,!this.server&&S&&Re&&(Re=!1,_e(this)),ue(this,function(){return function(e){for(var t=e.getTag(),n=t.length,o=\"\",r=function(n){var r=function(e){return ve.get(e)}(n);if(void 0===r)return\"continue\";var s=e.names.get(r),i=t.getGroup(n);if(void 0===s||!s.size||0===i.length)return\"continue\";var a=\"\".concat(f,\".g\").concat(n,'[id=\"').concat(r,'\"]'),c=\"\";void 0!==s&&s.forEach(function(e){e.length>0&&(c+=\"\".concat(e,\",\"))}),o+=\"\".concat(i).concat(a,'{content:\"').concat(c,'\"}').concat(g)},s=0;s<n;s++)r(s);return o}(r)})}return e.registerId=function(e){return Se(e)},e.prototype.rehydrate=function(){!this.server&&S&&_e(this)},e.prototype.reconstructWithOptions=function(n,o){return void 0===o&&(o=!0),new e(t(t({},this.options),n),this.gs,o&&this.names||void 0)},e.prototype.allocateGSInstance=function(e){return this.gs[e]=(this.gs[e]||0)+1},e.prototype.getTag=function(){return this.tag||(this.tag=(e=function(e){var t=e.useCSSOMInjection,n=e.target;return e.isServer?new De(n):t?new Ae(n):new Oe(n)}(this.options),new fe(e)));var e},e.prototype.hasNameForId=function(e,t){return this.names.has(e)&&this.names.get(e).has(t)},e.prototype.registerName=function(e,t){if(Se(e),this.names.has(e))this.names.get(e).add(t);else{var n=new Set;n.add(t),this.names.set(e,n)}},e.prototype.insertRules=function(e,t,n){this.registerName(e,t),this.getTag().insertRules(Se(e),n)},e.prototype.clearNames=function(e){this.names.has(e)&&this.names.get(e).clear()},e.prototype.clearRules=function(e){this.getTag().clearGroup(Se(e)),this.clearNames(e)},e.prototype.clearTag=function(){this.tag=void 0},e}(),je=/&/g,xe=/^\\s*\\/\\/.*$/gm;function Ve(e,t){return e.map(function(e){return\"rule\"===e.type&&(e.value=\"\".concat(t,\" \").concat(e.value),e.value=e.value.replaceAll(\",\",\",\".concat(t,\" \")),e.props=e.props.map(function(e){return\"\".concat(t,\" \").concat(e)})),Array.isArray(e.children)&&\"@keyframes\"!==e.type&&(e.children=Ve(e.children,t)),e})}function Fe(e){var t,n,o,r=void 0===e?C:e,s=r.options,i=void 0===s?C:s,a=r.plugins,c=void 0===a?_:a,l=function(e,o,r){return r.startsWith(n)&&r.endsWith(n)&&r.replaceAll(n,\"\").length>0?\".\".concat(t):e},u=c.slice();u.push(function(e){e.type===d.RULESET&&e.value.includes(\"&\")&&(e.props[0]=e.props[0].replace(je,n).replace(o,l))}),i.prefix&&u.push(d.prefixer),u.push(d.stringify);var p=function(e,r,s,a){void 0===r&&(r=\"\"),void 0===s&&(s=\"\"),void 0===a&&(a=\"&\"),t=a,n=r,o=new RegExp(\"\\\\\".concat(n,\"\\\\b\"),\"g\");var c=e.replace(xe,\"\"),l=d.compile(s||r?\"\".concat(s,\" \").concat(r,\" { \").concat(c,\" }\"):c);i.namespace&&(l=Ve(l,i.namespace));var p=[];return d.serialize(l,d.middleware(u.concat(d.rulesheet(function(e){return p.push(e)})))),p};return p.hash=c.length?c.reduce(function(e,t){return t.name||he(15),M(e,t.name)},F).toString():\"\",p}var Me=new ke,ze=Fe(),$e=o.createContext({shouldForwardProp:void 0,styleSheet:Me,stylis:ze}),Be=$e.Consumer,Le=o.createContext(void 0);function Ge(){return c($e)}function Ye(e){var t=s(e.stylisPlugins),n=t[0],r=t[1],c=Ge().styleSheet,l=i(function(){var t=c;return e.sheet?t=e.sheet:e.target&&(t=t.reconstructWithOptions({target:e.target},!1)),e.disableCSSOMInjection&&(t=t.reconstructWithOptions({useCSSOMInjection:!1})),t},[e.disableCSSOMInjection,e.sheet,e.target,c]),u=i(function(){return Fe({options:{namespace:e.namespace,prefix:e.enableVendorPrefixes},plugins:n})},[e.enableVendorPrefixes,e.namespace,n]);a(function(){p(n,e.stylisPlugins)||r(e.stylisPlugins)},[e.stylisPlugins]);var d=i(function(){return{shouldForwardProp:e.shouldForwardProp,styleSheet:l,stylis:u}},[e.shouldForwardProp,l,u]);return o.createElement($e.Provider,{value:d},o.createElement(Le.Provider,{value:u},e.children))}var We=function(){function e(e,t){var n=this;this.inject=function(e,t){void 0===t&&(t=ze);var o=n.name+t.hash;e.hasNameForId(n.id,o)||e.insertRules(n.id,o,t(n.rules,o,\"@keyframes\"))},this.name=e,this.id=\"sc-keyframes-\".concat(e),this.rules=t,ue(this,function(){throw he(12,String(n.name))})}return e.prototype.getName=function(e){return void 0===e&&(e=ze),this.name+e.hash},e}(),qe=function(e){return e>=\"A\"&&e<=\"Z\"};function He(e){for(var t=\"\",n=0;n<e.length;n++){var o=e[n];if(1===n&&\"-\"===o&&\"-\"===e[0])return e;qe(o)?t+=\"-\"+o.toLowerCase():t+=o}return t.startsWith(\"ms-\")?\"-\"+t:t}var Ue=function(e){return null==e||!1===e||\"\"===e},Je=function(t){var n,o,r=[];for(var s in t){var i=t[s];t.hasOwnProperty(s)&&!Ue(i)&&(Array.isArray(i)&&i.isCss||re(i)?r.push(\"\".concat(He(s),\":\"),i,\";\"):ce(i)?r.push.apply(r,e(e([\"\".concat(s,\" {\")],Je(i),!1),[\"}\"],!1)):r.push(\"\".concat(He(s),\": \").concat((n=s,null==(o=i)||\"boolean\"==typeof o||\"\"===o?\"\":\"number\"!=typeof o||0===o||n in h||n.startsWith(\"--\")?String(o).trim():\"\".concat(o,\"px\")),\";\")))}return r};function Xe(e,t,n,o){if(Ue(e))return[];if(se(e))return[\".\".concat(e.styledComponentId)];if(re(e)){if(!re(s=e)||s.prototype&&s.prototype.isReactComponent||!t)return[e];var r=e(t);return\"production\"===process.env.NODE_ENV||\"object\"!=typeof r||Array.isArray(r)||r instanceof We||ce(r)||null===r||console.error(\"\".concat(B(e),\" is not a styled component and cannot be referred to via component selector. See https://www.styled-components.com/docs/advanced#referring-to-other-components for more details.\")),Xe(r,t,n,o)}var s;return e instanceof We?n?(e.inject(n,o),[e.getName(o)]):[e]:ce(e)?Je(e):Array.isArray(e)?Array.prototype.concat.apply(_,e.map(function(e){return Xe(e,t,n,o)})):[e.toString()]}function Ze(e){for(var t=0;t<e.length;t+=1){var n=e[t];if(re(n)&&!se(n))return!1}return!0}var Ke=z(v),Qe=function(){function e(e,t,n){this.rules=e,this.staticRulesId=\"\",this.isStatic=\"production\"===process.env.NODE_ENV&&(void 0===n||n.isStatic)&&Ze(e),this.componentId=t,this.baseHash=M(Ke,t),this.baseStyle=n,ke.registerId(t)}return e.prototype.generateAndInjectStyles=function(e,t,n){var o=this.baseStyle?this.baseStyle.generateAndInjectStyles(e,t,n):\"\";if(this.isStatic&&!n.hash)if(this.staticRulesId&&t.hasNameForId(this.componentId,this.staticRulesId))o=ie(o,this.staticRulesId);else{var r=ae(Xe(this.rules,e,t,n)),s=x(M(this.baseHash,r)>>>0);if(!t.hasNameForId(this.componentId,s)){var i=n(r,\".\".concat(s),void 0,this.componentId);t.insertRules(this.componentId,s,i)}o=ie(o,s),this.staticRulesId=s}else{for(var a=M(this.baseHash,n.hash),c=\"\",l=0;l<this.rules.length;l++){var u=this.rules[l];if(\"string\"==typeof u)c+=u,\"production\"!==process.env.NODE_ENV&&(a=M(a,u));else if(u){var p=ae(Xe(u,e,t,n));a=M(a,p+l),c+=p}}if(c){var d=x(a>>>0);t.hasNameForId(this.componentId,d)||t.insertRules(this.componentId,d,n(c,\".\".concat(d),void 0,this.componentId)),o=ie(o,d)}}return o},e}(),et=o.createContext(void 0),tt=et.Consumer;function nt(){var e=c(et);if(!e)throw he(18);return e}function ot(e){var n=o.useContext(et),r=i(function(){return function(e,n){if(!e)throw he(14);if(re(e)){var o=e(n);if(\"production\"!==process.env.NODE_ENV&&(null===o||Array.isArray(o)||\"object\"!=typeof o))throw he(7);return o}if(Array.isArray(e)||\"object\"!=typeof e)throw he(8);return n?t(t({},n),e):e}(e.theme,n)},[e.theme,n]);return e.children?o.createElement(et.Provider,{value:r},e.children):null}var rt={},st=new Set;function it(e,r,s){var i=se(e),a=e,c=!L(e),p=r.attrs,d=void 0===p?_:p,h=r.componentId,f=void 0===h?function(e,t){var n=\"string\"!=typeof e?\"sc\":R(e);rt[n]=(rt[n]||0)+1;var o=\"\".concat(n,\"-\").concat($(v+n+rt[n]));return t?\"\".concat(t,\"-\").concat(o):o}(r.displayName,r.parentComponentId):h,m=r.displayName,y=void 0===m?function(e){return L(e)?\"styled.\".concat(e):\"Styled(\".concat(B(e),\")\")}(e):m,g=r.displayName&&r.componentId?\"\".concat(R(r.displayName),\"-\").concat(r.componentId):r.componentId||f,S=i&&a.attrs?a.attrs.concat(d).filter(Boolean):d,w=r.shouldForwardProp;if(i&&a.shouldForwardProp){var b=a.shouldForwardProp;if(r.shouldForwardProp){var E=r.shouldForwardProp;w=function(e,t){return b(e,t)&&E(e,t)}}else w=b}var N=new Qe(s,g,i?a.componentStyle:void 0);function O(e,r){return function(e,r,s){var i=e.attrs,a=e.componentStyle,c=e.defaultProps,p=e.foldedComponentIds,d=e.styledComponentId,h=e.target,f=o.useContext(et),m=Ge(),y=e.shouldForwardProp||m.shouldForwardProp;\"production\"!==process.env.NODE_ENV&&l(d);var v=I(r,f,c)||C,g=function(e,n,o){for(var r,s=t(t({},n),{className:void 0,theme:o}),i=0;i<e.length;i+=1){var a=re(r=e[i])?r(s):r;for(var c in a)s[c]=\"className\"===c?ie(s[c],a[c]):\"style\"===c?t(t({},s[c]),a[c]):a[c]}return n.className&&(s.className=ie(s.className,n.className)),s}(i,r,v),S=g.as||h,w={};for(var b in g)void 0===g[b]||\"$\"===b[0]||\"as\"===b||\"theme\"===b&&g.theme===v||(\"forwardedAs\"===b?w.as=g.forwardedAs:y&&!y(b,S)||(w[b]=g[b],y||\"development\"!==process.env.NODE_ENV||n(b)||st.has(b)||!A.has(S)||(st.add(b),console.warn('styled-components: it looks like an unknown prop \"'.concat(b,'\" is being sent through to the DOM, which will likely trigger a React console error. If you would like automatic filtering of unknown props, you can opt-into that behavior via `<StyleSheetManager shouldForwardProp={...}>` (connect an API like `@emotion/is-prop-valid`) or consider using transient props (`$` prefix for automatic filtering.)')))));var E=function(e,t){var n=Ge(),o=e.generateAndInjectStyles(t,n.styleSheet,n.stylis);return\"production\"!==process.env.NODE_ENV&&l(o),o}(a,g);\"production\"!==process.env.NODE_ENV&&e.warnTooManyClasses&&e.warnTooManyClasses(E);var N=ie(p,d);return E&&(N+=\" \"+E),g.className&&(N+=\" \"+g.className),w[L(S)&&!A.has(S)?\"class\":\"className\"]=N,s&&(w.ref=s),u(S,w)}(D,e,r)}O.displayName=y;var D=o.forwardRef(O);return D.attrs=S,D.componentStyle=N,D.displayName=y,D.shouldForwardProp=w,D.foldedComponentIds=i?ie(a.foldedComponentIds,a.styledComponentId):\"\",D.styledComponentId=g,D.target=i?a.target:e,Object.defineProperty(D,\"defaultProps\",{get:function(){return this._foldedDefaultProps},set:function(e){this._foldedDefaultProps=i?function(e){for(var t=[],n=1;n<arguments.length;n++)t[n-1]=arguments[n];for(var o=0,r=t;o<r.length;o++)le(e,r[o],!0);return e}({},a.defaultProps,e):e}}),\"production\"!==process.env.NODE_ENV&&(P(y,g),D.warnTooManyClasses=function(e,t){var n={},o=!1;return function(r){if(!o&&(n[r]=!0,Object.keys(n).length>=200)){var s=t?' with the id of \"'.concat(t,'\"'):\"\";console.warn(\"Over \".concat(200,\" classes were generated for component \").concat(e).concat(s,\".\\n\")+\"Consider using the attrs method, together with a style object for frequently changed styles.\\nExample:\\n const Component = styled.div.attrs(props => ({\\n style: {\\n background: props.background,\\n },\\n }))`width: 100%;`\\n\\n <Component />\"),o=!0,n={}}}}(y,g)),ue(D,function(){return\".\".concat(D.styledComponentId)}),c&&oe(D,e,{attrs:!0,componentStyle:!0,displayName:!0,foldedComponentIds:!0,shouldForwardProp:!0,styledComponentId:!0,target:!0}),D}function at(e,t){for(var n=[e[0]],o=0,r=t.length;o<r;o+=1)n.push(t[o],e[o+1]);return n}var ct=function(e){return Object.assign(e,{isCss:!0})};function lt(t){for(var n=[],o=1;o<arguments.length;o++)n[o-1]=arguments[o];if(re(t)||ce(t))return ct(Xe(at(_,e([t],n,!0))));var r=t;return 0===n.length&&1===r.length&&\"string\"==typeof r[0]?Xe(r):ct(Xe(at(r,n)))}function ut(n,o,r){if(void 0===r&&(r=C),!o)throw he(1,o);var s=function(t){for(var s=[],i=1;i<arguments.length;i++)s[i-1]=arguments[i];return n(o,r,lt.apply(void 0,e([t],s,!1)))};return s.attrs=function(e){return ut(n,o,t(t({},r),{attrs:Array.prototype.concat(r.attrs,e).filter(Boolean)}))},s.withConfig=function(e){return ut(n,o,t(t({},r),e))},s}var pt=function(e){return ut(it,e)},dt=pt;A.forEach(function(e){dt[e]=pt(e)});var ht=function(){function e(e,t){this.rules=e,this.componentId=t,this.isStatic=Ze(e),ke.registerId(this.componentId+1)}return e.prototype.createStyles=function(e,t,n,o){var r=o(ae(Xe(this.rules,t,n,o)),\"\"),s=this.componentId+e;n.insertRules(s,s,r)},e.prototype.removeStyles=function(e,t){t.clearRules(this.componentId+e)},e.prototype.renderStyles=function(e,t,n,o){e>2&&ke.registerId(this.componentId+e),this.removeStyles(e,n),this.createStyles(e,t,n,o)},e}();function ft(n){for(var r=[],s=1;s<arguments.length;s++)r[s-1]=arguments[s];var i=lt.apply(void 0,e([n],r,!1)),a=\"sc-global-\".concat($(JSON.stringify(i))),c=new ht(i,a);\"production\"!==process.env.NODE_ENV&&P(a);var l=function(e){var t=Ge(),n=o.useContext(et),r=o.useRef(t.styleSheet.allocateGSInstance(a)).current;return\"production\"!==process.env.NODE_ENV&&o.Children.count(e.children)&&console.warn(\"The global style component \".concat(a,\" was given child JSX. createGlobalStyle does not render children.\")),\"production\"!==process.env.NODE_ENV&&i.some(function(e){return\"string\"==typeof e&&-1!==e.indexOf(\"@import\")})&&console.warn(\"Please do not use @import CSS syntax in createGlobalStyle at this time, as the CSSOM APIs we use in production do not handle it well. Instead, we recommend using a library such as react-helmet to inject a typical <link> meta tag to the stylesheet, or simply embedding it manually in your index.html <head> section for a simpler app.\"),t.styleSheet.server&&u(r,e,t.styleSheet,n,t.stylis),o.useLayoutEffect(function(){if(!t.styleSheet.server)return u(r,e,t.styleSheet,n,t.stylis),function(){return c.removeStyles(r,t.styleSheet)}},[r,e,t.styleSheet,n,t.stylis]),null};function u(e,n,o,r,s){if(c.isStatic)c.renderStyles(e,b,o,s);else{var i=t(t({},n),{theme:I(n,r,l.defaultProps)});c.renderStyles(e,i,o,s)}}return o.memo(l)}function mt(t){for(var n=[],o=1;o<arguments.length;o++)n[o-1]=arguments[o];\"production\"!==process.env.NODE_ENV&&\"undefined\"!=typeof navigator&&\"ReactNative\"===navigator.product&&console.warn(\"`keyframes` cannot be used on ReactNative, only on the web. To do animation in ReactNative please use Animated.\");var r=ae(lt.apply(void 0,e([t],n,!1))),s=$(r);return new We(s,r)}function yt(e){var n=o.forwardRef(function(n,r){var s=I(n,o.useContext(et),e.defaultProps);return\"production\"!==process.env.NODE_ENV&&void 0===s&&console.warn('[withTheme] You are not using a ThemeProvider nor passing a theme prop or a theme in defaultProps in component class \"'.concat(B(e),'\"')),o.createElement(e,t({},n,{theme:s,ref:r}))});return n.displayName=\"WithTheme(\".concat(B(e),\")\"),oe(n,e)}var vt=function(){function e(){var e=this;this._emitSheetCSS=function(){var t=e.instance.toString();if(!t)return\"\";var n=Ce(),o=ae([n&&'nonce=\"'.concat(n,'\"'),\"\".concat(f,'=\"true\"'),\"\".concat(y,'=\"').concat(v,'\"')].filter(Boolean),\" \");return\"<style \".concat(o,\">\").concat(t,\"</style>\")},this.getStyleTags=function(){if(e.sealed)throw he(2);return e._emitSheetCSS()},this.getStyleElement=function(){var n;if(e.sealed)throw he(2);var r=e.instance.toString();if(!r)return[];var s=((n={})[f]=\"\",n[y]=v,n.dangerouslySetInnerHTML={__html:r},n),i=Ce();return i&&(s.nonce=i),[o.createElement(\"style\",t({},s,{key:\"sc-0-0\"}))]},this.seal=function(){e.sealed=!0},this.instance=new ke({isServer:!0}),this.sealed=!1}return e.prototype.collectStyles=function(e){if(this.sealed)throw he(2);return o.createElement(Ye,{sheet:this.instance},e)},e.prototype.interleaveWithNodeStream=function(e){throw he(3)},e}(),gt={StyleSheet:ke,mainSheet:Me};\"production\"!==process.env.NODE_ENV&&\"undefined\"!=typeof navigator&&\"ReactNative\"===navigator.product&&console.warn(\"It looks like you've imported 'styled-components' on React Native.\\nPerhaps you're looking to import 'styled-components/native'?\\nRead more about this at https://www.styled-components.com/docs/basics#react-native\");var St=\"__sc-\".concat(f,\"__\");\"production\"!==process.env.NODE_ENV&&\"test\"!==process.env.NODE_ENV&&\"undefined\"!=typeof window&&(window[St]||(window[St]=0),1===window[St]&&console.warn(\"It looks like there are several instances of 'styled-components' initialized in this application. This may cause dynamic styles to not render properly, errors during the rehydration process, a missing theme prop, and makes your application bigger without good reason.\\n\\nSee https://s-c.sh/2BAXzed for more info.\"),window[St]+=1);export{vt as ServerStyleSheet,Be as StyleSheetConsumer,$e as StyleSheetContext,Ye as StyleSheetManager,tt as ThemeConsumer,et as ThemeContext,ot as ThemeProvider,gt as __PRIVATE__,ft as createGlobalStyle,lt as css,dt as default,se as isStyledComponent,mt as keyframes,dt as styled,nt as useTheme,v as version,yt as withTheme};\n//# sourceMappingURL=styled-components.browser.esm.js.map\n","/*!\n * is-plain-object <https://github.com/jonschlinkert/is-plain-object>\n *\n * Copyright (c) 2014-2017, Jon Schlinkert.\n * Released under the MIT License.\n */\n\nfunction isObject(o) {\n return Object.prototype.toString.call(o) === '[object Object]';\n}\n\nfunction isPlainObject(o) {\n var ctor,prot;\n\n if (isObject(o) === false) return false;\n\n // If has modified constructor\n ctor = o.constructor;\n if (ctor === undefined) return true;\n\n // If has modified prototype\n prot = ctor.prototype;\n if (isObject(prot) === false) return false;\n\n // If constructor does not have an Object-specific method\n if (prot.hasOwnProperty('isPrototypeOf') === false) {\n return false;\n }\n\n // Most likely a plain Object\n return true;\n}\n\nexport { isPlainObject };\n","// src/utils/env.ts\nvar NOTHING = Symbol.for(\"immer-nothing\");\nvar DRAFTABLE = Symbol.for(\"immer-draftable\");\nvar DRAFT_STATE = Symbol.for(\"immer-state\");\n\n// src/utils/errors.ts\nvar errors = process.env.NODE_ENV !== \"production\" ? [\n // All error codes, starting by 0:\n function(plugin) {\n return `The plugin for '${plugin}' has not been loaded into Immer. To enable the plugin, import and call \\`enable${plugin}()\\` when initializing your application.`;\n },\n function(thing) {\n return `produce can only be called on things that are draftable: plain objects, arrays, Map, Set or classes that are marked with '[immerable]: true'. Got '${thing}'`;\n },\n \"This object has been frozen and should not be mutated\",\n function(data) {\n return \"Cannot use a proxy that has been revoked. Did you pass an object from inside an immer function to an async process? \" + data;\n },\n \"An immer producer returned a new value *and* modified its draft. Either return a new value *or* modify the draft.\",\n \"Immer forbids circular references\",\n \"The first or second argument to `produce` must be a function\",\n \"The third argument to `produce` must be a function or undefined\",\n \"First argument to `createDraft` must be a plain object, an array, or an immerable object\",\n \"First argument to `finishDraft` must be a draft returned by `createDraft`\",\n function(thing) {\n return `'current' expects a draft, got: ${thing}`;\n },\n \"Object.defineProperty() cannot be used on an Immer draft\",\n \"Object.setPrototypeOf() cannot be used on an Immer draft\",\n \"Immer only supports deleting array indices\",\n \"Immer only supports setting array indices and the 'length' property\",\n function(thing) {\n return `'original' expects a draft, got: ${thing}`;\n }\n // Note: if more errors are added, the errorOffset in Patches.ts should be increased\n // See Patches.ts for additional errors\n] : [];\nfunction die(error, ...args) {\n if (process.env.NODE_ENV !== \"production\") {\n const e = errors[error];\n const msg = typeof e === \"function\" ? e.apply(null, args) : e;\n throw new Error(`[Immer] ${msg}`);\n }\n throw new Error(\n `[Immer] minified error nr: ${error}. Full error at: https://bit.ly/3cXEKWf`\n );\n}\n\n// src/utils/common.ts\nvar getPrototypeOf = Object.getPrototypeOf;\nfunction isDraft(value) {\n return !!value && !!value[DRAFT_STATE];\n}\nfunction isDraftable(value) {\n if (!value)\n return false;\n return isPlainObject(value) || Array.isArray(value) || !!value[DRAFTABLE] || !!value.constructor?.[DRAFTABLE] || isMap(value) || isSet(value);\n}\nvar objectCtorString = Object.prototype.constructor.toString();\nfunction isPlainObject(value) {\n if (!value || typeof value !== \"object\")\n return false;\n const proto = getPrototypeOf(value);\n if (proto === null) {\n return true;\n }\n const Ctor = Object.hasOwnProperty.call(proto, \"constructor\") && proto.constructor;\n if (Ctor === Object)\n return true;\n return typeof Ctor == \"function\" && Function.toString.call(Ctor) === objectCtorString;\n}\nfunction original(value) {\n if (!isDraft(value))\n die(15, value);\n return value[DRAFT_STATE].base_;\n}\nfunction each(obj, iter) {\n if (getArchtype(obj) === 0 /* Object */) {\n Reflect.ownKeys(obj).forEach((key) => {\n iter(key, obj[key], obj);\n });\n } else {\n obj.forEach((entry, index) => iter(index, entry, obj));\n }\n}\nfunction getArchtype(thing) {\n const state = thing[DRAFT_STATE];\n return state ? state.type_ : Array.isArray(thing) ? 1 /* Array */ : isMap(thing) ? 2 /* Map */ : isSet(thing) ? 3 /* Set */ : 0 /* Object */;\n}\nfunction has(thing, prop) {\n return getArchtype(thing) === 2 /* Map */ ? thing.has(prop) : Object.prototype.hasOwnProperty.call(thing, prop);\n}\nfunction get(thing, prop) {\n return getArchtype(thing) === 2 /* Map */ ? thing.get(prop) : thing[prop];\n}\nfunction set(thing, propOrOldValue, value) {\n const t = getArchtype(thing);\n if (t === 2 /* Map */)\n thing.set(propOrOldValue, value);\n else if (t === 3 /* Set */) {\n thing.add(value);\n } else\n thing[propOrOldValue] = value;\n}\nfunction is(x, y) {\n if (x === y) {\n return x !== 0 || 1 / x === 1 / y;\n } else {\n return x !== x && y !== y;\n }\n}\nfunction isMap(target) {\n return target instanceof Map;\n}\nfunction isSet(target) {\n return target instanceof Set;\n}\nfunction latest(state) {\n return state.copy_ || state.base_;\n}\nfunction shallowCopy(base, strict) {\n if (isMap(base)) {\n return new Map(base);\n }\n if (isSet(base)) {\n return new Set(base);\n }\n if (Array.isArray(base))\n return Array.prototype.slice.call(base);\n const isPlain = isPlainObject(base);\n if (strict === true || strict === \"class_only\" && !isPlain) {\n const descriptors = Object.getOwnPropertyDescriptors(base);\n delete descriptors[DRAFT_STATE];\n let keys = Reflect.ownKeys(descriptors);\n for (let i = 0; i < keys.length; i++) {\n const key = keys[i];\n const desc = descriptors[key];\n if (desc.writable === false) {\n desc.writable = true;\n desc.configurable = true;\n }\n if (desc.get || desc.set)\n descriptors[key] = {\n configurable: true,\n writable: true,\n // could live with !!desc.set as well here...\n enumerable: desc.enumerable,\n value: base[key]\n };\n }\n return Object.create(getPrototypeOf(base), descriptors);\n } else {\n const proto = getPrototypeOf(base);\n if (proto !== null && isPlain) {\n return { ...base };\n }\n const obj = Object.create(proto);\n return Object.assign(obj, base);\n }\n}\nfunction freeze(obj, deep = false) {\n if (isFrozen(obj) || isDraft(obj) || !isDraftable(obj))\n return obj;\n if (getArchtype(obj) > 1) {\n obj.set = obj.add = obj.clear = obj.delete = dontMutateFrozenCollections;\n }\n Object.freeze(obj);\n if (deep)\n Object.entries(obj).forEach(([key, value]) => freeze(value, true));\n return obj;\n}\nfunction dontMutateFrozenCollections() {\n die(2);\n}\nfunction isFrozen(obj) {\n return Object.isFrozen(obj);\n}\n\n// src/utils/plugins.ts\nvar plugins = {};\nfunction getPlugin(pluginKey) {\n const plugin = plugins[pluginKey];\n if (!plugin) {\n die(0, pluginKey);\n }\n return plugin;\n}\nfunction loadPlugin(pluginKey, implementation) {\n if (!plugins[pluginKey])\n plugins[pluginKey] = implementation;\n}\n\n// src/core/scope.ts\nvar currentScope;\nfunction getCurrentScope() {\n return currentScope;\n}\nfunction createScope(parent_, immer_) {\n return {\n drafts_: [],\n parent_,\n immer_,\n // Whenever the modified draft contains a draft from another scope, we\n // need to prevent auto-freezing so the unowned draft can be finalized.\n canAutoFreeze_: true,\n unfinalizedDrafts_: 0\n };\n}\nfunction usePatchesInScope(scope, patchListener) {\n if (patchListener) {\n getPlugin(\"Patches\");\n scope.patches_ = [];\n scope.inversePatches_ = [];\n scope.patchListener_ = patchListener;\n }\n}\nfunction revokeScope(scope) {\n leaveScope(scope);\n scope.drafts_.forEach(revokeDraft);\n scope.drafts_ = null;\n}\nfunction leaveScope(scope) {\n if (scope === currentScope) {\n currentScope = scope.parent_;\n }\n}\nfunction enterScope(immer2) {\n return currentScope = createScope(currentScope, immer2);\n}\nfunction revokeDraft(draft) {\n const state = draft[DRAFT_STATE];\n if (state.type_ === 0 /* Object */ || state.type_ === 1 /* Array */)\n state.revoke_();\n else\n state.revoked_ = true;\n}\n\n// src/core/finalize.ts\nfunction processResult(result, scope) {\n scope.unfinalizedDrafts_ = scope.drafts_.length;\n const baseDraft = scope.drafts_[0];\n const isReplaced = result !== void 0 && result !== baseDraft;\n if (isReplaced) {\n if (baseDraft[DRAFT_STATE].modified_) {\n revokeScope(scope);\n die(4);\n }\n if (isDraftable(result)) {\n result = finalize(scope, result);\n if (!scope.parent_)\n maybeFreeze(scope, result);\n }\n if (scope.patches_) {\n getPlugin(\"Patches\").generateReplacementPatches_(\n baseDraft[DRAFT_STATE].base_,\n result,\n scope.patches_,\n scope.inversePatches_\n );\n }\n } else {\n result = finalize(scope, baseDraft, []);\n }\n revokeScope(scope);\n if (scope.patches_) {\n scope.patchListener_(scope.patches_, scope.inversePatches_);\n }\n return result !== NOTHING ? result : void 0;\n}\nfunction finalize(rootScope, value, path) {\n if (isFrozen(value))\n return value;\n const state = value[DRAFT_STATE];\n if (!state) {\n each(\n value,\n (key, childValue) => finalizeProperty(rootScope, state, value, key, childValue, path)\n );\n return value;\n }\n if (state.scope_ !== rootScope)\n return value;\n if (!state.modified_) {\n maybeFreeze(rootScope, state.base_, true);\n return state.base_;\n }\n if (!state.finalized_) {\n state.finalized_ = true;\n state.scope_.unfinalizedDrafts_--;\n const result = state.copy_;\n let resultEach = result;\n let isSet2 = false;\n if (state.type_ === 3 /* Set */) {\n resultEach = new Set(result);\n result.clear();\n isSet2 = true;\n }\n each(\n resultEach,\n (key, childValue) => finalizeProperty(rootScope, state, result, key, childValue, path, isSet2)\n );\n maybeFreeze(rootScope, result, false);\n if (path && rootScope.patches_) {\n getPlugin(\"Patches\").generatePatches_(\n state,\n path,\n rootScope.patches_,\n rootScope.inversePatches_\n );\n }\n }\n return state.copy_;\n}\nfunction finalizeProperty(rootScope, parentState, targetObject, prop, childValue, rootPath, targetIsSet) {\n if (process.env.NODE_ENV !== \"production\" && childValue === targetObject)\n die(5);\n if (isDraft(childValue)) {\n const path = rootPath && parentState && parentState.type_ !== 3 /* Set */ && // Set objects are atomic since they have no keys.\n !has(parentState.assigned_, prop) ? rootPath.concat(prop) : void 0;\n const res = finalize(rootScope, childValue, path);\n set(targetObject, prop, res);\n if (isDraft(res)) {\n rootScope.canAutoFreeze_ = false;\n } else\n return;\n } else if (targetIsSet) {\n targetObject.add(childValue);\n }\n if (isDraftable(childValue) && !isFrozen(childValue)) {\n if (!rootScope.immer_.autoFreeze_ && rootScope.unfinalizedDrafts_ < 1) {\n return;\n }\n finalize(rootScope, childValue);\n if ((!parentState || !parentState.scope_.parent_) && typeof prop !== \"symbol\" && Object.prototype.propertyIsEnumerable.call(targetObject, prop))\n maybeFreeze(rootScope, childValue);\n }\n}\nfunction maybeFreeze(scope, value, deep = false) {\n if (!scope.parent_ && scope.immer_.autoFreeze_ && scope.canAutoFreeze_) {\n freeze(value, deep);\n }\n}\n\n// src/core/proxy.ts\nfunction createProxyProxy(base, parent) {\n const isArray = Array.isArray(base);\n const state = {\n type_: isArray ? 1 /* Array */ : 0 /* Object */,\n // Track which produce call this is associated with.\n scope_: parent ? parent.scope_ : getCurrentScope(),\n // True for both shallow and deep changes.\n modified_: false,\n // Used during finalization.\n finalized_: false,\n // Track which properties have been assigned (true) or deleted (false).\n assigned_: {},\n // The parent draft state.\n parent_: parent,\n // The base state.\n base_: base,\n // The base proxy.\n draft_: null,\n // set below\n // The base copy with any updated values.\n copy_: null,\n // Called by the `produce` function.\n revoke_: null,\n isManual_: false\n };\n let target = state;\n let traps = objectTraps;\n if (isArray) {\n target = [state];\n traps = arrayTraps;\n }\n const { revoke, proxy } = Proxy.revocable(target, traps);\n state.draft_ = proxy;\n state.revoke_ = revoke;\n return proxy;\n}\nvar objectTraps = {\n get(state, prop) {\n if (prop === DRAFT_STATE)\n return state;\n const source = latest(state);\n if (!has(source, prop)) {\n return readPropFromProto(state, source, prop);\n }\n const value = source[prop];\n if (state.finalized_ || !isDraftable(value)) {\n return value;\n }\n if (value === peek(state.base_, prop)) {\n prepareCopy(state);\n return state.copy_[prop] = createProxy(value, state);\n }\n return value;\n },\n has(state, prop) {\n return prop in latest(state);\n },\n ownKeys(state) {\n return Reflect.ownKeys(latest(state));\n },\n set(state, prop, value) {\n const desc = getDescriptorFromProto(latest(state), prop);\n if (desc?.set) {\n desc.set.call(state.draft_, value);\n return true;\n }\n if (!state.modified_) {\n const current2 = peek(latest(state), prop);\n const currentState = current2?.[DRAFT_STATE];\n if (currentState && currentState.base_ === value) {\n state.copy_[prop] = value;\n state.assigned_[prop] = false;\n return true;\n }\n if (is(value, current2) && (value !== void 0 || has(state.base_, prop)))\n return true;\n prepareCopy(state);\n markChanged(state);\n }\n if (state.copy_[prop] === value && // special case: handle new props with value 'undefined'\n (value !== void 0 || prop in state.copy_) || // special case: NaN\n Number.isNaN(value) && Number.isNaN(state.copy_[prop]))\n return true;\n state.copy_[prop] = value;\n state.assigned_[prop] = true;\n return true;\n },\n deleteProperty(state, prop) {\n if (peek(state.base_, prop) !== void 0 || prop in state.base_) {\n state.assigned_[prop] = false;\n prepareCopy(state);\n markChanged(state);\n } else {\n delete state.assigned_[prop];\n }\n if (state.copy_) {\n delete state.copy_[prop];\n }\n return true;\n },\n // Note: We never coerce `desc.value` into an Immer draft, because we can't make\n // the same guarantee in ES5 mode.\n getOwnPropertyDescriptor(state, prop) {\n const owner = latest(state);\n const desc = Reflect.getOwnPropertyDescriptor(owner, prop);\n if (!desc)\n return desc;\n return {\n writable: true,\n configurable: state.type_ !== 1 /* Array */ || prop !== \"length\",\n enumerable: desc.enumerable,\n value: owner[prop]\n };\n },\n defineProperty() {\n die(11);\n },\n getPrototypeOf(state) {\n return getPrototypeOf(state.base_);\n },\n setPrototypeOf() {\n die(12);\n }\n};\nvar arrayTraps = {};\neach(objectTraps, (key, fn) => {\n arrayTraps[key] = function() {\n arguments[0] = arguments[0][0];\n return fn.apply(this, arguments);\n };\n});\narrayTraps.deleteProperty = function(state, prop) {\n if (process.env.NODE_ENV !== \"production\" && isNaN(parseInt(prop)))\n die(13);\n return arrayTraps.set.call(this, state, prop, void 0);\n};\narrayTraps.set = function(state, prop, value) {\n if (process.env.NODE_ENV !== \"production\" && prop !== \"length\" && isNaN(parseInt(prop)))\n die(14);\n return objectTraps.set.call(this, state[0], prop, value, state[0]);\n};\nfunction peek(draft, prop) {\n const state = draft[DRAFT_STATE];\n const source = state ? latest(state) : draft;\n return source[prop];\n}\nfunction readPropFromProto(state, source, prop) {\n const desc = getDescriptorFromProto(source, prop);\n return desc ? `value` in desc ? desc.value : (\n // This is a very special case, if the prop is a getter defined by the\n // prototype, we should invoke it with the draft as context!\n desc.get?.call(state.draft_)\n ) : void 0;\n}\nfunction getDescriptorFromProto(source, prop) {\n if (!(prop in source))\n return void 0;\n let proto = getPrototypeOf(source);\n while (proto) {\n const desc = Object.getOwnPropertyDescriptor(proto, prop);\n if (desc)\n return desc;\n proto = getPrototypeOf(proto);\n }\n return void 0;\n}\nfunction markChanged(state) {\n if (!state.modified_) {\n state.modified_ = true;\n if (state.parent_) {\n markChanged(state.parent_);\n }\n }\n}\nfunction prepareCopy(state) {\n if (!state.copy_) {\n state.copy_ = shallowCopy(\n state.base_,\n state.scope_.immer_.useStrictShallowCopy_\n );\n }\n}\n\n// src/core/immerClass.ts\nvar Immer2 = class {\n constructor(config) {\n this.autoFreeze_ = true;\n this.useStrictShallowCopy_ = false;\n /**\n * The `produce` function takes a value and a \"recipe function\" (whose\n * return value often depends on the base state). The recipe function is\n * free to mutate its first argument however it wants. All mutations are\n * only ever applied to a __copy__ of the base state.\n *\n * Pass only a function to create a \"curried producer\" which relieves you\n * from passing the recipe function every time.\n *\n * Only plain objects and arrays are made mutable. All other objects are\n * considered uncopyable.\n *\n * Note: This function is __bound__ to its `Immer` instance.\n *\n * @param {any} base - the initial state\n * @param {Function} recipe - function that receives a proxy of the base state as first argument and which can be freely modified\n * @param {Function} patchListener - optional function that will be called with all the patches produced here\n * @returns {any} a new state, or the initial state if nothing was modified\n */\n this.produce = (base, recipe, patchListener) => {\n if (typeof base === \"function\" && typeof recipe !== \"function\") {\n const defaultBase = recipe;\n recipe = base;\n const self = this;\n return function curriedProduce(base2 = defaultBase, ...args) {\n return self.produce(base2, (draft) => recipe.call(this, draft, ...args));\n };\n }\n if (typeof recipe !== \"function\")\n die(6);\n if (patchListener !== void 0 && typeof patchListener !== \"function\")\n die(7);\n let result;\n if (isDraftable(base)) {\n const scope = enterScope(this);\n const proxy = createProxy(base, void 0);\n let hasError = true;\n try {\n result = recipe(proxy);\n hasError = false;\n } finally {\n if (hasError)\n revokeScope(scope);\n else\n leaveScope(scope);\n }\n usePatchesInScope(scope, patchListener);\n return processResult(result, scope);\n } else if (!base || typeof base !== \"object\") {\n result = recipe(base);\n if (result === void 0)\n result = base;\n if (result === NOTHING)\n result = void 0;\n if (this.autoFreeze_)\n freeze(result, true);\n if (patchListener) {\n const p = [];\n const ip = [];\n getPlugin(\"Patches\").generateReplacementPatches_(base, result, p, ip);\n patchListener(p, ip);\n }\n return result;\n } else\n die(1, base);\n };\n this.produceWithPatches = (base, recipe) => {\n if (typeof base === \"function\") {\n return (state, ...args) => this.produceWithPatches(state, (draft) => base(draft, ...args));\n }\n let patches, inversePatches;\n const result = this.produce(base, recipe, (p, ip) => {\n patches = p;\n inversePatches = ip;\n });\n return [result, patches, inversePatches];\n };\n if (typeof config?.autoFreeze === \"boolean\")\n this.setAutoFreeze(config.autoFreeze);\n if (typeof config?.useStrictShallowCopy === \"boolean\")\n this.setUseStrictShallowCopy(config.useStrictShallowCopy);\n }\n createDraft(base) {\n if (!isDraftable(base))\n die(8);\n if (isDraft(base))\n base = current(base);\n const scope = enterScope(this);\n const proxy = createProxy(base, void 0);\n proxy[DRAFT_STATE].isManual_ = true;\n leaveScope(scope);\n return proxy;\n }\n finishDraft(draft, patchListener) {\n const state = draft && draft[DRAFT_STATE];\n if (!state || !state.isManual_)\n die(9);\n const { scope_: scope } = state;\n usePatchesInScope(scope, patchListener);\n return processResult(void 0, scope);\n }\n /**\n * Pass true to automatically freeze all copies created by Immer.\n *\n * By default, auto-freezing is enabled.\n */\n setAutoFreeze(value) {\n this.autoFreeze_ = value;\n }\n /**\n * Pass true to enable strict shallow copy.\n *\n * By default, immer does not copy the object descriptors such as getter, setter and non-enumrable properties.\n */\n setUseStrictShallowCopy(value) {\n this.useStrictShallowCopy_ = value;\n }\n applyPatches(base, patches) {\n let i;\n for (i = patches.length - 1; i >= 0; i--) {\n const patch = patches[i];\n if (patch.path.length === 0 && patch.op === \"replace\") {\n base = patch.value;\n break;\n }\n }\n if (i > -1) {\n patches = patches.slice(i + 1);\n }\n const applyPatchesImpl = getPlugin(\"Patches\").applyPatches_;\n if (isDraft(base)) {\n return applyPatchesImpl(base, patches);\n }\n return this.produce(\n base,\n (draft) => applyPatchesImpl(draft, patches)\n );\n }\n};\nfunction createProxy(value, parent) {\n const draft = isMap(value) ? getPlugin(\"MapSet\").proxyMap_(value, parent) : isSet(value) ? getPlugin(\"MapSet\").proxySet_(value, parent) : createProxyProxy(value, parent);\n const scope = parent ? parent.scope_ : getCurrentScope();\n scope.drafts_.push(draft);\n return draft;\n}\n\n// src/core/current.ts\nfunction current(value) {\n if (!isDraft(value))\n die(10, value);\n return currentImpl(value);\n}\nfunction currentImpl(value) {\n if (!isDraftable(value) || isFrozen(value))\n return value;\n const state = value[DRAFT_STATE];\n let copy;\n if (state) {\n if (!state.modified_)\n return state.base_;\n state.finalized_ = true;\n copy = shallowCopy(value, state.scope_.immer_.useStrictShallowCopy_);\n } else {\n copy = shallowCopy(value, true);\n }\n each(copy, (key, childValue) => {\n set(copy, key, currentImpl(childValue));\n });\n if (state) {\n state.finalized_ = false;\n }\n return copy;\n}\n\n// src/plugins/patches.ts\nfunction enablePatches() {\n const errorOffset = 16;\n if (process.env.NODE_ENV !== \"production\") {\n errors.push(\n 'Sets cannot have \"replace\" patches.',\n function(op) {\n return \"Unsupported patch operation: \" + op;\n },\n function(path) {\n return \"Cannot apply patch, path doesn't resolve: \" + path;\n },\n \"Patching reserved attributes like __proto__, prototype and constructor is not allowed\"\n );\n }\n const REPLACE = \"replace\";\n const ADD = \"add\";\n const REMOVE = \"remove\";\n function generatePatches_(state, basePath, patches, inversePatches) {\n switch (state.type_) {\n case 0 /* Object */:\n case 2 /* Map */:\n return generatePatchesFromAssigned(\n state,\n basePath,\n patches,\n inversePatches\n );\n case 1 /* Array */:\n return generateArrayPatches(state, basePath, patches, inversePatches);\n case 3 /* Set */:\n return generateSetPatches(\n state,\n basePath,\n patches,\n inversePatches\n );\n }\n }\n function generateArrayPatches(state, basePath, patches, inversePatches) {\n let { base_, assigned_ } = state;\n let copy_ = state.copy_;\n if (copy_.length < base_.length) {\n ;\n [base_, copy_] = [copy_, base_];\n [patches, inversePatches] = [inversePatches, patches];\n }\n for (let i = 0; i < base_.length; i++) {\n if (assigned_[i] && copy_[i] !== base_[i]) {\n const path = basePath.concat([i]);\n patches.push({\n op: REPLACE,\n path,\n // Need to maybe clone it, as it can in fact be the original value\n // due to the base/copy inversion at the start of this function\n value: clonePatchValueIfNeeded(copy_[i])\n });\n inversePatches.push({\n op: REPLACE,\n path,\n value: clonePatchValueIfNeeded(base_[i])\n });\n }\n }\n for (let i = base_.length; i < copy_.length; i++) {\n const path = basePath.concat([i]);\n patches.push({\n op: ADD,\n path,\n // Need to maybe clone it, as it can in fact be the original value\n // due to the base/copy inversion at the start of this function\n value: clonePatchValueIfNeeded(copy_[i])\n });\n }\n for (let i = copy_.length - 1; base_.length <= i; --i) {\n const path = basePath.concat([i]);\n inversePatches.push({\n op: REMOVE,\n path\n });\n }\n }\n function generatePatchesFromAssigned(state, basePath, patches, inversePatches) {\n const { base_, copy_ } = state;\n each(state.assigned_, (key, assignedValue) => {\n const origValue = get(base_, key);\n const value = get(copy_, key);\n const op = !assignedValue ? REMOVE : has(base_, key) ? REPLACE : ADD;\n if (origValue === value && op === REPLACE)\n return;\n const path = basePath.concat(key);\n patches.push(op === REMOVE ? { op, path } : { op, path, value });\n inversePatches.push(\n op === ADD ? { op: REMOVE, path } : op === REMOVE ? { op: ADD, path, value: clonePatchValueIfNeeded(origValue) } : { op: REPLACE, path, value: clonePatchValueIfNeeded(origValue) }\n );\n });\n }\n function generateSetPatches(state, basePath, patches, inversePatches) {\n let { base_, copy_ } = state;\n let i = 0;\n base_.forEach((value) => {\n if (!copy_.has(value)) {\n const path = basePath.concat([i]);\n patches.push({\n op: REMOVE,\n path,\n value\n });\n inversePatches.unshift({\n op: ADD,\n path,\n value\n });\n }\n i++;\n });\n i = 0;\n copy_.forEach((value) => {\n if (!base_.has(value)) {\n const path = basePath.concat([i]);\n patches.push({\n op: ADD,\n path,\n value\n });\n inversePatches.unshift({\n op: REMOVE,\n path,\n value\n });\n }\n i++;\n });\n }\n function generateReplacementPatches_(baseValue, replacement, patches, inversePatches) {\n patches.push({\n op: REPLACE,\n path: [],\n value: replacement === NOTHING ? void 0 : replacement\n });\n inversePatches.push({\n op: REPLACE,\n path: [],\n value: baseValue\n });\n }\n function applyPatches_(draft, patches) {\n patches.forEach((patch) => {\n const { path, op } = patch;\n let base = draft;\n for (let i = 0; i < path.length - 1; i++) {\n const parentType = getArchtype(base);\n let p = path[i];\n if (typeof p !== \"string\" && typeof p !== \"number\") {\n p = \"\" + p;\n }\n if ((parentType === 0 /* Object */ || parentType === 1 /* Array */) && (p === \"__proto__\" || p === \"constructor\"))\n die(errorOffset + 3);\n if (typeof base === \"function\" && p === \"prototype\")\n die(errorOffset + 3);\n base = get(base, p);\n if (typeof base !== \"object\")\n die(errorOffset + 2, path.join(\"/\"));\n }\n const type = getArchtype(base);\n const value = deepClonePatchValue(patch.value);\n const key = path[path.length - 1];\n switch (op) {\n case REPLACE:\n switch (type) {\n case 2 /* Map */:\n return base.set(key, value);\n case 3 /* Set */:\n die(errorOffset);\n default:\n return base[key] = value;\n }\n case ADD:\n switch (type) {\n case 1 /* Array */:\n return key === \"-\" ? base.push(value) : base.splice(key, 0, value);\n case 2 /* Map */:\n return base.set(key, value);\n case 3 /* Set */:\n return base.add(value);\n default:\n return base[key] = value;\n }\n case REMOVE:\n switch (type) {\n case 1 /* Array */:\n return base.splice(key, 1);\n case 2 /* Map */:\n return base.delete(key);\n case 3 /* Set */:\n return base.delete(patch.value);\n default:\n return delete base[key];\n }\n default:\n die(errorOffset + 1, op);\n }\n });\n return draft;\n }\n function deepClonePatchValue(obj) {\n if (!isDraftable(obj))\n return obj;\n if (Array.isArray(obj))\n return obj.map(deepClonePatchValue);\n if (isMap(obj))\n return new Map(\n Array.from(obj.entries()).map(([k, v]) => [k, deepClonePatchValue(v)])\n );\n if (isSet(obj))\n return new Set(Array.from(obj).map(deepClonePatchValue));\n const cloned = Object.create(getPrototypeOf(obj));\n for (const key in obj)\n cloned[key] = deepClonePatchValue(obj[key]);\n if (has(obj, DRAFTABLE))\n cloned[DRAFTABLE] = obj[DRAFTABLE];\n return cloned;\n }\n function clonePatchValueIfNeeded(obj) {\n if (isDraft(obj)) {\n return deepClonePatchValue(obj);\n } else\n return obj;\n }\n loadPlugin(\"Patches\", {\n applyPatches_,\n generatePatches_,\n generateReplacementPatches_\n });\n}\n\n// src/plugins/mapset.ts\nfunction enableMapSet() {\n class DraftMap extends Map {\n constructor(target, parent) {\n super();\n this[DRAFT_STATE] = {\n type_: 2 /* Map */,\n parent_: parent,\n scope_: parent ? parent.scope_ : getCurrentScope(),\n modified_: false,\n finalized_: false,\n copy_: void 0,\n assigned_: void 0,\n base_: target,\n draft_: this,\n isManual_: false,\n revoked_: false\n };\n }\n get size() {\n return latest(this[DRAFT_STATE]).size;\n }\n has(key) {\n return latest(this[DRAFT_STATE]).has(key);\n }\n set(key, value) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (!latest(state).has(key) || latest(state).get(key) !== value) {\n prepareMapCopy(state);\n markChanged(state);\n state.assigned_.set(key, true);\n state.copy_.set(key, value);\n state.assigned_.set(key, true);\n }\n return this;\n }\n delete(key) {\n if (!this.has(key)) {\n return false;\n }\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareMapCopy(state);\n markChanged(state);\n if (state.base_.has(key)) {\n state.assigned_.set(key, false);\n } else {\n state.assigned_.delete(key);\n }\n state.copy_.delete(key);\n return true;\n }\n clear() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (latest(state).size) {\n prepareMapCopy(state);\n markChanged(state);\n state.assigned_ = /* @__PURE__ */ new Map();\n each(state.base_, (key) => {\n state.assigned_.set(key, false);\n });\n state.copy_.clear();\n }\n }\n forEach(cb, thisArg) {\n const state = this[DRAFT_STATE];\n latest(state).forEach((_value, key, _map) => {\n cb.call(thisArg, this.get(key), key, this);\n });\n }\n get(key) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n const value = latest(state).get(key);\n if (state.finalized_ || !isDraftable(value)) {\n return value;\n }\n if (value !== state.base_.get(key)) {\n return value;\n }\n const draft = createProxy(value, state);\n prepareMapCopy(state);\n state.copy_.set(key, draft);\n return draft;\n }\n keys() {\n return latest(this[DRAFT_STATE]).keys();\n }\n values() {\n const iterator = this.keys();\n return {\n [Symbol.iterator]: () => this.values(),\n next: () => {\n const r = iterator.next();\n if (r.done)\n return r;\n const value = this.get(r.value);\n return {\n done: false,\n value\n };\n }\n };\n }\n entries() {\n const iterator = this.keys();\n return {\n [Symbol.iterator]: () => this.entries(),\n next: () => {\n const r = iterator.next();\n if (r.done)\n return r;\n const value = this.get(r.value);\n return {\n done: false,\n value: [r.value, value]\n };\n }\n };\n }\n [(DRAFT_STATE, Symbol.iterator)]() {\n return this.entries();\n }\n }\n function proxyMap_(target, parent) {\n return new DraftMap(target, parent);\n }\n function prepareMapCopy(state) {\n if (!state.copy_) {\n state.assigned_ = /* @__PURE__ */ new Map();\n state.copy_ = new Map(state.base_);\n }\n }\n class DraftSet extends Set {\n constructor(target, parent) {\n super();\n this[DRAFT_STATE] = {\n type_: 3 /* Set */,\n parent_: parent,\n scope_: parent ? parent.scope_ : getCurrentScope(),\n modified_: false,\n finalized_: false,\n copy_: void 0,\n base_: target,\n draft_: this,\n drafts_: /* @__PURE__ */ new Map(),\n revoked_: false,\n isManual_: false\n };\n }\n get size() {\n return latest(this[DRAFT_STATE]).size;\n }\n has(value) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (!state.copy_) {\n return state.base_.has(value);\n }\n if (state.copy_.has(value))\n return true;\n if (state.drafts_.has(value) && state.copy_.has(state.drafts_.get(value)))\n return true;\n return false;\n }\n add(value) {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (!this.has(value)) {\n prepareSetCopy(state);\n markChanged(state);\n state.copy_.add(value);\n }\n return this;\n }\n delete(value) {\n if (!this.has(value)) {\n return false;\n }\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareSetCopy(state);\n markChanged(state);\n return state.copy_.delete(value) || (state.drafts_.has(value) ? state.copy_.delete(state.drafts_.get(value)) : (\n /* istanbul ignore next */\n false\n ));\n }\n clear() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n if (latest(state).size) {\n prepareSetCopy(state);\n markChanged(state);\n state.copy_.clear();\n }\n }\n values() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareSetCopy(state);\n return state.copy_.values();\n }\n entries() {\n const state = this[DRAFT_STATE];\n assertUnrevoked(state);\n prepareSetCopy(state);\n return state.copy_.entries();\n }\n keys() {\n return this.values();\n }\n [(DRAFT_STATE, Symbol.iterator)]() {\n return this.values();\n }\n forEach(cb, thisArg) {\n const iterator = this.values();\n let result = iterator.next();\n while (!result.done) {\n cb.call(thisArg, result.value, result.value, this);\n result = iterator.next();\n }\n }\n }\n function proxySet_(target, parent) {\n return new DraftSet(target, parent);\n }\n function prepareSetCopy(state) {\n if (!state.copy_) {\n state.copy_ = /* @__PURE__ */ new Set();\n state.base_.forEach((value) => {\n if (isDraftable(value)) {\n const draft = createProxy(value, state);\n state.drafts_.set(value, draft);\n state.copy_.add(draft);\n } else {\n state.copy_.add(value);\n }\n });\n }\n }\n function assertUnrevoked(state) {\n if (state.revoked_)\n die(3, JSON.stringify(latest(state)));\n }\n loadPlugin(\"MapSet\", { proxyMap_, proxySet_ });\n}\n\n// src/immer.ts\nvar immer = new Immer2();\nvar produce = immer.produce;\nvar produceWithPatches = immer.produceWithPatches.bind(\n immer\n);\nvar setAutoFreeze = immer.setAutoFreeze.bind(immer);\nvar setUseStrictShallowCopy = immer.setUseStrictShallowCopy.bind(immer);\nvar applyPatches = immer.applyPatches.bind(immer);\nvar createDraft = immer.createDraft.bind(immer);\nvar finishDraft = immer.finishDraft.bind(immer);\nfunction castDraft(value) {\n return value;\n}\nfunction castImmutable(value) {\n return value;\n}\nexport {\n Immer2 as Immer,\n applyPatches,\n castDraft,\n castImmutable,\n createDraft,\n current,\n enableMapSet,\n enablePatches,\n finishDraft,\n freeze,\n DRAFTABLE as immerable,\n isDraft,\n isDraftable,\n NOTHING as nothing,\n original,\n produce,\n produceWithPatches,\n setAutoFreeze,\n setUseStrictShallowCopy\n};\n//# sourceMappingURL=immer.mjs.map","import { isPlainObject } from 'is-plain-object';\nimport { createDraft, finishDraft, isDraft, produce } from 'immer';\n\n// eslint-disable-next-line no-redeclare\nvar PathRef = {\n transform(ref, op) {\n var {\n current,\n affinity\n } = ref;\n if (current == null) {\n return;\n }\n var path = Path.transform(current, op, {\n affinity\n });\n ref.current = path;\n if (path == null) {\n ref.unref();\n }\n }\n};\n\n// eslint-disable-next-line no-redeclare\nvar PointRef = {\n transform(ref, op) {\n var {\n current,\n affinity\n } = ref;\n if (current == null) {\n return;\n }\n var point = Point.transform(current, op, {\n affinity\n });\n ref.current = point;\n if (point == null) {\n ref.unref();\n }\n }\n};\n\n// eslint-disable-next-line no-redeclare\nvar RangeRef = {\n transform(ref, op) {\n var {\n current,\n affinity\n } = ref;\n if (current == null) {\n return;\n }\n var path = Range.transform(current, op, {\n affinity\n });\n ref.current = path;\n if (path == null) {\n ref.unref();\n }\n }\n};\n\nvar DIRTY_PATHS = new WeakMap();\nvar DIRTY_PATH_KEYS = new WeakMap();\nvar FLUSHING = new WeakMap();\nvar NORMALIZING = new WeakMap();\nvar PATH_REFS = new WeakMap();\nvar POINT_REFS = new WeakMap();\nvar RANGE_REFS = new WeakMap();\n\n// eslint-disable-next-line no-redeclare\nvar Path = {\n ancestors(path) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n reverse = false\n } = options;\n var paths = Path.levels(path, options);\n if (reverse) {\n paths = paths.slice(1);\n } else {\n paths = paths.slice(0, -1);\n }\n return paths;\n },\n common(path, another) {\n var common = [];\n for (var i = 0; i < path.length && i < another.length; i++) {\n var av = path[i];\n var bv = another[i];\n if (av !== bv) {\n break;\n }\n common.push(av);\n }\n return common;\n },\n compare(path, another) {\n var min = Math.min(path.length, another.length);\n for (var i = 0; i < min; i++) {\n if (path[i] < another[i]) return -1;\n if (path[i] > another[i]) return 1;\n }\n return 0;\n },\n endsAfter(path, another) {\n var i = path.length - 1;\n var as = path.slice(0, i);\n var bs = another.slice(0, i);\n var av = path[i];\n var bv = another[i];\n return Path.equals(as, bs) && av > bv;\n },\n endsAt(path, another) {\n var i = path.length;\n var as = path.slice(0, i);\n var bs = another.slice(0, i);\n return Path.equals(as, bs);\n },\n endsBefore(path, another) {\n var i = path.length - 1;\n var as = path.slice(0, i);\n var bs = another.slice(0, i);\n var av = path[i];\n var bv = another[i];\n return Path.equals(as, bs) && av < bv;\n },\n equals(path, another) {\n return path.length === another.length && path.every((n, i) => n === another[i]);\n },\n hasPrevious(path) {\n return path[path.length - 1] > 0;\n },\n isAfter(path, another) {\n return Path.compare(path, another) === 1;\n },\n isAncestor(path, another) {\n return path.length < another.length && Path.compare(path, another) === 0;\n },\n isBefore(path, another) {\n return Path.compare(path, another) === -1;\n },\n isChild(path, another) {\n return path.length === another.length + 1 && Path.compare(path, another) === 0;\n },\n isCommon(path, another) {\n return path.length <= another.length && Path.compare(path, another) === 0;\n },\n isDescendant(path, another) {\n return path.length > another.length && Path.compare(path, another) === 0;\n },\n isParent(path, another) {\n return path.length + 1 === another.length && Path.compare(path, another) === 0;\n },\n isPath(value) {\n return Array.isArray(value) && (value.length === 0 || typeof value[0] === 'number');\n },\n isSibling(path, another) {\n if (path.length !== another.length) {\n return false;\n }\n var as = path.slice(0, -1);\n var bs = another.slice(0, -1);\n var al = path[path.length - 1];\n var bl = another[another.length - 1];\n return al !== bl && Path.equals(as, bs);\n },\n levels(path) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n reverse = false\n } = options;\n var list = [];\n for (var i = 0; i <= path.length; i++) {\n list.push(path.slice(0, i));\n }\n if (reverse) {\n list.reverse();\n }\n return list;\n },\n next(path) {\n if (path.length === 0) {\n throw new Error(\"Cannot get the next path of a root path [\".concat(path, \"], because it has no next index.\"));\n }\n var last = path[path.length - 1];\n return path.slice(0, -1).concat(last + 1);\n },\n operationCanTransformPath(operation) {\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 parent(path) {\n if (path.length === 0) {\n throw new Error(\"Cannot get the parent path of the root path [\".concat(path, \"].\"));\n }\n return path.slice(0, -1);\n },\n previous(path) {\n if (path.length === 0) {\n throw new Error(\"Cannot get the previous path of a root path [\".concat(path, \"], because it has no previous index.\"));\n }\n var last = path[path.length - 1];\n if (last <= 0) {\n throw new Error(\"Cannot get the previous path of a first child path [\".concat(path, \"] because it would result in a negative index.\"));\n }\n return path.slice(0, -1).concat(last - 1);\n },\n relative(path, ancestor) {\n if (!Path.isAncestor(ancestor, path) && !Path.equals(path, ancestor)) {\n throw new Error(\"Cannot get the relative path of [\".concat(path, \"] inside ancestor [\").concat(ancestor, \"], because it is not above or equal to the path.\"));\n }\n return path.slice(ancestor.length);\n },\n transform(path, operation) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n if (!path) return null;\n // PERF: use destructing instead of immer\n var p = [...path];\n var {\n affinity = 'forward'\n } = options;\n // PERF: Exit early if the operation is guaranteed not to have an effect.\n if (path.length === 0) {\n return p;\n }\n switch (operation.type) {\n case 'insert_node':\n {\n var {\n path: op\n } = operation;\n if (Path.equals(op, p) || Path.endsBefore(op, p) || Path.isAncestor(op, p)) {\n p[op.length - 1] += 1;\n }\n break;\n }\n case 'remove_node':\n {\n var {\n path: _op\n } = operation;\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 break;\n }\n case 'merge_node':\n {\n var {\n path: _op2,\n position\n } = operation;\n if (Path.equals(_op2, p) || Path.endsBefore(_op2, p)) {\n p[_op2.length - 1] -= 1;\n } else if (Path.isAncestor(_op2, p)) {\n p[_op2.length - 1] -= 1;\n p[_op2.length] += position;\n }\n break;\n }\n case 'split_node':\n {\n var {\n path: _op3,\n position: _position\n } = operation;\n if (Path.equals(_op3, p)) {\n if (affinity === 'forward') {\n p[p.length - 1] += 1;\n } else if (affinity === 'backward') ; else {\n return null;\n }\n } else if (Path.endsBefore(_op3, p)) {\n p[_op3.length - 1] += 1;\n } else if (Path.isAncestor(_op3, p) && path[_op3.length] >= _position) {\n p[_op3.length - 1] += 1;\n p[_op3.length] -= _position;\n }\n break;\n }\n case 'move_node':\n {\n var {\n path: _op4,\n newPath: onp\n } = operation;\n // If the old and new path are the same, it's a no-op.\n if (Path.equals(_op4, onp)) {\n return p;\n }\n if (Path.isAncestor(_op4, p) || Path.equals(_op4, p)) {\n var copy = onp.slice();\n if (Path.endsBefore(_op4, onp) && _op4.length < onp.length) {\n copy[_op4.length - 1] -= 1;\n }\n return copy.concat(p.slice(_op4.length));\n } else if (Path.isSibling(_op4, onp) && (Path.isAncestor(onp, p) || Path.equals(onp, p))) {\n if (Path.endsBefore(_op4, p)) {\n p[_op4.length - 1] -= 1;\n } else {\n p[_op4.length - 1] += 1;\n }\n } else if (Path.endsBefore(onp, p) || Path.equals(onp, p) || Path.isAncestor(onp, p)) {\n if (Path.endsBefore(_op4, p)) {\n p[_op4.length - 1] -= 1;\n }\n p[onp.length - 1] += 1;\n } else if (Path.endsBefore(_op4, p)) {\n if (Path.equals(onp, p)) {\n p[onp.length - 1] += 1;\n }\n p[_op4.length - 1] -= 1;\n }\n break;\n }\n }\n return p;\n }\n};\n\nfunction _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\n\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\n\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\n\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\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 return obj;\n}\n\nfunction ownKeys$e(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$e(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$e(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$e(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar applyToDraft = (editor, selection, op) => {\n switch (op.type) {\n case 'insert_node':\n {\n var {\n path,\n node\n } = op;\n var parent = Node.parent(editor, path);\n var index = path[path.length - 1];\n if (index > parent.children.length) {\n throw new Error(\"Cannot apply an \\\"insert_node\\\" operation at path [\".concat(path, \"] because the destination is past the end of the node.\"));\n }\n parent.children.splice(index, 0, node);\n if (selection) {\n for (var [point, key] of Range.points(selection)) {\n selection[key] = Point.transform(point, op);\n }\n }\n break;\n }\n case 'insert_text':\n {\n var {\n path: _path,\n offset,\n text\n } = op;\n if (text.length === 0) break;\n var _node = Node.leaf(editor, _path);\n var before = _node.text.slice(0, offset);\n var after = _node.text.slice(offset);\n _node.text = before + text + after;\n if (selection) {\n for (var [_point, _key] of Range.points(selection)) {\n selection[_key] = Point.transform(_point, op);\n }\n }\n break;\n }\n case 'merge_node':\n {\n var {\n path: _path2\n } = op;\n var _node2 = Node.get(editor, _path2);\n var prevPath = Path.previous(_path2);\n var prev = Node.get(editor, prevPath);\n var _parent = Node.parent(editor, _path2);\n var _index = _path2[_path2.length - 1];\n if (Text.isText(_node2) && Text.isText(prev)) {\n prev.text += _node2.text;\n } else if (!Text.isText(_node2) && !Text.isText(prev)) {\n prev.children.push(..._node2.children);\n } else {\n throw new Error(\"Cannot apply a \\\"merge_node\\\" operation at path [\".concat(_path2, \"] to nodes of different interfaces: \").concat(Scrubber.stringify(_node2), \" \").concat(Scrubber.stringify(prev)));\n }\n _parent.children.splice(_index, 1);\n if (selection) {\n for (var [_point2, _key2] of Range.points(selection)) {\n selection[_key2] = Point.transform(_point2, op);\n }\n }\n break;\n }\n case 'move_node':\n {\n var {\n path: _path3,\n newPath\n } = op;\n if (Path.isAncestor(_path3, newPath)) {\n throw new Error(\"Cannot move a path [\".concat(_path3, \"] to new path [\").concat(newPath, \"] because the destination is inside itself.\"));\n }\n var _node3 = Node.get(editor, _path3);\n var _parent2 = Node.parent(editor, _path3);\n var _index2 = _path3[_path3.length - 1];\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 _parent2.children.splice(_index2, 1);\n var truePath = Path.transform(_path3, op);\n var newParent = Node.get(editor, Path.parent(truePath));\n var newIndex = truePath[truePath.length - 1];\n newParent.children.splice(newIndex, 0, _node3);\n if (selection) {\n for (var [_point3, _key3] of Range.points(selection)) {\n selection[_key3] = Point.transform(_point3, op);\n }\n }\n break;\n }\n case 'remove_node':\n {\n var {\n path: _path4\n } = op;\n var _index3 = _path4[_path4.length - 1];\n var _parent3 = Node.parent(editor, _path4);\n _parent3.children.splice(_index3, 1);\n // Transform all 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 (var [_point4, _key4] of Range.points(selection)) {\n var result = Point.transform(_point4, op);\n if (selection != null && result != null) {\n selection[_key4] = result;\n } else {\n var _prev = void 0;\n var next = void 0;\n for (var [n, p] of Node.texts(editor)) {\n if (Path.compare(p, _path4) === -1) {\n _prev = [n, p];\n } else {\n next = [n, p];\n break;\n }\n }\n var preferNext = false;\n if (_prev && next) {\n if (Path.equals(next[1], _path4)) {\n preferNext = !Path.hasPrevious(next[1]);\n } else {\n preferNext = Path.common(_prev[1], _path4).length < Path.common(next[1], _path4).length;\n }\n }\n if (_prev && !preferNext) {\n _point4.path = _prev[1];\n _point4.offset = _prev[0].text.length;\n } else if (next) {\n _point4.path = next[1];\n _point4.offset = 0;\n } else {\n selection = null;\n }\n }\n }\n }\n break;\n }\n case 'remove_text':\n {\n var {\n path: _path5,\n offset: _offset,\n text: _text\n } = op;\n if (_text.length === 0) break;\n var _node4 = Node.leaf(editor, _path5);\n var _before = _node4.text.slice(0, _offset);\n var _after = _node4.text.slice(_offset + _text.length);\n _node4.text = _before + _after;\n if (selection) {\n for (var [_point5, _key5] of Range.points(selection)) {\n selection[_key5] = Point.transform(_point5, op);\n }\n }\n break;\n }\n case 'set_node':\n {\n var {\n path: _path6,\n properties,\n newProperties\n } = op;\n if (_path6.length === 0) {\n throw new Error(\"Cannot set properties on the root node!\");\n }\n var _node5 = Node.get(editor, _path6);\n for (var _key6 in newProperties) {\n if (_key6 === 'children' || _key6 === 'text') {\n throw new Error(\"Cannot set the \\\"\".concat(_key6, \"\\\" property of nodes!\"));\n }\n var value = newProperties[_key6];\n if (value == null) {\n delete _node5[_key6];\n } else {\n _node5[_key6] = value;\n }\n }\n // properties that were previously defined, but are now missing, must be deleted\n for (var _key7 in properties) {\n if (!newProperties.hasOwnProperty(_key7)) {\n delete _node5[_key7];\n }\n }\n break;\n }\n case 'set_selection':\n {\n var {\n newProperties: _newProperties\n } = op;\n if (_newProperties == null) {\n selection = _newProperties;\n } else {\n if (selection == null) {\n if (!Range.isRange(_newProperties)) {\n throw new Error(\"Cannot apply an incomplete \\\"set_selection\\\" operation properties \".concat(Scrubber.stringify(_newProperties), \" when there is no current selection.\"));\n }\n selection = _objectSpread$e({}, _newProperties);\n }\n for (var _key8 in _newProperties) {\n var _value = _newProperties[_key8];\n if (_value == null) {\n if (_key8 === 'anchor' || _key8 === 'focus') {\n throw new Error(\"Cannot remove the \\\"\".concat(_key8, \"\\\" selection property\"));\n }\n delete selection[_key8];\n } else {\n selection[_key8] = _value;\n }\n }\n }\n break;\n }\n case 'split_node':\n {\n var {\n path: _path7,\n position,\n properties: _properties\n } = op;\n if (_path7.length === 0) {\n throw new Error(\"Cannot apply a \\\"split_node\\\" operation at path [\".concat(_path7, \"] because the root node cannot be split.\"));\n }\n var _node6 = Node.get(editor, _path7);\n var _parent4 = Node.parent(editor, _path7);\n var _index4 = _path7[_path7.length - 1];\n var newNode;\n if (Text.isText(_node6)) {\n var _before2 = _node6.text.slice(0, position);\n var _after2 = _node6.text.slice(position);\n _node6.text = _before2;\n newNode = _objectSpread$e(_objectSpread$e({}, _properties), {}, {\n text: _after2\n });\n } else {\n var _before3 = _node6.children.slice(0, position);\n var _after3 = _node6.children.slice(position);\n _node6.children = _before3;\n newNode = _objectSpread$e(_objectSpread$e({}, _properties), {}, {\n children: _after3\n });\n }\n _parent4.children.splice(_index4 + 1, 0, newNode);\n if (selection) {\n for (var [_point6, _key9] of Range.points(selection)) {\n selection[_key9] = Point.transform(_point6, op);\n }\n }\n break;\n }\n }\n return selection;\n};\n// eslint-disable-next-line no-redeclare\nvar GeneralTransforms = {\n transform(editor, op) {\n editor.children = createDraft(editor.children);\n var selection = editor.selection && createDraft(editor.selection);\n try {\n selection = applyToDraft(editor, selection, op);\n } finally {\n editor.children = finishDraft(editor.children);\n if (selection) {\n editor.selection = isDraft(selection) ? finishDraft(selection) : selection;\n } else {\n editor.selection = null;\n }\n }\n }\n};\n\n// eslint-disable-next-line no-redeclare\nvar 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\n// eslint-disable-next-line no-redeclare\nvar 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\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 */\nvar isDeepEqual = (node, another) => {\n for (var key in node) {\n var a = node[key];\n var 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 (var 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 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 for (var _key in another) {\n if (node[_key] === undefined && another[_key] !== undefined) {\n return false;\n }\n }\n return true;\n};\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\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 return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\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 return target;\n}\n\nvar _excluded$4 = [\"anchor\", \"focus\"];\nfunction ownKeys$d(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$d(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$d(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$d(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\n// eslint-disable-next-line no-redeclare\nvar Range = {\n edges(range) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n reverse = false\n } = options;\n var {\n anchor,\n focus\n } = range;\n return Range.isBackward(range) === reverse ? [anchor, focus] : [focus, anchor];\n },\n end(range) {\n var [, end] = Range.edges(range);\n return end;\n },\n equals(range, another) {\n return Point.equals(range.anchor, another.anchor) && Point.equals(range.focus, another.focus);\n },\n includes(range, target) {\n if (Range.isRange(target)) {\n if (Range.includes(range, target.anchor) || Range.includes(range, target.focus)) {\n return true;\n }\n var [rs, re] = Range.edges(range);\n var [ts, te] = Range.edges(target);\n return Point.isBefore(rs, ts) && Point.isAfter(re, te);\n }\n var [start, end] = Range.edges(range);\n var isAfterStart = false;\n var isBeforeEnd = false;\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 return isAfterStart && isBeforeEnd;\n },\n intersection(range, another) {\n var rest = _objectWithoutProperties(range, _excluded$4);\n var [s1, e1] = Range.edges(range);\n var [s2, e2] = Range.edges(another);\n var start = Point.isBefore(s1, s2) ? s2 : s1;\n var end = Point.isBefore(e1, e2) ? e1 : e2;\n if (Point.isBefore(end, start)) {\n return null;\n } else {\n return _objectSpread$d({\n anchor: start,\n focus: end\n }, rest);\n }\n },\n isBackward(range) {\n var {\n anchor,\n focus\n } = range;\n return Point.isAfter(anchor, focus);\n },\n isCollapsed(range) {\n var {\n anchor,\n focus\n } = range;\n return Point.equals(anchor, focus);\n },\n isExpanded(range) {\n return !Range.isCollapsed(range);\n },\n isForward(range) {\n return !Range.isBackward(range);\n },\n isRange(value) {\n return isPlainObject(value) && Point.isPoint(value.anchor) && Point.isPoint(value.focus);\n },\n *points(range) {\n yield [range.anchor, 'anchor'];\n yield [range.focus, 'focus'];\n },\n start(range) {\n var [start] = Range.edges(range);\n return start;\n },\n transform(range, op) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return produce(range, r => {\n if (r === null) {\n return null;\n }\n var {\n affinity = 'inward'\n } = options;\n var affinityAnchor;\n var affinityFocus;\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 var 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 var anchor = Point.transform(r.anchor, op, {\n affinity: affinityAnchor\n });\n var focus = Point.transform(r.focus, op, {\n affinity: affinityFocus\n });\n if (!anchor || !focus) {\n return null;\n }\n r.anchor = anchor;\n r.focus = focus;\n });\n }\n};\n\n/**\n * Shared the function with isElementType utility\n */\nvar isElement = value => {\n return isPlainObject(value) && Node.isNodeList(value.children) && !Editor.isEditor(value);\n};\n// eslint-disable-next-line no-redeclare\nvar Element = {\n isAncestor(value) {\n return isPlainObject(value) && Node.isNodeList(value.children);\n },\n isElement,\n isElementList(value) {\n return Array.isArray(value) && value.every(val => Element.isElement(val));\n },\n isElementProps(props) {\n return props.children !== undefined;\n },\n isElementType: function isElementType(value, elementVal) {\n var elementKey = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 'type';\n return isElement(value) && value[elementKey] === elementVal;\n },\n matches(element, props) {\n for (var key in props) {\n if (key === 'children') {\n continue;\n }\n if (element[key] !== props[key]) {\n return false;\n }\n }\n return true;\n }\n};\n\nvar _excluded$3 = [\"children\"],\n _excluded2$3 = [\"text\"];\nvar IS_NODE_LIST_CACHE = new WeakMap();\n// eslint-disable-next-line no-redeclare\nvar Node = {\n ancestor(root, path) {\n var node = Node.get(root, path);\n if (Text.isText(node)) {\n throw new Error(\"Cannot get the ancestor node at path [\".concat(path, \"] because it refers to a text node instead: \").concat(Scrubber.stringify(node)));\n }\n return node;\n },\n ancestors(root, path) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return function* () {\n for (var p of Path.ancestors(path, options)) {\n var n = Node.ancestor(root, p);\n var entry = [n, p];\n yield entry;\n }\n }();\n },\n child(root, index) {\n if (Text.isText(root)) {\n throw new Error(\"Cannot get the child of a text node: \".concat(Scrubber.stringify(root)));\n }\n var c = root.children[index];\n if (c == null) {\n throw new Error(\"Cannot get child at index `\".concat(index, \"` in node: \").concat(Scrubber.stringify(root)));\n }\n return c;\n },\n children(root, path) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return function* () {\n var {\n reverse = false\n } = options;\n var ancestor = Node.ancestor(root, path);\n var {\n children\n } = ancestor;\n var index = reverse ? children.length - 1 : 0;\n while (reverse ? index >= 0 : index < children.length) {\n var child = Node.child(ancestor, index);\n var childPath = path.concat(index);\n yield [child, childPath];\n index = reverse ? index - 1 : index + 1;\n }\n }();\n },\n common(root, path, another) {\n var p = Path.common(path, another);\n var n = Node.get(root, p);\n return [n, p];\n },\n descendant(root, path) {\n var node = Node.get(root, path);\n if (Editor.isEditor(node)) {\n throw new Error(\"Cannot get the descendant node at path [\".concat(path, \"] because it refers to the root editor node instead: \").concat(Scrubber.stringify(node)));\n }\n return node;\n },\n descendants(root) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return function* () {\n for (var [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];\n }\n }\n }();\n },\n elements(root) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return function* () {\n for (var [node, path] of Node.nodes(root, options)) {\n if (Element.isElement(node)) {\n yield [node, path];\n }\n }\n }();\n },\n extractProps(node) {\n if (Element.isAncestor(node)) {\n var properties = _objectWithoutProperties(node, _excluded$3);\n return properties;\n } else {\n var properties = _objectWithoutProperties(node, _excluded2$3);\n return properties;\n }\n },\n first(root, path) {\n var p = path.slice();\n var n = Node.get(root, p);\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 return [n, p];\n },\n fragment(root, range) {\n if (Text.isText(root)) {\n throw new Error(\"Cannot get a fragment starting from a root text node: \".concat(Scrubber.stringify(root)));\n }\n var newRoot = produce({\n children: root.children\n }, r => {\n var [start, end] = Range.edges(range);\n var nodeEntries = Node.nodes(r, {\n reverse: true,\n pass: _ref => {\n var [, path] = _ref;\n return !Range.includes(range, path);\n }\n });\n for (var [, path] of nodeEntries) {\n if (!Range.includes(range, path)) {\n var parent = Node.parent(r, path);\n var index = path[path.length - 1];\n parent.children.splice(index, 1);\n }\n if (Path.equals(path, end.path)) {\n var leaf = Node.leaf(r, path);\n leaf.text = leaf.text.slice(0, end.offset);\n }\n if (Path.equals(path, start.path)) {\n var _leaf = Node.leaf(r, path);\n _leaf.text = _leaf.text.slice(start.offset);\n }\n }\n if (Editor.isEditor(r)) {\n r.selection = null;\n }\n });\n return newRoot.children;\n },\n get(root, path) {\n var node = root;\n for (var i = 0; i < path.length; i++) {\n var p = path[i];\n if (Text.isText(node) || !node.children[p]) {\n throw new Error(\"Cannot find a descendant at path [\".concat(path, \"] in node: \").concat(Scrubber.stringify(root)));\n }\n node = node.children[p];\n }\n return node;\n },\n has(root, path) {\n var node = root;\n for (var i = 0; i < path.length; i++) {\n var p = path[i];\n if (Text.isText(node) || !node.children[p]) {\n return false;\n }\n node = node.children[p];\n }\n return true;\n },\n isNode(value) {\n return Text.isText(value) || Element.isElement(value) || Editor.isEditor(value);\n },\n isNodeList(value) {\n if (!Array.isArray(value)) {\n return false;\n }\n var cachedResult = IS_NODE_LIST_CACHE.get(value);\n if (cachedResult !== undefined) {\n return cachedResult;\n }\n var isNodeList = value.every(val => Node.isNode(val));\n IS_NODE_LIST_CACHE.set(value, isNodeList);\n return isNodeList;\n },\n last(root, path) {\n var p = path.slice();\n var n = Node.get(root, p);\n while (n) {\n if (Text.isText(n) || n.children.length === 0) {\n break;\n } else {\n var i = n.children.length - 1;\n n = n.children[i];\n p.push(i);\n }\n }\n return [n, p];\n },\n leaf(root, path) {\n var node = Node.get(root, path);\n if (!Text.isText(node)) {\n throw new Error(\"Cannot get the leaf node at path [\".concat(path, \"] because it refers to a non-leaf node: \").concat(Scrubber.stringify(node)));\n }\n return node;\n },\n levels(root, path) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return function* () {\n for (var p of Path.levels(path, options)) {\n var n = Node.get(root, p);\n yield [n, p];\n }\n }();\n },\n matches(node, props) {\n return Element.isElement(node) && Element.isElementProps(props) && Element.matches(node, props) || Text.isText(node) && Text.isTextProps(props) && Text.matches(node, props);\n },\n nodes(root) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return function* () {\n var {\n pass,\n reverse = false\n } = options;\n var {\n from = [],\n to\n } = options;\n var visited = new Set();\n var p = [];\n var n = root;\n while (true) {\n if (to && (reverse ? Path.isBefore(p, to) : Path.isAfter(p, to))) {\n break;\n }\n if (!visited.has(n)) {\n yield [n, p];\n }\n // If we're allowed to go downward and we haven't descended yet, do.\n if (!visited.has(n) && !Text.isText(n) && n.children.length !== 0 && (pass == null || pass([n, p]) === false)) {\n visited.add(n);\n var nextIndex = reverse ? n.children.length - 1 : 0;\n if (Path.isAncestor(p, from)) {\n nextIndex = from[p.length];\n }\n p = p.concat(nextIndex);\n n = Node.get(root, p);\n continue;\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 // If we're going forward...\n if (!reverse) {\n var newPath = Path.next(p);\n if (Node.has(root, newPath)) {\n p = newPath;\n n = Node.get(root, p);\n continue;\n }\n }\n // If we're going backward...\n if (reverse && p[p.length - 1] !== 0) {\n var _newPath = Path.previous(p);\n p = _newPath;\n n = Node.get(root, p);\n continue;\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, path) {\n var parentPath = Path.parent(path);\n var p = Node.get(root, parentPath);\n if (Text.isText(p)) {\n throw new Error(\"Cannot get the parent of path [\".concat(path, \"] because it does not exist in the root.\"));\n }\n return p;\n },\n string(node) {\n if (Text.isText(node)) {\n return node.text;\n } else {\n return node.children.map(Node.string).join('');\n }\n },\n texts(root) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return function* () {\n for (var [node, path] of Node.nodes(root, options)) {\n if (Text.isText(node)) {\n yield [node, path];\n }\n }\n }();\n }\n};\n\nfunction ownKeys$c(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$c(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$c(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$c(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\n// eslint-disable-next-line no-redeclare\nvar Operation = {\n isNodeOperation(value) {\n return Operation.isOperation(value) && value.type.endsWith('_node');\n },\n isOperation(value) {\n if (!isPlainObject(value)) {\n return false;\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 typeof value.offset === 'number' && typeof value.text === 'string' && Path.isPath(value.path);\n case 'merge_node':\n return typeof value.position === 'number' && Path.isPath(value.path) && isPlainObject(value.properties);\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 typeof value.offset === 'number' && typeof value.text === 'string' && Path.isPath(value.path);\n case 'set_node':\n return Path.isPath(value.path) && isPlainObject(value.properties) && isPlainObject(value.newProperties);\n case 'set_selection':\n return value.properties === null && Range.isRange(value.newProperties) || value.newProperties === null && Range.isRange(value.properties) || isPlainObject(value.properties) && isPlainObject(value.newProperties);\n case 'split_node':\n return Path.isPath(value.path) && typeof value.position === 'number' && isPlainObject(value.properties);\n default:\n return false;\n }\n },\n isOperationList(value) {\n return Array.isArray(value) && value.every(val => Operation.isOperation(val));\n },\n isSelectionOperation(value) {\n return Operation.isOperation(value) && value.type.endsWith('_selection');\n },\n isTextOperation(value) {\n return Operation.isOperation(value) && value.type.endsWith('_text');\n },\n inverse(op) {\n switch (op.type) {\n case 'insert_node':\n {\n return _objectSpread$c(_objectSpread$c({}, op), {}, {\n type: 'remove_node'\n });\n }\n case 'insert_text':\n {\n return _objectSpread$c(_objectSpread$c({}, op), {}, {\n type: 'remove_text'\n });\n }\n case 'merge_node':\n {\n return _objectSpread$c(_objectSpread$c({}, op), {}, {\n type: 'split_node',\n path: Path.previous(op.path)\n });\n }\n case 'move_node':\n {\n var {\n newPath,\n path\n } = op;\n // PERF: in this case the move operation is a no-op anyways.\n if (Path.equals(newPath, path)) {\n return op;\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 _objectSpread$c(_objectSpread$c({}, op), {}, {\n path: newPath,\n 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 var inversePath = Path.transform(path, op);\n var inverseNewPath = Path.transform(Path.next(path), op);\n return _objectSpread$c(_objectSpread$c({}, op), {}, {\n path: inversePath,\n newPath: inverseNewPath\n });\n }\n case 'remove_node':\n {\n return _objectSpread$c(_objectSpread$c({}, op), {}, {\n type: 'insert_node'\n });\n }\n case 'remove_text':\n {\n return _objectSpread$c(_objectSpread$c({}, op), {}, {\n type: 'insert_text'\n });\n }\n case 'set_node':\n {\n var {\n properties,\n newProperties\n } = op;\n return _objectSpread$c(_objectSpread$c({}, op), {}, {\n properties: newProperties,\n newProperties: properties\n });\n }\n case 'set_selection':\n {\n var {\n properties: _properties,\n newProperties: _newProperties\n } = op;\n if (_properties == null) {\n return _objectSpread$c(_objectSpread$c({}, op), {}, {\n properties: _newProperties,\n newProperties: null\n });\n } else if (_newProperties == null) {\n return _objectSpread$c(_objectSpread$c({}, op), {}, {\n properties: null,\n newProperties: _properties\n });\n } else {\n return _objectSpread$c(_objectSpread$c({}, op), {}, {\n properties: _newProperties,\n newProperties: _properties\n });\n }\n }\n case 'split_node':\n {\n return _objectSpread$c(_objectSpread$c({}, op), {}, {\n type: 'merge_node',\n path: Path.next(op.path)\n });\n }\n }\n }\n};\n\nvar IS_EDITOR_CACHE = new WeakMap();\nvar isEditor = value => {\n var cachedIsEditor = IS_EDITOR_CACHE.get(value);\n if (cachedIsEditor !== undefined) {\n return cachedIsEditor;\n }\n if (!isPlainObject(value)) {\n return false;\n }\n var isEditor = typeof value.addMark === 'function' && typeof value.apply === 'function' && typeof value.deleteFragment === 'function' && typeof value.insertBreak === 'function' && typeof value.insertSoftBreak === 'function' && typeof value.insertFragment === 'function' && typeof value.insertNode === 'function' && typeof value.insertText === 'function' && typeof value.isElementReadOnly === 'function' && typeof value.isInline === 'function' && typeof value.isSelectable === 'function' && typeof value.isVoid === 'function' && typeof value.normalizeNode === 'function' && typeof value.onChange === 'function' && typeof value.removeMark === 'function' && typeof value.getDirtyPaths === 'function' && (value.marks === null || isPlainObject(value.marks)) && (value.selection === null || Range.isRange(value.selection)) && Node.isNodeList(value.children) && Operation.isOperationList(value.operations);\n IS_EDITOR_CACHE.set(value, isEditor);\n return isEditor;\n};\n\n// eslint-disable-next-line no-redeclare\nvar Editor = {\n above(editor, options) {\n return editor.above(options);\n },\n addMark(editor, key, value) {\n editor.addMark(key, value);\n },\n after(editor, at, options) {\n return editor.after(at, options);\n },\n before(editor, at, options) {\n return editor.before(at, options);\n },\n deleteBackward(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n unit = 'character'\n } = options;\n editor.deleteBackward(unit);\n },\n deleteForward(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n unit = 'character'\n } = options;\n editor.deleteForward(unit);\n },\n deleteFragment(editor, options) {\n editor.deleteFragment(options);\n },\n edges(editor, at) {\n return editor.edges(at);\n },\n elementReadOnly(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return editor.elementReadOnly(options);\n },\n end(editor, at) {\n return editor.end(at);\n },\n first(editor, at) {\n return editor.first(at);\n },\n fragment(editor, at) {\n return editor.fragment(at);\n },\n hasBlocks(editor, element) {\n return editor.hasBlocks(element);\n },\n hasInlines(editor, element) {\n return editor.hasInlines(element);\n },\n hasPath(editor, path) {\n return editor.hasPath(path);\n },\n hasTexts(editor, element) {\n return editor.hasTexts(element);\n },\n insertBreak(editor) {\n editor.insertBreak();\n },\n insertFragment(editor, fragment, options) {\n editor.insertFragment(fragment, options);\n },\n insertNode(editor, node) {\n editor.insertNode(node);\n },\n insertSoftBreak(editor) {\n editor.insertSoftBreak();\n },\n insertText(editor, text) {\n editor.insertText(text);\n },\n isBlock(editor, value) {\n return editor.isBlock(value);\n },\n isEdge(editor, point, at) {\n return editor.isEdge(point, at);\n },\n isEditor(value) {\n return isEditor(value);\n },\n isElementReadOnly(editor, element) {\n return editor.isElementReadOnly(element);\n },\n isEmpty(editor, element) {\n return editor.isEmpty(element);\n },\n isEnd(editor, point, at) {\n return editor.isEnd(point, at);\n },\n isInline(editor, value) {\n return editor.isInline(value);\n },\n isNormalizing(editor) {\n return editor.isNormalizing();\n },\n isSelectable(editor, value) {\n return editor.isSelectable(value);\n },\n isStart(editor, point, at) {\n return editor.isStart(point, at);\n },\n isVoid(editor, value) {\n return editor.isVoid(value);\n },\n last(editor, at) {\n return editor.last(at);\n },\n leaf(editor, at, options) {\n return editor.leaf(at, options);\n },\n levels(editor, options) {\n return editor.levels(options);\n },\n marks(editor) {\n return editor.getMarks();\n },\n next(editor, options) {\n return editor.next(options);\n },\n node(editor, at, options) {\n return editor.node(at, options);\n },\n nodes(editor, options) {\n return editor.nodes(options);\n },\n normalize(editor, options) {\n editor.normalize(options);\n },\n parent(editor, at, options) {\n return editor.parent(at, options);\n },\n path(editor, at, options) {\n return editor.path(at, options);\n },\n pathRef(editor, path, options) {\n return editor.pathRef(path, options);\n },\n pathRefs(editor) {\n return editor.pathRefs();\n },\n point(editor, at, options) {\n return editor.point(at, options);\n },\n pointRef(editor, point, options) {\n return editor.pointRef(point, options);\n },\n pointRefs(editor) {\n return editor.pointRefs();\n },\n positions(editor, options) {\n return editor.positions(options);\n },\n previous(editor, options) {\n return editor.previous(options);\n },\n range(editor, at, to) {\n return editor.range(at, to);\n },\n rangeRef(editor, range, options) {\n return editor.rangeRef(range, options);\n },\n rangeRefs(editor) {\n return editor.rangeRefs();\n },\n removeMark(editor, key) {\n editor.removeMark(key);\n },\n setNormalizing(editor, isNormalizing) {\n editor.setNormalizing(isNormalizing);\n },\n start(editor, at) {\n return editor.start(at);\n },\n string(editor, at, options) {\n return editor.string(at, options);\n },\n unhangRange(editor, range, options) {\n return editor.unhangRange(range, options);\n },\n void(editor, options) {\n return editor.void(options);\n },\n withoutNormalizing(editor, fn) {\n editor.withoutNormalizing(fn);\n },\n shouldMergeNodesRemovePrevNode: (editor, prevNode, curNode) => {\n return editor.shouldMergeNodesRemovePrevNode(prevNode, curNode);\n }\n};\n\n// eslint-disable-next-line no-redeclare\nvar Location = {\n isLocation(value) {\n return Path.isPath(value) || Point.isPoint(value) || Range.isRange(value);\n }\n};\n// eslint-disable-next-line no-redeclare\nvar Span = {\n isSpan(value) {\n return Array.isArray(value) && value.length === 2 && value.every(Path.isPath);\n }\n};\n\nfunction ownKeys$b(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$b(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$b(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$b(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\n// eslint-disable-next-line no-redeclare\nvar Point = {\n compare(point, another) {\n var result = Path.compare(point.path, another.path);\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 return result;\n },\n isAfter(point, another) {\n return Point.compare(point, another) === 1;\n },\n isBefore(point, another) {\n return Point.compare(point, another) === -1;\n },\n equals(point, another) {\n // PERF: ensure the offsets are equal first since they are cheaper to check.\n return point.offset === another.offset && Path.equals(point.path, another.path);\n },\n isPoint(value) {\n return isPlainObject(value) && typeof value.offset === 'number' && Path.isPath(value.path);\n },\n transform(point, op) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n return produce(point, p => {\n if (p === null) {\n return null;\n }\n var {\n affinity = 'forward'\n } = options;\n var {\n path,\n offset\n } = p;\n switch (op.type) {\n case 'insert_node':\n case 'move_node':\n {\n p.path = Path.transform(path, op, options);\n break;\n }\n case 'insert_text':\n {\n if (Path.equals(op.path, path) && (op.offset < offset || op.offset === offset && affinity === 'forward')) {\n p.offset += op.text.length;\n }\n break;\n }\n case 'merge_node':\n {\n if (Path.equals(op.path, path)) {\n p.offset += op.position;\n }\n p.path = Path.transform(path, op, options);\n break;\n }\n case 'remove_text':\n {\n if (Path.equals(op.path, path) && op.offset <= offset) {\n p.offset -= Math.min(offset - op.offset, op.text.length);\n }\n break;\n }\n case 'remove_node':\n {\n if (Path.equals(op.path, path) || Path.isAncestor(op.path, path)) {\n return null;\n }\n p.path = Path.transform(path, op, options);\n break;\n }\n case 'split_node':\n {\n if (Path.equals(op.path, path)) {\n if (op.position === offset && affinity == null) {\n return null;\n } else if (op.position < offset || op.position === offset && affinity === 'forward') {\n p.offset -= op.position;\n p.path = Path.transform(path, op, _objectSpread$b(_objectSpread$b({}, options), {}, {\n affinity: 'forward'\n }));\n }\n } else {\n p.path = Path.transform(path, op, options);\n }\n break;\n }\n }\n });\n }\n};\n\nvar _scrubber = undefined;\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\nvar Scrubber = {\n setScrubber(scrubber) {\n _scrubber = scrubber;\n },\n stringify(value) {\n return JSON.stringify(value, _scrubber);\n }\n};\n\nvar _excluded$2 = [\"text\"],\n _excluded2$2 = [\"anchor\", \"focus\"];\nfunction ownKeys$a(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$a(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$a(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$a(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\n// eslint-disable-next-line no-redeclare\nvar Text = {\n equals(text, another) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n loose = false\n } = options;\n function omitText(obj) {\n var rest = _objectWithoutProperties(obj, _excluded$2);\n return rest;\n }\n return isDeepEqual(loose ? omitText(text) : text, loose ? omitText(another) : another);\n },\n isText(value) {\n return isPlainObject(value) && typeof value.text === 'string';\n },\n isTextList(value) {\n return Array.isArray(value) && value.every(val => Text.isText(val));\n },\n isTextProps(props) {\n return props.text !== undefined;\n },\n matches(text, props) {\n for (var key in props) {\n if (key === 'text') {\n continue;\n }\n if (!text.hasOwnProperty(key) || text[key] !== props[key]) {\n return false;\n }\n }\n return true;\n },\n decorations(node, decorations) {\n var leaves = [_objectSpread$a({}, node)];\n for (var dec of decorations) {\n var rest = _objectWithoutProperties(dec, _excluded2$2);\n var [start, end] = Range.edges(dec);\n var next = [];\n var leafEnd = 0;\n var decorationStart = start.offset;\n var decorationEnd = end.offset;\n for (var leaf of leaves) {\n var {\n length\n } = leaf.text;\n var leafStart = leafEnd;\n leafEnd += length;\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 // If the range expanded and match the leaf, or starts after, or ends before it, continue.\n if (decorationStart !== decorationEnd && (decorationStart === leafEnd || decorationEnd === leafStart) || decorationStart > leafEnd || decorationEnd < leafStart || decorationEnd === leafStart && leafStart !== 0) {\n next.push(leaf);\n continue;\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 var middle = leaf;\n var before = void 0;\n var after = void 0;\n if (decorationEnd < leafEnd) {\n var off = decorationEnd - leafStart;\n after = _objectSpread$a(_objectSpread$a({}, middle), {}, {\n text: middle.text.slice(off)\n });\n middle = _objectSpread$a(_objectSpread$a({}, middle), {}, {\n text: middle.text.slice(0, off)\n });\n }\n if (decorationStart > leafStart) {\n var _off = decorationStart - leafStart;\n before = _objectSpread$a(_objectSpread$a({}, middle), {}, {\n text: middle.text.slice(0, _off)\n });\n middle = _objectSpread$a(_objectSpread$a({}, middle), {}, {\n text: middle.text.slice(_off)\n });\n }\n Object.assign(middle, rest);\n if (before) {\n next.push(before);\n }\n next.push(middle);\n if (after) {\n next.push(after);\n }\n }\n leaves = next;\n }\n return leaves;\n }\n};\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 */\nvar getDefaultInsertLocation = editor => {\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\nvar matchPath = (editor, path) => {\n var [node] = Editor.node(editor, path);\n return n => n === node;\n};\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 * Get the distance to the end of the first character in a string of text.\n */\nvar getCharacterDistance = function getCharacterDistance(str) {\n var isRTL = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var isLTR = !isRTL;\n var codepoints = isRTL ? codepointsIteratorRTL(str) : str;\n var left = CodepointType.None;\n var right = CodepointType.None;\n var distance = 0;\n // Evaluation of these conditions are deferred.\n var gb11 = null; // Is GB11 applicable?\n var gb12Or13 = null; // Is GB12 or GB13 applicable?\n for (var char of codepoints) {\n var code = char.codePointAt(0);\n if (!code) break;\n var type = getCodepointType(char, code);\n [left, right] = isLTR ? [right, type] : [type, left];\n if (intersects(left, CodepointType.ZWJ) && intersects(right, CodepointType.ExtPict)) {\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 if (intersects(left, CodepointType.RI) && intersects(right, CodepointType.RI)) {\n if (gb12Or13 !== null) {\n gb12Or13 = !gb12Or13;\n } else {\n if (isLTR) {\n gb12Or13 = true;\n } else {\n gb12Or13 = endsWithOddNumberOfRIs(str.substring(0, str.length - distance));\n }\n }\n if (!gb12Or13) break;\n }\n if (left !== CodepointType.None && right !== CodepointType.None && isBoundaryPair(left, right)) {\n break;\n }\n distance += char.length;\n }\n return distance || 1;\n};\nvar SPACE = /\\s/;\nvar PUNCTUATION = /[\\u002B\\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]/;\nvar CHAMELEON = /['\\u2018\\u2019]/;\n/**\n * Get the distance to the end of the first word in a string of text.\n */\nvar getWordDistance = function getWordDistance(text) {\n var isRTL = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n var dist = 0;\n var started = false;\n while (text.length > 0) {\n var charDist = getCharacterDistance(text, isRTL);\n var [char, remaining] = splitByCharacterDistance(text, charDist, isRTL);\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 text = remaining;\n }\n return dist;\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 */\nvar splitByCharacterDistance = (str, dist, isRTL) => {\n if (isRTL) {\n var at = str.length - dist;\n return [str.slice(at, str.length), str.slice(0, at)];\n }\n return [str.slice(0, dist), str.slice(dist)];\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 */\nvar isWordCharacter = function isWordCharacter(char, remaining) {\n var isRTL = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : false;\n if (SPACE.test(char)) {\n return false;\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 var charDist = getCharacterDistance(remaining, isRTL);\n var [nextChar, nextRemaining] = splitByCharacterDistance(remaining, charDist, isRTL);\n if (isWordCharacter(nextChar, nextRemaining, isRTL)) {\n return true;\n }\n }\n if (PUNCTUATION.test(char)) {\n return false;\n }\n return true;\n};\n/**\n * Iterate on codepoints from right to left.\n */\nvar codepointsIteratorRTL = function* codepointsIteratorRTL(str) {\n var end = str.length - 1;\n for (var i = 0; i < str.length; i++) {\n var char1 = str.charAt(end - i);\n if (isLowSurrogate(char1.charCodeAt(0))) {\n var char2 = str.charAt(end - i - 1);\n if (isHighSurrogate(char2.charCodeAt(0))) {\n yield char2 + char1;\n i++;\n continue;\n }\n }\n yield char1;\n }\n};\n/**\n * Is `charCode` a high surrogate.\n *\n * https://en.wikipedia.org/wiki/Universal_Character_Set_characters#Surrogates\n */\nvar isHighSurrogate = charCode => {\n return charCode >= 0xd800 && charCode <= 0xdbff;\n};\n/**\n * Is `charCode` a low surrogate.\n *\n * https://en.wikipedia.org/wiki/Universal_Character_Set_characters#Surrogates\n */\nvar isLowSurrogate = charCode => {\n return charCode >= 0xdc00 && charCode <= 0xdfff;\n};\nvar CodepointType;\n(function (CodepointType) {\n CodepointType[CodepointType[\"None\"] = 0] = \"None\";\n CodepointType[CodepointType[\"Extend\"] = 1] = \"Extend\";\n CodepointType[CodepointType[\"ZWJ\"] = 2] = \"ZWJ\";\n CodepointType[CodepointType[\"RI\"] = 4] = \"RI\";\n CodepointType[CodepointType[\"Prepend\"] = 8] = \"Prepend\";\n CodepointType[CodepointType[\"SpacingMark\"] = 16] = \"SpacingMark\";\n CodepointType[CodepointType[\"L\"] = 32] = \"L\";\n CodepointType[CodepointType[\"V\"] = 64] = \"V\";\n CodepointType[CodepointType[\"T\"] = 128] = \"T\";\n CodepointType[CodepointType[\"LV\"] = 256] = \"LV\";\n CodepointType[CodepointType[\"LVT\"] = 512] = \"LVT\";\n CodepointType[CodepointType[\"ExtPict\"] = 1024] = \"ExtPict\";\n CodepointType[CodepointType[\"Any\"] = 2048] = \"Any\";\n})(CodepointType || (CodepointType = {}));\nvar reExtend = /^(?:[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0898-\\u089F\\u08CA-\\u08E1\\u08E3-\\u0902\\u093A\\u093C\\u0941-\\u0948\\u094D\\u0951-\\u0957\\u0962\\u0963\\u0981\\u09BC\\u09BE\\u09C1-\\u09C4\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01\\u0A02\\u0A3C\\u0A41\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81\\u0A82\\u0ABC\\u0AC1-\\u0AC5\\u0AC7\\u0AC8\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01\\u0B3C\\u0B3E\\u0B3F\\u0B41-\\u0B44\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE\\u0BC0\\u0BCD\\u0BD7\\u0C00\\u0C04\\u0C3C\\u0C3E-\\u0C40\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81\\u0CBC\\u0CBF\\u0CC2\\u0CC6\\u0CCC\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D00\\u0D01\\u0D3B\\u0D3C\\u0D3E\\u0D41-\\u0D44\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81\\u0DCA\\u0DCF\\u0DD2-\\u0DD4\\u0DD6\\u0DDF\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F71-\\u0F7E\\u0F80-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102D-\\u1030\\u1032-\\u1037\\u1039\\u103A\\u103D\\u103E\\u1058\\u1059\\u105E-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108D\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732\\u1733\\u1752\\u1753\\u1772\\u1773\\u17B4\\u17B5\\u17B7-\\u17BD\\u17C6\\u17C9-\\u17D3\\u17DD\\u180B-\\u180D\\u180F\\u1885\\u1886\\u18A9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193B\\u1A17\\u1A18\\u1A1B\\u1A56\\u1A58-\\u1A5E\\u1A60\\u1A62\\u1A65-\\u1A6C\\u1A73-\\u1A7C\\u1A7F\\u1AB0-\\u1ACE\\u1B00-\\u1B03\\u1B34-\\u1B3A\\u1B3C\\u1B42\\u1B6B-\\u1B73\\u1B80\\u1B81\\u1BA2-\\u1BA5\\u1BA8\\u1BA9\\u1BAB-\\u1BAD\\u1BE6\\u1BE8\\u1BE9\\u1BED\\u1BEF-\\u1BF1\\u1C2C-\\u1C33\\u1C36\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE0\\u1CE2-\\u1CE8\\u1CED\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DFF\\u200C\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA825\\uA826\\uA82C\\uA8C4\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA951\\uA980-\\uA982\\uA9B3\\uA9B6-\\uA9B9\\uA9BC\\uA9BD\\uA9E5\\uAA29-\\uAA2E\\uAA31\\uAA32\\uAA35\\uAA36\\uAA43\\uAA4C\\uAA7C\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEC\\uAAED\\uAAF6\\uABE5\\uABE8\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFF9E\\uFF9F]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDEFD-\\uDEFF\\uDF46-\\uDF50\\uDF82-\\uDF85]|\\uD804[\\uDC01\\uDC38-\\uDC46\\uDC70\\uDC73\\uDC74\\uDC7F-\\uDC81\\uDCB3-\\uDCB6\\uDCB9\\uDCBA\\uDCC2\\uDD00-\\uDD02\\uDD27-\\uDD2B\\uDD2D-\\uDD34\\uDD73\\uDD80\\uDD81\\uDDB6-\\uDDBE\\uDDC9-\\uDDCC\\uDDCF\\uDE2F-\\uDE31\\uDE34\\uDE36\\uDE37\\uDE3E\\uDE41\\uDEDF\\uDEE3-\\uDEEA\\uDF00\\uDF01\\uDF3B\\uDF3C\\uDF3E\\uDF40\\uDF57\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC38-\\uDC3F\\uDC42-\\uDC44\\uDC46\\uDC5E\\uDCB0\\uDCB3-\\uDCB8\\uDCBA\\uDCBD\\uDCBF\\uDCC0\\uDCC2\\uDCC3\\uDDAF\\uDDB2-\\uDDB5\\uDDBC\\uDDBD\\uDDBF\\uDDC0\\uDDDC\\uDDDD\\uDE33-\\uDE3A\\uDE3D\\uDE3F\\uDE40\\uDEAB\\uDEAD\\uDEB0-\\uDEB5\\uDEB7\\uDF1D-\\uDF1F\\uDF22-\\uDF25\\uDF27-\\uDF2B]|\\uD806[\\uDC2F-\\uDC37\\uDC39\\uDC3A\\uDD30\\uDD3B\\uDD3C\\uDD3E\\uDD43\\uDDD4-\\uDDD7\\uDDDA\\uDDDB\\uDDE0\\uDE01-\\uDE0A\\uDE33-\\uDE38\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE56\\uDE59-\\uDE5B\\uDE8A-\\uDE96\\uDE98\\uDE99]|\\uD807[\\uDC30-\\uDC36\\uDC38-\\uDC3D\\uDC3F\\uDC92-\\uDCA7\\uDCAA-\\uDCB0\\uDCB2\\uDCB3\\uDCB5\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD90\\uDD91\\uDD95\\uDD97\\uDEF3\\uDEF4\\uDF00\\uDF01\\uDF36-\\uDF3A\\uDF40\\uDF42]|\\uD80D[\\uDC40\\uDC47-\\uDC55]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF4F\\uDF8F-\\uDF92\\uDFE4]|\\uD82F[\\uDC9D\\uDC9E]|\\uD833[\\uDF00-\\uDF2D\\uDF30-\\uDF46]|\\uD834[\\uDD65\\uDD67-\\uDD69\\uDD6E-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDC8F\\uDD30-\\uDD36\\uDEAE\\uDEEC-\\uDEEF]|\\uD839[\\uDCEC-\\uDCEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A]|\\uD83C[\\uDFFB-\\uDFFF]|\\uDB40[\\uDC20-\\uDC7F\\uDD00-\\uDDEF])$/;\nvar rePrepend = /^(?:[\\u0600-\\u0605\\u06DD\\u070F\\u0890\\u0891\\u08E2\\u0D4E]|\\uD804[\\uDCBD\\uDCCD\\uDDC2\\uDDC3]|\\uD806[\\uDD3F\\uDD41\\uDE3A\\uDE84-\\uDE89]|\\uD807\\uDD46)$/;\nvar 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]|\\uD804[\\uDC00\\uDC02\\uDC82\\uDCB0-\\uDCB2\\uDCB7\\uDCB8\\uDD2C\\uDD45\\uDD46\\uDD82\\uDDB3-\\uDDB5\\uDDBF\\uDDC0\\uDDCE\\uDE2C-\\uDE2E\\uDE32\\uDE33\\uDE35\\uDEE0-\\uDEE2\\uDF02\\uDF03\\uDF3F\\uDF41-\\uDF44\\uDF47\\uDF48\\uDF4B-\\uDF4D\\uDF62\\uDF63]|\\uD805[\\uDC35-\\uDC37\\uDC40\\uDC41\\uDC45\\uDCB1\\uDCB2\\uDCB9\\uDCBB\\uDCBC\\uDCBE\\uDCC1\\uDDB0\\uDDB1\\uDDB8-\\uDDBB\\uDDBE\\uDE30-\\uDE32\\uDE3B\\uDE3C\\uDE3E\\uDEAC\\uDEAE\\uDEAF\\uDEB6\\uDF26]|\\uD806[\\uDC2C-\\uDC2E\\uDC38\\uDD31-\\uDD35\\uDD37\\uDD38\\uDD3D\\uDD40\\uDD42\\uDDD1-\\uDDD3\\uDDDC-\\uDDDF\\uDDE4\\uDE39\\uDE57\\uDE58\\uDE97]|\\uD807[\\uDC2F\\uDC3E\\uDCA9\\uDCB1\\uDCB4\\uDD8A-\\uDD8E\\uDD93\\uDD94\\uDD96\\uDEF5\\uDEF6]|\\uD81B[\\uDF51-\\uDF87\\uDFF0\\uDFF1]|\\uD834[\\uDD66\\uDD6D])$/;\nvar reL = /^[\\u1100-\\u115F\\uA960-\\uA97C]$/;\nvar reV = /^[\\u1160-\\u11A7\\uD7B0-\\uD7C6]$/;\nvar reT = /^[\\u11A8-\\u11FF\\uD7CB-\\uD7FB]$/;\nvar 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]$/;\nvar 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]$/;\nvar reExtPict = /^(?:[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u2388\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2605\\u2607-\\u2612\\u2614-\\u2685\\u2690-\\u2705\\u2708-\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763-\\u2767\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC00-\\uDCFF\\uDD0D-\\uDD0F\\uDD2F\\uDD6C-\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDAD-\\uDDE5\\uDE01-\\uDE0F\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE3C-\\uDE3F\\uDE49-\\uDFFA]|\\uD83D[\\uDC00-\\uDD3D\\uDD46-\\uDE4F\\uDE80-\\uDEFF\\uDF74-\\uDF7F\\uDFD5-\\uDFFF]|\\uD83E[\\uDC0C-\\uDC0F\\uDC48-\\uDC4F\\uDC5A-\\uDC5F\\uDC88-\\uDC8F\\uDCAE-\\uDCFF\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDEFF]|\\uD83F[\\uDC00-\\uDFFD])$/;\nvar getCodepointType = (char, code) => {\n var 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 return type;\n};\nfunction intersects(x, y) {\n return (x & y) !== 0;\n}\nvar NonBoundaryPairs = [\n// GB6\n[CodepointType.L, CodepointType.L | CodepointType.V | CodepointType.LV | CodepointType.LVT],\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]];\nfunction isBoundaryPair(left, right) {\n return NonBoundaryPairs.findIndex(r => intersects(left, r[0]) && intersects(right, r[1])) === -1;\n}\nvar endingEmojiZWJ = /(?:[\\xA9\\xAE\\u203C\\u2049\\u2122\\u2139\\u2194-\\u2199\\u21A9\\u21AA\\u231A\\u231B\\u2328\\u2388\\u23CF\\u23E9-\\u23F3\\u23F8-\\u23FA\\u24C2\\u25AA\\u25AB\\u25B6\\u25C0\\u25FB-\\u25FE\\u2600-\\u2605\\u2607-\\u2612\\u2614-\\u2685\\u2690-\\u2705\\u2708-\\u2712\\u2714\\u2716\\u271D\\u2721\\u2728\\u2733\\u2734\\u2744\\u2747\\u274C\\u274E\\u2753-\\u2755\\u2757\\u2763-\\u2767\\u2795-\\u2797\\u27A1\\u27B0\\u27BF\\u2934\\u2935\\u2B05-\\u2B07\\u2B1B\\u2B1C\\u2B50\\u2B55\\u3030\\u303D\\u3297\\u3299]|\\uD83C[\\uDC00-\\uDCFF\\uDD0D-\\uDD0F\\uDD2F\\uDD6C-\\uDD71\\uDD7E\\uDD7F\\uDD8E\\uDD91-\\uDD9A\\uDDAD-\\uDDE5\\uDE01-\\uDE0F\\uDE1A\\uDE2F\\uDE32-\\uDE3A\\uDE3C-\\uDE3F\\uDE49-\\uDFFA]|\\uD83D[\\uDC00-\\uDD3D\\uDD46-\\uDE4F\\uDE80-\\uDEFF\\uDF74-\\uDF7F\\uDFD5-\\uDFFF]|\\uD83E[\\uDC0C-\\uDC0F\\uDC48-\\uDC4F\\uDC5A-\\uDC5F\\uDC88-\\uDC8F\\uDCAE-\\uDCFF\\uDD0C-\\uDD3A\\uDD3C-\\uDD45\\uDD47-\\uDEFF]|\\uD83F[\\uDC00-\\uDFFD])(?:[\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u07FD\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u0898-\\u089F\\u08CA-\\u08E1\\u08E3-\\u0902\\u093A\\u093C\\u0941-\\u0948\\u094D\\u0951-\\u0957\\u0962\\u0963\\u0981\\u09BC\\u09BE\\u09C1-\\u09C4\\u09CD\\u09D7\\u09E2\\u09E3\\u09FE\\u0A01\\u0A02\\u0A3C\\u0A41\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81\\u0A82\\u0ABC\\u0AC1-\\u0AC5\\u0AC7\\u0AC8\\u0ACD\\u0AE2\\u0AE3\\u0AFA-\\u0AFF\\u0B01\\u0B3C\\u0B3E\\u0B3F\\u0B41-\\u0B44\\u0B4D\\u0B55-\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE\\u0BC0\\u0BCD\\u0BD7\\u0C00\\u0C04\\u0C3C\\u0C3E-\\u0C40\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81\\u0CBC\\u0CBF\\u0CC2\\u0CC6\\u0CCC\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D00\\u0D01\\u0D3B\\u0D3C\\u0D3E\\u0D41-\\u0D44\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D81\\u0DCA\\u0DCF\\u0DD2-\\u0DD4\\u0DD6\\u0DDF\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EBC\\u0EC8-\\u0ECE\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F71-\\u0F7E\\u0F80-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102D-\\u1030\\u1032-\\u1037\\u1039\\u103A\\u103D\\u103E\\u1058\\u1059\\u105E-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108D\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732\\u1733\\u1752\\u1753\\u1772\\u1773\\u17B4\\u17B5\\u17B7-\\u17BD\\u17C6\\u17C9-\\u17D3\\u17DD\\u180B-\\u180D\\u180F\\u1885\\u1886\\u18A9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193B\\u1A17\\u1A18\\u1A1B\\u1A56\\u1A58-\\u1A5E\\u1A60\\u1A62\\u1A65-\\u1A6C\\u1A73-\\u1A7C\\u1A7F\\u1AB0-\\u1ACE\\u1B00-\\u1B03\\u1B34-\\u1B3A\\u1B3C\\u1B42\\u1B6B-\\u1B73\\u1B80\\u1B81\\u1BA2-\\u1BA5\\u1BA8\\u1BA9\\u1BAB-\\u1BAD\\u1BE6\\u1BE8\\u1BE9\\u1BED\\u1BEF-\\u1BF1\\u1C2C-\\u1C33\\u1C36\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE0\\u1CE2-\\u1CE8\\u1CED\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DFF\\u200C\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA825\\uA826\\uA82C\\uA8C4\\uA8C5\\uA8E0-\\uA8F1\\uA8FF\\uA926-\\uA92D\\uA947-\\uA951\\uA980-\\uA982\\uA9B3\\uA9B6-\\uA9B9\\uA9BC\\uA9BD\\uA9E5\\uAA29-\\uAA2E\\uAA31\\uAA32\\uAA35\\uAA36\\uAA43\\uAA4C\\uAA7C\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEC\\uAAED\\uAAF6\\uABE5\\uABE8\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F\\uFF9E\\uFF9F]|\\uD800[\\uDDFD\\uDEE0\\uDF76-\\uDF7A]|\\uD802[\\uDE01-\\uDE03\\uDE05\\uDE06\\uDE0C-\\uDE0F\\uDE38-\\uDE3A\\uDE3F\\uDEE5\\uDEE6]|\\uD803[\\uDD24-\\uDD27\\uDEAB\\uDEAC\\uDEFD-\\uDEFF\\uDF46-\\uDF50\\uDF82-\\uDF85]|\\uD804[\\uDC01\\uDC38-\\uDC46\\uDC70\\uDC73\\uDC74\\uDC7F-\\uDC81\\uDCB3-\\uDCB6\\uDCB9\\uDCBA\\uDCC2\\uDD00-\\uDD02\\uDD27-\\uDD2B\\uDD2D-\\uDD34\\uDD73\\uDD80\\uDD81\\uDDB6-\\uDDBE\\uDDC9-\\uDDCC\\uDDCF\\uDE2F-\\uDE31\\uDE34\\uDE36\\uDE37\\uDE3E\\uDE41\\uDEDF\\uDEE3-\\uDEEA\\uDF00\\uDF01\\uDF3B\\uDF3C\\uDF3E\\uDF40\\uDF57\\uDF66-\\uDF6C\\uDF70-\\uDF74]|\\uD805[\\uDC38-\\uDC3F\\uDC42-\\uDC44\\uDC46\\uDC5E\\uDCB0\\uDCB3-\\uDCB8\\uDCBA\\uDCBD\\uDCBF\\uDCC0\\uDCC2\\uDCC3\\uDDAF\\uDDB2-\\uDDB5\\uDDBC\\uDDBD\\uDDBF\\uDDC0\\uDDDC\\uDDDD\\uDE33-\\uDE3A\\uDE3D\\uDE3F\\uDE40\\uDEAB\\uDEAD\\uDEB0-\\uDEB5\\uDEB7\\uDF1D-\\uDF1F\\uDF22-\\uDF25\\uDF27-\\uDF2B]|\\uD806[\\uDC2F-\\uDC37\\uDC39\\uDC3A\\uDD30\\uDD3B\\uDD3C\\uDD3E\\uDD43\\uDDD4-\\uDDD7\\uDDDA\\uDDDB\\uDDE0\\uDE01-\\uDE0A\\uDE33-\\uDE38\\uDE3B-\\uDE3E\\uDE47\\uDE51-\\uDE56\\uDE59-\\uDE5B\\uDE8A-\\uDE96\\uDE98\\uDE99]|\\uD807[\\uDC30-\\uDC36\\uDC38-\\uDC3D\\uDC3F\\uDC92-\\uDCA7\\uDCAA-\\uDCB0\\uDCB2\\uDCB3\\uDCB5\\uDCB6\\uDD31-\\uDD36\\uDD3A\\uDD3C\\uDD3D\\uDD3F-\\uDD45\\uDD47\\uDD90\\uDD91\\uDD95\\uDD97\\uDEF3\\uDEF4\\uDF00\\uDF01\\uDF36-\\uDF3A\\uDF40\\uDF42]|\\uD80D[\\uDC40\\uDC47-\\uDC55]|\\uD81A[\\uDEF0-\\uDEF4\\uDF30-\\uDF36]|\\uD81B[\\uDF4F\\uDF8F-\\uDF92\\uDFE4]|\\uD82F[\\uDC9D\\uDC9E]|\\uD833[\\uDF00-\\uDF2D\\uDF30-\\uDF46]|\\uD834[\\uDD65\\uDD67-\\uDD69\\uDD6E-\\uDD72\\uDD7B-\\uDD82\\uDD85-\\uDD8B\\uDDAA-\\uDDAD\\uDE42-\\uDE44]|\\uD836[\\uDE00-\\uDE36\\uDE3B-\\uDE6C\\uDE75\\uDE84\\uDE9B-\\uDE9F\\uDEA1-\\uDEAF]|\\uD838[\\uDC00-\\uDC06\\uDC08-\\uDC18\\uDC1B-\\uDC21\\uDC23\\uDC24\\uDC26-\\uDC2A\\uDC8F\\uDD30-\\uDD36\\uDEAE\\uDEEC-\\uDEEF]|\\uD839[\\uDCEC-\\uDCEF]|\\uD83A[\\uDCD0-\\uDCD6\\uDD44-\\uDD4A]|\\uD83C[\\uDFFB-\\uDFFF]|\\uDB40[\\uDC20-\\uDC7F\\uDD00-\\uDDEF])*\\u200D$/;\nvar endsWithEmojiZWJ = str => {\n return str.search(endingEmojiZWJ) !== -1;\n};\nvar endingRIs = /(?:\\uD83C[\\uDDE6-\\uDDFF])+$/g;\nvar endsWithOddNumberOfRIs = str => {\n var match = str.match(endingRIs);\n if (match === null) {\n return false;\n } else {\n // A RI is represented by a surrogate pair.\n var numRIs = match[0].length / 2;\n return numRIs % 2 === 1;\n }\n};\n\n// eslint-disable-next-line no-redeclare\nvar TextTransforms = {\n delete(editor, options) {\n editor.delete(options);\n },\n insertFragment(editor, fragment, options) {\n editor.insertFragment(fragment, options);\n },\n insertText(editor, text) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n voids = false\n } = options;\n var {\n at = getDefaultInsertLocation(editor)\n } = options;\n if (Path.isPath(at)) {\n at = Editor.range(editor, at);\n }\n if (Range.isRange(at)) {\n if (Range.isCollapsed(at)) {\n at = at.anchor;\n } else {\n var end = Range.end(at);\n if (!voids && Editor.void(editor, {\n at: end\n })) {\n return;\n }\n var start = Range.start(at);\n var startRef = Editor.pointRef(editor, start);\n var endRef = Editor.pointRef(editor, end);\n Transforms.delete(editor, {\n at,\n voids\n });\n var startPoint = startRef.unref();\n var endPoint = endRef.unref();\n at = startPoint || endPoint;\n Transforms.setSelection(editor, {\n anchor: at,\n focus: at\n });\n }\n }\n if (!voids && Editor.void(editor, {\n at\n }) || Editor.elementReadOnly(editor, {\n at\n })) {\n return;\n }\n var {\n path,\n offset\n } = at;\n if (text.length > 0) editor.apply({\n type: 'insert_text',\n path,\n offset,\n text\n });\n });\n }\n};\n\nfunction ownKeys$9(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$9(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$9(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$9(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar Transforms = _objectSpread$9(_objectSpread$9(_objectSpread$9(_objectSpread$9({}, GeneralTransforms), NodeTransforms), SelectionTransforms), TextTransforms);\n\n// perf\nvar BATCHING_DIRTY_PATHS = new WeakMap();\nvar isBatchingDirtyPaths = editor => {\n return BATCHING_DIRTY_PATHS.get(editor) || false;\n};\nvar batchDirtyPaths = (editor, fn, update) => {\n var value = BATCHING_DIRTY_PATHS.get(editor) || false;\n BATCHING_DIRTY_PATHS.set(editor, true);\n try {\n fn();\n update();\n } finally {\n BATCHING_DIRTY_PATHS.set(editor, value);\n }\n};\n\n/**\n * update editor dirty paths\n *\n * @param newDirtyPaths: Path[]; new dirty paths\n * @param transform: (p: Path) => Path | null; how to transform existing dirty paths\n */\nfunction updateDirtyPaths(editor, newDirtyPaths, transform) {\n var oldDirtyPaths = DIRTY_PATHS.get(editor) || [];\n var oldDirtyPathKeys = DIRTY_PATH_KEYS.get(editor) || new Set();\n var dirtyPaths;\n var dirtyPathKeys;\n var add = path => {\n if (path) {\n var key = path.join(',');\n if (!dirtyPathKeys.has(key)) {\n dirtyPathKeys.add(key);\n dirtyPaths.push(path);\n }\n }\n };\n if (transform) {\n dirtyPaths = [];\n dirtyPathKeys = new Set();\n for (var path of oldDirtyPaths) {\n var newPath = transform(path);\n add(newPath);\n }\n } else {\n dirtyPaths = oldDirtyPaths;\n dirtyPathKeys = oldDirtyPathKeys;\n }\n for (var _path of newDirtyPaths) {\n add(_path);\n }\n DIRTY_PATHS.set(editor, dirtyPaths);\n DIRTY_PATH_KEYS.set(editor, dirtyPathKeys);\n}\n\nvar apply = (editor, op) => {\n for (var ref of Editor.pathRefs(editor)) {\n PathRef.transform(ref, op);\n }\n for (var _ref of Editor.pointRefs(editor)) {\n PointRef.transform(_ref, op);\n }\n for (var _ref2 of Editor.rangeRefs(editor)) {\n RangeRef.transform(_ref2, op);\n }\n // update dirty paths\n if (!isBatchingDirtyPaths(editor)) {\n var transform = Path.operationCanTransformPath(op) ? p => Path.transform(p, op) : undefined;\n updateDirtyPaths(editor, editor.getDirtyPaths(op), transform);\n }\n Transforms.transform(editor, op);\n editor.operations.push(op);\n Editor.normalize(editor, {\n operation: op\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 if (!FLUSHING.get(editor)) {\n FLUSHING.set(editor, true);\n Promise.resolve().then(() => {\n FLUSHING.set(editor, false);\n editor.onChange({\n operation: op\n });\n editor.operations = [];\n });\n }\n};\n\n/**\n * Get the \"dirty\" paths generated from an operation.\n */\nvar getDirtyPaths = (editor, op) => {\n switch (op.type) {\n case 'insert_text':\n case 'remove_text':\n case 'set_node':\n {\n var {\n path\n } = op;\n return Path.levels(path);\n }\n case 'insert_node':\n {\n var {\n node,\n path: _path\n } = op;\n var levels = Path.levels(_path);\n var descendants = Text.isText(node) ? [] : Array.from(Node.nodes(node), _ref => {\n var [, p] = _ref;\n return _path.concat(p);\n });\n return [...levels, ...descendants];\n }\n case 'merge_node':\n {\n var {\n path: _path2\n } = op;\n var ancestors = Path.ancestors(_path2);\n var previousPath = Path.previous(_path2);\n return [...ancestors, previousPath];\n }\n case 'move_node':\n {\n var {\n path: _path3,\n newPath\n } = op;\n if (Path.equals(_path3, newPath)) {\n return [];\n }\n var oldAncestors = [];\n var newAncestors = [];\n for (var ancestor of Path.ancestors(_path3)) {\n var p = Path.transform(ancestor, op);\n oldAncestors.push(p);\n }\n for (var _ancestor of Path.ancestors(newPath)) {\n var _p = Path.transform(_ancestor, op);\n newAncestors.push(_p);\n }\n var newParent = newAncestors[newAncestors.length - 1];\n var newIndex = newPath[newPath.length - 1];\n var resultPath = newParent.concat(newIndex);\n return [...oldAncestors, ...newAncestors, resultPath];\n }\n case 'remove_node':\n {\n var {\n path: _path4\n } = op;\n var _ancestors = Path.ancestors(_path4);\n return [..._ancestors];\n }\n case 'split_node':\n {\n var {\n path: _path5\n } = op;\n var _levels = Path.levels(_path5);\n var nextPath = Path.next(_path5);\n return [..._levels, nextPath];\n }\n default:\n {\n return [];\n }\n }\n};\n\nvar getFragment = editor => {\n var {\n selection\n } = editor;\n if (selection) {\n return Node.fragment(editor, selection);\n }\n return [];\n};\n\nvar normalizeNode = (editor, entry) => {\n var [node, path] = entry;\n // There are no core normalizations for text nodes.\n if (Text.isText(node)) {\n return;\n }\n // Ensure that block and inline nodes have at least one text child.\n if (Element.isElement(node) && node.children.length === 0) {\n var child = {\n text: ''\n };\n Transforms.insertNodes(editor, child, {\n at: path.concat(0),\n voids: true\n });\n return;\n }\n // Determine whether the node should have block or inline children.\n var shouldHaveInlines = Editor.isEditor(node) ? false : Element.isElement(node) && (editor.isInline(node) || node.children.length === 0 || Text.isText(node.children[0]) || editor.isInline(node.children[0]));\n // Since we'll be applying operations while iterating, keep track of an\n // index that accounts for any added/removed nodes.\n var n = 0;\n for (var i = 0; i < node.children.length; i++, n++) {\n var currentNode = Node.get(editor, path);\n if (Text.isText(currentNode)) continue;\n var _child = currentNode.children[n];\n var prev = currentNode.children[n - 1];\n var isLast = i === node.children.length - 1;\n var isInlineOrText = Text.isText(_child) || Element.isElement(_child) && editor.isInline(_child);\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, {\n at: path.concat(n),\n voids: true\n });\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 var newChild = {\n text: ''\n };\n Transforms.insertNodes(editor, newChild, {\n at: path.concat(n),\n voids: true\n });\n n++;\n } else if (isLast) {\n var _newChild = {\n text: ''\n };\n Transforms.insertNodes(editor, _newChild, {\n at: path.concat(n + 1),\n voids: true\n });\n n++;\n }\n }\n } else {\n // If the child is not a text node, and doesn't have a `children` field,\n // then we have an invalid node that will upset slate.\n //\n // eg: `{ type: 'some_node' }`.\n //\n // To prevent slate from breaking, we can add the `children` field,\n // and now that it is valid, we can to many more operations easily,\n // such as extend normalizers to fix erronous structure.\n if (!Text.isText(_child) && !('children' in _child)) {\n var elementChild = _child;\n elementChild.children = [];\n }\n // Merge adjacent text nodes that are empty or match.\n if (prev != null && Text.isText(prev)) {\n if (Text.equals(_child, prev, {\n loose: true\n })) {\n Transforms.mergeNodes(editor, {\n at: path.concat(n),\n voids: true\n });\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\nvar shouldNormalize = (editor, _ref) => {\n var {\n iteration,\n initialDirtyPathsLength\n } = _ref;\n var maxIterations = initialDirtyPathsLength * 42; // HACK: better way?\n if (iteration > maxIterations) {\n throw new Error(\"Could not completely normalize the editor after \".concat(maxIterations, \" iterations! This is usually due to incorrect normalization logic that leaves a node in an invalid state.\"));\n }\n return true;\n};\n\nvar above = function above(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n voids = false,\n mode = 'lowest',\n at = editor.selection,\n match\n } = options;\n if (!at) {\n return;\n }\n var path = Editor.path(editor, at);\n var reverse = mode === 'lowest';\n for (var [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 (Path.isAncestor(p, at.anchor.path) && Path.isAncestor(p, at.focus.path)) {\n return [n, p];\n }\n } else {\n if (!Path.equals(path, p)) {\n return [n, p];\n }\n }\n }\n};\n\nfunction ownKeys$8(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$8(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$8(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$8(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar addMark = (editor, key, value) => {\n var {\n selection\n } = editor;\n if (selection) {\n var match = (node, path) => {\n if (!Text.isText(node)) {\n return false; // marks can only be applied to text\n }\n\n var [parentNode, parentPath] = Editor.parent(editor, path);\n return !editor.isVoid(parentNode) || editor.markableVoid(parentNode);\n };\n var expandedSelection = Range.isExpanded(selection);\n var markAcceptingVoidSelected = false;\n if (!expandedSelection) {\n var [selectedNode, selectedPath] = Editor.node(editor, selection);\n if (selectedNode && match(selectedNode, selectedPath)) {\n var [parentNode] = Editor.parent(editor, selectedPath);\n markAcceptingVoidSelected = parentNode && editor.markableVoid(parentNode);\n }\n }\n if (expandedSelection || markAcceptingVoidSelected) {\n Transforms.setNodes(editor, {\n [key]: value\n }, {\n match,\n split: true,\n voids: true\n });\n } else {\n var marks = _objectSpread$8(_objectSpread$8({}, Editor.marks(editor) || {}), {}, {\n [key]: value\n });\n editor.marks = marks;\n if (!FLUSHING.get(editor)) {\n editor.onChange();\n }\n }\n }\n};\n\nfunction ownKeys$7(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$7(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$7(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$7(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar after = function after(editor, at) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var anchor = Editor.point(editor, at, {\n edge: 'end'\n });\n var focus = Editor.end(editor, []);\n var range = {\n anchor,\n focus\n };\n var {\n distance = 1\n } = options;\n var d = 0;\n var target;\n for (var p of Editor.positions(editor, _objectSpread$7(_objectSpread$7({}, options), {}, {\n at: range\n }))) {\n if (d > distance) {\n break;\n }\n if (d !== 0) {\n target = p;\n }\n d++;\n }\n return target;\n};\n\nfunction ownKeys$6(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$6(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$6(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$6(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar before = function before(editor, at) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var anchor = Editor.start(editor, []);\n var focus = Editor.point(editor, at, {\n edge: 'start'\n });\n var range = {\n anchor,\n focus\n };\n var {\n distance = 1\n } = options;\n var d = 0;\n var target;\n for (var p of Editor.positions(editor, _objectSpread$6(_objectSpread$6({}, options), {}, {\n at: range,\n reverse: true\n }))) {\n if (d > distance) {\n break;\n }\n if (d !== 0) {\n target = p;\n }\n d++;\n }\n return target;\n};\n\nvar deleteBackward = (editor, unit) => {\n var {\n selection\n } = editor;\n if (selection && Range.isCollapsed(selection)) {\n Transforms.delete(editor, {\n unit,\n reverse: true\n });\n }\n};\n\nvar deleteForward = (editor, unit) => {\n var {\n selection\n } = editor;\n if (selection && Range.isCollapsed(selection)) {\n Transforms.delete(editor, {\n unit\n });\n }\n};\n\nvar deleteFragment = function deleteFragment(editor) {\n var {\n direction = 'forward'\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n selection\n } = editor;\n if (selection && Range.isExpanded(selection)) {\n Transforms.delete(editor, {\n reverse: direction === 'backward'\n });\n }\n};\n\nvar edges = (editor, at) => {\n return [Editor.start(editor, at), Editor.end(editor, at)];\n};\n\nfunction ownKeys$5(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$5(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$5(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$5(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar elementReadOnly = function elementReadOnly(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Editor.above(editor, _objectSpread$5(_objectSpread$5({}, options), {}, {\n match: n => Element.isElement(n) && Editor.isElementReadOnly(editor, n)\n }));\n};\n\nvar end = (editor, at) => {\n return Editor.point(editor, at, {\n edge: 'end'\n });\n};\n\nvar first = (editor, at) => {\n var path = Editor.path(editor, at, {\n edge: 'start'\n });\n return Editor.node(editor, path);\n};\n\nvar fragment = (editor, at) => {\n var range = Editor.range(editor, at);\n return Node.fragment(editor, range);\n};\n\nfunction ownKeys$4(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$4(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar getVoid = function getVoid(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return Editor.above(editor, _objectSpread$4(_objectSpread$4({}, options), {}, {\n match: n => Element.isElement(n) && Editor.isVoid(editor, n)\n }));\n};\n\nvar hasBlocks = (editor, element) => {\n return element.children.some(n => Element.isElement(n) && Editor.isBlock(editor, n));\n};\n\nvar hasInlines = (editor, element) => {\n return element.children.some(n => Text.isText(n) || Editor.isInline(editor, n));\n};\n\nvar hasPath = (editor, path) => {\n return Node.has(editor, path);\n};\n\nvar hasTexts = (editor, element) => {\n return element.children.every(n => Text.isText(n));\n};\n\nvar insertBreak = editor => {\n Transforms.splitNodes(editor, {\n always: true\n });\n};\n\nvar insertNode = (editor, node, options) => {\n Transforms.insertNodes(editor, node, options);\n};\n\nvar insertSoftBreak = editor => {\n Transforms.splitNodes(editor, {\n always: true\n });\n};\n\nfunction ownKeys$3(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar insertText = function insertText(editor, text) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n selection,\n marks\n } = editor;\n if (selection) {\n if (marks) {\n var node = _objectSpread$3({\n text\n }, 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 editor.marks = null;\n }\n};\n\nvar isBlock = (editor, value) => {\n return !editor.isInline(value);\n};\n\nvar isEdge = (editor, point, at) => {\n return Editor.isStart(editor, point, at) || Editor.isEnd(editor, point, at);\n};\n\nvar isEmpty = (editor, element) => {\n var {\n children\n } = element;\n var [first] = children;\n return children.length === 0 || children.length === 1 && Text.isText(first) && first.text === '' && !editor.isVoid(element);\n};\n\nvar isEnd = (editor, point, at) => {\n var end = Editor.end(editor, at);\n return Point.equals(point, end);\n};\n\nvar isNormalizing = editor => {\n var isNormalizing = NORMALIZING.get(editor);\n return isNormalizing === undefined ? true : isNormalizing;\n};\n\nvar 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 var start = Editor.start(editor, at);\n return Point.equals(point, start);\n};\n\nvar last = (editor, at) => {\n var path = Editor.path(editor, at, {\n edge: 'end'\n });\n return Editor.node(editor, path);\n};\n\nvar leaf = function leaf(editor, at) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var path = Editor.path(editor, at, options);\n var node = Node.leaf(editor, path);\n return [node, path];\n};\n\nfunction levels(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return function* () {\n var {\n at = editor.selection,\n reverse = false,\n voids = false\n } = options;\n var {\n match\n } = options;\n if (match == null) {\n match = () => true;\n }\n if (!at) {\n return;\n }\n var levels = [];\n var path = Editor.path(editor, at);\n for (var [n, p] of Node.levels(editor, path)) {\n if (!match(n, p)) {\n continue;\n }\n levels.push([n, p]);\n if (!voids && Element.isElement(n) && Editor.isVoid(editor, n)) {\n break;\n }\n }\n if (reverse) {\n levels.reverse();\n }\n yield* levels;\n }();\n}\n\nvar _excluded$1 = [\"text\"],\n _excluded2$1 = [\"text\"];\nvar marks = function marks(editor) {\n var {\n marks,\n selection\n } = editor;\n if (!selection) {\n return null;\n }\n var {\n anchor,\n focus\n } = selection;\n if (marks) {\n return marks;\n }\n if (Range.isExpanded(selection)) {\n /**\n * COMPAT: Make sure hanging ranges (caused by double clicking in Firefox)\n * do not adversely affect the returned marks.\n */\n var isEnd = Editor.isEnd(editor, anchor, anchor.path);\n if (isEnd) {\n var after = Editor.after(editor, anchor);\n if (after) {\n anchor = after;\n }\n }\n var [match] = Editor.nodes(editor, {\n match: Text.isText,\n at: {\n anchor,\n focus\n }\n });\n if (match) {\n var [_node] = match;\n var _rest = _objectWithoutProperties(_node, _excluded$1);\n return _rest;\n } else {\n return {};\n }\n }\n var {\n path\n } = anchor;\n var [node] = Editor.leaf(editor, path);\n if (anchor.offset === 0) {\n var prev = Editor.previous(editor, {\n at: path,\n match: Text.isText\n });\n var markedVoid = Editor.above(editor, {\n match: n => Element.isElement(n) && Editor.isVoid(editor, n) && editor.markableVoid(n)\n });\n if (!markedVoid) {\n var block = Editor.above(editor, {\n match: n => Element.isElement(n) && Editor.isBlock(editor, n)\n });\n if (prev && block) {\n var [prevNode, prevPath] = prev;\n var [, blockPath] = block;\n if (Path.isAncestor(blockPath, prevPath)) {\n node = prevNode;\n }\n }\n }\n }\n var rest = _objectWithoutProperties(node, _excluded2$1);\n return rest;\n};\n\nvar next = function next(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n mode = 'lowest',\n voids = false\n } = options;\n var {\n match,\n at = editor.selection\n } = options;\n if (!at) {\n return;\n }\n var pointAfterLocation = Editor.after(editor, at, {\n voids\n });\n if (!pointAfterLocation) return;\n var [, to] = Editor.last(editor, []);\n var span = [pointAfterLocation.path, to];\n if (Path.isPath(at) && at.length === 0) {\n throw new Error(\"Cannot get the next node from the root node!\");\n }\n if (match == null) {\n if (Path.isPath(at)) {\n var [parent] = Editor.parent(editor, at);\n match = n => parent.children.includes(n);\n } else {\n match = () => true;\n }\n }\n var [next] = Editor.nodes(editor, {\n at: span,\n match,\n mode,\n voids\n });\n return next;\n};\n\nvar node = function node(editor, at) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var path = Editor.path(editor, at, options);\n var node = Node.get(editor, path);\n return [node, path];\n};\n\nfunction nodes(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return function* () {\n var {\n at = editor.selection,\n mode = 'all',\n universal = false,\n reverse = false,\n voids = false,\n ignoreNonSelectable = false\n } = options;\n var {\n match\n } = options;\n if (!match) {\n match = () => true;\n }\n if (!at) {\n return;\n }\n var from;\n var to;\n if (Span.isSpan(at)) {\n from = at[0];\n to = at[1];\n } else {\n var first = Editor.path(editor, at, {\n edge: 'start'\n });\n var last = Editor.path(editor, at, {\n edge: 'end'\n });\n from = reverse ? last : first;\n to = reverse ? first : last;\n }\n var nodeEntries = Node.nodes(editor, {\n reverse,\n from,\n to,\n pass: _ref => {\n var [node] = _ref;\n if (!Element.isElement(node)) return false;\n if (!voids && (Editor.isVoid(editor, node) || Editor.isElementReadOnly(editor, node))) return true;\n if (ignoreNonSelectable && !Editor.isSelectable(editor, node)) return true;\n return false;\n }\n });\n var matches = [];\n var hit;\n for (var [node, path] of nodeEntries) {\n if (ignoreNonSelectable && Element.isElement(node) && !Editor.isSelectable(editor, node)) {\n continue;\n }\n var isLower = hit && Path.compare(path, hit[1]) === 0;\n // In highest mode any node lower than the last hit is not a match.\n if (mode === 'highest' && isLower) {\n continue;\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 // 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 // In lowest mode we emit the last hit, once it's guaranteed lowest.\n var emit = mode === 'lowest' ? hit : [node, path];\n if (emit) {\n if (universal) {\n matches.push(emit);\n } else {\n yield emit;\n }\n }\n hit = [node, path];\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 // 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}\n\nvar normalize = function normalize(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n force = false,\n operation\n } = options;\n var getDirtyPaths = editor => {\n return DIRTY_PATHS.get(editor) || [];\n };\n var getDirtyPathKeys = editor => {\n return DIRTY_PATH_KEYS.get(editor) || new Set();\n };\n var popDirtyPath = editor => {\n var path = getDirtyPaths(editor).pop();\n var key = path.join(',');\n getDirtyPathKeys(editor).delete(key);\n return path;\n };\n if (!Editor.isNormalizing(editor)) {\n return;\n }\n if (force) {\n var allPaths = Array.from(Node.nodes(editor), _ref => {\n var [, p] = _ref;\n return p;\n });\n var allPathKeys = new Set(allPaths.map(p => p.join(',')));\n DIRTY_PATHS.set(editor, allPaths);\n DIRTY_PATH_KEYS.set(editor, allPathKeys);\n }\n if (getDirtyPaths(editor).length === 0) {\n return;\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 (var dirtyPath of getDirtyPaths(editor)) {\n if (Node.has(editor, dirtyPath)) {\n var entry = Editor.node(editor, dirtyPath);\n var [node, _] = entry;\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 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, {\n operation\n });\n }\n }\n }\n var dirtyPaths = getDirtyPaths(editor);\n var initialDirtyPathsLength = dirtyPaths.length;\n var iteration = 0;\n while (dirtyPaths.length !== 0) {\n if (!editor.shouldNormalize({\n dirtyPaths,\n iteration,\n initialDirtyPathsLength,\n operation\n })) {\n return;\n }\n var _dirtyPath = popDirtyPath(editor);\n // If the node doesn't exist in the tree, it does not need to be normalized.\n if (Node.has(editor, _dirtyPath)) {\n var _entry = Editor.node(editor, _dirtyPath);\n editor.normalizeNode(_entry, {\n operation\n });\n }\n iteration++;\n dirtyPaths = getDirtyPaths(editor);\n }\n });\n};\n\nvar parent = function parent(editor, at) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var path = Editor.path(editor, at, options);\n var parentPath = Path.parent(path);\n var entry = Editor.node(editor, parentPath);\n return entry;\n};\n\nvar pathRef = function pathRef(editor, path) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n affinity = 'forward'\n } = options;\n var ref = {\n current: path,\n affinity,\n unref() {\n var {\n current\n } = ref;\n var pathRefs = Editor.pathRefs(editor);\n pathRefs.delete(ref);\n ref.current = null;\n return current;\n }\n };\n var refs = Editor.pathRefs(editor);\n refs.add(ref);\n return ref;\n};\n\nvar pathRefs = editor => {\n var refs = PATH_REFS.get(editor);\n if (!refs) {\n refs = new Set();\n PATH_REFS.set(editor, refs);\n }\n return refs;\n};\n\nvar path = function path(editor, at) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n depth,\n edge\n } = options;\n if (Path.isPath(at)) {\n if (edge === 'start') {\n var [, firstPath] = Node.first(editor, at);\n at = firstPath;\n } else if (edge === 'end') {\n var [, lastPath] = Node.last(editor, at);\n at = lastPath;\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 if (Point.isPoint(at)) {\n at = at.path;\n }\n if (depth != null) {\n at = at.slice(0, depth);\n }\n return at;\n};\n\nvar pointRef = function pointRef(editor, point) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n affinity = 'forward'\n } = options;\n var ref = {\n current: point,\n affinity,\n unref() {\n var {\n current\n } = ref;\n var pointRefs = Editor.pointRefs(editor);\n pointRefs.delete(ref);\n ref.current = null;\n return current;\n }\n };\n var refs = Editor.pointRefs(editor);\n refs.add(ref);\n return ref;\n};\n\nvar pointRefs = editor => {\n var refs = POINT_REFS.get(editor);\n if (!refs) {\n refs = new Set();\n POINT_REFS.set(editor, refs);\n }\n return refs;\n};\n\nvar point = function point(editor, at) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n edge = 'start'\n } = options;\n if (Path.isPath(at)) {\n var path;\n if (edge === 'end') {\n var [, lastPath] = Node.last(editor, at);\n path = lastPath;\n } else {\n var [, firstPath] = Node.first(editor, at);\n path = firstPath;\n }\n var node = Node.get(editor, path);\n if (!Text.isText(node)) {\n throw new Error(\"Cannot get the \".concat(edge, \" point in the node at path [\").concat(at, \"] because it has no \").concat(edge, \" text node.\"));\n }\n return {\n path,\n offset: edge === 'end' ? node.text.length : 0\n };\n }\n if (Range.isRange(at)) {\n var [start, end] = Range.edges(at);\n return edge === 'start' ? start : end;\n }\n return at;\n};\n\nfunction positions(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n return function* () {\n var {\n at = editor.selection,\n unit = 'offset',\n reverse = false,\n voids = false,\n ignoreNonSelectable = false\n } = options;\n if (!at) {\n return;\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 var range = Editor.range(editor, at);\n var [start, end] = Range.edges(range);\n var first = reverse ? end : start;\n var isNewBlock = false;\n var blockText = '';\n var distance = 0; // Distance for leafText to catch up to blockText.\n var leafTextRemaining = 0;\n var leafTextOffset = 0;\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 (var [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 // 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 // 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 // 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 var e = Path.isAncestor(path, end.path) ? end : Editor.end(editor, path);\n var s = Path.isAncestor(path, start.path) ? start : Editor.start(editor, path);\n blockText = Editor.string(editor, {\n anchor: s,\n focus: e\n }, {\n voids\n });\n isNewBlock = true;\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 var isFirst = Path.equals(path, first.path);\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 // Reset `leafText` counters for new text node.\n if (isFirst) {\n leafTextRemaining = reverse ? first.offset : 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 // Yield position at the start of node (potentially).\n if (isFirst || isNewBlock || unit === 'offset') {\n yield {\n path,\n offset: leafTextOffset\n };\n isNewBlock = false;\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 // Advance `leafText` by the current `distance`.\n leafTextOffset = reverse ? leafTextOffset - distance : leafTextOffset + distance;\n leafTextRemaining = leafTextRemaining - distance;\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 // 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 {\n path,\n offset: leafTextOffset\n };\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 // Helper:\n // Return the distance in offsets for a step of size `unit` on given string.\n function calcDistance(text, unit, reverse) {\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}\n\nvar previous = function previous(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n mode = 'lowest',\n voids = false\n } = options;\n var {\n match,\n at = editor.selection\n } = options;\n if (!at) {\n return;\n }\n var pointBeforeLocation = Editor.before(editor, at, {\n voids\n });\n if (!pointBeforeLocation) {\n return;\n }\n var [, to] = Editor.first(editor, []);\n // The search location is from the start of the document to the path of\n // the point before the location passed in\n var span = [pointBeforeLocation.path, to];\n if (Path.isPath(at) && at.length === 0) {\n throw new Error(\"Cannot get the previous node from the root node!\");\n }\n if (match == null) {\n if (Path.isPath(at)) {\n var [parent] = Editor.parent(editor, at);\n match = n => parent.children.includes(n);\n } else {\n match = () => true;\n }\n }\n var [previous] = Editor.nodes(editor, {\n reverse: true,\n at: span,\n match,\n mode,\n voids\n });\n return previous;\n};\n\nvar rangeRef = function rangeRef(editor, range) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n affinity = 'forward'\n } = options;\n var ref = {\n current: range,\n affinity,\n unref() {\n var {\n current\n } = ref;\n var rangeRefs = Editor.rangeRefs(editor);\n rangeRefs.delete(ref);\n ref.current = null;\n return current;\n }\n };\n var refs = Editor.rangeRefs(editor);\n refs.add(ref);\n return ref;\n};\n\nvar rangeRefs = editor => {\n var refs = RANGE_REFS.get(editor);\n if (!refs) {\n refs = new Set();\n RANGE_REFS.set(editor, refs);\n }\n return refs;\n};\n\nvar range = (editor, at, to) => {\n if (Range.isRange(at) && !to) {\n return at;\n }\n var start = Editor.start(editor, at);\n var end = Editor.end(editor, to || at);\n return {\n anchor: start,\n focus: end\n };\n};\n\nfunction ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar removeMark = (editor, key) => {\n var {\n selection\n } = editor;\n if (selection) {\n var match = (node, path) => {\n if (!Text.isText(node)) {\n return false; // marks can only be applied to text\n }\n\n var [parentNode, parentPath] = Editor.parent(editor, path);\n return !editor.isVoid(parentNode) || editor.markableVoid(parentNode);\n };\n var expandedSelection = Range.isExpanded(selection);\n var markAcceptingVoidSelected = false;\n if (!expandedSelection) {\n var [selectedNode, selectedPath] = Editor.node(editor, selection);\n if (selectedNode && match(selectedNode, selectedPath)) {\n var [parentNode] = Editor.parent(editor, selectedPath);\n markAcceptingVoidSelected = 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 var marks = _objectSpread$2({}, Editor.marks(editor) || {});\n delete marks[key];\n editor.marks = marks;\n if (!FLUSHING.get(editor)) {\n editor.onChange();\n }\n }\n }\n};\n\nvar setNormalizing = (editor, isNormalizing) => {\n NORMALIZING.set(editor, isNormalizing);\n};\n\nvar start = (editor, at) => {\n return Editor.point(editor, at, {\n edge: 'start'\n });\n};\n\nvar string = function string(editor, at) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n voids = false\n } = options;\n var range = Editor.range(editor, at);\n var [start, end] = Range.edges(range);\n var text = '';\n for (var [node, path] of Editor.nodes(editor, {\n at: range,\n match: Text.isText,\n voids\n })) {\n var t = node.text;\n if (Path.equals(path, end.path)) {\n t = t.slice(0, end.offset);\n }\n if (Path.equals(path, start.path)) {\n t = t.slice(start.offset);\n }\n text += t;\n }\n return text;\n};\n\nvar unhangRange = function unhangRange(editor, range) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n voids = false\n } = options;\n var [start, end] = Range.edges(range);\n // PERF: exit early if we can guarantee that the range isn't hanging.\n if (start.offset !== 0 || end.offset !== 0 || Range.isCollapsed(range) || Path.hasPrevious(end.path)) {\n return range;\n }\n var endBlock = Editor.above(editor, {\n at: end,\n match: n => Element.isElement(n) && Editor.isBlock(editor, n),\n voids\n });\n var blockPath = endBlock ? endBlock[1] : [];\n var first = Editor.start(editor, start);\n var before = {\n anchor: first,\n focus: end\n };\n var skip = true;\n for (var [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 if (node.text !== '' || Path.isBefore(path, blockPath)) {\n end = {\n path,\n offset: node.text.length\n };\n break;\n }\n }\n return {\n anchor: start,\n focus: end\n };\n};\n\nvar withoutNormalizing = (editor, fn) => {\n var 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\nvar shouldMergeNodesRemovePrevNode = (editor, _ref, _ref2) => {\n var [prevNode, prevPath] = _ref;\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 return Element.isElement(prevNode) && Editor.isEmpty(editor, prevNode) || Text.isText(prevNode) && prevNode.text === '' && prevPath[prevPath.length - 1] !== 0;\n};\n\nvar deleteText = function deleteText(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n Editor.withoutNormalizing(editor, () => {\n var _Editor$void, _Editor$void2;\n var {\n reverse = false,\n unit = 'character',\n distance = 1,\n voids = false\n } = options;\n var {\n at = editor.selection,\n hanging = false\n } = options;\n if (!at) {\n return;\n }\n var isCollapsed = false;\n if (Range.isRange(at) && Range.isCollapsed(at)) {\n isCollapsed = true;\n at = at.anchor;\n }\n if (Point.isPoint(at)) {\n var furthestVoid = Editor.void(editor, {\n at,\n mode: 'highest'\n });\n if (!voids && furthestVoid) {\n var [, voidPath] = furthestVoid;\n at = voidPath;\n } else {\n var opts = {\n unit,\n distance\n };\n var target = reverse ? Editor.before(editor, at, opts) || Editor.start(editor, []) : Editor.after(editor, at, opts) || Editor.end(editor, []);\n at = {\n anchor: at,\n focus: target\n };\n hanging = true;\n }\n }\n if (Path.isPath(at)) {\n Transforms.removeNodes(editor, {\n at,\n voids\n });\n return;\n }\n if (Range.isCollapsed(at)) {\n return;\n }\n if (!hanging) {\n var [, _end] = Range.edges(at);\n var endOfDoc = Editor.end(editor, []);\n if (!Point.equals(_end, endOfDoc)) {\n at = Editor.unhangRange(editor, at, {\n voids\n });\n }\n }\n var [start, end] = Range.edges(at);\n var startBlock = Editor.above(editor, {\n match: n => Element.isElement(n) && Editor.isBlock(editor, n),\n at: start,\n voids\n });\n var endBlock = Editor.above(editor, {\n match: n => Element.isElement(n) && Editor.isBlock(editor, n),\n at: end,\n voids\n });\n var isAcrossBlocks = startBlock && endBlock && !Path.equals(startBlock[1], endBlock[1]);\n var isSingleText = Path.equals(start.path, end.path);\n var startNonEditable = voids ? null : (_Editor$void = Editor.void(editor, {\n at: start,\n mode: 'highest'\n })) !== null && _Editor$void !== void 0 ? _Editor$void : Editor.elementReadOnly(editor, {\n at: start,\n mode: 'highest'\n });\n var endNonEditable = voids ? null : (_Editor$void2 = Editor.void(editor, {\n at: end,\n mode: 'highest'\n })) !== null && _Editor$void2 !== void 0 ? _Editor$void2 : Editor.elementReadOnly(editor, {\n at: end,\n mode: 'highest'\n });\n // If the start or end points are inside an inline void, nudge them out.\n if (startNonEditable) {\n var before = Editor.before(editor, start);\n if (before && startBlock && Path.isAncestor(startBlock[1], before.path)) {\n start = before;\n }\n }\n if (endNonEditable) {\n var after = Editor.after(editor, end);\n if (after && endBlock && Path.isAncestor(endBlock[1], after.path)) {\n end = after;\n }\n }\n // Get the highest nodes that are completely inside the range, as well as\n // the start and end nodes.\n var matches = [];\n var lastPath;\n for (var entry of Editor.nodes(editor, {\n at,\n voids\n })) {\n var [node, path] = entry;\n if (lastPath && Path.compare(path, lastPath) === 0) {\n continue;\n }\n if (!voids && Element.isElement(node) && (Editor.isVoid(editor, node) || Editor.isElementReadOnly(editor, node)) || !Path.isCommon(path, start.path) && !Path.isCommon(path, end.path)) {\n matches.push(entry);\n lastPath = path;\n }\n }\n var pathRefs = Array.from(matches, _ref => {\n var [, p] = _ref;\n return Editor.pathRef(editor, p);\n });\n var startRef = Editor.pointRef(editor, start);\n var endRef = Editor.pointRef(editor, end);\n var removedText = '';\n if (!isSingleText && !startNonEditable) {\n var _point = startRef.current;\n var [_node] = Editor.leaf(editor, _point);\n var {\n path: _path\n } = _point;\n var {\n offset\n } = start;\n var text = _node.text.slice(offset);\n if (text.length > 0) {\n editor.apply({\n type: 'remove_text',\n path: _path,\n offset,\n text\n });\n removedText = text;\n }\n }\n pathRefs.reverse().map(r => r.unref()).filter(r => r !== null).forEach(p => Transforms.removeNodes(editor, {\n at: p,\n voids\n }));\n if (!endNonEditable) {\n var _point2 = endRef.current;\n var [_node2] = Editor.leaf(editor, _point2);\n var {\n path: _path2\n } = _point2;\n var _offset = isSingleText ? start.offset : 0;\n var _text = _node2.text.slice(_offset, end.offset);\n if (_text.length > 0) {\n editor.apply({\n type: 'remove_text',\n path: _path2,\n offset: _offset,\n text: _text\n });\n removedText = _text;\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 // 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 (isCollapsed && reverse && unit === 'character' && removedText.length > 1 && removedText.match(/[\\u0E00-\\u0E7F]+/)) {\n Transforms.insertText(editor, removedText.slice(0, removedText.length - distance));\n }\n var startUnref = startRef.unref();\n var endUnref = endRef.unref();\n var point = reverse ? startUnref || endUnref : endUnref || startUnref;\n if (options.at == null && point) {\n Transforms.select(editor, point);\n }\n });\n};\n\nvar insertFragment = function insertFragment(editor, fragment) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n hanging = false,\n voids = false\n } = options;\n var {\n at = getDefaultInsertLocation(editor),\n batchDirty = true\n } = options;\n if (!fragment.length) {\n return;\n }\n if (Range.isRange(at)) {\n if (!hanging) {\n at = Editor.unhangRange(editor, at, {\n voids\n });\n }\n if (Range.isCollapsed(at)) {\n at = at.anchor;\n } else {\n var [, end] = Range.edges(at);\n if (!voids && Editor.void(editor, {\n at: end\n })) {\n return;\n }\n var pointRef = Editor.pointRef(editor, end);\n Transforms.delete(editor, {\n at\n });\n at = pointRef.unref();\n }\n } else if (Path.isPath(at)) {\n at = Editor.start(editor, at);\n }\n if (!voids && Editor.void(editor, {\n at\n })) {\n return;\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 var inlineElementMatch = Editor.above(editor, {\n at,\n match: n => Element.isElement(n) && Editor.isInline(editor, n),\n mode: 'highest',\n voids\n });\n if (inlineElementMatch) {\n var [, _inlinePath] = inlineElementMatch;\n if (Editor.isEnd(editor, at, _inlinePath)) {\n var after = Editor.after(editor, _inlinePath);\n at = after;\n } else if (Editor.isStart(editor, at, _inlinePath)) {\n var before = Editor.before(editor, _inlinePath);\n at = before;\n }\n }\n var blockMatch = Editor.above(editor, {\n match: n => Element.isElement(n) && Editor.isBlock(editor, n),\n at,\n voids\n });\n var [, blockPath] = blockMatch;\n var isBlockStart = Editor.isStart(editor, at, blockPath);\n var isBlockEnd = Editor.isEnd(editor, at, blockPath);\n var isBlockEmpty = isBlockStart && isBlockEnd;\n var mergeStart = !isBlockStart || isBlockStart && isBlockEnd;\n var mergeEnd = !isBlockEnd;\n var [, firstPath] = Node.first({\n children: fragment\n }, []);\n var [, lastPath] = Node.last({\n children: fragment\n }, []);\n var matches = [];\n var matcher = _ref => {\n var [n, p] = _ref;\n var isRoot = p.length === 0;\n if (isRoot) {\n return false;\n }\n if (isBlockEmpty) {\n return true;\n }\n if (mergeStart && Path.isAncestor(p, firstPath) && Element.isElement(n) && !editor.isVoid(n) && !editor.isInline(n)) {\n return false;\n }\n if (mergeEnd && Path.isAncestor(p, lastPath) && Element.isElement(n) && !editor.isVoid(n) && !editor.isInline(n)) {\n return false;\n }\n return true;\n };\n for (var entry of Node.nodes({\n children: fragment\n }, {\n pass: matcher\n })) {\n if (matcher(entry)) {\n matches.push(entry);\n }\n }\n var starts = [];\n var middles = [];\n var ends = [];\n var starting = true;\n var hasBlocks = false;\n for (var [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 var [inlineMatch] = Editor.nodes(editor, {\n at,\n match: n => Text.isText(n) || Editor.isInline(editor, n),\n mode: 'highest',\n voids\n });\n var [, inlinePath] = inlineMatch;\n var isInlineStart = Editor.isStart(editor, at, inlinePath);\n var isInlineEnd = Editor.isEnd(editor, at, inlinePath);\n var middleRef = Editor.pathRef(editor, isBlockEnd && !ends.length ? Path.next(blockPath) : blockPath);\n var endRef = Editor.pathRef(editor, isInlineEnd ? Path.next(inlinePath) : inlinePath);\n Transforms.splitNodes(editor, {\n at,\n match: n => hasBlocks ? Element.isElement(n) && Editor.isBlock(editor, n) : Text.isText(n) || Editor.isInline(editor, n),\n mode: hasBlocks ? 'lowest' : 'highest',\n always: hasBlocks && (!isBlockStart || starts.length > 0) && (!isBlockEnd || ends.length > 0),\n voids\n });\n var startRef = Editor.pathRef(editor, !isInlineStart || isInlineStart && isInlineEnd ? Path.next(inlinePath) : inlinePath);\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 batchDirty\n });\n if (isBlockEmpty && !starts.length && middles.length && !ends.length) {\n Transforms.delete(editor, {\n at: blockPath,\n 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 batchDirty\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 batchDirty\n });\n if (!options.at) {\n var path;\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 if (path) {\n var _end = Editor.end(editor, path);\n Transforms.select(editor, _end);\n }\n }\n startRef.unref();\n middleRef.unref();\n endRef.unref();\n });\n};\n\nvar collapse = function collapse(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n edge = 'anchor'\n } = options;\n var {\n selection\n } = editor;\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 var [start] = Range.edges(selection);\n Transforms.select(editor, start);\n } else if (edge === 'end') {\n var [, end] = Range.edges(selection);\n Transforms.select(editor, end);\n }\n};\n\nvar deselect = editor => {\n var {\n selection\n } = editor;\n if (selection) {\n editor.apply({\n type: 'set_selection',\n properties: selection,\n newProperties: null\n });\n }\n};\n\nvar move = function move(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n var {\n selection\n } = editor;\n var {\n distance = 1,\n unit = 'character',\n reverse = false\n } = options;\n var {\n edge = null\n } = options;\n if (!selection) {\n return;\n }\n if (edge === 'start') {\n edge = Range.isBackward(selection) ? 'focus' : 'anchor';\n }\n if (edge === 'end') {\n edge = Range.isBackward(selection) ? 'anchor' : 'focus';\n }\n var {\n anchor,\n focus\n } = selection;\n var opts = {\n distance,\n unit,\n ignoreNonSelectable: true\n };\n var props = {};\n if (edge == null || edge === 'anchor') {\n var point = reverse ? Editor.before(editor, anchor, opts) : Editor.after(editor, anchor, opts);\n if (point) {\n props.anchor = point;\n }\n }\n if (edge == null || edge === 'focus') {\n var _point = reverse ? Editor.before(editor, focus, opts) : Editor.after(editor, focus, opts);\n if (_point) {\n props.focus = _point;\n }\n }\n Transforms.setSelection(editor, props);\n};\n\nvar select = (editor, target) => {\n var {\n selection\n } = editor;\n target = Editor.range(editor, target);\n if (selection) {\n Transforms.setSelection(editor, target);\n return;\n }\n if (!Range.isRange(target)) {\n throw new Error(\"When setting the selection and the current selection is `null` you must provide at least an `anchor` and `focus`, but you passed: \".concat(Scrubber.stringify(target)));\n }\n editor.apply({\n type: 'set_selection',\n properties: selection,\n newProperties: target\n });\n};\n\nfunction ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar setPoint = function setPoint(editor, props) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n selection\n } = editor;\n var {\n edge = 'both'\n } = options;\n if (!selection) {\n return;\n }\n if (edge === 'start') {\n edge = Range.isBackward(selection) ? 'focus' : 'anchor';\n }\n if (edge === 'end') {\n edge = Range.isBackward(selection) ? 'anchor' : 'focus';\n }\n var {\n anchor,\n focus\n } = selection;\n var point = edge === 'anchor' ? anchor : focus;\n Transforms.setSelection(editor, {\n [edge === 'anchor' ? 'anchor' : 'focus']: _objectSpread$1(_objectSpread$1({}, point), props)\n });\n};\n\nvar setSelection = (editor, props) => {\n var {\n selection\n } = editor;\n var oldProps = {};\n var newProps = {};\n if (!selection) {\n return;\n }\n for (var k in props) {\n if (k === 'anchor' && props.anchor != null && !Point.equals(props.anchor, selection.anchor) || k === 'focus' && props.focus != null && !Point.equals(props.focus, selection.focus) || k !== 'anchor' && k !== 'focus' && props[k] !== selection[k]) {\n oldProps[k] = selection[k];\n newProps[k] = props[k];\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\nvar insertNodes = function insertNodes(editor, nodes) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n hanging = false,\n voids = false,\n mode = 'lowest',\n batchDirty = true\n } = options;\n var {\n at,\n match,\n select\n } = options;\n if (Node.isNode(nodes)) {\n nodes = [nodes];\n }\n if (nodes.length === 0) {\n return;\n }\n var [node] = nodes;\n if (!at) {\n at = getDefaultInsertLocation(editor);\n if (select !== false) {\n select = true;\n }\n }\n if (select == null) {\n select = false;\n }\n if (Range.isRange(at)) {\n if (!hanging) {\n at = Editor.unhangRange(editor, at, {\n voids\n });\n }\n if (Range.isCollapsed(at)) {\n at = at.anchor;\n } else {\n var [, end] = Range.edges(at);\n var pointRef = Editor.pointRef(editor, end);\n Transforms.delete(editor, {\n at\n });\n at = pointRef.unref();\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 var [entry] = Editor.nodes(editor, {\n at: at.path,\n match,\n mode,\n voids\n });\n if (entry) {\n var [, matchPath] = entry;\n var pathRef = Editor.pathRef(editor, matchPath);\n var isAtEnd = Editor.isEnd(editor, at, matchPath);\n Transforms.splitNodes(editor, {\n at,\n match,\n mode,\n voids\n });\n var path = pathRef.unref();\n at = isAtEnd ? Path.next(path) : path;\n } else {\n return;\n }\n }\n var parentPath = Path.parent(at);\n var index = at[at.length - 1];\n if (!voids && Editor.void(editor, {\n at: parentPath\n })) {\n return;\n }\n if (batchDirty) {\n // PERF: batch update dirty paths\n // batched ops used to transform existing dirty paths\n var batchedOps = [];\n var newDirtyPaths = Path.levels(parentPath);\n batchDirtyPaths(editor, () => {\n var _loop = function _loop() {\n var path = parentPath.concat(index);\n index++;\n var op = {\n type: 'insert_node',\n path,\n node: _node\n };\n editor.apply(op);\n at = Path.next(at);\n batchedOps.push(op);\n if (!Text.isText) {\n newDirtyPaths.push(path);\n } else {\n newDirtyPaths.push(...Array.from(Node.nodes(_node), _ref => {\n var [, p] = _ref;\n return path.concat(p);\n }));\n }\n };\n for (var _node of nodes) {\n _loop();\n }\n }, () => {\n updateDirtyPaths(editor, newDirtyPaths, p => {\n var newPath = p;\n for (var op of batchedOps) {\n if (Path.operationCanTransformPath(op)) {\n newPath = Path.transform(newPath, op);\n if (!newPath) {\n return null;\n }\n }\n }\n return newPath;\n });\n });\n } else {\n for (var _node2 of nodes) {\n var _path = parentPath.concat(index);\n index++;\n editor.apply({\n type: 'insert_node',\n path: _path,\n node: _node2\n });\n at = Path.next(at);\n }\n }\n at = Path.previous(at);\n if (select) {\n var point = Editor.end(editor, at);\n if (point) {\n Transforms.select(editor, point);\n }\n }\n });\n};\n\nvar liftNodes = function liftNodes(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n at = editor.selection,\n mode = 'lowest',\n voids = false\n } = options;\n var {\n match\n } = options;\n if (match == null) {\n match = Path.isPath(at) ? matchPath(editor, at) : n => Element.isElement(n) && Editor.isBlock(editor, n);\n }\n if (!at) {\n return;\n }\n var matches = Editor.nodes(editor, {\n at,\n match,\n mode,\n voids\n });\n var pathRefs = Array.from(matches, _ref => {\n var [, p] = _ref;\n return Editor.pathRef(editor, p);\n });\n for (var pathRef of pathRefs) {\n var path = pathRef.unref();\n if (path.length < 2) {\n throw new Error(\"Cannot lift node at a path [\".concat(path, \"] because it has a depth of less than `2`.\"));\n }\n var parentNodeEntry = Editor.node(editor, Path.parent(path));\n var [parent, parentPath] = parentNodeEntry;\n var index = path[path.length - 1];\n var {\n length\n } = parent.children;\n if (length === 1) {\n var toPath = Path.next(parentPath);\n Transforms.moveNodes(editor, {\n at: path,\n to: toPath,\n voids\n });\n Transforms.removeNodes(editor, {\n at: parentPath,\n voids\n });\n } else if (index === 0) {\n Transforms.moveNodes(editor, {\n at: path,\n to: parentPath,\n voids\n });\n } else if (index === length - 1) {\n var _toPath = Path.next(parentPath);\n Transforms.moveNodes(editor, {\n at: path,\n to: _toPath,\n voids\n });\n } else {\n var splitPath = Path.next(path);\n var _toPath2 = Path.next(parentPath);\n Transforms.splitNodes(editor, {\n at: splitPath,\n voids\n });\n Transforms.moveNodes(editor, {\n at: path,\n to: _toPath2,\n voids\n });\n }\n }\n });\n};\n\nvar _excluded = [\"text\"],\n _excluded2 = [\"children\"];\nvar hasSingleChildNest = (editor, node) => {\n if (Element.isElement(node)) {\n var element = node;\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};\nvar mergeNodes = function mergeNodes(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n match,\n at = editor.selection\n } = options;\n var {\n hanging = false,\n voids = false,\n mode = 'lowest'\n } = options;\n if (!at) {\n return;\n }\n if (match == null) {\n if (Path.isPath(at)) {\n var [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 if (!hanging && Range.isRange(at)) {\n at = Editor.unhangRange(editor, at, {\n voids\n });\n }\n if (Range.isRange(at)) {\n if (Range.isCollapsed(at)) {\n at = at.anchor;\n } else {\n var [, end] = Range.edges(at);\n var pointRef = Editor.pointRef(editor, end);\n Transforms.delete(editor, {\n at\n });\n at = pointRef.unref();\n if (options.at == null) {\n Transforms.select(editor, at);\n }\n }\n }\n var [current] = Editor.nodes(editor, {\n at,\n match,\n voids,\n mode\n });\n var prev = Editor.previous(editor, {\n at,\n match,\n voids,\n mode\n });\n if (!current || !prev) {\n return;\n }\n var [node, path] = current;\n var [prevNode, prevPath] = prev;\n if (path.length === 0 || prevPath.length === 0) {\n return;\n }\n var newPath = Path.next(prevPath);\n var commonPath = Path.common(path, prevPath);\n var isPreviousSibling = Path.isSibling(path, prevPath);\n var levels = Array.from(Editor.levels(editor, {\n at: path\n }), _ref => {\n var [n] = _ref;\n return n;\n }).slice(commonPath.length).slice(0, -1);\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 var emptyAncestor = Editor.above(editor, {\n at: path,\n mode: 'highest',\n match: n => levels.includes(n) && hasSingleChildNest(editor, n)\n });\n var emptyRef = emptyAncestor && Editor.pathRef(editor, emptyAncestor[1]);\n var properties;\n var position;\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 var rest = _objectWithoutProperties(node, _excluded);\n position = prevNode.text.length;\n properties = rest;\n } else if (Element.isElement(node) && Element.isElement(prevNode)) {\n var rest = _objectWithoutProperties(node, _excluded2);\n position = prevNode.children.length;\n properties = rest;\n } else {\n throw new Error(\"Cannot merge the node at path [\".concat(path, \"] with the previous sibling because it is not the same kind: \").concat(Scrubber.stringify(node), \" \").concat(Scrubber.stringify(prevNode)));\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, {\n at: path,\n to: newPath,\n 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, {\n at: emptyRef.current,\n voids\n });\n }\n if (Editor.shouldMergeNodesRemovePrevNode(editor, prev, current)) {\n Transforms.removeNodes(editor, {\n at: prevPath,\n voids\n });\n } else {\n editor.apply({\n type: 'merge_node',\n path: newPath,\n position,\n properties\n });\n }\n if (emptyRef) {\n emptyRef.unref();\n }\n });\n};\n\nvar moveNodes = (editor, options) => {\n Editor.withoutNormalizing(editor, () => {\n var {\n to,\n at = editor.selection,\n mode = 'lowest',\n voids = false\n } = options;\n var {\n match\n } = options;\n if (!at) {\n return;\n }\n if (match == null) {\n match = Path.isPath(at) ? matchPath(editor, at) : n => Element.isElement(n) && Editor.isBlock(editor, n);\n }\n var toRef = Editor.pathRef(editor, to);\n var targets = Editor.nodes(editor, {\n at,\n match,\n mode,\n voids\n });\n var pathRefs = Array.from(targets, _ref => {\n var [, p] = _ref;\n return Editor.pathRef(editor, p);\n });\n for (var pathRef of pathRefs) {\n var path = pathRef.unref();\n var newPath = toRef.current;\n if (path.length !== 0) {\n editor.apply({\n type: 'move_node',\n path,\n newPath\n });\n }\n if (toRef.current && Path.isSibling(newPath, path) && Path.isAfter(newPath, path)) {\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 toRef.unref();\n });\n};\n\nvar removeNodes = function removeNodes(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n hanging = false,\n voids = false,\n mode = 'lowest'\n } = options;\n var {\n at = editor.selection,\n match\n } = options;\n if (!at) {\n return;\n }\n if (match == null) {\n match = Path.isPath(at) ? matchPath(editor, at) : n => Element.isElement(n) && Editor.isBlock(editor, n);\n }\n if (!hanging && Range.isRange(at)) {\n at = Editor.unhangRange(editor, at, {\n voids\n });\n }\n var depths = Editor.nodes(editor, {\n at,\n match,\n mode,\n voids\n });\n var pathRefs = Array.from(depths, _ref => {\n var [, p] = _ref;\n return Editor.pathRef(editor, p);\n });\n for (var pathRef of pathRefs) {\n var path = pathRef.unref();\n if (path) {\n var [node] = Editor.node(editor, path);\n editor.apply({\n type: 'remove_node',\n path,\n node\n });\n }\n }\n });\n};\n\nvar setNodes = function setNodes(editor, props) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n match,\n at = editor.selection,\n compare,\n merge\n } = options;\n var {\n hanging = false,\n mode = 'lowest',\n split = false,\n voids = false\n } = options;\n if (!at) {\n return;\n }\n if (match == null) {\n match = Path.isPath(at) ? matchPath(editor, at) : n => Element.isElement(n) && Editor.isBlock(editor, n);\n }\n if (!hanging && Range.isRange(at)) {\n at = Editor.unhangRange(editor, at, {\n voids\n });\n }\n if (split && Range.isRange(at)) {\n if (Range.isCollapsed(at) && Editor.leaf(editor, at.anchor)[0].text.length > 0) {\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 var rangeRef = Editor.rangeRef(editor, at, {\n affinity: 'inward'\n });\n var [start, end] = Range.edges(at);\n var splitMode = mode === 'lowest' ? 'lowest' : 'highest';\n var 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 var 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 if (options.at == null) {\n Transforms.select(editor, at);\n }\n }\n if (!compare) {\n compare = (prop, nodeProp) => prop !== nodeProp;\n }\n for (var [node, path] of Editor.nodes(editor, {\n at,\n match,\n mode,\n voids\n })) {\n var properties = {};\n // FIXME: is this correct?\n var newProperties = {};\n // You can't set properties on the editor node.\n if (path.length === 0) {\n continue;\n }\n var hasChanges = false;\n for (var k in props) {\n if (k === 'children' || k === 'text') {\n continue;\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 if (hasChanges) {\n editor.apply({\n type: 'set_node',\n path,\n properties,\n newProperties\n });\n }\n }\n });\n};\n\n/**\n * Convert a range into a point by deleting it's content.\n */\nvar deleteRange = (editor, range) => {\n if (Range.isCollapsed(range)) {\n return range.anchor;\n } else {\n var [, end] = Range.edges(range);\n var pointRef = Editor.pointRef(editor, end);\n Transforms.delete(editor, {\n at: range\n });\n return pointRef.unref();\n }\n};\nvar splitNodes = function splitNodes(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n mode = 'lowest',\n voids = false\n } = options;\n var {\n match,\n at = editor.selection,\n height = 0,\n always = false\n } = options;\n if (match == null) {\n match = n => Element.isElement(n) && Editor.isBlock(editor, n);\n }\n if (Range.isRange(at)) {\n at = deleteRange(editor, at);\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 var path = at;\n var point = Editor.point(editor, path);\n var [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 if (!at) {\n return;\n }\n var beforeRef = Editor.pointRef(editor, at, {\n affinity: 'backward'\n });\n var afterRef;\n try {\n var [highest] = Editor.nodes(editor, {\n at,\n match,\n mode,\n voids\n });\n if (!highest) {\n return;\n }\n var voidMatch = Editor.void(editor, {\n at,\n mode: 'highest'\n });\n var nudge = 0;\n if (!voids && voidMatch) {\n var [voidNode, voidPath] = voidMatch;\n if (Element.isElement(voidNode) && editor.isInline(voidNode)) {\n var after = Editor.after(editor, voidPath);\n if (!after) {\n var text = {\n text: ''\n };\n var afterPath = Path.next(voidPath);\n Transforms.insertNodes(editor, text, {\n at: afterPath,\n voids\n });\n after = Editor.point(editor, afterPath);\n }\n at = after;\n always = true;\n }\n var siblingHeight = at.path.length - voidPath.length;\n height = siblingHeight + 1;\n always = true;\n }\n afterRef = Editor.pointRef(editor, at);\n var depth = at.path.length - height;\n var [, highestPath] = highest;\n var lowestPath = at.path.slice(0, depth);\n var position = height === 0 ? at.offset : at.path[depth] + nudge;\n for (var [node, _path] of Editor.levels(editor, {\n at: lowestPath,\n reverse: true,\n voids\n })) {\n var split = false;\n if (_path.length < highestPath.length || _path.length === 0 || !voids && Element.isElement(node) && Editor.isVoid(editor, node)) {\n break;\n }\n var _point = beforeRef.current;\n var isEnd = Editor.isEnd(editor, _point, _path);\n if (always || !beforeRef || !Editor.isEdge(editor, _point, _path)) {\n split = true;\n var properties = Node.extractProps(node);\n editor.apply({\n type: 'split_node',\n path: _path,\n position,\n properties\n });\n }\n position = _path[_path.length - 1] + (split || isEnd ? 1 : 0);\n }\n if (options.at == null) {\n var _point2 = afterRef.current || Editor.end(editor, []);\n Transforms.select(editor, _point2);\n }\n } finally {\n var _afterRef;\n beforeRef.unref();\n (_afterRef = afterRef) === null || _afterRef === void 0 || _afterRef.unref();\n }\n });\n};\n\nvar unsetNodes = function unsetNodes(editor, props) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n if (!Array.isArray(props)) {\n props = [props];\n }\n var obj = {};\n for (var key of props) {\n obj[key] = null;\n }\n Transforms.setNodes(editor, obj, options);\n};\n\nvar unwrapNodes = function unwrapNodes(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n mode = 'lowest',\n split = false,\n voids = false\n } = options;\n var {\n at = editor.selection,\n match\n } = options;\n if (!at) {\n return;\n }\n if (match == null) {\n match = Path.isPath(at) ? matchPath(editor, at) : n => Element.isElement(n) && Editor.isBlock(editor, n);\n }\n if (Path.isPath(at)) {\n at = Editor.range(editor, at);\n }\n var rangeRef = Range.isRange(at) ? Editor.rangeRef(editor, at) : null;\n var matches = Editor.nodes(editor, {\n at,\n match,\n mode,\n voids\n });\n var pathRefs = Array.from(matches, _ref => {\n var [, p] = _ref;\n return Editor.pathRef(editor, p);\n }\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 var _loop = function _loop() {\n var path = pathRef.unref();\n var [node] = Editor.node(editor, path);\n var range = Editor.range(editor, path);\n if (split && rangeRef) {\n range = Range.intersection(rangeRef.current, range);\n }\n Transforms.liftNodes(editor, {\n at: range,\n match: n => Element.isAncestor(node) && node.children.includes(n),\n voids\n });\n };\n for (var pathRef of pathRefs) {\n _loop();\n }\n if (rangeRef) {\n rangeRef.unref();\n }\n });\n};\n\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar wrapNodes = function wrapNodes(editor, element) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n Editor.withoutNormalizing(editor, () => {\n var {\n mode = 'lowest',\n split = false,\n voids = false\n } = options;\n var {\n match,\n at = editor.selection\n } = options;\n if (!at) {\n return;\n }\n if (match == null) {\n if (Path.isPath(at)) {\n match = matchPath(editor, at);\n } else if (editor.isInline(element)) {\n match = 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 if (split && Range.isRange(at)) {\n var [start, end] = Range.edges(at);\n var rangeRef = Editor.rangeRef(editor, at, {\n affinity: 'inward'\n });\n Transforms.splitNodes(editor, {\n at: end,\n match,\n voids\n });\n Transforms.splitNodes(editor, {\n at: start,\n match,\n voids\n });\n at = rangeRef.unref();\n if (options.at == null) {\n Transforms.select(editor, at);\n }\n }\n var roots = Array.from(Editor.nodes(editor, {\n at,\n match: editor.isInline(element) ? n => Element.isElement(n) && Editor.isBlock(editor, n) : n => Editor.isEditor(n),\n mode: 'lowest',\n voids\n }));\n var _loop = function _loop() {\n var a = Range.isRange(at) ? Range.intersection(at, Editor.range(editor, rootPath)) : at;\n if (!a) {\n return 0; // continue\n }\n var matches = Array.from(Editor.nodes(editor, {\n at: a,\n match,\n mode,\n voids\n }));\n if (matches.length > 0) {\n var [first] = matches;\n var last = matches[matches.length - 1];\n var [, firstPath] = first;\n var [, lastPath] = last;\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 return 0; // continue\n }\n var commonPath = Path.equals(firstPath, lastPath) ? Path.parent(firstPath) : Path.common(firstPath, lastPath);\n var range = Editor.range(editor, firstPath, lastPath);\n var commonNodeEntry = Editor.node(editor, commonPath);\n var [commonNode] = commonNodeEntry;\n var depth = commonPath.length + 1;\n var wrapperPath = Path.next(lastPath.slice(0, depth));\n var wrapper = _objectSpread(_objectSpread({}, element), {}, {\n children: []\n });\n Transforms.insertNodes(editor, wrapper, {\n at: wrapperPath,\n voids\n });\n Transforms.moveNodes(editor, {\n at: range,\n match: n => Element.isAncestor(commonNode) && commonNode.children.includes(n),\n to: wrapperPath.concat(0),\n voids\n });\n }\n },\n _ret;\n for (var [, rootPath] of roots) {\n _ret = _loop();\n if (_ret === 0) continue;\n }\n });\n};\n\n/**\n * Create a new Slate `Editor` object.\n */\nvar createEditor = () => {\n var 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 // Core\n apply: function apply$1() {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n return apply(editor, ...args);\n },\n // Editor\n addMark: function addMark$1() {\n for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {\n args[_key2] = arguments[_key2];\n }\n return addMark(editor, ...args);\n },\n deleteBackward: function deleteBackward$1() {\n for (var _len3 = arguments.length, args = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {\n args[_key3] = arguments[_key3];\n }\n return deleteBackward(editor, ...args);\n },\n deleteForward: function deleteForward$1() {\n for (var _len4 = arguments.length, args = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {\n args[_key4] = arguments[_key4];\n }\n return deleteForward(editor, ...args);\n },\n deleteFragment: function deleteFragment$1() {\n for (var _len5 = arguments.length, args = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {\n args[_key5] = arguments[_key5];\n }\n return deleteFragment(editor, ...args);\n },\n getFragment: function getFragment$1() {\n for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {\n args[_key6] = arguments[_key6];\n }\n return getFragment(editor, ...args);\n },\n insertBreak: function insertBreak$1() {\n for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {\n args[_key7] = arguments[_key7];\n }\n return insertBreak(editor, ...args);\n },\n insertSoftBreak: function insertSoftBreak$1() {\n for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {\n args[_key8] = arguments[_key8];\n }\n return insertSoftBreak(editor, ...args);\n },\n insertFragment: function insertFragment$1() {\n for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {\n args[_key9] = arguments[_key9];\n }\n return insertFragment(editor, ...args);\n },\n insertNode: function insertNode$1() {\n for (var _len10 = arguments.length, args = new Array(_len10), _key10 = 0; _key10 < _len10; _key10++) {\n args[_key10] = arguments[_key10];\n }\n return insertNode(editor, ...args);\n },\n insertText: function insertText$1() {\n for (var _len11 = arguments.length, args = new Array(_len11), _key11 = 0; _key11 < _len11; _key11++) {\n args[_key11] = arguments[_key11];\n }\n return insertText(editor, ...args);\n },\n normalizeNode: function normalizeNode$1() {\n for (var _len12 = arguments.length, args = new Array(_len12), _key12 = 0; _key12 < _len12; _key12++) {\n args[_key12] = arguments[_key12];\n }\n return normalizeNode(editor, ...args);\n },\n removeMark: function removeMark$1() {\n for (var _len13 = arguments.length, args = new Array(_len13), _key13 = 0; _key13 < _len13; _key13++) {\n args[_key13] = arguments[_key13];\n }\n return removeMark(editor, ...args);\n },\n getDirtyPaths: function getDirtyPaths$1() {\n for (var _len14 = arguments.length, args = new Array(_len14), _key14 = 0; _key14 < _len14; _key14++) {\n args[_key14] = arguments[_key14];\n }\n return getDirtyPaths(editor, ...args);\n },\n shouldNormalize: function shouldNormalize$1() {\n for (var _len15 = arguments.length, args = new Array(_len15), _key15 = 0; _key15 < _len15; _key15++) {\n args[_key15] = arguments[_key15];\n }\n return shouldNormalize(editor, ...args);\n },\n // Editor interface\n above: function above$1() {\n for (var _len16 = arguments.length, args = new Array(_len16), _key16 = 0; _key16 < _len16; _key16++) {\n args[_key16] = arguments[_key16];\n }\n return above(editor, ...args);\n },\n after: function after$1() {\n for (var _len17 = arguments.length, args = new Array(_len17), _key17 = 0; _key17 < _len17; _key17++) {\n args[_key17] = arguments[_key17];\n }\n return after(editor, ...args);\n },\n before: function before$1() {\n for (var _len18 = arguments.length, args = new Array(_len18), _key18 = 0; _key18 < _len18; _key18++) {\n args[_key18] = arguments[_key18];\n }\n return before(editor, ...args);\n },\n collapse: function collapse$1() {\n for (var _len19 = arguments.length, args = new Array(_len19), _key19 = 0; _key19 < _len19; _key19++) {\n args[_key19] = arguments[_key19];\n }\n return collapse(editor, ...args);\n },\n delete: function _delete() {\n for (var _len20 = arguments.length, args = new Array(_len20), _key20 = 0; _key20 < _len20; _key20++) {\n args[_key20] = arguments[_key20];\n }\n return deleteText(editor, ...args);\n },\n deselect: function deselect$1() {\n for (var _len21 = arguments.length, args = new Array(_len21), _key21 = 0; _key21 < _len21; _key21++) {\n args[_key21] = arguments[_key21];\n }\n return deselect(editor, ...args);\n },\n edges: function edges$1() {\n for (var _len22 = arguments.length, args = new Array(_len22), _key22 = 0; _key22 < _len22; _key22++) {\n args[_key22] = arguments[_key22];\n }\n return edges(editor, ...args);\n },\n elementReadOnly: function elementReadOnly$1() {\n for (var _len23 = arguments.length, args = new Array(_len23), _key23 = 0; _key23 < _len23; _key23++) {\n args[_key23] = arguments[_key23];\n }\n return elementReadOnly(editor, ...args);\n },\n end: function end$1() {\n for (var _len24 = arguments.length, args = new Array(_len24), _key24 = 0; _key24 < _len24; _key24++) {\n args[_key24] = arguments[_key24];\n }\n return end(editor, ...args);\n },\n first: function first$1() {\n for (var _len25 = arguments.length, args = new Array(_len25), _key25 = 0; _key25 < _len25; _key25++) {\n args[_key25] = arguments[_key25];\n }\n return first(editor, ...args);\n },\n fragment: function fragment$1() {\n for (var _len26 = arguments.length, args = new Array(_len26), _key26 = 0; _key26 < _len26; _key26++) {\n args[_key26] = arguments[_key26];\n }\n return fragment(editor, ...args);\n },\n getMarks: function getMarks() {\n for (var _len27 = arguments.length, args = new Array(_len27), _key27 = 0; _key27 < _len27; _key27++) {\n args[_key27] = arguments[_key27];\n }\n return marks(editor, ...args);\n },\n hasBlocks: function hasBlocks$1() {\n for (var _len28 = arguments.length, args = new Array(_len28), _key28 = 0; _key28 < _len28; _key28++) {\n args[_key28] = arguments[_key28];\n }\n return hasBlocks(editor, ...args);\n },\n hasInlines: function hasInlines$1() {\n for (var _len29 = arguments.length, args = new Array(_len29), _key29 = 0; _key29 < _len29; _key29++) {\n args[_key29] = arguments[_key29];\n }\n return hasInlines(editor, ...args);\n },\n hasPath: function hasPath$1() {\n for (var _len30 = arguments.length, args = new Array(_len30), _key30 = 0; _key30 < _len30; _key30++) {\n args[_key30] = arguments[_key30];\n }\n return hasPath(editor, ...args);\n },\n hasTexts: function hasTexts$1() {\n for (var _len31 = arguments.length, args = new Array(_len31), _key31 = 0; _key31 < _len31; _key31++) {\n args[_key31] = arguments[_key31];\n }\n return hasTexts(editor, ...args);\n },\n insertNodes: function insertNodes$1() {\n for (var _len32 = arguments.length, args = new Array(_len32), _key32 = 0; _key32 < _len32; _key32++) {\n args[_key32] = arguments[_key32];\n }\n return insertNodes(editor, ...args);\n },\n isBlock: function isBlock$1() {\n for (var _len33 = arguments.length, args = new Array(_len33), _key33 = 0; _key33 < _len33; _key33++) {\n args[_key33] = arguments[_key33];\n }\n return isBlock(editor, ...args);\n },\n isEdge: function isEdge$1() {\n for (var _len34 = arguments.length, args = new Array(_len34), _key34 = 0; _key34 < _len34; _key34++) {\n args[_key34] = arguments[_key34];\n }\n return isEdge(editor, ...args);\n },\n isEmpty: function isEmpty$1() {\n for (var _len35 = arguments.length, args = new Array(_len35), _key35 = 0; _key35 < _len35; _key35++) {\n args[_key35] = arguments[_key35];\n }\n return isEmpty(editor, ...args);\n },\n isEnd: function isEnd$1() {\n for (var _len36 = arguments.length, args = new Array(_len36), _key36 = 0; _key36 < _len36; _key36++) {\n args[_key36] = arguments[_key36];\n }\n return isEnd(editor, ...args);\n },\n isNormalizing: function isNormalizing$1() {\n for (var _len37 = arguments.length, args = new Array(_len37), _key37 = 0; _key37 < _len37; _key37++) {\n args[_key37] = arguments[_key37];\n }\n return isNormalizing(editor, ...args);\n },\n isStart: function isStart$1() {\n for (var _len38 = arguments.length, args = new Array(_len38), _key38 = 0; _key38 < _len38; _key38++) {\n args[_key38] = arguments[_key38];\n }\n return isStart(editor, ...args);\n },\n last: function last$1() {\n for (var _len39 = arguments.length, args = new Array(_len39), _key39 = 0; _key39 < _len39; _key39++) {\n args[_key39] = arguments[_key39];\n }\n return last(editor, ...args);\n },\n leaf: function leaf$1() {\n for (var _len40 = arguments.length, args = new Array(_len40), _key40 = 0; _key40 < _len40; _key40++) {\n args[_key40] = arguments[_key40];\n }\n return leaf(editor, ...args);\n },\n levels: function levels$1() {\n for (var _len41 = arguments.length, args = new Array(_len41), _key41 = 0; _key41 < _len41; _key41++) {\n args[_key41] = arguments[_key41];\n }\n return levels(editor, ...args);\n },\n liftNodes: function liftNodes$1() {\n for (var _len42 = arguments.length, args = new Array(_len42), _key42 = 0; _key42 < _len42; _key42++) {\n args[_key42] = arguments[_key42];\n }\n return liftNodes(editor, ...args);\n },\n mergeNodes: function mergeNodes$1() {\n for (var _len43 = arguments.length, args = new Array(_len43), _key43 = 0; _key43 < _len43; _key43++) {\n args[_key43] = arguments[_key43];\n }\n return mergeNodes(editor, ...args);\n },\n move: function move$1() {\n for (var _len44 = arguments.length, args = new Array(_len44), _key44 = 0; _key44 < _len44; _key44++) {\n args[_key44] = arguments[_key44];\n }\n return move(editor, ...args);\n },\n moveNodes: function moveNodes$1() {\n for (var _len45 = arguments.length, args = new Array(_len45), _key45 = 0; _key45 < _len45; _key45++) {\n args[_key45] = arguments[_key45];\n }\n return moveNodes(editor, ...args);\n },\n next: function next$1() {\n for (var _len46 = arguments.length, args = new Array(_len46), _key46 = 0; _key46 < _len46; _key46++) {\n args[_key46] = arguments[_key46];\n }\n return next(editor, ...args);\n },\n node: function node$1() {\n for (var _len47 = arguments.length, args = new Array(_len47), _key47 = 0; _key47 < _len47; _key47++) {\n args[_key47] = arguments[_key47];\n }\n return node(editor, ...args);\n },\n nodes: function nodes$1() {\n for (var _len48 = arguments.length, args = new Array(_len48), _key48 = 0; _key48 < _len48; _key48++) {\n args[_key48] = arguments[_key48];\n }\n return nodes(editor, ...args);\n },\n normalize: function normalize$1() {\n for (var _len49 = arguments.length, args = new Array(_len49), _key49 = 0; _key49 < _len49; _key49++) {\n args[_key49] = arguments[_key49];\n }\n return normalize(editor, ...args);\n },\n parent: function parent$1() {\n for (var _len50 = arguments.length, args = new Array(_len50), _key50 = 0; _key50 < _len50; _key50++) {\n args[_key50] = arguments[_key50];\n }\n return parent(editor, ...args);\n },\n path: function path$1() {\n for (var _len51 = arguments.length, args = new Array(_len51), _key51 = 0; _key51 < _len51; _key51++) {\n args[_key51] = arguments[_key51];\n }\n return path(editor, ...args);\n },\n pathRef: function pathRef$1() {\n for (var _len52 = arguments.length, args = new Array(_len52), _key52 = 0; _key52 < _len52; _key52++) {\n args[_key52] = arguments[_key52];\n }\n return pathRef(editor, ...args);\n },\n pathRefs: function pathRefs$1() {\n for (var _len53 = arguments.length, args = new Array(_len53), _key53 = 0; _key53 < _len53; _key53++) {\n args[_key53] = arguments[_key53];\n }\n return pathRefs(editor, ...args);\n },\n point: function point$1() {\n for (var _len54 = arguments.length, args = new Array(_len54), _key54 = 0; _key54 < _len54; _key54++) {\n args[_key54] = arguments[_key54];\n }\n return point(editor, ...args);\n },\n pointRef: function pointRef$1() {\n for (var _len55 = arguments.length, args = new Array(_len55), _key55 = 0; _key55 < _len55; _key55++) {\n args[_key55] = arguments[_key55];\n }\n return pointRef(editor, ...args);\n },\n pointRefs: function pointRefs$1() {\n for (var _len56 = arguments.length, args = new Array(_len56), _key56 = 0; _key56 < _len56; _key56++) {\n args[_key56] = arguments[_key56];\n }\n return pointRefs(editor, ...args);\n },\n positions: function positions$1() {\n for (var _len57 = arguments.length, args = new Array(_len57), _key57 = 0; _key57 < _len57; _key57++) {\n args[_key57] = arguments[_key57];\n }\n return positions(editor, ...args);\n },\n previous: function previous$1() {\n for (var _len58 = arguments.length, args = new Array(_len58), _key58 = 0; _key58 < _len58; _key58++) {\n args[_key58] = arguments[_key58];\n }\n return previous(editor, ...args);\n },\n range: function range$1() {\n for (var _len59 = arguments.length, args = new Array(_len59), _key59 = 0; _key59 < _len59; _key59++) {\n args[_key59] = arguments[_key59];\n }\n return range(editor, ...args);\n },\n rangeRef: function rangeRef$1() {\n for (var _len60 = arguments.length, args = new Array(_len60), _key60 = 0; _key60 < _len60; _key60++) {\n args[_key60] = arguments[_key60];\n }\n return rangeRef(editor, ...args);\n },\n rangeRefs: function rangeRefs$1() {\n for (var _len61 = arguments.length, args = new Array(_len61), _key61 = 0; _key61 < _len61; _key61++) {\n args[_key61] = arguments[_key61];\n }\n return rangeRefs(editor, ...args);\n },\n removeNodes: function removeNodes$1() {\n for (var _len62 = arguments.length, args = new Array(_len62), _key62 = 0; _key62 < _len62; _key62++) {\n args[_key62] = arguments[_key62];\n }\n return removeNodes(editor, ...args);\n },\n select: function select$1() {\n for (var _len63 = arguments.length, args = new Array(_len63), _key63 = 0; _key63 < _len63; _key63++) {\n args[_key63] = arguments[_key63];\n }\n return select(editor, ...args);\n },\n setNodes: function setNodes$1() {\n for (var _len64 = arguments.length, args = new Array(_len64), _key64 = 0; _key64 < _len64; _key64++) {\n args[_key64] = arguments[_key64];\n }\n return setNodes(editor, ...args);\n },\n setNormalizing: function setNormalizing$1() {\n for (var _len65 = arguments.length, args = new Array(_len65), _key65 = 0; _key65 < _len65; _key65++) {\n args[_key65] = arguments[_key65];\n }\n return setNormalizing(editor, ...args);\n },\n setPoint: function setPoint$1() {\n for (var _len66 = arguments.length, args = new Array(_len66), _key66 = 0; _key66 < _len66; _key66++) {\n args[_key66] = arguments[_key66];\n }\n return setPoint(editor, ...args);\n },\n setSelection: function setSelection$1() {\n for (var _len67 = arguments.length, args = new Array(_len67), _key67 = 0; _key67 < _len67; _key67++) {\n args[_key67] = arguments[_key67];\n }\n return setSelection(editor, ...args);\n },\n splitNodes: function splitNodes$1() {\n for (var _len68 = arguments.length, args = new Array(_len68), _key68 = 0; _key68 < _len68; _key68++) {\n args[_key68] = arguments[_key68];\n }\n return splitNodes(editor, ...args);\n },\n start: function start$1() {\n for (var _len69 = arguments.length, args = new Array(_len69), _key69 = 0; _key69 < _len69; _key69++) {\n args[_key69] = arguments[_key69];\n }\n return start(editor, ...args);\n },\n string: function string$1() {\n for (var _len70 = arguments.length, args = new Array(_len70), _key70 = 0; _key70 < _len70; _key70++) {\n args[_key70] = arguments[_key70];\n }\n return string(editor, ...args);\n },\n unhangRange: function unhangRange$1() {\n for (var _len71 = arguments.length, args = new Array(_len71), _key71 = 0; _key71 < _len71; _key71++) {\n args[_key71] = arguments[_key71];\n }\n return unhangRange(editor, ...args);\n },\n unsetNodes: function unsetNodes$1() {\n for (var _len72 = arguments.length, args = new Array(_len72), _key72 = 0; _key72 < _len72; _key72++) {\n args[_key72] = arguments[_key72];\n }\n return unsetNodes(editor, ...args);\n },\n unwrapNodes: function unwrapNodes$1() {\n for (var _len73 = arguments.length, args = new Array(_len73), _key73 = 0; _key73 < _len73; _key73++) {\n args[_key73] = arguments[_key73];\n }\n return unwrapNodes(editor, ...args);\n },\n void: function _void() {\n for (var _len74 = arguments.length, args = new Array(_len74), _key74 = 0; _key74 < _len74; _key74++) {\n args[_key74] = arguments[_key74];\n }\n return getVoid(editor, ...args);\n },\n withoutNormalizing: function withoutNormalizing$1() {\n for (var _len75 = arguments.length, args = new Array(_len75), _key75 = 0; _key75 < _len75; _key75++) {\n args[_key75] = arguments[_key75];\n }\n return withoutNormalizing(editor, ...args);\n },\n wrapNodes: function wrapNodes$1() {\n for (var _len76 = arguments.length, args = new Array(_len76), _key76 = 0; _key76 < _len76; _key76++) {\n args[_key76] = arguments[_key76];\n }\n return wrapNodes(editor, ...args);\n },\n shouldMergeNodesRemovePrevNode: function shouldMergeNodesRemovePrevNode$1() {\n for (var _len77 = arguments.length, args = new Array(_len77), _key77 = 0; _key77 < _len77; _key77++) {\n args[_key77] = arguments[_key77];\n }\n return shouldMergeNodesRemovePrevNode(editor, ...args);\n }\n };\n return editor;\n};\n\nexport { Editor, Element, Location, Node, Operation, Path, PathRef, Point, PointRef, Range, RangeRef, Scrubber, Span, Text, Transforms, above, addMark, after, apply, before, collapse, createEditor, deleteBackward, deleteForward, deleteFragment, deleteText, deselect, edges, elementReadOnly, end, first, fragment, getDirtyPaths, getFragment, getVoid, hasBlocks, hasInlines, hasPath, hasTexts, insertBreak, insertFragment, insertNode, insertNodes, insertSoftBreak, insertText, isBlock, isEdge, isEditor, isEmpty, isEnd, isNormalizing, isStart, last, leaf, levels, liftNodes, marks, mergeNodes, move, moveNodes, next, node, nodes, normalize, normalizeNode, parent, path, pathRef, pathRefs, point, pointRef, pointRefs, positions, previous, range, rangeRef, rangeRefs, removeMark, removeNodes, select, setNodes, setNormalizing, setPoint, setSelection, shouldMergeNodesRemovePrevNode, shouldNormalize, splitNodes, start, string, unhangRange, unsetNodes, unwrapNodes, withoutNormalizing, wrapNodes };\n//# sourceMappingURL=index.es.js.map\n","'use strict'\n\nmodule.exports = direction\n\nvar RTL = '\\u0591-\\u07FF\\uFB1D-\\uFDFD\\uFE70-\\uFEFC'\nvar LTR =\n 'A-Za-z\\u00C0-\\u00D6\\u00D8-\\u00F6' +\n '\\u00F8-\\u02B8\\u0300-\\u0590\\u0800-\\u1FFF\\u200E\\u2C00-\\uFB1C' +\n '\\uFE00-\\uFE6F\\uFEFD-\\uFFFF'\n\nvar rtl = new RegExp('^[^' + LTR + ']*[' + RTL + ']')\nvar ltr = new RegExp('^[^' + RTL + ']*[' + LTR + ']')\n\nfunction direction(value) {\n value = String(value || '')\n\n if (rtl.test(value)) {\n return 'rtl'\n }\n\n if (ltr.test(value)) {\n return 'ltr'\n }\n\n return 'neutral'\n}\n","/**\n * Checks if `value` is the\n * [language type](http://www.ecma-international.org/ecma-262/7.0/#sec-ecmascript-language-types)\n * of `Object`. (e.g. arrays, functions, objects, regexes, `new Number(0)`, and `new String('')`)\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is an object, else `false`.\n * @example\n *\n * _.isObject({});\n * // => true\n *\n * _.isObject([1, 2, 3]);\n * // => true\n *\n * _.isObject(_.noop);\n * // => true\n *\n * _.isObject(null);\n * // => false\n */\nfunction isObject(value) {\n var type = typeof value;\n return value != null && (type == 'object' || type == 'function');\n}\n\nmodule.exports = isObject;\n","/** Detect free variable `global` from Node.js. */\nvar freeGlobal = typeof global == 'object' && global && global.Object === Object && global;\n\nmodule.exports = freeGlobal;\n","var freeGlobal = require('./_freeGlobal');\n\n/** Detect free variable `self`. */\nvar freeSelf = typeof self == 'object' && self && self.Object === Object && self;\n\n/** Used as a reference to the global object. */\nvar root = freeGlobal || freeSelf || Function('return this')();\n\nmodule.exports = root;\n","var root = require('./_root');\n\n/**\n * Gets the timestamp of the number of milliseconds that have elapsed since\n * the Unix epoch (1 January 1970 00:00:00 UTC).\n *\n * @static\n * @memberOf _\n * @since 2.4.0\n * @category Date\n * @returns {number} Returns the timestamp.\n * @example\n *\n * _.defer(function(stamp) {\n * console.log(_.now() - stamp);\n * }, _.now());\n * // => Logs the number of milliseconds it took for the deferred invocation.\n */\nvar now = function() {\n return root.Date.now();\n};\n\nmodule.exports = now;\n","/** Used to match a single whitespace character. */\nvar reWhitespace = /\\s/;\n\n/**\n * Used by `_.trim` and `_.trimEnd` to get the index of the last non-whitespace\n * character of `string`.\n *\n * @private\n * @param {string} string The string to inspect.\n * @returns {number} Returns the index of the last non-whitespace character.\n */\nfunction trimmedEndIndex(string) {\n var index = string.length;\n\n while (index-- && reWhitespace.test(string.charAt(index))) {}\n return index;\n}\n\nmodule.exports = trimmedEndIndex;\n","var trimmedEndIndex = require('./_trimmedEndIndex');\n\n/** Used to match leading whitespace. */\nvar reTrimStart = /^\\s+/;\n\n/**\n * The base implementation of `_.trim`.\n *\n * @private\n * @param {string} string The string to trim.\n * @returns {string} Returns the trimmed string.\n */\nfunction baseTrim(string) {\n return string\n ? string.slice(0, trimmedEndIndex(string) + 1).replace(reTrimStart, '')\n : string;\n}\n\nmodule.exports = baseTrim;\n","var root = require('./_root');\n\n/** Built-in value references. */\nvar Symbol = root.Symbol;\n\nmodule.exports = Symbol;\n","var Symbol = require('./_Symbol');\n\n/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/** Used to check objects for own properties. */\nvar hasOwnProperty = objectProto.hasOwnProperty;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * A specialized version of `baseGetTag` which ignores `Symbol.toStringTag` values.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the raw `toStringTag`.\n */\nfunction getRawTag(value) {\n var isOwn = hasOwnProperty.call(value, symToStringTag),\n tag = value[symToStringTag];\n\n try {\n value[symToStringTag] = undefined;\n var unmasked = true;\n } catch (e) {}\n\n var result = nativeObjectToString.call(value);\n if (unmasked) {\n if (isOwn) {\n value[symToStringTag] = tag;\n } else {\n delete value[symToStringTag];\n }\n }\n return result;\n}\n\nmodule.exports = getRawTag;\n","/** Used for built-in method references. */\nvar objectProto = Object.prototype;\n\n/**\n * Used to resolve the\n * [`toStringTag`](http://ecma-international.org/ecma-262/7.0/#sec-object.prototype.tostring)\n * of values.\n */\nvar nativeObjectToString = objectProto.toString;\n\n/**\n * Converts `value` to a string using `Object.prototype.toString`.\n *\n * @private\n * @param {*} value The value to convert.\n * @returns {string} Returns the converted string.\n */\nfunction objectToString(value) {\n return nativeObjectToString.call(value);\n}\n\nmodule.exports = objectToString;\n","var Symbol = require('./_Symbol'),\n getRawTag = require('./_getRawTag'),\n objectToString = require('./_objectToString');\n\n/** `Object#toString` result references. */\nvar nullTag = '[object Null]',\n undefinedTag = '[object Undefined]';\n\n/** Built-in value references. */\nvar symToStringTag = Symbol ? Symbol.toStringTag : undefined;\n\n/**\n * The base implementation of `getTag` without fallbacks for buggy environments.\n *\n * @private\n * @param {*} value The value to query.\n * @returns {string} Returns the `toStringTag`.\n */\nfunction baseGetTag(value) {\n if (value == null) {\n return value === undefined ? undefinedTag : nullTag;\n }\n return (symToStringTag && symToStringTag in Object(value))\n ? getRawTag(value)\n : objectToString(value);\n}\n\nmodule.exports = baseGetTag;\n","/**\n * Checks if `value` is object-like. A value is object-like if it's not `null`\n * and has a `typeof` result of \"object\".\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is object-like, else `false`.\n * @example\n *\n * _.isObjectLike({});\n * // => true\n *\n * _.isObjectLike([1, 2, 3]);\n * // => true\n *\n * _.isObjectLike(_.noop);\n * // => false\n *\n * _.isObjectLike(null);\n * // => false\n */\nfunction isObjectLike(value) {\n return value != null && typeof value == 'object';\n}\n\nmodule.exports = isObjectLike;\n","var baseGetTag = require('./_baseGetTag'),\n isObjectLike = require('./isObjectLike');\n\n/** `Object#toString` result references. */\nvar symbolTag = '[object Symbol]';\n\n/**\n * Checks if `value` is classified as a `Symbol` primitive or object.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to check.\n * @returns {boolean} Returns `true` if `value` is a symbol, else `false`.\n * @example\n *\n * _.isSymbol(Symbol.iterator);\n * // => true\n *\n * _.isSymbol('abc');\n * // => false\n */\nfunction isSymbol(value) {\n return typeof value == 'symbol' ||\n (isObjectLike(value) && baseGetTag(value) == symbolTag);\n}\n\nmodule.exports = isSymbol;\n","var baseTrim = require('./_baseTrim'),\n isObject = require('./isObject'),\n isSymbol = require('./isSymbol');\n\n/** Used as references for various `Number` constants. */\nvar NAN = 0 / 0;\n\n/** Used to detect bad signed hexadecimal string values. */\nvar reIsBadHex = /^[-+]0x[0-9a-f]+$/i;\n\n/** Used to detect binary string values. */\nvar reIsBinary = /^0b[01]+$/i;\n\n/** Used to detect octal string values. */\nvar reIsOctal = /^0o[0-7]+$/i;\n\n/** Built-in method references without a dependency on `root`. */\nvar freeParseInt = parseInt;\n\n/**\n * Converts `value` to a number.\n *\n * @static\n * @memberOf _\n * @since 4.0.0\n * @category Lang\n * @param {*} value The value to process.\n * @returns {number} Returns the number.\n * @example\n *\n * _.toNumber(3.2);\n * // => 3.2\n *\n * _.toNumber(Number.MIN_VALUE);\n * // => 5e-324\n *\n * _.toNumber(Infinity);\n * // => Infinity\n *\n * _.toNumber('3.2');\n * // => 3.2\n */\nfunction toNumber(value) {\n if (typeof value == 'number') {\n return value;\n }\n if (isSymbol(value)) {\n return NAN;\n }\n if (isObject(value)) {\n var other = typeof value.valueOf == 'function' ? value.valueOf() : value;\n value = isObject(other) ? (other + '') : other;\n }\n if (typeof value != 'string') {\n return value === 0 ? value : +value;\n }\n value = baseTrim(value);\n var isBinary = reIsBinary.test(value);\n return (isBinary || reIsOctal.test(value))\n ? freeParseInt(value.slice(2), isBinary ? 2 : 8)\n : (reIsBadHex.test(value) ? NAN : +value);\n}\n\nmodule.exports = toNumber;\n","var isObject = require('./isObject'),\n now = require('./now'),\n toNumber = require('./toNumber');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/* Built-in method references for those with the same name as other `lodash` methods. */\nvar nativeMax = Math.max,\n nativeMin = Math.min;\n\n/**\n * Creates a debounced function that delays invoking `func` until after `wait`\n * milliseconds have elapsed since the last time the debounced function was\n * invoked. The debounced function comes with a `cancel` method to cancel\n * delayed `func` invocations and a `flush` method to immediately invoke them.\n * Provide `options` to indicate whether `func` should be invoked on the\n * leading and/or trailing edge of the `wait` timeout. The `func` is invoked\n * with the last arguments provided to the debounced function. Subsequent\n * calls to the debounced function return the result of the last `func`\n * invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the debounced function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.debounce` and `_.throttle`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to debounce.\n * @param {number} [wait=0] The number of milliseconds to delay.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=false]\n * Specify invoking on the leading edge of the timeout.\n * @param {number} [options.maxWait]\n * The maximum time `func` is allowed to be delayed before it's invoked.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new debounced function.\n * @example\n *\n * // Avoid costly calculations while the window size is in flux.\n * jQuery(window).on('resize', _.debounce(calculateLayout, 150));\n *\n * // Invoke `sendMail` when clicked, debouncing subsequent calls.\n * jQuery(element).on('click', _.debounce(sendMail, 300, {\n * 'leading': true,\n * 'trailing': false\n * }));\n *\n * // Ensure `batchLog` is invoked once after 1 second of debounced calls.\n * var debounced = _.debounce(batchLog, 250, { 'maxWait': 1000 });\n * var source = new EventSource('/stream');\n * jQuery(source).on('message', debounced);\n *\n * // Cancel the trailing debounced invocation.\n * jQuery(window).on('popstate', debounced.cancel);\n */\nfunction debounce(func, wait, options) {\n var lastArgs,\n lastThis,\n maxWait,\n result,\n timerId,\n lastCallTime,\n lastInvokeTime = 0,\n leading = false,\n maxing = false,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n wait = toNumber(wait) || 0;\n if (isObject(options)) {\n leading = !!options.leading;\n maxing = 'maxWait' in options;\n maxWait = maxing ? nativeMax(toNumber(options.maxWait) || 0, wait) : maxWait;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n\n function invokeFunc(time) {\n var args = lastArgs,\n thisArg = lastThis;\n\n lastArgs = lastThis = undefined;\n lastInvokeTime = time;\n result = func.apply(thisArg, args);\n return result;\n }\n\n function leadingEdge(time) {\n // Reset any `maxWait` timer.\n lastInvokeTime = time;\n // Start the timer for the trailing edge.\n timerId = setTimeout(timerExpired, wait);\n // Invoke the leading edge.\n return leading ? invokeFunc(time) : result;\n }\n\n function remainingWait(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime,\n timeWaiting = wait - timeSinceLastCall;\n\n return maxing\n ? nativeMin(timeWaiting, maxWait - timeSinceLastInvoke)\n : timeWaiting;\n }\n\n function shouldInvoke(time) {\n var timeSinceLastCall = time - lastCallTime,\n timeSinceLastInvoke = time - lastInvokeTime;\n\n // Either this is the first call, activity has stopped and we're at the\n // trailing edge, the system time has gone backwards and we're treating\n // it as the trailing edge, or we've hit the `maxWait` limit.\n return (lastCallTime === undefined || (timeSinceLastCall >= wait) ||\n (timeSinceLastCall < 0) || (maxing && timeSinceLastInvoke >= maxWait));\n }\n\n function timerExpired() {\n var time = now();\n if (shouldInvoke(time)) {\n return trailingEdge(time);\n }\n // Restart the timer.\n timerId = setTimeout(timerExpired, remainingWait(time));\n }\n\n function trailingEdge(time) {\n timerId = undefined;\n\n // Only invoke if we have `lastArgs` which means `func` has been\n // debounced at least once.\n if (trailing && lastArgs) {\n return invokeFunc(time);\n }\n lastArgs = lastThis = undefined;\n return result;\n }\n\n function cancel() {\n if (timerId !== undefined) {\n clearTimeout(timerId);\n }\n lastInvokeTime = 0;\n lastArgs = lastCallTime = lastThis = timerId = undefined;\n }\n\n function flush() {\n return timerId === undefined ? result : trailingEdge(now());\n }\n\n function debounced() {\n var time = now(),\n isInvoking = shouldInvoke(time);\n\n lastArgs = arguments;\n lastThis = this;\n lastCallTime = time;\n\n if (isInvoking) {\n if (timerId === undefined) {\n return leadingEdge(lastCallTime);\n }\n if (maxing) {\n // Handle invocations in a tight loop.\n clearTimeout(timerId);\n timerId = setTimeout(timerExpired, wait);\n return invokeFunc(lastCallTime);\n }\n }\n if (timerId === undefined) {\n timerId = setTimeout(timerExpired, wait);\n }\n return result;\n }\n debounced.cancel = cancel;\n debounced.flush = flush;\n return debounced;\n}\n\nmodule.exports = debounce;\n","var debounce = require('./debounce'),\n isObject = require('./isObject');\n\n/** Error message constants. */\nvar FUNC_ERROR_TEXT = 'Expected a function';\n\n/**\n * Creates a throttled function that only invokes `func` at most once per\n * every `wait` milliseconds. The throttled function comes with a `cancel`\n * method to cancel delayed `func` invocations and a `flush` method to\n * immediately invoke them. Provide `options` to indicate whether `func`\n * should be invoked on the leading and/or trailing edge of the `wait`\n * timeout. The `func` is invoked with the last arguments provided to the\n * throttled function. Subsequent calls to the throttled function return the\n * result of the last `func` invocation.\n *\n * **Note:** If `leading` and `trailing` options are `true`, `func` is\n * invoked on the trailing edge of the timeout only if the throttled function\n * is invoked more than once during the `wait` timeout.\n *\n * If `wait` is `0` and `leading` is `false`, `func` invocation is deferred\n * until to the next tick, similar to `setTimeout` with a timeout of `0`.\n *\n * See [David Corbacho's article](https://css-tricks.com/debouncing-throttling-explained-examples/)\n * for details over the differences between `_.throttle` and `_.debounce`.\n *\n * @static\n * @memberOf _\n * @since 0.1.0\n * @category Function\n * @param {Function} func The function to throttle.\n * @param {number} [wait=0] The number of milliseconds to throttle invocations to.\n * @param {Object} [options={}] The options object.\n * @param {boolean} [options.leading=true]\n * Specify invoking on the leading edge of the timeout.\n * @param {boolean} [options.trailing=true]\n * Specify invoking on the trailing edge of the timeout.\n * @returns {Function} Returns the new throttled function.\n * @example\n *\n * // Avoid excessively updating the position while scrolling.\n * jQuery(window).on('scroll', _.throttle(updatePosition, 100));\n *\n * // Invoke `renewToken` when the click event is fired, but not more than once every 5 minutes.\n * var throttled = _.throttle(renewToken, 300000, { 'trailing': false });\n * jQuery(element).on('click', throttled);\n *\n * // Cancel the trailing throttled invocation.\n * jQuery(window).on('popstate', throttled.cancel);\n */\nfunction throttle(func, wait, options) {\n var leading = true,\n trailing = true;\n\n if (typeof func != 'function') {\n throw new TypeError(FUNC_ERROR_TEXT);\n }\n if (isObject(options)) {\n leading = 'leading' in options ? !!options.leading : leading;\n trailing = 'trailing' in options ? !!options.trailing : trailing;\n }\n return debounce(func, wait, {\n 'leading': leading,\n 'maxWait': wait,\n 'trailing': trailing\n });\n}\n\nmodule.exports = throttle;\n","const t=t=>\"object\"==typeof t&&null!=t&&1===t.nodeType,e=(t,e)=>(!e||\"hidden\"!==t)&&(\"visible\"!==t&&\"clip\"!==t),n=(t,n)=>{if(t.clientHeight<t.scrollHeight||t.clientWidth<t.scrollWidth){const o=getComputedStyle(t,null);return e(o.overflowY,n)||e(o.overflowX,n)||(t=>{const e=(t=>{if(!t.ownerDocument||!t.ownerDocument.defaultView)return null;try{return t.ownerDocument.defaultView.frameElement}catch(t){return null}})(t);return!!e&&(e.clientHeight<t.scrollHeight||e.clientWidth<t.scrollWidth)})(t)}return!1},o=(t,e,n,o,l,r,i,s)=>r<t&&i>e||r>t&&i<e?0:r<=t&&s<=n||i>=e&&s>=n?r-t-o:i>e&&s<n||r<t&&s>n?i-e+l:0,l=t=>{const e=t.parentElement;return null==e?t.getRootNode().host||null:e},r=(e,r)=>{var i,s,d,h;if(\"undefined\"==typeof document)return[];const{scrollMode:c,block:f,inline:u,boundary:a,skipOverflowHiddenElements:g}=r,p=\"function\"==typeof a?a:t=>t!==a;if(!t(e))throw new TypeError(\"Invalid target\");const m=document.scrollingElement||document.documentElement,w=[];let W=e;for(;t(W)&&p(W);){if(W=l(W),W===m){w.push(W);break}null!=W&&W===document.body&&n(W)&&!n(document.documentElement)||null!=W&&n(W,g)&&w.push(W)}const b=null!=(s=null==(i=window.visualViewport)?void 0:i.width)?s:innerWidth,H=null!=(h=null==(d=window.visualViewport)?void 0:d.height)?h:innerHeight,{scrollX:y,scrollY:M}=window,{height:v,width:E,top:x,right:C,bottom:I,left:R}=e.getBoundingClientRect(),{top:T,right:B,bottom:F,left:V}=(t=>{const e=window.getComputedStyle(t);return{top:parseFloat(e.scrollMarginTop)||0,right:parseFloat(e.scrollMarginRight)||0,bottom:parseFloat(e.scrollMarginBottom)||0,left:parseFloat(e.scrollMarginLeft)||0}})(e);let k=\"start\"===f||\"nearest\"===f?x-T:\"end\"===f?I+F:x+v/2-T+F,D=\"center\"===u?R+E/2-V+B:\"end\"===u?C+B:R-V;const L=[];for(let t=0;t<w.length;t++){const e=w[t],{height:l,width:r,top:i,right:s,bottom:d,left:h}=e.getBoundingClientRect();if(\"if-needed\"===c&&x>=0&&R>=0&&I<=H&&C<=b&&(e===m&&!n(e)||x>=i&&I<=d&&R>=h&&C<=s))return L;const a=getComputedStyle(e),g=parseInt(a.borderLeftWidth,10),p=parseInt(a.borderTopWidth,10),W=parseInt(a.borderRightWidth,10),T=parseInt(a.borderBottomWidth,10);let B=0,F=0;const V=\"offsetWidth\"in e?e.offsetWidth-e.clientWidth-g-W:0,S=\"offsetHeight\"in e?e.offsetHeight-e.clientHeight-p-T:0,X=\"offsetWidth\"in e?0===e.offsetWidth?0:r/e.offsetWidth:0,Y=\"offsetHeight\"in e?0===e.offsetHeight?0:l/e.offsetHeight:0;if(m===e)B=\"start\"===f?k:\"end\"===f?k-H:\"nearest\"===f?o(M,M+H,H,p,T,M+k,M+k+v,v):k-H/2,F=\"start\"===u?D:\"center\"===u?D-b/2:\"end\"===u?D-b:o(y,y+b,b,g,W,y+D,y+D+E,E),B=Math.max(0,B+M),F=Math.max(0,F+y);else{B=\"start\"===f?k-i-p:\"end\"===f?k-d+T+S:\"nearest\"===f?o(i,d,l,p,T+S,k,k+v,v):k-(i+l/2)+S/2,F=\"start\"===u?D-h-g:\"center\"===u?D-(h+r/2)+V/2:\"end\"===u?D-s+W+V:o(h,s,r,g,W+V,D,D+E,E);const{scrollLeft:t,scrollTop:n}=e;B=0===Y?0:Math.max(0,Math.min(n+B/Y,e.scrollHeight-l/Y+S)),F=0===X?0:Math.max(0,Math.min(t+F/X,e.scrollWidth-r/X+V)),k+=n-B,D+=t-F}L.push({el:e,top:B,left:F})}return L};export{r as compute};//# sourceMappingURL=index.js.map\n","import{compute as t}from\"compute-scroll-into-view\";const o=t=>!1===t?{block:\"end\",inline:\"nearest\"}:(t=>t===Object(t)&&0!==Object.keys(t).length)(t)?t:{block:\"start\",inline:\"nearest\"};function e(e,r){if(!e.isConnected||!(t=>{let o=t;for(;o&&o.parentNode;){if(o.parentNode===document)return!0;o=o.parentNode instanceof ShadowRoot?o.parentNode.host:o.parentNode}return!1})(e))return;const n=(t=>{const o=window.getComputedStyle(t);return{top:parseFloat(o.scrollMarginTop)||0,right:parseFloat(o.scrollMarginRight)||0,bottom:parseFloat(o.scrollMarginBottom)||0,left:parseFloat(o.scrollMarginLeft)||0}})(e);if((t=>\"object\"==typeof t&&\"function\"==typeof t.behavior)(r))return r.behavior(t(e,r));const l=\"boolean\"==typeof r||null==r?void 0:r.behavior;for(const{el:a,top:i,left:s}of t(e,o(r))){const t=i-n.top+n.bottom,o=s-n.left+n.right;a.scroll({top:t,left:o,behavior:l})}}export{e as default};//# sourceMappingURL=index.js.map\n","var resizeObservers = [];\nexport { resizeObservers };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasActiveObservations = function () {\n return resizeObservers.some(function (ro) { return ro.activeTargets.length > 0; });\n};\nexport { hasActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nvar hasSkippedObservations = function () {\n return resizeObservers.some(function (ro) { return ro.skippedTargets.length > 0; });\n};\nexport { hasSkippedObservations };\n","var msg = 'ResizeObserver loop completed with undelivered notifications.';\nvar deliverResizeLoopError = function () {\n var event;\n if (typeof ErrorEvent === 'function') {\n event = new ErrorEvent('error', {\n message: msg\n });\n }\n else {\n event = document.createEvent('Event');\n event.initEvent('error', false, false);\n event.message = msg;\n }\n window.dispatchEvent(event);\n};\nexport { deliverResizeLoopError };\n","var ResizeObserverBoxOptions;\n(function (ResizeObserverBoxOptions) {\n ResizeObserverBoxOptions[\"BORDER_BOX\"] = \"border-box\";\n ResizeObserverBoxOptions[\"CONTENT_BOX\"] = \"content-box\";\n ResizeObserverBoxOptions[\"DEVICE_PIXEL_CONTENT_BOX\"] = \"device-pixel-content-box\";\n})(ResizeObserverBoxOptions || (ResizeObserverBoxOptions = {}));\nexport { ResizeObserverBoxOptions };\n","export var freeze = function (obj) { return Object.freeze(obj); };\n","import { freeze } from './utils/freeze';\nvar ResizeObserverSize = (function () {\n function ResizeObserverSize(inlineSize, blockSize) {\n this.inlineSize = inlineSize;\n this.blockSize = blockSize;\n freeze(this);\n }\n return ResizeObserverSize;\n}());\nexport { ResizeObserverSize };\n","import { freeze } from './utils/freeze';\nvar DOMRectReadOnly = (function () {\n function DOMRectReadOnly(x, y, width, height) {\n this.x = x;\n this.y = y;\n this.width = width;\n this.height = height;\n this.top = this.y;\n this.left = this.x;\n this.bottom = this.top + this.height;\n this.right = this.left + this.width;\n return freeze(this);\n }\n DOMRectReadOnly.prototype.toJSON = function () {\n var _a = this, x = _a.x, y = _a.y, top = _a.top, right = _a.right, bottom = _a.bottom, left = _a.left, width = _a.width, height = _a.height;\n return { x: x, y: y, top: top, right: right, bottom: bottom, left: left, width: width, height: height };\n };\n DOMRectReadOnly.fromRect = function (rectangle) {\n return new DOMRectReadOnly(rectangle.x, rectangle.y, rectangle.width, rectangle.height);\n };\n return DOMRectReadOnly;\n}());\nexport { DOMRectReadOnly };\n","var isSVG = function (target) { return target instanceof SVGElement && 'getBBox' in target; };\nvar isHidden = function (target) {\n if (isSVG(target)) {\n var _a = target.getBBox(), width = _a.width, height = _a.height;\n return !width && !height;\n }\n var _b = target, offsetWidth = _b.offsetWidth, offsetHeight = _b.offsetHeight;\n return !(offsetWidth || offsetHeight || target.getClientRects().length);\n};\nvar isElement = function (obj) {\n var _a;\n if (obj instanceof Element) {\n return true;\n }\n var scope = (_a = obj === null || obj === void 0 ? void 0 : obj.ownerDocument) === null || _a === void 0 ? void 0 : _a.defaultView;\n return !!(scope && obj instanceof scope.Element);\n};\nvar isReplacedElement = function (target) {\n switch (target.tagName) {\n case 'INPUT':\n if (target.type !== 'image') {\n break;\n }\n case 'VIDEO':\n case 'AUDIO':\n case 'EMBED':\n case 'OBJECT':\n case 'CANVAS':\n case 'IFRAME':\n case 'IMG':\n return true;\n }\n return false;\n};\nexport { isSVG, isHidden, isElement, isReplacedElement };\n","export var global = typeof window !== 'undefined' ? window : {};\n","import { ResizeObserverBoxOptions } from '../ResizeObserverBoxOptions';\nimport { ResizeObserverSize } from '../ResizeObserverSize';\nimport { DOMRectReadOnly } from '../DOMRectReadOnly';\nimport { isSVG, isHidden } from '../utils/element';\nimport { freeze } from '../utils/freeze';\nimport { global } from '../utils/global';\nvar cache = new WeakMap();\nvar scrollRegexp = /auto|scroll/;\nvar verticalRegexp = /^tb|vertical/;\nvar IE = (/msie|trident/i).test(global.navigator && global.navigator.userAgent);\nvar parseDimension = function (pixel) { return parseFloat(pixel || '0'); };\nvar size = function (inlineSize, blockSize, switchSizes) {\n if (inlineSize === void 0) { inlineSize = 0; }\n if (blockSize === void 0) { blockSize = 0; }\n if (switchSizes === void 0) { switchSizes = false; }\n return new ResizeObserverSize((switchSizes ? blockSize : inlineSize) || 0, (switchSizes ? inlineSize : blockSize) || 0);\n};\nvar zeroBoxes = freeze({\n devicePixelContentBoxSize: size(),\n borderBoxSize: size(),\n contentBoxSize: size(),\n contentRect: new DOMRectReadOnly(0, 0, 0, 0)\n});\nvar calculateBoxSizes = function (target, forceRecalculation) {\n if (forceRecalculation === void 0) { forceRecalculation = false; }\n if (cache.has(target) && !forceRecalculation) {\n return cache.get(target);\n }\n if (isHidden(target)) {\n cache.set(target, zeroBoxes);\n return zeroBoxes;\n }\n var cs = getComputedStyle(target);\n var svg = isSVG(target) && target.ownerSVGElement && target.getBBox();\n var removePadding = !IE && cs.boxSizing === 'border-box';\n var switchSizes = verticalRegexp.test(cs.writingMode || '');\n var canScrollVertically = !svg && scrollRegexp.test(cs.overflowY || '');\n var canScrollHorizontally = !svg && scrollRegexp.test(cs.overflowX || '');\n var paddingTop = svg ? 0 : parseDimension(cs.paddingTop);\n var paddingRight = svg ? 0 : parseDimension(cs.paddingRight);\n var paddingBottom = svg ? 0 : parseDimension(cs.paddingBottom);\n var paddingLeft = svg ? 0 : parseDimension(cs.paddingLeft);\n var borderTop = svg ? 0 : parseDimension(cs.borderTopWidth);\n var borderRight = svg ? 0 : parseDimension(cs.borderRightWidth);\n var borderBottom = svg ? 0 : parseDimension(cs.borderBottomWidth);\n var borderLeft = svg ? 0 : parseDimension(cs.borderLeftWidth);\n var horizontalPadding = paddingLeft + paddingRight;\n var verticalPadding = paddingTop + paddingBottom;\n var horizontalBorderArea = borderLeft + borderRight;\n var verticalBorderArea = borderTop + borderBottom;\n var horizontalScrollbarThickness = !canScrollHorizontally ? 0 : target.offsetHeight - verticalBorderArea - target.clientHeight;\n var verticalScrollbarThickness = !canScrollVertically ? 0 : target.offsetWidth - horizontalBorderArea - target.clientWidth;\n var widthReduction = removePadding ? horizontalPadding + horizontalBorderArea : 0;\n var heightReduction = removePadding ? verticalPadding + verticalBorderArea : 0;\n var contentWidth = svg ? svg.width : parseDimension(cs.width) - widthReduction - verticalScrollbarThickness;\n var contentHeight = svg ? svg.height : parseDimension(cs.height) - heightReduction - horizontalScrollbarThickness;\n var borderBoxWidth = contentWidth + horizontalPadding + verticalScrollbarThickness + horizontalBorderArea;\n var borderBoxHeight = contentHeight + verticalPadding + horizontalScrollbarThickness + verticalBorderArea;\n var boxes = freeze({\n devicePixelContentBoxSize: size(Math.round(contentWidth * devicePixelRatio), Math.round(contentHeight * devicePixelRatio), switchSizes),\n borderBoxSize: size(borderBoxWidth, borderBoxHeight, switchSizes),\n contentBoxSize: size(contentWidth, contentHeight, switchSizes),\n contentRect: new DOMRectReadOnly(paddingLeft, paddingTop, contentWidth, contentHeight)\n });\n cache.set(target, boxes);\n return boxes;\n};\nvar calculateBoxSize = function (target, observedBox, forceRecalculation) {\n var _a = calculateBoxSizes(target, forceRecalculation), borderBoxSize = _a.borderBoxSize, contentBoxSize = _a.contentBoxSize, devicePixelContentBoxSize = _a.devicePixelContentBoxSize;\n switch (observedBox) {\n case ResizeObserverBoxOptions.DEVICE_PIXEL_CONTENT_BOX:\n return devicePixelContentBoxSize;\n case ResizeObserverBoxOptions.BORDER_BOX:\n return borderBoxSize;\n default:\n return contentBoxSize;\n }\n};\nexport { calculateBoxSize, calculateBoxSizes };\n","import { calculateBoxSizes } from './algorithms/calculateBoxSize';\nimport { freeze } from './utils/freeze';\nvar ResizeObserverEntry = (function () {\n function ResizeObserverEntry(target) {\n var boxes = calculateBoxSizes(target);\n this.target = target;\n this.contentRect = boxes.contentRect;\n this.borderBoxSize = freeze([boxes.borderBoxSize]);\n this.contentBoxSize = freeze([boxes.contentBoxSize]);\n this.devicePixelContentBoxSize = freeze([boxes.devicePixelContentBoxSize]);\n }\n return ResizeObserverEntry;\n}());\nexport { ResizeObserverEntry };\n","import { isHidden } from '../utils/element';\nvar calculateDepthForNode = function (node) {\n if (isHidden(node)) {\n return Infinity;\n }\n var depth = 0;\n var parent = node.parentNode;\n while (parent) {\n depth += 1;\n parent = parent.parentNode;\n }\n return depth;\n};\nexport { calculateDepthForNode };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { ResizeObserverEntry } from '../ResizeObserverEntry';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nimport { calculateBoxSize } from './calculateBoxSize';\nvar broadcastActiveObservations = function () {\n var shallowestDepth = Infinity;\n var callbacks = [];\n resizeObservers.forEach(function processObserver(ro) {\n if (ro.activeTargets.length === 0) {\n return;\n }\n var entries = [];\n ro.activeTargets.forEach(function processTarget(ot) {\n var entry = new ResizeObserverEntry(ot.target);\n var targetDepth = calculateDepthForNode(ot.target);\n entries.push(entry);\n ot.lastReportedSize = calculateBoxSize(ot.target, ot.observedBox);\n if (targetDepth < shallowestDepth) {\n shallowestDepth = targetDepth;\n }\n });\n callbacks.push(function resizeObserverCallback() {\n ro.callback.call(ro.observer, entries, ro.observer);\n });\n ro.activeTargets.splice(0, ro.activeTargets.length);\n });\n for (var _i = 0, callbacks_1 = callbacks; _i < callbacks_1.length; _i++) {\n var callback = callbacks_1[_i];\n callback();\n }\n return shallowestDepth;\n};\nexport { broadcastActiveObservations };\n","import { resizeObservers } from '../utils/resizeObservers';\nimport { calculateDepthForNode } from './calculateDepthForNode';\nvar gatherActiveObservationsAtDepth = function (depth) {\n resizeObservers.forEach(function processObserver(ro) {\n ro.activeTargets.splice(0, ro.activeTargets.length);\n ro.skippedTargets.splice(0, ro.skippedTargets.length);\n ro.observationTargets.forEach(function processTarget(ot) {\n if (ot.isActive()) {\n if (calculateDepthForNode(ot.target) > depth) {\n ro.activeTargets.push(ot);\n }\n else {\n ro.skippedTargets.push(ot);\n }\n }\n });\n });\n};\nexport { gatherActiveObservationsAtDepth };\n","import { hasActiveObservations } from '../algorithms/hasActiveObservations';\nimport { hasSkippedObservations } from '../algorithms/hasSkippedObservations';\nimport { deliverResizeLoopError } from '../algorithms/deliverResizeLoopError';\nimport { broadcastActiveObservations } from '../algorithms/broadcastActiveObservations';\nimport { gatherActiveObservationsAtDepth } from '../algorithms/gatherActiveObservationsAtDepth';\nvar process = function () {\n var depth = 0;\n gatherActiveObservationsAtDepth(depth);\n while (hasActiveObservations()) {\n depth = broadcastActiveObservations();\n gatherActiveObservationsAtDepth(depth);\n }\n if (hasSkippedObservations()) {\n deliverResizeLoopError();\n }\n return depth > 0;\n};\nexport { process };\n","var trigger;\nvar callbacks = [];\nvar notify = function () { return callbacks.splice(0).forEach(function (cb) { return cb(); }); };\nvar queueMicroTask = function (callback) {\n if (!trigger) {\n var toggle_1 = 0;\n var el_1 = document.createTextNode('');\n var config = { characterData: true };\n new MutationObserver(function () { return notify(); }).observe(el_1, config);\n trigger = function () { el_1.textContent = \"\".concat(toggle_1 ? toggle_1-- : toggle_1++); };\n }\n callbacks.push(callback);\n trigger();\n};\nexport { queueMicroTask };\n","import { queueMicroTask } from './queueMicroTask';\nvar queueResizeObserver = function (cb) {\n queueMicroTask(function ResizeObserver() {\n requestAnimationFrame(cb);\n });\n};\nexport { queueResizeObserver };\n","import { process } from './process';\nimport { global } from './global';\nimport { queueResizeObserver } from './queueResizeObserver';\nvar watching = 0;\nvar isWatching = function () { return !!watching; };\nvar CATCH_PERIOD = 250;\nvar observerConfig = { attributes: true, characterData: true, childList: true, subtree: true };\nvar events = [\n 'resize',\n 'load',\n 'transitionend',\n 'animationend',\n 'animationstart',\n 'animationiteration',\n 'keyup',\n 'keydown',\n 'mouseup',\n 'mousedown',\n 'mouseover',\n 'mouseout',\n 'blur',\n 'focus'\n];\nvar time = function (timeout) {\n if (timeout === void 0) { timeout = 0; }\n return Date.now() + timeout;\n};\nvar scheduled = false;\nvar Scheduler = (function () {\n function Scheduler() {\n var _this = this;\n this.stopped = true;\n this.listener = function () { return _this.schedule(); };\n }\n Scheduler.prototype.run = function (timeout) {\n var _this = this;\n if (timeout === void 0) { timeout = CATCH_PERIOD; }\n if (scheduled) {\n return;\n }\n scheduled = true;\n var until = time(timeout);\n queueResizeObserver(function () {\n var elementsHaveResized = false;\n try {\n elementsHaveResized = process();\n }\n finally {\n scheduled = false;\n timeout = until - time();\n if (!isWatching()) {\n return;\n }\n if (elementsHaveResized) {\n _this.run(1000);\n }\n else if (timeout > 0) {\n _this.run(timeout);\n }\n else {\n _this.start();\n }\n }\n });\n };\n Scheduler.prototype.schedule = function () {\n this.stop();\n this.run();\n };\n Scheduler.prototype.observe = function () {\n var _this = this;\n var cb = function () { return _this.observer && _this.observer.observe(document.body, observerConfig); };\n document.body ? cb() : global.addEventListener('DOMContentLoaded', cb);\n };\n Scheduler.prototype.start = function () {\n var _this = this;\n if (this.stopped) {\n this.stopped = false;\n this.observer = new MutationObserver(this.listener);\n this.observe();\n events.forEach(function (name) { return global.addEventListener(name, _this.listener, true); });\n }\n };\n Scheduler.prototype.stop = function () {\n var _this = this;\n if (!this.stopped) {\n this.observer && this.observer.disconnect();\n events.forEach(function (name) { return global.removeEventListener(name, _this.listener, true); });\n this.stopped = true;\n }\n };\n return Scheduler;\n}());\nvar scheduler = new Scheduler();\nvar updateCount = function (n) {\n !watching && n > 0 && scheduler.start();\n watching += n;\n !watching && scheduler.stop();\n};\nexport { scheduler, updateCount };\n","import { ResizeObserverBoxOptions } from './ResizeObserverBoxOptions';\nimport { calculateBoxSize } from './algorithms/calculateBoxSize';\nimport { isSVG, isReplacedElement } from './utils/element';\nvar skipNotifyOnElement = function (target) {\n return !isSVG(target)\n && !isReplacedElement(target)\n && getComputedStyle(target).display === 'inline';\n};\nvar ResizeObservation = (function () {\n function ResizeObservation(target, observedBox) {\n this.target = target;\n this.observedBox = observedBox || ResizeObserverBoxOptions.CONTENT_BOX;\n this.lastReportedSize = {\n inlineSize: 0,\n blockSize: 0\n };\n }\n ResizeObservation.prototype.isActive = function () {\n var size = calculateBoxSize(this.target, this.observedBox, true);\n if (skipNotifyOnElement(this.target)) {\n this.lastReportedSize = size;\n }\n if (this.lastReportedSize.inlineSize !== size.inlineSize\n || this.lastReportedSize.blockSize !== size.blockSize) {\n return true;\n }\n return false;\n };\n return ResizeObservation;\n}());\nexport { ResizeObservation };\n","var ResizeObserverDetail = (function () {\n function ResizeObserverDetail(resizeObserver, callback) {\n this.activeTargets = [];\n this.skippedTargets = [];\n this.observationTargets = [];\n this.observer = resizeObserver;\n this.callback = callback;\n }\n return ResizeObserverDetail;\n}());\nexport { ResizeObserverDetail };\n","import { scheduler, updateCount } from './utils/scheduler';\nimport { ResizeObservation } from './ResizeObservation';\nimport { ResizeObserverDetail } from './ResizeObserverDetail';\nimport { resizeObservers } from './utils/resizeObservers';\nvar observerMap = new WeakMap();\nvar getObservationIndex = function (observationTargets, target) {\n for (var i = 0; i < observationTargets.length; i += 1) {\n if (observationTargets[i].target === target) {\n return i;\n }\n }\n return -1;\n};\nvar ResizeObserverController = (function () {\n function ResizeObserverController() {\n }\n ResizeObserverController.connect = function (resizeObserver, callback) {\n var detail = new ResizeObserverDetail(resizeObserver, callback);\n observerMap.set(resizeObserver, detail);\n };\n ResizeObserverController.observe = function (resizeObserver, target, options) {\n var detail = observerMap.get(resizeObserver);\n var firstObservation = detail.observationTargets.length === 0;\n if (getObservationIndex(detail.observationTargets, target) < 0) {\n firstObservation && resizeObservers.push(detail);\n detail.observationTargets.push(new ResizeObservation(target, options && options.box));\n updateCount(1);\n scheduler.schedule();\n }\n };\n ResizeObserverController.unobserve = function (resizeObserver, target) {\n var detail = observerMap.get(resizeObserver);\n var index = getObservationIndex(detail.observationTargets, target);\n var lastObservation = detail.observationTargets.length === 1;\n if (index >= 0) {\n lastObservation && resizeObservers.splice(resizeObservers.indexOf(detail), 1);\n detail.observationTargets.splice(index, 1);\n updateCount(-1);\n }\n };\n ResizeObserverController.disconnect = function (resizeObserver) {\n var _this = this;\n var detail = observerMap.get(resizeObserver);\n detail.observationTargets.slice().forEach(function (ot) { return _this.unobserve(resizeObserver, ot.target); });\n detail.activeTargets.splice(0, detail.activeTargets.length);\n };\n return ResizeObserverController;\n}());\nexport { ResizeObserverController };\n","import { ResizeObserverController } from './ResizeObserverController';\nimport { isElement } from './utils/element';\nvar ResizeObserver = (function () {\n function ResizeObserver(callback) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to construct 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (typeof callback !== 'function') {\n throw new TypeError(\"Failed to construct 'ResizeObserver': The callback provided as parameter 1 is not a function.\");\n }\n ResizeObserverController.connect(this, callback);\n }\n ResizeObserver.prototype.observe = function (target, options) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'observe' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.observe(this, target, options);\n };\n ResizeObserver.prototype.unobserve = function (target) {\n if (arguments.length === 0) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': 1 argument required, but only 0 present.\");\n }\n if (!isElement(target)) {\n throw new TypeError(\"Failed to execute 'unobserve' on 'ResizeObserver': parameter 1 is not of type 'Element\");\n }\n ResizeObserverController.unobserve(this, target);\n };\n ResizeObserver.prototype.disconnect = function () {\n ResizeObserverController.disconnect(this);\n };\n ResizeObserver.toString = function () {\n return 'function ResizeObserver () { [polyfill code] }';\n };\n return ResizeObserver;\n}());\nexport { ResizeObserver };\n","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\n/**\n * Constants.\n */\n\nvar IS_MAC = typeof window != 'undefined' && /Mac|iPod|iPhone|iPad/.test(window.navigator.platform);\n\nvar MODIFIERS = {\n alt: 'altKey',\n control: 'ctrlKey',\n meta: 'metaKey',\n shift: 'shiftKey'\n};\n\nvar ALIASES = {\n add: '+',\n break: 'pause',\n cmd: 'meta',\n command: 'meta',\n ctl: 'control',\n ctrl: 'control',\n del: 'delete',\n down: 'arrowdown',\n esc: 'escape',\n ins: 'insert',\n left: 'arrowleft',\n mod: IS_MAC ? 'meta' : 'control',\n opt: 'alt',\n option: 'alt',\n return: 'enter',\n right: 'arrowright',\n space: ' ',\n spacebar: ' ',\n up: 'arrowup',\n win: 'meta',\n windows: 'meta'\n};\n\nvar CODES = {\n backspace: 8,\n tab: 9,\n enter: 13,\n shift: 16,\n control: 17,\n alt: 18,\n pause: 19,\n capslock: 20,\n escape: 27,\n ' ': 32,\n pageup: 33,\n pagedown: 34,\n end: 35,\n home: 36,\n arrowleft: 37,\n arrowup: 38,\n arrowright: 39,\n arrowdown: 40,\n insert: 45,\n delete: 46,\n meta: 91,\n numlock: 144,\n scrolllock: 145,\n ';': 186,\n '=': 187,\n ',': 188,\n '-': 189,\n '.': 190,\n '/': 191,\n '`': 192,\n '[': 219,\n '\\\\': 220,\n ']': 221,\n '\\'': 222\n};\n\nfor (var f = 1; f < 20; f++) {\n CODES['f' + f] = 111 + f;\n}\n\n/**\n * Is hotkey?\n */\n\nfunction isHotkey(hotkey, options, event) {\n if (options && !('byKey' in options)) {\n event = options;\n options = null;\n }\n\n if (!Array.isArray(hotkey)) {\n hotkey = [hotkey];\n }\n\n var array = hotkey.map(function (string) {\n return parseHotkey(string, options);\n });\n var check = function check(e) {\n return array.some(function (object) {\n return compareHotkey(object, e);\n });\n };\n var ret = event == null ? check : check(event);\n return ret;\n}\n\nfunction isCodeHotkey(hotkey, event) {\n return isHotkey(hotkey, event);\n}\n\nfunction isKeyHotkey(hotkey, event) {\n return isHotkey(hotkey, { byKey: true }, event);\n}\n\n/**\n * Parse.\n */\n\nfunction parseHotkey(hotkey, options) {\n var byKey = options && options.byKey;\n var ret = {};\n\n // Special case to handle the `+` key since we use it as a separator.\n hotkey = hotkey.replace('++', '+add');\n var values = hotkey.split('+');\n var length = values.length;\n\n // Ensure that all the modifiers are set to false unless the hotkey has them.\n\n for (var k in MODIFIERS) {\n ret[MODIFIERS[k]] = false;\n }\n\n var _iteratorNormalCompletion = true;\n var _didIteratorError = false;\n var _iteratorError = undefined;\n\n try {\n for (var _iterator = values[Symbol.iterator](), _step; !(_iteratorNormalCompletion = (_step = _iterator.next()).done); _iteratorNormalCompletion = true) {\n var value = _step.value;\n\n var optional = value.endsWith('?') && value.length > 1;\n\n if (optional) {\n value = value.slice(0, -1);\n }\n\n var name = toKeyName(value);\n var modifier = MODIFIERS[name];\n\n if (value.length > 1 && !modifier && !ALIASES[value] && !CODES[name]) {\n throw new TypeError('Unknown modifier: \"' + value + '\"');\n }\n\n if (length === 1 || !modifier) {\n if (byKey) {\n ret.key = name;\n } else {\n ret.which = toKeyCode(value);\n }\n }\n\n if (modifier) {\n ret[modifier] = optional ? null : true;\n }\n }\n } catch (err) {\n _didIteratorError = true;\n _iteratorError = err;\n } finally {\n try {\n if (!_iteratorNormalCompletion && _iterator.return) {\n _iterator.return();\n }\n } finally {\n if (_didIteratorError) {\n throw _iteratorError;\n }\n }\n }\n\n return ret;\n}\n\n/**\n * Compare.\n */\n\nfunction compareHotkey(object, event) {\n for (var key in object) {\n var expected = object[key];\n var actual = void 0;\n\n if (expected == null) {\n continue;\n }\n\n if (key === 'key' && event.key != null) {\n actual = event.key.toLowerCase();\n } else if (key === 'which') {\n actual = expected === 91 && event.which === 93 ? 91 : event.which;\n } else {\n actual = event[key];\n }\n\n if (actual == null && expected === false) {\n continue;\n }\n\n if (actual !== expected) {\n return false;\n }\n }\n\n return true;\n}\n\n/**\n * Utils.\n */\n\nfunction toKeyCode(name) {\n name = toKeyName(name);\n var code = CODES[name] || name.toUpperCase().charCodeAt(0);\n return code;\n}\n\nfunction toKeyName(name) {\n name = name.toLowerCase();\n name = ALIASES[name] || name;\n return name;\n}\n\n/**\n * Export.\n */\n\nexports.default = isHotkey;\nexports.isHotkey = isHotkey;\nexports.isCodeHotkey = isCodeHotkey;\nexports.isKeyHotkey = isKeyHotkey;\nexports.parseHotkey = parseHotkey;\nexports.compareHotkey = compareHotkey;\nexports.toKeyCode = toKeyCode;\nexports.toKeyName = toKeyName;","import getDirection from 'direction';\nimport debounce from 'lodash/debounce';\nimport throttle from 'lodash/throttle';\nimport React, { createContext, useContext, useRef, useEffect, useLayoutEffect, useState, memo, forwardRef, useCallback, Component, useReducer, useMemo } from 'react';\nimport scrollIntoView from 'scroll-into-view-if-needed';\nimport { Transforms, Element as Element$1, Editor, Scrubber, Range, Path, Point, Node, Text as Text$1 } from 'slate';\nimport { ResizeObserver } from '@juggle/resize-observer';\nimport { isHotkey } from 'is-hotkey';\nimport ReactDOM from 'react-dom';\n\nfunction _objectWithoutPropertiesLoose(source, excluded) {\n if (source == null) return {};\n var target = {};\n var sourceKeys = Object.keys(source);\n var key, i;\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 return target;\n}\n\nfunction _objectWithoutProperties(source, excluded) {\n if (source == null) return {};\n var target = _objectWithoutPropertiesLoose(source, excluded);\n var key, i;\n if (Object.getOwnPropertySymbols) {\n var sourceSymbolKeys = Object.getOwnPropertySymbols(source);\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 return target;\n}\n\nfunction _typeof(o) {\n \"@babel/helpers - typeof\";\n\n return _typeof = \"function\" == typeof Symbol && \"symbol\" == typeof Symbol.iterator ? function (o) {\n return typeof o;\n } : function (o) {\n return o && \"function\" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? \"symbol\" : typeof o;\n }, _typeof(o);\n}\n\nfunction _toPrimitive(input, hint) {\n if (_typeof(input) !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (_typeof(res) !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n}\n\nfunction _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return _typeof(key) === \"symbol\" ? key : String(key);\n}\n\nfunction _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\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 return obj;\n}\n\n/**\n * A React context for sharing the editor object.\n */\nvar EditorContext = /*#__PURE__*/createContext(null);\n/**\n * Get the current editor object from the React context.\n */\nvar useSlateStatic = () => {\n var editor = useContext(EditorContext);\n if (!editor) {\n throw new Error(\"The `useSlateStatic` hook must be used inside the <Slate> component's context.\");\n }\n return editor;\n};\n\nvar _navigator$userAgent$, _navigator$userAgent$2;\nvar REACT_MAJOR_VERSION = parseInt(React.version.split('.')[0], 10);\nvar IS_IOS = typeof navigator !== 'undefined' && typeof window !== 'undefined' && /iPad|iPhone|iPod/.test(navigator.userAgent) && !window.MSStream;\nvar IS_APPLE = typeof navigator !== 'undefined' && /Mac OS X/.test(navigator.userAgent);\nvar IS_ANDROID = typeof navigator !== 'undefined' && /Android/.test(navigator.userAgent);\nvar IS_FIREFOX = typeof navigator !== 'undefined' && /^(?!.*Seamonkey)(?=.*Firefox).*/i.test(navigator.userAgent);\nvar IS_WEBKIT = typeof navigator !== 'undefined' && /AppleWebKit(?!.*Chrome)/i.test(navigator.userAgent);\n// \"modern\" Edge was released at 79.x\nvar IS_EDGE_LEGACY = typeof navigator !== 'undefined' && /Edge?\\/(?:[0-6][0-9]|[0-7][0-8])(?:\\.)/i.test(navigator.userAgent);\nvar IS_CHROME = typeof navigator !== 'undefined' && /Chrome/i.test(navigator.userAgent);\n// Native `beforeInput` events don't work well with react on Chrome 75\n// and older, Chrome 76+ can use `beforeInput` though.\nvar IS_CHROME_LEGACY = typeof navigator !== 'undefined' && /Chrome?\\/(?:[0-7][0-5]|[0-6][0-9])(?:\\.)/i.test(navigator.userAgent);\nvar IS_ANDROID_CHROME_LEGACY = IS_ANDROID && typeof navigator !== 'undefined' && /Chrome?\\/(?:[0-5]?\\d)(?:\\.)/i.test(navigator.userAgent);\n// Firefox did not support `beforeInput` until `v87`.\nvar IS_FIREFOX_LEGACY = typeof navigator !== 'undefined' && /^(?!.*Seamonkey)(?=.*Firefox\\/(?:[0-7][0-9]|[0-8][0-6])(?:\\.)).*/i.test(navigator.userAgent);\n// UC mobile browser\nvar IS_UC_MOBILE = typeof navigator !== 'undefined' && /.*UCBrowser/.test(navigator.userAgent);\n// Wechat browser (not including mac wechat)\nvar IS_WECHATBROWSER = typeof navigator !== 'undefined' && /.*Wechat/.test(navigator.userAgent) && !/.*MacWechat/.test(navigator.userAgent); // avoid lookbehind (buggy in safari < 16.4)\n// Check if DOM is available as React does internally.\n// https://github.com/facebook/react/blob/master/packages/shared/ExecutionEnvironment.js\nvar CAN_USE_DOM = !!(typeof window !== 'undefined' && typeof window.document !== 'undefined' && typeof window.document.createElement !== 'undefined');\n// Check if the browser is Safari and older than 17\ntypeof navigator !== 'undefined' && /Safari/.test(navigator.userAgent) && /Version\\/(\\d+)/.test(navigator.userAgent) && ((_navigator$userAgent$ = navigator.userAgent.match(/Version\\/(\\d+)/)) !== null && _navigator$userAgent$ !== void 0 && _navigator$userAgent$[1] ? parseInt((_navigator$userAgent$2 = navigator.userAgent.match(/Version\\/(\\d+)/)) === null || _navigator$userAgent$2 === void 0 ? void 0 : _navigator$userAgent$2[1], 10) < 17 : false);\n// COMPAT: Firefox/Edge Legacy don't support the `beforeinput` event\n// Chrome Legacy doesn't support `beforeinput` correctly\nvar HAS_BEFORE_INPUT_SUPPORT = (!IS_CHROME_LEGACY || !IS_ANDROID_CHROME_LEGACY) && !IS_EDGE_LEGACY &&\n// globalThis is undefined in older browsers\ntypeof globalThis !== 'undefined' && globalThis.InputEvent &&\n// @ts-ignore The `getTargetRanges` property isn't recognized.\ntypeof globalThis.InputEvent.prototype.getTargetRanges === 'function';\n\n/**\n * Two weak maps that allow us rebuild a path given a node. They are populated\n * at render time such that after a render occurs we can always backtrack.\n */\nvar IS_NODE_MAP_DIRTY = new WeakMap();\nvar NODE_TO_INDEX = new WeakMap();\nvar NODE_TO_PARENT = new WeakMap();\n/**\n * Weak maps that allow us to go between Slate nodes and DOM nodes. These\n * are used to resolve DOM event-related logic into Slate actions.\n */\nvar EDITOR_TO_WINDOW = new WeakMap();\nvar EDITOR_TO_ELEMENT = new WeakMap();\nvar EDITOR_TO_PLACEHOLDER_ELEMENT = new WeakMap();\nvar ELEMENT_TO_NODE = new WeakMap();\nvar NODE_TO_ELEMENT = new WeakMap();\nvar NODE_TO_KEY = new WeakMap();\nvar EDITOR_TO_KEY_TO_ELEMENT = new WeakMap();\n/**\n * Weak maps for storing editor-related state.\n */\nvar IS_READ_ONLY = new WeakMap();\nvar IS_FOCUSED = new WeakMap();\nvar IS_COMPOSING = new WeakMap();\nvar EDITOR_TO_USER_SELECTION = new WeakMap();\n/**\n * Weak map for associating the context `onChange` context with the plugin.\n */\nvar EDITOR_TO_ON_CHANGE = new WeakMap();\n/**\n * Weak maps for saving pending state on composition stage.\n */\nvar EDITOR_TO_SCHEDULE_FLUSH = new WeakMap();\nvar EDITOR_TO_PENDING_INSERTION_MARKS = new WeakMap();\nvar EDITOR_TO_USER_MARKS = new WeakMap();\n/**\n * Android input handling specific weak-maps\n */\nvar EDITOR_TO_PENDING_DIFFS = new WeakMap();\nvar EDITOR_TO_PENDING_ACTION = new WeakMap();\nvar EDITOR_TO_PENDING_SELECTION = new WeakMap();\nvar EDITOR_TO_FORCE_RENDER = new WeakMap();\n/**\n * Symbols.\n */\nvar PLACEHOLDER_SYMBOL = Symbol('placeholder');\nvar MARK_PLACEHOLDER_SYMBOL = Symbol('mark-placeholder');\n\n/**\n * Types.\n */\n// COMPAT: This is required to prevent TypeScript aliases from doing some very\n// weird things for Slate's types with the same name as globals. (2019/11/27)\n// https://github.com/microsoft/TypeScript/issues/35002\nvar DOMNode = globalThis.Node;\nvar DOMText = globalThis.Text;\n/**\n * Returns the host window of a DOM node\n */\nvar getDefaultView = value => {\n return value && value.ownerDocument && value.ownerDocument.defaultView || null;\n};\n/**\n * Check if a DOM node is a comment node.\n */\nvar isDOMComment = value => {\n return isDOMNode(value) && value.nodeType === 8;\n};\n/**\n * Check if a DOM node is an element node.\n */\nvar isDOMElement = value => {\n return isDOMNode(value) && value.nodeType === 1;\n};\n/**\n * Check if a value is a DOM node.\n */\nvar isDOMNode = value => {\n var window = getDefaultView(value);\n return !!window && value instanceof window.Node;\n};\n/**\n * Check if a value is a DOM selection.\n */\nvar isDOMSelection = value => {\n var window = value && value.anchorNode && getDefaultView(value.anchorNode);\n return !!window && value instanceof window.Selection;\n};\n/**\n * Check if a DOM node is an element node.\n */\nvar isDOMText = value => {\n return isDOMNode(value) && value.nodeType === 3;\n};\n/**\n * Checks whether a paste event is a plaintext-only event.\n */\nvar isPlainTextOnlyPaste = event => {\n return event.clipboardData && event.clipboardData.getData('text/plain') !== '' && event.clipboardData.types.length === 1;\n};\n/**\n * Normalize a DOM point so that it always refers to a text node.\n */\nvar normalizeDOMPoint = domPoint => {\n var [node, offset] = domPoint;\n // If it's an element node, its offset refers to the index of its children\n // including comment nodes, so try to find the right text child node.\n if (isDOMElement(node) && node.childNodes.length) {\n var isLast = offset === node.childNodes.length;\n var index = isLast ? offset - 1 : offset;\n [node, index] = getEditableChildAndIndex(node, index, isLast ? 'backward' : 'forward');\n // If the editable child found is in front of input offset, we instead seek to its end\n isLast = index < offset;\n // If the node has children, traverse until we have a leaf node. Leaf nodes\n // can be either text nodes, or other void DOM nodes.\n while (isDOMElement(node) && node.childNodes.length) {\n var i = isLast ? node.childNodes.length - 1 : 0;\n node = getEditableChild(node, i, isLast ? 'backward' : 'forward');\n }\n // Determine the new offset inside the text node.\n offset = isLast && node.textContent != null ? node.textContent.length : 0;\n }\n // Return the node and offset.\n return [node, offset];\n};\n/**\n * Determines whether the active element is nested within a shadowRoot\n */\nvar hasShadowRoot = node => {\n var parent = node && node.parentNode;\n while (parent) {\n if (parent.toString() === '[object ShadowRoot]') {\n return true;\n }\n parent = parent.parentNode;\n }\n return false;\n};\n/**\n * Get the nearest editable child and index at `index` in a `parent`, preferring\n * `direction`.\n */\nvar getEditableChildAndIndex = (parent, index, direction) => {\n var {\n childNodes\n } = parent;\n var child = childNodes[index];\n var i = index;\n var triedForward = false;\n var triedBackward = false;\n // While the child is a comment node, or an element node with no children,\n // keep iterating to find a sibling non-void, non-comment node.\n while (isDOMComment(child) || isDOMElement(child) && child.childNodes.length === 0 || isDOMElement(child) && child.getAttribute('contenteditable') === 'false') {\n if (triedForward && triedBackward) {\n break;\n }\n if (i >= childNodes.length) {\n triedForward = true;\n i = index - 1;\n direction = 'backward';\n continue;\n }\n if (i < 0) {\n triedBackward = true;\n i = index + 1;\n direction = 'forward';\n continue;\n }\n child = childNodes[i];\n index = i;\n i += direction === 'forward' ? 1 : -1;\n }\n return [child, index];\n};\n/**\n * Get the nearest editable child at `index` in a `parent`, preferring\n * `direction`.\n */\nvar getEditableChild = (parent, index, direction) => {\n var [child] = getEditableChildAndIndex(parent, index, direction);\n return child;\n};\n/**\n * Get a plaintext representation of the content of a node, accounting for block\n * elements which get a newline appended.\n *\n * The domNode must be attached to the DOM.\n */\nvar getPlainText = domNode => {\n var text = '';\n if (isDOMText(domNode) && domNode.nodeValue) {\n return domNode.nodeValue;\n }\n if (isDOMElement(domNode)) {\n for (var childNode of Array.from(domNode.childNodes)) {\n text += getPlainText(childNode);\n }\n var display = getComputedStyle(domNode).getPropertyValue('display');\n if (display === 'block' || display === 'list' || domNode.tagName === 'BR') {\n text += '\\n';\n }\n }\n return text;\n};\n/**\n * Get x-slate-fragment attribute from data-slate-fragment\n */\nvar catchSlateFragment = /data-slate-fragment=\"(.+?)\"/m;\nvar getSlateFragmentAttribute = dataTransfer => {\n var htmlData = dataTransfer.getData('text/html');\n var [, fragment] = htmlData.match(catchSlateFragment) || [];\n return fragment;\n};\n/**\n * Get the dom selection from Shadow Root if possible, otherwise from the document\n */\nvar getSelection = root => {\n if (root.getSelection != null) {\n return root.getSelection();\n }\n return document.getSelection();\n};\n/**\n * Check whether a mutation originates from a editable element inside the editor.\n */\nvar isTrackedMutation = (editor, mutation, batch) => {\n var {\n target\n } = mutation;\n if (isDOMElement(target) && target.matches('[contentEditable=\"false\"]')) {\n return false;\n }\n var {\n document\n } = ReactEditor.getWindow(editor);\n if (document.contains(target)) {\n return ReactEditor.hasDOMNode(editor, target, {\n editable: true\n });\n }\n var parentMutation = batch.find(_ref => {\n var {\n addedNodes,\n removedNodes\n } = _ref;\n for (var node of addedNodes) {\n if (node === target || node.contains(target)) {\n return true;\n }\n }\n for (var _node of removedNodes) {\n if (_node === target || _node.contains(target)) {\n return true;\n }\n }\n });\n if (!parentMutation || parentMutation === mutation) {\n return false;\n }\n // Target add/remove is tracked. Track the mutation if we track the parent mutation.\n return isTrackedMutation(editor, parentMutation, batch);\n};\n/**\n * Retrieves the deepest active element in the DOM, considering nested shadow DOMs.\n */\nvar getActiveElement = () => {\n var activeElement = document.activeElement;\n while ((_activeElement = activeElement) !== null && _activeElement !== void 0 && _activeElement.shadowRoot && (_activeElement$shadow = activeElement.shadowRoot) !== null && _activeElement$shadow !== void 0 && _activeElement$shadow.activeElement) {\n var _activeElement, _activeElement$shadow, _activeElement2;\n activeElement = (_activeElement2 = activeElement) === null || _activeElement2 === void 0 || (_activeElement2 = _activeElement2.shadowRoot) === null || _activeElement2 === void 0 ? void 0 : _activeElement2.activeElement;\n }\n return activeElement;\n};\n/**\n * @returns `true` if `otherNode` is before `node` in the document; otherwise, `false`.\n */\nvar isBefore = (node, otherNode) => Boolean(node.compareDocumentPosition(otherNode) & DOMNode.DOCUMENT_POSITION_PRECEDING);\n/**\n * @returns `true` if `otherNode` is after `node` in the document; otherwise, `false`.\n */\nvar isAfter = (node, otherNode) => Boolean(node.compareDocumentPosition(otherNode) & DOMNode.DOCUMENT_POSITION_FOLLOWING);\n\n/**\n * An auto-incrementing identifier for keys.\n */\nvar n = 0;\n/**\n * A class that keeps track of a key string. We use a full class here because we\n * want to be able to use them as keys in `WeakMap` objects.\n */\nclass Key {\n constructor() {\n _defineProperty(this, \"id\", void 0);\n this.id = \"\".concat(n++);\n }\n}\n\n// eslint-disable-next-line no-redeclare\nvar ReactEditor = {\n androidPendingDiffs: editor => EDITOR_TO_PENDING_DIFFS.get(editor),\n androidScheduleFlush: editor => {\n var _EDITOR_TO_SCHEDULE_F;\n (_EDITOR_TO_SCHEDULE_F = EDITOR_TO_SCHEDULE_FLUSH.get(editor)) === null || _EDITOR_TO_SCHEDULE_F === void 0 || _EDITOR_TO_SCHEDULE_F();\n },\n blur: editor => {\n var el = ReactEditor.toDOMNode(editor, editor);\n var root = ReactEditor.findDocumentOrShadowRoot(editor);\n IS_FOCUSED.set(editor, false);\n if (root.activeElement === el) {\n el.blur();\n }\n },\n deselect: editor => {\n var {\n selection\n } = editor;\n var root = ReactEditor.findDocumentOrShadowRoot(editor);\n var domSelection = getSelection(root);\n if (domSelection && domSelection.rangeCount > 0) {\n domSelection.removeAllRanges();\n }\n if (selection) {\n Transforms.deselect(editor);\n }\n },\n findDocumentOrShadowRoot: editor => {\n var el = ReactEditor.toDOMNode(editor, editor);\n var root = el.getRootNode();\n if (root instanceof Document || root instanceof ShadowRoot) {\n return root;\n }\n return el.ownerDocument;\n },\n findEventRange: (editor, event) => {\n if ('nativeEvent' in event) {\n event = event.nativeEvent;\n }\n var {\n clientX: x,\n clientY: y,\n target\n } = event;\n if (x == null || y == null) {\n throw new Error(\"Cannot resolve a Slate range from a DOM event: \".concat(event));\n }\n var node = ReactEditor.toSlateNode(editor, event.target);\n var path = ReactEditor.findPath(editor, node);\n // If the drop target is inside a void node, move it into either the\n // next or previous node, depending on which side the `x` and `y`\n // coordinates are closest to.\n if (Element$1.isElement(node) && Editor.isVoid(editor, node)) {\n var rect = target.getBoundingClientRect();\n var isPrev = editor.isInline(node) ? x - rect.left < rect.left + rect.width - x : y - rect.top < rect.top + rect.height - y;\n var edge = Editor.point(editor, path, {\n edge: isPrev ? 'start' : 'end'\n });\n var point = isPrev ? Editor.before(editor, edge) : Editor.after(editor, edge);\n if (point) {\n var _range = Editor.range(editor, point);\n return _range;\n }\n }\n // Else resolve a range from the caret position where the drop occured.\n var domRange;\n var {\n document\n } = ReactEditor.getWindow(editor);\n // COMPAT: In Firefox, `caretRangeFromPoint` doesn't exist. (2016/07/25)\n if (document.caretRangeFromPoint) {\n domRange = document.caretRangeFromPoint(x, y);\n } else {\n var position = document.caretPositionFromPoint(x, y);\n if (position) {\n domRange = document.createRange();\n domRange.setStart(position.offsetNode, position.offset);\n domRange.setEnd(position.offsetNode, position.offset);\n }\n }\n if (!domRange) {\n throw new Error(\"Cannot resolve a Slate range from a DOM event: \".concat(event));\n }\n // Resolve a Slate range from the DOM range.\n var range = ReactEditor.toSlateRange(editor, domRange, {\n exactMatch: false,\n suppressThrow: false\n });\n return range;\n },\n findKey: (editor, node) => {\n var key = NODE_TO_KEY.get(node);\n if (!key) {\n key = new Key();\n NODE_TO_KEY.set(node, key);\n }\n return key;\n },\n findPath: (editor, node) => {\n var path = [];\n var child = node;\n while (true) {\n var parent = NODE_TO_PARENT.get(child);\n if (parent == null) {\n if (Editor.isEditor(child)) {\n return path;\n } else {\n break;\n }\n }\n var i = NODE_TO_INDEX.get(child);\n if (i == null) {\n break;\n }\n path.unshift(i);\n child = parent;\n }\n throw new Error(\"Unable to find the path for Slate node: \".concat(Scrubber.stringify(node)));\n },\n focus: function focus(editor) {\n var options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {\n retries: 5\n };\n // Return if already focused\n if (IS_FOCUSED.get(editor)) {\n return;\n }\n // Retry setting focus if the editor has pending operations.\n // The DOM (selection) is unstable while changes are applied.\n // Retry until retries are exhausted or editor is focused.\n if (options.retries <= 0) {\n throw new Error('Could not set focus, editor seems stuck with pending operations');\n }\n if (editor.operations.length > 0) {\n setTimeout(() => {\n ReactEditor.focus(editor, {\n retries: options.retries - 1\n });\n }, 10);\n return;\n }\n var el = ReactEditor.toDOMNode(editor, editor);\n var root = ReactEditor.findDocumentOrShadowRoot(editor);\n if (root.activeElement !== el) {\n // Ensure that the DOM selection state is set to the editor's selection\n if (editor.selection && root instanceof Document) {\n var domSelection = getSelection(root);\n var domRange = ReactEditor.toDOMRange(editor, editor.selection);\n domSelection === null || domSelection === void 0 || domSelection.removeAllRanges();\n domSelection === null || domSelection === void 0 || domSelection.addRange(domRange);\n }\n // Create a new selection in the top of the document if missing\n if (!editor.selection) {\n Transforms.select(editor, Editor.start(editor, []));\n }\n // IS_FOCUSED should be set before calling el.focus() to ensure that\n // FocusedContext is updated to the correct value\n IS_FOCUSED.set(editor, true);\n el.focus({\n preventScroll: true\n });\n }\n },\n getWindow: editor => {\n var window = EDITOR_TO_WINDOW.get(editor);\n if (!window) {\n throw new Error('Unable to find a host window element for this editor');\n }\n return window;\n },\n hasDOMNode: function hasDOMNode(editor, target) {\n var options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n var {\n editable = false\n } = options;\n var editorEl = ReactEditor.toDOMNode(editor, editor);\n var targetEl;\n // COMPAT: In Firefox, reading `target.nodeType` will throw an error if\n // target is originating from an internal \"restricted\" element (e.g. a\n // stepper arrow on a number input). (2018/05/04)\n // https://github.com/ianstormtaylor/slate/issues/1819\n try {\n targetEl = isDOMElement(target) ? target : target.parentElement;\n } catch (err) {\n if (err instanceof Error && !err.message.includes('Permission denied to access property \"nodeType\"')) {\n throw err;\n }\n }\n if (!targetEl) {\n return false;\n }\n return targetEl.closest(\"[data-slate-editor]\") === editorEl && (!editable || targetEl.isContentEditable ? true : typeof targetEl.isContentEditable === 'boolean' &&\n // isContentEditable exists only on HTMLElement, and on other nodes it will be undefined\n // this is the core logic that lets you know you got the right editor.selection instead of null when editor is contenteditable=\"false\"(readOnly)\n targetEl.closest('[contenteditable=\"false\"]') === editorEl || !!targetEl.getAttribute('data-slate-zero-width'));\n },\n hasEditableTarget: (editor, target) => isDOMNode(target) && ReactEditor.hasDOMNode(editor, target, {\n editable: true\n }),\n hasRange: (editor, range) => {\n var {\n anchor,\n focus\n } = range;\n return Editor.hasPath(editor, anchor.path) && Editor.hasPath(editor, focus.path);\n },\n hasSelectableTarget: (editor, target) => ReactEditor.hasEditableTarget(editor, target) || ReactEditor.isTargetInsideNonReadonlyVoid(editor, target),\n hasTarget: (editor, target) => isDOMNode(target) && ReactEditor.hasDOMNode(editor, target),\n insertData: (editor, data) => {\n editor.insertData(data);\n },\n insertFragmentData: (editor, data) => editor.insertFragmentData(data),\n insertTextData: (editor, data) => editor.insertTextData(data),\n isComposing: editor => {\n return !!IS_COMPOSING.get(editor);\n },\n isFocused: editor => !!IS_FOCUSED.get(editor),\n isReadOnly: editor => !!IS_READ_ONLY.get(editor),\n isTargetInsideNonReadonlyVoid: (editor, target) => {\n if (IS_READ_ONLY.get(editor)) return false;\n var slateNode = ReactEditor.hasTarget(editor, target) && ReactEditor.toSlateNode(editor, target);\n return Element$1.isElement(slateNode) && Editor.isVoid(editor, slateNode);\n },\n setFragmentData: (editor, data, originEvent) => editor.setFragmentData(data, originEvent),\n toDOMNode: (editor, node) => {\n var KEY_TO_ELEMENT = EDITOR_TO_KEY_TO_ELEMENT.get(editor);\n var domNode = Editor.isEditor(node) ? EDITOR_TO_ELEMENT.get(editor) : KEY_TO_ELEMENT === null || KEY_TO_ELEMENT === void 0 ? void 0 : KEY_TO_ELEMENT.get(ReactEditor.findKey(editor, node));\n if (!domNode) {\n throw new Error(\"Cannot resolve a DOM node from Slate node: \".concat(Scrubber.stringify(node)));\n }\n return domNode;\n },\n toDOMPoint: (editor, point) => {\n var [node] = Editor.node(editor, point.path);\n var el = ReactEditor.toDOMNode(editor, node);\n var domPoint;\n // If we're inside a void node, force the offset to 0, otherwise the zero\n // width spacing character will result in an incorrect offset of 1\n if (Editor.void(editor, {\n at: point\n })) {\n point = {\n path: point.path,\n offset: 0\n };\n }\n // For each leaf, we need to isolate its content, which means filtering\n // to its direct text and zero-width spans. (We have to filter out any\n // other siblings that may have been rendered alongside them.)\n var selector = \"[data-slate-string], [data-slate-zero-width]\";\n var texts = Array.from(el.querySelectorAll(selector));\n var start = 0;\n for (var i = 0; i < texts.length; i++) {\n var text = texts[i];\n var domNode = text.childNodes[0];\n if (domNode == null || domNode.textContent == null) {\n continue;\n }\n var {\n length\n } = domNode.textContent;\n var attr = text.getAttribute('data-slate-length');\n var trueLength = attr == null ? length : parseInt(attr, 10);\n var end = start + trueLength;\n // Prefer putting the selection inside the mark placeholder to ensure\n // composed text is displayed with the correct marks.\n var nextText = texts[i + 1];\n if (point.offset === end && nextText !== null && nextText !== void 0 && nextText.hasAttribute('data-slate-mark-placeholder')) {\n var _nextText$textContent;\n var domText = nextText.childNodes[0];\n domPoint = [\n // COMPAT: If we don't explicity set the dom point to be on the actual\n // dom text element, chrome will put the selection behind the actual dom\n // text element, causing domRange.getBoundingClientRect() calls on a collapsed\n // selection to return incorrect zero values (https://bugs.chromium.org/p/chromium/issues/detail?id=435438)\n // which will cause issues when scrolling to it.\n domText instanceof DOMText ? domText : nextText, (_nextText$textContent = nextText.textContent) !== null && _nextText$textContent !== void 0 && _nextText$textContent.startsWith('\\uFEFF') ? 1 : 0];\n break;\n }\n if (point.offset <= end) {\n var offset = Math.min(length, Math.max(0, point.offset - start));\n domPoint = [domNode, offset];\n break;\n }\n start = end;\n }\n if (!domPoint) {\n throw new Error(\"Cannot resolve a DOM point from Slate point: \".concat(Scrubber.stringify(point)));\n }\n return domPoint;\n },\n toDOMRange: (editor, range) => {\n var {\n anchor,\n focus\n } = range;\n var isBackward = Range.isBackward(range);\n var domAnchor = ReactEditor.toDOMPoint(editor, anchor);\n var domFocus = Range.isCollapsed(range) ? domAnchor : ReactEditor.toDOMPoint(editor, focus);\n var window = ReactEditor.getWindow(editor);\n var domRange = window.document.createRange();\n var [startNode, startOffset] = isBackward ? domFocus : domAnchor;\n var [endNode, endOffset] = isBackward ? domAnchor : domFocus;\n // A slate Point at zero-width Leaf always has an offset of 0 but a native DOM selection at\n // zero-width node has an offset of 1 so we have to check if we are in a zero-width node and\n // adjust the offset accordingly.\n var startEl = isDOMElement(startNode) ? startNode : startNode.parentElement;\n var isStartAtZeroWidth = !!startEl.getAttribute('data-slate-zero-width');\n var endEl = isDOMElement(endNode) ? endNode : endNode.parentElement;\n var isEndAtZeroWidth = !!endEl.getAttribute('data-slate-zero-width');\n domRange.setStart(startNode, isStartAtZeroWidth ? 1 : startOffset);\n domRange.setEnd(endNode, isEndAtZeroWidth ? 1 : endOffset);\n return domRange;\n },\n toSlateNode: (editor, domNode) => {\n var domEl = isDOMElement(domNode) ? domNode : domNode.parentElement;\n if (domEl && !domEl.hasAttribute('data-slate-node')) {\n domEl = domEl.closest(\"[data-slate-node]\");\n }\n var node = domEl ? ELEMENT_TO_NODE.get(domEl) : null;\n if (!node) {\n throw new Error(\"Cannot resolve a Slate node from DOM node: \".concat(domEl));\n }\n return node;\n },\n toSlatePoint: (editor, domPoint, options) => {\n var {\n exactMatch,\n suppressThrow,\n searchDirection = 'backward'\n } = options;\n var [nearestNode, nearestOffset] = exactMatch ? domPoint : normalizeDOMPoint(domPoint);\n var parentNode = nearestNode.parentNode;\n var textNode = null;\n var offset = 0;\n if (parentNode) {\n var _domNode$textContent, _domNode$textContent2;\n var editorEl = ReactEditor.toDOMNode(editor, editor);\n var potentialVoidNode = parentNode.closest('[data-slate-void=\"true\"]');\n // Need to ensure that the closest void node is actually a void node\n // within this editor, and not a void node within some parent editor. This can happen\n // if this editor is within a void node of another editor (\"nested editors\", like in\n // the \"Editable Voids\" example on the docs site).\n var voidNode = potentialVoidNode && editorEl.contains(potentialVoidNode) ? potentialVoidNode : null;\n var potentialNonEditableNode = parentNode.closest('[contenteditable=\"false\"]');\n var nonEditableNode = potentialNonEditableNode && editorEl.contains(potentialNonEditableNode) ? potentialNonEditableNode : null;\n var leafNode = parentNode.closest('[data-slate-leaf]');\n var domNode = null;\n // Calculate how far into the text node the `nearestNode` is, so that we\n // can determine what the offset relative to the text node is.\n if (leafNode) {\n textNode = leafNode.closest('[data-slate-node=\"text\"]');\n if (textNode) {\n var window = ReactEditor.getWindow(editor);\n var range = window.document.createRange();\n range.setStart(textNode, 0);\n range.setEnd(nearestNode, nearestOffset);\n var contents = range.cloneContents();\n var removals = [...Array.prototype.slice.call(contents.querySelectorAll('[data-slate-zero-width]')), ...Array.prototype.slice.call(contents.querySelectorAll('[contenteditable=false]'))];\n removals.forEach(el => {\n // COMPAT: While composing at the start of a text node, some keyboards put\n // the text content inside the zero width space.\n if (IS_ANDROID && !exactMatch && el.hasAttribute('data-slate-zero-width') && el.textContent.length > 0 && el.textContext !== '\\uFEFF') {\n if (el.textContent.startsWith('\\uFEFF')) {\n el.textContent = el.textContent.slice(1);\n }\n return;\n }\n el.parentNode.removeChild(el);\n });\n // COMPAT: Edge has a bug where Range.prototype.toString() will\n // convert \\n into \\r\\n. The bug causes a loop when slate-react\n // attempts to reposition its cursor to match the native position. Use\n // textContent.length instead.\n // https://developer.microsoft.com/en-us/microsoft-edge/platform/issues/10291116/\n offset = contents.textContent.length;\n domNode = textNode;\n }\n } else if (voidNode) {\n // For void nodes, the element with the offset key will be a cousin, not an\n // ancestor, so find it by going down from the nearest void parent and taking the\n // first one that isn't inside a nested editor.\n var leafNodes = voidNode.querySelectorAll('[data-slate-leaf]');\n for (var index = 0; index < leafNodes.length; index++) {\n var current = leafNodes[index];\n if (ReactEditor.hasDOMNode(editor, current)) {\n leafNode = current;\n break;\n }\n }\n // COMPAT: In read-only editors the leaf is not rendered.\n if (!leafNode) {\n offset = 1;\n } else {\n textNode = leafNode.closest('[data-slate-node=\"text\"]');\n domNode = leafNode;\n offset = domNode.textContent.length;\n domNode.querySelectorAll('[data-slate-zero-width]').forEach(el => {\n offset -= el.textContent.length;\n });\n }\n } else if (nonEditableNode) {\n // Find the edge of the nearest leaf in `searchDirection`\n var getLeafNodes = node => node ? node.querySelectorAll(\n // Exclude leaf nodes in nested editors\n '[data-slate-leaf]:not(:scope [data-slate-editor] [data-slate-leaf])') : [];\n var elementNode = nonEditableNode.closest('[data-slate-node=\"element\"]');\n if (searchDirection === 'forward') {\n var _leafNodes$find;\n var _leafNodes = [...getLeafNodes(elementNode), ...getLeafNodes(elementNode === null || elementNode === void 0 ? void 0 : elementNode.nextElementSibling)];\n leafNode = (_leafNodes$find = _leafNodes.find(leaf => isAfter(nonEditableNode, leaf))) !== null && _leafNodes$find !== void 0 ? _leafNodes$find : null;\n } else {\n var _leafNodes2$findLast;\n var _leafNodes2 = [...getLeafNodes(elementNode === null || elementNode === void 0 ? void 0 : elementNode.previousElementSibling), ...getLeafNodes(elementNode)];\n leafNode = (_leafNodes2$findLast = _leafNodes2.findLast(leaf => isBefore(nonEditableNode, leaf))) !== null && _leafNodes2$findLast !== void 0 ? _leafNodes2$findLast : null;\n }\n if (leafNode) {\n textNode = leafNode.closest('[data-slate-node=\"text\"]');\n domNode = leafNode;\n if (searchDirection === 'forward') {\n offset = 0;\n } else {\n offset = domNode.textContent.length;\n domNode.querySelectorAll('[data-slate-zero-width]').forEach(el => {\n offset -= el.textContent.length;\n });\n }\n }\n }\n if (domNode && offset === domNode.textContent.length &&\n // COMPAT: Android IMEs might remove the zero width space while composing,\n // and we don't add it for line-breaks.\n IS_ANDROID && domNode.getAttribute('data-slate-zero-width') === 'z' && (_domNode$textContent = domNode.textContent) !== null && _domNode$textContent !== void 0 && _domNode$textContent.startsWith('\\uFEFF') && (\n // COMPAT: If the parent node is a Slate zero-width space, editor is\n // because the text node should have no characters. However, during IME\n // composition the ASCII characters will be prepended to the zero-width\n // space, so subtract 1 from the offset to account for the zero-width\n // space character.\n parentNode.hasAttribute('data-slate-zero-width') ||\n // COMPAT: In Firefox, `range.cloneContents()` returns an extra trailing '\\n'\n // when the document ends with a new-line character. This results in the offset\n // length being off by one, so we need to subtract one to account for this.\n IS_FIREFOX && (_domNode$textContent2 = domNode.textContent) !== null && _domNode$textContent2 !== void 0 && _domNode$textContent2.endsWith('\\n\\n'))) {\n offset--;\n }\n }\n if (IS_ANDROID && !textNode && !exactMatch) {\n var node = parentNode.hasAttribute('data-slate-node') ? parentNode : parentNode.closest('[data-slate-node]');\n if (node && ReactEditor.hasDOMNode(editor, node, {\n editable: true\n })) {\n var _slateNode = ReactEditor.toSlateNode(editor, node);\n var {\n path: _path,\n offset: _offset\n } = Editor.start(editor, ReactEditor.findPath(editor, _slateNode));\n if (!node.querySelector('[data-slate-leaf]')) {\n _offset = nearestOffset;\n }\n return {\n path: _path,\n offset: _offset\n };\n }\n }\n if (!textNode) {\n if (suppressThrow) {\n return null;\n }\n throw new Error(\"Cannot resolve a Slate point from DOM point: \".concat(domPoint));\n }\n // COMPAT: If someone is clicking from one Slate editor into another,\n // the select event fires twice, once for the old editor's `element`\n // first, and then afterwards for the correct `element`. (2017/03/03)\n var slateNode = ReactEditor.toSlateNode(editor, textNode);\n var path = ReactEditor.findPath(editor, slateNode);\n return {\n path,\n offset\n };\n },\n toSlateRange: (editor, domRange, options) => {\n var _focusNode$textConten;\n var {\n exactMatch,\n suppressThrow\n } = options;\n var el = isDOMSelection(domRange) ? domRange.anchorNode : domRange.startContainer;\n var anchorNode;\n var anchorOffset;\n var focusNode;\n var focusOffset;\n var isCollapsed;\n if (el) {\n if (isDOMSelection(domRange)) {\n // COMPAT: In firefox the normal seletion way does not work\n // (https://github.com/ianstormtaylor/slate/pull/5486#issue-1820720223)\n if (IS_FIREFOX && domRange.rangeCount > 1) {\n focusNode = domRange.focusNode; // Focus node works fine\n var firstRange = domRange.getRangeAt(0);\n var lastRange = domRange.getRangeAt(domRange.rangeCount - 1);\n // Here we are in the contenteditable mode of a table in firefox\n if (focusNode instanceof HTMLTableRowElement && firstRange.startContainer instanceof HTMLTableRowElement && lastRange.startContainer instanceof HTMLTableRowElement) {\n // HTMLElement, becouse Element is a slate element\n function getLastChildren(element) {\n if (element.childElementCount > 0) {\n return getLastChildren(element.children[0]);\n } else {\n return element;\n }\n }\n var firstNodeRow = firstRange.startContainer;\n var lastNodeRow = lastRange.startContainer;\n // This should never fail as \"The HTMLElement interface represents any HTML element.\"\n var firstNode = getLastChildren(firstNodeRow.children[firstRange.startOffset]);\n var lastNode = getLastChildren(lastNodeRow.children[lastRange.startOffset]);\n // Zero, as we allways take the right one as the anchor point\n focusOffset = 0;\n if (lastNode.childNodes.length > 0) {\n anchorNode = lastNode.childNodes[0];\n } else {\n anchorNode = lastNode;\n }\n if (firstNode.childNodes.length > 0) {\n focusNode = firstNode.childNodes[0];\n } else {\n focusNode = firstNode;\n }\n if (lastNode instanceof HTMLElement) {\n anchorOffset = lastNode.innerHTML.length;\n } else {\n // Fallback option\n anchorOffset = 0;\n }\n } else {\n // This is the read only mode of a firefox table\n // Right to left\n if (firstRange.startContainer === focusNode) {\n anchorNode = lastRange.endContainer;\n anchorOffset = lastRange.endOffset;\n focusOffset = firstRange.startOffset;\n } else {\n // Left to right\n anchorNode = firstRange.startContainer;\n anchorOffset = firstRange.endOffset;\n focusOffset = lastRange.startOffset;\n }\n }\n } else {\n anchorNode = domRange.anchorNode;\n anchorOffset = domRange.anchorOffset;\n focusNode = domRange.focusNode;\n focusOffset = domRange.focusOffset;\n }\n // COMPAT: There's a bug in chrome that always returns `true` for\n // `isCollapsed` for a Selection that comes from a ShadowRoot.\n // (2020/08/08)\n // https://bugs.chromium.org/p/chromium/issues/detail?id=447523\n // IsCollapsed might not work in firefox, but this will\n if (IS_CHROME && hasShadowRoot(anchorNode) || IS_FIREFOX) {\n isCollapsed = domRange.anchorNode === domRange.focusNode && domRange.anchorOffset === domRange.focusOffset;\n } else {\n isCollapsed = domRange.isCollapsed;\n }\n } else {\n anchorNode = domRange.startContainer;\n anchorOffset = domRange.startOffset;\n focusNode = domRange.endContainer;\n focusOffset = domRange.endOffset;\n isCollapsed = domRange.collapsed;\n }\n }\n if (anchorNode == null || focusNode == null || anchorOffset == null || focusOffset == null) {\n throw new Error(\"Cannot resolve a Slate range from DOM range: \".concat(domRange));\n }\n // COMPAT: Firefox sometimes includes an extra \\n (rendered by TextString\n // when isTrailing is true) in the focusOffset, resulting in an invalid\n // Slate point. (2023/11/01)\n if (IS_FIREFOX && (_focusNode$textConten = focusNode.textContent) !== null && _focusNode$textConten !== void 0 && _focusNode$textConten.endsWith('\\n\\n') && focusOffset === focusNode.textContent.length) {\n focusOffset--;\n }\n var anchor = ReactEditor.toSlatePoint(editor, [anchorNode, anchorOffset], {\n exactMatch,\n suppressThrow\n });\n if (!anchor) {\n return null;\n }\n var focusBeforeAnchor = isBefore(anchorNode, focusNode) || anchorNode === focusNode && focusOffset < anchorOffset;\n var focus = isCollapsed ? anchor : ReactEditor.toSlatePoint(editor, [focusNode, focusOffset], {\n exactMatch,\n suppressThrow,\n searchDirection: focusBeforeAnchor ? 'forward' : 'backward'\n });\n if (!focus) {\n return null;\n }\n var range = {\n anchor: anchor,\n focus: focus\n };\n // if the selection is a hanging range that ends in a void\n // and the DOM focus is an Element\n // (meaning that the selection ends before the element)\n // unhang the range to avoid mistakenly including the void\n if (Range.isExpanded(range) && Range.isForward(range) && isDOMElement(focusNode) && Editor.void(editor, {\n at: range.focus,\n mode: 'highest'\n })) {\n range = Editor.unhangRange(editor, range, {\n voids: true\n });\n }\n return range;\n }\n};\n\n/**\n * Check whether a text diff was applied in a way we can perform the pending action on /\n * recover the pending selection.\n */\nfunction verifyDiffState(editor, textDiff) {\n var {\n path,\n diff\n } = textDiff;\n if (!Editor.hasPath(editor, path)) {\n return false;\n }\n var node = Node.get(editor, path);\n if (!Text$1.isText(node)) {\n return false;\n }\n if (diff.start !== node.text.length || diff.text.length === 0) {\n return node.text.slice(diff.start, diff.start + diff.text.length) === diff.text;\n }\n var nextPath = Path.next(path);\n if (!Editor.hasPath(editor, nextPath)) {\n return false;\n }\n var nextNode = Node.get(editor, nextPath);\n return Text$1.isText(nextNode) && nextNode.text.startsWith(diff.text);\n}\nfunction applyStringDiff(text) {\n for (var _len = arguments.length, diffs = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {\n diffs[_key - 1] = arguments[_key];\n }\n return diffs.reduce((text, diff) => text.slice(0, diff.start) + diff.text + text.slice(diff.end), text);\n}\nfunction longestCommonPrefixLength(str, another) {\n var length = Math.min(str.length, another.length);\n for (var i = 0; i < length; i++) {\n if (str.charAt(i) !== another.charAt(i)) {\n return i;\n }\n }\n return length;\n}\nfunction longestCommonSuffixLength(str, another, max) {\n var length = Math.min(str.length, another.length, max);\n for (var i = 0; i < length; i++) {\n if (str.charAt(str.length - i - 1) !== another.charAt(another.length - i - 1)) {\n return i;\n }\n }\n return length;\n}\n/**\n * Remove redundant changes from the diff so that it spans the minimal possible range\n */\nfunction normalizeStringDiff(targetText, diff) {\n var {\n start,\n end,\n text\n } = diff;\n var removedText = targetText.slice(start, end);\n var prefixLength = longestCommonPrefixLength(removedText, text);\n var max = Math.min(removedText.length - prefixLength, text.length - prefixLength);\n var suffixLength = longestCommonSuffixLength(removedText, text, max);\n var normalized = {\n start: start + prefixLength,\n end: end - suffixLength,\n text: text.slice(prefixLength, text.length - suffixLength)\n };\n if (normalized.start === normalized.end && normalized.text.length === 0) {\n return null;\n }\n return normalized;\n}\n/**\n * Return a string diff that is equivalent to applying b after a spanning the range of\n * both changes\n */\nfunction mergeStringDiffs(targetText, a, b) {\n var start = Math.min(a.start, b.start);\n var overlap = Math.max(0, Math.min(a.start + a.text.length, b.end) - b.start);\n var applied = applyStringDiff(targetText, a, b);\n var sliceEnd = Math.max(b.start + b.text.length, a.start + a.text.length + (a.start + a.text.length > b.start ? b.text.length : 0) - overlap);\n var text = applied.slice(start, sliceEnd);\n var end = Math.max(a.end, b.end - a.text.length + (a.end - a.start));\n return normalizeStringDiff(targetText, {\n start,\n end,\n text\n });\n}\n/**\n * Get the slate range the text diff spans.\n */\nfunction targetRange(textDiff) {\n var {\n path,\n diff\n } = textDiff;\n return {\n anchor: {\n path,\n offset: diff.start\n },\n focus: {\n path,\n offset: diff.end\n }\n };\n}\n/**\n * Normalize a 'pending point' a.k.a a point based on the dom state before applying\n * the pending diffs. Since the pending diffs might have been inserted with different\n * marks we have to 'walk' the offset from the starting position to ensure we still\n * have a valid point inside the document\n */\nfunction normalizePoint(editor, point) {\n var {\n path,\n offset\n } = point;\n if (!Editor.hasPath(editor, path)) {\n return null;\n }\n var leaf = Node.get(editor, path);\n if (!Text$1.isText(leaf)) {\n return null;\n }\n var parentBlock = Editor.above(editor, {\n match: n => Element$1.isElement(n) && Editor.isBlock(editor, n),\n at: path\n });\n if (!parentBlock) {\n return null;\n }\n while (offset > leaf.text.length) {\n var entry = Editor.next(editor, {\n at: path,\n match: Text$1.isText\n });\n if (!entry || !Path.isDescendant(entry[1], parentBlock[1])) {\n return null;\n }\n offset -= leaf.text.length;\n leaf = entry[0];\n path = entry[1];\n }\n return {\n path,\n offset\n };\n}\n/**\n * Normalize a 'pending selection' to ensure it's valid in the current document state.\n */\nfunction normalizeRange(editor, range) {\n var anchor = normalizePoint(editor, range.anchor);\n if (!anchor) {\n return null;\n }\n if (Range.isCollapsed(range)) {\n return {\n anchor,\n focus: anchor\n };\n }\n var focus = normalizePoint(editor, range.focus);\n if (!focus) {\n return null;\n }\n return {\n anchor,\n focus\n };\n}\nfunction transformPendingPoint(editor, point, op) {\n var pendingDiffs = EDITOR_TO_PENDING_DIFFS.get(editor);\n var textDiff = pendingDiffs === null || pendingDiffs === void 0 ? void 0 : pendingDiffs.find(_ref => {\n var {\n path\n } = _ref;\n return Path.equals(path, point.path);\n });\n if (!textDiff || point.offset <= textDiff.diff.start) {\n return Point.transform(point, op, {\n affinity: 'backward'\n });\n }\n var {\n diff\n } = textDiff;\n // Point references location inside the diff => transform the point based on the location\n // the diff will be applied to and add the offset inside the diff.\n if (point.offset <= diff.start + diff.text.length) {\n var _anchor = {\n path: point.path,\n offset: diff.start\n };\n var _transformed = Point.transform(_anchor, op, {\n affinity: 'backward'\n });\n if (!_transformed) {\n return null;\n }\n return {\n path: _transformed.path,\n offset: _transformed.offset + point.offset - diff.start\n };\n }\n // Point references location after the diff\n var anchor = {\n path: point.path,\n offset: point.offset - diff.text.length + diff.end - diff.start\n };\n var transformed = Point.transform(anchor, op, {\n affinity: 'backward'\n });\n if (!transformed) {\n return null;\n }\n if (op.type === 'split_node' && Path.equals(op.path, point.path) && anchor.offset < op.position && diff.start < op.position) {\n return transformed;\n }\n return {\n path: transformed.path,\n offset: transformed.offset + diff.text.length - diff.end + diff.start\n };\n}\nfunction transformPendingRange(editor, range, op) {\n var anchor = transformPendingPoint(editor, range.anchor, op);\n if (!anchor) {\n return null;\n }\n if (Range.isCollapsed(range)) {\n return {\n anchor,\n focus: anchor\n };\n }\n var focus = transformPendingPoint(editor, range.focus, op);\n if (!focus) {\n return null;\n }\n return {\n anchor,\n focus\n };\n}\nfunction transformTextDiff(textDiff, op) {\n var {\n path,\n diff,\n id\n } = textDiff;\n switch (op.type) {\n case 'insert_text':\n {\n if (!Path.equals(op.path, path) || op.offset >= diff.end) {\n return textDiff;\n }\n if (op.offset <= diff.start) {\n return {\n diff: {\n start: op.text.length + diff.start,\n end: op.text.length + diff.end,\n text: diff.text\n },\n id,\n path\n };\n }\n return {\n diff: {\n start: diff.start,\n end: diff.end + op.text.length,\n text: diff.text\n },\n id,\n path\n };\n }\n case 'remove_text':\n {\n if (!Path.equals(op.path, path) || op.offset >= diff.end) {\n return textDiff;\n }\n if (op.offset + op.text.length <= diff.start) {\n return {\n diff: {\n start: diff.start - op.text.length,\n end: diff.end - op.text.length,\n text: diff.text\n },\n id,\n path\n };\n }\n return {\n diff: {\n start: diff.start,\n end: diff.end - op.text.length,\n text: diff.text\n },\n id,\n path\n };\n }\n case 'split_node':\n {\n if (!Path.equals(op.path, path) || op.position >= diff.end) {\n return {\n diff,\n id,\n path: Path.transform(path, op, {\n affinity: 'backward'\n })\n };\n }\n if (op.position > diff.start) {\n return {\n diff: {\n start: diff.start,\n end: Math.min(op.position, diff.end),\n text: diff.text\n },\n id,\n path\n };\n }\n return {\n diff: {\n start: diff.start - op.position,\n end: diff.end - op.position,\n text: diff.text\n },\n id,\n path: Path.transform(path, op, {\n affinity: 'forward'\n })\n };\n }\n case 'merge_node':\n {\n if (!Path.equals(op.path, path)) {\n return {\n diff,\n id,\n path: Path.transform(path, op)\n };\n }\n return {\n diff: {\n start: diff.start + op.position,\n end: diff.end + op.position,\n text: diff.text\n },\n id,\n path: Path.transform(path, op)\n };\n }\n }\n var newPath = Path.transform(path, op);\n if (!newPath) {\n return null;\n }\n return {\n diff,\n path: newPath,\n id\n };\n}\n\nfunction ownKeys$6(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$6(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$6(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$6(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\n// https://github.com/facebook/draft-js/blob/main/src/component/handlers/composition/DraftEditorCompositionHandler.js#L41\n// When using keyboard English association function, conpositionEnd triggered too fast, resulting in after `insertText` still maintain association state.\nvar RESOLVE_DELAY = 25;\n// Time with no user interaction before the current user action is considered as done.\nvar FLUSH_DELAY = 200;\n// Replace with `const debug = console.log` to debug\nvar debug = function debug() {};\n// Type guard to check if a value is a DataTransfer\nvar isDataTransfer = value => (value === null || value === void 0 ? void 0 : value.constructor.name) === 'DataTransfer';\nfunction createAndroidInputManager(_ref) {\n var {\n editor,\n scheduleOnDOMSelectionChange,\n onDOMSelectionChange\n } = _ref;\n var flushing = false;\n var compositionEndTimeoutId = null;\n var flushTimeoutId = null;\n var actionTimeoutId = null;\n var idCounter = 0;\n var insertPositionHint = false;\n var applyPendingSelection = () => {\n var pendingSelection = EDITOR_TO_PENDING_SELECTION.get(editor);\n EDITOR_TO_PENDING_SELECTION.delete(editor);\n if (pendingSelection) {\n var {\n selection\n } = editor;\n var normalized = normalizeRange(editor, pendingSelection);\n if (normalized && (!selection || !Range.equals(normalized, selection))) {\n Transforms.select(editor, normalized);\n }\n }\n };\n var performAction = () => {\n var action = EDITOR_TO_PENDING_ACTION.get(editor);\n EDITOR_TO_PENDING_ACTION.delete(editor);\n if (!action) {\n return;\n }\n if (action.at) {\n var target = Point.isPoint(action.at) ? normalizePoint(editor, action.at) : normalizeRange(editor, action.at);\n if (!target) {\n return;\n }\n var _targetRange = Editor.range(editor, target);\n if (!editor.selection || !Range.equals(editor.selection, _targetRange)) {\n Transforms.select(editor, target);\n }\n }\n action.run();\n };\n var flush = () => {\n if (flushTimeoutId) {\n clearTimeout(flushTimeoutId);\n flushTimeoutId = null;\n }\n if (actionTimeoutId) {\n clearTimeout(actionTimeoutId);\n actionTimeoutId = null;\n }\n if (!hasPendingDiffs() && !hasPendingAction()) {\n applyPendingSelection();\n return;\n }\n if (!flushing) {\n flushing = true;\n setTimeout(() => flushing = false);\n }\n if (hasPendingAction()) {\n flushing = 'action';\n }\n var selectionRef = editor.selection && Editor.rangeRef(editor, editor.selection, {\n affinity: 'forward'\n });\n EDITOR_TO_USER_MARKS.set(editor, editor.marks);\n debug('flush', EDITOR_TO_PENDING_ACTION.get(editor), EDITOR_TO_PENDING_DIFFS.get(editor));\n var scheduleSelectionChange = hasPendingDiffs();\n var diff;\n while (diff = (_EDITOR_TO_PENDING_DI = EDITOR_TO_PENDING_DIFFS.get(editor)) === null || _EDITOR_TO_PENDING_DI === void 0 ? void 0 : _EDITOR_TO_PENDING_DI[0]) {\n var _EDITOR_TO_PENDING_DI, _EDITOR_TO_PENDING_DI2;\n var pendingMarks = EDITOR_TO_PENDING_INSERTION_MARKS.get(editor);\n if (pendingMarks !== undefined) {\n EDITOR_TO_PENDING_INSERTION_MARKS.delete(editor);\n editor.marks = pendingMarks;\n }\n if (pendingMarks && insertPositionHint === false) {\n insertPositionHint = null;\n }\n var range = targetRange(diff);\n if (!editor.selection || !Range.equals(editor.selection, range)) {\n Transforms.select(editor, range);\n }\n if (diff.diff.text) {\n Editor.insertText(editor, diff.diff.text);\n } else {\n Editor.deleteFragment(editor);\n }\n // Remove diff only after we have applied it to account for it when transforming\n // pending ranges.\n EDITOR_TO_PENDING_DIFFS.set(editor, (_EDITOR_TO_PENDING_DI2 = EDITOR_TO_PENDING_DIFFS.get(editor)) === null || _EDITOR_TO_PENDING_DI2 === void 0 ? void 0 : _EDITOR_TO_PENDING_DI2.filter(_ref2 => {\n var {\n id\n } = _ref2;\n return id !== diff.id;\n }));\n if (!verifyDiffState(editor, diff)) {\n scheduleSelectionChange = false;\n EDITOR_TO_PENDING_ACTION.delete(editor);\n EDITOR_TO_USER_MARKS.delete(editor);\n flushing = 'action';\n // Ensure we don't restore the pending user (dom) selection\n // since the document and dom state do not match.\n EDITOR_TO_PENDING_SELECTION.delete(editor);\n scheduleOnDOMSelectionChange.cancel();\n onDOMSelectionChange.cancel();\n selectionRef === null || selectionRef === void 0 || selectionRef.unref();\n }\n }\n var selection = selectionRef === null || selectionRef === void 0 ? void 0 : selectionRef.unref();\n if (selection && !EDITOR_TO_PENDING_SELECTION.get(editor) && (!editor.selection || !Range.equals(selection, editor.selection))) {\n Transforms.select(editor, selection);\n }\n if (hasPendingAction()) {\n performAction();\n return;\n }\n // COMPAT: The selectionChange event is fired after the action is performed,\n // so we have to manually schedule it to ensure we don't 'throw away' the selection\n // while rendering if we have pending changes.\n if (scheduleSelectionChange) {\n scheduleOnDOMSelectionChange();\n }\n scheduleOnDOMSelectionChange.flush();\n onDOMSelectionChange.flush();\n applyPendingSelection();\n var userMarks = EDITOR_TO_USER_MARKS.get(editor);\n EDITOR_TO_USER_MARKS.delete(editor);\n if (userMarks !== undefined) {\n editor.marks = userMarks;\n editor.onChange();\n }\n };\n var handleCompositionEnd = _event => {\n if (compositionEndTimeoutId) {\n clearTimeout(compositionEndTimeoutId);\n }\n compositionEndTimeoutId = setTimeout(() => {\n IS_COMPOSING.set(editor, false);\n flush();\n }, RESOLVE_DELAY);\n };\n var handleCompositionStart = _event => {\n IS_COMPOSING.set(editor, true);\n if (compositionEndTimeoutId) {\n clearTimeout(compositionEndTimeoutId);\n compositionEndTimeoutId = null;\n }\n };\n var updatePlaceholderVisibility = function updatePlaceholderVisibility() {\n var forceHide = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : false;\n var placeholderElement = EDITOR_TO_PLACEHOLDER_ELEMENT.get(editor);\n if (!placeholderElement) {\n return;\n }\n if (hasPendingDiffs() || forceHide) {\n placeholderElement.style.display = 'none';\n return;\n }\n placeholderElement.style.removeProperty('display');\n };\n var storeDiff = (path, diff) => {\n var _EDITOR_TO_PENDING_DI3;\n var pendingDiffs = (_EDITOR_TO_PENDING_DI3 = EDITOR_TO_PENDING_DIFFS.get(editor)) !== null && _EDITOR_TO_PENDING_DI3 !== void 0 ? _EDITOR_TO_PENDING_DI3 : [];\n EDITOR_TO_PENDING_DIFFS.set(editor, pendingDiffs);\n var target = Node.leaf(editor, path);\n var idx = pendingDiffs.findIndex(change => Path.equals(change.path, path));\n if (idx < 0) {\n var normalized = normalizeStringDiff(target.text, diff);\n if (normalized) {\n pendingDiffs.push({\n path,\n diff,\n id: idCounter++\n });\n }\n updatePlaceholderVisibility();\n return;\n }\n var merged = mergeStringDiffs(target.text, pendingDiffs[idx].diff, diff);\n if (!merged) {\n pendingDiffs.splice(idx, 1);\n updatePlaceholderVisibility();\n return;\n }\n pendingDiffs[idx] = _objectSpread$6(_objectSpread$6({}, pendingDiffs[idx]), {}, {\n diff: merged\n });\n };\n var scheduleAction = function scheduleAction(run) {\n var {\n at\n } = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n insertPositionHint = false;\n EDITOR_TO_PENDING_SELECTION.delete(editor);\n scheduleOnDOMSelectionChange.cancel();\n onDOMSelectionChange.cancel();\n if (hasPendingAction()) {\n flush();\n }\n EDITOR_TO_PENDING_ACTION.set(editor, {\n at,\n run\n });\n // COMPAT: When deleting before a non-contenteditable element chrome only fires a beforeinput,\n // (no input) and doesn't perform any dom mutations. Without a flush timeout we would never flush\n // in this case and thus never actually perform the action.\n actionTimeoutId = setTimeout(flush);\n };\n var handleDOMBeforeInput = event => {\n var _targetRange2;\n if (flushTimeoutId) {\n clearTimeout(flushTimeoutId);\n flushTimeoutId = null;\n }\n if (IS_NODE_MAP_DIRTY.get(editor)) {\n return;\n }\n var {\n inputType: type\n } = event;\n var targetRange = null;\n var data = event.dataTransfer || event.data || undefined;\n if (insertPositionHint !== false && type !== 'insertText' && type !== 'insertCompositionText') {\n insertPositionHint = false;\n }\n var [nativeTargetRange] = event.getTargetRanges();\n if (nativeTargetRange) {\n targetRange = ReactEditor.toSlateRange(editor, nativeTargetRange, {\n exactMatch: false,\n suppressThrow: true\n });\n }\n // COMPAT: SelectionChange event is fired after the action is performed, so we\n // have to manually get the selection here to ensure it's up-to-date.\n var window = ReactEditor.getWindow(editor);\n var domSelection = window.getSelection();\n if (!targetRange && domSelection) {\n nativeTargetRange = domSelection;\n targetRange = ReactEditor.toSlateRange(editor, domSelection, {\n exactMatch: false,\n suppressThrow: true\n });\n }\n targetRange = (_targetRange2 = targetRange) !== null && _targetRange2 !== void 0 ? _targetRange2 : editor.selection;\n if (!targetRange) {\n return;\n }\n // By default, the input manager tries to store text diffs so that we can\n // defer flushing them at a later point in time. We don't want to flush\n // for every input event as this can be expensive. However, there are some\n // scenarios where we cannot safely store the text diff and must instead\n // schedule an action to let Slate normalize the editor state.\n var canStoreDiff = true;\n if (type.startsWith('delete')) {\n if (Range.isExpanded(targetRange)) {\n var [_start, _end] = Range.edges(targetRange);\n var _leaf = Node.leaf(editor, _start.path);\n if (_leaf.text.length === _start.offset && _end.offset === 0) {\n var next = Editor.next(editor, {\n at: _start.path,\n match: Text$1.isText\n });\n if (next && Path.equals(next[1], _end.path)) {\n targetRange = {\n anchor: _end,\n focus: _end\n };\n }\n }\n }\n var direction = type.endsWith('Backward') ? 'backward' : 'forward';\n var [start, end] = Range.edges(targetRange);\n var [leaf, path] = Editor.leaf(editor, start.path);\n var diff = {\n text: '',\n start: start.offset,\n end: end.offset\n };\n var pendingDiffs = EDITOR_TO_PENDING_DIFFS.get(editor);\n var relevantPendingDiffs = pendingDiffs === null || pendingDiffs === void 0 ? void 0 : pendingDiffs.find(change => Path.equals(change.path, path));\n var diffs = relevantPendingDiffs ? [relevantPendingDiffs.diff, diff] : [diff];\n var text = applyStringDiff(leaf.text, ...diffs);\n if (text.length === 0) {\n // Text leaf will be removed, so we need to schedule an\n // action to remove it so that Slate can normalize instead\n // of storing as a diff\n canStoreDiff = false;\n }\n if (Range.isExpanded(targetRange)) {\n if (canStoreDiff && Path.equals(targetRange.anchor.path, targetRange.focus.path)) {\n var point = {\n path: targetRange.anchor.path,\n offset: start.offset\n };\n var range = Editor.range(editor, point, point);\n handleUserSelect(range);\n return storeDiff(targetRange.anchor.path, {\n text: '',\n end: end.offset,\n start: start.offset\n });\n }\n return scheduleAction(() => Editor.deleteFragment(editor, {\n direction\n }), {\n at: targetRange\n });\n }\n }\n switch (type) {\n case 'deleteByComposition':\n case 'deleteByCut':\n case 'deleteByDrag':\n {\n return scheduleAction(() => Editor.deleteFragment(editor), {\n at: targetRange\n });\n }\n case 'deleteContent':\n case 'deleteContentForward':\n {\n var {\n anchor\n } = targetRange;\n if (canStoreDiff && Range.isCollapsed(targetRange)) {\n var targetNode = Node.leaf(editor, anchor.path);\n if (anchor.offset < targetNode.text.length) {\n return storeDiff(anchor.path, {\n text: '',\n start: anchor.offset,\n end: anchor.offset + 1\n });\n }\n }\n return scheduleAction(() => Editor.deleteForward(editor), {\n at: targetRange\n });\n }\n case 'deleteContentBackward':\n {\n var _nativeTargetRange;\n var {\n anchor: _anchor\n } = targetRange;\n // If we have a mismatch between the native and slate selection being collapsed\n // we are most likely deleting a zero-width placeholder and thus should perform it\n // as an action to ensure correct behavior (mostly happens with mark placeholders)\n var nativeCollapsed = isDOMSelection(nativeTargetRange) ? nativeTargetRange.isCollapsed : !!((_nativeTargetRange = nativeTargetRange) !== null && _nativeTargetRange !== void 0 && _nativeTargetRange.collapsed);\n if (canStoreDiff && nativeCollapsed && Range.isCollapsed(targetRange) && _anchor.offset > 0) {\n return storeDiff(_anchor.path, {\n text: '',\n start: _anchor.offset - 1,\n end: _anchor.offset\n });\n }\n return scheduleAction(() => Editor.deleteBackward(editor), {\n at: targetRange\n });\n }\n case 'deleteEntireSoftLine':\n {\n return scheduleAction(() => {\n Editor.deleteBackward(editor, {\n unit: 'line'\n });\n Editor.deleteForward(editor, {\n unit: 'line'\n });\n }, {\n at: targetRange\n });\n }\n case 'deleteHardLineBackward':\n {\n return scheduleAction(() => Editor.deleteBackward(editor, {\n unit: 'block'\n }), {\n at: targetRange\n });\n }\n case 'deleteSoftLineBackward':\n {\n return scheduleAction(() => Editor.deleteBackward(editor, {\n unit: 'line'\n }), {\n at: targetRange\n });\n }\n case 'deleteHardLineForward':\n {\n return scheduleAction(() => Editor.deleteForward(editor, {\n unit: 'block'\n }), {\n at: targetRange\n });\n }\n case 'deleteSoftLineForward':\n {\n return scheduleAction(() => Editor.deleteForward(editor, {\n unit: 'line'\n }), {\n at: targetRange\n });\n }\n case 'deleteWordBackward':\n {\n return scheduleAction(() => Editor.deleteBackward(editor, {\n unit: 'word'\n }), {\n at: targetRange\n });\n }\n case 'deleteWordForward':\n {\n return scheduleAction(() => Editor.deleteForward(editor, {\n unit: 'word'\n }), {\n at: targetRange\n });\n }\n case 'insertLineBreak':\n {\n return scheduleAction(() => Editor.insertSoftBreak(editor), {\n at: targetRange\n });\n }\n case 'insertParagraph':\n {\n return scheduleAction(() => Editor.insertBreak(editor), {\n at: targetRange\n });\n }\n case 'insertCompositionText':\n case 'deleteCompositionText':\n case 'insertFromComposition':\n case 'insertFromDrop':\n case 'insertFromPaste':\n case 'insertFromYank':\n case 'insertReplacementText':\n case 'insertText':\n {\n if (isDataTransfer(data)) {\n return scheduleAction(() => ReactEditor.insertData(editor, data), {\n at: targetRange\n });\n }\n var _text = data !== null && data !== void 0 ? data : '';\n // COMPAT: If we are writing inside a placeholder, the ime inserts the text inside\n // the placeholder itself and thus includes the zero-width space inside edit events.\n if (EDITOR_TO_PENDING_INSERTION_MARKS.get(editor)) {\n _text = _text.replace('\\uFEFF', '');\n }\n // Pastes from the Android clipboard will generate `insertText` events.\n // If the copied text contains any newlines, Android will append an\n // extra newline to the end of the copied text.\n if (type === 'insertText' && /.*\\n.*\\n$/.test(_text)) {\n _text = _text.slice(0, -1);\n }\n // If the text includes a newline, split it at newlines and paste each component\n // string, with soft breaks in between each.\n if (_text.includes('\\n')) {\n return scheduleAction(() => {\n var parts = _text.split('\\n');\n parts.forEach((line, i) => {\n if (line) {\n Editor.insertText(editor, line);\n }\n if (i !== parts.length - 1) {\n Editor.insertSoftBreak(editor);\n }\n });\n }, {\n at: targetRange\n });\n }\n if (Path.equals(targetRange.anchor.path, targetRange.focus.path)) {\n var [_start2, _end2] = Range.edges(targetRange);\n var _diff = {\n start: _start2.offset,\n end: _end2.offset,\n text: _text\n };\n // COMPAT: Swiftkey has a weird bug where the target range of the 2nd word\n // inserted after a mark placeholder is inserted with an anchor offset off by 1.\n // So writing 'some text' will result in 'some ttext'. Luckily all 'normal' insert\n // text events are fired with the correct target ranges, only the final 'insertComposition'\n // isn't, so we can adjust the target range start offset if we are confident this is the\n // swiftkey insert causing the issue.\n if (_text && insertPositionHint && type === 'insertCompositionText') {\n var hintPosition = insertPositionHint.start + insertPositionHint.text.search(/\\S|$/);\n var diffPosition = _diff.start + _diff.text.search(/\\S|$/);\n if (diffPosition === hintPosition + 1 && _diff.end === insertPositionHint.start + insertPositionHint.text.length) {\n _diff.start -= 1;\n insertPositionHint = null;\n scheduleFlush();\n } else {\n insertPositionHint = false;\n }\n } else if (type === 'insertText') {\n if (insertPositionHint === null) {\n insertPositionHint = _diff;\n } else if (insertPositionHint && Range.isCollapsed(targetRange) && insertPositionHint.end + insertPositionHint.text.length === _start2.offset) {\n insertPositionHint = _objectSpread$6(_objectSpread$6({}, insertPositionHint), {}, {\n text: insertPositionHint.text + _text\n });\n } else {\n insertPositionHint = false;\n }\n } else {\n insertPositionHint = false;\n }\n if (canStoreDiff) {\n storeDiff(_start2.path, _diff);\n return;\n }\n }\n return scheduleAction(() => Editor.insertText(editor, _text), {\n at: targetRange\n });\n }\n }\n };\n var hasPendingAction = () => {\n return !!EDITOR_TO_PENDING_ACTION.get(editor);\n };\n var hasPendingDiffs = () => {\n var _EDITOR_TO_PENDING_DI4;\n return !!((_EDITOR_TO_PENDING_DI4 = EDITOR_TO_PENDING_DIFFS.get(editor)) !== null && _EDITOR_TO_PENDING_DI4 !== void 0 && _EDITOR_TO_PENDING_DI4.length);\n };\n var hasPendingChanges = () => {\n return hasPendingAction() || hasPendingDiffs();\n };\n var isFlushing = () => {\n return flushing;\n };\n var handleUserSelect = range => {\n EDITOR_TO_PENDING_SELECTION.set(editor, range);\n if (flushTimeoutId) {\n clearTimeout(flushTimeoutId);\n flushTimeoutId = null;\n }\n var {\n selection\n } = editor;\n if (!range) {\n return;\n }\n var pathChanged = !selection || !Path.equals(selection.anchor.path, range.anchor.path);\n var parentPathChanged = !selection || !Path.equals(selection.anchor.path.slice(0, -1), range.anchor.path.slice(0, -1));\n if (pathChanged && insertPositionHint || parentPathChanged) {\n insertPositionHint = false;\n }\n if (pathChanged || hasPendingDiffs()) {\n flushTimeoutId = setTimeout(flush, FLUSH_DELAY);\n }\n };\n var handleInput = () => {\n if (hasPendingAction() || !hasPendingDiffs()) {\n flush();\n }\n };\n var handleKeyDown = _ => {\n // COMPAT: Swiftkey closes the keyboard when typing inside a empty node\n // directly next to a non-contenteditable element (= the placeholder).\n // The only event fired soon enough for us to allow hiding the placeholder\n // without swiftkey picking it up is the keydown event, so we have to hide it\n // here. See https://github.com/ianstormtaylor/slate/pull/4988#issuecomment-1201050535\n if (!hasPendingDiffs()) {\n updatePlaceholderVisibility(true);\n setTimeout(updatePlaceholderVisibility);\n }\n };\n var scheduleFlush = () => {\n if (!hasPendingAction()) {\n actionTimeoutId = setTimeout(flush);\n }\n };\n var handleDomMutations = mutations => {\n if (hasPendingDiffs() || hasPendingAction()) {\n return;\n }\n if (mutations.some(mutation => isTrackedMutation(editor, mutation, mutations))) {\n var _EDITOR_TO_FORCE_REND;\n // Cause a re-render to restore the dom state if we encounter tracked mutations without\n // a corresponding pending action.\n (_EDITOR_TO_FORCE_REND = EDITOR_TO_FORCE_RENDER.get(editor)) === null || _EDITOR_TO_FORCE_REND === void 0 || _EDITOR_TO_FORCE_REND();\n }\n };\n return {\n flush,\n scheduleFlush,\n hasPendingDiffs,\n hasPendingAction,\n hasPendingChanges,\n isFlushing,\n handleUserSelect,\n handleCompositionEnd,\n handleCompositionStart,\n handleDOMBeforeInput,\n handleKeyDown,\n handleDomMutations,\n handleInput\n };\n}\n\nfunction useIsMounted() {\n var isMountedRef = useRef(false);\n useEffect(() => {\n isMountedRef.current = true;\n return () => {\n isMountedRef.current = false;\n };\n }, []);\n return isMountedRef.current;\n}\n\n/**\n * Prevent warning on SSR by falling back to useEffect when DOM isn't available\n */\nvar useIsomorphicLayoutEffect = CAN_USE_DOM ? useLayoutEffect : useEffect;\n\nfunction useMutationObserver(node, callback, options) {\n var [mutationObserver] = useState(() => new MutationObserver(callback));\n useIsomorphicLayoutEffect(() => {\n // Discard mutations caused during render phase. This works due to react calling\n // useLayoutEffect synchronously after the render phase before the next tick.\n mutationObserver.takeRecords();\n });\n useEffect(() => {\n if (!node.current) {\n throw new Error('Failed to attach MutationObserver, `node` is undefined');\n }\n mutationObserver.observe(node.current, options);\n return () => mutationObserver.disconnect();\n }, [mutationObserver, node, options]);\n}\n\nvar _excluded$3 = [\"node\"];\nfunction ownKeys$5(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$5(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$5(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$5(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar MUTATION_OBSERVER_CONFIG$1 = {\n subtree: true,\n childList: true,\n characterData: true\n};\nvar useAndroidInputManager = !IS_ANDROID ? () => null : _ref => {\n var {\n node\n } = _ref,\n options = _objectWithoutProperties(_ref, _excluded$3);\n if (!IS_ANDROID) {\n return null;\n }\n var editor = useSlateStatic();\n var isMounted = useIsMounted();\n var [inputManager] = useState(() => createAndroidInputManager(_objectSpread$5({\n editor\n }, options)));\n useMutationObserver(node, inputManager.handleDomMutations, MUTATION_OBSERVER_CONFIG$1);\n EDITOR_TO_SCHEDULE_FLUSH.set(editor, inputManager.scheduleFlush);\n if (isMounted) {\n inputManager.flush();\n }\n return inputManager;\n};\n\nvar _excluded$2 = [\"anchor\", \"focus\"],\n _excluded2$1 = [\"anchor\", \"focus\"];\nvar shallowCompare = (obj1, obj2) => Object.keys(obj1).length === Object.keys(obj2).length && Object.keys(obj1).every(key => obj2.hasOwnProperty(key) && obj1[key] === obj2[key]);\nvar isDecorationFlagsEqual = (range, other) => {\n var rangeOwnProps = _objectWithoutProperties(range, _excluded$2);\n var otherOwnProps = _objectWithoutProperties(other, _excluded2$1);\n return range[PLACEHOLDER_SYMBOL] === other[PLACEHOLDER_SYMBOL] && shallowCompare(rangeOwnProps, otherOwnProps);\n};\n/**\n * Check if a list of decorator ranges are equal to another.\n *\n * PERF: this requires the two lists to also have the ranges inside them in the\n * same order, but this is an okay constraint for us since decorations are\n * kept in order, and the odd case where they aren't is okay to re-render for.\n */\nvar isElementDecorationsEqual = (list, another) => {\n if (list.length !== another.length) {\n return false;\n }\n for (var i = 0; i < list.length; i++) {\n var range = list[i];\n var other = another[i];\n if (!Range.equals(range, other) || !isDecorationFlagsEqual(range, other)) {\n return false;\n }\n }\n return true;\n};\n/**\n * Check if a list of decorator ranges are equal to another.\n *\n * PERF: this requires the two lists to also have the ranges inside them in the\n * same order, but this is an okay constraint for us since decorations are\n * kept in order, and the odd case where they aren't is okay to re-render for.\n */\nvar isTextDecorationsEqual = (list, another) => {\n if (list.length !== another.length) {\n return false;\n }\n for (var i = 0; i < list.length; i++) {\n var range = list[i];\n var other = another[i];\n // compare only offsets because paths doesn't matter for text\n if (range.anchor.offset !== other.anchor.offset || range.focus.offset !== other.focus.offset || !isDecorationFlagsEqual(range, other)) {\n return false;\n }\n }\n return true;\n};\n\nfunction ownKeys$4(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$4(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$4(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$4(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\n/**\n * Leaf content strings.\n */\nvar String$1 = props => {\n var {\n isLast,\n leaf,\n parent,\n text\n } = props;\n var editor = useSlateStatic();\n var path = ReactEditor.findPath(editor, text);\n var parentPath = Path.parent(path);\n var isMarkPlaceholder = Boolean(leaf[MARK_PLACEHOLDER_SYMBOL]);\n // COMPAT: Render text inside void nodes with a zero-width space.\n // So the node can contain selection but the text is not visible.\n if (editor.isVoid(parent)) {\n return /*#__PURE__*/React.createElement(ZeroWidthString, {\n length: Node.string(parent).length\n });\n }\n // COMPAT: If this is the last text node in an empty block, render a zero-\n // width space that will convert into a line break when copying and pasting\n // to support expected plain text.\n if (leaf.text === '' && parent.children[parent.children.length - 1] === text && !editor.isInline(parent) && Editor.string(editor, parentPath) === '') {\n return /*#__PURE__*/React.createElement(ZeroWidthString, {\n isLineBreak: true,\n isMarkPlaceholder: isMarkPlaceholder\n });\n }\n // COMPAT: If the text is empty, it's because it's on the edge of an inline\n // node, so we render a zero-width space so that the selection can be\n // inserted next to it still.\n if (leaf.text === '') {\n return /*#__PURE__*/React.createElement(ZeroWidthString, {\n isMarkPlaceholder: isMarkPlaceholder\n });\n }\n // COMPAT: Browsers will collapse trailing new lines at the end of blocks,\n // so we need to add an extra trailing new lines to prevent that.\n if (isLast && leaf.text.slice(-1) === '\\n') {\n return /*#__PURE__*/React.createElement(TextString, {\n isTrailing: true,\n text: leaf.text\n });\n }\n return /*#__PURE__*/React.createElement(TextString, {\n text: leaf.text\n });\n};\n/**\n * Leaf strings with text in them.\n */\nvar TextString = props => {\n var {\n text,\n isTrailing = false\n } = props;\n var ref = useRef(null);\n var getTextContent = () => {\n return \"\".concat(text !== null && text !== void 0 ? text : '').concat(isTrailing ? '\\n' : '');\n };\n var [initialText] = useState(getTextContent);\n // This is the actual text rendering boundary where we interface with the DOM\n // The text is not rendered as part of the virtual DOM, as since we handle basic character insertions natively,\n // updating the DOM is not a one way dataflow anymore. What we need here is not reconciliation and diffing\n // with previous version of the virtual DOM, but rather diffing with the actual DOM element, and replace the DOM <span> content\n // exactly if and only if its current content does not match our current virtual DOM.\n // Otherwise the DOM TextNode would always be replaced by React as the user types, which interferes with native text features,\n // eg makes native spellcheck opt out from checking the text node.\n // useLayoutEffect: updating our span before browser paint\n useIsomorphicLayoutEffect(() => {\n // null coalescing text to make sure we're not outputing \"null\" as a string in the extreme case it is nullish at runtime\n var textWithTrailing = getTextContent();\n if (ref.current && ref.current.textContent !== textWithTrailing) {\n ref.current.textContent = textWithTrailing;\n }\n // intentionally not specifying dependencies, so that this effect runs on every render\n // as this effectively replaces \"specifying the text in the virtual DOM under the <span> below\" on each render\n });\n // We intentionally render a memoized <span> that only receives the initial text content when the component is mounted.\n // We defer to the layout effect above to update the `textContent` of the span element when needed.\n return /*#__PURE__*/React.createElement(MemoizedText$1, {\n ref: ref\n }, initialText);\n};\nvar MemoizedText$1 = /*#__PURE__*/memo( /*#__PURE__*/forwardRef((props, ref) => {\n return /*#__PURE__*/React.createElement(\"span\", {\n \"data-slate-string\": true,\n ref: ref\n }, props.children);\n}));\n/**\n * Leaf strings without text, render as zero-width strings.\n */\nvar ZeroWidthString = props => {\n var {\n length = 0,\n isLineBreak = false,\n isMarkPlaceholder = false\n } = props;\n var attributes = {\n 'data-slate-zero-width': isLineBreak ? 'n' : 'z',\n 'data-slate-length': length\n };\n if (isMarkPlaceholder) {\n attributes['data-slate-mark-placeholder'] = true;\n }\n return /*#__PURE__*/React.createElement(\"span\", _objectSpread$4({}, attributes), !(IS_ANDROID || IS_IOS) || !isLineBreak ? '\\uFEFF' : null, isLineBreak ? /*#__PURE__*/React.createElement(\"br\", null) : null);\n};\n\nfunction ownKeys$3(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$3(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$3(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$3(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\n// Delay the placeholder on Android to prevent the keyboard from closing.\n// (https://github.com/ianstormtaylor/slate/pull/5368)\nvar PLACEHOLDER_DELAY = IS_ANDROID ? 300 : 0;\nfunction disconnectPlaceholderResizeObserver(placeholderResizeObserver, releaseObserver) {\n if (placeholderResizeObserver.current) {\n placeholderResizeObserver.current.disconnect();\n if (releaseObserver) {\n placeholderResizeObserver.current = null;\n }\n }\n}\nfunction clearTimeoutRef(timeoutRef) {\n if (timeoutRef.current) {\n clearTimeout(timeoutRef.current);\n timeoutRef.current = null;\n }\n}\n/**\n * Individual leaves in a text node with unique formatting.\n */\nvar Leaf = props => {\n var {\n leaf,\n isLast,\n text,\n parent,\n renderPlaceholder,\n renderLeaf = props => /*#__PURE__*/React.createElement(DefaultLeaf, _objectSpread$3({}, props))\n } = props;\n var editor = useSlateStatic();\n var placeholderResizeObserver = useRef(null);\n var placeholderRef = useRef(null);\n var [showPlaceholder, setShowPlaceholder] = useState(false);\n var showPlaceholderTimeoutRef = useRef(null);\n var callbackPlaceholderRef = useCallback(placeholderEl => {\n disconnectPlaceholderResizeObserver(placeholderResizeObserver, placeholderEl == null);\n if (placeholderEl == null) {\n var _leaf$onPlaceholderRe;\n EDITOR_TO_PLACEHOLDER_ELEMENT.delete(editor);\n (_leaf$onPlaceholderRe = leaf.onPlaceholderResize) === null || _leaf$onPlaceholderRe === void 0 || _leaf$onPlaceholderRe.call(leaf, null);\n } else {\n EDITOR_TO_PLACEHOLDER_ELEMENT.set(editor, placeholderEl);\n if (!placeholderResizeObserver.current) {\n // Create a new observer and observe the placeholder element.\n var ResizeObserver$1 = window.ResizeObserver || ResizeObserver;\n placeholderResizeObserver.current = new ResizeObserver$1(() => {\n var _leaf$onPlaceholderRe2;\n (_leaf$onPlaceholderRe2 = leaf.onPlaceholderResize) === null || _leaf$onPlaceholderRe2 === void 0 || _leaf$onPlaceholderRe2.call(leaf, placeholderEl);\n });\n }\n placeholderResizeObserver.current.observe(placeholderEl);\n placeholderRef.current = placeholderEl;\n }\n }, [placeholderRef, leaf, editor]);\n var children = /*#__PURE__*/React.createElement(String$1, {\n isLast: isLast,\n leaf: leaf,\n parent: parent,\n text: text\n });\n var leafIsPlaceholder = Boolean(leaf[PLACEHOLDER_SYMBOL]);\n useEffect(() => {\n if (leafIsPlaceholder) {\n if (!showPlaceholderTimeoutRef.current) {\n // Delay the placeholder, so it will not render in a selection\n showPlaceholderTimeoutRef.current = setTimeout(() => {\n setShowPlaceholder(true);\n showPlaceholderTimeoutRef.current = null;\n }, PLACEHOLDER_DELAY);\n }\n } else {\n clearTimeoutRef(showPlaceholderTimeoutRef);\n setShowPlaceholder(false);\n }\n return () => clearTimeoutRef(showPlaceholderTimeoutRef);\n }, [leafIsPlaceholder, setShowPlaceholder]);\n if (leafIsPlaceholder && showPlaceholder) {\n var placeholderProps = {\n children: leaf.placeholder,\n attributes: {\n 'data-slate-placeholder': true,\n style: {\n position: 'absolute',\n top: 0,\n pointerEvents: 'none',\n width: '100%',\n maxWidth: '100%',\n display: 'block',\n opacity: '0.333',\n userSelect: 'none',\n textDecoration: 'none',\n // Fixes https://github.com/udecode/plate/issues/2315\n WebkitUserModify: IS_WEBKIT ? 'inherit' : undefined\n },\n contentEditable: false,\n ref: callbackPlaceholderRef\n }\n };\n children = /*#__PURE__*/React.createElement(React.Fragment, null, renderPlaceholder(placeholderProps), children);\n }\n // COMPAT: Having the `data-` attributes on these leaf elements ensures that\n // in certain misbehaving browsers they aren't weirdly cloned/destroyed by\n // contenteditable behaviors. (2019/05/08)\n var attributes = {\n 'data-slate-leaf': true\n };\n return renderLeaf({\n attributes,\n children,\n leaf,\n text\n });\n};\nvar MemoizedLeaf = /*#__PURE__*/React.memo(Leaf, (prev, next) => {\n return next.parent === prev.parent && next.isLast === prev.isLast && next.renderLeaf === prev.renderLeaf && next.renderPlaceholder === prev.renderPlaceholder && next.text === prev.text && Text$1.equals(next.leaf, prev.leaf) && next.leaf[PLACEHOLDER_SYMBOL] === prev.leaf[PLACEHOLDER_SYMBOL];\n});\nvar DefaultLeaf = props => {\n var {\n attributes,\n children\n } = props;\n return /*#__PURE__*/React.createElement(\"span\", _objectSpread$3({}, attributes), children);\n};\n\n/**\n * Text.\n */\nvar Text = props => {\n var {\n decorations,\n isLast,\n parent,\n renderPlaceholder,\n renderLeaf,\n text\n } = props;\n var editor = useSlateStatic();\n var ref = useRef(null);\n var leaves = Text$1.decorations(text, decorations);\n var key = ReactEditor.findKey(editor, text);\n var children = [];\n for (var i = 0; i < leaves.length; i++) {\n var leaf = leaves[i];\n children.push( /*#__PURE__*/React.createElement(MemoizedLeaf, {\n isLast: isLast && i === leaves.length - 1,\n key: \"\".concat(key.id, \"-\").concat(i),\n renderPlaceholder: renderPlaceholder,\n leaf: leaf,\n text: text,\n parent: parent,\n renderLeaf: renderLeaf\n }));\n }\n // Update element-related weak maps with the DOM element ref.\n var callbackRef = useCallback(span => {\n var KEY_TO_ELEMENT = EDITOR_TO_KEY_TO_ELEMENT.get(editor);\n if (span) {\n KEY_TO_ELEMENT === null || KEY_TO_ELEMENT === void 0 || KEY_TO_ELEMENT.set(key, span);\n NODE_TO_ELEMENT.set(text, span);\n ELEMENT_TO_NODE.set(span, text);\n } else {\n KEY_TO_ELEMENT === null || KEY_TO_ELEMENT === void 0 || KEY_TO_ELEMENT.delete(key);\n NODE_TO_ELEMENT.delete(text);\n if (ref.current) {\n ELEMENT_TO_NODE.delete(ref.current);\n }\n }\n ref.current = span;\n }, [ref, editor, key, text]);\n return /*#__PURE__*/React.createElement(\"span\", {\n \"data-slate-node\": \"text\",\n ref: callbackRef\n }, children);\n};\nvar MemoizedText = /*#__PURE__*/React.memo(Text, (prev, next) => {\n return next.parent === prev.parent && next.isLast === prev.isLast && next.renderLeaf === prev.renderLeaf && next.renderPlaceholder === prev.renderPlaceholder && next.text === prev.text && isTextDecorationsEqual(next.decorations, prev.decorations);\n});\n\nfunction ownKeys$2(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$2(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$2(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$2(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\n/**\n * Element.\n */\nvar Element = props => {\n var {\n decorations,\n element,\n renderElement = p => /*#__PURE__*/React.createElement(DefaultElement, _objectSpread$2({}, p)),\n renderPlaceholder,\n renderLeaf,\n selection\n } = props;\n var editor = useSlateStatic();\n var readOnly = useReadOnly();\n var isInline = editor.isInline(element);\n var key = ReactEditor.findKey(editor, element);\n var ref = useCallback(ref => {\n // Update element-related weak maps with the DOM element ref.\n var KEY_TO_ELEMENT = EDITOR_TO_KEY_TO_ELEMENT.get(editor);\n if (ref) {\n KEY_TO_ELEMENT === null || KEY_TO_ELEMENT === void 0 || KEY_TO_ELEMENT.set(key, ref);\n NODE_TO_ELEMENT.set(element, ref);\n ELEMENT_TO_NODE.set(ref, element);\n } else {\n KEY_TO_ELEMENT === null || KEY_TO_ELEMENT === void 0 || KEY_TO_ELEMENT.delete(key);\n NODE_TO_ELEMENT.delete(element);\n }\n }, [editor, key, element]);\n var children = useChildren({\n decorations,\n node: element,\n renderElement,\n renderPlaceholder,\n renderLeaf,\n selection\n });\n // Attributes that the developer must mix into the element in their\n // custom node renderer component.\n var attributes = {\n 'data-slate-node': 'element',\n ref\n };\n if (isInline) {\n attributes['data-slate-inline'] = true;\n }\n // If it's a block node with inline children, add the proper `dir` attribute\n // for text direction.\n if (!isInline && Editor.hasInlines(editor, element)) {\n var text = Node.string(element);\n var dir = getDirection(text);\n if (dir === 'rtl') {\n attributes.dir = dir;\n }\n }\n // If it's a void node, wrap the children in extra void-specific elements.\n if (Editor.isVoid(editor, element)) {\n attributes['data-slate-void'] = true;\n if (!readOnly && isInline) {\n attributes.contentEditable = false;\n }\n var Tag = isInline ? 'span' : 'div';\n var [[_text]] = Node.texts(element);\n children = /*#__PURE__*/React.createElement(Tag, {\n \"data-slate-spacer\": true,\n style: {\n height: '0',\n color: 'transparent',\n outline: 'none',\n position: 'absolute'\n }\n }, /*#__PURE__*/React.createElement(MemoizedText, {\n renderPlaceholder: renderPlaceholder,\n decorations: [],\n isLast: false,\n parent: element,\n text: _text\n }));\n NODE_TO_INDEX.set(_text, 0);\n NODE_TO_PARENT.set(_text, element);\n }\n return renderElement({\n attributes,\n children,\n element\n });\n};\nvar MemoizedElement = /*#__PURE__*/React.memo(Element, (prev, next) => {\n return prev.element === next.element && prev.renderElement === next.renderElement && prev.renderLeaf === next.renderLeaf && prev.renderPlaceholder === next.renderPlaceholder && isElementDecorationsEqual(prev.decorations, next.decorations) && (prev.selection === next.selection || !!prev.selection && !!next.selection && Range.equals(prev.selection, next.selection));\n});\n/**\n * The default element renderer.\n */\nvar DefaultElement = props => {\n var {\n attributes,\n children,\n element\n } = props;\n var editor = useSlateStatic();\n var Tag = editor.isInline(element) ? 'span' : 'div';\n return /*#__PURE__*/React.createElement(Tag, _objectSpread$2(_objectSpread$2({}, attributes), {}, {\n style: {\n position: 'relative'\n }\n }), children);\n};\n\n/**\n * A React context for sharing the `decorate` prop of the editable.\n */\nvar DecorateContext = /*#__PURE__*/createContext(() => []);\n/**\n * Get the current `decorate` prop of the editable.\n */\nvar useDecorate = () => {\n return useContext(DecorateContext);\n};\n\n/**\n * A React context for sharing the `selected` state of an element.\n */\nvar SelectedContext = /*#__PURE__*/createContext(false);\n/**\n * Get the current `selected` state of an element.\n */\nvar useSelected = () => {\n return useContext(SelectedContext);\n};\n\n/**\n * Children.\n */\nvar useChildren = props => {\n var {\n decorations,\n node,\n renderElement,\n renderPlaceholder,\n renderLeaf,\n selection\n } = props;\n var decorate = useDecorate();\n var editor = useSlateStatic();\n IS_NODE_MAP_DIRTY.set(editor, false);\n var path = ReactEditor.findPath(editor, node);\n var children = [];\n var isLeafBlock = Element$1.isElement(node) && !editor.isInline(node) && Editor.hasInlines(editor, node);\n for (var i = 0; i < node.children.length; i++) {\n var p = path.concat(i);\n var n = node.children[i];\n var key = ReactEditor.findKey(editor, n);\n var range = Editor.range(editor, p);\n var sel = selection && Range.intersection(range, selection);\n var ds = decorate([n, p]);\n for (var dec of decorations) {\n var d = Range.intersection(dec, range);\n if (d) {\n ds.push(d);\n }\n }\n if (Element$1.isElement(n)) {\n children.push( /*#__PURE__*/React.createElement(SelectedContext.Provider, {\n key: \"provider-\".concat(key.id),\n value: !!sel\n }, /*#__PURE__*/React.createElement(MemoizedElement, {\n decorations: ds,\n element: n,\n key: key.id,\n renderElement: renderElement,\n renderPlaceholder: renderPlaceholder,\n renderLeaf: renderLeaf,\n selection: sel\n })));\n } else {\n children.push( /*#__PURE__*/React.createElement(MemoizedText, {\n decorations: ds,\n key: key.id,\n isLast: isLeafBlock && i === node.children.length - 1,\n parent: node,\n renderPlaceholder: renderPlaceholder,\n renderLeaf: renderLeaf,\n text: n\n }));\n }\n NODE_TO_INDEX.set(n, i);\n NODE_TO_PARENT.set(n, node);\n }\n return children;\n};\n\n/**\n * A React context for sharing the `readOnly` state of the editor.\n */\nvar ReadOnlyContext = /*#__PURE__*/createContext(false);\n/**\n * Get the current `readOnly` state of the editor.\n */\nvar useReadOnly = () => {\n return useContext(ReadOnlyContext);\n};\n\nvar SlateContext = /*#__PURE__*/createContext(null);\n/**\n * Get the current editor object from the React context.\n */\nvar useSlate = () => {\n var context = useContext(SlateContext);\n if (!context) {\n throw new Error(\"The `useSlate` hook must be used inside the <Slate> component's context.\");\n }\n var {\n editor\n } = context;\n return editor;\n};\nvar useSlateWithV = () => {\n var context = useContext(SlateContext);\n if (!context) {\n throw new Error(\"The `useSlate` hook must be used inside the <Slate> component's context.\");\n }\n return context;\n};\n\nfunction useTrackUserInput() {\n var editor = useSlateStatic();\n var receivedUserInput = useRef(false);\n var animationFrameIdRef = useRef(0);\n var onUserInput = useCallback(() => {\n if (receivedUserInput.current) {\n return;\n }\n receivedUserInput.current = true;\n var window = ReactEditor.getWindow(editor);\n window.cancelAnimationFrame(animationFrameIdRef.current);\n animationFrameIdRef.current = window.requestAnimationFrame(() => {\n receivedUserInput.current = false;\n });\n }, [editor]);\n useEffect(() => () => cancelAnimationFrame(animationFrameIdRef.current), []);\n return {\n receivedUserInput,\n onUserInput\n };\n}\n\nvar TRIPLE_CLICK = 3;\n\n/**\n * Hotkey mappings for each platform.\n */\nvar HOTKEYS = {\n bold: 'mod+b',\n compose: ['down', 'left', 'right', 'up', 'backspace', 'enter'],\n moveBackward: 'left',\n moveForward: 'right',\n moveWordBackward: 'ctrl+left',\n moveWordForward: 'ctrl+right',\n deleteBackward: 'shift?+backspace',\n deleteForward: 'shift?+delete',\n extendBackward: 'shift+left',\n extendForward: 'shift+right',\n italic: 'mod+i',\n insertSoftBreak: 'shift+enter',\n splitBlock: 'enter',\n undo: 'mod+z'\n};\nvar APPLE_HOTKEYS = {\n moveLineBackward: 'opt+up',\n moveLineForward: 'opt+down',\n moveWordBackward: 'opt+left',\n moveWordForward: 'opt+right',\n deleteBackward: ['ctrl+backspace', 'ctrl+h'],\n deleteForward: ['ctrl+delete', 'ctrl+d'],\n deleteLineBackward: 'cmd+shift?+backspace',\n deleteLineForward: ['cmd+shift?+delete', 'ctrl+k'],\n deleteWordBackward: 'opt+shift?+backspace',\n deleteWordForward: 'opt+shift?+delete',\n extendLineBackward: 'opt+shift+up',\n extendLineForward: 'opt+shift+down',\n redo: 'cmd+shift+z',\n transposeCharacter: 'ctrl+t'\n};\nvar WINDOWS_HOTKEYS = {\n deleteWordBackward: 'ctrl+shift?+backspace',\n deleteWordForward: 'ctrl+shift?+delete',\n redo: ['ctrl+y', 'ctrl+shift+z']\n};\n/**\n * Create a platform-aware hotkey checker.\n */\nvar create = key => {\n var generic = HOTKEYS[key];\n var apple = APPLE_HOTKEYS[key];\n var windows = WINDOWS_HOTKEYS[key];\n var isGeneric = generic && isHotkey(generic);\n var isApple = apple && isHotkey(apple);\n var isWindows = windows && isHotkey(windows);\n return event => {\n if (isGeneric && isGeneric(event)) return true;\n if (IS_APPLE && isApple && isApple(event)) return true;\n if (!IS_APPLE && isWindows && isWindows(event)) return true;\n return false;\n };\n};\n/**\n * Hotkeys.\n */\nvar Hotkeys = {\n isBold: create('bold'),\n isCompose: create('compose'),\n isMoveBackward: create('moveBackward'),\n isMoveForward: create('moveForward'),\n isDeleteBackward: create('deleteBackward'),\n isDeleteForward: create('deleteForward'),\n isDeleteLineBackward: create('deleteLineBackward'),\n isDeleteLineForward: create('deleteLineForward'),\n isDeleteWordBackward: create('deleteWordBackward'),\n isDeleteWordForward: create('deleteWordForward'),\n isExtendBackward: create('extendBackward'),\n isExtendForward: create('extendForward'),\n isExtendLineBackward: create('extendLineBackward'),\n isExtendLineForward: create('extendLineForward'),\n isItalic: create('italic'),\n isMoveLineBackward: create('moveLineBackward'),\n isMoveLineForward: create('moveLineForward'),\n isMoveWordBackward: create('moveWordBackward'),\n isMoveWordForward: create('moveWordForward'),\n isRedo: create('redo'),\n isSoftBreak: create('insertSoftBreak'),\n isSplitBlock: create('splitBlock'),\n isTransposeCharacter: create('transposeCharacter'),\n isUndo: create('undo')\n};\n\nvar createRestoreDomManager = (editor, receivedUserInput) => {\n var bufferedMutations = [];\n var clear = () => {\n bufferedMutations = [];\n };\n var registerMutations = mutations => {\n if (!receivedUserInput.current) {\n return;\n }\n var trackedMutations = mutations.filter(mutation => isTrackedMutation(editor, mutation, mutations));\n bufferedMutations.push(...trackedMutations);\n };\n function restoreDOM() {\n if (bufferedMutations.length > 0) {\n bufferedMutations.reverse().forEach(mutation => {\n if (mutation.type === 'characterData') {\n // We don't want to restore the DOM for characterData mutations\n // because this interrupts the composition.\n return;\n }\n mutation.removedNodes.forEach(node => {\n mutation.target.insertBefore(node, mutation.nextSibling);\n });\n mutation.addedNodes.forEach(node => {\n mutation.target.removeChild(node);\n });\n });\n // Clear buffered mutations to ensure we don't undo them twice\n clear();\n }\n }\n return {\n registerMutations,\n restoreDOM,\n clear\n };\n};\n\nvar MUTATION_OBSERVER_CONFIG = {\n subtree: true,\n childList: true,\n characterData: true,\n characterDataOldValue: true\n};\n// We have to use a class component here since we rely on `getSnapshotBeforeUpdate` which has no FC equivalent\n// to run code synchronously immediately before react commits the component update to the DOM.\nclass RestoreDOMComponent extends Component {\n constructor() {\n super(...arguments);\n _defineProperty(this, \"context\", null);\n _defineProperty(this, \"manager\", null);\n _defineProperty(this, \"mutationObserver\", null);\n }\n observe() {\n var _this$mutationObserve;\n var {\n node\n } = this.props;\n if (!node.current) {\n throw new Error('Failed to attach MutationObserver, `node` is undefined');\n }\n (_this$mutationObserve = this.mutationObserver) === null || _this$mutationObserve === void 0 || _this$mutationObserve.observe(node.current, MUTATION_OBSERVER_CONFIG);\n }\n componentDidMount() {\n var {\n receivedUserInput\n } = this.props;\n var editor = this.context;\n this.manager = createRestoreDomManager(editor, receivedUserInput);\n this.mutationObserver = new MutationObserver(this.manager.registerMutations);\n this.observe();\n }\n getSnapshotBeforeUpdate() {\n var _this$mutationObserve2, _this$mutationObserve3, _this$manager2;\n var pendingMutations = (_this$mutationObserve2 = this.mutationObserver) === null || _this$mutationObserve2 === void 0 ? void 0 : _this$mutationObserve2.takeRecords();\n if (pendingMutations !== null && pendingMutations !== void 0 && pendingMutations.length) {\n var _this$manager;\n (_this$manager = this.manager) === null || _this$manager === void 0 || _this$manager.registerMutations(pendingMutations);\n }\n (_this$mutationObserve3 = this.mutationObserver) === null || _this$mutationObserve3 === void 0 || _this$mutationObserve3.disconnect();\n (_this$manager2 = this.manager) === null || _this$manager2 === void 0 || _this$manager2.restoreDOM();\n return null;\n }\n componentDidUpdate() {\n var _this$manager3;\n (_this$manager3 = this.manager) === null || _this$manager3 === void 0 || _this$manager3.clear();\n this.observe();\n }\n componentWillUnmount() {\n var _this$mutationObserve4;\n (_this$mutationObserve4 = this.mutationObserver) === null || _this$mutationObserve4 === void 0 || _this$mutationObserve4.disconnect();\n }\n render() {\n return this.props.children;\n }\n}\n_defineProperty(RestoreDOMComponent, \"contextType\", EditorContext);\nvar RestoreDOM = IS_ANDROID ? RestoreDOMComponent : _ref => {\n var {\n children\n } = _ref;\n return /*#__PURE__*/React.createElement(React.Fragment, null, children);\n};\n\n/**\n * A React context for sharing the `composing` state of the editor.\n */\nvar ComposingContext = /*#__PURE__*/createContext(false);\n/**\n * Get the current `composing` state of the editor.\n */\nvar useComposing = () => {\n return useContext(ComposingContext);\n};\n\nvar _excluded$1 = [\"autoFocus\", \"decorate\", \"onDOMBeforeInput\", \"placeholder\", \"readOnly\", \"renderElement\", \"renderLeaf\", \"renderPlaceholder\", \"scrollSelectionIntoView\", \"style\", \"as\", \"disableDefaultStyles\"],\n _excluded2 = [\"text\"];\nfunction ownKeys$1(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread$1(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys$1(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys$1(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\nvar Children = props => /*#__PURE__*/React.createElement(React.Fragment, null, useChildren(props));\n/**\n * Editable.\n */\nvar Editable = /*#__PURE__*/forwardRef((props, forwardedRef) => {\n var defaultRenderPlaceholder = useCallback(props => /*#__PURE__*/React.createElement(DefaultPlaceholder, _objectSpread$1({}, props)), []);\n var {\n autoFocus,\n decorate = defaultDecorate,\n onDOMBeforeInput: propsOnDOMBeforeInput,\n placeholder,\n readOnly = false,\n renderElement,\n renderLeaf,\n renderPlaceholder = defaultRenderPlaceholder,\n scrollSelectionIntoView = defaultScrollSelectionIntoView,\n style: userStyle = {},\n as: Component = 'div',\n disableDefaultStyles = false\n } = props,\n attributes = _objectWithoutProperties(props, _excluded$1);\n var editor = useSlate();\n // Rerender editor when composition status changed\n var [isComposing, setIsComposing] = useState(false);\n var ref = useRef(null);\n var deferredOperations = useRef([]);\n var [placeholderHeight, setPlaceholderHeight] = useState();\n var processing = useRef(false);\n var {\n onUserInput,\n receivedUserInput\n } = useTrackUserInput();\n var [, forceRender] = useReducer(s => s + 1, 0);\n EDITOR_TO_FORCE_RENDER.set(editor, forceRender);\n // Update internal state on each render.\n IS_READ_ONLY.set(editor, readOnly);\n // Keep track of some state for the event handler logic.\n var state = useMemo(() => ({\n isDraggingInternally: false,\n isUpdatingSelection: false,\n latestElement: null,\n hasMarkPlaceholder: false\n }), []);\n // The autoFocus TextareaHTMLAttribute doesn't do anything on a div, so it\n // needs to be manually focused.\n useEffect(() => {\n if (ref.current && autoFocus) {\n ref.current.focus();\n }\n }, [autoFocus]);\n /**\n * The AndroidInputManager object has a cyclical dependency on onDOMSelectionChange\n *\n * It is defined as a reference to simplify hook dependencies and clarify that\n * it needs to be initialized.\n */\n var androidInputManagerRef = useRef();\n // Listen on the native `selectionchange` event to be able to update any time\n // the selection changes. This is required because React's `onSelect` is leaky\n // and non-standard so it doesn't fire until after a selection has been\n // released. This causes issues in situations where another change happens\n // while a selection is being dragged.\n var onDOMSelectionChange = useMemo(() => throttle(() => {\n if (IS_NODE_MAP_DIRTY.get(editor)) {\n onDOMSelectionChange();\n return;\n }\n var el = ReactEditor.toDOMNode(editor, editor);\n var root = el.getRootNode();\n if (!processing.current && IS_WEBKIT && root instanceof ShadowRoot) {\n processing.current = true;\n var active = getActiveElement();\n if (active) {\n document.execCommand('indent');\n } else {\n Transforms.deselect(editor);\n }\n processing.current = false;\n return;\n }\n var androidInputManager = androidInputManagerRef.current;\n if ((IS_ANDROID || !ReactEditor.isComposing(editor)) && (!state.isUpdatingSelection || androidInputManager !== null && androidInputManager !== void 0 && androidInputManager.isFlushing()) && !state.isDraggingInternally) {\n var _root = ReactEditor.findDocumentOrShadowRoot(editor);\n var {\n activeElement\n } = _root;\n var _el = ReactEditor.toDOMNode(editor, editor);\n var domSelection = getSelection(_root);\n if (activeElement === _el) {\n state.latestElement = activeElement;\n IS_FOCUSED.set(editor, true);\n } else {\n IS_FOCUSED.delete(editor);\n }\n if (!domSelection) {\n return Transforms.deselect(editor);\n }\n var {\n anchorNode,\n focusNode\n } = domSelection;\n var anchorNodeSelectable = ReactEditor.hasEditableTarget(editor, anchorNode) || ReactEditor.isTargetInsideNonReadonlyVoid(editor, anchorNode);\n var focusNodeInEditor = ReactEditor.hasTarget(editor, focusNode);\n if (anchorNodeSelectable && focusNodeInEditor) {\n var range = ReactEditor.toSlateRange(editor, domSelection, {\n exactMatch: false,\n suppressThrow: true\n });\n if (range) {\n if (!ReactEditor.isComposing(editor) && !(androidInputManager !== null && androidInputManager !== void 0 && androidInputManager.hasPendingChanges()) && !(androidInputManager !== null && androidInputManager !== void 0 && androidInputManager.isFlushing())) {\n Transforms.select(editor, range);\n } else {\n androidInputManager === null || androidInputManager === void 0 || androidInputManager.handleUserSelect(range);\n }\n }\n }\n // Deselect the editor if the dom selection is not selectable in readonly mode\n if (readOnly && (!anchorNodeSelectable || !focusNodeInEditor)) {\n Transforms.deselect(editor);\n }\n }\n }, 100), [editor, readOnly, state]);\n var scheduleOnDOMSelectionChange = useMemo(() => debounce(onDOMSelectionChange, 0), [onDOMSelectionChange]);\n androidInputManagerRef.current = useAndroidInputManager({\n node: ref,\n onDOMSelectionChange,\n scheduleOnDOMSelectionChange\n });\n useIsomorphicLayoutEffect(() => {\n var _androidInputManagerR, _androidInputManagerR2;\n // Update element-related weak maps with the DOM element ref.\n var window;\n if (ref.current && (window = getDefaultView(ref.current))) {\n EDITOR_TO_WINDOW.set(editor, window);\n EDITOR_TO_ELEMENT.set(editor, ref.current);\n NODE_TO_ELEMENT.set(editor, ref.current);\n ELEMENT_TO_NODE.set(ref.current, editor);\n } else {\n NODE_TO_ELEMENT.delete(editor);\n }\n // Make sure the DOM selection state is in sync.\n var {\n selection\n } = editor;\n var root = ReactEditor.findDocumentOrShadowRoot(editor);\n var domSelection = getSelection(root);\n if (!domSelection || !ReactEditor.isFocused(editor) || (_androidInputManagerR = androidInputManagerRef.current) !== null && _androidInputManagerR !== void 0 && _androidInputManagerR.hasPendingAction()) {\n return;\n }\n var setDomSelection = forceChange => {\n var hasDomSelection = domSelection.type !== 'None';\n // If the DOM selection is properly unset, we're done.\n if (!selection && !hasDomSelection) {\n return;\n }\n // Get anchorNode and focusNode\n var focusNode = domSelection.focusNode;\n var anchorNode;\n // COMPAT: In firefox the normal seletion way does not work\n // (https://github.com/ianstormtaylor/slate/pull/5486#issue-1820720223)\n if (IS_FIREFOX && domSelection.rangeCount > 1) {\n var firstRange = domSelection.getRangeAt(0);\n var lastRange = domSelection.getRangeAt(domSelection.rangeCount - 1);\n // Right to left\n if (firstRange.startContainer === focusNode) {\n anchorNode = lastRange.endContainer;\n } else {\n // Left to right\n anchorNode = firstRange.startContainer;\n }\n } else {\n anchorNode = domSelection.anchorNode;\n }\n // verify that the dom selection is in the editor\n var editorElement = EDITOR_TO_ELEMENT.get(editor);\n var hasDomSelectionInEditor = false;\n if (editorElement.contains(anchorNode) && editorElement.contains(focusNode)) {\n hasDomSelectionInEditor = true;\n }\n // If the DOM selection is in the editor and the editor selection is already correct, we're done.\n if (hasDomSelection && hasDomSelectionInEditor && selection && !forceChange) {\n var slateRange = ReactEditor.toSlateRange(editor, domSelection, {\n exactMatch: true,\n // domSelection is not necessarily a valid Slate range\n // (e.g. when clicking on contentEditable:false element)\n suppressThrow: true\n });\n if (slateRange && Range.equals(slateRange, selection)) {\n var _anchorNode;\n if (!state.hasMarkPlaceholder) {\n return;\n }\n // Ensure selection is inside the mark placeholder\n if ((_anchorNode = anchorNode) !== null && _anchorNode !== void 0 && (_anchorNode = _anchorNode.parentElement) !== null && _anchorNode !== void 0 && _anchorNode.hasAttribute('data-slate-mark-placeholder')) {\n return;\n }\n }\n }\n // when <Editable/> is being controlled through external value\n // then its children might just change - DOM responds to it on its own\n // but Slate's value is not being updated through any operation\n // and thus it doesn't transform selection on its own\n if (selection && !ReactEditor.hasRange(editor, selection)) {\n editor.selection = ReactEditor.toSlateRange(editor, domSelection, {\n exactMatch: false,\n suppressThrow: true\n });\n return;\n }\n // Otherwise the DOM selection is out of sync, so update it.\n state.isUpdatingSelection = true;\n var newDomRange = selection && ReactEditor.toDOMRange(editor, selection);\n if (newDomRange) {\n if (ReactEditor.isComposing(editor) && !IS_ANDROID) {\n domSelection.collapseToEnd();\n } else if (Range.isBackward(selection)) {\n domSelection.setBaseAndExtent(newDomRange.endContainer, newDomRange.endOffset, newDomRange.startContainer, newDomRange.startOffset);\n } else {\n domSelection.setBaseAndExtent(newDomRange.startContainer, newDomRange.startOffset, newDomRange.endContainer, newDomRange.endOffset);\n }\n scrollSelectionIntoView(editor, newDomRange);\n } else {\n domSelection.removeAllRanges();\n }\n return newDomRange;\n };\n // In firefox if there is more then 1 range and we call setDomSelection we remove the ability to select more cells in a table\n if (domSelection.rangeCount <= 1) {\n setDomSelection();\n }\n var ensureSelection = ((_androidInputManagerR2 = androidInputManagerRef.current) === null || _androidInputManagerR2 === void 0 ? void 0 : _androidInputManagerR2.isFlushing()) === 'action';\n if (!IS_ANDROID || !ensureSelection) {\n setTimeout(() => {\n state.isUpdatingSelection = false;\n });\n return;\n }\n var timeoutId = null;\n var animationFrameId = requestAnimationFrame(() => {\n if (ensureSelection) {\n var ensureDomSelection = forceChange => {\n try {\n var el = ReactEditor.toDOMNode(editor, editor);\n el.focus();\n setDomSelection(forceChange);\n } catch (e) {\n // Ignore, dom and state might be out of sync\n }\n };\n // Compat: Android IMEs try to force their selection by manually re-applying it even after we set it.\n // This essentially would make setting the slate selection during an update meaningless, so we force it\n // again here. We can't only do it in the setTimeout after the animation frame since that would cause a\n // visible flicker.\n ensureDomSelection();\n timeoutId = setTimeout(() => {\n // COMPAT: While setting the selection in an animation frame visually correctly sets the selection,\n // it doesn't update GBoards spellchecker state. We have to manually trigger a selection change after\n // the animation frame to ensure it displays the correct state.\n ensureDomSelection(true);\n state.isUpdatingSelection = false;\n });\n }\n });\n return () => {\n cancelAnimationFrame(animationFrameId);\n if (timeoutId) {\n clearTimeout(timeoutId);\n }\n };\n });\n // Listen on the native `beforeinput` event to get real \"Level 2\" events. This\n // is required because React's `beforeinput` is fake and never really attaches\n // to the real event sadly. (2019/11/01)\n // https://github.com/facebook/react/issues/11211\n var onDOMBeforeInput = useCallback(event => {\n var el = ReactEditor.toDOMNode(editor, editor);\n var root = el.getRootNode();\n if (processing !== null && processing !== void 0 && processing.current && IS_WEBKIT && root instanceof ShadowRoot) {\n var ranges = event.getTargetRanges();\n var range = ranges[0];\n var newRange = new window.Range();\n newRange.setStart(range.startContainer, range.startOffset);\n newRange.setEnd(range.endContainer, range.endOffset);\n // Translate the DOM Range into a Slate Range\n var slateRange = ReactEditor.toSlateRange(editor, newRange, {\n exactMatch: false,\n suppressThrow: false\n });\n Transforms.select(editor, slateRange);\n event.preventDefault();\n event.stopImmediatePropagation();\n return;\n }\n onUserInput();\n if (!readOnly && ReactEditor.hasEditableTarget(editor, event.target) && !isDOMEventHandled(event, propsOnDOMBeforeInput)) {\n var _EDITOR_TO_USER_SELEC;\n // COMPAT: BeforeInput events aren't cancelable on android, so we have to handle them differently using the android input manager.\n if (androidInputManagerRef.current) {\n return androidInputManagerRef.current.handleDOMBeforeInput(event);\n }\n // Some IMEs/Chrome extensions like e.g. Grammarly set the selection immediately before\n // triggering a `beforeinput` expecting the change to be applied to the immediately before\n // set selection.\n scheduleOnDOMSelectionChange.flush();\n onDOMSelectionChange.flush();\n var {\n selection\n } = editor;\n var {\n inputType: type\n } = event;\n var data = event.dataTransfer || event.data || undefined;\n var isCompositionChange = type === 'insertCompositionText' || type === 'deleteCompositionText';\n // COMPAT: use composition change events as a hint to where we should insert\n // composition text if we aren't composing to work around https://github.com/ianstormtaylor/slate/issues/5038\n if (isCompositionChange && ReactEditor.isComposing(editor)) {\n return;\n }\n var native = false;\n if (type === 'insertText' && selection && Range.isCollapsed(selection) &&\n // Only use native character insertion for single characters a-z or space for now.\n // Long-press events (hold a + press 4 = ä) to choose a special character otherwise\n // causes duplicate inserts.\n event.data && event.data.length === 1 && /[a-z ]/i.test(event.data) &&\n // Chrome has issues correctly editing the start of nodes: https://bugs.chromium.org/p/chromium/issues/detail?id=1249405\n // When there is an inline element, e.g. a link, and you select\n // right after it (the start of the next node).\n selection.anchor.offset !== 0) {\n native = true;\n // Skip native if there are marks, as\n // `insertText` will insert a node, not just text.\n if (editor.marks) {\n native = false;\n }\n // If the NODE_MAP is dirty, we can't trust the selection anchor (eg ReactEditor.toDOMPoint)\n if (!IS_NODE_MAP_DIRTY.get(editor)) {\n var _node$parentElement, _window$getComputedSt;\n // Chrome also has issues correctly editing the end of anchor elements: https://bugs.chromium.org/p/chromium/issues/detail?id=1259100\n // Therefore we don't allow native events to insert text at the end of anchor nodes.\n var {\n anchor\n } = selection;\n var [node, offset] = ReactEditor.toDOMPoint(editor, anchor);\n var anchorNode = (_node$parentElement = node.parentElement) === null || _node$parentElement === void 0 ? void 0 : _node$parentElement.closest('a');\n var _window = ReactEditor.getWindow(editor);\n if (native && anchorNode && ReactEditor.hasDOMNode(editor, anchorNode)) {\n var _lastText$textContent;\n // Find the last text node inside the anchor.\n var lastText = _window === null || _window === void 0 ? void 0 : _window.document.createTreeWalker(anchorNode, NodeFilter.SHOW_TEXT).lastChild();\n if (lastText === node && ((_lastText$textContent = lastText.textContent) === null || _lastText$textContent === void 0 ? void 0 : _lastText$textContent.length) === offset) {\n native = false;\n }\n }\n // Chrome has issues with the presence of tab characters inside elements with whiteSpace = 'pre'\n // causing abnormal insert behavior: https://bugs.chromium.org/p/chromium/issues/detail?id=1219139\n if (native && node.parentElement && (_window === null || _window === void 0 || (_window$getComputedSt = _window.getComputedStyle(node.parentElement)) === null || _window$getComputedSt === void 0 ? void 0 : _window$getComputedSt.whiteSpace) === 'pre') {\n var block = Editor.above(editor, {\n at: anchor.path,\n match: n => Element$1.isElement(n) && Editor.isBlock(editor, n)\n });\n if (block && Node.string(block[0]).includes('\\t')) {\n native = false;\n }\n }\n }\n }\n // COMPAT: For the deleting forward/backward input types we don't want\n // to change the selection because it is the range that will be deleted,\n // and those commands determine that for themselves.\n // If the NODE_MAP is dirty, we can't trust the selection anchor (eg ReactEditor.toDOMPoint via ReactEditor.toSlateRange)\n if ((!type.startsWith('delete') || type.startsWith('deleteBy')) && !IS_NODE_MAP_DIRTY.get(editor)) {\n var [targetRange] = event.getTargetRanges();\n if (targetRange) {\n var _range = ReactEditor.toSlateRange(editor, targetRange, {\n exactMatch: false,\n suppressThrow: false\n });\n if (!selection || !Range.equals(selection, _range)) {\n native = false;\n var selectionRef = !isCompositionChange && editor.selection && Editor.rangeRef(editor, editor.selection);\n Transforms.select(editor, _range);\n if (selectionRef) {\n EDITOR_TO_USER_SELECTION.set(editor, selectionRef);\n }\n }\n }\n }\n // Composition change types occur while a user is composing text and can't be\n // cancelled. Let them through and wait for the composition to end.\n if (isCompositionChange) {\n return;\n }\n if (!native) {\n event.preventDefault();\n }\n // COMPAT: If the selection is expanded, even if the command seems like\n // a delete forward/backward command it should delete the selection.\n if (selection && Range.isExpanded(selection) && type.startsWith('delete')) {\n var direction = type.endsWith('Backward') ? 'backward' : 'forward';\n Editor.deleteFragment(editor, {\n direction\n });\n return;\n }\n switch (type) {\n case 'deleteByComposition':\n case 'deleteByCut':\n case 'deleteByDrag':\n {\n Editor.deleteFragment(editor);\n break;\n }\n case 'deleteContent':\n case 'deleteContentForward':\n {\n Editor.deleteForward(editor);\n break;\n }\n case 'deleteContentBackward':\n {\n Editor.deleteBackward(editor);\n break;\n }\n case 'deleteEntireSoftLine':\n {\n Editor.deleteBackward(editor, {\n unit: 'line'\n });\n Editor.deleteForward(editor, {\n unit: 'line'\n });\n break;\n }\n case 'deleteHardLineBackward':\n {\n Editor.deleteBackward(editor, {\n unit: 'block'\n });\n break;\n }\n case 'deleteSoftLineBackward':\n {\n Editor.deleteBackward(editor, {\n unit: 'line'\n });\n break;\n }\n case 'deleteHardLineForward':\n {\n Editor.deleteForward(editor, {\n unit: 'block'\n });\n break;\n }\n case 'deleteSoftLineForward':\n {\n Editor.deleteForward(editor, {\n unit: 'line'\n });\n break;\n }\n case 'deleteWordBackward':\n {\n Editor.deleteBackward(editor, {\n unit: 'word'\n });\n break;\n }\n case 'deleteWordForward':\n {\n Editor.deleteForward(editor, {\n unit: 'word'\n });\n break;\n }\n case 'insertLineBreak':\n Editor.insertSoftBreak(editor);\n break;\n case 'insertParagraph':\n {\n Editor.insertBreak(editor);\n break;\n }\n case 'insertFromComposition':\n case 'insertFromDrop':\n case 'insertFromPaste':\n case 'insertFromYank':\n case 'insertReplacementText':\n case 'insertText':\n {\n if (type === 'insertFromComposition') {\n // COMPAT: in Safari, `compositionend` is dispatched after the\n // `beforeinput` for \"insertFromComposition\". But if we wait for it\n // then we will abort because we're still composing and the selection\n // won't be updated properly.\n // https://www.w3.org/TR/input-events-2/\n if (ReactEditor.isComposing(editor)) {\n setIsComposing(false);\n IS_COMPOSING.set(editor, false);\n }\n }\n // use a weak comparison instead of 'instanceof' to allow\n // programmatic access of paste events coming from external windows\n // like cypress where cy.window does not work realibly\n if ((data === null || data === void 0 ? void 0 : data.constructor.name) === 'DataTransfer') {\n ReactEditor.insertData(editor, data);\n } else if (typeof data === 'string') {\n // Only insertText operations use the native functionality, for now.\n // Potentially expand to single character deletes, as well.\n if (native) {\n deferredOperations.current.push(() => Editor.insertText(editor, data));\n } else {\n Editor.insertText(editor, data);\n }\n }\n break;\n }\n }\n // Restore the actual user section if nothing manually set it.\n var toRestore = (_EDITOR_TO_USER_SELEC = EDITOR_TO_USER_SELECTION.get(editor)) === null || _EDITOR_TO_USER_SELEC === void 0 ? void 0 : _EDITOR_TO_USER_SELEC.unref();\n EDITOR_TO_USER_SELECTION.delete(editor);\n if (toRestore && (!editor.selection || !Range.equals(editor.selection, toRestore))) {\n Transforms.select(editor, toRestore);\n }\n }\n }, [editor, onDOMSelectionChange, onUserInput, propsOnDOMBeforeInput, readOnly, scheduleOnDOMSelectionChange]);\n var callbackRef = useCallback(node => {\n if (node == null) {\n onDOMSelectionChange.cancel();\n scheduleOnDOMSelectionChange.cancel();\n EDITOR_TO_ELEMENT.delete(editor);\n NODE_TO_ELEMENT.delete(editor);\n if (ref.current && HAS_BEFORE_INPUT_SUPPORT) {\n // @ts-ignore The `beforeinput` event isn't recognized.\n ref.current.removeEventListener('beforeinput', onDOMBeforeInput);\n }\n } else {\n // Attach a native DOM event handler for `beforeinput` events, because React's\n // built-in `onBeforeInput` is actually a leaky polyfill that doesn't expose\n // real `beforeinput` events sadly... (2019/11/04)\n // https://github.com/facebook/react/issues/11211\n if (HAS_BEFORE_INPUT_SUPPORT) {\n // @ts-ignore The `beforeinput` event isn't recognized.\n node.addEventListener('beforeinput', onDOMBeforeInput);\n }\n }\n ref.current = node;\n if (typeof forwardedRef === 'function') {\n forwardedRef(node);\n } else if (forwardedRef) {\n forwardedRef.current = node;\n }\n }, [onDOMSelectionChange, scheduleOnDOMSelectionChange, editor, onDOMBeforeInput, forwardedRef]);\n useIsomorphicLayoutEffect(() => {\n var window = ReactEditor.getWindow(editor);\n // Attach a native DOM event handler for `selectionchange`, because React's\n // built-in `onSelect` handler doesn't fire for all selection changes. It's\n // a leaky polyfill that only fires on keypresses or clicks. Instead, we\n // want to fire for any change to the selection inside the editor.\n // (2019/11/04) https://github.com/facebook/react/issues/5785\n window.document.addEventListener('selectionchange', scheduleOnDOMSelectionChange);\n // Listen for dragend and drop globally. In Firefox, if a drop handler\n // initiates an operation that causes the originally dragged element to\n // unmount, that element will not emit a dragend event. (2024/06/21)\n var stoppedDragging = () => {\n state.isDraggingInternally = false;\n };\n window.document.addEventListener('dragend', stoppedDragging);\n window.document.addEventListener('drop', stoppedDragging);\n return () => {\n window.document.removeEventListener('selectionchange', scheduleOnDOMSelectionChange);\n window.document.removeEventListener('dragend', stoppedDragging);\n window.document.removeEventListener('drop', stoppedDragging);\n };\n }, [scheduleOnDOMSelectionChange, state]);\n var decorations = decorate([editor, []]);\n var showPlaceholder = placeholder && editor.children.length === 1 && Array.from(Node.texts(editor)).length === 1 && Node.string(editor) === '' && !isComposing;\n var placeHolderResizeHandler = useCallback(placeholderEl => {\n if (placeholderEl && showPlaceholder) {\n var _placeholderEl$getBou;\n setPlaceholderHeight((_placeholderEl$getBou = placeholderEl.getBoundingClientRect()) === null || _placeholderEl$getBou === void 0 ? void 0 : _placeholderEl$getBou.height);\n } else {\n setPlaceholderHeight(undefined);\n }\n }, [showPlaceholder]);\n if (showPlaceholder) {\n var start = Editor.start(editor, []);\n decorations.push({\n [PLACEHOLDER_SYMBOL]: true,\n placeholder,\n onPlaceholderResize: placeHolderResizeHandler,\n anchor: start,\n focus: start\n });\n }\n var {\n marks\n } = editor;\n state.hasMarkPlaceholder = false;\n if (editor.selection && Range.isCollapsed(editor.selection) && marks) {\n var {\n anchor\n } = editor.selection;\n var leaf = Node.leaf(editor, anchor.path);\n var rest = _objectWithoutProperties(leaf, _excluded2);\n // While marks isn't a 'complete' text, we can still use loose Text.equals\n // here which only compares marks anyway.\n if (!Text$1.equals(leaf, marks, {\n loose: true\n })) {\n state.hasMarkPlaceholder = true;\n var unset = Object.fromEntries(Object.keys(rest).map(mark => [mark, null]));\n decorations.push(_objectSpread$1(_objectSpread$1(_objectSpread$1({\n [MARK_PLACEHOLDER_SYMBOL]: true\n }, unset), marks), {}, {\n anchor,\n focus: anchor\n }));\n }\n }\n // Update EDITOR_TO_MARK_PLACEHOLDER_MARKS in setTimeout useEffect to ensure we don't set it\n // before we receive the composition end event.\n useEffect(() => {\n setTimeout(() => {\n var {\n selection\n } = editor;\n if (selection) {\n var {\n anchor: _anchor\n } = selection;\n var _text = Node.leaf(editor, _anchor.path);\n // While marks isn't a 'complete' text, we can still use loose Text.equals\n // here which only compares marks anyway.\n if (marks && !Text$1.equals(_text, marks, {\n loose: true\n })) {\n EDITOR_TO_PENDING_INSERTION_MARKS.set(editor, marks);\n return;\n }\n }\n EDITOR_TO_PENDING_INSERTION_MARKS.delete(editor);\n });\n });\n return /*#__PURE__*/React.createElement(ReadOnlyContext.Provider, {\n value: readOnly\n }, /*#__PURE__*/React.createElement(ComposingContext.Provider, {\n value: isComposing\n }, /*#__PURE__*/React.createElement(DecorateContext.Provider, {\n value: decorate\n }, /*#__PURE__*/React.createElement(RestoreDOM, {\n node: ref,\n receivedUserInput: receivedUserInput\n }, /*#__PURE__*/React.createElement(Component, _objectSpread$1(_objectSpread$1({\n role: readOnly ? undefined : 'textbox',\n \"aria-multiline\": readOnly ? undefined : true\n }, attributes), {}, {\n // COMPAT: Certain browsers don't support the `beforeinput` event, so we'd\n // have to use hacks to make these replacement-based features work.\n // For SSR situations HAS_BEFORE_INPUT_SUPPORT is false and results in prop\n // mismatch warning app moves to browser. Pass-through consumer props when\n // not CAN_USE_DOM (SSR) and default to falsy value\n spellCheck: HAS_BEFORE_INPUT_SUPPORT || !CAN_USE_DOM ? attributes.spellCheck : false,\n autoCorrect: HAS_BEFORE_INPUT_SUPPORT || !CAN_USE_DOM ? attributes.autoCorrect : 'false',\n autoCapitalize: HAS_BEFORE_INPUT_SUPPORT || !CAN_USE_DOM ? attributes.autoCapitalize : 'false',\n \"data-slate-editor\": true,\n \"data-slate-node\": \"value\",\n // explicitly set this\n contentEditable: !readOnly,\n // in some cases, a decoration needs access to the range / selection to decorate a text node,\n // then you will select the whole text node when you select part the of text\n // this magic zIndex=\"-1\" will fix it\n zindex: -1,\n suppressContentEditableWarning: true,\n ref: callbackRef,\n style: _objectSpread$1(_objectSpread$1({}, disableDefaultStyles ? {} : _objectSpread$1({\n // Allow positioning relative to the editable element.\n position: 'relative',\n // Preserve adjacent whitespace and new lines.\n whiteSpace: 'pre-wrap',\n // Allow words to break if they are too long.\n wordWrap: 'break-word'\n }, placeholderHeight ? {\n minHeight: placeholderHeight\n } : {})), userStyle),\n onBeforeInput: useCallback(event => {\n // COMPAT: Certain browsers don't support the `beforeinput` event, so we\n // fall back to React's leaky polyfill instead just for it. It\n // only works for the `insertText` input type.\n if (!HAS_BEFORE_INPUT_SUPPORT && !readOnly && !isEventHandled(event, attributes.onBeforeInput) && ReactEditor.hasSelectableTarget(editor, event.target)) {\n event.preventDefault();\n if (!ReactEditor.isComposing(editor)) {\n var _text2 = event.data;\n Editor.insertText(editor, _text2);\n }\n }\n }, [attributes.onBeforeInput, editor, readOnly]),\n onInput: useCallback(event => {\n if (isEventHandled(event, attributes.onInput)) {\n return;\n }\n if (androidInputManagerRef.current) {\n androidInputManagerRef.current.handleInput();\n return;\n }\n // Flush native operations, as native events will have propogated\n // and we can correctly compare DOM text values in components\n // to stop rendering, so that browser functions like autocorrect\n // and spellcheck work as expected.\n for (var op of deferredOperations.current) {\n op();\n }\n deferredOperations.current = [];\n // COMPAT: Since `beforeinput` doesn't fully `preventDefault`,\n // there's a chance that content might be placed in the browser's undo stack.\n // This means undo can be triggered even when the div is not focused,\n // and it only triggers the input event for the node. (2024/10/09)\n if (!ReactEditor.isFocused(editor)) {\n var native = event.nativeEvent;\n var maybeHistoryEditor = editor;\n if (native.inputType === 'historyUndo' && typeof maybeHistoryEditor.undo === 'function') {\n maybeHistoryEditor.undo();\n return;\n }\n if (native.inputType === 'historyRedo' && typeof maybeHistoryEditor.redo === 'function') {\n maybeHistoryEditor.redo();\n return;\n }\n }\n }, [attributes.onInput, editor]),\n onBlur: useCallback(event => {\n if (readOnly || state.isUpdatingSelection || !ReactEditor.hasSelectableTarget(editor, event.target) || isEventHandled(event, attributes.onBlur)) {\n return;\n }\n // COMPAT: If the current `activeElement` is still the previous\n // one, this is due to the window being blurred when the tab\n // itself becomes unfocused, so we want to abort early to allow to\n // editor to stay focused when the tab becomes focused again.\n var root = ReactEditor.findDocumentOrShadowRoot(editor);\n if (state.latestElement === root.activeElement) {\n return;\n }\n var {\n relatedTarget\n } = event;\n var el = ReactEditor.toDOMNode(editor, editor);\n // COMPAT: The event should be ignored if the focus is returning\n // to the editor from an embedded editable element (eg. an <input>\n // element inside a void node).\n if (relatedTarget === el) {\n return;\n }\n // COMPAT: The event should be ignored if the focus is moving from\n // the editor to inside a void node's spacer element.\n if (isDOMElement(relatedTarget) && relatedTarget.hasAttribute('data-slate-spacer')) {\n return;\n }\n // COMPAT: The event should be ignored if the focus is moving to a\n // non- editable section of an element that isn't a void node (eg.\n // a list item of the check list example).\n if (relatedTarget != null && isDOMNode(relatedTarget) && ReactEditor.hasDOMNode(editor, relatedTarget)) {\n var node = ReactEditor.toSlateNode(editor, relatedTarget);\n if (Element$1.isElement(node) && !editor.isVoid(node)) {\n return;\n }\n }\n // COMPAT: Safari doesn't always remove the selection even if the content-\n // editable element no longer has focus. Refer to:\n // https://stackoverflow.com/questions/12353247/force-contenteditable-div-to-stop-accepting-input-after-it-loses-focus-under-web\n if (IS_WEBKIT) {\n var domSelection = getSelection(root);\n domSelection === null || domSelection === void 0 || domSelection.removeAllRanges();\n }\n IS_FOCUSED.delete(editor);\n }, [readOnly, state.isUpdatingSelection, state.latestElement, editor, attributes.onBlur]),\n onClick: useCallback(event => {\n if (ReactEditor.hasTarget(editor, event.target) && !isEventHandled(event, attributes.onClick) && isDOMNode(event.target)) {\n var node = ReactEditor.toSlateNode(editor, event.target);\n var path = ReactEditor.findPath(editor, node);\n // At this time, the Slate document may be arbitrarily different,\n // because onClick handlers can change the document before we get here.\n // Therefore we must check that this path actually exists,\n // and that it still refers to the same node.\n if (!Editor.hasPath(editor, path) || Node.get(editor, path) !== node) {\n return;\n }\n if (event.detail === TRIPLE_CLICK && path.length >= 1) {\n var blockPath = path;\n if (!(Element$1.isElement(node) && Editor.isBlock(editor, node))) {\n var _block$;\n var block = Editor.above(editor, {\n match: n => Element$1.isElement(n) && Editor.isBlock(editor, n),\n at: path\n });\n blockPath = (_block$ = block === null || block === void 0 ? void 0 : block[1]) !== null && _block$ !== void 0 ? _block$ : path.slice(0, 1);\n }\n var range = Editor.range(editor, blockPath);\n Transforms.select(editor, range);\n return;\n }\n if (readOnly) {\n return;\n }\n var _start = Editor.start(editor, path);\n var end = Editor.end(editor, path);\n var startVoid = Editor.void(editor, {\n at: _start\n });\n var endVoid = Editor.void(editor, {\n at: end\n });\n if (startVoid && endVoid && Path.equals(startVoid[1], endVoid[1])) {\n var _range2 = Editor.range(editor, _start);\n Transforms.select(editor, _range2);\n }\n }\n }, [editor, attributes.onClick, readOnly]),\n onCompositionEnd: useCallback(event => {\n if (ReactEditor.hasSelectableTarget(editor, event.target)) {\n var _androidInputManagerR3;\n if (ReactEditor.isComposing(editor)) {\n Promise.resolve().then(() => {\n setIsComposing(false);\n IS_COMPOSING.set(editor, false);\n });\n }\n (_androidInputManagerR3 = androidInputManagerRef.current) === null || _androidInputManagerR3 === void 0 || _androidInputManagerR3.handleCompositionEnd(event);\n if (isEventHandled(event, attributes.onCompositionEnd) || IS_ANDROID) {\n return;\n }\n // COMPAT: In Chrome, `beforeinput` events for compositions\n // aren't correct and never fire the \"insertFromComposition\"\n // type that we need. So instead, insert whenever a composition\n // ends since it will already have been committed to the DOM.\n if (!IS_WEBKIT && !IS_FIREFOX_LEGACY && !IS_IOS && !IS_WECHATBROWSER && !IS_UC_MOBILE && event.data) {\n var placeholderMarks = EDITOR_TO_PENDING_INSERTION_MARKS.get(editor);\n EDITOR_TO_PENDING_INSERTION_MARKS.delete(editor);\n // Ensure we insert text with the marks the user was actually seeing\n if (placeholderMarks !== undefined) {\n EDITOR_TO_USER_MARKS.set(editor, editor.marks);\n editor.marks = placeholderMarks;\n }\n Editor.insertText(editor, event.data);\n var userMarks = EDITOR_TO_USER_MARKS.get(editor);\n EDITOR_TO_USER_MARKS.delete(editor);\n if (userMarks !== undefined) {\n editor.marks = userMarks;\n }\n }\n }\n }, [attributes.onCompositionEnd, editor]),\n onCompositionUpdate: useCallback(event => {\n if (ReactEditor.hasSelectableTarget(editor, event.target) && !isEventHandled(event, attributes.onCompositionUpdate)) {\n if (!ReactEditor.isComposing(editor)) {\n setIsComposing(true);\n IS_COMPOSING.set(editor, true);\n }\n }\n }, [attributes.onCompositionUpdate, editor]),\n onCompositionStart: useCallback(event => {\n if (ReactEditor.hasSelectableTarget(editor, event.target)) {\n var _androidInputManagerR4;\n (_androidInputManagerR4 = androidInputManagerRef.current) === null || _androidInputManagerR4 === void 0 || _androidInputManagerR4.handleCompositionStart(event);\n if (isEventHandled(event, attributes.onCompositionStart) || IS_ANDROID) {\n return;\n }\n setIsComposing(true);\n var {\n selection\n } = editor;\n if (selection && Range.isExpanded(selection)) {\n Editor.deleteFragment(editor);\n return;\n }\n }\n }, [attributes.onCompositionStart, editor]),\n onCopy: useCallback(event => {\n if (ReactEditor.hasSelectableTarget(editor, event.target) && !isEventHandled(event, attributes.onCopy) && !isDOMEventTargetInput(event)) {\n event.preventDefault();\n ReactEditor.setFragmentData(editor, event.clipboardData, 'copy');\n }\n }, [attributes.onCopy, editor]),\n onCut: useCallback(event => {\n if (!readOnly && ReactEditor.hasSelectableTarget(editor, event.target) && !isEventHandled(event, attributes.onCut) && !isDOMEventTargetInput(event)) {\n event.preventDefault();\n ReactEditor.setFragmentData(editor, event.clipboardData, 'cut');\n var {\n selection\n } = editor;\n if (selection) {\n if (Range.isExpanded(selection)) {\n Editor.deleteFragment(editor);\n } else {\n var node = Node.parent(editor, selection.anchor.path);\n if (Editor.isVoid(editor, node)) {\n Transforms.delete(editor);\n }\n }\n }\n }\n }, [readOnly, editor, attributes.onCut]),\n onDragOver: useCallback(event => {\n if (ReactEditor.hasTarget(editor, event.target) && !isEventHandled(event, attributes.onDragOver)) {\n // Only when the target is void, call `preventDefault` to signal\n // that drops are allowed. Editable content is droppable by\n // default, and calling `preventDefault` hides the cursor.\n var node = ReactEditor.toSlateNode(editor, event.target);\n if (Element$1.isElement(node) && Editor.isVoid(editor, node)) {\n event.preventDefault();\n }\n }\n }, [attributes.onDragOver, editor]),\n onDragStart: useCallback(event => {\n if (!readOnly && ReactEditor.hasTarget(editor, event.target) && !isEventHandled(event, attributes.onDragStart)) {\n var node = ReactEditor.toSlateNode(editor, event.target);\n var path = ReactEditor.findPath(editor, node);\n var voidMatch = Element$1.isElement(node) && Editor.isVoid(editor, node) || Editor.void(editor, {\n at: path,\n voids: true\n });\n // If starting a drag on a void node, make sure it is selected\n // so that it shows up in the selection's fragment.\n if (voidMatch) {\n var range = Editor.range(editor, path);\n Transforms.select(editor, range);\n }\n state.isDraggingInternally = true;\n ReactEditor.setFragmentData(editor, event.dataTransfer, 'drag');\n }\n }, [readOnly, editor, attributes.onDragStart, state]),\n onDrop: useCallback(event => {\n if (!readOnly && ReactEditor.hasTarget(editor, event.target) && !isEventHandled(event, attributes.onDrop)) {\n event.preventDefault();\n // Keep a reference to the dragged range before updating selection\n var draggedRange = editor.selection;\n // Find the range where the drop happened\n var range = ReactEditor.findEventRange(editor, event);\n var data = event.dataTransfer;\n Transforms.select(editor, range);\n if (state.isDraggingInternally) {\n if (draggedRange && !Range.equals(draggedRange, range) && !Editor.void(editor, {\n at: range,\n voids: true\n })) {\n Transforms.delete(editor, {\n at: draggedRange\n });\n }\n }\n ReactEditor.insertData(editor, data);\n // When dragging from another source into the editor, it's possible\n // that the current editor does not have focus.\n if (!ReactEditor.isFocused(editor)) {\n ReactEditor.focus(editor);\n }\n }\n }, [readOnly, editor, attributes.onDrop, state]),\n onDragEnd: useCallback(event => {\n if (!readOnly && state.isDraggingInternally && attributes.onDragEnd && ReactEditor.hasTarget(editor, event.target)) {\n attributes.onDragEnd(event);\n }\n }, [readOnly, state, attributes, editor]),\n onFocus: useCallback(event => {\n if (!readOnly && !state.isUpdatingSelection && ReactEditor.hasEditableTarget(editor, event.target) && !isEventHandled(event, attributes.onFocus)) {\n var el = ReactEditor.toDOMNode(editor, editor);\n var root = ReactEditor.findDocumentOrShadowRoot(editor);\n state.latestElement = root.activeElement;\n // COMPAT: If the editor has nested editable elements, the focus\n // can go to them. In Firefox, this must be prevented because it\n // results in issues with keyboard navigation. (2017/03/30)\n if (IS_FIREFOX && event.target !== el) {\n el.focus();\n return;\n }\n IS_FOCUSED.set(editor, true);\n }\n }, [readOnly, state, editor, attributes.onFocus]),\n onKeyDown: useCallback(event => {\n if (!readOnly && ReactEditor.hasEditableTarget(editor, event.target)) {\n var _androidInputManagerR5;\n (_androidInputManagerR5 = androidInputManagerRef.current) === null || _androidInputManagerR5 === void 0 || _androidInputManagerR5.handleKeyDown(event);\n var {\n nativeEvent\n } = event;\n // COMPAT: The composition end event isn't fired reliably in all browsers,\n // so we sometimes might end up stuck in a composition state even though we\n // aren't composing any more.\n if (ReactEditor.isComposing(editor) && nativeEvent.isComposing === false) {\n IS_COMPOSING.set(editor, false);\n setIsComposing(false);\n }\n if (isEventHandled(event, attributes.onKeyDown) || ReactEditor.isComposing(editor)) {\n return;\n }\n var {\n selection\n } = editor;\n var element = editor.children[selection !== null ? selection.focus.path[0] : 0];\n var isRTL = getDirection(Node.string(element)) === 'rtl';\n // COMPAT: Since we prevent the default behavior on\n // `beforeinput` events, the browser doesn't think there's ever\n // any history stack to undo or redo, so we have to manage these\n // hotkeys ourselves. (2019/11/06)\n if (Hotkeys.isRedo(nativeEvent)) {\n event.preventDefault();\n var maybeHistoryEditor = editor;\n if (typeof maybeHistoryEditor.redo === 'function') {\n maybeHistoryEditor.redo();\n }\n return;\n }\n if (Hotkeys.isUndo(nativeEvent)) {\n event.preventDefault();\n var _maybeHistoryEditor = editor;\n if (typeof _maybeHistoryEditor.undo === 'function') {\n _maybeHistoryEditor.undo();\n }\n return;\n }\n // COMPAT: Certain browsers don't handle the selection updates\n // properly. In Chrome, the selection isn't properly extended.\n // And in Firefox, the selection isn't properly collapsed.\n // (2017/10/17)\n if (Hotkeys.isMoveLineBackward(nativeEvent)) {\n event.preventDefault();\n Transforms.move(editor, {\n unit: 'line',\n reverse: true\n });\n return;\n }\n if (Hotkeys.isMoveLineForward(nativeEvent)) {\n event.preventDefault();\n Transforms.move(editor, {\n unit: 'line'\n });\n return;\n }\n if (Hotkeys.isExtendLineBackward(nativeEvent)) {\n event.preventDefault();\n Transforms.move(editor, {\n unit: 'line',\n edge: 'focus',\n reverse: true\n });\n return;\n }\n if (Hotkeys.isExtendLineForward(nativeEvent)) {\n event.preventDefault();\n Transforms.move(editor, {\n unit: 'line',\n edge: 'focus'\n });\n return;\n }\n // COMPAT: If a void node is selected, or a zero-width text node\n // adjacent to an inline is selected, we need to handle these\n // hotkeys manually because browsers won't be able to skip over\n // the void node with the zero-width space not being an empty\n // string.\n if (Hotkeys.isMoveBackward(nativeEvent)) {\n event.preventDefault();\n if (selection && Range.isCollapsed(selection)) {\n Transforms.move(editor, {\n reverse: !isRTL\n });\n } else {\n Transforms.collapse(editor, {\n edge: isRTL ? 'end' : 'start'\n });\n }\n return;\n }\n if (Hotkeys.isMoveForward(nativeEvent)) {\n event.preventDefault();\n if (selection && Range.isCollapsed(selection)) {\n Transforms.move(editor, {\n reverse: isRTL\n });\n } else {\n Transforms.collapse(editor, {\n edge: isRTL ? 'start' : 'end'\n });\n }\n return;\n }\n if (Hotkeys.isMoveWordBackward(nativeEvent)) {\n event.preventDefault();\n if (selection && Range.isExpanded(selection)) {\n Transforms.collapse(editor, {\n edge: 'focus'\n });\n }\n Transforms.move(editor, {\n unit: 'word',\n reverse: !isRTL\n });\n return;\n }\n if (Hotkeys.isMoveWordForward(nativeEvent)) {\n event.preventDefault();\n if (selection && Range.isExpanded(selection)) {\n Transforms.collapse(editor, {\n edge: 'focus'\n });\n }\n Transforms.move(editor, {\n unit: 'word',\n reverse: isRTL\n });\n return;\n }\n // COMPAT: Certain browsers don't support the `beforeinput` event, so we\n // fall back to guessing at the input intention for hotkeys.\n // COMPAT: In iOS, some of these hotkeys are handled in the\n if (!HAS_BEFORE_INPUT_SUPPORT) {\n // We don't have a core behavior for these, but they change the\n // DOM if we don't prevent them, so we have to.\n if (Hotkeys.isBold(nativeEvent) || Hotkeys.isItalic(nativeEvent) || Hotkeys.isTransposeCharacter(nativeEvent)) {\n event.preventDefault();\n return;\n }\n if (Hotkeys.isSoftBreak(nativeEvent)) {\n event.preventDefault();\n Editor.insertSoftBreak(editor);\n return;\n }\n if (Hotkeys.isSplitBlock(nativeEvent)) {\n event.preventDefault();\n Editor.insertBreak(editor);\n return;\n }\n if (Hotkeys.isDeleteBackward(nativeEvent)) {\n event.preventDefault();\n if (selection && Range.isExpanded(selection)) {\n Editor.deleteFragment(editor, {\n direction: 'backward'\n });\n } else {\n Editor.deleteBackward(editor);\n }\n return;\n }\n if (Hotkeys.isDeleteForward(nativeEvent)) {\n event.preventDefault();\n if (selection && Range.isExpanded(selection)) {\n Editor.deleteFragment(editor, {\n direction: 'forward'\n });\n } else {\n Editor.deleteForward(editor);\n }\n return;\n }\n if (Hotkeys.isDeleteLineBackward(nativeEvent)) {\n event.preventDefault();\n if (selection && Range.isExpanded(selection)) {\n Editor.deleteFragment(editor, {\n direction: 'backward'\n });\n } else {\n Editor.deleteBackward(editor, {\n unit: 'line'\n });\n }\n return;\n }\n if (Hotkeys.isDeleteLineForward(nativeEvent)) {\n event.preventDefault();\n if (selection && Range.isExpanded(selection)) {\n Editor.deleteFragment(editor, {\n direction: 'forward'\n });\n } else {\n Editor.deleteForward(editor, {\n unit: 'line'\n });\n }\n return;\n }\n if (Hotkeys.isDeleteWordBackward(nativeEvent)) {\n event.preventDefault();\n if (selection && Range.isExpanded(selection)) {\n Editor.deleteFragment(editor, {\n direction: 'backward'\n });\n } else {\n Editor.deleteBackward(editor, {\n unit: 'word'\n });\n }\n return;\n }\n if (Hotkeys.isDeleteWordForward(nativeEvent)) {\n event.preventDefault();\n if (selection && Range.isExpanded(selection)) {\n Editor.deleteFragment(editor, {\n direction: 'forward'\n });\n } else {\n Editor.deleteForward(editor, {\n unit: 'word'\n });\n }\n return;\n }\n } else {\n if (IS_CHROME || IS_WEBKIT) {\n // COMPAT: Chrome and Safari support `beforeinput` event but do not fire\n // an event when deleting backwards in a selected void inline node\n if (selection && (Hotkeys.isDeleteBackward(nativeEvent) || Hotkeys.isDeleteForward(nativeEvent)) && Range.isCollapsed(selection)) {\n var currentNode = Node.parent(editor, selection.anchor.path);\n if (Element$1.isElement(currentNode) && Editor.isVoid(editor, currentNode) && (Editor.isInline(editor, currentNode) || Editor.isBlock(editor, currentNode))) {\n event.preventDefault();\n Editor.deleteBackward(editor, {\n unit: 'block'\n });\n return;\n }\n }\n }\n }\n }\n }, [readOnly, editor, attributes.onKeyDown]),\n onPaste: useCallback(event => {\n if (!readOnly && ReactEditor.hasEditableTarget(editor, event.target) && !isEventHandled(event, attributes.onPaste)) {\n // COMPAT: Certain browsers don't support the `beforeinput` event, so we\n // fall back to React's `onPaste` here instead.\n // COMPAT: Firefox, Chrome and Safari don't emit `beforeinput` events\n // when \"paste without formatting\" is used, so fallback. (2020/02/20)\n // COMPAT: Safari InputEvents generated by pasting won't include\n // application/x-slate-fragment items, so use the\n // ClipboardEvent here. (2023/03/15)\n if (!HAS_BEFORE_INPUT_SUPPORT || isPlainTextOnlyPaste(event.nativeEvent) || IS_WEBKIT) {\n event.preventDefault();\n ReactEditor.insertData(editor, event.clipboardData);\n }\n }\n }, [readOnly, editor, attributes.onPaste])\n }), /*#__PURE__*/React.createElement(Children, {\n decorations: decorations,\n node: editor,\n renderElement: renderElement,\n renderPlaceholder: renderPlaceholder,\n renderLeaf: renderLeaf,\n selection: editor.selection\n }))))));\n});\n/**\n * The default placeholder element\n */\nvar DefaultPlaceholder = _ref => {\n var {\n attributes,\n children\n } = _ref;\n return (\n /*#__PURE__*/\n // COMPAT: Artificially add a line-break to the end on the placeholder element\n // to prevent Android IMEs to pick up its content in autocorrect and to auto-capitalize the first letter\n React.createElement(\"span\", _objectSpread$1({}, attributes), children, IS_ANDROID && /*#__PURE__*/React.createElement(\"br\", null))\n );\n};\n/**\n * A default memoized decorate function.\n */\nvar defaultDecorate = () => [];\n/**\n * A default implement to scroll dom range into view.\n */\nvar defaultScrollSelectionIntoView = (editor, domRange) => {\n // This was affecting the selection of multiple blocks and dragging behavior,\n // so enabled only if the selection has been collapsed.\n if (domRange.getBoundingClientRect && (!editor.selection || editor.selection && Range.isCollapsed(editor.selection))) {\n var leafEl = domRange.startContainer.parentElement;\n leafEl.getBoundingClientRect = domRange.getBoundingClientRect.bind(domRange);\n scrollIntoView(leafEl, {\n scrollMode: 'if-needed'\n });\n // @ts-expect-error an unorthodox delete D:\n delete leafEl.getBoundingClientRect;\n }\n};\n/**\n * Check if an event is overrided by a handler.\n */\nvar isEventHandled = (event, handler) => {\n if (!handler) {\n return false;\n }\n // The custom event handler may return a boolean to specify whether the event\n // shall be treated as being handled or not.\n var shouldTreatEventAsHandled = handler(event);\n if (shouldTreatEventAsHandled != null) {\n return shouldTreatEventAsHandled;\n }\n return event.isDefaultPrevented() || event.isPropagationStopped();\n};\n/**\n * Check if the event's target is an input element\n */\nvar isDOMEventTargetInput = event => {\n return isDOMNode(event.target) && (event.target instanceof HTMLInputElement || event.target instanceof HTMLTextAreaElement);\n};\n/**\n * Check if a DOM event is overrided by a handler.\n */\nvar isDOMEventHandled = (event, handler) => {\n if (!handler) {\n return false;\n }\n // The custom event handler may return a boolean to specify whether the event\n // shall be treated as being handled or not.\n var shouldTreatEventAsHandled = handler(event);\n if (shouldTreatEventAsHandled != null) {\n return shouldTreatEventAsHandled;\n }\n return event.defaultPrevented;\n};\n\n/**\n * A React context for sharing the `focused` state of the editor.\n */\nvar FocusedContext = /*#__PURE__*/createContext(false);\n/**\n * Get the current `focused` state of the editor.\n */\nvar useFocused = () => {\n return useContext(FocusedContext);\n};\n\nfunction isError(error) {\n return error instanceof Error;\n}\n/**\n * A React context for sharing the editor selector context in a way to control rerenders\n */\nvar SlateSelectorContext = /*#__PURE__*/createContext({});\nvar refEquality = (a, b) => a === b;\n/**\n * use redux style selectors to prevent rerendering on every keystroke.\n * Bear in mind rerendering can only prevented if the returned value is a value type or for reference types (e.g. objects and arrays) add a custom equality function.\n *\n * Example:\n * ```\n * const isSelectionActive = useSlateSelector(editor => Boolean(editor.selection));\n * ```\n */\nfunction useSlateSelector(selector) {\n var equalityFn = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : refEquality;\n var [, forceRender] = useReducer(s => s + 1, 0);\n var context = useContext(SlateSelectorContext);\n if (!context) {\n throw new Error(\"The `useSlateSelector` hook must be used inside the <Slate> component's context.\");\n }\n var {\n getSlate,\n addEventListener\n } = context;\n var latestSubscriptionCallbackError = useRef();\n var latestSelector = useRef(() => null);\n var latestSelectedState = useRef(null);\n var selectedState;\n try {\n if (selector !== latestSelector.current || latestSubscriptionCallbackError.current) {\n selectedState = selector(getSlate());\n } else {\n selectedState = latestSelectedState.current;\n }\n } catch (err) {\n if (latestSubscriptionCallbackError.current && isError(err)) {\n err.message += \"\\nThe error may be correlated with this previous error:\\n\".concat(latestSubscriptionCallbackError.current.stack, \"\\n\\n\");\n }\n throw err;\n }\n useIsomorphicLayoutEffect(() => {\n latestSelector.current = selector;\n latestSelectedState.current = selectedState;\n latestSubscriptionCallbackError.current = undefined;\n });\n useIsomorphicLayoutEffect(() => {\n function checkForUpdates() {\n try {\n var newSelectedState = latestSelector.current(getSlate());\n if (equalityFn(newSelectedState, latestSelectedState.current)) {\n return;\n }\n latestSelectedState.current = newSelectedState;\n } catch (err) {\n // we ignore all errors here, since when the component\n // is re-rendered, the selectors are called again, and\n // will throw again, if neither props nor store state\n // changed\n if (err instanceof Error) {\n latestSubscriptionCallbackError.current = err;\n } else {\n latestSubscriptionCallbackError.current = new Error(String(err));\n }\n }\n forceRender();\n }\n var unsubscribe = addEventListener(checkForUpdates);\n checkForUpdates();\n return () => unsubscribe();\n },\n // don't rerender on equalityFn change since we want to be able to define it inline\n [addEventListener, getSlate]);\n return selectedState;\n}\n/**\n * Create selector context with editor updating on every editor change\n */\nfunction useSelectorContext(editor) {\n var eventListeners = useRef([]).current;\n var slateRef = useRef({\n editor\n }).current;\n var onChange = useCallback(editor => {\n slateRef.editor = editor;\n eventListeners.forEach(listener => listener(editor));\n }, [eventListeners, slateRef]);\n var selectorContext = useMemo(() => {\n return {\n getSlate: () => slateRef.editor,\n addEventListener: callback => {\n eventListeners.push(callback);\n return () => {\n eventListeners.splice(eventListeners.indexOf(callback), 1);\n };\n }\n };\n }, [eventListeners, slateRef]);\n return {\n selectorContext,\n onChange\n };\n}\n\nvar _excluded = [\"editor\", \"children\", \"onChange\", \"onSelectionChange\", \"onValueChange\", \"initialValue\"];\n/**\n * A wrapper around the provider to handle `onChange` events, because the editor\n * is a mutable singleton so it won't ever register as \"changed\" otherwise.\n */\nvar Slate = props => {\n var {\n editor,\n children,\n onChange,\n onSelectionChange,\n onValueChange,\n initialValue\n } = props,\n rest = _objectWithoutProperties(props, _excluded);\n var [context, setContext] = React.useState(() => {\n if (!Node.isNodeList(initialValue)) {\n throw new Error(\"[Slate] initialValue is invalid! Expected a list of elements but got: \".concat(Scrubber.stringify(initialValue)));\n }\n if (!Editor.isEditor(editor)) {\n throw new Error(\"[Slate] editor is invalid! You passed: \".concat(Scrubber.stringify(editor)));\n }\n editor.children = initialValue;\n Object.assign(editor, rest);\n return {\n v: 0,\n editor\n };\n });\n var {\n selectorContext,\n onChange: handleSelectorChange\n } = useSelectorContext(editor);\n var onContextChange = useCallback(options => {\n var _options$operation;\n if (onChange) {\n onChange(editor.children);\n }\n switch (options === null || options === void 0 || (_options$operation = options.operation) === null || _options$operation === void 0 ? void 0 : _options$operation.type) {\n case 'set_selection':\n onSelectionChange === null || onSelectionChange === void 0 || onSelectionChange(editor.selection);\n break;\n default:\n onValueChange === null || onValueChange === void 0 || onValueChange(editor.children);\n }\n setContext(prevContext => ({\n v: prevContext.v + 1,\n editor\n }));\n handleSelectorChange(editor);\n }, [editor, handleSelectorChange, onChange, onSelectionChange, onValueChange]);\n useEffect(() => {\n EDITOR_TO_ON_CHANGE.set(editor, onContextChange);\n return () => {\n EDITOR_TO_ON_CHANGE.set(editor, () => {});\n };\n }, [editor, onContextChange]);\n var [isFocused, setIsFocused] = useState(ReactEditor.isFocused(editor));\n useEffect(() => {\n setIsFocused(ReactEditor.isFocused(editor));\n }, [editor]);\n useIsomorphicLayoutEffect(() => {\n var fn = () => setIsFocused(ReactEditor.isFocused(editor));\n if (REACT_MAJOR_VERSION >= 17) {\n // In React >= 17 onFocus and onBlur listen to the focusin and focusout events during the bubbling phase.\n // Therefore in order for <Editable />'s handlers to run first, which is necessary for ReactEditor.isFocused(editor)\n // to return the correct value, we have to listen to the focusin and focusout events without useCapture here.\n document.addEventListener('focusin', fn);\n document.addEventListener('focusout', fn);\n return () => {\n document.removeEventListener('focusin', fn);\n document.removeEventListener('focusout', fn);\n };\n } else {\n document.addEventListener('focus', fn, true);\n document.addEventListener('blur', fn, true);\n return () => {\n document.removeEventListener('focus', fn, true);\n document.removeEventListener('blur', fn, true);\n };\n }\n }, []);\n return /*#__PURE__*/React.createElement(SlateSelectorContext.Provider, {\n value: selectorContext\n }, /*#__PURE__*/React.createElement(SlateContext.Provider, {\n value: context\n }, /*#__PURE__*/React.createElement(EditorContext.Provider, {\n value: context.editor\n }, /*#__PURE__*/React.createElement(FocusedContext.Provider, {\n value: isFocused\n }, children))));\n};\n\n/**\n * Get the current editor object from the React context.\n * @deprecated Use useSlateStatic instead.\n */\nvar useEditor = () => {\n var editor = useContext(EditorContext);\n if (!editor) {\n throw new Error(\"The `useEditor` hook must be used inside the <Slate> component's context.\");\n }\n return editor;\n};\n\n/**\n * Get the current slate selection.\n * Only triggers a rerender when the selection actually changes\n */\nvar useSlateSelection = () => {\n return useSlateSelector(editor => editor.selection, isSelectionEqual);\n};\nvar isSelectionEqual = (a, b) => {\n if (!a && !b) return true;\n if (!a || !b) return false;\n return Range.equals(a, b);\n};\n\n/**\n * Utilities for single-line deletion\n */\nvar doRectsIntersect = (rect, compareRect) => {\n var middle = (compareRect.top + compareRect.bottom) / 2;\n return rect.top <= middle && rect.bottom >= middle;\n};\nvar areRangesSameLine = (editor, range1, range2) => {\n var rect1 = ReactEditor.toDOMRange(editor, range1).getBoundingClientRect();\n var rect2 = ReactEditor.toDOMRange(editor, range2).getBoundingClientRect();\n return doRectsIntersect(rect1, rect2) && doRectsIntersect(rect2, rect1);\n};\n/**\n * A helper utility that returns the end portion of a `Range`\n * which is located on a single line.\n *\n * @param {Editor} editor The editor object to compare against\n * @param {Range} parentRange The parent range to compare against\n * @returns {Range} A valid portion of the parentRange which is one a single line\n */\nvar findCurrentLineRange = (editor, parentRange) => {\n var parentRangeBoundary = Editor.range(editor, Range.end(parentRange));\n var positions = Array.from(Editor.positions(editor, {\n at: parentRange\n }));\n var left = 0;\n var right = positions.length;\n var middle = Math.floor(right / 2);\n if (areRangesSameLine(editor, Editor.range(editor, positions[left]), parentRangeBoundary)) {\n return Editor.range(editor, positions[left], parentRangeBoundary);\n }\n if (positions.length < 2) {\n return Editor.range(editor, positions[positions.length - 1], parentRangeBoundary);\n }\n while (middle !== positions.length && middle !== left) {\n if (areRangesSameLine(editor, Editor.range(editor, positions[middle]), parentRangeBoundary)) {\n right = middle;\n } else {\n left = middle;\n }\n middle = Math.floor((left + right) / 2);\n }\n return Editor.range(editor, positions[right], parentRangeBoundary);\n};\n\nfunction ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }\nfunction _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }\n/**\n * `withReact` adds React and DOM specific behaviors to the editor.\n *\n * If you are using TypeScript, you must extend Slate's CustomTypes to use\n * this plugin.\n *\n * See https://docs.slatejs.org/concepts/11-typescript to learn how.\n */\nvar withReact = function withReact(editor) {\n var clipboardFormatKey = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'x-slate-fragment';\n var e = editor;\n var {\n apply,\n onChange,\n deleteBackward,\n addMark,\n removeMark\n } = e;\n // The WeakMap which maps a key to a specific HTMLElement must be scoped to the editor instance to\n // avoid collisions between editors in the DOM that share the same value.\n EDITOR_TO_KEY_TO_ELEMENT.set(e, new WeakMap());\n e.addMark = (key, value) => {\n var _EDITOR_TO_SCHEDULE_F, _EDITOR_TO_PENDING_DI;\n (_EDITOR_TO_SCHEDULE_F = EDITOR_TO_SCHEDULE_FLUSH.get(e)) === null || _EDITOR_TO_SCHEDULE_F === void 0 || _EDITOR_TO_SCHEDULE_F();\n if (!EDITOR_TO_PENDING_INSERTION_MARKS.get(e) && (_EDITOR_TO_PENDING_DI = EDITOR_TO_PENDING_DIFFS.get(e)) !== null && _EDITOR_TO_PENDING_DI !== void 0 && _EDITOR_TO_PENDING_DI.length) {\n // Ensure the current pending diffs originating from changes before the addMark\n // are applied with the current formatting\n EDITOR_TO_PENDING_INSERTION_MARKS.set(e, null);\n }\n EDITOR_TO_USER_MARKS.delete(e);\n addMark(key, value);\n };\n e.removeMark = key => {\n var _EDITOR_TO_PENDING_DI2;\n if (!EDITOR_TO_PENDING_INSERTION_MARKS.get(e) && (_EDITOR_TO_PENDING_DI2 = EDITOR_TO_PENDING_DIFFS.get(e)) !== null && _EDITOR_TO_PENDING_DI2 !== void 0 && _EDITOR_TO_PENDING_DI2.length) {\n // Ensure the current pending diffs originating from changes before the addMark\n // are applied with the current formatting\n EDITOR_TO_PENDING_INSERTION_MARKS.set(e, null);\n }\n EDITOR_TO_USER_MARKS.delete(e);\n removeMark(key);\n };\n e.deleteBackward = unit => {\n if (unit !== 'line') {\n return deleteBackward(unit);\n }\n if (e.selection && Range.isCollapsed(e.selection)) {\n var parentBlockEntry = Editor.above(e, {\n match: n => Element$1.isElement(n) && Editor.isBlock(e, n),\n at: e.selection\n });\n if (parentBlockEntry) {\n var [, parentBlockPath] = parentBlockEntry;\n var parentElementRange = Editor.range(e, parentBlockPath, e.selection.anchor);\n var currentLineRange = findCurrentLineRange(e, parentElementRange);\n if (!Range.isCollapsed(currentLineRange)) {\n Transforms.delete(e, {\n at: currentLineRange\n });\n }\n }\n }\n };\n // This attempts to reset the NODE_TO_KEY entry to the correct value\n // as apply() changes the object reference and hence invalidates the NODE_TO_KEY entry\n e.apply = op => {\n var matches = [];\n var pathRefMatches = [];\n var pendingDiffs = EDITOR_TO_PENDING_DIFFS.get(e);\n if (pendingDiffs !== null && pendingDiffs !== void 0 && pendingDiffs.length) {\n var transformed = pendingDiffs.map(textDiff => transformTextDiff(textDiff, op)).filter(Boolean);\n EDITOR_TO_PENDING_DIFFS.set(e, transformed);\n }\n var pendingSelection = EDITOR_TO_PENDING_SELECTION.get(e);\n if (pendingSelection) {\n EDITOR_TO_PENDING_SELECTION.set(e, transformPendingRange(e, pendingSelection, op));\n }\n var pendingAction = EDITOR_TO_PENDING_ACTION.get(e);\n if (pendingAction !== null && pendingAction !== void 0 && pendingAction.at) {\n var at = Point.isPoint(pendingAction === null || pendingAction === void 0 ? void 0 : pendingAction.at) ? transformPendingPoint(e, pendingAction.at, op) : transformPendingRange(e, pendingAction.at, op);\n EDITOR_TO_PENDING_ACTION.set(e, at ? _objectSpread(_objectSpread({}, pendingAction), {}, {\n at\n }) : null);\n }\n switch (op.type) {\n case 'insert_text':\n case 'remove_text':\n case 'set_node':\n case 'split_node':\n {\n matches.push(...getMatches(e, op.path));\n break;\n }\n case 'set_selection':\n {\n var _EDITOR_TO_USER_SELEC;\n // Selection was manually set, don't restore the user selection after the change.\n (_EDITOR_TO_USER_SELEC = EDITOR_TO_USER_SELECTION.get(e)) === null || _EDITOR_TO_USER_SELEC === void 0 || _EDITOR_TO_USER_SELEC.unref();\n EDITOR_TO_USER_SELECTION.delete(e);\n break;\n }\n case 'insert_node':\n case 'remove_node':\n {\n matches.push(...getMatches(e, Path.parent(op.path)));\n break;\n }\n case 'merge_node':\n {\n var prevPath = Path.previous(op.path);\n matches.push(...getMatches(e, prevPath));\n break;\n }\n case 'move_node':\n {\n var commonPath = Path.common(Path.parent(op.path), Path.parent(op.newPath));\n matches.push(...getMatches(e, commonPath));\n var changedPath;\n if (Path.isBefore(op.path, op.newPath)) {\n matches.push(...getMatches(e, Path.parent(op.path)));\n changedPath = op.newPath;\n } else {\n matches.push(...getMatches(e, Path.parent(op.newPath)));\n changedPath = op.path;\n }\n var changedNode = Node.get(editor, Path.parent(changedPath));\n var changedNodeKey = ReactEditor.findKey(e, changedNode);\n var changedPathRef = Editor.pathRef(e, Path.parent(changedPath));\n pathRefMatches.push([changedPathRef, changedNodeKey]);\n break;\n }\n }\n apply(op);\n switch (op.type) {\n case 'insert_node':\n case 'remove_node':\n case 'merge_node':\n case 'move_node':\n case 'split_node':\n {\n IS_NODE_MAP_DIRTY.set(e, true);\n }\n }\n for (var [path, key] of matches) {\n var [node] = Editor.node(e, path);\n NODE_TO_KEY.set(node, key);\n }\n for (var [pathRef, _key] of pathRefMatches) {\n if (pathRef.current) {\n var [_node] = Editor.node(e, pathRef.current);\n NODE_TO_KEY.set(_node, _key);\n }\n pathRef.unref();\n }\n };\n e.setFragmentData = data => {\n var {\n selection\n } = e;\n if (!selection) {\n return;\n }\n var [start, end] = Range.edges(selection);\n var startVoid = Editor.void(e, {\n at: start.path\n });\n var endVoid = Editor.void(e, {\n at: end.path\n });\n if (Range.isCollapsed(selection) && !startVoid) {\n return;\n }\n // Create a fake selection so that we can add a Base64-encoded copy of the\n // fragment to the HTML, to decode on future pastes.\n var domRange = ReactEditor.toDOMRange(e, selection);\n var contents = domRange.cloneContents();\n var attach = contents.childNodes[0];\n // Make sure attach is non-empty, since empty nodes will not get copied.\n contents.childNodes.forEach(node => {\n if (node.textContent && node.textContent.trim() !== '') {\n attach = node;\n }\n });\n // COMPAT: If the end node is a void node, we need to move the end of the\n // range from the void node's spacer span, to the end of the void node's\n // content, since the spacer is before void's content in the DOM.\n if (endVoid) {\n var [voidNode] = endVoid;\n var r = domRange.cloneRange();\n var domNode = ReactEditor.toDOMNode(e, voidNode);\n r.setEndAfter(domNode);\n contents = r.cloneContents();\n }\n // COMPAT: If the start node is a void node, we need to attach the encoded\n // fragment to the void node's content node instead of the spacer, because\n // attaching it to empty `<div>/<span>` nodes will end up having it erased by\n // most browsers. (2018/04/27)\n if (startVoid) {\n attach = contents.querySelector('[data-slate-spacer]');\n }\n // Remove any zero-width space spans from the cloned DOM so that they don't\n // show up elsewhere when pasted.\n Array.from(contents.querySelectorAll('[data-slate-zero-width]')).forEach(zw => {\n var isNewline = zw.getAttribute('data-slate-zero-width') === 'n';\n zw.textContent = isNewline ? '\\n' : '';\n });\n // Set a `data-slate-fragment` attribute on a non-empty node, so it shows up\n // in the HTML, and can be used for intra-Slate pasting. If it's a text\n // node, wrap it in a `<span>` so we have something to set an attribute on.\n if (isDOMText(attach)) {\n var span = attach.ownerDocument.createElement('span');\n // COMPAT: In Chrome and Safari, if we don't add the `white-space` style\n // then leading and trailing spaces will be ignored. (2017/09/21)\n span.style.whiteSpace = 'pre';\n span.appendChild(attach);\n contents.appendChild(span);\n attach = span;\n }\n var fragment = e.getFragment();\n var string = JSON.stringify(fragment);\n var encoded = window.btoa(encodeURIComponent(string));\n attach.setAttribute('data-slate-fragment', encoded);\n data.setData(\"application/\".concat(clipboardFormatKey), encoded);\n // Add the content to a <div> so that we can get its inner HTML.\n var div = contents.ownerDocument.createElement('div');\n div.appendChild(contents);\n div.setAttribute('hidden', 'true');\n contents.ownerDocument.body.appendChild(div);\n data.setData('text/html', div.innerHTML);\n data.setData('text/plain', getPlainText(div));\n contents.ownerDocument.body.removeChild(div);\n return data;\n };\n e.insertData = data => {\n if (!e.insertFragmentData(data)) {\n e.insertTextData(data);\n }\n };\n e.insertFragmentData = data => {\n /**\n * Checking copied fragment from application/x-slate-fragment or data-slate-fragment\n */\n var fragment = data.getData(\"application/\".concat(clipboardFormatKey)) || getSlateFragmentAttribute(data);\n if (fragment) {\n var decoded = decodeURIComponent(window.atob(fragment));\n var parsed = JSON.parse(decoded);\n e.insertFragment(parsed);\n return true;\n }\n return false;\n };\n e.insertTextData = data => {\n var text = data.getData('text/plain');\n if (text) {\n var lines = text.split(/\\r\\n|\\r|\\n/);\n var split = false;\n for (var line of lines) {\n if (split) {\n Transforms.splitNodes(e, {\n always: true\n });\n }\n e.insertText(line);\n split = true;\n }\n return true;\n }\n return false;\n };\n e.onChange = options => {\n // COMPAT: React < 18 doesn't batch `setState` hook calls, which means\n // that the children and selection can get out of sync for one render\n // pass. So we have to use this unstable API to ensure it batches them.\n // (2019/12/03)\n // https://github.com/facebook/react/issues/14259#issuecomment-439702367\n var maybeBatchUpdates = REACT_MAJOR_VERSION < 18 ? ReactDOM.unstable_batchedUpdates : callback => callback();\n maybeBatchUpdates(() => {\n var onContextChange = EDITOR_TO_ON_CHANGE.get(e);\n if (onContextChange) {\n onContextChange(options);\n }\n onChange(options);\n });\n };\n return e;\n};\nvar getMatches = (e, path) => {\n var matches = [];\n for (var [n, p] of Editor.levels(e, {\n at: path\n })) {\n var key = ReactEditor.findKey(e, n);\n matches.push([p, key]);\n }\n return matches;\n};\n\nexport { DefaultElement, DefaultLeaf, DefaultPlaceholder, Editable, NODE_TO_INDEX, NODE_TO_PARENT, ReactEditor, Slate, useComposing, useEditor, useFocused, useReadOnly, useSelected, useSlate, useSlateSelection, useSlateSelector, useSlateStatic, useSlateWithV, withReact };\n//# sourceMappingURL=index.es.js.map\n","/**\n * marked v15.0.12 - a markdown parser\n * Copyright (c) 2011-2025, Christopher Jeffrey. (MIT Licensed)\n * https://github.com/markedjs/marked\n */\n\n/**\n * DO NOT EDIT THIS FILE\n * The code in this file is generated from files in ./src/\n */\n\n\n// src/defaults.ts\nfunction _getDefaults() {\n return {\n async: false,\n breaks: false,\n extensions: null,\n gfm: true,\n hooks: null,\n pedantic: false,\n renderer: null,\n silent: false,\n tokenizer: null,\n walkTokens: null\n };\n}\nvar _defaults = _getDefaults();\nfunction changeDefaults(newDefaults) {\n _defaults = newDefaults;\n}\n\n// src/rules.ts\nvar noopTest = { exec: () => null };\nfunction edit(regex, opt = \"\") {\n let source = typeof regex === \"string\" ? regex : regex.source;\n const obj = {\n replace: (name, val) => {\n let valSource = typeof val === \"string\" ? val : val.source;\n valSource = valSource.replace(other.caret, \"$1\");\n source = source.replace(name, valSource);\n return obj;\n },\n getRegex: () => {\n return new RegExp(source, opt);\n }\n };\n return obj;\n}\nvar other = {\n codeRemoveIndent: /^(?: {1,4}| {0,3}\\t)/gm,\n outputLinkReplace: /\\\\([\\[\\]])/g,\n indentCodeCompensation: /^(\\s+)(?:```)/,\n beginningSpace: /^\\s+/,\n endingHash: /#$/,\n startingSpaceChar: /^ /,\n endingSpaceChar: / $/,\n nonSpaceChar: /[^ ]/,\n newLineCharGlobal: /\\n/g,\n tabCharGlobal: /\\t/g,\n multipleSpaceGlobal: /\\s+/g,\n blankLine: /^[ \\t]*$/,\n doubleBlankLine: /\\n[ \\t]*\\n[ \\t]*$/,\n blockquoteStart: /^ {0,3}>/,\n blockquoteSetextReplace: /\\n {0,3}((?:=+|-+) *)(?=\\n|$)/g,\n blockquoteSetextReplace2: /^ {0,3}>[ \\t]?/gm,\n listReplaceTabs: /^\\t+/,\n listReplaceNesting: /^ {1,4}(?=( {4})*[^ ])/g,\n listIsTask: /^\\[[ xX]\\] /,\n listReplaceTask: /^\\[[ xX]\\] +/,\n anyLine: /\\n.*\\n/,\n hrefBrackets: /^<(.*)>$/,\n tableDelimiter: /[:|]/,\n tableAlignChars: /^\\||\\| *$/g,\n tableRowBlankLine: /\\n[ \\t]*$/,\n tableAlignRight: /^ *-+: *$/,\n tableAlignCenter: /^ *:-+: *$/,\n tableAlignLeft: /^ *:-+ *$/,\n startATag: /^<a /i,\n endATag: /^<\\/a>/i,\n startPreScriptTag: /^<(pre|code|kbd|script)(\\s|>)/i,\n endPreScriptTag: /^<\\/(pre|code|kbd|script)(\\s|>)/i,\n startAngleBracket: /^</,\n endAngleBracket: />$/,\n pedanticHrefTitle: /^([^'\"]*[^\\s])\\s+(['\"])(.*)\\2/,\n unicodeAlphaNumeric: /[\\p{L}\\p{N}]/u,\n escapeTest: /[&<>\"']/,\n escapeReplace: /[&<>\"']/g,\n escapeTestNoEncode: /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/,\n escapeReplaceNoEncode: /[<>\"']|&(?!(#\\d{1,7}|#[Xx][a-fA-F0-9]{1,6}|\\w+);)/g,\n unescapeTest: /&(#(?:\\d+)|(?:#x[0-9A-Fa-f]+)|(?:\\w+));?/ig,\n caret: /(^|[^\\[])\\^/g,\n percentDecode: /%25/g,\n findPipe: /\\|/g,\n splitPipe: / \\|/,\n slashPipe: /\\\\\\|/g,\n carriageReturn: /\\r\\n|\\r/g,\n spaceLine: /^ +$/gm,\n notSpaceStart: /^\\S*/,\n endingNewline: /\\n$/,\n listItemRegex: (bull) => new RegExp(`^( {0,3}${bull})((?:[\t ][^\\\\n]*)?(?:\\\\n|$))`),\n nextBulletRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:[*+-]|\\\\d{1,9}[.)])((?:[ \t][^\\\\n]*)?(?:\\\\n|$))`),\n hrRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}((?:- *){3,}|(?:_ *){3,}|(?:\\\\* *){3,})(?:\\\\n+|$)`),\n fencesBeginRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}(?:\\`\\`\\`|~~~)`),\n headingBeginRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}#`),\n htmlBeginRegex: (indent) => new RegExp(`^ {0,${Math.min(3, indent - 1)}}<(?:[a-z].*>|!--)`, \"i\")\n};\nvar newline = /^(?:[ \\t]*(?:\\n|$))+/;\nvar blockCode = /^((?: {4}| {0,3}\\t)[^\\n]+(?:\\n(?:[ \\t]*(?:\\n|$))*)?)+/;\nvar fences = /^ {0,3}(`{3,}(?=[^`\\n]*(?:\\n|$))|~{3,})([^\\n]*)(?:\\n|$)(?:|([\\s\\S]*?)(?:\\n|$))(?: {0,3}\\1[~`]* *(?=\\n|$)|$)/;\nvar hr = /^ {0,3}((?:-[\\t ]*){3,}|(?:_[ \\t]*){3,}|(?:\\*[ \\t]*){3,})(?:\\n+|$)/;\nvar heading = /^ {0,3}(#{1,6})(?=\\s|$)(.*)(?:\\n+|$)/;\nvar bullet = /(?:[*+-]|\\d{1,9}[.)])/;\nvar lheadingCore = /^(?!bull |blockCode|fences|blockquote|heading|html|table)((?:.|\\n(?!\\s*?\\n|bull |blockCode|fences|blockquote|heading|html|table))+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/;\nvar lheading = edit(lheadingCore).replace(/bull/g, bullet).replace(/blockCode/g, /(?: {4}| {0,3}\\t)/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}/).replace(/html/g, / {0,3}<[^\\n>]+>\\n/).replace(/\\|table/g, \"\").getRegex();\nvar lheadingGfm = edit(lheadingCore).replace(/bull/g, bullet).replace(/blockCode/g, /(?: {4}| {0,3}\\t)/).replace(/fences/g, / {0,3}(?:`{3,}|~{3,})/).replace(/blockquote/g, / {0,3}>/).replace(/heading/g, / {0,3}#{1,6}/).replace(/html/g, / {0,3}<[^\\n>]+>\\n/).replace(/table/g, / {0,3}\\|?(?:[:\\- ]*\\|)+[\\:\\- ]*\\n/).getRegex();\nvar _paragraph = /^([^\\n]+(?:\\n(?!hr|heading|lheading|blockquote|fences|list|html|table| +\\n)[^\\n]+)*)/;\nvar blockText = /^[^\\n]+/;\nvar _blockLabel = /(?!\\s*\\])(?:\\\\.|[^\\[\\]\\\\])+/;\nvar def = edit(/^ {0,3}\\[(label)\\]: *(?:\\n[ \\t]*)?([^<\\s][^\\s]*|<.*?>)(?:(?: +(?:\\n[ \\t]*)?| *\\n[ \\t]*)(title))? *(?:\\n+|$)/).replace(\"label\", _blockLabel).replace(\"title\", /(?:\"(?:\\\\\"?|[^\"\\\\])*\"|'[^'\\n]*(?:\\n[^'\\n]+)*\\n?'|\\([^()]*\\))/).getRegex();\nvar list = edit(/^( {0,3}bull)([ \\t][^\\n]+?)?(?:\\n|$)/).replace(/bull/g, bullet).getRegex();\nvar _tag = \"address|article|aside|base|basefont|blockquote|body|caption|center|col|colgroup|dd|details|dialog|dir|div|dl|dt|fieldset|figcaption|figure|footer|form|frame|frameset|h[1-6]|head|header|hr|html|iframe|legend|li|link|main|menu|menuitem|meta|nav|noframes|ol|optgroup|option|p|param|search|section|summary|table|tbody|td|tfoot|th|thead|title|tr|track|ul\";\nvar _comment = /<!--(?:-?>|[\\s\\S]*?(?:-->|$))/;\nvar html = edit(\n \"^ {0,3}(?:<(script|pre|style|textarea)[\\\\s>][\\\\s\\\\S]*?(?:</\\\\1>[^\\\\n]*\\\\n+|$)|comment[^\\\\n]*(\\\\n+|$)|<\\\\?[\\\\s\\\\S]*?(?:\\\\?>\\\\n*|$)|<![A-Z][\\\\s\\\\S]*?(?:>\\\\n*|$)|<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?(?:\\\\]\\\\]>\\\\n*|$)|</?(tag)(?: +|\\\\n|/?>)[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$)|<(?!script|pre|style|textarea)([a-z][\\\\w-]*)(?:attribute)*? */?>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$)|</(?!script|pre|style|textarea)[a-z][\\\\w-]*\\\\s*>(?=[ \\\\t]*(?:\\\\n|$))[\\\\s\\\\S]*?(?:(?:\\\\n[ \t]*)+\\\\n|$))\",\n \"i\"\n).replace(\"comment\", _comment).replace(\"tag\", _tag).replace(\"attribute\", / +[a-zA-Z:_][\\w.:-]*(?: *= *\"[^\"\\n]*\"| *= *'[^'\\n]*'| *= *[^\\s\"'=<>`]+)?/).getRegex();\nvar paragraph = edit(_paragraph).replace(\"hr\", hr).replace(\"heading\", \" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"|lheading\", \"\").replace(\"|table\", \"\").replace(\"blockquote\", \" {0,3}>\").replace(\"fences\", \" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\", \" {0,3}(?:[*+-]|1[.)]) \").replace(\"html\", \"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\", _tag).getRegex();\nvar blockquote = edit(/^( {0,3}> ?(paragraph|[^\\n]*)(?:\\n|$))+/).replace(\"paragraph\", paragraph).getRegex();\nvar blockNormal = {\n blockquote,\n code: blockCode,\n def,\n fences,\n heading,\n hr,\n html,\n lheading,\n list,\n newline,\n paragraph,\n table: noopTest,\n text: blockText\n};\nvar gfmTable = edit(\n \"^ *([^\\\\n ].*)\\\\n {0,3}((?:\\\\| *)?:?-+:? *(?:\\\\| *:?-+:? *)*(?:\\\\| *)?)(?:\\\\n((?:(?! *\\\\n|hr|heading|blockquote|code|fences|list|html).*(?:\\\\n|$))*)\\\\n*|$)\"\n).replace(\"hr\", hr).replace(\"heading\", \" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"blockquote\", \" {0,3}>\").replace(\"code\", \"(?: {4}| {0,3}\t)[^\\\\n]\").replace(\"fences\", \" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\", \" {0,3}(?:[*+-]|1[.)]) \").replace(\"html\", \"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\", _tag).getRegex();\nvar blockGfm = {\n ...blockNormal,\n lheading: lheadingGfm,\n table: gfmTable,\n paragraph: edit(_paragraph).replace(\"hr\", hr).replace(\"heading\", \" {0,3}#{1,6}(?:\\\\s|$)\").replace(\"|lheading\", \"\").replace(\"table\", gfmTable).replace(\"blockquote\", \" {0,3}>\").replace(\"fences\", \" {0,3}(?:`{3,}(?=[^`\\\\n]*\\\\n)|~{3,})[^\\\\n]*\\\\n\").replace(\"list\", \" {0,3}(?:[*+-]|1[.)]) \").replace(\"html\", \"</?(?:tag)(?: +|\\\\n|/?>)|<(?:script|pre|style|textarea|!--)\").replace(\"tag\", _tag).getRegex()\n};\nvar blockPedantic = {\n ...blockNormal,\n html: edit(\n `^ *(?:comment *(?:\\\\n|\\\\s*$)|<(tag)[\\\\s\\\\S]+?</\\\\1> *(?:\\\\n{2,}|\\\\s*$)|<tag(?:\"[^\"]*\"|'[^']*'|\\\\s[^'\"/>\\\\s]*)*?/?> *(?:\\\\n{2,}|\\\\s*$))`\n ).replace(\"comment\", _comment).replace(/tag/g, \"(?!(?:a|em|strong|small|s|cite|q|dfn|abbr|data|time|code|var|samp|kbd|sub|sup|i|b|u|mark|ruby|rt|rp|bdi|bdo|span|br|wbr|ins|del|img)\\\\b)\\\\w+(?!:|[^\\\\w\\\\s@]*@)\\\\b\").getRegex(),\n def: /^ *\\[([^\\]]+)\\]: *<?([^\\s>]+)>?(?: +([\"(][^\\n]+[\")]))? *(?:\\n+|$)/,\n heading: /^(#{1,6})(.*)(?:\\n+|$)/,\n fences: noopTest,\n // fences not supported\n lheading: /^(.+?)\\n {0,3}(=+|-+) *(?:\\n+|$)/,\n paragraph: edit(_paragraph).replace(\"hr\", hr).replace(\"heading\", \" *#{1,6} *[^\\n]\").replace(\"lheading\", lheading).replace(\"|table\", \"\").replace(\"blockquote\", \" {0,3}>\").replace(\"|fences\", \"\").replace(\"|list\", \"\").replace(\"|html\", \"\").replace(\"|tag\", \"\").getRegex()\n};\nvar escape = /^\\\\([!\"#$%&'()*+,\\-./:;<=>?@\\[\\]\\\\^_`{|}~])/;\nvar inlineCode = /^(`+)([^`]|[^`][\\s\\S]*?[^`])\\1(?!`)/;\nvar br = /^( {2,}|\\\\)\\n(?!\\s*$)/;\nvar inlineText = /^(`+|[^`])(?:(?= {2,}\\n)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*_]|\\b_|$)|[^ ](?= {2,}\\n)))/;\nvar _punctuation = /[\\p{P}\\p{S}]/u;\nvar _punctuationOrSpace = /[\\s\\p{P}\\p{S}]/u;\nvar _notPunctuationOrSpace = /[^\\s\\p{P}\\p{S}]/u;\nvar punctuation = edit(/^((?![*_])punctSpace)/, \"u\").replace(/punctSpace/g, _punctuationOrSpace).getRegex();\nvar _punctuationGfmStrongEm = /(?!~)[\\p{P}\\p{S}]/u;\nvar _punctuationOrSpaceGfmStrongEm = /(?!~)[\\s\\p{P}\\p{S}]/u;\nvar _notPunctuationOrSpaceGfmStrongEm = /(?:[^\\s\\p{P}\\p{S}]|~)/u;\nvar blockSkip = /\\[[^[\\]]*?\\]\\((?:\\\\.|[^\\\\\\(\\)]|\\((?:\\\\.|[^\\\\\\(\\)])*\\))*\\)|`[^`]*?`|<[^<>]*?>/g;\nvar emStrongLDelimCore = /^(?:\\*+(?:((?!\\*)punct)|[^\\s*]))|^_+(?:((?!_)punct)|([^\\s_]))/;\nvar emStrongLDelim = edit(emStrongLDelimCore, \"u\").replace(/punct/g, _punctuation).getRegex();\nvar emStrongLDelimGfm = edit(emStrongLDelimCore, \"u\").replace(/punct/g, _punctuationGfmStrongEm).getRegex();\nvar emStrongRDelimAstCore = \"^[^_*]*?__[^_*]*?\\\\*[^_*]*?(?=__)|[^*]+(?=[^*])|(?!\\\\*)punct(\\\\*+)(?=[\\\\s]|$)|notPunctSpace(\\\\*+)(?!\\\\*)(?=punctSpace|$)|(?!\\\\*)punctSpace(\\\\*+)(?=notPunctSpace)|[\\\\s](\\\\*+)(?!\\\\*)(?=punct)|(?!\\\\*)punct(\\\\*+)(?!\\\\*)(?=punct)|notPunctSpace(\\\\*+)(?=notPunctSpace)\";\nvar emStrongRDelimAst = edit(emStrongRDelimAstCore, \"gu\").replace(/notPunctSpace/g, _notPunctuationOrSpace).replace(/punctSpace/g, _punctuationOrSpace).replace(/punct/g, _punctuation).getRegex();\nvar emStrongRDelimAstGfm = edit(emStrongRDelimAstCore, \"gu\").replace(/notPunctSpace/g, _notPunctuationOrSpaceGfmStrongEm).replace(/punctSpace/g, _punctuationOrSpaceGfmStrongEm).replace(/punct/g, _punctuationGfmStrongEm).getRegex();\nvar emStrongRDelimUnd = edit(\n \"^[^_*]*?\\\\*\\\\*[^_*]*?_[^_*]*?(?=\\\\*\\\\*)|[^_]+(?=[^_])|(?!_)punct(_+)(?=[\\\\s]|$)|notPunctSpace(_+)(?!_)(?=punctSpace|$)|(?!_)punctSpace(_+)(?=notPunctSpace)|[\\\\s](_+)(?!_)(?=punct)|(?!_)punct(_+)(?!_)(?=punct)\",\n \"gu\"\n).replace(/notPunctSpace/g, _notPunctuationOrSpace).replace(/punctSpace/g, _punctuationOrSpace).replace(/punct/g, _punctuation).getRegex();\nvar anyPunctuation = edit(/\\\\(punct)/, \"gu\").replace(/punct/g, _punctuation).getRegex();\nvar autolink = edit(/^<(scheme:[^\\s\\x00-\\x1f<>]*|email)>/).replace(\"scheme\", /[a-zA-Z][a-zA-Z0-9+.-]{1,31}/).replace(\"email\", /[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+(@)[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)+(?![-_])/).getRegex();\nvar _inlineComment = edit(_comment).replace(\"(?:-->|$)\", \"-->\").getRegex();\nvar tag = edit(\n \"^comment|^</[a-zA-Z][\\\\w:-]*\\\\s*>|^<[a-zA-Z][\\\\w-]*(?:attribute)*?\\\\s*/?>|^<\\\\?[\\\\s\\\\S]*?\\\\?>|^<![a-zA-Z]+\\\\s[\\\\s\\\\S]*?>|^<!\\\\[CDATA\\\\[[\\\\s\\\\S]*?\\\\]\\\\]>\"\n).replace(\"comment\", _inlineComment).replace(\"attribute\", /\\s+[a-zA-Z:_][\\w.:-]*(?:\\s*=\\s*\"[^\"]*\"|\\s*=\\s*'[^']*'|\\s*=\\s*[^\\s\"'=<>`]+)?/).getRegex();\nvar _inlineLabel = /(?:\\[(?:\\\\.|[^\\[\\]\\\\])*\\]|\\\\.|`[^`]*`|[^\\[\\]\\\\`])*?/;\nvar link = edit(/^!?\\[(label)\\]\\(\\s*(href)(?:(?:[ \\t]*(?:\\n[ \\t]*)?)(title))?\\s*\\)/).replace(\"label\", _inlineLabel).replace(\"href\", /<(?:\\\\.|[^\\n<>\\\\])+>|[^ \\t\\n\\x00-\\x1f]*/).replace(\"title\", /\"(?:\\\\\"?|[^\"\\\\])*\"|'(?:\\\\'?|[^'\\\\])*'|\\((?:\\\\\\)?|[^)\\\\])*\\)/).getRegex();\nvar reflink = edit(/^!?\\[(label)\\]\\[(ref)\\]/).replace(\"label\", _inlineLabel).replace(\"ref\", _blockLabel).getRegex();\nvar nolink = edit(/^!?\\[(ref)\\](?:\\[\\])?/).replace(\"ref\", _blockLabel).getRegex();\nvar reflinkSearch = edit(\"reflink|nolink(?!\\\\()\", \"g\").replace(\"reflink\", reflink).replace(\"nolink\", nolink).getRegex();\nvar inlineNormal = {\n _backpedal: noopTest,\n // only used for GFM url\n anyPunctuation,\n autolink,\n blockSkip,\n br,\n code: inlineCode,\n del: noopTest,\n emStrongLDelim,\n emStrongRDelimAst,\n emStrongRDelimUnd,\n escape,\n link,\n nolink,\n punctuation,\n reflink,\n reflinkSearch,\n tag,\n text: inlineText,\n url: noopTest\n};\nvar inlinePedantic = {\n ...inlineNormal,\n link: edit(/^!?\\[(label)\\]\\((.*?)\\)/).replace(\"label\", _inlineLabel).getRegex(),\n reflink: edit(/^!?\\[(label)\\]\\s*\\[([^\\]]*)\\]/).replace(\"label\", _inlineLabel).getRegex()\n};\nvar inlineGfm = {\n ...inlineNormal,\n emStrongRDelimAst: emStrongRDelimAstGfm,\n emStrongLDelim: emStrongLDelimGfm,\n url: edit(/^((?:ftp|https?):\\/\\/|www\\.)(?:[a-zA-Z0-9\\-]+\\.?)+[^\\s<]*|^email/, \"i\").replace(\"email\", /[A-Za-z0-9._+-]+(@)[a-zA-Z0-9-_]+(?:\\.[a-zA-Z0-9-_]*[a-zA-Z0-9])+(?![-_])/).getRegex(),\n _backpedal: /(?:[^?!.,:;*_'\"~()&]+|\\([^)]*\\)|&(?![a-zA-Z0-9]+;$)|[?!.,:;*_'\"~)]+(?!$))+/,\n del: /^(~~?)(?=[^\\s~])((?:\\\\.|[^\\\\])*?(?:\\\\.|[^\\s~\\\\]))\\1(?=[^~]|$)/,\n text: /^([`~]+|[^`~])(?:(?= {2,}\\n)|(?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)|[\\s\\S]*?(?:(?=[\\\\<!\\[`*~_]|\\b_|https?:\\/\\/|ftp:\\/\\/|www\\.|$)|[^ ](?= {2,}\\n)|[^a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-](?=[a-zA-Z0-9.!#$%&'*+\\/=?_`{\\|}~-]+@)))/\n};\nvar inlineBreaks = {\n ...inlineGfm,\n br: edit(br).replace(\"{2,}\", \"*\").getRegex(),\n text: edit(inlineGfm.text).replace(\"\\\\b_\", \"\\\\b_| {2,}\\\\n\").replace(/\\{2,\\}/g, \"*\").getRegex()\n};\nvar block = {\n normal: blockNormal,\n gfm: blockGfm,\n pedantic: blockPedantic\n};\nvar inline = {\n normal: inlineNormal,\n gfm: inlineGfm,\n breaks: inlineBreaks,\n pedantic: inlinePedantic\n};\n\n// src/helpers.ts\nvar escapeReplacements = {\n \"&\": \"&amp;\",\n \"<\": \"&lt;\",\n \">\": \"&gt;\",\n '\"': \"&quot;\",\n \"'\": \"&#39;\"\n};\nvar getEscapeReplacement = (ch) => escapeReplacements[ch];\nfunction escape2(html2, encode) {\n if (encode) {\n if (other.escapeTest.test(html2)) {\n return html2.replace(other.escapeReplace, getEscapeReplacement);\n }\n } else {\n if (other.escapeTestNoEncode.test(html2)) {\n return html2.replace(other.escapeReplaceNoEncode, getEscapeReplacement);\n }\n }\n return html2;\n}\nfunction cleanUrl(href) {\n try {\n href = encodeURI(href).replace(other.percentDecode, \"%\");\n } catch {\n return null;\n }\n return href;\n}\nfunction splitCells(tableRow, count) {\n const row = tableRow.replace(other.findPipe, (match, offset, str) => {\n let escaped = false;\n let curr = offset;\n while (--curr >= 0 && str[curr] === \"\\\\\") escaped = !escaped;\n if (escaped) {\n return \"|\";\n } else {\n return \" |\";\n }\n }), cells = row.split(other.splitPipe);\n let i = 0;\n if (!cells[0].trim()) {\n cells.shift();\n }\n if (cells.length > 0 && !cells.at(-1)?.trim()) {\n cells.pop();\n }\n if (count) {\n if (cells.length > count) {\n cells.splice(count);\n } else {\n while (cells.length < count) cells.push(\"\");\n }\n }\n for (; i < cells.length; i++) {\n cells[i] = cells[i].trim().replace(other.slashPipe, \"|\");\n }\n return cells;\n}\nfunction rtrim(str, c, invert) {\n const l = str.length;\n if (l === 0) {\n return \"\";\n }\n let suffLen = 0;\n while (suffLen < l) {\n const currChar = str.charAt(l - suffLen - 1);\n if (currChar === c && !invert) {\n suffLen++;\n } else if (currChar !== c && invert) {\n suffLen++;\n } else {\n break;\n }\n }\n return str.slice(0, l - suffLen);\n}\nfunction findClosingBracket(str, b) {\n if (str.indexOf(b[1]) === -1) {\n return -1;\n }\n let level = 0;\n for (let i = 0; i < str.length; i++) {\n if (str[i] === \"\\\\\") {\n i++;\n } else if (str[i] === b[0]) {\n level++;\n } else if (str[i] === b[1]) {\n level--;\n if (level < 0) {\n return i;\n }\n }\n }\n if (level > 0) {\n return -2;\n }\n return -1;\n}\n\n// src/Tokenizer.ts\nfunction outputLink(cap, link2, raw, lexer2, rules) {\n const href = link2.href;\n const title = link2.title || null;\n const text = cap[1].replace(rules.other.outputLinkReplace, \"$1\");\n lexer2.state.inLink = true;\n const token = {\n type: cap[0].charAt(0) === \"!\" ? \"image\" : \"link\",\n raw,\n href,\n title,\n text,\n tokens: lexer2.inlineTokens(text)\n };\n lexer2.state.inLink = false;\n return token;\n}\nfunction indentCodeCompensation(raw, text, rules) {\n const matchIndentToCode = raw.match(rules.other.indentCodeCompensation);\n if (matchIndentToCode === null) {\n return text;\n }\n const indentToCode = matchIndentToCode[1];\n return text.split(\"\\n\").map((node) => {\n const matchIndentInNode = node.match(rules.other.beginningSpace);\n if (matchIndentInNode === null) {\n return node;\n }\n const [indentInNode] = matchIndentInNode;\n if (indentInNode.length >= indentToCode.length) {\n return node.slice(indentToCode.length);\n }\n return node;\n }).join(\"\\n\");\n}\nvar _Tokenizer = class {\n options;\n rules;\n // set by the lexer\n lexer;\n // set by the lexer\n constructor(options2) {\n this.options = options2 || _defaults;\n }\n space(src) {\n const cap = this.rules.block.newline.exec(src);\n if (cap && cap[0].length > 0) {\n return {\n type: \"space\",\n raw: cap[0]\n };\n }\n }\n code(src) {\n const cap = this.rules.block.code.exec(src);\n if (cap) {\n const text = cap[0].replace(this.rules.other.codeRemoveIndent, \"\");\n return {\n type: \"code\",\n raw: cap[0],\n codeBlockStyle: \"indented\",\n text: !this.options.pedantic ? rtrim(text, \"\\n\") : text\n };\n }\n }\n fences(src) {\n const cap = this.rules.block.fences.exec(src);\n if (cap) {\n const raw = cap[0];\n const text = indentCodeCompensation(raw, cap[3] || \"\", this.rules);\n return {\n type: \"code\",\n raw,\n lang: cap[2] ? cap[2].trim().replace(this.rules.inline.anyPunctuation, \"$1\") : cap[2],\n text\n };\n }\n }\n heading(src) {\n const cap = this.rules.block.heading.exec(src);\n if (cap) {\n let text = cap[2].trim();\n if (this.rules.other.endingHash.test(text)) {\n const trimmed = rtrim(text, \"#\");\n if (this.options.pedantic) {\n text = trimmed.trim();\n } else if (!trimmed || this.rules.other.endingSpaceChar.test(trimmed)) {\n text = trimmed.trim();\n }\n }\n return {\n type: \"heading\",\n raw: cap[0],\n depth: cap[1].length,\n text,\n tokens: this.lexer.inline(text)\n };\n }\n }\n hr(src) {\n const cap = this.rules.block.hr.exec(src);\n if (cap) {\n return {\n type: \"hr\",\n raw: rtrim(cap[0], \"\\n\")\n };\n }\n }\n blockquote(src) {\n const cap = this.rules.block.blockquote.exec(src);\n if (cap) {\n let lines = rtrim(cap[0], \"\\n\").split(\"\\n\");\n let raw = \"\";\n let text = \"\";\n const tokens = [];\n while (lines.length > 0) {\n let inBlockquote = false;\n const currentLines = [];\n let i;\n for (i = 0; i < lines.length; i++) {\n if (this.rules.other.blockquoteStart.test(lines[i])) {\n currentLines.push(lines[i]);\n inBlockquote = true;\n } else if (!inBlockquote) {\n currentLines.push(lines[i]);\n } else {\n break;\n }\n }\n lines = lines.slice(i);\n const currentRaw = currentLines.join(\"\\n\");\n const currentText = currentRaw.replace(this.rules.other.blockquoteSetextReplace, \"\\n $1\").replace(this.rules.other.blockquoteSetextReplace2, \"\");\n raw = raw ? `${raw}\n${currentRaw}` : currentRaw;\n text = text ? `${text}\n${currentText}` : currentText;\n const top = this.lexer.state.top;\n this.lexer.state.top = true;\n this.lexer.blockTokens(currentText, tokens, true);\n this.lexer.state.top = top;\n if (lines.length === 0) {\n break;\n }\n const lastToken = tokens.at(-1);\n if (lastToken?.type === \"code\") {\n break;\n } else if (lastToken?.type === \"blockquote\") {\n const oldToken = lastToken;\n const newText = oldToken.raw + \"\\n\" + lines.join(\"\\n\");\n const newToken = this.blockquote(newText);\n tokens[tokens.length - 1] = newToken;\n raw = raw.substring(0, raw.length - oldToken.raw.length) + newToken.raw;\n text = text.substring(0, text.length - oldToken.text.length) + newToken.text;\n break;\n } else if (lastToken?.type === \"list\") {\n const oldToken = lastToken;\n const newText = oldToken.raw + \"\\n\" + lines.join(\"\\n\");\n const newToken = this.list(newText);\n tokens[tokens.length - 1] = newToken;\n raw = raw.substring(0, raw.length - lastToken.raw.length) + newToken.raw;\n text = text.substring(0, text.length - oldToken.raw.length) + newToken.raw;\n lines = newText.substring(tokens.at(-1).raw.length).split(\"\\n\");\n continue;\n }\n }\n return {\n type: \"blockquote\",\n raw,\n tokens,\n text\n };\n }\n }\n list(src) {\n let cap = this.rules.block.list.exec(src);\n if (cap) {\n let bull = cap[1].trim();\n const isordered = bull.length > 1;\n const list2 = {\n type: \"list\",\n raw: \"\",\n ordered: isordered,\n start: isordered ? +bull.slice(0, -1) : \"\",\n loose: false,\n items: []\n };\n bull = isordered ? `\\\\d{1,9}\\\\${bull.slice(-1)}` : `\\\\${bull}`;\n if (this.options.pedantic) {\n bull = isordered ? bull : \"[*+-]\";\n }\n const itemRegex = this.rules.other.listItemRegex(bull);\n let endsWithBlankLine = false;\n while (src) {\n let endEarly = false;\n let raw = \"\";\n let itemContents = \"\";\n if (!(cap = itemRegex.exec(src))) {\n break;\n }\n if (this.rules.block.hr.test(src)) {\n break;\n }\n raw = cap[0];\n src = src.substring(raw.length);\n let line = cap[2].split(\"\\n\", 1)[0].replace(this.rules.other.listReplaceTabs, (t) => \" \".repeat(3 * t.length));\n let nextLine = src.split(\"\\n\", 1)[0];\n let blankLine = !line.trim();\n let indent = 0;\n if (this.options.pedantic) {\n indent = 2;\n itemContents = line.trimStart();\n } else if (blankLine) {\n indent = cap[1].length + 1;\n } else {\n indent = cap[2].search(this.rules.other.nonSpaceChar);\n indent = indent > 4 ? 1 : indent;\n itemContents = line.slice(indent);\n indent += cap[1].length;\n }\n if (blankLine && this.rules.other.blankLine.test(nextLine)) {\n raw += nextLine + \"\\n\";\n src = src.substring(nextLine.length + 1);\n endEarly = true;\n }\n if (!endEarly) {\n const nextBulletRegex = this.rules.other.nextBulletRegex(indent);\n const hrRegex = this.rules.other.hrRegex(indent);\n const fencesBeginRegex = this.rules.other.fencesBeginRegex(indent);\n const headingBeginRegex = this.rules.other.headingBeginRegex(indent);\n const htmlBeginRegex = this.rules.other.htmlBeginRegex(indent);\n while (src) {\n const rawLine = src.split(\"\\n\", 1)[0];\n let nextLineWithoutTabs;\n nextLine = rawLine;\n if (this.options.pedantic) {\n nextLine = nextLine.replace(this.rules.other.listReplaceNesting, \" \");\n nextLineWithoutTabs = nextLine;\n } else {\n nextLineWithoutTabs = nextLine.replace(this.rules.other.tabCharGlobal, \" \");\n }\n if (fencesBeginRegex.test(nextLine)) {\n break;\n }\n if (headingBeginRegex.test(nextLine)) {\n break;\n }\n if (htmlBeginRegex.test(nextLine)) {\n break;\n }\n if (nextBulletRegex.test(nextLine)) {\n break;\n }\n if (hrRegex.test(nextLine)) {\n break;\n }\n if (nextLineWithoutTabs.search(this.rules.other.nonSpaceChar) >= indent || !nextLine.trim()) {\n itemContents += \"\\n\" + nextLineWithoutTabs.slice(indent);\n } else {\n if (blankLine) {\n break;\n }\n if (line.replace(this.rules.other.tabCharGlobal, \" \").search(this.rules.other.nonSpaceChar) >= 4) {\n break;\n }\n if (fencesBeginRegex.test(line)) {\n break;\n }\n if (headingBeginRegex.test(line)) {\n break;\n }\n if (hrRegex.test(line)) {\n break;\n }\n itemContents += \"\\n\" + nextLine;\n }\n if (!blankLine && !nextLine.trim()) {\n blankLine = true;\n }\n raw += rawLine + \"\\n\";\n src = src.substring(rawLine.length + 1);\n line = nextLineWithoutTabs.slice(indent);\n }\n }\n if (!list2.loose) {\n if (endsWithBlankLine) {\n list2.loose = true;\n } else if (this.rules.other.doubleBlankLine.test(raw)) {\n endsWithBlankLine = true;\n }\n }\n let istask = null;\n let ischecked;\n if (this.options.gfm) {\n istask = this.rules.other.listIsTask.exec(itemContents);\n if (istask) {\n ischecked = istask[0] !== \"[ ] \";\n itemContents = itemContents.replace(this.rules.other.listReplaceTask, \"\");\n }\n }\n list2.items.push({\n type: \"list_item\",\n raw,\n task: !!istask,\n checked: ischecked,\n loose: false,\n text: itemContents,\n tokens: []\n });\n list2.raw += raw;\n }\n const lastItem = list2.items.at(-1);\n if (lastItem) {\n lastItem.raw = lastItem.raw.trimEnd();\n lastItem.text = lastItem.text.trimEnd();\n } else {\n return;\n }\n list2.raw = list2.raw.trimEnd();\n for (let i = 0; i < list2.items.length; i++) {\n this.lexer.state.top = false;\n list2.items[i].tokens = this.lexer.blockTokens(list2.items[i].text, []);\n if (!list2.loose) {\n const spacers = list2.items[i].tokens.filter((t) => t.type === \"space\");\n const hasMultipleLineBreaks = spacers.length > 0 && spacers.some((t) => this.rules.other.anyLine.test(t.raw));\n list2.loose = hasMultipleLineBreaks;\n }\n }\n if (list2.loose) {\n for (let i = 0; i < list2.items.length; i++) {\n list2.items[i].loose = true;\n }\n }\n return list2;\n }\n }\n html(src) {\n const cap = this.rules.block.html.exec(src);\n if (cap) {\n const token = {\n type: \"html\",\n block: true,\n raw: cap[0],\n pre: cap[1] === \"pre\" || cap[1] === \"script\" || cap[1] === \"style\",\n text: cap[0]\n };\n return token;\n }\n }\n def(src) {\n const cap = this.rules.block.def.exec(src);\n if (cap) {\n const tag2 = cap[1].toLowerCase().replace(this.rules.other.multipleSpaceGlobal, \" \");\n const href = cap[2] ? cap[2].replace(this.rules.other.hrefBrackets, \"$1\").replace(this.rules.inline.anyPunctuation, \"$1\") : \"\";\n const title = cap[3] ? cap[3].substring(1, cap[3].length - 1).replace(this.rules.inline.anyPunctuation, \"$1\") : cap[3];\n return {\n type: \"def\",\n tag: tag2,\n raw: cap[0],\n href,\n title\n };\n }\n }\n table(src) {\n const cap = this.rules.block.table.exec(src);\n if (!cap) {\n return;\n }\n if (!this.rules.other.tableDelimiter.test(cap[2])) {\n return;\n }\n const headers = splitCells(cap[1]);\n const aligns = cap[2].replace(this.rules.other.tableAlignChars, \"\").split(\"|\");\n const rows = cap[3]?.trim() ? cap[3].replace(this.rules.other.tableRowBlankLine, \"\").split(\"\\n\") : [];\n const item = {\n type: \"table\",\n raw: cap[0],\n header: [],\n align: [],\n rows: []\n };\n if (headers.length !== aligns.length) {\n return;\n }\n for (const align of aligns) {\n if (this.rules.other.tableAlignRight.test(align)) {\n item.align.push(\"right\");\n } else if (this.rules.other.tableAlignCenter.test(align)) {\n item.align.push(\"center\");\n } else if (this.rules.other.tableAlignLeft.test(align)) {\n item.align.push(\"left\");\n } else {\n item.align.push(null);\n }\n }\n for (let i = 0; i < headers.length; i++) {\n item.header.push({\n text: headers[i],\n tokens: this.lexer.inline(headers[i]),\n header: true,\n align: item.align[i]\n });\n }\n for (const row of rows) {\n item.rows.push(splitCells(row, item.header.length).map((cell, i) => {\n return {\n text: cell,\n tokens: this.lexer.inline(cell),\n header: false,\n align: item.align[i]\n };\n }));\n }\n return item;\n }\n lheading(src) {\n const cap = this.rules.block.lheading.exec(src);\n if (cap) {\n return {\n type: \"heading\",\n raw: cap[0],\n depth: cap[2].charAt(0) === \"=\" ? 1 : 2,\n text: cap[1],\n tokens: this.lexer.inline(cap[1])\n };\n }\n }\n paragraph(src) {\n const cap = this.rules.block.paragraph.exec(src);\n if (cap) {\n const text = cap[1].charAt(cap[1].length - 1) === \"\\n\" ? cap[1].slice(0, -1) : cap[1];\n return {\n type: \"paragraph\",\n raw: cap[0],\n text,\n tokens: this.lexer.inline(text)\n };\n }\n }\n text(src) {\n const cap = this.rules.block.text.exec(src);\n if (cap) {\n return {\n type: \"text\",\n raw: cap[0],\n text: cap[0],\n tokens: this.lexer.inline(cap[0])\n };\n }\n }\n escape(src) {\n const cap = this.rules.inline.escape.exec(src);\n if (cap) {\n return {\n type: \"escape\",\n raw: cap[0],\n text: cap[1]\n };\n }\n }\n tag(src) {\n const cap = this.rules.inline.tag.exec(src);\n if (cap) {\n if (!this.lexer.state.inLink && this.rules.other.startATag.test(cap[0])) {\n this.lexer.state.inLink = true;\n } else if (this.lexer.state.inLink && this.rules.other.endATag.test(cap[0])) {\n this.lexer.state.inLink = false;\n }\n if (!this.lexer.state.inRawBlock && this.rules.other.startPreScriptTag.test(cap[0])) {\n this.lexer.state.inRawBlock = true;\n } else if (this.lexer.state.inRawBlock && this.rules.other.endPreScriptTag.test(cap[0])) {\n this.lexer.state.inRawBlock = false;\n }\n return {\n type: \"html\",\n raw: cap[0],\n inLink: this.lexer.state.inLink,\n inRawBlock: this.lexer.state.inRawBlock,\n block: false,\n text: cap[0]\n };\n }\n }\n link(src) {\n const cap = this.rules.inline.link.exec(src);\n if (cap) {\n const trimmedUrl = cap[2].trim();\n if (!this.options.pedantic && this.rules.other.startAngleBracket.test(trimmedUrl)) {\n if (!this.rules.other.endAngleBracket.test(trimmedUrl)) {\n return;\n }\n const rtrimSlash = rtrim(trimmedUrl.slice(0, -1), \"\\\\\");\n if ((trimmedUrl.length - rtrimSlash.length) % 2 === 0) {\n return;\n }\n } else {\n const lastParenIndex = findClosingBracket(cap[2], \"()\");\n if (lastParenIndex === -2) {\n return;\n }\n if (lastParenIndex > -1) {\n const start = cap[0].indexOf(\"!\") === 0 ? 5 : 4;\n const linkLen = start + cap[1].length + lastParenIndex;\n cap[2] = cap[2].substring(0, lastParenIndex);\n cap[0] = cap[0].substring(0, linkLen).trim();\n cap[3] = \"\";\n }\n }\n let href = cap[2];\n let title = \"\";\n if (this.options.pedantic) {\n const link2 = this.rules.other.pedanticHrefTitle.exec(href);\n if (link2) {\n href = link2[1];\n title = link2[3];\n }\n } else {\n title = cap[3] ? cap[3].slice(1, -1) : \"\";\n }\n href = href.trim();\n if (this.rules.other.startAngleBracket.test(href)) {\n if (this.options.pedantic && !this.rules.other.endAngleBracket.test(trimmedUrl)) {\n href = href.slice(1);\n } else {\n href = href.slice(1, -1);\n }\n }\n return outputLink(cap, {\n href: href ? href.replace(this.rules.inline.anyPunctuation, \"$1\") : href,\n title: title ? title.replace(this.rules.inline.anyPunctuation, \"$1\") : title\n }, cap[0], this.lexer, this.rules);\n }\n }\n reflink(src, links) {\n let cap;\n if ((cap = this.rules.inline.reflink.exec(src)) || (cap = this.rules.inline.nolink.exec(src))) {\n const linkString = (cap[2] || cap[1]).replace(this.rules.other.multipleSpaceGlobal, \" \");\n const link2 = links[linkString.toLowerCase()];\n if (!link2) {\n const text = cap[0].charAt(0);\n return {\n type: \"text\",\n raw: text,\n text\n };\n }\n return outputLink(cap, link2, cap[0], this.lexer, this.rules);\n }\n }\n emStrong(src, maskedSrc, prevChar = \"\") {\n let match = this.rules.inline.emStrongLDelim.exec(src);\n if (!match) return;\n if (match[3] && prevChar.match(this.rules.other.unicodeAlphaNumeric)) return;\n const nextChar = match[1] || match[2] || \"\";\n if (!nextChar || !prevChar || this.rules.inline.punctuation.exec(prevChar)) {\n const lLength = [...match[0]].length - 1;\n let rDelim, rLength, delimTotal = lLength, midDelimTotal = 0;\n const endReg = match[0][0] === \"*\" ? this.rules.inline.emStrongRDelimAst : this.rules.inline.emStrongRDelimUnd;\n endReg.lastIndex = 0;\n maskedSrc = maskedSrc.slice(-1 * src.length + lLength);\n while ((match = endReg.exec(maskedSrc)) != null) {\n rDelim = match[1] || match[2] || match[3] || match[4] || match[5] || match[6];\n if (!rDelim) continue;\n rLength = [...rDelim].length;\n if (match[3] || match[4]) {\n delimTotal += rLength;\n continue;\n } else if (match[5] || match[6]) {\n if (lLength % 3 && !((lLength + rLength) % 3)) {\n midDelimTotal += rLength;\n continue;\n }\n }\n delimTotal -= rLength;\n if (delimTotal > 0) continue;\n rLength = Math.min(rLength, rLength + delimTotal + midDelimTotal);\n const lastCharLength = [...match[0]][0].length;\n const raw = src.slice(0, lLength + match.index + lastCharLength + rLength);\n if (Math.min(lLength, rLength) % 2) {\n const text2 = raw.slice(1, -1);\n return {\n type: \"em\",\n raw,\n text: text2,\n tokens: this.lexer.inlineTokens(text2)\n };\n }\n const text = raw.slice(2, -2);\n return {\n type: \"strong\",\n raw,\n text,\n tokens: this.lexer.inlineTokens(text)\n };\n }\n }\n }\n codespan(src) {\n const cap = this.rules.inline.code.exec(src);\n if (cap) {\n let text = cap[2].replace(this.rules.other.newLineCharGlobal, \" \");\n const hasNonSpaceChars = this.rules.other.nonSpaceChar.test(text);\n const hasSpaceCharsOnBothEnds = this.rules.other.startingSpaceChar.test(text) && this.rules.other.endingSpaceChar.test(text);\n if (hasNonSpaceChars && hasSpaceCharsOnBothEnds) {\n text = text.substring(1, text.length - 1);\n }\n return {\n type: \"codespan\",\n raw: cap[0],\n text\n };\n }\n }\n br(src) {\n const cap = this.rules.inline.br.exec(src);\n if (cap) {\n return {\n type: \"br\",\n raw: cap[0]\n };\n }\n }\n del(src) {\n const cap = this.rules.inline.del.exec(src);\n if (cap) {\n return {\n type: \"del\",\n raw: cap[0],\n text: cap[2],\n tokens: this.lexer.inlineTokens(cap[2])\n };\n }\n }\n autolink(src) {\n const cap = this.rules.inline.autolink.exec(src);\n if (cap) {\n let text, href;\n if (cap[2] === \"@\") {\n text = cap[1];\n href = \"mailto:\" + text;\n } else {\n text = cap[1];\n href = text;\n }\n return {\n type: \"link\",\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: \"text\",\n raw: text,\n text\n }\n ]\n };\n }\n }\n url(src) {\n let cap;\n if (cap = this.rules.inline.url.exec(src)) {\n let text, href;\n if (cap[2] === \"@\") {\n text = cap[0];\n href = \"mailto:\" + text;\n } else {\n let prevCapZero;\n do {\n prevCapZero = cap[0];\n cap[0] = this.rules.inline._backpedal.exec(cap[0])?.[0] ?? \"\";\n } while (prevCapZero !== cap[0]);\n text = cap[0];\n if (cap[1] === \"www.\") {\n href = \"http://\" + cap[0];\n } else {\n href = cap[0];\n }\n }\n return {\n type: \"link\",\n raw: cap[0],\n text,\n href,\n tokens: [\n {\n type: \"text\",\n raw: text,\n text\n }\n ]\n };\n }\n }\n inlineText(src) {\n const cap = this.rules.inline.text.exec(src);\n if (cap) {\n const escaped = this.lexer.state.inRawBlock;\n return {\n type: \"text\",\n raw: cap[0],\n text: cap[0],\n escaped\n };\n }\n }\n};\n\n// src/Lexer.ts\nvar _Lexer = class __Lexer {\n tokens;\n options;\n state;\n tokenizer;\n inlineQueue;\n constructor(options2) {\n this.tokens = [];\n this.tokens.links = /* @__PURE__ */ Object.create(null);\n this.options = options2 || _defaults;\n this.options.tokenizer = this.options.tokenizer || new _Tokenizer();\n this.tokenizer = this.options.tokenizer;\n this.tokenizer.options = this.options;\n this.tokenizer.lexer = this;\n this.inlineQueue = [];\n this.state = {\n inLink: false,\n inRawBlock: false,\n top: true\n };\n const rules = {\n other,\n block: block.normal,\n inline: inline.normal\n };\n if (this.options.pedantic) {\n rules.block = block.pedantic;\n rules.inline = inline.pedantic;\n } else if (this.options.gfm) {\n rules.block = block.gfm;\n if (this.options.breaks) {\n rules.inline = inline.breaks;\n } else {\n rules.inline = inline.gfm;\n }\n }\n this.tokenizer.rules = rules;\n }\n /**\n * Expose Rules\n */\n static get rules() {\n return {\n block,\n inline\n };\n }\n /**\n * Static Lex Method\n */\n static lex(src, options2) {\n const lexer2 = new __Lexer(options2);\n return lexer2.lex(src);\n }\n /**\n * Static Lex Inline Method\n */\n static lexInline(src, options2) {\n const lexer2 = new __Lexer(options2);\n return lexer2.inlineTokens(src);\n }\n /**\n * Preprocessing\n */\n lex(src) {\n src = src.replace(other.carriageReturn, \"\\n\");\n this.blockTokens(src, this.tokens);\n for (let i = 0; i < this.inlineQueue.length; i++) {\n const next = this.inlineQueue[i];\n this.inlineTokens(next.src, next.tokens);\n }\n this.inlineQueue = [];\n return this.tokens;\n }\n blockTokens(src, tokens = [], lastParagraphClipped = false) {\n if (this.options.pedantic) {\n src = src.replace(other.tabCharGlobal, \" \").replace(other.spaceLine, \"\");\n }\n while (src) {\n let token;\n if (this.options.extensions?.block?.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n if (token = this.tokenizer.space(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (token.raw.length === 1 && lastToken !== void 0) {\n lastToken.raw += \"\\n\";\n } else {\n tokens.push(token);\n }\n continue;\n }\n if (token = this.tokenizer.code(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (lastToken?.type === \"paragraph\" || lastToken?.type === \"text\") {\n lastToken.raw += \"\\n\" + token.raw;\n lastToken.text += \"\\n\" + token.text;\n this.inlineQueue.at(-1).src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n if (token = this.tokenizer.fences(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.heading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.hr(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.blockquote(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.list(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.html(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.def(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (lastToken?.type === \"paragraph\" || lastToken?.type === \"text\") {\n lastToken.raw += \"\\n\" + token.raw;\n lastToken.text += \"\\n\" + token.raw;\n this.inlineQueue.at(-1).src = lastToken.text;\n } else if (!this.tokens.links[token.tag]) {\n this.tokens.links[token.tag] = {\n href: token.href,\n title: token.title\n };\n }\n continue;\n }\n if (token = this.tokenizer.table(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.lheading(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n let cutSrc = src;\n if (this.options.extensions?.startBlock) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startBlock.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === \"number\" && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (this.state.top && (token = this.tokenizer.paragraph(cutSrc))) {\n const lastToken = tokens.at(-1);\n if (lastParagraphClipped && lastToken?.type === \"paragraph\") {\n lastToken.raw += \"\\n\" + token.raw;\n lastToken.text += \"\\n\" + token.text;\n this.inlineQueue.pop();\n this.inlineQueue.at(-1).src = lastToken.text;\n } else {\n tokens.push(token);\n }\n lastParagraphClipped = cutSrc.length !== src.length;\n src = src.substring(token.raw.length);\n continue;\n }\n if (token = this.tokenizer.text(src)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (lastToken?.type === \"text\") {\n lastToken.raw += \"\\n\" + token.raw;\n lastToken.text += \"\\n\" + token.text;\n this.inlineQueue.pop();\n this.inlineQueue.at(-1).src = lastToken.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n if (src) {\n const errMsg = \"Infinite loop on byte: \" + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n this.state.top = true;\n return tokens;\n }\n inline(src, tokens = []) {\n this.inlineQueue.push({ src, tokens });\n return tokens;\n }\n /**\n * Lexing/Compiling\n */\n inlineTokens(src, tokens = []) {\n let maskedSrc = src;\n let match = null;\n if (this.tokens.links) {\n const links = Object.keys(this.tokens.links);\n if (links.length > 0) {\n while ((match = this.tokenizer.rules.inline.reflinkSearch.exec(maskedSrc)) != null) {\n if (links.includes(match[0].slice(match[0].lastIndexOf(\"[\") + 1, -1))) {\n maskedSrc = maskedSrc.slice(0, match.index) + \"[\" + \"a\".repeat(match[0].length - 2) + \"]\" + maskedSrc.slice(this.tokenizer.rules.inline.reflinkSearch.lastIndex);\n }\n }\n }\n }\n while ((match = this.tokenizer.rules.inline.anyPunctuation.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + \"++\" + maskedSrc.slice(this.tokenizer.rules.inline.anyPunctuation.lastIndex);\n }\n while ((match = this.tokenizer.rules.inline.blockSkip.exec(maskedSrc)) != null) {\n maskedSrc = maskedSrc.slice(0, match.index) + \"[\" + \"a\".repeat(match[0].length - 2) + \"]\" + maskedSrc.slice(this.tokenizer.rules.inline.blockSkip.lastIndex);\n }\n let keepPrevChar = false;\n let prevChar = \"\";\n while (src) {\n if (!keepPrevChar) {\n prevChar = \"\";\n }\n keepPrevChar = false;\n let token;\n if (this.options.extensions?.inline?.some((extTokenizer) => {\n if (token = extTokenizer.call({ lexer: this }, src, tokens)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n return true;\n }\n return false;\n })) {\n continue;\n }\n if (token = this.tokenizer.escape(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.tag(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.link(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.reflink(src, this.tokens.links)) {\n src = src.substring(token.raw.length);\n const lastToken = tokens.at(-1);\n if (token.type === \"text\" && lastToken?.type === \"text\") {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n if (token = this.tokenizer.emStrong(src, maskedSrc, prevChar)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.codespan(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.br(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.del(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (token = this.tokenizer.autolink(src)) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n if (!this.state.inLink && (token = this.tokenizer.url(src))) {\n src = src.substring(token.raw.length);\n tokens.push(token);\n continue;\n }\n let cutSrc = src;\n if (this.options.extensions?.startInline) {\n let startIndex = Infinity;\n const tempSrc = src.slice(1);\n let tempStart;\n this.options.extensions.startInline.forEach((getStartIndex) => {\n tempStart = getStartIndex.call({ lexer: this }, tempSrc);\n if (typeof tempStart === \"number\" && tempStart >= 0) {\n startIndex = Math.min(startIndex, tempStart);\n }\n });\n if (startIndex < Infinity && startIndex >= 0) {\n cutSrc = src.substring(0, startIndex + 1);\n }\n }\n if (token = this.tokenizer.inlineText(cutSrc)) {\n src = src.substring(token.raw.length);\n if (token.raw.slice(-1) !== \"_\") {\n prevChar = token.raw.slice(-1);\n }\n keepPrevChar = true;\n const lastToken = tokens.at(-1);\n if (lastToken?.type === \"text\") {\n lastToken.raw += token.raw;\n lastToken.text += token.text;\n } else {\n tokens.push(token);\n }\n continue;\n }\n if (src) {\n const errMsg = \"Infinite loop on byte: \" + src.charCodeAt(0);\n if (this.options.silent) {\n console.error(errMsg);\n break;\n } else {\n throw new Error(errMsg);\n }\n }\n }\n return tokens;\n }\n};\n\n// src/Renderer.ts\nvar _Renderer = class {\n options;\n parser;\n // set by the parser\n constructor(options2) {\n this.options = options2 || _defaults;\n }\n space(token) {\n return \"\";\n }\n code({ text, lang, escaped }) {\n const langString = (lang || \"\").match(other.notSpaceStart)?.[0];\n const code = text.replace(other.endingNewline, \"\") + \"\\n\";\n if (!langString) {\n return \"<pre><code>\" + (escaped ? code : escape2(code, true)) + \"</code></pre>\\n\";\n }\n return '<pre><code class=\"language-' + escape2(langString) + '\">' + (escaped ? code : escape2(code, true)) + \"</code></pre>\\n\";\n }\n blockquote({ tokens }) {\n const body = this.parser.parse(tokens);\n return `<blockquote>\n${body}</blockquote>\n`;\n }\n html({ text }) {\n return text;\n }\n heading({ tokens, depth }) {\n return `<h${depth}>${this.parser.parseInline(tokens)}</h${depth}>\n`;\n }\n hr(token) {\n return \"<hr>\\n\";\n }\n list(token) {\n const ordered = token.ordered;\n const start = token.start;\n let body = \"\";\n for (let j = 0; j < token.items.length; j++) {\n const item = token.items[j];\n body += this.listitem(item);\n }\n const type = ordered ? \"ol\" : \"ul\";\n const startAttr = ordered && start !== 1 ? ' start=\"' + start + '\"' : \"\";\n return \"<\" + type + startAttr + \">\\n\" + body + \"</\" + type + \">\\n\";\n }\n listitem(item) {\n let itemBody = \"\";\n if (item.task) {\n const checkbox = this.checkbox({ checked: !!item.checked });\n if (item.loose) {\n if (item.tokens[0]?.type === \"paragraph\") {\n item.tokens[0].text = checkbox + \" \" + item.tokens[0].text;\n if (item.tokens[0].tokens && item.tokens[0].tokens.length > 0 && item.tokens[0].tokens[0].type === \"text\") {\n item.tokens[0].tokens[0].text = checkbox + \" \" + escape2(item.tokens[0].tokens[0].text);\n item.tokens[0].tokens[0].escaped = true;\n }\n } else {\n item.tokens.unshift({\n type: \"text\",\n raw: checkbox + \" \",\n text: checkbox + \" \",\n escaped: true\n });\n }\n } else {\n itemBody += checkbox + \" \";\n }\n }\n itemBody += this.parser.parse(item.tokens, !!item.loose);\n return `<li>${itemBody}</li>\n`;\n }\n checkbox({ checked }) {\n return \"<input \" + (checked ? 'checked=\"\" ' : \"\") + 'disabled=\"\" type=\"checkbox\">';\n }\n paragraph({ tokens }) {\n return `<p>${this.parser.parseInline(tokens)}</p>\n`;\n }\n table(token) {\n let header = \"\";\n let cell = \"\";\n for (let j = 0; j < token.header.length; j++) {\n cell += this.tablecell(token.header[j]);\n }\n header += this.tablerow({ text: cell });\n let body = \"\";\n for (let j = 0; j < token.rows.length; j++) {\n const row = token.rows[j];\n cell = \"\";\n for (let k = 0; k < row.length; k++) {\n cell += this.tablecell(row[k]);\n }\n body += this.tablerow({ text: cell });\n }\n if (body) body = `<tbody>${body}</tbody>`;\n return \"<table>\\n<thead>\\n\" + header + \"</thead>\\n\" + body + \"</table>\\n\";\n }\n tablerow({ text }) {\n return `<tr>\n${text}</tr>\n`;\n }\n tablecell(token) {\n const content = this.parser.parseInline(token.tokens);\n const type = token.header ? \"th\" : \"td\";\n const tag2 = token.align ? `<${type} align=\"${token.align}\">` : `<${type}>`;\n return tag2 + content + `</${type}>\n`;\n }\n /**\n * span level renderer\n */\n strong({ tokens }) {\n return `<strong>${this.parser.parseInline(tokens)}</strong>`;\n }\n em({ tokens }) {\n return `<em>${this.parser.parseInline(tokens)}</em>`;\n }\n codespan({ text }) {\n return `<code>${escape2(text, true)}</code>`;\n }\n br(token) {\n return \"<br>\";\n }\n del({ tokens }) {\n return `<del>${this.parser.parseInline(tokens)}</del>`;\n }\n link({ href, title, tokens }) {\n const text = this.parser.parseInline(tokens);\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return text;\n }\n href = cleanHref;\n let out = '<a href=\"' + href + '\"';\n if (title) {\n out += ' title=\"' + escape2(title) + '\"';\n }\n out += \">\" + text + \"</a>\";\n return out;\n }\n image({ href, title, text, tokens }) {\n if (tokens) {\n text = this.parser.parseInline(tokens, this.parser.textRenderer);\n }\n const cleanHref = cleanUrl(href);\n if (cleanHref === null) {\n return escape2(text);\n }\n href = cleanHref;\n let out = `<img src=\"${href}\" alt=\"${text}\"`;\n if (title) {\n out += ` title=\"${escape2(title)}\"`;\n }\n out += \">\";\n return out;\n }\n text(token) {\n return \"tokens\" in token && token.tokens ? this.parser.parseInline(token.tokens) : \"escaped\" in token && token.escaped ? token.text : escape2(token.text);\n }\n};\n\n// src/TextRenderer.ts\nvar _TextRenderer = class {\n // no need for block level renderers\n strong({ text }) {\n return text;\n }\n em({ text }) {\n return text;\n }\n codespan({ text }) {\n return text;\n }\n del({ text }) {\n return text;\n }\n html({ text }) {\n return text;\n }\n text({ text }) {\n return text;\n }\n link({ text }) {\n return \"\" + text;\n }\n image({ text }) {\n return \"\" + text;\n }\n br() {\n return \"\";\n }\n};\n\n// src/Parser.ts\nvar _Parser = class __Parser {\n options;\n renderer;\n textRenderer;\n constructor(options2) {\n this.options = options2 || _defaults;\n this.options.renderer = this.options.renderer || new _Renderer();\n this.renderer = this.options.renderer;\n this.renderer.options = this.options;\n this.renderer.parser = this;\n this.textRenderer = new _TextRenderer();\n }\n /**\n * Static Parse Method\n */\n static parse(tokens, options2) {\n const parser2 = new __Parser(options2);\n return parser2.parse(tokens);\n }\n /**\n * Static Parse Inline Method\n */\n static parseInline(tokens, options2) {\n const parser2 = new __Parser(options2);\n return parser2.parseInline(tokens);\n }\n /**\n * Parse Loop\n */\n parse(tokens, top = true) {\n let out = \"\";\n for (let i = 0; i < tokens.length; i++) {\n const anyToken = tokens[i];\n if (this.options.extensions?.renderers?.[anyToken.type]) {\n const genericToken = anyToken;\n const ret = this.options.extensions.renderers[genericToken.type].call({ parser: this }, genericToken);\n if (ret !== false || ![\"space\", \"hr\", \"heading\", \"code\", \"table\", \"blockquote\", \"list\", \"html\", \"paragraph\", \"text\"].includes(genericToken.type)) {\n out += ret || \"\";\n continue;\n }\n }\n const token = anyToken;\n switch (token.type) {\n case \"space\": {\n out += this.renderer.space(token);\n continue;\n }\n case \"hr\": {\n out += this.renderer.hr(token);\n continue;\n }\n case \"heading\": {\n out += this.renderer.heading(token);\n continue;\n }\n case \"code\": {\n out += this.renderer.code(token);\n continue;\n }\n case \"table\": {\n out += this.renderer.table(token);\n continue;\n }\n case \"blockquote\": {\n out += this.renderer.blockquote(token);\n continue;\n }\n case \"list\": {\n out += this.renderer.list(token);\n continue;\n }\n case \"html\": {\n out += this.renderer.html(token);\n continue;\n }\n case \"paragraph\": {\n out += this.renderer.paragraph(token);\n continue;\n }\n case \"text\": {\n let textToken = token;\n let body = this.renderer.text(textToken);\n while (i + 1 < tokens.length && tokens[i + 1].type === \"text\") {\n textToken = tokens[++i];\n body += \"\\n\" + this.renderer.text(textToken);\n }\n if (top) {\n out += this.renderer.paragraph({\n type: \"paragraph\",\n raw: body,\n text: body,\n tokens: [{ type: \"text\", raw: body, text: body, escaped: true }]\n });\n } else {\n out += body;\n }\n continue;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return \"\";\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n /**\n * Parse Inline Tokens\n */\n parseInline(tokens, renderer = this.renderer) {\n let out = \"\";\n for (let i = 0; i < tokens.length; i++) {\n const anyToken = tokens[i];\n if (this.options.extensions?.renderers?.[anyToken.type]) {\n const ret = this.options.extensions.renderers[anyToken.type].call({ parser: this }, anyToken);\n if (ret !== false || ![\"escape\", \"html\", \"link\", \"image\", \"strong\", \"em\", \"codespan\", \"br\", \"del\", \"text\"].includes(anyToken.type)) {\n out += ret || \"\";\n continue;\n }\n }\n const token = anyToken;\n switch (token.type) {\n case \"escape\": {\n out += renderer.text(token);\n break;\n }\n case \"html\": {\n out += renderer.html(token);\n break;\n }\n case \"link\": {\n out += renderer.link(token);\n break;\n }\n case \"image\": {\n out += renderer.image(token);\n break;\n }\n case \"strong\": {\n out += renderer.strong(token);\n break;\n }\n case \"em\": {\n out += renderer.em(token);\n break;\n }\n case \"codespan\": {\n out += renderer.codespan(token);\n break;\n }\n case \"br\": {\n out += renderer.br(token);\n break;\n }\n case \"del\": {\n out += renderer.del(token);\n break;\n }\n case \"text\": {\n out += renderer.text(token);\n break;\n }\n default: {\n const errMsg = 'Token with \"' + token.type + '\" type was not found.';\n if (this.options.silent) {\n console.error(errMsg);\n return \"\";\n } else {\n throw new Error(errMsg);\n }\n }\n }\n }\n return out;\n }\n};\n\n// src/Hooks.ts\nvar _Hooks = class {\n options;\n block;\n constructor(options2) {\n this.options = options2 || _defaults;\n }\n static passThroughHooks = /* @__PURE__ */ new Set([\n \"preprocess\",\n \"postprocess\",\n \"processAllTokens\"\n ]);\n /**\n * Process markdown before marked\n */\n preprocess(markdown) {\n return markdown;\n }\n /**\n * Process HTML after marked is finished\n */\n postprocess(html2) {\n return html2;\n }\n /**\n * Process all tokens before walk tokens\n */\n processAllTokens(tokens) {\n return tokens;\n }\n /**\n * Provide function to tokenize markdown\n */\n provideLexer() {\n return this.block ? _Lexer.lex : _Lexer.lexInline;\n }\n /**\n * Provide function to parse tokens\n */\n provideParser() {\n return this.block ? _Parser.parse : _Parser.parseInline;\n }\n};\n\n// src/Instance.ts\nvar Marked = class {\n defaults = _getDefaults();\n options = this.setOptions;\n parse = this.parseMarkdown(true);\n parseInline = this.parseMarkdown(false);\n Parser = _Parser;\n Renderer = _Renderer;\n TextRenderer = _TextRenderer;\n Lexer = _Lexer;\n Tokenizer = _Tokenizer;\n Hooks = _Hooks;\n constructor(...args) {\n this.use(...args);\n }\n /**\n * Run callback for every token\n */\n walkTokens(tokens, callback) {\n let values = [];\n for (const token of tokens) {\n values = values.concat(callback.call(this, token));\n switch (token.type) {\n case \"table\": {\n const tableToken = token;\n for (const cell of tableToken.header) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n for (const row of tableToken.rows) {\n for (const cell of row) {\n values = values.concat(this.walkTokens(cell.tokens, callback));\n }\n }\n break;\n }\n case \"list\": {\n const listToken = token;\n values = values.concat(this.walkTokens(listToken.items, callback));\n break;\n }\n default: {\n const genericToken = token;\n if (this.defaults.extensions?.childTokens?.[genericToken.type]) {\n this.defaults.extensions.childTokens[genericToken.type].forEach((childTokens) => {\n const tokens2 = genericToken[childTokens].flat(Infinity);\n values = values.concat(this.walkTokens(tokens2, callback));\n });\n } else if (genericToken.tokens) {\n values = values.concat(this.walkTokens(genericToken.tokens, callback));\n }\n }\n }\n }\n return values;\n }\n use(...args) {\n const extensions = this.defaults.extensions || { renderers: {}, childTokens: {} };\n args.forEach((pack) => {\n const opts = { ...pack };\n opts.async = this.defaults.async || opts.async || false;\n if (pack.extensions) {\n pack.extensions.forEach((ext) => {\n if (!ext.name) {\n throw new Error(\"extension name required\");\n }\n if (\"renderer\" in ext) {\n const prevRenderer = extensions.renderers[ext.name];\n if (prevRenderer) {\n extensions.renderers[ext.name] = function(...args2) {\n let ret = ext.renderer.apply(this, args2);\n if (ret === false) {\n ret = prevRenderer.apply(this, args2);\n }\n return ret;\n };\n } else {\n extensions.renderers[ext.name] = ext.renderer;\n }\n }\n if (\"tokenizer\" in ext) {\n if (!ext.level || ext.level !== \"block\" && ext.level !== \"inline\") {\n throw new Error(\"extension level must be 'block' or 'inline'\");\n }\n const extLevel = extensions[ext.level];\n if (extLevel) {\n extLevel.unshift(ext.tokenizer);\n } else {\n extensions[ext.level] = [ext.tokenizer];\n }\n if (ext.start) {\n if (ext.level === \"block\") {\n if (extensions.startBlock) {\n extensions.startBlock.push(ext.start);\n } else {\n extensions.startBlock = [ext.start];\n }\n } else if (ext.level === \"inline\") {\n if (extensions.startInline) {\n extensions.startInline.push(ext.start);\n } else {\n extensions.startInline = [ext.start];\n }\n }\n }\n }\n if (\"childTokens\" in ext && ext.childTokens) {\n extensions.childTokens[ext.name] = ext.childTokens;\n }\n });\n opts.extensions = extensions;\n }\n if (pack.renderer) {\n const renderer = this.defaults.renderer || new _Renderer(this.defaults);\n for (const prop in pack.renderer) {\n if (!(prop in renderer)) {\n throw new Error(`renderer '${prop}' does not exist`);\n }\n if ([\"options\", \"parser\"].includes(prop)) {\n continue;\n }\n const rendererProp = prop;\n const rendererFunc = pack.renderer[rendererProp];\n const prevRenderer = renderer[rendererProp];\n renderer[rendererProp] = (...args2) => {\n let ret = rendererFunc.apply(renderer, args2);\n if (ret === false) {\n ret = prevRenderer.apply(renderer, args2);\n }\n return ret || \"\";\n };\n }\n opts.renderer = renderer;\n }\n if (pack.tokenizer) {\n const tokenizer = this.defaults.tokenizer || new _Tokenizer(this.defaults);\n for (const prop in pack.tokenizer) {\n if (!(prop in tokenizer)) {\n throw new Error(`tokenizer '${prop}' does not exist`);\n }\n if ([\"options\", \"rules\", \"lexer\"].includes(prop)) {\n continue;\n }\n const tokenizerProp = prop;\n const tokenizerFunc = pack.tokenizer[tokenizerProp];\n const prevTokenizer = tokenizer[tokenizerProp];\n tokenizer[tokenizerProp] = (...args2) => {\n let ret = tokenizerFunc.apply(tokenizer, args2);\n if (ret === false) {\n ret = prevTokenizer.apply(tokenizer, args2);\n }\n return ret;\n };\n }\n opts.tokenizer = tokenizer;\n }\n if (pack.hooks) {\n const hooks = this.defaults.hooks || new _Hooks();\n for (const prop in pack.hooks) {\n if (!(prop in hooks)) {\n throw new Error(`hook '${prop}' does not exist`);\n }\n if ([\"options\", \"block\"].includes(prop)) {\n continue;\n }\n const hooksProp = prop;\n const hooksFunc = pack.hooks[hooksProp];\n const prevHook = hooks[hooksProp];\n if (_Hooks.passThroughHooks.has(prop)) {\n hooks[hooksProp] = (arg) => {\n if (this.defaults.async) {\n return Promise.resolve(hooksFunc.call(hooks, arg)).then((ret2) => {\n return prevHook.call(hooks, ret2);\n });\n }\n const ret = hooksFunc.call(hooks, arg);\n return prevHook.call(hooks, ret);\n };\n } else {\n hooks[hooksProp] = (...args2) => {\n let ret = hooksFunc.apply(hooks, args2);\n if (ret === false) {\n ret = prevHook.apply(hooks, args2);\n }\n return ret;\n };\n }\n }\n opts.hooks = hooks;\n }\n if (pack.walkTokens) {\n const walkTokens2 = this.defaults.walkTokens;\n const packWalktokens = pack.walkTokens;\n opts.walkTokens = function(token) {\n let values = [];\n values.push(packWalktokens.call(this, token));\n if (walkTokens2) {\n values = values.concat(walkTokens2.call(this, token));\n }\n return values;\n };\n }\n this.defaults = { ...this.defaults, ...opts };\n });\n return this;\n }\n setOptions(opt) {\n this.defaults = { ...this.defaults, ...opt };\n return this;\n }\n lexer(src, options2) {\n return _Lexer.lex(src, options2 ?? this.defaults);\n }\n parser(tokens, options2) {\n return _Parser.parse(tokens, options2 ?? this.defaults);\n }\n parseMarkdown(blockType) {\n const parse2 = (src, options2) => {\n const origOpt = { ...options2 };\n const opt = { ...this.defaults, ...origOpt };\n const throwError = this.onError(!!opt.silent, !!opt.async);\n if (this.defaults.async === true && origOpt.async === false) {\n return throwError(new Error(\"marked(): The async option was set to true by an extension. Remove async: false from the parse options object to return a Promise.\"));\n }\n if (typeof src === \"undefined\" || src === null) {\n return throwError(new Error(\"marked(): input parameter is undefined or null\"));\n }\n if (typeof src !== \"string\") {\n return throwError(new Error(\"marked(): input parameter is of type \" + Object.prototype.toString.call(src) + \", string expected\"));\n }\n if (opt.hooks) {\n opt.hooks.options = opt;\n opt.hooks.block = blockType;\n }\n const lexer2 = opt.hooks ? opt.hooks.provideLexer() : blockType ? _Lexer.lex : _Lexer.lexInline;\n const parser2 = opt.hooks ? opt.hooks.provideParser() : blockType ? _Parser.parse : _Parser.parseInline;\n if (opt.async) {\n return Promise.resolve(opt.hooks ? opt.hooks.preprocess(src) : src).then((src2) => lexer2(src2, opt)).then((tokens) => opt.hooks ? opt.hooks.processAllTokens(tokens) : tokens).then((tokens) => opt.walkTokens ? Promise.all(this.walkTokens(tokens, opt.walkTokens)).then(() => tokens) : tokens).then((tokens) => parser2(tokens, opt)).then((html2) => opt.hooks ? opt.hooks.postprocess(html2) : html2).catch(throwError);\n }\n try {\n if (opt.hooks) {\n src = opt.hooks.preprocess(src);\n }\n let tokens = lexer2(src, opt);\n if (opt.hooks) {\n tokens = opt.hooks.processAllTokens(tokens);\n }\n if (opt.walkTokens) {\n this.walkTokens(tokens, opt.walkTokens);\n }\n let html2 = parser2(tokens, opt);\n if (opt.hooks) {\n html2 = opt.hooks.postprocess(html2);\n }\n return html2;\n } catch (e) {\n return throwError(e);\n }\n };\n return parse2;\n }\n onError(silent, async) {\n return (e) => {\n e.message += \"\\nPlease report this to https://github.com/markedjs/marked.\";\n if (silent) {\n const msg = \"<p>An error occurred:</p><pre>\" + escape2(e.message + \"\", true) + \"</pre>\";\n if (async) {\n return Promise.resolve(msg);\n }\n return msg;\n }\n if (async) {\n return Promise.reject(e);\n }\n throw e;\n };\n }\n};\n\n// src/marked.ts\nvar markedInstance = new Marked();\nfunction marked(src, opt) {\n return markedInstance.parse(src, opt);\n}\nmarked.options = marked.setOptions = function(options2) {\n markedInstance.setOptions(options2);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n};\nmarked.getDefaults = _getDefaults;\nmarked.defaults = _defaults;\nmarked.use = function(...args) {\n markedInstance.use(...args);\n marked.defaults = markedInstance.defaults;\n changeDefaults(marked.defaults);\n return marked;\n};\nmarked.walkTokens = function(tokens, callback) {\n return markedInstance.walkTokens(tokens, callback);\n};\nmarked.parseInline = markedInstance.parseInline;\nmarked.Parser = _Parser;\nmarked.parser = _Parser.parse;\nmarked.Renderer = _Renderer;\nmarked.TextRenderer = _TextRenderer;\nmarked.Lexer = _Lexer;\nmarked.lexer = _Lexer.lex;\nmarked.Tokenizer = _Tokenizer;\nmarked.Hooks = _Hooks;\nmarked.parse = marked;\nvar options = marked.options;\nvar setOptions = marked.setOptions;\nvar use = marked.use;\nvar walkTokens = marked.walkTokens;\nvar parseInline = marked.parseInline;\nvar parse = marked;\nvar parser = _Parser.parse;\nvar lexer = _Lexer.lex;\nexport {\n _Hooks as Hooks,\n _Lexer as Lexer,\n Marked,\n _Parser as Parser,\n _Renderer as Renderer,\n _TextRenderer as TextRenderer,\n _Tokenizer as Tokenizer,\n _defaults as defaults,\n _getDefaults as getDefaults,\n lexer,\n marked,\n options,\n parse,\n parseInline,\n parser,\n setOptions,\n use,\n walkTokens\n};\n//# sourceMappingURL=marked.esm.js.map\n","import React, { useState, useRef, useCallback, forwardRef, useEffect } from 'react';\nimport { useSlate, ReactEditor } from 'slate-react';\nimport { Transforms, Element as SlateElement } from 'slate';\nimport styled from 'styled-components';\nimport { TemplateElement } from '../types';\n\n// 类型守卫函数\nconst isTemplateElement = (element: any): element is TemplateElement => {\n return element.type === 'template';\n};\n\n// 样式化组件\nconst TemplateContainer = styled.span<{ $style: string; $isEditing: boolean; $styles?: any; $contentLength: number }>`\n display: inline-block;\n min-width: ${props => props.$styles?.templateField?.minWidth || '80px'};\n padding: ${props => props.$styles?.templateField?.padding || '2px 6px'};\n margin: ${props => props.$styles?.templateField?.margin || '0 2px'};\n border-radius: ${props => props.$styles?.templateField?.borderRadius || '4px'};\n border: none !important;\n cursor: pointer;\n transition: all 0.2s;\n font-weight: ${props => props.$styles?.templateField?.fontWeight || '500'};\n user-select: none;\n font-size: ${props => props.$styles?.templateField?.fontSize || '14px'};\n line-height: 2;\n width: auto; /* 让宽度根据内容自动调整 */\n min-width: ${props => props.$styles?.templateField?.minWidth || '80px'};\n min-height: ${props => {\n // 计算最小高度,确保与输入框一致\n const padding = props.$styles?.templateField?.padding || '2px 6px';\n const fontSize = props.$styles?.templateField?.fontSize || '14px';\n const paddingValues = padding.split(' ').map((v: string) => parseInt(v));\n const topBottomPadding = paddingValues.length === 2 ? paddingValues[0] : paddingValues[0];\n const fontSizeNum = parseInt(fontSize);\n return (topBottomPadding * 2 + fontSizeNum * 1.4) + 'px';\n }};\n\n /* 高度自适应 */\n height: auto; /* 允许高度根据内容自动调整 */\n white-space: normal; /* 允许换行 */\n box-sizing: border-box; /* 确保padding和border包含在宽度内 */\n overflow: visible; /* 确保内容不被隐藏 */\n word-wrap: break-word; /* 允许长单词换行 */\n max-width: 100%; /* 限制在容器宽度内 */\n\n /* 使用传入的样式配置 */\n background-color: ${props => props.$styles?.templateField?.backgroundColor || '#E5EEFF'};\n color: #055AFF;\n border: 1px solid ${props => props.$styles?.templateField?.borderColor || '#84ADFF'};\n\n ${props => props.$isEditing && `\n background-color: white !important;\n color: #055AFF !important;\n border: 2px solid ${props.$styles?.templateField?.borderColor || '#84ADFF'} !important;\n outline: none;\n min-width: ${'30px'};\n `}\n\n &:hover {\n opacity: 0.8;\n }\n`;\n\nconst TemplateInput = styled.input<{ $styles?: any; $value: string; $maxWidth: number }>`\n background: white;\n border: 2px solid ${props => props.$styles?.templateField?.borderColor || '#84ADFF'};\n border-radius: ${props => props.$styles?.templateField?.borderRadius || '4px'};\n padding: ${props => props.$styles?.templateField?.padding || '2px 6px'};\n margin: ${props => props.$styles?.templateField?.margin || '0 2px'};\n min-width: ${'30px'};\n width: ${props => {\n // 根据内容计算宽度,但限制在文本流最大宽度内\n const contentLength = props.$value.length;\n if (contentLength === 0) {\n return props.$styles?.templateField?.minWidth || '120px';\n }\n // 每个字符约12px宽度,加上padding和缓冲空间\n const padding = props.$styles?.templateField?.padding || '2px 6.2px';\n const paddingValues = padding.split(' ').map((v: string) => parseInt(v));\n const leftRightPadding = paddingValues.length === 2 ? paddingValues[1] : paddingValues[0];\n const charWidth = 12.5; // 每个字符的宽度\n const bufferSpace = 20; // 缓冲空间\n const calculatedWidth = contentLength * charWidth + (leftRightPadding * 2) + bufferSpace;\n\n // 限制最大宽度,不能超过文本流限制\n const finalWidth = Math.min(Math.max(calculatedWidth, 120), props.$maxWidth);\n\n // 调试信息\n console.log('TemplateInput 宽度计算调试:', {\n contentLength,\n padding,\n paddingValues,\n leftRightPadding,\n charWidth,\n bufferSpace,\n calculatedWidth,\n maxWidth: props.$maxWidth,\n finalWidth,\n inputValue: props.$value\n });\n\n return finalWidth + 'px';\n }} !important; /* 使用!important确保宽度不被覆盖 */\n height: ${props => {\n // 计算高度,确保与显示状态一致\n const padding = props.$styles?.templateField?.padding || '2px 6px';\n const fontSize = props.$styles?.templateField?.fontSize || '14px';\n const paddingValues = padding.split(' ').map((v: string) => parseInt(v));\n const topBottomPadding = paddingValues.length === 2 ? paddingValues[0] : paddingValues[0];\n const fontSizeNum = parseInt(fontSize);\n return (topBottomPadding * 2 + fontSizeNum * 1.4) + 'px';\n }};\n font-size: ${props => props.$styles?.templateField?.fontSize || '14px'};\n font-family: inherit;\n outline: none;\n color: #055AFF;\n line-height: 2;\n box-sizing: border-box;\n white-space: nowrap; /* 防止内部换行 */\n overflow: hidden; /* 隐藏超出部分 */\n text-overflow: ellipsis; /* 超出部分显示省略号 */\n\n &:focus {\n border-color: ${props => props.$styles?.templateField?.borderColor || '#84ADFF'};\n box-shadow: 0 0 0 3px ${props => props.$styles?.templateField?.borderColor || '#84ADFF'}20;\n }\n`;\n\n// 模板字段组件\nconst TemplateField = forwardRef<HTMLSpanElement, {\n element: TemplateElement;\n attributes: any;\n children: React.ReactNode;\n styles?: any;\n onTemplateChange?: (id: string, value: string) => void;\n}>(({ element, attributes, children, styles, onTemplateChange }, ref) => {\n const editor = useSlate();\n const [isEditing, setIsEditing] = useState(false);\n const [inputValue, setInputValue] = useState('');\n const [displayValue, setDisplayValue] = useState(element.value || element.placeholder || '');\n const [maxAllowedWidth, setMaxAllowedWidth] = useState(600); // 动态最大宽度\n const inputRef = useRef<HTMLInputElement>(null);\n\n // 获取编辑器容器的最大宽度\n const getEditorMaxWidth = useCallback(() => {\n try {\n // 查找 Slate 编辑器的根容器\n const slateEditor = document.querySelector('[data-slate-editor=\"true\"]');\n if (slateEditor) {\n const container = slateEditor.closest('.sc-jwTyAe, .bdQKlw, [role=\"textbox\"]') || slateEditor.parentElement;\n if (container) {\n const containerWidth = container.clientWidth;\n // 减去一些边距和padding,确保不超出容器\n const availableWidth = containerWidth - 40; // 减去左右边距\n console.log('TemplateField: 编辑器容器宽度:', containerWidth, '可用宽度:', availableWidth);\n return Math.max(availableWidth, 200); // 最小宽度200px\n }\n }\n return 600; // 默认值\n } catch (error) {\n console.warn('TemplateField: 无法获取编辑器宽度,使用默认值:', error);\n return 600;\n }\n }, []);\n\n // 初始化显示值和最大宽度\n useEffect(() => {\n setDisplayValue(element.value || element.placeholder || '');\n // 动态设置最大宽度\n const maxWidth = getEditorMaxWidth();\n setMaxAllowedWidth(maxWidth);\n }, [element.value, element.placeholder, getEditorMaxWidth]);\n\n // 处理点击事件\n const handleClick = useCallback(() => {\n setIsEditing(true);\n setInputValue(''); // 确保输入框为空\n // 使用 setTimeout 确保 DOM 更新后再聚焦\n setTimeout(() => {\n if (inputRef.current) {\n inputRef.current.focus();\n inputRef.current.select();\n }\n }, 0);\n }, []);\n\n // 处理输入值变化\n const handleInputChange = useCallback((e: React.ChangeEvent<HTMLInputElement>) => {\n const newValue = e.target.value;\n setInputValue(newValue);\n }, []);\n\n // 处理输入确认\n const handleInputConfirm = useCallback(() => {\n // 找到当前元素在编辑器中的路径\n const path = ReactEditor.findPath(editor, element);\n console.log('TemplateField: 找到元素路径:', path);\n console.log('TemplateField: 当前元素:', element);\n console.log('TemplateField: 要设置的值:', inputValue);\n\n // 更新元素的值,但保持其他属性不变\n Transforms.setNodes(\n editor,\n { value: inputValue },\n { at: path }\n );\n\n // 更新显示值 - 只有当用户实际输入了内容时才显示,否则显示placeholder\n const finalValue = inputValue.trim() !== '' ? inputValue : element.placeholder || '';\n setDisplayValue(finalValue);\n\n // 验证更新是否成功\n const updatedElement = editor.children[path[0]];\n if (updatedElement && 'children' in updatedElement) {\n const childElement = updatedElement.children[path[1]];\n console.log('TemplateField: 更新后的元素:', childElement);\n }\n\n // 不需要手动调用onChange,Slate会自动处理\n setIsEditing(false);\n }, [editor, element, inputValue]);\n\n // 处理输入失焦\n const handleInputBlur = useCallback(() => {\n handleInputConfirm();\n }, [handleInputConfirm]);\n\n // 处理键盘事件\n const handleKeyDown = useCallback((e: React.KeyboardEvent<HTMLInputElement>) => {\n if (e.key === 'Enter') {\n e.preventDefault();\n handleInputConfirm();\n } else if (e.key === 'Escape') {\n e.preventDefault();\n // 取消编辑时,恢复原始值\n setInputValue(element.value || '');\n setIsEditing(false);\n }\n }, [handleInputConfirm, element.value]);\n\n // 渲染编辑状态或显示状态\n if (isEditing) {\n return (\n <span\n {...attributes}\n data-slate-void=\"true\"\n data-slate-inline=\"true\"\n data-slate-length=\"0\"\n contentEditable={false}\n >\n <TemplateInput\n ref={inputRef}\n value={inputValue}\n onChange={handleInputChange}\n onBlur={handleInputBlur}\n onKeyDown={handleKeyDown}\n placeholder=\"\"\n $styles={styles}\n $value={inputValue}\n $maxWidth={maxAllowedWidth}\n style={{\n backgroundColor: 'white',\n color: styles?.templateField?.textColor || '#055AFF',\n border: `2px solid ${styles?.templateField?.borderColor || '#84ADFF'}`,\n minWidth: styles?.templateField?.minWidth || '120px'\n }}\n />\n {children}\n </span>\n );\n }\n\n return (\n <span\n {...attributes}\n data-slate-void=\"true\"\n data-slate-inline=\"true\"\n data-slate-length=\"0\"\n contentEditable={false}\n >\n <TemplateContainer\n ref={ref}\n $style={element.style || 'blue'}\n $isEditing={false}\n $styles={styles}\n $contentLength={displayValue.length} // 使用实际显示内容的长度\n onClick={handleClick}\n style={{\n letterSpacing: styles?.letterSpacing,\n lineHeight: styles?.lineHeight,\n backgroundColor: styles?.templateField?.backgroundColor,\n borderColor: styles?.templateField?.borderColor,\n borderRadius: styles?.templateField?.borderRadius,\n padding: styles?.templateField?.padding,\n margin: styles?.templateField?.margin,\n fontSize: styles?.templateField?.fontSize,\n fontWeight: styles?.templateField?.fontWeight,\n minWidth: styles?.templateField?.minWidth,\n color: styles?.templateField?.textColor,\n width: 'auto', // 宽度自适应\n maxWidth: '100%', // 限制在容器宽度内\n }}\n >\n {/* 调试信息 */}\n {(() => {\n console.log('TemplateField 渲染调试:', {\n elementValue: element.value,\n elementPlaceholder: element.placeholder,\n displayValue,\n displayValueLength: displayValue.length,\n contentLength: displayValue.length\n });\n return null;\n })()}\n\n {displayValue}\n </TemplateContainer>\n {/* 这是 Slate void 元素必需的,用于光标定位 */}\n <span contentEditable={false} style={{ display: 'none' }}>\n {children}\n </span>\n </span>\n );\n});\n\nTemplateField.displayName = 'TemplateField';\n\nexport default TemplateField;\n","import React, { useState, useCallback, forwardRef } from 'react';\nimport { useSlate, ReactEditor } from 'slate-react';\nimport { Transforms, Element as SlateElement } from 'slate';\nimport styled from 'styled-components';\n\n// 定义模板字段的Leaf类型\ninterface TemplateLeaf {\n type: 'template';\n id: string;\n placeholder: string;\n value: string;\n style?: string;\n}\n\n// 类型守卫函数\nconst isTemplateLeaf = (leaf: any): leaf is TemplateLeaf => {\n return leaf.type === 'template';\n};\n\n// 样式化组件 - 模板字段容器\nconst TemplateLeafContainer = styled.span<{\n $style: string;\n $isEditing: boolean;\n $styles?: any;\n $contentLength: number;\n $isFocused: boolean;\n}>`\n display: inline; /* 改为inline,让元素能够像文本一样换行 */\n min-width: ${props => props.$styles?.templateField?.minWidth || '80px'};\n padding: ${props => props.$styles?.templateField?.padding || '2px 6px'};\n margin: ${props => props.$styles?.templateField?.margin || '0 2px'};\n border-radius: ${props => props.$styles?.templateField?.borderRadius || '4px'};\n cursor: pointer;\n transition: all 0.2s;\n font-weight: ${props => props.$styles?.templateField?.fontWeight || '500'};\n user-select: none;\n font-size: ${props => props.$styles?.templateField?.fontSize || '14px'};\n line-height: 1.4;\n white-space: normal; /* 允许换行,像普通paragraph元素一样 */\n box-sizing: border-box; /* 确保padding和border包含在宽度内 */\n overflow: visible; /* 确保内容不被隐藏 */\n\n /* 宽度自适应 - 支持换行 */\n width: auto; /* 让宽度根据内容自动调整 */\n\n /* 支持换行的最大宽度 */\n max-width: 100%; /* 允许元素在容器内换行 */\n\n /* 动态高度计算 - 支持换行 */\n min-height: ${props => {\n const padding = props.$styles?.templateField?.padding || '2px 6px';\n const fontSize = props.$styles?.templateField?.fontSize || '14px';\n const paddingValues = padding.split(' ').map((v: string) => parseInt(v));\n const topBottomPadding = paddingValues.length === 2 ? paddingValues[0] : paddingValues[0];\n const fontSizeNum = parseInt(fontSize);\n return (topBottomPadding * 2 + fontSizeNum * 1.4) + 'px';\n }};\n\n /* 高度自适应 */\n height: auto; /* 允许高度根据内容自动调整 */\n\n /* 使用传入的样式配置 */\n background-color: ${props => props.$styles?.templateField?.backgroundColor || '#0969da'};\n color: ${props => props.$styles?.templateField?.textColor || 'white'};\n border: 1px solid ${props => props.$styles?.templateField?.borderColor || '#0969da'};\n\n /* 编辑状态样式 */\n ${props => props.$isEditing && `\n background-color: white !important;\n color: ${props.$styles?.templateField?.textColor || '#055AFF'} !important;\n border: 2px solid ${props.$styles?.templateField?.borderColor || '#84ADFF'} !important;\n outline: none;\n min-width: ${'30px'};\n `}\n\n /* 聚焦状态样式 */\n ${props => props.$isFocused && `\n box-shadow: 0 0 0 3px ${props.$styles?.templateField?.borderColor || '#84ADFF'}20;\n `}\n\n &:hover {\n opacity: 0.8;\n }\n`;\n\n// 模板字段Leaf组件\nconst TemplateLeaf = forwardRef<HTMLSpanElement, {\n leaf: TemplateLeaf;\n attributes: any;\n children: React.ReactNode;\n styles?: any;\n onTemplateChange?: (id: string, value: string) => void;\n}>(({ leaf, attributes, children, styles, onTemplateChange }, ref) => {\n const editor = useSlate();\n const [isEditing, setIsEditing] = useState(false);\n const [isFocused, setIsFocused] = useState(false);\n\n // 获取显示值\n const displayValue = leaf.value || leaf.placeholder || '';\n\n // 处理点击事件 - 进入编辑模式\n const handleClick = useCallback(() => {\n setIsEditing(true);\n setIsFocused(true);\n\n // 找到当前leaf在编辑器中的位置\n const path = ReactEditor.findPath(editor, leaf as any);\n console.log('TemplateLeaf: 进入编辑模式,路径:', path);\n\n // 将光标设置到template字段的开始位置\n Transforms.select(editor, {\n anchor: { path, offset: 0 },\n focus: { path, offset: 0 }\n });\n\n // 聚焦编辑器\n ReactEditor.focus(editor);\n }, [editor, leaf]);\n\n // 处理失焦事件\n const handleBlur = useCallback(() => {\n setIsEditing(false);\n setIsFocused(false);\n }, []);\n\n // 处理键盘事件\n const handleKeyDown = useCallback((e: React.KeyboardEvent) => {\n if (e.key === 'Escape') {\n e.preventDefault();\n setIsEditing(false);\n setIsFocused(false);\n\n // 取消选择\n Transforms.deselect(editor);\n }\n }, [editor]);\n\n return (\n <TemplateLeafContainer\n {...attributes}\n ref={ref}\n $style={leaf.style || 'blue'}\n $isEditing={isEditing}\n $isFocused={isFocused}\n $styles={styles}\n $contentLength={displayValue.length}\n onClick={handleClick}\n onBlur={handleBlur}\n onKeyDown={handleKeyDown}\n contentEditable={false}\n style={{\n letterSpacing: styles?.letterSpacing,\n lineHeight: styles?.lineHeight,\n backgroundColor: styles?.templateField?.backgroundColor,\n borderColor: styles?.templateField?.borderColor,\n borderRadius: styles?.templateField?.borderRadius,\n padding: styles?.templateField?.padding,\n margin: styles?.templateField?.margin,\n fontSize: styles?.templateField?.fontSize,\n fontWeight: styles?.templateField?.fontWeight,\n minWidth: styles?.templateField?.minWidth,\n color: styles?.templateField?.textColor,\n width: 'auto', // 宽度自适应\n maxWidth: '100%', // 支持换行\n height: 'auto', // 高度自适应\n }}\n >\n {/* 调试信息 */}\n {(() => {\n console.log('TemplateLeaf 渲染调试:', {\n leafValue: leaf.value,\n leafPlaceholder: leaf.placeholder,\n displayValue,\n displayValueLength: displayValue.length,\n isEditing,\n isFocused\n });\n return null;\n })()}\n\n {displayValue}\n {children}\n </TemplateLeafContainer>\n );\n});\n\nTemplateLeaf.displayName = 'TemplateLeaf';\n\nexport default TemplateLeaf;\n","// 富文本元素渲染统一出口\n\n// 迁移自ChatMessage.tsx\n// React 17+ 自动引入,不需要显式导入\nimport TemplateField from './TemplateField';\nimport TemplateLeaf from './TemplateLeaf';\n\nexport const renderElement = (props: any) => {\n const { styles } = props;\n\n // 调试信息:输出接收到的样式配置\n // console.log('------------------renderElement element:', props);\n const { element, children, attributes } = props;\n switch (element.type) {\n case 'paragraph':\n // 使用 div 包裹,避免潜在的 <p> 嵌套 <p> 的 DOM 警告\n return (\n <div {...attributes} style={{\n letterSpacing: styles?.letterSpacing,\n lineHeight: styles?.lineHeight,\n color: `${styles?.text?.color} !important`,\n margin: '0 0 0.75rem 0'\n }}>\n {children}\n </div>\n );\n case 'heading-one':\n return (\n <h1 {...attributes} style={{\n letterSpacing: styles?.letterSpacing,\n lineHeight: styles?.lineHeight,\n color: `${styles?.text?.color} !important`\n }}>\n {children}\n </h1>\n );\n case 'heading-two':\n return (\n <h2 {...attributes} style={{\n letterSpacing: styles?.letterSpacing,\n lineHeight: styles?.lineHeight,\n color: `${styles?.text?.color} !important`\n }}>\n {children}\n </h2>\n );\n case 'heading-three':\n return (\n <h3 {...attributes} style={{\n letterSpacing: styles?.letterSpacing,\n lineHeight: styles?.lineHeight,\n color: `${styles?.text?.color} !important`\n }}>\n {children}\n </h3>\n );\n case 'bulleted-list':\n return (\n <ul {...attributes} style={{\n letterSpacing: styles?.letterSpacing,\n lineHeight: styles?.lineHeight,\n color: `${styles?.text?.color} !important`\n }}>\n {children}\n </ul>\n );\n case 'numbered-list':\n return (\n <ol {...attributes} style={{\n letterSpacing: styles?.letterSpacing,\n lineHeight: styles?.lineHeight,\n color: `${styles?.text?.color} !important`\n }}>\n {children}\n </ol>\n );\n case 'list-item':\n return (\n <li {...attributes} style={{\n letterSpacing: styles?.letterSpacing,\n lineHeight: styles?.lineHeight,\n color: `${styles?.text?.color} !important`\n }}>\n {children}\n </li>\n );\n case 'table':\n return (\n <div className=\"table-container\">\n <table {...attributes}>\n <tbody>{children}</tbody>\n </table>\n </div>\n );\n case 'table-row':\n return (\n <tr {...attributes}>\n {children}\n </tr>\n );\n case 'table-cell':\n if (element.header) {\n return (\n <th {...attributes}>\n {children}\n </th>\n );\n }\n return (\n <td {...attributes}>\n {children}\n </td>\n );\n case 'block-quote':\n return (\n <blockquote {...attributes} style={{\n letterSpacing: styles?.letterSpacing,\n lineHeight: styles?.lineHeight,\n color: `${styles?.text?.color} !important`\n }}>\n {children}\n </blockquote>\n );\n case 'code-block':\n return (\n <pre {...attributes}>\n <code style={{\n color: `${styles?.text?.color} !important`\n }}>{children}</code>\n </pre>\n );\n case 'think':\n return (\n <div {...attributes} className=\"think-container\">\n <div className=\"think-indicator\" />\n <div className=\"think-content\">\n <div className=\"think-header\">\n <span className=\"think-icon\">💭</span>\n 思考中\n </div>\n <div className=\"think-text\" style={{\n color: `${styles?.text?.color} !important`\n }}>{children}</div>\n </div>\n </div>\n );\n\n case 'template':\n return (\n <TemplateField\n {...attributes}\n element={element}\n children={children}\n styles={styles}\n />\n );\n\n default:\n return (\n <div {...attributes} className=\"mb-4\" style={{\n letterSpacing: styles?.letterSpacing,\n lineHeight: styles?.lineHeight,\n color: `${styles?.text?.color} !important`\n }}>\n {children}\n </div>\n );\n }\n};\n\nexport const renderLeaf = (props: any) => {\n const { attributes, children, leaf, styles } = props;\n\n // 调试信息:输出接收到的样式配置\n if (styles?.text?.color) {\n console.log('renderLeaf - 接收到的文本颜色:', styles.text.color);\n }\n\n // 处理模板字段Leaf\n if (leaf.type === 'template') {\n return (\n <TemplateLeaf\n leaf={leaf}\n attributes={attributes}\n children={children}\n styles={styles}\n />\n );\n }\n\n let el = children;\n\n // retrive-tag 行内高亮渲染\n if (leaf.retrive) {\n el = (\n <span\n {...attributes}\n className=\"retrive-tag\"\n onClick={() => {\n if (props.onRetriveTagClick) {\n props.onRetriveTagClick(leaf, attributes);\n }\n }}\n >\n {el}\n </span>\n );\n return el;\n }\n\n if (leaf.code) {\n el = (\n <code {...attributes} style={{\n color: `${styles?.text?.color} !important`\n }}>\n {el}\n </code>\n );\n } else {\n const className = [\n leaf.bold && 'bold',\n leaf.italic && 'italic',\n leaf.underline && 'underline',\n leaf.strikethrough && 'strikethrough'\n ].filter(Boolean).join(' ');\n\n // 应用传入的文本样式\n const textStyle = {\n color: `${styles?.text?.color} !important`,\n fontSize: styles?.text?.fontSize,\n lineHeight: styles?.text?.lineHeight,\n letterSpacing: styles?.letterSpacing\n };\n\n el = (\n <span\n {...attributes}\n className={className}\n style={textStyle}\n >\n {el}\n </span>\n );\n }\n\n if (leaf.link) {\n el = (\n <a\n href={leaf.link}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"link\"\n style={{\n color: `${styles?.text?.color} !important`\n }}\n >\n {el}\n </a>\n );\n }\n\n return el;\n};\n","import styled from 'styled-components';\n\n// 富文本容器样式\nexport const RichTextContainer = styled.div<{ theme?: any; $size?: 'sm' | 'md' }>`\n padding: ${props => props.theme?.padding || '1rem'};\n\n & > * + * {\n margin-top: ${props => props.theme?.margin || '0.5rem'};\n }\n\n /* 标题样式 */\n & h1 {\n font-size: ${props => props.$size === 'sm' ? '20px' : '36px'};\n font-weight: 700;\n margin-bottom: ${props => props.$size === 'sm' ? '12px' : '16px'};\n color: ${props => props.theme?.textColor || '#343a40'};\n border-bottom: 2px solid ${props => props.theme?.borderColor || '#dee2e6'};\n padding-bottom: ${props => props.$size === 'sm' ? '6px' : '8px'};\n }\n\n & h2 {\n font-size: ${props => props.$size === 'sm' ? '18px' : '30px'};\n font-weight: 600;\n margin-bottom: ${props => props.$size === 'sm' ? '8px' : '12px'};\n color: ${props => props.theme?.textColor || '#343a40'};\n border-bottom: 1px solid ${props => props.theme?.borderColor || '#dee2e6'};\n padding-bottom: ${props => props.$size === 'sm' ? '2px' : '4px'};\n }\n\n & h3 {\n font-size: ${props => props.$size === 'sm' ? '16px' : '25px'};\n font-weight: 600;\n margin-bottom: ${props => props.$size === 'sm' ? '6px' : '8px'};\n color: ${props => props.theme?.textColor || '#343a40'};\n }\n\n /* 段落样式 */\n & p {\n font-size: ${props => props.$size === 'sm' ? '14px' : '16px'};\n margin-bottom: 0.75rem;\n line-height: 1.6;\n color: ${props => props.theme?.textColor || '#343a40'};\n }\n\n /* 列表样式 */\n & ul, & ol {\n font-size: ${props => props.$size === 'sm' ? '14px' : '16px'};\n margin-bottom: 0.75rem;\n padding-left: 1.5rem;\n list-style-position: outside;\n }\n\n & ul {\n list-style-type: disc;\n }\n\n & ol {\n list-style-type: decimal;\n }\n\n & li {\n margin-bottom: 0.25rem;\n line-height: 1.6;\n display: list-item;\n }\n\n & ul li {\n list-style-type: disc;\n }\n\n & ol li {\n list-style-type: decimal;\n }\n\n /* 确保列表样式不被重置 */\n & ul, & ol {\n list-style: inherit;\n }\n\n & ul {\n list-style-type: disc !important;\n }\n\n & ol {\n list-style-type: decimal !important;\n }\n\n & li {\n list-style: inherit !important;\n }\n\n /* 引用块样式 */\n & blockquote {\n font-size: ${props => props.$size === 'sm' ? '14px' : '16px'};\n border-left: 4px solid ${props => props.theme?.primaryColor || '#007bff'};\n padding-left: 1rem;\n margin: 1rem 0;\n font-style: italic;\n color: ${props => props.theme?.secondaryColor || '#6c757d'};\n background-color: ${props => props.theme?.disabledBackground || '#F5F5F5'};\n padding: 1rem;\n border-radius: 0.25rem;\n }\n\n /* 行内代码样式 */\n & code {\n font-size: ${props => props.$size === 'sm' ? '14px' : '16px'};\n background-color: ${props => props.theme?.disabledBackground || '#F5F5F5'};\n padding: 0.125rem 0.25rem;\n border-radius: 0.25rem;\n font-family: 'Monaco', 'Menlo', 'Ubuntu Mono', monospace;\n font-size: 0.875rem;\n color: ${props => props.theme?.textColor || '#343a40'};\n }\n\n /* 代码块样式 */\n & pre {\n background-color: ${props => props.theme?.disabledBackground || '#F5F5F5'};\n padding: 1rem;\n border-radius: 0.5rem;\n overflow-x: auto;\n margin: 1rem 0;\n border: 1px solid ${props => props.theme?.borderColor || '#dee2e6'};\n position: relative;\n }\n\n /* 代码块复制按钮 - GitHub 风格 */\n & .code-copy-btn {\n position: absolute;\n top: 0.75rem;\n right: 0.75rem;\n background: rgba(255, 255, 255, 0.9);\n color: #6e7781;\n border: 1px solid #d0d7de;\n border-radius: 6px;\n padding: 0.375rem;\n cursor: pointer;\n opacity: 0;\n transition: all 0.2s ease-in-out;\n z-index: 10;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 24px;\n height: 24px;\n backdrop-filter: blur(8px);\n }\n\n & pre:hover .code-copy-btn {\n opacity: 1;\n }\n\n & .code-copy-btn:hover {\n background: rgba(255, 255, 255, 1);\n border-color: #8c959f;\n color: #24292f;\n transform: scale(1.05);\n }\n\n & .code-copy-btn.copied {\n transform: scale(1.05);\n }\n\n & .code-copy-btn.copied:hover {\n background: rgba(255, 255, 255, 1);\n border-color: #8c959f;\n }\n\n /* 复制按钮动画 */\n & .code-copy-btn svg {\n transition: all 0.2s ease-in-out;\n }\n\n & .code-copy-btn.copied svg {\n transform: scale(1.1);\n color: #2da44e;\n }\n\n & pre code {\n background-color: transparent;\n padding: 0;\n color: ${props => props.theme?.textColor || '#343a40'};\n }\n\n /* 表格样式 */\n & table {\n font-size: ${props => props.$size === 'sm' ? '14px' : '16px'};\n width: 100%;\n min-width: max-content;\n border-collapse: collapse;\n\n border: 1px solid ${props => props.theme?.borderColor || '#dee2e6'};\n font-size: calc(1rem - 2px);\n }\n\n & th, & td {\n border: 1px solid ${props => props.theme?.borderColor || '#dee2e6'};\n padding: 0.5rem;\n text-align: left;\n min-width: 120px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n & th {\n background-color: ${props => props.theme?.disabledBackground || '#F5F5F5'};\n font-weight: 600;\n position: sticky;\n top: 0;\n z-index: 1;\n }\n\n & tr:nth-child(even) {\n background-color: ${props => props.theme?.backgroundColor || '#ffffff'};\n }\n\n & tr:hover {\n background-color: ${props => props.theme?.disabledBackground || '#F5F5F5'};\n }\n\n /* 表格容器,支持横向滚动 */\n & .table-container {\n overflow-x: auto;\n margin: 1.5rem 0;\n border-radius: 0.5rem;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n }\n\n /* 图片样式 */\n & img {\n max-width: 100%;\n height: auto;\n border-radius: 0.5rem;\n margin: 1rem 0;\n box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);\n }\n\n /* 链接样式 */\n & a {\n color: ${props => props.theme?.primaryColor || '#007bff'};\n text-decoration: none;\n\n &:hover {\n text-decoration: underline;\n }\n }\n\n /* 文本样式 */\n & strong {\n font-weight: 600;\n }\n\n & em {\n font-style: italic;\n }\n\n & u {\n text-decoration: underline;\n }\n\n & s {\n text-decoration: line-through;\n }\n\n /* 分割线样式 */\n & hr {\n border: none;\n border-top: 1px solid ${props => props.theme?.borderColor || '#dee2e6'};\n margin: 2rem 0;\n }\n\n /* 思考容器样式 */\n & .think-container {\n background: #f8fafc;\n border-radius: 8px;\n border: 1px dashed #e0e7ef;\n color: #b0b8c9;\n margin: 16px 0;\n padding: 0;\n position: relative;\n font-style: italic;\n overflow: hidden;\n display: flex;\n }\n\n & .think-indicator {\n width: 4px;\n background: linear-gradient(to bottom, #e0e7ef 60%, #f1f5f9 100%);\n border-radius: 2px;\n margin-right: 12px;\n min-height: 100%;\n }\n\n & .think-content {\n flex: 1;\n }\n\n & .think-header {\n border-top: 1px solid #e0e7ef;\n padding-top: 8px;\n margin-bottom: 6px;\n font-weight: 500;\n color: #a3a3a3;\n font-size: 13px;\n letter-spacing: 1px;\n display: flex;\n align-items: center;\n }\n\n & .think-icon {\n margin-right: 8px;\n font-size: 12px;\n }\n\n & .think-text {\n color: #b0b8c9;\n font-size: 13px;\n line-height: 1.7;\n padding: 0px 12px;\n }\n\n /* 召回标签样式 */\n & .retrive-tag {\n display: inline-block;\n background: #e6f7ff;\n color: #1890ff;\n border: 1px solid rgba(114, 187, 255, 0.3);\n border-radius: 6px;\n padding: 1px 6px;\n margin: 0 2px;\n font-weight: 600;\n font-size: 8px;\n line-height: 17px;\n cursor: pointer;\n vertical-align: middle;\n transition: background-color 0.2s ease-in-out;\n }\n\n & .retrive-tag:hover {\n background: #bae7ff;\n }\n\n /* 文本样式类 */\n & .bold {\n font-weight: 600;\n }\n\n & .italic {\n font-style: italic;\n }\n\n & .underline {\n text-decoration: underline;\n }\n\n & .strikethrough {\n text-decoration: line-through;\n color: #6b7280;\n }\n\n /* 链接样式 */\n & .link {\n color: #3b82f6;\n text-decoration: underline;\n transition: color 0.2s ease-in-out;\n }\n\n & .link:hover {\n color: #2563eb;\n }\n`;\n","import React, { useCallback, useMemo, useRef, useState, useEffect } from 'react';\nimport { createEditor, Editor, Transforms, Text } from 'slate';\nimport { Slate, Editable, withReact, RenderElementProps, RenderLeafProps } from 'slate-react';\nimport { marked } from 'marked';\nimport styled from 'styled-components';\n// keep icons imported only if used in future: removed for now to avoid lint warnings\nimport { CustomElement } from './types';\nimport { renderElement, renderLeaf } from './richElements';\nimport { RichTextContainer } from './richElements/styles';\n\n// 样式化组件\nconst Container = styled.div<{ theme?: any; $isEditing?: boolean }>`\n border: ${props => props.$isEditing ? '1px solid #dee2e6' : 'none'};\n border-radius: ${props => props.theme?.borderRadius || '4px'};\n background-color: ${props => props.theme?.backgroundColor || 'transparent'};\n min-height: ${props => props.theme?.minHeight || '200px'};\n overflow: hidden;\n transition: all 0.2s ease-in-out;\n\n ${props => props.$isEditing && `\n &:focus-within {\n border-color: ${props.theme?.primaryColor || '#007bff'};\n box-shadow: 0 0 0 2px ${props.theme?.primaryColor || '#007bff'}20;\n }\n `}\n`;\n\nconst EditableContainer = styled.div<{ theme?: any }>`\n padding: ${props => props.theme?.padding || '1rem'};\n min-height: 150px;\n outline: none;\n\n & > * + * {\n margin-top: ${props => props.theme?.margin || '0.5rem'};\n }\n`;\n\n\n\n// 数据类型枚举\nexport enum DataType {\n SLATE = 'slate',\n MARKDOWN = 'markdown',\n HTML = 'html',\n TEXT = 'text'\n}\n\n// 数据源类型\nexport interface DataSource {\n type: DataType;\n content: any;\n}\n\n// 组件属性\nexport interface UnifiedRichTextProps {\n /** 数据源 */\n dataSource: {\n type: DataType;\n content?: any;\n };\n /** 是否处于编辑模式 */\n isEditing?: boolean;\n /** 占位符文本 */\n placeholder?: string;\n /** 组件尺寸 */\n size?: 'sm' | 'md';\n /** 主题样式 */\n theme?: {\n primaryColor?: string;\n secondaryColor?: string;\n backgroundColor?: string;\n textColor?: string;\n borderColor?: string;\n disabledBackground?: string;\n borderRadius?: string;\n padding?: string;\n margin?: string;\n minHeight?: string;\n };\n /** 内容变化回调 */\n onChange?: (content: any, type: DataType) => void;\n /** 聚焦回调 */\n onFocus?: () => void;\n /** 失焦回调 */\n onBlur?: () => void;\n /** 自定义渲染元素 */\n renderElement?: (props: RenderElementProps) => JSX.Element;\n /** 自定义渲染叶子节点 */\n renderLeaf?: (props: RenderLeafProps) => JSX.Element;\n /** 自定义样式 */\n className?: string;\n /** 自定义样式对象 */\n style?: React.CSSProperties;\n /** 样式配置 */\n styles?: {\n /** 字间距 */\n letterSpacing?: string;\n /** 行间距 */\n lineHeight?: string;\n /** 蓝框背景样式 */\n templateField?: {\n backgroundColor?: string;\n borderColor?: string;\n borderRadius?: string;\n padding?: string;\n margin?: string;\n fontSize?: string;\n fontWeight?: string;\n minWidth?: string;\n maxWidth?: string;\n /** 文字颜色 */\n textColor?: string;\n };\n /** 文本样式 */\n text?: {\n fontSize?: string;\n lineHeight?: string;\n color?: string;\n };\n };\n /** 是否启用在输入/粘贴时将 <template>...</template> 识别为模板元素 */\n enableTemplateInput?: boolean;\n}\n\n/**\n * 统一富文本组件\n * 支持编辑和渲染模式,通过dataSource和dataType判断数据源\n */\nconst UnifiedRichText: React.FC<UnifiedRichTextProps> = ({\n dataSource,\n isEditing = false,\n placeholder = '开始输入...',\n size = 'sm',\n theme = {},\n onChange,\n onFocus,\n onBlur,\n renderElement: customRenderElement,\n renderLeaf: customRenderLeaf,\n className,\n style,\n styles,\n enableTemplateInput = false,\n}) => {\n // 创建编辑器实例\n const editorRef = useRef<Editor>();\n if (!editorRef.current) {\n const baseEditor = createEditor();\n\n // 扩展编辑器以支持自定义元素\n const extendedEditor = withReact(baseEditor);\n\n // 重写isInline方法以支持template元素\n const { isInline } = extendedEditor;\n extendedEditor.isInline = (element) => {\n if (element.type === 'template') {\n return true;\n }\n return isInline(element);\n };\n\n // 重写isVoid方法以支持template元素\n const { isVoid } = extendedEditor;\n extendedEditor.isVoid = (element) => {\n if (element.type === 'template') {\n return true;\n }\n return isVoid(element);\n };\n\n // 在输入/粘贴时识别 <template> 标签为自定义行内元素\n const withTemplateShortcode = (editor: Editor): Editor => {\n if (!enableTemplateInput) return editor;\n const { insertText, insertData } = editor;\n\n const transformTextNodesWithTemplate = () => {\n const regex = /<template>([^<]*)<\\/template>/g;\n const matches = Array.from(\n Editor.nodes(editor, {\n match: (n) => Text.isText(n) && regex.test((n as any).text),\n })\n );\n if (matches.length === 0) return;\n\n for (const match of matches) {\n const [textNode, path] = match as any;\n const fullText: string = (textNode as any).text || '';\n const parts: any[] = [];\n let lastIndex = 0;\n let m: RegExpExecArray | null;\n regex.lastIndex = 0;\n while ((m = regex.exec(fullText)) !== null) {\n if (m.index > lastIndex) {\n const plain = fullText.slice(lastIndex, m.index);\n if (plain) parts.push({ text: plain });\n }\n parts.push({\n type: 'template',\n placeholder: (m[1] || '').trim(),\n value: '',\n style: 'blue',\n fieldId: `template-${Date.now()}-${Math.random().toString(36).slice(2, 7)}`,\n children: [{ text: '' }],\n inline: true,\n });\n lastIndex = m.index + m[0].length;\n }\n if (lastIndex < fullText.length) {\n const tail = fullText.slice(lastIndex);\n if (tail) parts.push({ text: tail });\n }\n\n // 用解析后的片段替换当前文本节点\n Transforms.removeNodes(editor, { at: path });\n Transforms.insertNodes(editor, parts as any, { at: path });\n }\n };\n\n editor.insertText = (text: string) => {\n insertText(text);\n transformTextNodesWithTemplate();\n };\n\n editor.insertData = (data: DataTransfer) => {\n const text = data.getData('text/plain');\n if (text && /<template>[\\s\\S]*?<\\/template>/.test(text)) {\n insertText(text);\n transformTextNodesWithTemplate();\n return;\n }\n return (insertData as any)(data);\n };\n return editor;\n };\n\n editorRef.current = withTemplateShortcode(extendedEditor);\n }\n const editor = editorRef.current;\n\n // 状态管理\n const [value, setValue] = useState<CustomElement[]>(() => {\n if (dataSource.type === DataType.SLATE) {\n return dataSource.content || [{ type: 'paragraph', children: [{ text: '' }] }];\n }\n return [{ type: 'paragraph', children: [{ text: '' }] }];\n });\n\n // 外部 dataSource.content 变化时,同步内部 value 并通过 key 强制 Slate 重建\n const [editorKey, setEditorKey] = useState(0);\n useEffect(() => {\n if (dataSource.type === DataType.SLATE) {\n console.log('UnifiedRichText: dataSource.content 变化:', dataSource.content);\n const nextValue = dataSource.content || [{ type: 'paragraph', children: [{ text: '' }] }];\n console.log('UnifiedRichText: 设置新的 value:', nextValue);\n setValue(nextValue);\n setEditorKey(prev => prev + 1);\n }\n }, [dataSource.type, dataSource.content]);\n\n // 处理内容变化\n const handleChange = useCallback((newValue: any[]) => {\n console.log('UnifiedRichText: 内容变化:', newValue);\n // 确保 newValue 不为空且有效\n if (newValue && Array.isArray(newValue)) {\n setValue(newValue as CustomElement[]);\n onChange?.(newValue, DataType.SLATE);\n } else {\n console.log('UnifiedRichText: 忽略无效的内容变化:', newValue);\n }\n }, [onChange]);\n\n // 渲染函数\n const renderElementFunction = useCallback(\n (props: RenderElementProps) => {\n const propsWithSize = { ...props, size, styles };\n return customRenderElement ? customRenderElement(propsWithSize) : renderElement(propsWithSize);\n },\n [customRenderElement, size, styles]\n );\n\n const renderLeafFunction = useCallback(\n (props: RenderLeafProps) => {\n const propsWithStyles = { ...props, styles };\n return customRenderLeaf ? customRenderLeaf(propsWithStyles) : renderLeaf(propsWithStyles);\n },\n [customRenderLeaf, styles]\n );\n\n // 注入复制代码功能\n useEffect(() => {\n // 定义全局复制函数 - 从 data 属性获取代码内容\n (window as any).copyCodeFromData = (button: HTMLButtonElement) => {\n const codeContent = button.getAttribute('data-code');\n if (!codeContent) {\n console.error('No code content found');\n return;\n }\n\n // 解码转义的字符串\n const decodedContent = codeContent\n .replace(/\\\\n/g, '\\n')\n .replace(/\\\\r/g, '\\r')\n .replace(/\\\\t/g, '\\t')\n .replace(/\\\\'/g, \"'\")\n .replace(/\\\\\\\\/g, '\\\\')\n .replace(/&quot;/g, '\"');\n\n // 复制到剪贴板\n navigator.clipboard.writeText(decodedContent).then(() => {\n // 保存原始图标\n const originalHTML = button.innerHTML;\n\n // 切换到绿色 check 图标\n button.innerHTML = '<svg width=\"16\" height=\"16\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"#2da44e\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><polyline points=\"20,6 9,17 4,12\"></polyline></svg>';\n\n // 添加复制成功样式\n button.classList.add('copied');\n\n // 2秒后恢复原始状态\n setTimeout(() => {\n button.innerHTML = originalHTML;\n button.classList.remove('copied');\n }, 2000);\n }).catch((err) => {\n console.error('复制失败:', err);\n\n // 保存原始图标\n const originalHTML = button.innerHTML;\n\n // 显示错误图标(X)\n button.innerHTML = '<svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><line x1=\"18\" y1=\"6\" x2=\"6\" y2=\"18\"></line><line x1=\"6\" y1=\"6\" x2=\"18\" y2=\"18\"></line></svg>';\n\n // 添加错误样式\n button.style.background = '#d73a49';\n button.style.borderColor = '#d73a49';\n button.style.color = 'white';\n\n // 2秒后恢复原始状态\n setTimeout(() => {\n button.innerHTML = originalHTML;\n button.style.background = '';\n button.style.borderColor = '';\n button.style.color = '';\n }, 2000);\n });\n };\n\n return () => {\n delete (window as any).copyCodeFromData;\n };\n }, []);\n\n // 处理Markdown内容\n const renderMarkdownContent = useMemo(() => {\n if (dataSource.type !== DataType.MARKDOWN) return null;\n\n try {\n const markedOptions = {\n breaks: true,\n gfm: true,\n headerIds: true,\n mangle: false,\n sanitize: false,\n pedantic: false,\n smartLists: true,\n smartypants: true,\n };\n\n let htmlContent = marked(dataSource.content || '', markedOptions) as string;\n\n // 为表格添加滚动容器\n htmlContent = htmlContent.replace(\n /<table([^>]*)>/g,\n '<div class=\"table-container\"><table$1>'\n );\n htmlContent = htmlContent.replace(\n /<\\/table>/g,\n '</table></div>'\n );\n\n // 为代码块添加复制按钮\n htmlContent = htmlContent.replace(\n /<pre><code([^>]*)>([\\s\\S]*?)<\\/code><\\/pre>/g,\n (_match, codeAttrs, codeContent) => {\n // 使用 data 属性存储代码内容,避免 onclick 中的语法错误\n const escapedContent = codeContent\n .replace(/\\\\/g, '\\\\\\\\')\n .replace(/'/g, \"\\\\'\")\n .replace(/\\n/g, '\\\\n')\n .replace(/\\r/g, '\\\\r')\n .replace(/\\t/g, '\\\\t')\n .replace(/\"/g, '&quot;');\n\n return `<pre><code${codeAttrs}>${codeContent}</code><button class=\"code-copy-btn\" data-code=\"${escapedContent}\" onclick=\"copyCodeFromData(this)\" title=\"复制代码\"><svg width=\"12\" height=\"12\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"><rect width=\"14\" height=\"14\" x=\"8\" y=\"8\" rx=\"2\" ry=\"2\"></rect><path d=\"M4 16c-1.1 0-2-.9-2-2V4c0-1.1.9-2 2-2h10c1.1 0 2 .9 2 2\"></path></svg></button></pre>`;\n }\n );\n\n return (\n <RichTextContainer\n theme={theme}\n $size={size}\n dangerouslySetInnerHTML={{ __html: htmlContent }}\n />\n );\n } catch (error) {\n console.error('Markdown parsing error:', error);\n return <div>{dataSource.content}</div>;\n }\n }, [dataSource, theme]);\n\n // 处理HTML内容\n const renderHtmlContent = useMemo(() => {\n if (dataSource.type !== DataType.HTML) return null;\n\n return (\n <RichTextContainer\n theme={theme}\n $size={size}\n dangerouslySetInnerHTML={{ __html: dataSource.content || '' }}\n />\n );\n }, [dataSource, theme]);\n\n // 处理纯文本内容\n const renderTextContent = useMemo(() => {\n if (dataSource.type !== DataType.TEXT) return null;\n\n return (\n <RichTextContainer theme={theme} $size={size}>\n <span>{dataSource.content || ''}</span>\n </RichTextContainer>\n );\n }, [dataSource, theme]);\n\n // 根据数据类型渲染不同内容\n const renderContent = () => {\n switch (dataSource.type) {\n case DataType.MARKDOWN:\n return renderMarkdownContent;\n case DataType.HTML:\n return renderHtmlContent;\n case DataType.TEXT:\n return renderTextContent;\n case DataType.SLATE:\n default:\n if (isEditing) {\n return (\n <Slate\n key={editorKey}\n editor={editor}\n initialValue={value}\n onChange={handleChange}\n >\n <EditableContainer theme={theme}>\n <Editable\n renderElement={renderElementFunction}\n renderLeaf={renderLeafFunction}\n placeholder={placeholder}\n readOnly={false}\n onFocus={onFocus}\n onBlur={onBlur}\n style={{\n minHeight: 'inherit',\n outline: 'none',\n }}\n />\n </EditableContainer>\n </Slate>\n );\n } else {\n return (\n <Slate\n key={editorKey}\n editor={editor}\n initialValue={value}\n onChange={() => {\n // 只读模式,不处理变化\n }}\n >\n <EditableContainer theme={theme}>\n <Editable\n renderElement={renderElementFunction}\n renderLeaf={renderLeafFunction}\n readOnly={true}\n style={{\n minHeight: 'inherit',\n outline: 'none',\n border: 'none',\n background: 'transparent',\n }}\n />\n </EditableContainer>\n </Slate>\n );\n }\n }\n };\n\n return (\n <Container\n theme={theme}\n $isEditing={isEditing}\n className={className}\n style={style}\n >\n {renderContent()}\n </Container>\n );\n};\n\nexport default UnifiedRichText;\nexport { UnifiedRichText };\n","import React, { useCallback, useState, useEffect } from 'react';\nimport styled from 'styled-components';\nimport { UnifiedRichText, DataType } from '../core/UnifiedRichText';\nimport { Styles } from '@mxmweb/zui';\n\n// 样式化组件\nconst Container = styled.div`\n background: #f6f8fa;\n border: 1px solid #d0d7de;\n border-radius: 6px;\n padding: 16px;\n margin-bottom: 20px;\n`;\n\nconst Instructions = styled.p`\n margin: 0 0 16px 0;\n color: #656d76;\n font-size: 14px;\n line-height: 1.5;\n`;\n\ninterface PromptTempDesignerProps {\n /** 包含template标签的原始数据 */\n data: string;\n /** 模版内容变化回调 */\n onChange?: (template: string) => void;\n /** 样式配置 - 基于统一的Styles接口扩展 */\n styles?: Styles & {\n /** 模板字段特殊样式配置 */\n templateField?: {\n backgroundColor?: string;\n borderColor?: string;\n borderRadius?: string;\n padding?: string;\n margin?: string;\n fontSize?: string;\n fontWeight?: string;\n minWidth?: string;\n maxWidth?: string;\n textColor?: string;\n };\n };\n /** 获取数据的回调函数 */\n onGetData?: (getData: (format: 'pure_string' | 'string' | 'markdown' | 'html') => string) => void;\n}\n\n/**\n * 解析包含template标签的字符串,转换为Slate格式\n * @param templateString 包含<template>标签的字符串\n * @returns Slate格式的数据\n */\nconst parseTemplateString = (templateString: string): any[] => {\n // 如果输入为空,返回空段落结构\n if (!templateString || templateString.trim() === '') {\n return [\n {\n type: 'paragraph',\n children: [{ text: '' }]\n }\n ];\n }\n\n // 匹配<template>标签的正则表达式\n const templateRegex = /<template>([^<]*)<\\/template>/g;\n const parts: any[] = [];\n let lastIndex = 0;\n let match;\n let templateIndex = 0;\n\n console.log('开始解析模板字符串:', templateString);\n\n // 遍历所有template标签\n while ((match = templateRegex.exec(templateString)) !== null) {\n const fullMatch = match[0];\n const placeholder = match[1];\n const matchStart = match.index;\n const matchEnd = matchStart + fullMatch.length;\n\n // 添加template标签之前的文本(只有当文本不为空时才添加)\n if (matchStart > lastIndex) {\n const textBefore = templateString.slice(lastIndex, matchStart);\n if (textBefore.trim() !== '') {\n parts.push({ text: textBefore });\n console.log('添加文本元素:', { text: textBefore });\n }\n }\n\n // 添加template元素,确保有正确的Slate结构\n const templateElement = {\n type: 'template',\n placeholder: placeholder.trim(),\n value: '', // 初始值设为空,让用户输入\n style: 'blue',\n fieldId: `template-${templateIndex++}`,\n children: [{ text: '' }], // Slate要求每个元素都有children\n inline: true // 标记为inline元素\n };\n\n parts.push(templateElement);\n console.log('添加template元素:', templateElement);\n\n lastIndex = matchEnd;\n }\n\n // 添加最后一个template标签之后的文本\n if (lastIndex < templateString.length) {\n const textAfter = templateString.slice(lastIndex);\n if (textAfter.trim() !== '') {\n parts.push({ text: textAfter });\n console.log('添加最后文本元素:', { text: textAfter });\n }\n }\n\n // 如果没有找到template标签,返回原始文本\n if (parts.length === 0) {\n if (templateString.trim() === '') {\n parts.push({ text: '' });\n } else {\n parts.push({ text: templateString });\n }\n console.log('没有找到template标签,返回原始文本');\n }\n\n // 确保返回的是段落结构\n if (parts.length > 0 && parts[0].type !== 'paragraph') {\n return [\n {\n type: 'paragraph',\n children: parts\n }\n ];\n }\n\n console.log('解析完成,结果:', parts);\n return parts;\n};\n\n/**\n * 将Slate格式的数据转换回包含template标签的字符串\n * @param slateData Slate格式的数据\n * @returns 包含template标签的字符串\n */\nconst convertToTemplateString = (slateData: any[]): string => {\n if (!slateData || slateData.length === 0) return '';\n\n const paragraph = slateData[0];\n // 如果没有children属性,说明是直接的文本节点\n if (!paragraph.children) {\n return paragraph.text || '';\n }\n\n let result = '';\n let lastText = ''; // 用于检测重复文本\n\n // 添加调试信息\n console.log('转换Slate数据:', JSON.stringify(slateData, null, 2));\n\n paragraph.children.forEach((child: any) => {\n console.log('处理子元素:', child);\n\n if (child.type === 'template') {\n // 对于template元素,只有当有实际值时才添加template标签\n const value = child.value || '';\n const placeholder = child.placeholder || '';\n\n // 只有当用户输入了内容时才使用template标签,否则直接显示placeholder文本\n if (value.trim() !== '') {\n console.log(`找到template元素,用户输入值: ${value}`);\n result += `<template>${value}</template>`;\n lastText = value; // 更新最后处理的文本\n } else {\n console.log(`找到template元素,使用placeholder: ${placeholder}`);\n result += placeholder;\n lastText = placeholder; // 更新最后处理的文本\n }\n } else if (child.text !== undefined) {\n // 对于普通文本,只有当文本不为空且不重复时才添加\n const text = child.text || '';\n if (text.trim() !== '') {\n // 检查是否与上一个文本重复\n if (text !== lastText) {\n console.log(`找到文本元素: ${text}`);\n result += text;\n lastText = text; // 更新最后处理的文本\n } else {\n console.log('跳过重复文本元素');\n }\n } else {\n console.log('跳过空文本元素');\n }\n } else {\n console.log(`未知元素类型:`, child);\n // 对于未知类型,尝试添加text属性或空字符串\n const text = child.text || '';\n if (text.trim() !== '' && text !== lastText) {\n result += text;\n lastText = text;\n }\n }\n });\n\n console.log('转换结果:', result);\n return result;\n};\n\n/**\n * 将Slate格式的数据转换为纯文本字符串\n * @param slateData Slate格式的数据\n * @returns 纯文本字符串\n */\nconst convertToPureString = (slateData: any[]): string => {\n if (!slateData || slateData.length === 0) return '';\n\n const paragraph = slateData[0];\n // 如果没有children属性,说明是直接的文本节点\n if (!paragraph.children) {\n return paragraph.text || '';\n }\n\n let result = '';\n\n paragraph.children.forEach((child: any) => {\n if (child.text !== undefined) {\n result += child.text;\n } else if (child.type === 'template') {\n // 对于template元素,输出其内容(value或placeholder),但不包含template标签\n result += (child.value || child.placeholder || '');\n }\n });\n\n return result;\n};\n\n/**\n * 将Slate格式的数据转换为Markdown格式\n * @param slateData Slate格式的数据\n * @returns Markdown字符串\n */\nconst convertToMarkdown = (slateData: any[]): string => {\n if (!slateData || slateData.length === 0) return '';\n\n const paragraph = slateData[0];\n // 如果没有children属性,说明是直接的文本节点\n if (!paragraph.children) {\n return paragraph.text || '';\n }\n\n let result = '';\n\n paragraph.children.forEach((child: any) => {\n if (child.text !== undefined) {\n result += child.text;\n } else if (child.type === 'template') {\n result += `\\`\\`\\`template\\`\\`\\`\\n${child.value || child.placeholder}\\`\\`\\`\\n\\`\\`\\`\\n`;\n }\n });\n\n return result;\n};\n\n/**\n * 将Slate格式的数据转换为HTML格式\n * @param slateData Slate格式的数据\n * @returns HTML字符串\n */\nconst convertToHtml = (slateData: any[]): string => {\n if (!slateData || slateData.length === 0) return '';\n\n const paragraph = slateData[0];\n // 如果没有children属性,说明是直接的文本节点\n if (!paragraph.children) {\n return paragraph.text || '';\n }\n\n let result = '';\n\n paragraph.children.forEach((child: any) => {\n if (child.text !== undefined) {\n result += child.text;\n } else if (child.type === 'template') {\n result += `<template>${child.value || child.placeholder}</template>`;\n }\n });\n\n return result;\n};\n\n/**\n * 模版设计器组件\n * 基于UnifiedRichText核心组件实现可编辑的模版字段\n * 支持解析包含<template>标签的字符串数据\n */\nconst PromptTempDesigner: React.FC<PromptTempDesignerProps> = ({\n data,\n onChange,\n styles = {},\n onGetData\n}) => {\n // 默认样式配置 - 基于统一的Styles接口\n const defaultStyles: Styles = {\n theme: {\n colors: {\n primary: '#055AFF',\n secondary: '#84ADFF',\n background: '#E5EEFF',\n text: '#055AFF',\n border: '#84ADFF',\n success: '#008000',\n warning: '#FFA500',\n error: '#FF0000',\n info: '#0000FF',\n disabled: '#808080',\n disabledBackground: '#F5F5F5',\n disabledText: '#808080',\n shadow: '0 1px 3px rgba(0, 0, 0, 0.12)',\n appBackground: 'transparent',\n listBackground: '#f9f9f9',\n dashboardBackground: '#ffffff',\n textSecondary: '#6b7280',\n },\n space: {\n sidebar: '260px',\n size: '12px',\n radius: '6px',\n padding: '16px',\n margin: '20px',\n shadow: '0 2px 8px rgba(0,0,0,0.1)',\n lineHeight: '1.6',\n },\n icons: {},\n fonts: {\n body: {\n size: '14px',\n weight: 'normal',\n family: 'PingFang SC, Microsoft YaHei, Arial, sans-serif',\n },\n heading: {\n size: '16px',\n weight: '600',\n family: 'PingFang SC, Microsoft YaHei, Arial, sans-serif',\n },\n },\n others: {\n baseFontWeight: 'normal',\n }\n },\n mode: 'light'\n };\n\n // 默认模板字段样式配置\n const defaultTemplateFieldStyles = {\n backgroundColor: '#E5EEFF',\n borderColor: '#84ADFF',\n borderRadius: '6px',\n padding: '8px 12px',\n margin: '2px',\n fontSize: '14px',\n fontWeight: '500',\n minWidth: '30px',\n textColor: '#84ADFF',\n };\n\n // 合并用户传入的样式和默认样式\n const mergedStyles = {\n ...defaultStyles,\n ...styles,\n theme: {\n ...defaultStyles.theme,\n ...styles?.theme,\n colors: {\n ...defaultStyles.theme?.colors,\n ...styles?.theme?.colors,\n },\n space: {\n ...defaultStyles.theme?.space,\n ...styles?.theme?.space,\n },\n fonts: {\n ...defaultStyles.theme?.fonts,\n ...styles?.theme?.fonts,\n },\n },\n templateField: {\n ...defaultTemplateFieldStyles,\n ...styles?.templateField,\n }\n };\n\n // 维护Slate数据的内部状态\n const [slateData, setSlateData] = useState(() => {\n const parsedParts = parseTemplateString(data);\n return parsedParts; // parseTemplateString 现在总是返回段落结构\n });\n\n // 当 data 变更时,始终同步到内部 Slate 数据(受控更新)\n useEffect(() => {\n console.log('数据变化,同步到内部状态:', data);\n const newData = parseTemplateString(data);\n console.log('新的Slate数据:', newData);\n setSlateData(newData);\n }, [data]);\n\n // 添加调试信息,监控 slateData 的变化\n useEffect(() => {\n console.log('slateData 状态变化:', slateData);\n }, [slateData]);\n\n // 处理编辑器内容变化\n const handleEditorChange = useCallback((content: any, type: DataType) => {\n if (type === DataType.SLATE && content) {\n console.log('编辑器内容变化:', content);\n // 更新内部状态\n setSlateData(content);\n\n // 转换回template标签格式并通知父组件\n const templateString = convertToTemplateString(content);\n console.log('转换后的模板字符串:', templateString);\n onChange?.(templateString);\n }\n }, [onChange]);\n\n // 实现getData函数\n const getData = useCallback((format: 'pure_string' | 'string' | 'markdown' | 'html'): string => {\n if (!slateData || slateData.length === 0) return '';\n\n switch (format) {\n case 'pure_string':\n // 只返回纯文本内容,不包含template标签\n return convertToPureString(slateData);\n case 'string':\n // 返回包含template标签的字符串\n return convertToTemplateString(slateData);\n case 'markdown':\n // 返回markdown格式\n return convertToMarkdown(slateData);\n case 'html':\n // 返回HTML格式\n return convertToHtml(slateData);\n default:\n return convertToTemplateString(slateData);\n }\n }, [slateData]);\n\n // 将getData函数传递给父组件\n useEffect(() => {\n onGetData?.(getData);\n }, [getData, onGetData]);\n\n return (\n <Container>\n <Instructions>\n 点击蓝色字段进行编辑,编辑完成后内容会自动更新。\n </Instructions>\n\n <UnifiedRichText\n dataSource={{\n type: DataType.SLATE,\n content: slateData // 使用内部状态而不是初始数据\n }}\n isEditing={true}\n placeholder=\"开始编辑模版...\"\n onChange={handleEditorChange}\n styles={mergedStyles}\n enableTemplateInput={true}\n />\n </Container>\n );\n};\n\nexport default PromptTempDesigner;\n","import React, { useState, useCallback } from 'react';\nimport PromptTempDesigner from './adopters/PromptTempDesigner';\n\n/**\n * 模版设计器测试页面\n * 用于测试基于UnifiedRichText的PromptTempDesigner组件\n */\nconst TestTemplateDesigner: React.FC = () => {\n const [templateContent, setTemplateContent] = useState('');\n const [getDataFunction, setGetDataFunction] = useState<((format: 'pure_string' | 'string' | 'markdown' | 'html') => string) | null>(null);\n const [data,setData] = useState<string>('')\n const [version, setVersion] = useState<number>(0)\n // 处理模版内容变化\n const handleTemplateChange = useCallback((template: string) => {\n setTemplateContent(template);\n console.log('模版内容变化:', template);\n }, []);\n\n // 处理getData回调\n const handleGetData = useCallback((getData: (format: 'pure_string' | 'string' | 'markdown' | 'html') => string) => {\n setGetDataFunction(() => getData);\n console.log('getData函数已设置');\n }, []);\n\n\n // 测试getData功能\n const testGetData = useCallback((format: 'pure_string' | 'string' | 'markdown' | 'html') => {\n if (!getDataFunction) {\n alert('getData函数尚未准备好,请稍后再试');\n return;\n }\n\n const result = getDataFunction(format);\n console.log(`getData(${format}):`, result);\n\n // 显示结果\n let message = '';\n switch (format) {\n case 'pure_string':\n message = '纯文本内容(不包含template标签)';\n break;\n case 'string':\n message = '包含template标签的字符串';\n break;\n case 'markdown':\n message = 'Markdown格式';\n break;\n case 'html':\n message = 'HTML格式';\n break;\n }\n\n alert(`${message}:\\n\\n${result}`);\n }, [getDataFunction]);\n\n return (\n <div style={{\n padding: '2rem',\n fontFamily: 'system-ui, -apple-system, sans-serif',\n maxWidth: '1000px',\n margin: '0 auto'\n }}>\n <h1 style={{\n textAlign: 'center',\n color: '#1e293b',\n marginBottom: '2rem',\n fontSize: '2rem',\n fontWeight: 'bold'\n }}>\n 模版设计器测试页面\n </h1>\n\n <div style={{\n background: '#f8fafc',\n border: '1px solid #e2e8f0',\n borderRadius: '12px',\n padding: '2rem',\n marginBottom: '2rem'\n }}>\n <h2 style={{\n color: '#374151',\n marginBottom: '1rem',\n fontSize: '1.5rem'\n }}>\n 功能说明\n </h2>\n <p style={{\n color: '#6b7280',\n lineHeight: '1.6',\n marginBottom: '1rem'\n }}>\n 这是一个基于 UnifiedRichText 核心组件的模版设计器,支持:\n </p>\n <ul style={{\n color: '#6b7280',\n lineHeight: '1.6',\n paddingLeft: '1.5rem'\n }}>\n <li>在富文本编辑器中直接编辑模版</li>\n <li>点击蓝色字段进入编辑模式</li>\n <li>支持回车确认、ESC取消、失焦保存</li>\n <li>实时预览生成的模版内容</li>\n <li>支持多种数据格式输出</li>\n </ul>\n </div>\n\n {/* 模版编辑区域 */}\n <div style={{\n background: 'white',\n border: '1px solid #e2e8f0',\n borderRadius: '12px',\n padding: '2rem',\n marginBottom: '2rem',\n boxShadow: '0 1px 3px rgba(0, 0, 0, 0.1)'\n }}>\n <h3 style={{\n color: '#374151',\n marginBottom: '1rem',\n fontSize: '1.3rem'\n }}>\n ✏️ 模版编辑器\n </h3>\n\n <PromptTempDesigner\n key={version}\n data={data}\n onChange={handleTemplateChange}\n onGetData={handleGetData}\n styles={{\n theme: {\n colors: {\n primary: '#0969da',\n secondary: '#6b7280',\n success: '#10b981',\n warning: '#f59e0b',\n error: '#ef4444',\n info: '#3b82f6',\n background: '#ffffff',\n text: '#1f2937',\n border: '#e5e7eb',\n disabled: '#9ca3af',\n disabledBackground: '#f3f4f6',\n disabledText: '#6b7280',\n shadow: '0 1px 3px rgba(0, 0, 0, 0.1)',\n appBackground: 'transparent',\n listBackground: '#f9fafb',\n dashboardBackground: '#ffffff',\n textSecondary: '#6b7280',\n },\n space: {\n sidebar: '260px',\n size: '12px',\n radius: '8px',\n padding: '1rem',\n margin: '1rem',\n shadow: '0 2px 8px rgba(0,0,0,0.1)',\n lineHeight: '1.5',\n },\n icons: {},\n fonts: {\n body: {\n size: '14px',\n weight: 'normal',\n family: 'PingFang SC, Microsoft YaHei, Arial, sans-serif',\n },\n heading: {\n size: '16px',\n weight: '600',\n family: 'PingFang SC, Microsoft YaHei, Arial, sans-serif',\n },\n },\n others: {\n baseFontWeight: 'normal',\n }\n },\n templateField: {\n backgroundColor: '#E5EEFF', // 输入框背景色\n borderColor: '#84ADFF', // 输入框边框颜色\n borderRadius: '6px',\n padding: '8px 12px', // 调整为1px间距,让蓝色块之间有精确的1px间距\n margin: '2px',\n fontSize: '14px',\n fontWeight: '500',\n minWidth: '80px',\n textColor: '#84ADFF' // 未激活前文字颜色\n }\n }}\n />\n </div>\n\n {/* 数据格式测试区域 */}\n <div style={{\n background: '#f0f9ff',\n border: '1px solid #0ea5e9',\n borderRadius: '12px',\n padding: '2rem',\n marginBottom: '2rem'\n }}>\n <h3 style={{\n color: '#0c4a6e',\n marginBottom: '1rem',\n fontSize: '1.3rem'\n }}>\n 📊 数据格式测试\n </h3>\n <p style={{\n color: '#0c4a6e',\n fontSize: '0.9rem',\n marginBottom: '1rem',\n lineHeight: '1.5'\n }}>\n 点击下面的按钮测试不同的数据格式输出:\n </p>\n <div style={{\n display: 'flex',\n gap: '12px',\n flexWrap: 'wrap'\n }}>\n <button\n onClick={() => {\n const tpl = '<template>输入表格类型</template>表格主要展示了<template>输入场景名称</template>场景的数据,包含<template>主要字段(可写多个,用顿号分隔)</template>等主要字段,支持用户查询<template>大概介绍需要查询的方向</template>问题,如果设计多表关联查询,最好说明此表格通过<template>字段名称</template>字段可以关联另一个<template>表格名称</template>表格。';\n setData(tpl);\n setVersion(v => v + 1);\n }}\n style={{\n background: '#10b981',\n color: 'white',\n border: 'none',\n padding: '10px 20px',\n borderRadius: '8px',\n fontSize: '14px',\n cursor: 'pointer',\n fontWeight: '500',\n transition: 'all 0.2s'\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.transform = 'translateY(-2px)';\n e.currentTarget.style.boxShadow = '0 4px 12px rgba(16, 185, 129, 0.3)';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.transform = 'translateY(0)';\n e.currentTarget.style.boxShadow = 'none';\n }}\n >\n 设置模版数据\n </button>\n <button\n onClick={() => testGetData('pure_string')}\n style={{\n background: '#10b981',\n color: 'white',\n border: 'none',\n padding: '10px 20px',\n borderRadius: '8px',\n fontSize: '14px',\n cursor: 'pointer',\n fontWeight: '500',\n transition: 'all 0.2s'\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.transform = 'translateY(-2px)';\n e.currentTarget.style.boxShadow = '0 4px 12px rgba(16, 185, 129, 0.3)';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.transform = 'translateY(0)';\n e.currentTarget.style.boxShadow = 'none';\n }}\n >\n 纯文本格式\n </button>\n <button\n onClick={() => testGetData('string')}\n style={{\n background: '#3b82f6',\n color: 'white',\n border: 'none',\n padding: '10px 20px',\n borderRadius: '8px',\n fontSize: '14px',\n cursor: 'pointer',\n fontWeight: '500',\n transition: 'all 0.2s'\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.transform = 'translateY(-2px)';\n e.currentTarget.style.boxShadow = '0 4px 12px rgba(59, 130, 246, 0.3)';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.transform = 'translateY(0)';\n e.currentTarget.style.boxShadow = 'none';\n }}\n >\n 模板字符串格式\n </button>\n <button\n onClick={() => testGetData('markdown')}\n style={{\n background: '#8b5cf6',\n color: 'white',\n border: 'none',\n padding: '10px 20px',\n borderRadius: '8px',\n fontSize: '14px',\n cursor: 'pointer',\n fontWeight: '500',\n transition: 'all 0.2s'\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.transform = 'translateY(-2px)';\n e.currentTarget.style.boxShadow = '0 4px 12px rgba(139, 92, 246, 0.3)';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.transform = 'translateY(0)';\n e.currentTarget.style.boxShadow = 'none';\n }}\n >\n Markdown格式\n </button>\n <button\n onClick={() => testGetData('html')}\n style={{\n background: '#f59e0b',\n color: 'white',\n border: 'none',\n padding: '10px 20px',\n borderRadius: '8px',\n fontSize: '14px',\n cursor: 'pointer',\n fontWeight: '500',\n transition: 'all 0.2s'\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.transform = 'translateY(-2px)';\n e.currentTarget.style.boxShadow = '0 4px 12px rgba(245, 158, 11, 0.3)';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.transform = 'translateY(0)';\n e.currentTarget.style.boxShadow = 'none';\n }}\n >\n HTML格式\n </button>\n </div>\n </div>\n\n {/* 调试信息区域 */}\n <div style={{\n background: '#fef3c7',\n border: '1px solid #f59e0b',\n borderRadius: '12px',\n padding: '2rem'\n }}>\n <h3 style={{\n color: '#92400e',\n marginBottom: '1rem',\n fontSize: '1.3rem'\n }}>\n 🔍 调试信息\n </h3>\n <div style={{\n color: '#92400e',\n fontSize: '0.9rem',\n lineHeight: '1.5'\n }}>\n <p><strong>当前模版内容:</strong></p>\n <pre style={{\n background: 'white',\n border: '1px solid #f59e0b',\n borderRadius: '8px',\n padding: '1rem',\n margin: '0.5rem 0',\n fontSize: '0.8rem',\n overflow: 'auto',\n maxHeight: '120px',\n lineHeight: '1.4'\n }}>\n {templateContent || '暂无内容'}\n </pre>\n </div>\n </div>\n </div>\n );\n};\n\nexport default TestTemplateDesigner;\n","import React from 'react';\nimport ReactDOM from 'react-dom/client';\n\nimport TestTemplateLeaf from './TestTemplateLeaf';\nimport './style.css'\nimport TestTemplateDesigner from './TestTemplateDesigner';\n\nReactDOM.createRoot(document.getElementById('root')!).render(\n <TestTemplateDesigner />\n);\n"],"names":["l","n","q","r","t","v","w","x","y","z","A","B","C","D","e","F","G","H","I","J","K","L","M","k","g","f","m","O","escape","a","Q","R","S","T","b","U","V","W","X","reactModule","require$$0","jsxRuntimeModule","schedulerModule","require$$1","ae","be","ce","ee","fe","ge","he","ie","je","ke","le","ne","oe","qe","re","se","te","ue","ve","we","xe","ye","ze","Ae","Ce","De","Ee","Fe","Ge","He","Ie","Je","Ke","Me","Ne","Oe","Pe","Qe","Re","Se","Te","Ue","Ve","We","Xe","Ze","$e","d","h","c","Y","Z","reactDomModule","__assign","from","length","position","end","node","parent","next","peek","previous","character","characters","size","j","_","o","s","i","u","d.RULESET","d.prefixer","d.stringify","p","d.compile","d.serialize","d.middleware","d.rulesheet","E","N","isPlainObject","_a","freeze","path","self","copy","current","point","list","last","_typeof","_toPrimitive","_toPropertyKey","_defineProperty","before","after","prev","Text","nodes","_objectWithoutPropertiesLoose","_objectWithoutProperties","range","focus","start","isElement","Element","_excluded$3","leaf","isEditor","at","fragment","isNormalizing","_excluded$2","getCharacterDistance","char","getWordDistance","isWordCharacter","codepointsIteratorRTL","CodepointType","match","levels","above","parentNode","marks","ownKeys$6","_objectSpread$6","deleteFragment","ownKeys$5","_objectSpread$5","elementReadOnly","ownKeys$4","_objectSpread$4","getVoid","ownKeys$3","_objectSpread$3","insertText","first","_excluded$1","_excluded2$1","isEnd","block","normalize","getDirtyPaths","editor","pathRef","pathRefs","pointRef","pointRefs","blockText","unit","reverse","rangeRef","rangeRefs","ownKeys$2","_objectSpread$2","string","unhangRange","deleteText","insertFragment","hasBlocks","collapse","move","ownKeys$1","_objectSpread$1","setPoint","insertNodes","select","matchPath","_loop","liftNodes","_excluded","_excluded2","mergeNodes","removeNodes","setNodes","splitNodes","unsetNodes","unwrapNodes","ownKeys","_objectSpread","wrapNodes","next$1","node$1","isObject","global","Symbol","tag","require$$2","other","debounce","time","throttle","ResizeObserverBoxOptions","ResizeObserverSize","DOMRectReadOnly","ResizeObserverEntry","callbacks","process","ResizeObserver","Scheduler","ResizeObservation","ResizeObserverDetail","ResizeObserverController","check","createContext","useContext","window","document","Element$1","getLastChildren","text","debug","updatePlaceholderVisibility","scheduleAction","targetRange","line","useRef","useEffect","useLayoutEffect","useState","memo","forwardRef","renderLeaf","props","useCallback","renderElement","ref","isHotkey","Component","useReducer","useMemo","_root","anchor","scrollIntoView","positions","withReact","apply","deleteBackward","addMark","removeMark","token","msg","styled","jsxs","jsx","_e","Container","DataType","paragraph","ReactDOM"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65]}