@fewangsit/wangsvue-fats 1.0.1-rc.9 → 2.0.0-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (2436) hide show
  1. package/animation/index.d.ts +13 -1
  2. package/animation/index.es.js +65 -0
  3. package/animation/index.es.js.map +1 -0
  4. package/approverinfo/index.d.ts +4 -0
  5. package/approverinfo/index.es.js +64 -56
  6. package/approverinfo/index.es.js.map +1 -0
  7. package/assetinfo/index.d.ts +0 -1
  8. package/assetinfo/index.es.js +155 -2
  9. package/assetinfo/index.es.js.map +1 -0
  10. package/assets/lottiejs/loading-page-dark.es.js +5 -0
  11. package/assets/lottiejs/loading-page-dark.es.js.map +1 -0
  12. package/assets/lottiejs/loading-page.es.js +1 -0
  13. package/assets/lottiejs/loading-page.es.js.map +1 -0
  14. package/assets/lottiejs/loading-plane.es.js +1 -0
  15. package/assets/lottiejs/loading-plane.es.js.map +1 -0
  16. package/assets/lottiejs/loading-table-dark.es.js +5 -0
  17. package/assets/lottiejs/loading-table-dark.es.js.map +1 -0
  18. package/assets/lottiejs/loading-table.es.js +1 -0
  19. package/assets/lottiejs/loading-table.es.js.map +1 -0
  20. package/assets/lottiejs/no-data-dark.es.js +5 -0
  21. package/assets/lottiejs/no-data-dark.es.js.map +1 -0
  22. package/assets/lottiejs/no-data.es.js +1 -0
  23. package/assets/lottiejs/no-data.es.js.map +1 -0
  24. package/assets/lottiejs/scan-qr.es.js +5 -0
  25. package/assets/lottiejs/scan-qr.es.js.map +1 -0
  26. package/assets/scanner.worker-CBMLzFgM.js.map +1 -0
  27. package/backgroundimagecropper/index.es.js +53 -0
  28. package/backgroundimagecropper/index.es.js.map +1 -0
  29. package/badge/index.d.ts +29 -6
  30. package/badge/index.es.js +56 -53
  31. package/badge/index.es.js.map +1 -0
  32. package/badgegroup/index.d.ts +10 -2
  33. package/badgegroup/index.es.js +16 -13
  34. package/badgegroup/index.es.js.map +1 -0
  35. package/basecalendar/index.es.js +893 -0
  36. package/basecalendar/index.es.js.map +1 -0
  37. package/basecalendartimezone/index.es.js +1038 -0
  38. package/basecalendartimezone/index.es.js.map +1 -0
  39. package/basecomponent/index.d.ts +0 -1
  40. package/basetree/index.d.ts +6 -2
  41. package/basetree/index.es.js +18 -17
  42. package/basetree/index.es.js.map +1 -0
  43. package/breadcrumb/index.d.ts +19 -3
  44. package/breadcrumb/index.es.js +32 -20
  45. package/breadcrumb/index.es.js.map +1 -0
  46. package/breadcrumb/store/index.d.ts +8 -0
  47. package/button/index.d.ts +3 -4
  48. package/button/index.es.js +119 -2
  49. package/button/index.es.js.map +1 -0
  50. package/buttonaddbyscan/index.es.js +28 -27
  51. package/buttonaddbyscan/index.es.js.map +1 -0
  52. package/buttonbulkaction/index.d.ts +4 -5
  53. package/buttonbulkaction/index.es.js +179 -2
  54. package/buttonbulkaction/index.es.js.map +1 -0
  55. package/buttoncopy/index.d.ts +6 -6
  56. package/buttoncopy/index.es.js +20 -13
  57. package/buttoncopy/index.es.js.map +1 -0
  58. package/buttondownload/index.d.ts +7 -4
  59. package/buttondownload/index.es.js +19 -18
  60. package/buttondownload/index.es.js.map +1 -0
  61. package/buttonfilter/index.d.ts +14 -3
  62. package/buttonfilter/index.es.js +9 -8
  63. package/buttonfilter/index.es.js.map +1 -0
  64. package/buttonradio/index.d.ts +1 -1
  65. package/buttonradio/index.es.js +7 -6
  66. package/buttonradio/index.es.js.map +1 -0
  67. package/buttonscan/index.d.ts +17 -4
  68. package/buttonscan/index.es.js +370 -2
  69. package/buttonscan/index.es.js.map +1 -0
  70. package/buttonsearch/index.d.ts +6 -5
  71. package/buttonsearch/index.es.js +31 -30
  72. package/buttonsearch/index.es.js.map +1 -0
  73. package/buttonsearchbyscan/index.d.ts +13 -8
  74. package/buttonsearchbyscan/index.es.js +8 -7
  75. package/buttonsearchbyscan/index.es.js.map +1 -0
  76. package/buttonselecttree/index.d.ts +12 -10
  77. package/buttonselecttree/index.es.js +53 -52
  78. package/buttonselecttree/index.es.js.map +1 -0
  79. package/buttonselectuser/index.es.js +26 -25
  80. package/buttonselectuser/index.es.js.map +1 -0
  81. package/buttonsync/index.es.js +13 -12
  82. package/buttonsync/index.es.js.map +1 -0
  83. package/buttontoggle/index.d.ts +15 -4
  84. package/buttontoggle/index.es.js +7 -6
  85. package/buttontoggle/index.es.js.map +1 -0
  86. package/buttonviewlog/index.es.js +5 -4
  87. package/buttonviewlog/index.es.js.map +1 -0
  88. package/calendar/index.d.ts +1 -1
  89. package/calendar/index.es.js +69 -43
  90. package/calendar/index.es.js.map +1 -0
  91. package/card/index.d.ts +1 -2
  92. package/card/index.es.js +5 -4
  93. package/card/index.es.js.map +1 -0
  94. package/carousel/index.d.ts +2 -2
  95. package/carousel/index.es.js +28 -27
  96. package/carousel/index.es.js.map +1 -0
  97. package/checkbox/index.d.ts +1 -1
  98. package/checkbox/index.es.js +15 -15
  99. package/checkbox/index.es.js.map +1 -0
  100. package/codesnippet/index.es.js +120 -0
  101. package/codesnippet/index.es.js.map +1 -0
  102. package/codesnippetadapter/index.es.js +27 -0
  103. package/codesnippetadapter/index.es.js.map +1 -0
  104. package/columnlist/index.es.js +240 -0
  105. package/columnlist/index.es.js.map +1 -0
  106. package/components.d.ts +1 -0
  107. package/config/defaultProps.es.js +27 -23
  108. package/config/defaultProps.es.js.map +1 -0
  109. package/config/index.es.js +2 -1
  110. package/config/index.es.js.map +1 -0
  111. package/config/locale.es.js +52 -4
  112. package/config/locale.es.js.map +1 -0
  113. package/customcolumn/index.d.ts +15 -1
  114. package/customcolumn/index.es.js +19 -18
  115. package/customcolumn/index.es.js.map +1 -0
  116. package/datatable/index.d.ts +346 -182
  117. package/datatable/index.es.js +732 -684
  118. package/datatable/index.es.js.map +1 -0
  119. package/datepicker/index.d.ts +13 -2
  120. package/datepicker/index.es.js +60 -45
  121. package/datepicker/index.es.js.map +1 -0
  122. package/daypicker/index.d.ts +13 -2
  123. package/daypicker/index.es.js +71 -56
  124. package/daypicker/index.es.js.map +1 -0
  125. package/dial-codes-DGcGIlbX.js +5 -0
  126. package/dial-codes-DGcGIlbX.js.map +1 -0
  127. package/dial-codes-DnboNJmQ.js +2 -0
  128. package/dial-codes-DnboNJmQ.js.map +1 -0
  129. package/dial-codes.es.js +5 -0
  130. package/dial-codes.es.js.map +1 -0
  131. package/dialog/index.d.ts +1 -2
  132. package/dialog/index.es.js +19 -12
  133. package/dialog/index.es.js.map +1 -0
  134. package/dialogassetnamedetail/index.d.ts +5 -4
  135. package/dialogassetnamedetail/index.es.js +53 -52
  136. package/dialogassetnamedetail/index.es.js.map +1 -0
  137. package/dialogbasictransferlog/index.es.js +226 -0
  138. package/dialogbasictransferlog/index.es.js.map +1 -0
  139. package/dialogconfirm/index.d.ts +1 -1
  140. package/dialogconfirm/index.es.js +28 -27
  141. package/dialogconfirm/index.es.js.map +1 -0
  142. package/dialogdamagelog/index.es.js +110 -102
  143. package/dialogdamagelog/index.es.js.map +1 -0
  144. package/dialogform/index.d.ts +10 -31
  145. package/dialogform/index.es.js +73 -75
  146. package/dialogform/index.es.js.map +1 -0
  147. package/dialogfulltransferlog/index.es.js +238 -0
  148. package/dialogfulltransferlog/index.es.js.map +1 -0
  149. package/dialoglinkedasset/index.d.ts +8 -4
  150. package/dialoglinkedasset/index.es.js +46 -45
  151. package/dialoglinkedasset/index.es.js.map +1 -0
  152. package/dialogprintqr/index.es.js +326 -2
  153. package/dialogprintqr/index.es.js.map +1 -0
  154. package/dialogreportdamage/index.es.js +69 -65
  155. package/dialogreportdamage/index.es.js.map +1 -0
  156. package/dialogreportmissing/index.es.js +30 -26
  157. package/dialogreportmissing/index.es.js.map +1 -0
  158. package/dialogreporttag/index.es.js +21 -19
  159. package/dialogreporttag/index.es.js.map +1 -0
  160. package/dialogselecttree/index.d.ts +15 -10
  161. package/dialogselecttree/index.es.js +23 -22
  162. package/dialogselecttree/index.es.js.map +1 -0
  163. package/dialogselectuser/index.d.ts +3 -4
  164. package/dialogselectuser/index.es.js +37 -37
  165. package/dialogselectuser/index.es.js.map +1 -0
  166. package/dialogselectuserfilter/index.es.js +41 -0
  167. package/dialogselectuserfilter/index.es.js.map +1 -0
  168. package/dialogtransferlog/index.es.js +12 -11
  169. package/dialogtransferlog/index.es.js.map +1 -0
  170. package/directives/focus.es.js +3 -2
  171. package/directives/focus.es.js.map +1 -0
  172. package/directives/index.es.js +3 -0
  173. package/directives/index.es.js.map +1 -0
  174. package/directives/tooltip.es.js +2 -4
  175. package/directives/tooltip.es.js.map +1 -0
  176. package/disposalreport/index.d.ts +55 -1
  177. package/disposalreport/index.es.js +20 -16
  178. package/disposalreport/index.es.js.map +1 -0
  179. package/disposalreportbulkaction/index.es.js +83 -0
  180. package/disposalreportbulkaction/index.es.js.map +1 -0
  181. package/disposalreportdialogselectasset/index.es.js +239 -0
  182. package/disposalreportdialogselectasset/index.es.js.map +1 -0
  183. package/disposalreporttable/index.es.js +447 -0
  184. package/disposalreporttable/index.es.js.map +1 -0
  185. package/disposalreporttablefilter/index.es.js +47 -0
  186. package/disposalreporttablefilter/index.es.js.map +1 -0
  187. package/dropdown/index.d.ts +2 -1
  188. package/dropdown/index.es.js +66 -55
  189. package/dropdown/index.es.js.map +1 -0
  190. package/editor/index.d.ts +7 -0
  191. package/editor/index.es.js +968 -0
  192. package/editor/index.es.js.map +1 -0
  193. package/editorbutton/index.es.js +29 -0
  194. package/editorbutton/index.es.js.map +1 -0
  195. package/event-bus/index.d.ts +2 -2
  196. package/event-bus/index.es.js +4 -3
  197. package/event-bus/index.es.js.map +1 -0
  198. package/event-bus/mitt.es.js +1 -0
  199. package/event-bus/mitt.es.js.map +1 -0
  200. package/fieldwrapper/index.d.ts +20 -7
  201. package/fieldwrapper/index.es.js +41 -0
  202. package/fieldwrapper/index.es.js.map +1 -0
  203. package/fileupload/index.d.ts +7 -7
  204. package/fileupload/index.es.js +38 -37
  205. package/fileupload/index.es.js.map +1 -0
  206. package/filtercontainer/index.d.ts +31 -12
  207. package/filtercontainer/index.es.js +114 -112
  208. package/filtercontainer/index.es.js.map +1 -0
  209. package/form/index.d.ts +1 -1
  210. package/form/index.es.js +24 -23
  211. package/form/index.es.js.map +1 -0
  212. package/hardwaresync/index.es.js +287 -0
  213. package/hardwaresync/index.es.js.map +1 -0
  214. package/headercell/index.es.js +41 -0
  215. package/headercell/index.es.js.map +1 -0
  216. package/icon/index.d.ts +7 -1
  217. package/icon/index.es.js +32 -31
  218. package/icon/index.es.js.map +1 -0
  219. package/image/index.d.ts +26 -8
  220. package/image/index.es.js +138 -98
  221. package/image/index.es.js.map +1 -0
  222. package/imagecompressor/index.d.ts +1 -1
  223. package/imagecompressor/index.es.js +176 -170
  224. package/imagecompressor/index.es.js.map +1 -0
  225. package/imageinputinfo/index.es.js +47 -0
  226. package/imageinputinfo/index.es.js.map +1 -0
  227. package/inlinemessage/index.es.js +18 -17
  228. package/inlinemessage/index.es.js.map +1 -0
  229. package/inputbadge/index.d.ts +35 -2
  230. package/inputbadge/index.es.js +107 -92
  231. package/inputbadge/index.es.js.map +1 -0
  232. package/inputcurrency/helpers/index.d.ts +1 -1
  233. package/inputcurrency/index.d.ts +3 -33
  234. package/inputcurrency/index.es.js +161 -2
  235. package/inputcurrency/index.es.js.map +1 -0
  236. package/inputemail/index.d.ts +10 -6
  237. package/inputemail/index.es.js +6 -5
  238. package/inputemail/index.es.js.map +1 -0
  239. package/inputgroup/index.es.js +32 -0
  240. package/inputgroup/index.es.js.map +1 -0
  241. package/inputnumber/index.d.ts +5 -9
  242. package/inputnumber/index.es.js +58 -56
  243. package/inputnumber/index.es.js.map +1 -0
  244. package/inputotp/index.es.js +5 -4
  245. package/inputotp/index.es.js.map +1 -0
  246. package/inputpassword/index.d.ts +52 -12
  247. package/inputpassword/index.es.js +23 -22
  248. package/inputpassword/index.es.js.map +1 -0
  249. package/inputphonenumber/index.d.ts +14 -9
  250. package/inputphonenumber/index.es.js +176 -159
  251. package/inputphonenumber/index.es.js.map +1 -0
  252. package/inputrangenumber/index.d.ts +25 -11
  253. package/inputrangenumber/index.es.js +18 -17
  254. package/inputrangenumber/index.es.js.map +1 -0
  255. package/inputsearch/index.d.ts +1 -1
  256. package/inputsearch/index.es.js +29 -28
  257. package/inputsearch/index.es.js.map +1 -0
  258. package/inputtext/index.d.ts +6 -5
  259. package/inputtext/index.es.js +45 -43
  260. package/inputtext/index.es.js.map +1 -0
  261. package/inputurl/index.d.ts +8 -8
  262. package/inputurl/index.es.js +6 -5
  263. package/inputurl/index.es.js.map +1 -0
  264. package/invisiblefield/index.d.ts +7 -0
  265. package/invisiblefield/index.es.js +10 -9
  266. package/invisiblefield/index.es.js.map +1 -0
  267. package/languagedropdownoption/index.es.js +52 -0
  268. package/languagedropdownoption/index.es.js.map +1 -0
  269. package/languageswitcher/index.es.js +23 -21
  270. package/languageswitcher/index.es.js.map +1 -0
  271. package/litedropdown/index.d.ts +3 -3
  272. package/litedropdown/index.es.js +29 -28
  273. package/litedropdown/index.es.js.map +1 -0
  274. package/loading/index.d.ts +3 -3
  275. package/loading/index.es.js +11 -10
  276. package/loading/index.es.js.map +1 -0
  277. package/loading-page-BrQattYE.js +1 -0
  278. package/loading-page-BrQattYE.js.map +1 -0
  279. package/loading-page-CgfbWppy.js +1 -0
  280. package/loading-page-CgfbWppy.js.map +1 -0
  281. package/loading-page-CoC9UhfC.js +5 -0
  282. package/loading-page-CoC9UhfC.js.map +1 -0
  283. package/loading-page-CoXtqoc9.js +5 -0
  284. package/loading-page-CoXtqoc9.js.map +1 -0
  285. package/loading-page-DbLuqCHa.js +1 -0
  286. package/loading-page-DbLuqCHa.js.map +1 -0
  287. package/loading-page-dark-e0SrRAHc.js +5 -0
  288. package/loading-page-dark-e0SrRAHc.js.map +1 -0
  289. package/loading-page-dark-mz8tLHZ3.js +2 -0
  290. package/loading-page-dark-mz8tLHZ3.js.map +1 -0
  291. package/loading-page-f8D03l3G.js +5 -0
  292. package/loading-page-f8D03l3G.js.map +1 -0
  293. package/loading-plane-CgfbWppy.js +1 -0
  294. package/loading-plane-CgfbWppy.js.map +1 -0
  295. package/loading-plane-CoXtqoc9.js +5 -0
  296. package/loading-plane-CoXtqoc9.js.map +1 -0
  297. package/loading-table-Bdr9ZhtP.js +1 -0
  298. package/loading-table-Bdr9ZhtP.js.map +1 -0
  299. package/loading-table-ByUoWqUo.js +5 -0
  300. package/loading-table-ByUoWqUo.js.map +1 -0
  301. package/loading-table-BygEMzFM.js +5 -0
  302. package/loading-table-BygEMzFM.js.map +1 -0
  303. package/loading-table-BzrSQlA0.js +1 -0
  304. package/loading-table-BzrSQlA0.js.map +1 -0
  305. package/loading-table-D9bw9OcI.js +5 -0
  306. package/loading-table-D9bw9OcI.js.map +1 -0
  307. package/loading-table-chOgXi94.js +1 -0
  308. package/loading-table-chOgXi94.js.map +1 -0
  309. package/loading-table-dark-BGh0tAPM.js +5 -0
  310. package/loading-table-dark-BGh0tAPM.js.map +1 -0
  311. package/loading-table-dark-Cky7AB_C.js +2 -0
  312. package/loading-table-dark-Cky7AB_C.js.map +1 -0
  313. package/mcp/components.json +5802 -0
  314. package/mcp/components.summary.txt +24 -0
  315. package/mcp/main.js +16972 -0
  316. package/mcp/package.json +28 -0
  317. package/mentionlist/index.es.js +59 -0
  318. package/mentionlist/index.es.js.map +1 -0
  319. package/mentionsection/index.es.js +53 -0
  320. package/mentionsection/index.es.js.map +1 -0
  321. package/menu/index.d.ts +2 -2
  322. package/menu/index.es.js +39 -32
  323. package/menu/index.es.js.map +1 -0
  324. package/menuitem/index.d.ts +5 -77
  325. package/menuitem/index.es.js +66 -0
  326. package/menuitem/index.es.js.map +1 -0
  327. package/multirow/index.es.js +54 -0
  328. package/multirow/index.es.js.map +1 -0
  329. package/multiselect/index.d.ts +32 -1
  330. package/multiselect/index.es.js +104 -84
  331. package/multiselect/index.es.js.map +1 -0
  332. package/no-data-CTKux8RI.js +5 -0
  333. package/no-data-CTKux8RI.js.map +1 -0
  334. package/no-data-Cgze_Rvp.js +1 -0
  335. package/no-data-Cgze_Rvp.js.map +1 -0
  336. package/no-data-DLHO1L_u.js +5 -0
  337. package/no-data-DLHO1L_u.js.map +1 -0
  338. package/no-data-Dep79CBh.js +1 -0
  339. package/no-data-Dep79CBh.js.map +1 -0
  340. package/no-data-dark-DERIJ8Ml.js +2 -0
  341. package/no-data-dark-DERIJ8Ml.js.map +1 -0
  342. package/no-data-dark-nK4e4RAM.js +5 -0
  343. package/no-data-dark-nK4e4RAM.js.map +1 -0
  344. package/no-data-g0dJCy2p.js +5 -0
  345. package/no-data-g0dJCy2p.js.map +1 -0
  346. package/no-data-y1X5WtcQ.js +1 -0
  347. package/no-data-y1X5WtcQ.js.map +1 -0
  348. package/overlaypanel/index.d.ts +2 -22
  349. package/overlaypanel/index.es.js +40 -25
  350. package/overlaypanel/index.es.js.map +1 -0
  351. package/package.json +14 -6
  352. package/paginator/index.d.ts +12 -6
  353. package/paginator/index.es.js +14 -13
  354. package/paginator/index.es.js.map +1 -0
  355. package/passthrough/index.d.ts +0 -1
  356. package/plugins/VueHtmlToPaper.es.js +41 -0
  357. package/plugins/VueHtmlToPaper.es.js.map +1 -0
  358. package/plugins/WangsVue.d.ts +8 -4
  359. package/plugins/WangsVue.es.js +18 -13
  360. package/plugins/WangsVue.es.js.map +1 -0
  361. package/plugins/basei18n.es.js +61 -53
  362. package/plugins/basei18n.es.js.map +1 -0
  363. package/plugins/formValidation.es.js +6 -5
  364. package/plugins/formValidation.es.js.map +1 -0
  365. package/plugins/i18n.d.ts +1 -2
  366. package/plugins/i18n.es.js +4 -5
  367. package/plugins/i18n.es.js.map +1 -0
  368. package/scan-qr-C6V4afHJ.js +5 -0
  369. package/scan-qr-C6V4afHJ.js.map +1 -0
  370. package/scan-qr-ER7xYaNh.js +2 -0
  371. package/scan-qr-ER7xYaNh.js.map +1 -0
  372. package/stats.html +1 -1
  373. package/steps/index.d.ts +14 -1
  374. package/steps/index.es.js +20 -18
  375. package/steps/index.es.js.map +1 -0
  376. package/style.css +2 -2
  377. package/tabmenu/index.d.ts +1 -1
  378. package/tabmenu/index.es.js +5 -4
  379. package/tabmenu/index.es.js.map +1 -0
  380. package/tagtype/index.d.ts +8 -1
  381. package/tagtype/index.es.js +19 -18
  382. package/tagtype/index.es.js.map +1 -0
  383. package/textarea/index.d.ts +14 -8
  384. package/textarea/index.es.js +28 -22
  385. package/textarea/index.es.js.map +1 -0
  386. package/timeline/index.d.ts +17 -7
  387. package/timeline/index.es.js +70 -55
  388. package/timeline/index.es.js.map +1 -0
  389. package/timelinecontentbytype/index.es.js +112 -0
  390. package/timelinecontentbytype/index.es.js.map +1 -0
  391. package/toast/index.d.ts +56 -69
  392. package/toast/index.es.js +27 -22
  393. package/toast/index.es.js.map +1 -0
  394. package/toggledarkmode/store/index.d.ts +7 -0
  395. package/toggleswitch/index.d.ts +1 -1
  396. package/toggleswitch/index.es.js +6 -5
  397. package/toggleswitch/index.es.js.map +1 -0
  398. package/transactionroles/index.d.ts +7 -3
  399. package/transactionroles/index.es.js +8 -4
  400. package/transactionroles/index.es.js.map +1 -0
  401. package/tree/index.d.ts +8 -9
  402. package/tree/index.es.js +265 -2
  403. package/tree/index.es.js.map +1 -0
  404. package/treenode/index.es.js +507 -0
  405. package/treenode/index.es.js.map +1 -0
  406. package/treesearchinput/index.es.js +57 -0
  407. package/treesearchinput/index.es.js.map +1 -0
  408. package/ts-helpers.d.ts +0 -1
  409. package/username/index.es.js +40 -39
  410. package/username/index.es.js.map +1 -0
  411. package/userwithicon/index.es.js +6 -5
  412. package/userwithicon/index.es.js.map +1 -0
  413. package/utils/addAttachment.util.es.js +1 -0
  414. package/utils/addAttachment.util.es.js.map +1 -0
  415. package/utils/baseToast.util.d.ts +7 -47
  416. package/utils/baseToast.util.es.js +15 -14
  417. package/utils/baseToast.util.es.js.map +1 -0
  418. package/utils/cookie.util.d.ts +18 -0
  419. package/utils/cookie.util.es.js +20 -0
  420. package/utils/cookie.util.es.js.map +1 -0
  421. package/utils/date.util.d.ts +22 -1
  422. package/utils/date.util.es.js +88 -76
  423. package/utils/date.util.es.js.map +1 -0
  424. package/utils/exportToExcel.util.d.ts +3 -3
  425. package/utils/exportToExcel.util.es.js +31 -30
  426. package/utils/exportToExcel.util.es.js.map +1 -0
  427. package/utils/filterOptions.util.es.js +1 -0
  428. package/utils/filterOptions.util.es.js.map +1 -0
  429. package/utils/formatTagCode.util.es.js +1 -0
  430. package/utils/formatTagCode.util.es.js.map +1 -0
  431. package/utils/genPlaceholder.util.es.js +1 -0
  432. package/utils/genPlaceholder.util.es.js.map +1 -0
  433. package/utils/getStatusSeverity.util.es.js +1 -0
  434. package/utils/getStatusSeverity.util.es.js.map +1 -0
  435. package/utils/index.d.ts +8 -2
  436. package/utils/index.es.js +16 -34
  437. package/utils/index.es.js.map +1 -0
  438. package/utils/isBasic.util.es.js +1 -0
  439. package/utils/isBasic.util.es.js.map +1 -0
  440. package/utils/listenSidebarChanges.util.es.js +1 -0
  441. package/utils/listenSidebarChanges.util.es.js.map +1 -0
  442. package/utils/mergePropsWithDefaults.util.es.js +1 -0
  443. package/utils/mergePropsWithDefaults.util.es.js.map +1 -0
  444. package/utils/object.util.d.ts +7 -0
  445. package/utils/object.util.es.js +63 -47
  446. package/utils/object.util.es.js.map +1 -0
  447. package/utils/role.util.d.ts +1 -1
  448. package/utils/role.util.es.js +45 -47
  449. package/utils/role.util.es.js.map +1 -0
  450. package/utils/textFormatter.util.es.js +1 -0
  451. package/utils/textFormatter.util.es.js.map +1 -0
  452. package/utils/toast.util.d.ts +1 -0
  453. package/utils/toast.util.es.js +1 -0
  454. package/utils/toast.util.es.js.map +1 -0
  455. package/utils/xlsx.util.d.ts +6 -1
  456. package/utils/xlsx.util.es.js +8 -4
  457. package/utils/xlsx.util.es.js.map +1 -0
  458. package/validatormessage/index.d.ts +13 -2
  459. package/validatormessage/index.es.js +6 -5
  460. package/validatormessage/index.es.js.map +1 -0
  461. package/vendor/@popperjs/core/lib/createPopper.es.js +12 -11
  462. package/vendor/@popperjs/core/lib/createPopper.es.js.map +1 -0
  463. package/vendor/@popperjs/core/lib/dom-utils/contains.es.js +2 -1
  464. package/vendor/@popperjs/core/lib/dom-utils/contains.es.js.map +1 -0
  465. package/vendor/@popperjs/core/lib/dom-utils/getBoundingClientRect.es.js +2 -1
  466. package/vendor/@popperjs/core/lib/dom-utils/getBoundingClientRect.es.js.map +1 -0
  467. package/vendor/@popperjs/core/lib/dom-utils/getClippingRect.es.js +2 -1
  468. package/vendor/@popperjs/core/lib/dom-utils/getClippingRect.es.js.map +1 -0
  469. package/vendor/@popperjs/core/lib/dom-utils/getCompositeRect.es.js +2 -1
  470. package/vendor/@popperjs/core/lib/dom-utils/getCompositeRect.es.js.map +1 -0
  471. package/vendor/@popperjs/core/lib/dom-utils/getComputedStyle.es.js +1 -0
  472. package/vendor/@popperjs/core/lib/dom-utils/getComputedStyle.es.js.map +1 -0
  473. package/vendor/@popperjs/core/lib/dom-utils/getDocumentElement.es.js +2 -1
  474. package/vendor/@popperjs/core/lib/dom-utils/getDocumentElement.es.js.map +1 -0
  475. package/vendor/@popperjs/core/lib/dom-utils/getDocumentRect.es.js +1 -0
  476. package/vendor/@popperjs/core/lib/dom-utils/getDocumentRect.es.js.map +1 -0
  477. package/vendor/@popperjs/core/lib/dom-utils/getHTMLElementScroll.es.js +1 -0
  478. package/vendor/@popperjs/core/lib/dom-utils/getHTMLElementScroll.es.js.map +1 -0
  479. package/vendor/@popperjs/core/lib/dom-utils/getLayoutRect.es.js +1 -0
  480. package/vendor/@popperjs/core/lib/dom-utils/getLayoutRect.es.js.map +1 -0
  481. package/vendor/@popperjs/core/lib/dom-utils/getNodeName.es.js +1 -0
  482. package/vendor/@popperjs/core/lib/dom-utils/getNodeName.es.js.map +1 -0
  483. package/vendor/@popperjs/core/lib/dom-utils/getNodeScroll.es.js +4 -3
  484. package/vendor/@popperjs/core/lib/dom-utils/getNodeScroll.es.js.map +1 -0
  485. package/vendor/@popperjs/core/lib/dom-utils/getOffsetParent.es.js +16 -15
  486. package/vendor/@popperjs/core/lib/dom-utils/getOffsetParent.es.js.map +1 -0
  487. package/vendor/@popperjs/core/lib/dom-utils/getParentNode.es.js +2 -1
  488. package/vendor/@popperjs/core/lib/dom-utils/getParentNode.es.js.map +1 -0
  489. package/vendor/@popperjs/core/lib/dom-utils/getScrollParent.es.js +2 -1
  490. package/vendor/@popperjs/core/lib/dom-utils/getScrollParent.es.js.map +1 -0
  491. package/vendor/@popperjs/core/lib/dom-utils/getViewportRect.es.js +1 -0
  492. package/vendor/@popperjs/core/lib/dom-utils/getViewportRect.es.js.map +1 -0
  493. package/vendor/@popperjs/core/lib/dom-utils/getWindow.es.js +1 -0
  494. package/vendor/@popperjs/core/lib/dom-utils/getWindow.es.js.map +1 -0
  495. package/vendor/@popperjs/core/lib/dom-utils/getWindowScroll.es.js +1 -0
  496. package/vendor/@popperjs/core/lib/dom-utils/getWindowScroll.es.js.map +1 -0
  497. package/vendor/@popperjs/core/lib/dom-utils/getWindowScrollBarX.es.js +1 -0
  498. package/vendor/@popperjs/core/lib/dom-utils/getWindowScrollBarX.es.js.map +1 -0
  499. package/vendor/@popperjs/core/lib/dom-utils/instanceOf.es.js +4 -3
  500. package/vendor/@popperjs/core/lib/dom-utils/instanceOf.es.js.map +1 -0
  501. package/vendor/@popperjs/core/lib/dom-utils/isLayoutViewport.es.js +1 -0
  502. package/vendor/@popperjs/core/lib/dom-utils/isLayoutViewport.es.js.map +1 -0
  503. package/vendor/@popperjs/core/lib/dom-utils/isScrollParent.es.js +1 -0
  504. package/vendor/@popperjs/core/lib/dom-utils/isScrollParent.es.js.map +1 -0
  505. package/vendor/@popperjs/core/lib/dom-utils/isTableElement.es.js +1 -0
  506. package/vendor/@popperjs/core/lib/dom-utils/isTableElement.es.js.map +1 -0
  507. package/vendor/@popperjs/core/lib/dom-utils/listScrollParents.es.js +1 -0
  508. package/vendor/@popperjs/core/lib/dom-utils/listScrollParents.es.js.map +1 -0
  509. package/vendor/@popperjs/core/lib/enums.es.js +7 -6
  510. package/vendor/@popperjs/core/lib/enums.es.js.map +1 -0
  511. package/vendor/@popperjs/core/lib/index.es.js +1 -0
  512. package/vendor/@popperjs/core/lib/index.es.js.map +1 -0
  513. package/vendor/@popperjs/core/lib/modifiers/applyStyles.es.js +7 -6
  514. package/vendor/@popperjs/core/lib/modifiers/applyStyles.es.js.map +1 -0
  515. package/vendor/@popperjs/core/lib/modifiers/arrow.es.js +1 -0
  516. package/vendor/@popperjs/core/lib/modifiers/arrow.es.js.map +1 -0
  517. package/vendor/@popperjs/core/lib/modifiers/computeStyles.es.js +1 -0
  518. package/vendor/@popperjs/core/lib/modifiers/computeStyles.es.js.map +1 -0
  519. package/vendor/@popperjs/core/lib/modifiers/eventListeners.es.js +1 -0
  520. package/vendor/@popperjs/core/lib/modifiers/eventListeners.es.js.map +1 -0
  521. package/vendor/@popperjs/core/lib/modifiers/flip.es.js +7 -6
  522. package/vendor/@popperjs/core/lib/modifiers/flip.es.js.map +1 -0
  523. package/vendor/@popperjs/core/lib/modifiers/hide.es.js +1 -0
  524. package/vendor/@popperjs/core/lib/modifiers/hide.es.js.map +1 -0
  525. package/vendor/@popperjs/core/lib/modifiers/index.es.js +1 -0
  526. package/vendor/@popperjs/core/lib/modifiers/index.es.js.map +1 -0
  527. package/vendor/@popperjs/core/lib/modifiers/offset.es.js +6 -5
  528. package/vendor/@popperjs/core/lib/modifiers/offset.es.js.map +1 -0
  529. package/vendor/@popperjs/core/lib/modifiers/popperOffsets.es.js +1 -0
  530. package/vendor/@popperjs/core/lib/modifiers/popperOffsets.es.js.map +1 -0
  531. package/vendor/@popperjs/core/lib/modifiers/preventOverflow.es.js +1 -0
  532. package/vendor/@popperjs/core/lib/modifiers/preventOverflow.es.js.map +1 -0
  533. package/vendor/@popperjs/core/lib/popper-lite.es.js +1 -0
  534. package/vendor/@popperjs/core/lib/popper-lite.es.js.map +1 -0
  535. package/vendor/@popperjs/core/lib/popper.es.js +1 -0
  536. package/vendor/@popperjs/core/lib/popper.es.js.map +1 -0
  537. package/vendor/@popperjs/core/lib/utils/computeAutoPlacement.es.js +6 -5
  538. package/vendor/@popperjs/core/lib/utils/computeAutoPlacement.es.js.map +1 -0
  539. package/vendor/@popperjs/core/lib/utils/computeOffsets.es.js +1 -0
  540. package/vendor/@popperjs/core/lib/utils/computeOffsets.es.js.map +1 -0
  541. package/vendor/@popperjs/core/lib/utils/debounce.es.js +1 -0
  542. package/vendor/@popperjs/core/lib/utils/debounce.es.js.map +1 -0
  543. package/vendor/@popperjs/core/lib/utils/detectOverflow.es.js +18 -17
  544. package/vendor/@popperjs/core/lib/utils/detectOverflow.es.js.map +1 -0
  545. package/vendor/@popperjs/core/lib/utils/expandToHashMap.es.js +1 -0
  546. package/vendor/@popperjs/core/lib/utils/expandToHashMap.es.js.map +1 -0
  547. package/vendor/@popperjs/core/lib/utils/getAltAxis.es.js +1 -0
  548. package/vendor/@popperjs/core/lib/utils/getAltAxis.es.js.map +1 -0
  549. package/vendor/@popperjs/core/lib/utils/getBasePlacement.es.js +1 -0
  550. package/vendor/@popperjs/core/lib/utils/getBasePlacement.es.js.map +1 -0
  551. package/vendor/@popperjs/core/lib/utils/getFreshSideObject.es.js +1 -0
  552. package/vendor/@popperjs/core/lib/utils/getFreshSideObject.es.js.map +1 -0
  553. package/vendor/@popperjs/core/lib/utils/getMainAxisFromPlacement.es.js +1 -0
  554. package/vendor/@popperjs/core/lib/utils/getMainAxisFromPlacement.es.js.map +1 -0
  555. package/vendor/@popperjs/core/lib/utils/getOppositePlacement.es.js +1 -0
  556. package/vendor/@popperjs/core/lib/utils/getOppositePlacement.es.js.map +1 -0
  557. package/vendor/@popperjs/core/lib/utils/getOppositeVariationPlacement.es.js +1 -0
  558. package/vendor/@popperjs/core/lib/utils/getOppositeVariationPlacement.es.js.map +1 -0
  559. package/vendor/@popperjs/core/lib/utils/getVariation.es.js +1 -0
  560. package/vendor/@popperjs/core/lib/utils/getVariation.es.js.map +1 -0
  561. package/vendor/@popperjs/core/lib/utils/math.es.js +1 -0
  562. package/vendor/@popperjs/core/lib/utils/math.es.js.map +1 -0
  563. package/vendor/@popperjs/core/lib/utils/mergeByName.es.js +1 -0
  564. package/vendor/@popperjs/core/lib/utils/mergeByName.es.js.map +1 -0
  565. package/vendor/@popperjs/core/lib/utils/mergePaddingObject.es.js +1 -0
  566. package/vendor/@popperjs/core/lib/utils/mergePaddingObject.es.js.map +1 -0
  567. package/vendor/@popperjs/core/lib/utils/orderModifiers.es.js +1 -0
  568. package/vendor/@popperjs/core/lib/utils/orderModifiers.es.js.map +1 -0
  569. package/vendor/@popperjs/core/lib/utils/rectToClientRect.es.js +1 -0
  570. package/vendor/@popperjs/core/lib/utils/rectToClientRect.es.js.map +1 -0
  571. package/vendor/@popperjs/core/lib/utils/userAgent.es.js +1 -0
  572. package/vendor/@popperjs/core/lib/utils/userAgent.es.js.map +1 -0
  573. package/vendor/@popperjs/core/lib/utils/within.es.js +1 -0
  574. package/vendor/@popperjs/core/lib/utils/within.es.js.map +1 -0
  575. package/vendor/@tiptap/core/dist/index.es.js +16 -15
  576. package/vendor/@tiptap/core/dist/index.es.js.map +1 -0
  577. package/vendor/@tiptap/extension-bold/dist/index.es.js +2 -1
  578. package/vendor/@tiptap/extension-bold/dist/index.es.js.map +1 -0
  579. package/vendor/@tiptap/extension-bubble-menu/dist/index.es.js +3 -2
  580. package/vendor/@tiptap/extension-bubble-menu/dist/index.es.js.map +1 -0
  581. package/vendor/@tiptap/extension-bullet-list/dist/index.es.js +2 -1
  582. package/vendor/@tiptap/extension-bullet-list/dist/index.es.js.map +1 -0
  583. package/vendor/@tiptap/extension-code/dist/index.es.js +2 -1
  584. package/vendor/@tiptap/extension-code/dist/index.es.js.map +1 -0
  585. package/vendor/@tiptap/extension-document/dist/index.es.js +1 -0
  586. package/vendor/@tiptap/extension-document/dist/index.es.js.map +1 -0
  587. package/vendor/@tiptap/extension-floating-menu/dist/index.es.js +4 -3
  588. package/vendor/@tiptap/extension-floating-menu/dist/index.es.js.map +1 -0
  589. package/vendor/@tiptap/extension-heading/dist/index.es.js +2 -1
  590. package/vendor/@tiptap/extension-heading/dist/index.es.js.map +1 -0
  591. package/vendor/@tiptap/extension-history/dist/index.es.js +1 -0
  592. package/vendor/@tiptap/extension-history/dist/index.es.js.map +1 -0
  593. package/vendor/@tiptap/extension-image/dist/index.es.js +2 -1
  594. package/vendor/@tiptap/extension-image/dist/index.es.js.map +1 -0
  595. package/vendor/@tiptap/extension-italic/dist/index.es.js +2 -1
  596. package/vendor/@tiptap/extension-italic/dist/index.es.js.map +1 -0
  597. package/vendor/@tiptap/extension-link/dist/index.es.js +18 -17
  598. package/vendor/@tiptap/extension-link/dist/index.es.js.map +1 -0
  599. package/vendor/@tiptap/extension-list-item/dist/index.es.js +2 -1
  600. package/vendor/@tiptap/extension-list-item/dist/index.es.js.map +1 -0
  601. package/vendor/@tiptap/extension-mention/dist/index.es.js +2 -1
  602. package/vendor/@tiptap/extension-mention/dist/index.es.js.map +1 -0
  603. package/vendor/@tiptap/extension-ordered-list/dist/index.es.js +2 -1
  604. package/vendor/@tiptap/extension-ordered-list/dist/index.es.js.map +1 -0
  605. package/vendor/@tiptap/extension-paragraph/dist/index.es.js +2 -1
  606. package/vendor/@tiptap/extension-paragraph/dist/index.es.js.map +1 -0
  607. package/vendor/@tiptap/extension-placeholder/dist/index.es.js +3 -2
  608. package/vendor/@tiptap/extension-placeholder/dist/index.es.js.map +1 -0
  609. package/vendor/@tiptap/extension-text/dist/index.es.js +1 -0
  610. package/vendor/@tiptap/extension-text/dist/index.es.js.map +1 -0
  611. package/vendor/@tiptap/extension-underline/dist/index.es.js +2 -1
  612. package/vendor/@tiptap/extension-underline/dist/index.es.js.map +1 -0
  613. package/vendor/@tiptap/pm/commands/dist/index.es.js +1 -0
  614. package/vendor/@tiptap/pm/commands/dist/index.es.js.map +1 -0
  615. package/vendor/@tiptap/pm/history/dist/index.es.js +1 -0
  616. package/vendor/@tiptap/pm/history/dist/index.es.js.map +1 -0
  617. package/vendor/@tiptap/pm/keymap/dist/index.es.js +1 -0
  618. package/vendor/@tiptap/pm/keymap/dist/index.es.js.map +1 -0
  619. package/vendor/@tiptap/pm/model/dist/index.es.js +1 -0
  620. package/vendor/@tiptap/pm/model/dist/index.es.js.map +1 -0
  621. package/vendor/@tiptap/pm/schema-list/dist/index.es.js +1 -0
  622. package/vendor/@tiptap/pm/schema-list/dist/index.es.js.map +1 -0
  623. package/vendor/@tiptap/pm/state/dist/index.es.js +1 -0
  624. package/vendor/@tiptap/pm/state/dist/index.es.js.map +1 -0
  625. package/vendor/@tiptap/pm/transform/dist/index.es.js +1 -0
  626. package/vendor/@tiptap/pm/transform/dist/index.es.js.map +1 -0
  627. package/vendor/@tiptap/pm/view/dist/index.es.js +1 -0
  628. package/vendor/@tiptap/pm/view/dist/index.es.js.map +1 -0
  629. package/vendor/@tiptap/suggestion/dist/index.es.js +11 -10
  630. package/vendor/@tiptap/suggestion/dist/index.es.js.map +1 -0
  631. package/vendor/@tiptap/vue-3/dist/index.es.js +2 -1
  632. package/vendor/@tiptap/vue-3/dist/index.es.js.map +1 -0
  633. package/vendor/@vueuse/core/index.es.js +43 -0
  634. package/vendor/@vueuse/core/index.es.js.map +1 -0
  635. package/vendor/@vueuse/shared/index.es.js +8 -0
  636. package/vendor/@vueuse/shared/index.es.js.map +1 -0
  637. package/vendor/@wangs-ui/core/components/p-BHlOKcck.es.js +141 -0
  638. package/vendor/@wangs-ui/core/components/p-BHlOKcck.es.js.map +1 -0
  639. package/vendor/@wangs-ui/core/components/p-BU8h34na.es.js +1 -0
  640. package/vendor/@wangs-ui/core/components/p-BU8h34na.es.js.map +1 -0
  641. package/vendor/@wangs-ui/core/components/p-C0QfdhKo.es.js +58 -0
  642. package/vendor/@wangs-ui/core/components/p-C0QfdhKo.es.js.map +1 -0
  643. package/vendor/@wangs-ui/core/components/p-C5lMEBcj.es.js +1 -0
  644. package/vendor/@wangs-ui/core/components/p-C5lMEBcj.es.js.map +1 -0
  645. package/vendor/@wangs-ui/core/components/p-DTTCzifR.es.js +1 -0
  646. package/vendor/@wangs-ui/core/components/p-DTTCzifR.es.js.map +1 -0
  647. package/vendor/@wangs-ui/core/components/p-Duri5p90.es.js +174 -0
  648. package/vendor/@wangs-ui/core/components/p-Duri5p90.es.js.map +1 -0
  649. package/vendor/@wangs-ui/core/components/p-b33NVvKu.es.js +159 -0
  650. package/vendor/@wangs-ui/core/components/p-b33NVvKu.es.js.map +1 -0
  651. package/vendor/@wangs-ui/core/components/wangs-button.es.js +6 -5
  652. package/vendor/@wangs-ui/core/components/wangs-button.es.js.map +1 -0
  653. package/vendor/@wangs-ui/core/components/wangs-icon.es.js +2 -1
  654. package/vendor/@wangs-ui/core/components/wangs-icon.es.js.map +1 -0
  655. package/vendor/@wangs-ui/core/components/wangs-input-otp.es.js +2 -1
  656. package/vendor/@wangs-ui/core/components/wangs-input-otp.es.js.map +1 -0
  657. package/vendor/@wangs-ui/core/components/wangs-tab-menu.es.js +2 -1
  658. package/vendor/@wangs-ui/core/components/wangs-tab-menu.es.js.map +1 -0
  659. package/vendor/@wangs-ui/core/dist/esm/index-DCkh3cGv.es.js +327 -0
  660. package/vendor/@wangs-ui/core/dist/esm/index-DCkh3cGv.es.js.map +1 -0
  661. package/vendor/@wangs-ui/core/dist/esm/index.es.js +2 -1
  662. package/vendor/@wangs-ui/core/dist/esm/index.es.js.map +1 -0
  663. package/vendor/@wangs-ui/core/dist/index.es.js +2 -1
  664. package/vendor/@wangs-ui/core/dist/index.es.js.map +1 -0
  665. package/vendor/@wangs-ui/vue/dist/index.es.js +2 -1
  666. package/vendor/@wangs-ui/vue/dist/index.es.js.map +1 -0
  667. package/vendor/base64toblob/base64toblob.es.js +1 -0
  668. package/vendor/base64toblob/base64toblob.es.js.map +1 -0
  669. package/vendor/dijkstrajs/dijkstra.es.js +1 -0
  670. package/vendor/dijkstrajs/dijkstra.es.js.map +1 -0
  671. package/vendor/highlight.js/es/core.es.js +4 -4
  672. package/vendor/highlight.js/es/core.es.js.map +1 -0
  673. package/vendor/highlight.js/es/languages/javascript.es.js +1 -0
  674. package/vendor/highlight.js/es/languages/javascript.es.js.map +1 -0
  675. package/vendor/highlight.js/es/languages/json.es.js +1 -0
  676. package/vendor/highlight.js/es/languages/json.es.js.map +1 -0
  677. package/vendor/highlight.js/es/languages/typescript.es.js +1 -0
  678. package/vendor/highlight.js/es/languages/typescript.es.js.map +1 -0
  679. package/vendor/highlight.js/es/languages/vbscript-html.es.js +1 -0
  680. package/vendor/highlight.js/es/languages/vbscript-html.es.js.map +1 -0
  681. package/vendor/highlight.js/lib/core.es.js +161 -156
  682. package/vendor/highlight.js/lib/core.es.js.map +1 -0
  683. package/vendor/linkifyjs/dist/linkify.es.js +702 -0
  684. package/vendor/linkifyjs/dist/linkify.es.js.map +1 -0
  685. package/vendor/lodash-es/_DataView.es.js +1 -0
  686. package/vendor/lodash-es/_DataView.es.js.map +1 -0
  687. package/vendor/lodash-es/_Hash.es.js +1 -0
  688. package/vendor/lodash-es/_Hash.es.js.map +1 -0
  689. package/vendor/lodash-es/_LazyWrapper.es.js +1 -0
  690. package/vendor/lodash-es/_LazyWrapper.es.js.map +1 -0
  691. package/vendor/lodash-es/_ListCache.es.js +1 -0
  692. package/vendor/lodash-es/_ListCache.es.js.map +1 -0
  693. package/vendor/lodash-es/_LodashWrapper.es.js +1 -0
  694. package/vendor/lodash-es/_LodashWrapper.es.js.map +1 -0
  695. package/vendor/lodash-es/_Map.es.js +1 -0
  696. package/vendor/lodash-es/_Map.es.js.map +1 -0
  697. package/vendor/lodash-es/_MapCache.es.js +1 -0
  698. package/vendor/lodash-es/_MapCache.es.js.map +1 -0
  699. package/vendor/lodash-es/_Promise.es.js +1 -0
  700. package/vendor/lodash-es/_Promise.es.js.map +1 -0
  701. package/vendor/lodash-es/_Set.es.js +1 -0
  702. package/vendor/lodash-es/_Set.es.js.map +1 -0
  703. package/vendor/lodash-es/_SetCache.es.js +1 -0
  704. package/vendor/lodash-es/_SetCache.es.js.map +1 -0
  705. package/vendor/lodash-es/_Stack.es.js +1 -0
  706. package/vendor/lodash-es/_Stack.es.js.map +1 -0
  707. package/vendor/lodash-es/_Symbol.es.js +1 -0
  708. package/vendor/lodash-es/_Symbol.es.js.map +1 -0
  709. package/vendor/lodash-es/_Uint8Array.es.js +1 -0
  710. package/vendor/lodash-es/_Uint8Array.es.js.map +1 -0
  711. package/vendor/lodash-es/_WeakMap.es.js +1 -0
  712. package/vendor/lodash-es/_WeakMap.es.js.map +1 -0
  713. package/vendor/lodash-es/_apply.es.js +1 -0
  714. package/vendor/lodash-es/_apply.es.js.map +1 -0
  715. package/vendor/lodash-es/_arrayAggregator.es.js +1 -0
  716. package/vendor/lodash-es/_arrayAggregator.es.js.map +1 -0
  717. package/vendor/lodash-es/_arrayEach.es.js +1 -0
  718. package/vendor/lodash-es/_arrayEach.es.js.map +1 -0
  719. package/vendor/lodash-es/_arrayEachRight.es.js +1 -0
  720. package/vendor/lodash-es/_arrayEachRight.es.js.map +1 -0
  721. package/vendor/lodash-es/_arrayEvery.es.js +1 -0
  722. package/vendor/lodash-es/_arrayEvery.es.js.map +1 -0
  723. package/vendor/lodash-es/_arrayFilter.es.js +1 -0
  724. package/vendor/lodash-es/_arrayFilter.es.js.map +1 -0
  725. package/vendor/lodash-es/_arrayIncludes.es.js +1 -0
  726. package/vendor/lodash-es/_arrayIncludes.es.js.map +1 -0
  727. package/vendor/lodash-es/_arrayIncludesWith.es.js +1 -0
  728. package/vendor/lodash-es/_arrayIncludesWith.es.js.map +1 -0
  729. package/vendor/lodash-es/_arrayLikeKeys.es.js +1 -0
  730. package/vendor/lodash-es/_arrayLikeKeys.es.js.map +1 -0
  731. package/vendor/lodash-es/_arrayMap.es.js +1 -0
  732. package/vendor/lodash-es/_arrayMap.es.js.map +1 -0
  733. package/vendor/lodash-es/_arrayPush.es.js +1 -0
  734. package/vendor/lodash-es/_arrayPush.es.js.map +1 -0
  735. package/vendor/lodash-es/_arrayReduce.es.js +1 -0
  736. package/vendor/lodash-es/_arrayReduce.es.js.map +1 -0
  737. package/vendor/lodash-es/_arrayReduceRight.es.js +1 -0
  738. package/vendor/lodash-es/_arrayReduceRight.es.js.map +1 -0
  739. package/vendor/lodash-es/_arraySample.es.js +1 -0
  740. package/vendor/lodash-es/_arraySample.es.js.map +1 -0
  741. package/vendor/lodash-es/_arraySampleSize.es.js +1 -0
  742. package/vendor/lodash-es/_arraySampleSize.es.js.map +1 -0
  743. package/vendor/lodash-es/_arrayShuffle.es.js +1 -0
  744. package/vendor/lodash-es/_arrayShuffle.es.js.map +1 -0
  745. package/vendor/lodash-es/_arraySome.es.js +1 -0
  746. package/vendor/lodash-es/_arraySome.es.js.map +1 -0
  747. package/vendor/lodash-es/_asciiSize.es.js +1 -0
  748. package/vendor/lodash-es/_asciiSize.es.js.map +1 -0
  749. package/vendor/lodash-es/_asciiToArray.es.js +1 -0
  750. package/vendor/lodash-es/_asciiToArray.es.js.map +1 -0
  751. package/vendor/lodash-es/_asciiWords.es.js +1 -0
  752. package/vendor/lodash-es/_asciiWords.es.js.map +1 -0
  753. package/vendor/lodash-es/_assignMergeValue.es.js +1 -0
  754. package/vendor/lodash-es/_assignMergeValue.es.js.map +1 -0
  755. package/vendor/lodash-es/_assignValue.es.js +1 -0
  756. package/vendor/lodash-es/_assignValue.es.js.map +1 -0
  757. package/vendor/lodash-es/_assocIndexOf.es.js +1 -0
  758. package/vendor/lodash-es/_assocIndexOf.es.js.map +1 -0
  759. package/vendor/lodash-es/_baseAggregator.es.js +1 -0
  760. package/vendor/lodash-es/_baseAggregator.es.js.map +1 -0
  761. package/vendor/lodash-es/_baseAssign.es.js +1 -0
  762. package/vendor/lodash-es/_baseAssign.es.js.map +1 -0
  763. package/vendor/lodash-es/_baseAssignIn.es.js +1 -0
  764. package/vendor/lodash-es/_baseAssignIn.es.js.map +1 -0
  765. package/vendor/lodash-es/_baseAssignValue.es.js +1 -0
  766. package/vendor/lodash-es/_baseAssignValue.es.js.map +1 -0
  767. package/vendor/lodash-es/_baseAt.es.js +1 -0
  768. package/vendor/lodash-es/_baseAt.es.js.map +1 -0
  769. package/vendor/lodash-es/_baseClamp.es.js +1 -0
  770. package/vendor/lodash-es/_baseClamp.es.js.map +1 -0
  771. package/vendor/lodash-es/_baseClone.es.js +1 -0
  772. package/vendor/lodash-es/_baseClone.es.js.map +1 -0
  773. package/vendor/lodash-es/_baseConforms.es.js +1 -0
  774. package/vendor/lodash-es/_baseConforms.es.js.map +1 -0
  775. package/vendor/lodash-es/_baseConformsTo.es.js +1 -0
  776. package/vendor/lodash-es/_baseConformsTo.es.js.map +1 -0
  777. package/vendor/lodash-es/_baseCreate.es.js +1 -0
  778. package/vendor/lodash-es/_baseCreate.es.js.map +1 -0
  779. package/vendor/lodash-es/_baseDelay.es.js +1 -0
  780. package/vendor/lodash-es/_baseDelay.es.js.map +1 -0
  781. package/vendor/lodash-es/_baseDifference.es.js +1 -0
  782. package/vendor/lodash-es/_baseDifference.es.js.map +1 -0
  783. package/vendor/lodash-es/_baseEach.es.js +1 -0
  784. package/vendor/lodash-es/_baseEach.es.js.map +1 -0
  785. package/vendor/lodash-es/_baseEachRight.es.js +1 -0
  786. package/vendor/lodash-es/_baseEachRight.es.js.map +1 -0
  787. package/vendor/lodash-es/_baseEvery.es.js +1 -0
  788. package/vendor/lodash-es/_baseEvery.es.js.map +1 -0
  789. package/vendor/lodash-es/_baseExtremum.es.js +1 -0
  790. package/vendor/lodash-es/_baseExtremum.es.js.map +1 -0
  791. package/vendor/lodash-es/_baseFill.es.js +1 -0
  792. package/vendor/lodash-es/_baseFill.es.js.map +1 -0
  793. package/vendor/lodash-es/_baseFilter.es.js +1 -0
  794. package/vendor/lodash-es/_baseFilter.es.js.map +1 -0
  795. package/vendor/lodash-es/_baseFindIndex.es.js +1 -0
  796. package/vendor/lodash-es/_baseFindIndex.es.js.map +1 -0
  797. package/vendor/lodash-es/_baseFindKey.es.js +1 -0
  798. package/vendor/lodash-es/_baseFindKey.es.js.map +1 -0
  799. package/vendor/lodash-es/_baseFlatten.es.js +1 -0
  800. package/vendor/lodash-es/_baseFlatten.es.js.map +1 -0
  801. package/vendor/lodash-es/_baseFor.es.js +1 -0
  802. package/vendor/lodash-es/_baseFor.es.js.map +1 -0
  803. package/vendor/lodash-es/_baseForOwn.es.js +1 -0
  804. package/vendor/lodash-es/_baseForOwn.es.js.map +1 -0
  805. package/vendor/lodash-es/_baseForOwnRight.es.js +1 -0
  806. package/vendor/lodash-es/_baseForOwnRight.es.js.map +1 -0
  807. package/vendor/lodash-es/_baseForRight.es.js +1 -0
  808. package/vendor/lodash-es/_baseForRight.es.js.map +1 -0
  809. package/vendor/lodash-es/_baseFunctions.es.js +1 -0
  810. package/vendor/lodash-es/_baseFunctions.es.js.map +1 -0
  811. package/vendor/lodash-es/_baseGet.es.js +1 -0
  812. package/vendor/lodash-es/_baseGet.es.js.map +1 -0
  813. package/vendor/lodash-es/_baseGetAllKeys.es.js +1 -0
  814. package/vendor/lodash-es/_baseGetAllKeys.es.js.map +1 -0
  815. package/vendor/lodash-es/_baseGetTag.es.js +1 -0
  816. package/vendor/lodash-es/_baseGetTag.es.js.map +1 -0
  817. package/vendor/lodash-es/_baseGt.es.js +1 -0
  818. package/vendor/lodash-es/_baseGt.es.js.map +1 -0
  819. package/vendor/lodash-es/_baseHas.es.js +1 -0
  820. package/vendor/lodash-es/_baseHas.es.js.map +1 -0
  821. package/vendor/lodash-es/_baseHasIn.es.js +1 -0
  822. package/vendor/lodash-es/_baseHasIn.es.js.map +1 -0
  823. package/vendor/lodash-es/_baseInRange.es.js +1 -0
  824. package/vendor/lodash-es/_baseInRange.es.js.map +1 -0
  825. package/vendor/lodash-es/_baseIndexOf.es.js +1 -0
  826. package/vendor/lodash-es/_baseIndexOf.es.js.map +1 -0
  827. package/vendor/lodash-es/_baseIndexOfWith.es.js +1 -0
  828. package/vendor/lodash-es/_baseIndexOfWith.es.js.map +1 -0
  829. package/vendor/lodash-es/_baseIntersection.es.js +1 -0
  830. package/vendor/lodash-es/_baseIntersection.es.js.map +1 -0
  831. package/vendor/lodash-es/_baseInverter.es.js +1 -0
  832. package/vendor/lodash-es/_baseInverter.es.js.map +1 -0
  833. package/vendor/lodash-es/_baseInvoke.es.js +1 -0
  834. package/vendor/lodash-es/_baseInvoke.es.js.map +1 -0
  835. package/vendor/lodash-es/_baseIsArguments.es.js +1 -0
  836. package/vendor/lodash-es/_baseIsArguments.es.js.map +1 -0
  837. package/vendor/lodash-es/_baseIsArrayBuffer.es.js +1 -0
  838. package/vendor/lodash-es/_baseIsArrayBuffer.es.js.map +1 -0
  839. package/vendor/lodash-es/_baseIsDate.es.js +1 -0
  840. package/vendor/lodash-es/_baseIsDate.es.js.map +1 -0
  841. package/vendor/lodash-es/_baseIsEqual.es.js +1 -0
  842. package/vendor/lodash-es/_baseIsEqual.es.js.map +1 -0
  843. package/vendor/lodash-es/_baseIsEqualDeep.es.js +1 -0
  844. package/vendor/lodash-es/_baseIsEqualDeep.es.js.map +1 -0
  845. package/vendor/lodash-es/_baseIsMap.es.js +1 -0
  846. package/vendor/lodash-es/_baseIsMap.es.js.map +1 -0
  847. package/vendor/lodash-es/_baseIsMatch.es.js +1 -0
  848. package/vendor/lodash-es/_baseIsMatch.es.js.map +1 -0
  849. package/vendor/lodash-es/_baseIsNaN.es.js +1 -0
  850. package/vendor/lodash-es/_baseIsNaN.es.js.map +1 -0
  851. package/vendor/lodash-es/_baseIsNative.es.js +1 -0
  852. package/vendor/lodash-es/_baseIsNative.es.js.map +1 -0
  853. package/vendor/lodash-es/_baseIsRegExp.es.js +1 -0
  854. package/vendor/lodash-es/_baseIsRegExp.es.js.map +1 -0
  855. package/vendor/lodash-es/_baseIsSet.es.js +1 -0
  856. package/vendor/lodash-es/_baseIsSet.es.js.map +1 -0
  857. package/vendor/lodash-es/_baseIsTypedArray.es.js +1 -0
  858. package/vendor/lodash-es/_baseIsTypedArray.es.js.map +1 -0
  859. package/vendor/lodash-es/_baseIteratee.es.js +1 -0
  860. package/vendor/lodash-es/_baseIteratee.es.js.map +1 -0
  861. package/vendor/lodash-es/_baseKeys.es.js +1 -0
  862. package/vendor/lodash-es/_baseKeys.es.js.map +1 -0
  863. package/vendor/lodash-es/_baseKeysIn.es.js +1 -0
  864. package/vendor/lodash-es/_baseKeysIn.es.js.map +1 -0
  865. package/vendor/lodash-es/_baseLodash.es.js +1 -0
  866. package/vendor/lodash-es/_baseLodash.es.js.map +1 -0
  867. package/vendor/lodash-es/_baseLt.es.js +1 -0
  868. package/vendor/lodash-es/_baseLt.es.js.map +1 -0
  869. package/vendor/lodash-es/_baseMap.es.js +1 -0
  870. package/vendor/lodash-es/_baseMap.es.js.map +1 -0
  871. package/vendor/lodash-es/_baseMatches.es.js +1 -0
  872. package/vendor/lodash-es/_baseMatches.es.js.map +1 -0
  873. package/vendor/lodash-es/_baseMatchesProperty.es.js +1 -0
  874. package/vendor/lodash-es/_baseMatchesProperty.es.js.map +1 -0
  875. package/vendor/lodash-es/_baseMean.es.js +1 -0
  876. package/vendor/lodash-es/_baseMean.es.js.map +1 -0
  877. package/vendor/lodash-es/_baseMerge.es.js +1 -0
  878. package/vendor/lodash-es/_baseMerge.es.js.map +1 -0
  879. package/vendor/lodash-es/_baseMergeDeep.es.js +1 -0
  880. package/vendor/lodash-es/_baseMergeDeep.es.js.map +1 -0
  881. package/vendor/lodash-es/_baseNth.es.js +1 -0
  882. package/vendor/lodash-es/_baseNth.es.js.map +1 -0
  883. package/vendor/lodash-es/_baseOrderBy.es.js +1 -0
  884. package/vendor/lodash-es/_baseOrderBy.es.js.map +1 -0
  885. package/vendor/lodash-es/_basePick.es.js +1 -0
  886. package/vendor/lodash-es/_basePick.es.js.map +1 -0
  887. package/vendor/lodash-es/_basePickBy.es.js +1 -0
  888. package/vendor/lodash-es/_basePickBy.es.js.map +1 -0
  889. package/vendor/lodash-es/_baseProperty.es.js +1 -0
  890. package/vendor/lodash-es/_baseProperty.es.js.map +1 -0
  891. package/vendor/lodash-es/_basePropertyDeep.es.js +1 -0
  892. package/vendor/lodash-es/_basePropertyDeep.es.js.map +1 -0
  893. package/vendor/lodash-es/_basePropertyOf.es.js +1 -0
  894. package/vendor/lodash-es/_basePropertyOf.es.js.map +1 -0
  895. package/vendor/lodash-es/_basePullAll.es.js +1 -0
  896. package/vendor/lodash-es/_basePullAll.es.js.map +1 -0
  897. package/vendor/lodash-es/_basePullAt.es.js +1 -0
  898. package/vendor/lodash-es/_basePullAt.es.js.map +1 -0
  899. package/vendor/lodash-es/_baseRandom.es.js +1 -0
  900. package/vendor/lodash-es/_baseRandom.es.js.map +1 -0
  901. package/vendor/lodash-es/_baseRange.es.js +1 -0
  902. package/vendor/lodash-es/_baseRange.es.js.map +1 -0
  903. package/vendor/lodash-es/_baseReduce.es.js +1 -0
  904. package/vendor/lodash-es/_baseReduce.es.js.map +1 -0
  905. package/vendor/lodash-es/_baseRepeat.es.js +1 -0
  906. package/vendor/lodash-es/_baseRepeat.es.js.map +1 -0
  907. package/vendor/lodash-es/_baseRest.es.js +1 -0
  908. package/vendor/lodash-es/_baseRest.es.js.map +1 -0
  909. package/vendor/lodash-es/_baseSample.es.js +1 -0
  910. package/vendor/lodash-es/_baseSample.es.js.map +1 -0
  911. package/vendor/lodash-es/_baseSampleSize.es.js +1 -0
  912. package/vendor/lodash-es/_baseSampleSize.es.js.map +1 -0
  913. package/vendor/lodash-es/_baseSet.es.js +1 -0
  914. package/vendor/lodash-es/_baseSet.es.js.map +1 -0
  915. package/vendor/lodash-es/_baseSetData.es.js +1 -0
  916. package/vendor/lodash-es/_baseSetData.es.js.map +1 -0
  917. package/vendor/lodash-es/_baseSetToString.es.js +1 -0
  918. package/vendor/lodash-es/_baseSetToString.es.js.map +1 -0
  919. package/vendor/lodash-es/_baseShuffle.es.js +1 -0
  920. package/vendor/lodash-es/_baseShuffle.es.js.map +1 -0
  921. package/vendor/lodash-es/_baseSlice.es.js +1 -0
  922. package/vendor/lodash-es/_baseSlice.es.js.map +1 -0
  923. package/vendor/lodash-es/_baseSome.es.js +1 -0
  924. package/vendor/lodash-es/_baseSome.es.js.map +1 -0
  925. package/vendor/lodash-es/_baseSortBy.es.js +1 -0
  926. package/vendor/lodash-es/_baseSortBy.es.js.map +1 -0
  927. package/vendor/lodash-es/_baseSortedIndex.es.js +1 -0
  928. package/vendor/lodash-es/_baseSortedIndex.es.js.map +1 -0
  929. package/vendor/lodash-es/_baseSortedIndexBy.es.js +1 -0
  930. package/vendor/lodash-es/_baseSortedIndexBy.es.js.map +1 -0
  931. package/vendor/lodash-es/_baseSortedUniq.es.js +1 -0
  932. package/vendor/lodash-es/_baseSortedUniq.es.js.map +1 -0
  933. package/vendor/lodash-es/_baseSum.es.js +1 -0
  934. package/vendor/lodash-es/_baseSum.es.js.map +1 -0
  935. package/vendor/lodash-es/_baseTimes.es.js +1 -0
  936. package/vendor/lodash-es/_baseTimes.es.js.map +1 -0
  937. package/vendor/lodash-es/_baseToNumber.es.js +1 -0
  938. package/vendor/lodash-es/_baseToNumber.es.js.map +1 -0
  939. package/vendor/lodash-es/_baseToPairs.es.js +1 -0
  940. package/vendor/lodash-es/_baseToPairs.es.js.map +1 -0
  941. package/vendor/lodash-es/_baseToString.es.js +1 -0
  942. package/vendor/lodash-es/_baseToString.es.js.map +1 -0
  943. package/vendor/lodash-es/_baseTrim.es.js +1 -0
  944. package/vendor/lodash-es/_baseTrim.es.js.map +1 -0
  945. package/vendor/lodash-es/_baseUnary.es.js +1 -0
  946. package/vendor/lodash-es/_baseUnary.es.js.map +1 -0
  947. package/vendor/lodash-es/_baseUniq.es.js +1 -0
  948. package/vendor/lodash-es/_baseUniq.es.js.map +1 -0
  949. package/vendor/lodash-es/_baseUnset.es.js +1 -0
  950. package/vendor/lodash-es/_baseUnset.es.js.map +1 -0
  951. package/vendor/lodash-es/_baseUpdate.es.js +1 -0
  952. package/vendor/lodash-es/_baseUpdate.es.js.map +1 -0
  953. package/vendor/lodash-es/_baseValues.es.js +1 -0
  954. package/vendor/lodash-es/_baseValues.es.js.map +1 -0
  955. package/vendor/lodash-es/_baseWhile.es.js +1 -0
  956. package/vendor/lodash-es/_baseWhile.es.js.map +1 -0
  957. package/vendor/lodash-es/_baseWrapperValue.es.js +1 -0
  958. package/vendor/lodash-es/_baseWrapperValue.es.js.map +1 -0
  959. package/vendor/lodash-es/_baseXor.es.js +1 -0
  960. package/vendor/lodash-es/_baseXor.es.js.map +1 -0
  961. package/vendor/lodash-es/_baseZipObject.es.js +1 -0
  962. package/vendor/lodash-es/_baseZipObject.es.js.map +1 -0
  963. package/vendor/lodash-es/_cacheHas.es.js +1 -0
  964. package/vendor/lodash-es/_cacheHas.es.js.map +1 -0
  965. package/vendor/lodash-es/_castArrayLikeObject.es.js +1 -0
  966. package/vendor/lodash-es/_castArrayLikeObject.es.js.map +1 -0
  967. package/vendor/lodash-es/_castFunction.es.js +1 -0
  968. package/vendor/lodash-es/_castFunction.es.js.map +1 -0
  969. package/vendor/lodash-es/_castPath.es.js +1 -0
  970. package/vendor/lodash-es/_castPath.es.js.map +1 -0
  971. package/vendor/lodash-es/_castRest.es.js +1 -0
  972. package/vendor/lodash-es/_castRest.es.js.map +1 -0
  973. package/vendor/lodash-es/_castSlice.es.js +1 -0
  974. package/vendor/lodash-es/_castSlice.es.js.map +1 -0
  975. package/vendor/lodash-es/_charsEndIndex.es.js +1 -0
  976. package/vendor/lodash-es/_charsEndIndex.es.js.map +1 -0
  977. package/vendor/lodash-es/_charsStartIndex.es.js +1 -0
  978. package/vendor/lodash-es/_charsStartIndex.es.js.map +1 -0
  979. package/vendor/lodash-es/_cloneArrayBuffer.es.js +1 -0
  980. package/vendor/lodash-es/_cloneArrayBuffer.es.js.map +1 -0
  981. package/vendor/lodash-es/_cloneBuffer.es.js +1 -0
  982. package/vendor/lodash-es/_cloneBuffer.es.js.map +1 -0
  983. package/vendor/lodash-es/_cloneDataView.es.js +1 -0
  984. package/vendor/lodash-es/_cloneDataView.es.js.map +1 -0
  985. package/vendor/lodash-es/_cloneRegExp.es.js +1 -0
  986. package/vendor/lodash-es/_cloneRegExp.es.js.map +1 -0
  987. package/vendor/lodash-es/_cloneSymbol.es.js +1 -0
  988. package/vendor/lodash-es/_cloneSymbol.es.js.map +1 -0
  989. package/vendor/lodash-es/_cloneTypedArray.es.js +1 -0
  990. package/vendor/lodash-es/_cloneTypedArray.es.js.map +1 -0
  991. package/vendor/lodash-es/_compareAscending.es.js +1 -0
  992. package/vendor/lodash-es/_compareAscending.es.js.map +1 -0
  993. package/vendor/lodash-es/_compareMultiple.es.js +1 -0
  994. package/vendor/lodash-es/_compareMultiple.es.js.map +1 -0
  995. package/vendor/lodash-es/_composeArgs.es.js +1 -0
  996. package/vendor/lodash-es/_composeArgs.es.js.map +1 -0
  997. package/vendor/lodash-es/_composeArgsRight.es.js +1 -0
  998. package/vendor/lodash-es/_composeArgsRight.es.js.map +1 -0
  999. package/vendor/lodash-es/_copyArray.es.js +1 -0
  1000. package/vendor/lodash-es/_copyArray.es.js.map +1 -0
  1001. package/vendor/lodash-es/_copyObject.es.js +1 -0
  1002. package/vendor/lodash-es/_copyObject.es.js.map +1 -0
  1003. package/vendor/lodash-es/_copySymbols.es.js +1 -0
  1004. package/vendor/lodash-es/_copySymbols.es.js.map +1 -0
  1005. package/vendor/lodash-es/_copySymbolsIn.es.js +1 -0
  1006. package/vendor/lodash-es/_copySymbolsIn.es.js.map +1 -0
  1007. package/vendor/lodash-es/_coreJsData.es.js +1 -0
  1008. package/vendor/lodash-es/_coreJsData.es.js.map +1 -0
  1009. package/vendor/lodash-es/_countHolders.es.js +1 -0
  1010. package/vendor/lodash-es/_countHolders.es.js.map +1 -0
  1011. package/vendor/lodash-es/_createAggregator.es.js +1 -0
  1012. package/vendor/lodash-es/_createAggregator.es.js.map +1 -0
  1013. package/vendor/lodash-es/_createAssigner.es.js +1 -0
  1014. package/vendor/lodash-es/_createAssigner.es.js.map +1 -0
  1015. package/vendor/lodash-es/_createBaseEach.es.js +1 -0
  1016. package/vendor/lodash-es/_createBaseEach.es.js.map +1 -0
  1017. package/vendor/lodash-es/_createBaseFor.es.js +1 -0
  1018. package/vendor/lodash-es/_createBaseFor.es.js.map +1 -0
  1019. package/vendor/lodash-es/_createBind.es.js +1 -0
  1020. package/vendor/lodash-es/_createBind.es.js.map +1 -0
  1021. package/vendor/lodash-es/_createCaseFirst.es.js +1 -0
  1022. package/vendor/lodash-es/_createCaseFirst.es.js.map +1 -0
  1023. package/vendor/lodash-es/_createCompounder.es.js +1 -0
  1024. package/vendor/lodash-es/_createCompounder.es.js.map +1 -0
  1025. package/vendor/lodash-es/_createCtor.es.js +1 -0
  1026. package/vendor/lodash-es/_createCtor.es.js.map +1 -0
  1027. package/vendor/lodash-es/_createCurry.es.js +1 -0
  1028. package/vendor/lodash-es/_createCurry.es.js.map +1 -0
  1029. package/vendor/lodash-es/_createFind.es.js +1 -0
  1030. package/vendor/lodash-es/_createFind.es.js.map +1 -0
  1031. package/vendor/lodash-es/_createFlow.es.js +1 -0
  1032. package/vendor/lodash-es/_createFlow.es.js.map +1 -0
  1033. package/vendor/lodash-es/_createHybrid.es.js +1 -0
  1034. package/vendor/lodash-es/_createHybrid.es.js.map +1 -0
  1035. package/vendor/lodash-es/_createInverter.es.js +1 -0
  1036. package/vendor/lodash-es/_createInverter.es.js.map +1 -0
  1037. package/vendor/lodash-es/_createMathOperation.es.js +1 -0
  1038. package/vendor/lodash-es/_createMathOperation.es.js.map +1 -0
  1039. package/vendor/lodash-es/_createOver.es.js +1 -0
  1040. package/vendor/lodash-es/_createOver.es.js.map +1 -0
  1041. package/vendor/lodash-es/_createPadding.es.js +1 -0
  1042. package/vendor/lodash-es/_createPadding.es.js.map +1 -0
  1043. package/vendor/lodash-es/_createPartial.es.js +1 -0
  1044. package/vendor/lodash-es/_createPartial.es.js.map +1 -0
  1045. package/vendor/lodash-es/_createRange.es.js +1 -0
  1046. package/vendor/lodash-es/_createRange.es.js.map +1 -0
  1047. package/vendor/lodash-es/_createRecurry.es.js +1 -0
  1048. package/vendor/lodash-es/_createRecurry.es.js.map +1 -0
  1049. package/vendor/lodash-es/_createRelationalOperation.es.js +1 -0
  1050. package/vendor/lodash-es/_createRelationalOperation.es.js.map +1 -0
  1051. package/vendor/lodash-es/_createRound.es.js +1 -0
  1052. package/vendor/lodash-es/_createRound.es.js.map +1 -0
  1053. package/vendor/lodash-es/_createSet.es.js +1 -0
  1054. package/vendor/lodash-es/_createSet.es.js.map +1 -0
  1055. package/vendor/lodash-es/_createToPairs.es.js +1 -0
  1056. package/vendor/lodash-es/_createToPairs.es.js.map +1 -0
  1057. package/vendor/lodash-es/_createWrap.es.js +1 -0
  1058. package/vendor/lodash-es/_createWrap.es.js.map +1 -0
  1059. package/vendor/lodash-es/_customDefaultsAssignIn.es.js +1 -0
  1060. package/vendor/lodash-es/_customDefaultsAssignIn.es.js.map +1 -0
  1061. package/vendor/lodash-es/_customDefaultsMerge.es.js +1 -0
  1062. package/vendor/lodash-es/_customDefaultsMerge.es.js.map +1 -0
  1063. package/vendor/lodash-es/_customOmitClone.es.js +1 -0
  1064. package/vendor/lodash-es/_customOmitClone.es.js.map +1 -0
  1065. package/vendor/lodash-es/_deburrLetter.es.js +1 -0
  1066. package/vendor/lodash-es/_deburrLetter.es.js.map +1 -0
  1067. package/vendor/lodash-es/_defineProperty.es.js +1 -0
  1068. package/vendor/lodash-es/_defineProperty.es.js.map +1 -0
  1069. package/vendor/lodash-es/_equalArrays.es.js +1 -0
  1070. package/vendor/lodash-es/_equalArrays.es.js.map +1 -0
  1071. package/vendor/lodash-es/_equalByTag.es.js +1 -0
  1072. package/vendor/lodash-es/_equalByTag.es.js.map +1 -0
  1073. package/vendor/lodash-es/_equalObjects.es.js +1 -0
  1074. package/vendor/lodash-es/_equalObjects.es.js.map +1 -0
  1075. package/vendor/lodash-es/_escapeHtmlChar.es.js +1 -0
  1076. package/vendor/lodash-es/_escapeHtmlChar.es.js.map +1 -0
  1077. package/vendor/lodash-es/_escapeStringChar.es.js +1 -0
  1078. package/vendor/lodash-es/_escapeStringChar.es.js.map +1 -0
  1079. package/vendor/lodash-es/_flatRest.es.js +1 -0
  1080. package/vendor/lodash-es/_flatRest.es.js.map +1 -0
  1081. package/vendor/lodash-es/_freeGlobal.es.js +1 -0
  1082. package/vendor/lodash-es/_freeGlobal.es.js.map +1 -0
  1083. package/vendor/lodash-es/_getAllKeys.es.js +1 -0
  1084. package/vendor/lodash-es/_getAllKeys.es.js.map +1 -0
  1085. package/vendor/lodash-es/_getAllKeysIn.es.js +1 -0
  1086. package/vendor/lodash-es/_getAllKeysIn.es.js.map +1 -0
  1087. package/vendor/lodash-es/_getData.es.js +1 -0
  1088. package/vendor/lodash-es/_getData.es.js.map +1 -0
  1089. package/vendor/lodash-es/_getFuncName.es.js +1 -0
  1090. package/vendor/lodash-es/_getFuncName.es.js.map +1 -0
  1091. package/vendor/lodash-es/_getHolder.es.js +1 -0
  1092. package/vendor/lodash-es/_getHolder.es.js.map +1 -0
  1093. package/vendor/lodash-es/_getMapData.es.js +1 -0
  1094. package/vendor/lodash-es/_getMapData.es.js.map +1 -0
  1095. package/vendor/lodash-es/_getMatchData.es.js +1 -0
  1096. package/vendor/lodash-es/_getMatchData.es.js.map +1 -0
  1097. package/vendor/lodash-es/_getNative.es.js +1 -0
  1098. package/vendor/lodash-es/_getNative.es.js.map +1 -0
  1099. package/vendor/lodash-es/_getPrototype.es.js +1 -0
  1100. package/vendor/lodash-es/_getPrototype.es.js.map +1 -0
  1101. package/vendor/lodash-es/_getRawTag.es.js +1 -0
  1102. package/vendor/lodash-es/_getRawTag.es.js.map +1 -0
  1103. package/vendor/lodash-es/_getSymbols.es.js +1 -0
  1104. package/vendor/lodash-es/_getSymbols.es.js.map +1 -0
  1105. package/vendor/lodash-es/_getSymbolsIn.es.js +1 -0
  1106. package/vendor/lodash-es/_getSymbolsIn.es.js.map +1 -0
  1107. package/vendor/lodash-es/_getTag.es.js +1 -0
  1108. package/vendor/lodash-es/_getTag.es.js.map +1 -0
  1109. package/vendor/lodash-es/_getValue.es.js +1 -0
  1110. package/vendor/lodash-es/_getValue.es.js.map +1 -0
  1111. package/vendor/lodash-es/_getView.es.js +1 -0
  1112. package/vendor/lodash-es/_getView.es.js.map +1 -0
  1113. package/vendor/lodash-es/_getWrapDetails.es.js +1 -0
  1114. package/vendor/lodash-es/_getWrapDetails.es.js.map +1 -0
  1115. package/vendor/lodash-es/_hasPath.es.js +1 -0
  1116. package/vendor/lodash-es/_hasPath.es.js.map +1 -0
  1117. package/vendor/lodash-es/_hasUnicode.es.js +1 -0
  1118. package/vendor/lodash-es/_hasUnicode.es.js.map +1 -0
  1119. package/vendor/lodash-es/_hasUnicodeWord.es.js +1 -0
  1120. package/vendor/lodash-es/_hasUnicodeWord.es.js.map +1 -0
  1121. package/vendor/lodash-es/_hashClear.es.js +1 -0
  1122. package/vendor/lodash-es/_hashClear.es.js.map +1 -0
  1123. package/vendor/lodash-es/_hashDelete.es.js +1 -0
  1124. package/vendor/lodash-es/_hashDelete.es.js.map +1 -0
  1125. package/vendor/lodash-es/_hashGet.es.js +1 -0
  1126. package/vendor/lodash-es/_hashGet.es.js.map +1 -0
  1127. package/vendor/lodash-es/_hashHas.es.js +1 -0
  1128. package/vendor/lodash-es/_hashHas.es.js.map +1 -0
  1129. package/vendor/lodash-es/_hashSet.es.js +1 -0
  1130. package/vendor/lodash-es/_hashSet.es.js.map +1 -0
  1131. package/vendor/lodash-es/_initCloneArray.es.js +1 -0
  1132. package/vendor/lodash-es/_initCloneArray.es.js.map +1 -0
  1133. package/vendor/lodash-es/_initCloneByTag.es.js +1 -0
  1134. package/vendor/lodash-es/_initCloneByTag.es.js.map +1 -0
  1135. package/vendor/lodash-es/_initCloneObject.es.js +1 -0
  1136. package/vendor/lodash-es/_initCloneObject.es.js.map +1 -0
  1137. package/vendor/lodash-es/_insertWrapDetails.es.js +1 -0
  1138. package/vendor/lodash-es/_insertWrapDetails.es.js.map +1 -0
  1139. package/vendor/lodash-es/_isFlattenable.es.js +1 -0
  1140. package/vendor/lodash-es/_isFlattenable.es.js.map +1 -0
  1141. package/vendor/lodash-es/_isIndex.es.js +1 -0
  1142. package/vendor/lodash-es/_isIndex.es.js.map +1 -0
  1143. package/vendor/lodash-es/_isIterateeCall.es.js +1 -0
  1144. package/vendor/lodash-es/_isIterateeCall.es.js.map +1 -0
  1145. package/vendor/lodash-es/_isKey.es.js +1 -0
  1146. package/vendor/lodash-es/_isKey.es.js.map +1 -0
  1147. package/vendor/lodash-es/_isKeyable.es.js +1 -0
  1148. package/vendor/lodash-es/_isKeyable.es.js.map +1 -0
  1149. package/vendor/lodash-es/_isLaziable.es.js +1 -0
  1150. package/vendor/lodash-es/_isLaziable.es.js.map +1 -0
  1151. package/vendor/lodash-es/_isMaskable.es.js +1 -0
  1152. package/vendor/lodash-es/_isMaskable.es.js.map +1 -0
  1153. package/vendor/lodash-es/_isMasked.es.js +1 -0
  1154. package/vendor/lodash-es/_isMasked.es.js.map +1 -0
  1155. package/vendor/lodash-es/_isPrototype.es.js +1 -0
  1156. package/vendor/lodash-es/_isPrototype.es.js.map +1 -0
  1157. package/vendor/lodash-es/_isStrictComparable.es.js +1 -0
  1158. package/vendor/lodash-es/_isStrictComparable.es.js.map +1 -0
  1159. package/vendor/lodash-es/_iteratorToArray.es.js +1 -0
  1160. package/vendor/lodash-es/_iteratorToArray.es.js.map +1 -0
  1161. package/vendor/lodash-es/_lazyClone.es.js +1 -0
  1162. package/vendor/lodash-es/_lazyClone.es.js.map +1 -0
  1163. package/vendor/lodash-es/_lazyReverse.es.js +1 -0
  1164. package/vendor/lodash-es/_lazyReverse.es.js.map +1 -0
  1165. package/vendor/lodash-es/_lazyValue.es.js +1 -0
  1166. package/vendor/lodash-es/_lazyValue.es.js.map +1 -0
  1167. package/vendor/lodash-es/_listCacheClear.es.js +1 -0
  1168. package/vendor/lodash-es/_listCacheClear.es.js.map +1 -0
  1169. package/vendor/lodash-es/_listCacheDelete.es.js +1 -0
  1170. package/vendor/lodash-es/_listCacheDelete.es.js.map +1 -0
  1171. package/vendor/lodash-es/_listCacheGet.es.js +1 -0
  1172. package/vendor/lodash-es/_listCacheGet.es.js.map +1 -0
  1173. package/vendor/lodash-es/_listCacheHas.es.js +1 -0
  1174. package/vendor/lodash-es/_listCacheHas.es.js.map +1 -0
  1175. package/vendor/lodash-es/_listCacheSet.es.js +1 -0
  1176. package/vendor/lodash-es/_listCacheSet.es.js.map +1 -0
  1177. package/vendor/lodash-es/_mapCacheClear.es.js +1 -0
  1178. package/vendor/lodash-es/_mapCacheClear.es.js.map +1 -0
  1179. package/vendor/lodash-es/_mapCacheDelete.es.js +1 -0
  1180. package/vendor/lodash-es/_mapCacheDelete.es.js.map +1 -0
  1181. package/vendor/lodash-es/_mapCacheGet.es.js +1 -0
  1182. package/vendor/lodash-es/_mapCacheGet.es.js.map +1 -0
  1183. package/vendor/lodash-es/_mapCacheHas.es.js +1 -0
  1184. package/vendor/lodash-es/_mapCacheHas.es.js.map +1 -0
  1185. package/vendor/lodash-es/_mapCacheSet.es.js +1 -0
  1186. package/vendor/lodash-es/_mapCacheSet.es.js.map +1 -0
  1187. package/vendor/lodash-es/_mapToArray.es.js +1 -0
  1188. package/vendor/lodash-es/_mapToArray.es.js.map +1 -0
  1189. package/vendor/lodash-es/_matchesStrictComparable.es.js +1 -0
  1190. package/vendor/lodash-es/_matchesStrictComparable.es.js.map +1 -0
  1191. package/vendor/lodash-es/_memoizeCapped.es.js +1 -0
  1192. package/vendor/lodash-es/_memoizeCapped.es.js.map +1 -0
  1193. package/vendor/lodash-es/_mergeData.es.js +1 -0
  1194. package/vendor/lodash-es/_mergeData.es.js.map +1 -0
  1195. package/vendor/lodash-es/_metaMap.es.js +1 -0
  1196. package/vendor/lodash-es/_metaMap.es.js.map +1 -0
  1197. package/vendor/lodash-es/_nativeCreate.es.js +1 -0
  1198. package/vendor/lodash-es/_nativeCreate.es.js.map +1 -0
  1199. package/vendor/lodash-es/_nativeKeys.es.js +1 -0
  1200. package/vendor/lodash-es/_nativeKeys.es.js.map +1 -0
  1201. package/vendor/lodash-es/_nativeKeysIn.es.js +1 -0
  1202. package/vendor/lodash-es/_nativeKeysIn.es.js.map +1 -0
  1203. package/vendor/lodash-es/_nodeUtil.es.js +1 -0
  1204. package/vendor/lodash-es/_nodeUtil.es.js.map +1 -0
  1205. package/vendor/lodash-es/_objectToString.es.js +1 -0
  1206. package/vendor/lodash-es/_objectToString.es.js.map +1 -0
  1207. package/vendor/lodash-es/_overArg.es.js +1 -0
  1208. package/vendor/lodash-es/_overArg.es.js.map +1 -0
  1209. package/vendor/lodash-es/_overRest.es.js +1 -0
  1210. package/vendor/lodash-es/_overRest.es.js.map +1 -0
  1211. package/vendor/lodash-es/_parent.es.js +1 -0
  1212. package/vendor/lodash-es/_parent.es.js.map +1 -0
  1213. package/vendor/lodash-es/_reEscape.es.js +1 -0
  1214. package/vendor/lodash-es/_reEscape.es.js.map +1 -0
  1215. package/vendor/lodash-es/_reEvaluate.es.js +1 -0
  1216. package/vendor/lodash-es/_reEvaluate.es.js.map +1 -0
  1217. package/vendor/lodash-es/_reInterpolate.es.js +1 -0
  1218. package/vendor/lodash-es/_reInterpolate.es.js.map +1 -0
  1219. package/vendor/lodash-es/_realNames.es.js +1 -0
  1220. package/vendor/lodash-es/_realNames.es.js.map +1 -0
  1221. package/vendor/lodash-es/_reorder.es.js +1 -0
  1222. package/vendor/lodash-es/_reorder.es.js.map +1 -0
  1223. package/vendor/lodash-es/_replaceHolders.es.js +1 -0
  1224. package/vendor/lodash-es/_replaceHolders.es.js.map +1 -0
  1225. package/vendor/lodash-es/_root.es.js +1 -0
  1226. package/vendor/lodash-es/_root.es.js.map +1 -0
  1227. package/vendor/lodash-es/_safeGet.es.js +1 -0
  1228. package/vendor/lodash-es/_safeGet.es.js.map +1 -0
  1229. package/vendor/lodash-es/_setCacheAdd.es.js +1 -0
  1230. package/vendor/lodash-es/_setCacheAdd.es.js.map +1 -0
  1231. package/vendor/lodash-es/_setCacheHas.es.js +1 -0
  1232. package/vendor/lodash-es/_setCacheHas.es.js.map +1 -0
  1233. package/vendor/lodash-es/_setData.es.js +1 -0
  1234. package/vendor/lodash-es/_setData.es.js.map +1 -0
  1235. package/vendor/lodash-es/_setToArray.es.js +1 -0
  1236. package/vendor/lodash-es/_setToArray.es.js.map +1 -0
  1237. package/vendor/lodash-es/_setToPairs.es.js +1 -0
  1238. package/vendor/lodash-es/_setToPairs.es.js.map +1 -0
  1239. package/vendor/lodash-es/_setToString.es.js +1 -0
  1240. package/vendor/lodash-es/_setToString.es.js.map +1 -0
  1241. package/vendor/lodash-es/_setWrapToString.es.js +1 -0
  1242. package/vendor/lodash-es/_setWrapToString.es.js.map +1 -0
  1243. package/vendor/lodash-es/_shortOut.es.js +1 -0
  1244. package/vendor/lodash-es/_shortOut.es.js.map +1 -0
  1245. package/vendor/lodash-es/_shuffleSelf.es.js +1 -0
  1246. package/vendor/lodash-es/_shuffleSelf.es.js.map +1 -0
  1247. package/vendor/lodash-es/_stackClear.es.js +1 -0
  1248. package/vendor/lodash-es/_stackClear.es.js.map +1 -0
  1249. package/vendor/lodash-es/_stackDelete.es.js +1 -0
  1250. package/vendor/lodash-es/_stackDelete.es.js.map +1 -0
  1251. package/vendor/lodash-es/_stackGet.es.js +1 -0
  1252. package/vendor/lodash-es/_stackGet.es.js.map +1 -0
  1253. package/vendor/lodash-es/_stackHas.es.js +1 -0
  1254. package/vendor/lodash-es/_stackHas.es.js.map +1 -0
  1255. package/vendor/lodash-es/_stackSet.es.js +1 -0
  1256. package/vendor/lodash-es/_stackSet.es.js.map +1 -0
  1257. package/vendor/lodash-es/_strictIndexOf.es.js +1 -0
  1258. package/vendor/lodash-es/_strictIndexOf.es.js.map +1 -0
  1259. package/vendor/lodash-es/_strictLastIndexOf.es.js +1 -0
  1260. package/vendor/lodash-es/_strictLastIndexOf.es.js.map +1 -0
  1261. package/vendor/lodash-es/_stringSize.es.js +1 -0
  1262. package/vendor/lodash-es/_stringSize.es.js.map +1 -0
  1263. package/vendor/lodash-es/_stringToArray.es.js +1 -0
  1264. package/vendor/lodash-es/_stringToArray.es.js.map +1 -0
  1265. package/vendor/lodash-es/_stringToPath.es.js +1 -0
  1266. package/vendor/lodash-es/_stringToPath.es.js.map +1 -0
  1267. package/vendor/lodash-es/_toKey.es.js +1 -0
  1268. package/vendor/lodash-es/_toKey.es.js.map +1 -0
  1269. package/vendor/lodash-es/_toSource.es.js +1 -0
  1270. package/vendor/lodash-es/_toSource.es.js.map +1 -0
  1271. package/vendor/lodash-es/_trimmedEndIndex.es.js +1 -0
  1272. package/vendor/lodash-es/_trimmedEndIndex.es.js.map +1 -0
  1273. package/vendor/lodash-es/_unescapeHtmlChar.es.js +1 -0
  1274. package/vendor/lodash-es/_unescapeHtmlChar.es.js.map +1 -0
  1275. package/vendor/lodash-es/_unicodeSize.es.js +1 -0
  1276. package/vendor/lodash-es/_unicodeSize.es.js.map +1 -0
  1277. package/vendor/lodash-es/_unicodeToArray.es.js +1 -0
  1278. package/vendor/lodash-es/_unicodeToArray.es.js.map +1 -0
  1279. package/vendor/lodash-es/_unicodeWords.es.js +1 -0
  1280. package/vendor/lodash-es/_unicodeWords.es.js.map +1 -0
  1281. package/vendor/lodash-es/_updateWrapDetails.es.js +1 -0
  1282. package/vendor/lodash-es/_updateWrapDetails.es.js.map +1 -0
  1283. package/vendor/lodash-es/_wrapperClone.es.js +1 -0
  1284. package/vendor/lodash-es/_wrapperClone.es.js.map +1 -0
  1285. package/vendor/lodash-es/add.es.js +1 -0
  1286. package/vendor/lodash-es/add.es.js.map +1 -0
  1287. package/vendor/lodash-es/after.es.js +1 -0
  1288. package/vendor/lodash-es/after.es.js.map +1 -0
  1289. package/vendor/lodash-es/array.default.es.js +1 -0
  1290. package/vendor/lodash-es/array.default.es.js.map +1 -0
  1291. package/vendor/lodash-es/array.es.js +1 -0
  1292. package/vendor/lodash-es/array.es.js.map +1 -0
  1293. package/vendor/lodash-es/ary.es.js +1 -0
  1294. package/vendor/lodash-es/ary.es.js.map +1 -0
  1295. package/vendor/lodash-es/assign.es.js +1 -0
  1296. package/vendor/lodash-es/assign.es.js.map +1 -0
  1297. package/vendor/lodash-es/assignIn.es.js +1 -0
  1298. package/vendor/lodash-es/assignIn.es.js.map +1 -0
  1299. package/vendor/lodash-es/assignInWith.es.js +1 -0
  1300. package/vendor/lodash-es/assignInWith.es.js.map +1 -0
  1301. package/vendor/lodash-es/assignWith.es.js +1 -0
  1302. package/vendor/lodash-es/assignWith.es.js.map +1 -0
  1303. package/vendor/lodash-es/at.es.js +1 -0
  1304. package/vendor/lodash-es/at.es.js.map +1 -0
  1305. package/vendor/lodash-es/attempt.es.js +1 -0
  1306. package/vendor/lodash-es/attempt.es.js.map +1 -0
  1307. package/vendor/lodash-es/before.es.js +1 -0
  1308. package/vendor/lodash-es/before.es.js.map +1 -0
  1309. package/vendor/lodash-es/bind.es.js +1 -0
  1310. package/vendor/lodash-es/bind.es.js.map +1 -0
  1311. package/vendor/lodash-es/bindAll.es.js +1 -0
  1312. package/vendor/lodash-es/bindAll.es.js.map +1 -0
  1313. package/vendor/lodash-es/bindKey.es.js +1 -0
  1314. package/vendor/lodash-es/bindKey.es.js.map +1 -0
  1315. package/vendor/lodash-es/camelCase.es.js +1 -0
  1316. package/vendor/lodash-es/camelCase.es.js.map +1 -0
  1317. package/vendor/lodash-es/capitalize.es.js +1 -0
  1318. package/vendor/lodash-es/capitalize.es.js.map +1 -0
  1319. package/vendor/lodash-es/castArray.es.js +1 -0
  1320. package/vendor/lodash-es/castArray.es.js.map +1 -0
  1321. package/vendor/lodash-es/ceil.es.js +1 -0
  1322. package/vendor/lodash-es/ceil.es.js.map +1 -0
  1323. package/vendor/lodash-es/chain.es.js +1 -0
  1324. package/vendor/lodash-es/chain.es.js.map +1 -0
  1325. package/vendor/lodash-es/chunk.es.js +1 -0
  1326. package/vendor/lodash-es/chunk.es.js.map +1 -0
  1327. package/vendor/lodash-es/clamp.es.js +1 -0
  1328. package/vendor/lodash-es/clamp.es.js.map +1 -0
  1329. package/vendor/lodash-es/clone.es.js +1 -0
  1330. package/vendor/lodash-es/clone.es.js.map +1 -0
  1331. package/vendor/lodash-es/cloneDeep.es.js +1 -0
  1332. package/vendor/lodash-es/cloneDeep.es.js.map +1 -0
  1333. package/vendor/lodash-es/cloneDeepWith.es.js +1 -0
  1334. package/vendor/lodash-es/cloneDeepWith.es.js.map +1 -0
  1335. package/vendor/lodash-es/cloneWith.es.js +1 -0
  1336. package/vendor/lodash-es/cloneWith.es.js.map +1 -0
  1337. package/vendor/lodash-es/collection.default.es.js +1 -0
  1338. package/vendor/lodash-es/collection.default.es.js.map +1 -0
  1339. package/vendor/lodash-es/collection.es.js +1 -0
  1340. package/vendor/lodash-es/collection.es.js.map +1 -0
  1341. package/vendor/lodash-es/commit.es.js +1 -0
  1342. package/vendor/lodash-es/commit.es.js.map +1 -0
  1343. package/vendor/lodash-es/compact.es.js +1 -0
  1344. package/vendor/lodash-es/compact.es.js.map +1 -0
  1345. package/vendor/lodash-es/concat.es.js +1 -0
  1346. package/vendor/lodash-es/concat.es.js.map +1 -0
  1347. package/vendor/lodash-es/cond.es.js +1 -0
  1348. package/vendor/lodash-es/cond.es.js.map +1 -0
  1349. package/vendor/lodash-es/conforms.es.js +1 -0
  1350. package/vendor/lodash-es/conforms.es.js.map +1 -0
  1351. package/vendor/lodash-es/conformsTo.es.js +1 -0
  1352. package/vendor/lodash-es/conformsTo.es.js.map +1 -0
  1353. package/vendor/lodash-es/constant.es.js +1 -0
  1354. package/vendor/lodash-es/constant.es.js.map +1 -0
  1355. package/vendor/lodash-es/countBy.es.js +1 -0
  1356. package/vendor/lodash-es/countBy.es.js.map +1 -0
  1357. package/vendor/lodash-es/create.es.js +1 -0
  1358. package/vendor/lodash-es/create.es.js.map +1 -0
  1359. package/vendor/lodash-es/curry.es.js +1 -0
  1360. package/vendor/lodash-es/curry.es.js.map +1 -0
  1361. package/vendor/lodash-es/curryRight.es.js +1 -0
  1362. package/vendor/lodash-es/curryRight.es.js.map +1 -0
  1363. package/vendor/lodash-es/date.default.es.js +1 -0
  1364. package/vendor/lodash-es/date.default.es.js.map +1 -0
  1365. package/vendor/lodash-es/date.es.js +1 -0
  1366. package/vendor/lodash-es/date.es.js.map +1 -0
  1367. package/vendor/lodash-es/debounce.es.js +1 -0
  1368. package/vendor/lodash-es/debounce.es.js.map +1 -0
  1369. package/vendor/lodash-es/deburr.es.js +1 -0
  1370. package/vendor/lodash-es/deburr.es.js.map +1 -0
  1371. package/vendor/lodash-es/defaultTo.es.js +1 -0
  1372. package/vendor/lodash-es/defaultTo.es.js.map +1 -0
  1373. package/vendor/lodash-es/defaults.es.js +1 -0
  1374. package/vendor/lodash-es/defaults.es.js.map +1 -0
  1375. package/vendor/lodash-es/defaultsDeep.es.js +1 -0
  1376. package/vendor/lodash-es/defaultsDeep.es.js.map +1 -0
  1377. package/vendor/lodash-es/defer.es.js +1 -0
  1378. package/vendor/lodash-es/defer.es.js.map +1 -0
  1379. package/vendor/lodash-es/delay.es.js +1 -0
  1380. package/vendor/lodash-es/delay.es.js.map +1 -0
  1381. package/vendor/lodash-es/difference.es.js +1 -0
  1382. package/vendor/lodash-es/difference.es.js.map +1 -0
  1383. package/vendor/lodash-es/differenceBy.es.js +1 -0
  1384. package/vendor/lodash-es/differenceBy.es.js.map +1 -0
  1385. package/vendor/lodash-es/differenceWith.es.js +1 -0
  1386. package/vendor/lodash-es/differenceWith.es.js.map +1 -0
  1387. package/vendor/lodash-es/divide.es.js +1 -0
  1388. package/vendor/lodash-es/divide.es.js.map +1 -0
  1389. package/vendor/lodash-es/drop.es.js +1 -0
  1390. package/vendor/lodash-es/drop.es.js.map +1 -0
  1391. package/vendor/lodash-es/dropRight.es.js +1 -0
  1392. package/vendor/lodash-es/dropRight.es.js.map +1 -0
  1393. package/vendor/lodash-es/dropRightWhile.es.js +1 -0
  1394. package/vendor/lodash-es/dropRightWhile.es.js.map +1 -0
  1395. package/vendor/lodash-es/dropWhile.es.js +1 -0
  1396. package/vendor/lodash-es/dropWhile.es.js.map +1 -0
  1397. package/vendor/lodash-es/each.es.js +1 -0
  1398. package/vendor/lodash-es/each.es.js.map +1 -0
  1399. package/vendor/lodash-es/eachRight.es.js +1 -0
  1400. package/vendor/lodash-es/eachRight.es.js.map +1 -0
  1401. package/vendor/lodash-es/endsWith.es.js +1 -0
  1402. package/vendor/lodash-es/endsWith.es.js.map +1 -0
  1403. package/vendor/lodash-es/entries.es.js +1 -0
  1404. package/vendor/lodash-es/entries.es.js.map +1 -0
  1405. package/vendor/lodash-es/entriesIn.es.js +1 -0
  1406. package/vendor/lodash-es/entriesIn.es.js.map +1 -0
  1407. package/vendor/lodash-es/eq.es.js +1 -0
  1408. package/vendor/lodash-es/eq.es.js.map +1 -0
  1409. package/vendor/lodash-es/escape.es.js +1 -0
  1410. package/vendor/lodash-es/escape.es.js.map +1 -0
  1411. package/vendor/lodash-es/escapeRegExp.es.js +1 -0
  1412. package/vendor/lodash-es/escapeRegExp.es.js.map +1 -0
  1413. package/vendor/lodash-es/every.es.js +1 -0
  1414. package/vendor/lodash-es/every.es.js.map +1 -0
  1415. package/vendor/lodash-es/extend.es.js +1 -0
  1416. package/vendor/lodash-es/extend.es.js.map +1 -0
  1417. package/vendor/lodash-es/extendWith.es.js +1 -0
  1418. package/vendor/lodash-es/extendWith.es.js.map +1 -0
  1419. package/vendor/lodash-es/fill.es.js +1 -0
  1420. package/vendor/lodash-es/fill.es.js.map +1 -0
  1421. package/vendor/lodash-es/filter.es.js +1 -0
  1422. package/vendor/lodash-es/filter.es.js.map +1 -0
  1423. package/vendor/lodash-es/find.es.js +1 -0
  1424. package/vendor/lodash-es/find.es.js.map +1 -0
  1425. package/vendor/lodash-es/findIndex.es.js +1 -0
  1426. package/vendor/lodash-es/findIndex.es.js.map +1 -0
  1427. package/vendor/lodash-es/findKey.es.js +1 -0
  1428. package/vendor/lodash-es/findKey.es.js.map +1 -0
  1429. package/vendor/lodash-es/findLast.es.js +1 -0
  1430. package/vendor/lodash-es/findLast.es.js.map +1 -0
  1431. package/vendor/lodash-es/findLastIndex.es.js +1 -0
  1432. package/vendor/lodash-es/findLastIndex.es.js.map +1 -0
  1433. package/vendor/lodash-es/findLastKey.es.js +1 -0
  1434. package/vendor/lodash-es/findLastKey.es.js.map +1 -0
  1435. package/vendor/lodash-es/first.es.js +1 -0
  1436. package/vendor/lodash-es/first.es.js.map +1 -0
  1437. package/vendor/lodash-es/flatMap.es.js +1 -0
  1438. package/vendor/lodash-es/flatMap.es.js.map +1 -0
  1439. package/vendor/lodash-es/flatMapDeep.es.js +1 -0
  1440. package/vendor/lodash-es/flatMapDeep.es.js.map +1 -0
  1441. package/vendor/lodash-es/flatMapDepth.es.js +1 -0
  1442. package/vendor/lodash-es/flatMapDepth.es.js.map +1 -0
  1443. package/vendor/lodash-es/flatten.es.js +1 -0
  1444. package/vendor/lodash-es/flatten.es.js.map +1 -0
  1445. package/vendor/lodash-es/flattenDeep.es.js +1 -0
  1446. package/vendor/lodash-es/flattenDeep.es.js.map +1 -0
  1447. package/vendor/lodash-es/flattenDepth.es.js +1 -0
  1448. package/vendor/lodash-es/flattenDepth.es.js.map +1 -0
  1449. package/vendor/lodash-es/flip.es.js +1 -0
  1450. package/vendor/lodash-es/flip.es.js.map +1 -0
  1451. package/vendor/lodash-es/floor.es.js +1 -0
  1452. package/vendor/lodash-es/floor.es.js.map +1 -0
  1453. package/vendor/lodash-es/flow.es.js +1 -0
  1454. package/vendor/lodash-es/flow.es.js.map +1 -0
  1455. package/vendor/lodash-es/flowRight.es.js +1 -0
  1456. package/vendor/lodash-es/flowRight.es.js.map +1 -0
  1457. package/vendor/lodash-es/forEach.es.js +1 -0
  1458. package/vendor/lodash-es/forEach.es.js.map +1 -0
  1459. package/vendor/lodash-es/forEachRight.es.js +1 -0
  1460. package/vendor/lodash-es/forEachRight.es.js.map +1 -0
  1461. package/vendor/lodash-es/forIn.es.js +1 -0
  1462. package/vendor/lodash-es/forIn.es.js.map +1 -0
  1463. package/vendor/lodash-es/forInRight.es.js +1 -0
  1464. package/vendor/lodash-es/forInRight.es.js.map +1 -0
  1465. package/vendor/lodash-es/forOwn.es.js +1 -0
  1466. package/vendor/lodash-es/forOwn.es.js.map +1 -0
  1467. package/vendor/lodash-es/forOwnRight.es.js +1 -0
  1468. package/vendor/lodash-es/forOwnRight.es.js.map +1 -0
  1469. package/vendor/lodash-es/fromPairs.es.js +1 -0
  1470. package/vendor/lodash-es/fromPairs.es.js.map +1 -0
  1471. package/vendor/lodash-es/function.default.es.js +1 -0
  1472. package/vendor/lodash-es/function.default.es.js.map +1 -0
  1473. package/vendor/lodash-es/function.es.js +1 -0
  1474. package/vendor/lodash-es/function.es.js.map +1 -0
  1475. package/vendor/lodash-es/functions.es.js +1 -0
  1476. package/vendor/lodash-es/functions.es.js.map +1 -0
  1477. package/vendor/lodash-es/functionsIn.es.js +1 -0
  1478. package/vendor/lodash-es/functionsIn.es.js.map +1 -0
  1479. package/vendor/lodash-es/get.es.js +1 -0
  1480. package/vendor/lodash-es/get.es.js.map +1 -0
  1481. package/vendor/lodash-es/groupBy.es.js +1 -0
  1482. package/vendor/lodash-es/groupBy.es.js.map +1 -0
  1483. package/vendor/lodash-es/gt.es.js +1 -0
  1484. package/vendor/lodash-es/gt.es.js.map +1 -0
  1485. package/vendor/lodash-es/gte.es.js +1 -0
  1486. package/vendor/lodash-es/gte.es.js.map +1 -0
  1487. package/vendor/lodash-es/has.es.js +1 -0
  1488. package/vendor/lodash-es/has.es.js.map +1 -0
  1489. package/vendor/lodash-es/hasIn.es.js +1 -0
  1490. package/vendor/lodash-es/hasIn.es.js.map +1 -0
  1491. package/vendor/lodash-es/head.es.js +1 -0
  1492. package/vendor/lodash-es/head.es.js.map +1 -0
  1493. package/vendor/lodash-es/identity.es.js +1 -0
  1494. package/vendor/lodash-es/identity.es.js.map +1 -0
  1495. package/vendor/lodash-es/inRange.es.js +1 -0
  1496. package/vendor/lodash-es/inRange.es.js.map +1 -0
  1497. package/vendor/lodash-es/includes.es.js +1 -0
  1498. package/vendor/lodash-es/includes.es.js.map +1 -0
  1499. package/vendor/lodash-es/indexOf.es.js +1 -0
  1500. package/vendor/lodash-es/indexOf.es.js.map +1 -0
  1501. package/vendor/lodash-es/initial.es.js +1 -0
  1502. package/vendor/lodash-es/initial.es.js.map +1 -0
  1503. package/vendor/lodash-es/intersection.es.js +1 -0
  1504. package/vendor/lodash-es/intersection.es.js.map +1 -0
  1505. package/vendor/lodash-es/intersectionBy.es.js +1 -0
  1506. package/vendor/lodash-es/intersectionBy.es.js.map +1 -0
  1507. package/vendor/lodash-es/intersectionWith.es.js +1 -0
  1508. package/vendor/lodash-es/intersectionWith.es.js.map +1 -0
  1509. package/vendor/lodash-es/invert.es.js +1 -0
  1510. package/vendor/lodash-es/invert.es.js.map +1 -0
  1511. package/vendor/lodash-es/invertBy.es.js +1 -0
  1512. package/vendor/lodash-es/invertBy.es.js.map +1 -0
  1513. package/vendor/lodash-es/invoke.es.js +1 -0
  1514. package/vendor/lodash-es/invoke.es.js.map +1 -0
  1515. package/vendor/lodash-es/invokeMap.es.js +1 -0
  1516. package/vendor/lodash-es/invokeMap.es.js.map +1 -0
  1517. package/vendor/lodash-es/isArguments.es.js +1 -0
  1518. package/vendor/lodash-es/isArguments.es.js.map +1 -0
  1519. package/vendor/lodash-es/isArray.es.js +1 -0
  1520. package/vendor/lodash-es/isArray.es.js.map +1 -0
  1521. package/vendor/lodash-es/isArrayBuffer.es.js +1 -0
  1522. package/vendor/lodash-es/isArrayBuffer.es.js.map +1 -0
  1523. package/vendor/lodash-es/isArrayLike.es.js +1 -0
  1524. package/vendor/lodash-es/isArrayLike.es.js.map +1 -0
  1525. package/vendor/lodash-es/isArrayLikeObject.es.js +1 -0
  1526. package/vendor/lodash-es/isArrayLikeObject.es.js.map +1 -0
  1527. package/vendor/lodash-es/isBoolean.es.js +1 -0
  1528. package/vendor/lodash-es/isBoolean.es.js.map +1 -0
  1529. package/vendor/lodash-es/isBuffer.es.js +1 -0
  1530. package/vendor/lodash-es/isBuffer.es.js.map +1 -0
  1531. package/vendor/lodash-es/isDate.es.js +1 -0
  1532. package/vendor/lodash-es/isDate.es.js.map +1 -0
  1533. package/vendor/lodash-es/isElement.es.js +1 -0
  1534. package/vendor/lodash-es/isElement.es.js.map +1 -0
  1535. package/vendor/lodash-es/isEmpty.es.js +1 -0
  1536. package/vendor/lodash-es/isEmpty.es.js.map +1 -0
  1537. package/vendor/lodash-es/isEqual.es.js +1 -0
  1538. package/vendor/lodash-es/isEqual.es.js.map +1 -0
  1539. package/vendor/lodash-es/isEqualWith.es.js +1 -0
  1540. package/vendor/lodash-es/isEqualWith.es.js.map +1 -0
  1541. package/vendor/lodash-es/isError.es.js +1 -0
  1542. package/vendor/lodash-es/isError.es.js.map +1 -0
  1543. package/vendor/lodash-es/isFinite.es.js +1 -0
  1544. package/vendor/lodash-es/isFinite.es.js.map +1 -0
  1545. package/vendor/lodash-es/isFunction.es.js +1 -0
  1546. package/vendor/lodash-es/isFunction.es.js.map +1 -0
  1547. package/vendor/lodash-es/isInteger.es.js +1 -0
  1548. package/vendor/lodash-es/isInteger.es.js.map +1 -0
  1549. package/vendor/lodash-es/isLength.es.js +1 -0
  1550. package/vendor/lodash-es/isLength.es.js.map +1 -0
  1551. package/vendor/lodash-es/isMap.es.js +1 -0
  1552. package/vendor/lodash-es/isMap.es.js.map +1 -0
  1553. package/vendor/lodash-es/isMatch.es.js +1 -0
  1554. package/vendor/lodash-es/isMatch.es.js.map +1 -0
  1555. package/vendor/lodash-es/isMatchWith.es.js +1 -0
  1556. package/vendor/lodash-es/isMatchWith.es.js.map +1 -0
  1557. package/vendor/lodash-es/isNaN.es.js +1 -0
  1558. package/vendor/lodash-es/isNaN.es.js.map +1 -0
  1559. package/vendor/lodash-es/isNative.es.js +1 -0
  1560. package/vendor/lodash-es/isNative.es.js.map +1 -0
  1561. package/vendor/lodash-es/isNil.es.js +1 -0
  1562. package/vendor/lodash-es/isNil.es.js.map +1 -0
  1563. package/vendor/lodash-es/isNull.es.js +1 -0
  1564. package/vendor/lodash-es/isNull.es.js.map +1 -0
  1565. package/vendor/lodash-es/isNumber.es.js +1 -0
  1566. package/vendor/lodash-es/isNumber.es.js.map +1 -0
  1567. package/vendor/lodash-es/isObject.es.js +1 -0
  1568. package/vendor/lodash-es/isObject.es.js.map +1 -0
  1569. package/vendor/lodash-es/isObjectLike.es.js +1 -0
  1570. package/vendor/lodash-es/isObjectLike.es.js.map +1 -0
  1571. package/vendor/lodash-es/isPlainObject.es.js +1 -0
  1572. package/vendor/lodash-es/isPlainObject.es.js.map +1 -0
  1573. package/vendor/lodash-es/isRegExp.es.js +1 -0
  1574. package/vendor/lodash-es/isRegExp.es.js.map +1 -0
  1575. package/vendor/lodash-es/isSafeInteger.es.js +1 -0
  1576. package/vendor/lodash-es/isSafeInteger.es.js.map +1 -0
  1577. package/vendor/lodash-es/isSet.es.js +1 -0
  1578. package/vendor/lodash-es/isSet.es.js.map +1 -0
  1579. package/vendor/lodash-es/isString.es.js +1 -0
  1580. package/vendor/lodash-es/isString.es.js.map +1 -0
  1581. package/vendor/lodash-es/isSymbol.es.js +1 -0
  1582. package/vendor/lodash-es/isSymbol.es.js.map +1 -0
  1583. package/vendor/lodash-es/isTypedArray.es.js +1 -0
  1584. package/vendor/lodash-es/isTypedArray.es.js.map +1 -0
  1585. package/vendor/lodash-es/isUndefined.es.js +1 -0
  1586. package/vendor/lodash-es/isUndefined.es.js.map +1 -0
  1587. package/vendor/lodash-es/isWeakMap.es.js +1 -0
  1588. package/vendor/lodash-es/isWeakMap.es.js.map +1 -0
  1589. package/vendor/lodash-es/isWeakSet.es.js +1 -0
  1590. package/vendor/lodash-es/isWeakSet.es.js.map +1 -0
  1591. package/vendor/lodash-es/iteratee.es.js +1 -0
  1592. package/vendor/lodash-es/iteratee.es.js.map +1 -0
  1593. package/vendor/lodash-es/join.es.js +1 -0
  1594. package/vendor/lodash-es/join.es.js.map +1 -0
  1595. package/vendor/lodash-es/kebabCase.es.js +1 -0
  1596. package/vendor/lodash-es/kebabCase.es.js.map +1 -0
  1597. package/vendor/lodash-es/keyBy.es.js +1 -0
  1598. package/vendor/lodash-es/keyBy.es.js.map +1 -0
  1599. package/vendor/lodash-es/keys.es.js +1 -0
  1600. package/vendor/lodash-es/keys.es.js.map +1 -0
  1601. package/vendor/lodash-es/keysIn.es.js +1 -0
  1602. package/vendor/lodash-es/keysIn.es.js.map +1 -0
  1603. package/vendor/lodash-es/lang.default.es.js +1 -0
  1604. package/vendor/lodash-es/lang.default.es.js.map +1 -0
  1605. package/vendor/lodash-es/lang.es.js +1 -0
  1606. package/vendor/lodash-es/lang.es.js.map +1 -0
  1607. package/vendor/lodash-es/last.es.js +1 -0
  1608. package/vendor/lodash-es/last.es.js.map +1 -0
  1609. package/vendor/lodash-es/lastIndexOf.es.js +1 -0
  1610. package/vendor/lodash-es/lastIndexOf.es.js.map +1 -0
  1611. package/vendor/lodash-es/lodash.default.es.js +1 -0
  1612. package/vendor/lodash-es/lodash.default.es.js.map +1 -0
  1613. package/vendor/lodash-es/lodash.es.js +1 -0
  1614. package/vendor/lodash-es/lodash.es.js.map +1 -0
  1615. package/vendor/lodash-es/lowerCase.es.js +1 -0
  1616. package/vendor/lodash-es/lowerCase.es.js.map +1 -0
  1617. package/vendor/lodash-es/lowerFirst.es.js +1 -0
  1618. package/vendor/lodash-es/lowerFirst.es.js.map +1 -0
  1619. package/vendor/lodash-es/lt.es.js +1 -0
  1620. package/vendor/lodash-es/lt.es.js.map +1 -0
  1621. package/vendor/lodash-es/lte.es.js +1 -0
  1622. package/vendor/lodash-es/lte.es.js.map +1 -0
  1623. package/vendor/lodash-es/map.es.js +1 -0
  1624. package/vendor/lodash-es/map.es.js.map +1 -0
  1625. package/vendor/lodash-es/mapKeys.es.js +1 -0
  1626. package/vendor/lodash-es/mapKeys.es.js.map +1 -0
  1627. package/vendor/lodash-es/mapValues.es.js +1 -0
  1628. package/vendor/lodash-es/mapValues.es.js.map +1 -0
  1629. package/vendor/lodash-es/matches.es.js +1 -0
  1630. package/vendor/lodash-es/matches.es.js.map +1 -0
  1631. package/vendor/lodash-es/matchesProperty.es.js +1 -0
  1632. package/vendor/lodash-es/matchesProperty.es.js.map +1 -0
  1633. package/vendor/lodash-es/math.default.es.js +1 -0
  1634. package/vendor/lodash-es/math.default.es.js.map +1 -0
  1635. package/vendor/lodash-es/math.es.js +1 -0
  1636. package/vendor/lodash-es/math.es.js.map +1 -0
  1637. package/vendor/lodash-es/max.es.js +1 -0
  1638. package/vendor/lodash-es/max.es.js.map +1 -0
  1639. package/vendor/lodash-es/maxBy.es.js +1 -0
  1640. package/vendor/lodash-es/maxBy.es.js.map +1 -0
  1641. package/vendor/lodash-es/mean.es.js +1 -0
  1642. package/vendor/lodash-es/mean.es.js.map +1 -0
  1643. package/vendor/lodash-es/meanBy.es.js +1 -0
  1644. package/vendor/lodash-es/meanBy.es.js.map +1 -0
  1645. package/vendor/lodash-es/memoize.es.js +1 -0
  1646. package/vendor/lodash-es/memoize.es.js.map +1 -0
  1647. package/vendor/lodash-es/merge.es.js +1 -0
  1648. package/vendor/lodash-es/merge.es.js.map +1 -0
  1649. package/vendor/lodash-es/mergeWith.es.js +1 -0
  1650. package/vendor/lodash-es/mergeWith.es.js.map +1 -0
  1651. package/vendor/lodash-es/method.es.js +1 -0
  1652. package/vendor/lodash-es/method.es.js.map +1 -0
  1653. package/vendor/lodash-es/methodOf.es.js +1 -0
  1654. package/vendor/lodash-es/methodOf.es.js.map +1 -0
  1655. package/vendor/lodash-es/min.es.js +1 -0
  1656. package/vendor/lodash-es/min.es.js.map +1 -0
  1657. package/vendor/lodash-es/minBy.es.js +1 -0
  1658. package/vendor/lodash-es/minBy.es.js.map +1 -0
  1659. package/vendor/lodash-es/mixin.es.js +1 -0
  1660. package/vendor/lodash-es/mixin.es.js.map +1 -0
  1661. package/vendor/lodash-es/multiply.es.js +1 -0
  1662. package/vendor/lodash-es/multiply.es.js.map +1 -0
  1663. package/vendor/lodash-es/negate.es.js +1 -0
  1664. package/vendor/lodash-es/negate.es.js.map +1 -0
  1665. package/vendor/lodash-es/next.es.js +1 -0
  1666. package/vendor/lodash-es/next.es.js.map +1 -0
  1667. package/vendor/lodash-es/noop.es.js +1 -0
  1668. package/vendor/lodash-es/noop.es.js.map +1 -0
  1669. package/vendor/lodash-es/now.es.js +1 -0
  1670. package/vendor/lodash-es/now.es.js.map +1 -0
  1671. package/vendor/lodash-es/nth.es.js +1 -0
  1672. package/vendor/lodash-es/nth.es.js.map +1 -0
  1673. package/vendor/lodash-es/nthArg.es.js +1 -0
  1674. package/vendor/lodash-es/nthArg.es.js.map +1 -0
  1675. package/vendor/lodash-es/number.default.es.js +1 -0
  1676. package/vendor/lodash-es/number.default.es.js.map +1 -0
  1677. package/vendor/lodash-es/number.es.js +1 -0
  1678. package/vendor/lodash-es/number.es.js.map +1 -0
  1679. package/vendor/lodash-es/object.default.es.js +1 -0
  1680. package/vendor/lodash-es/object.default.es.js.map +1 -0
  1681. package/vendor/lodash-es/object.es.js +1 -0
  1682. package/vendor/lodash-es/object.es.js.map +1 -0
  1683. package/vendor/lodash-es/omit.es.js +1 -0
  1684. package/vendor/lodash-es/omit.es.js.map +1 -0
  1685. package/vendor/lodash-es/omitBy.es.js +1 -0
  1686. package/vendor/lodash-es/omitBy.es.js.map +1 -0
  1687. package/vendor/lodash-es/once.es.js +1 -0
  1688. package/vendor/lodash-es/once.es.js.map +1 -0
  1689. package/vendor/lodash-es/orderBy.es.js +1 -0
  1690. package/vendor/lodash-es/orderBy.es.js.map +1 -0
  1691. package/vendor/lodash-es/over.es.js +1 -0
  1692. package/vendor/lodash-es/over.es.js.map +1 -0
  1693. package/vendor/lodash-es/overArgs.es.js +1 -0
  1694. package/vendor/lodash-es/overArgs.es.js.map +1 -0
  1695. package/vendor/lodash-es/overEvery.es.js +1 -0
  1696. package/vendor/lodash-es/overEvery.es.js.map +1 -0
  1697. package/vendor/lodash-es/overSome.es.js +1 -0
  1698. package/vendor/lodash-es/overSome.es.js.map +1 -0
  1699. package/vendor/lodash-es/pad.es.js +1 -0
  1700. package/vendor/lodash-es/pad.es.js.map +1 -0
  1701. package/vendor/lodash-es/padEnd.es.js +1 -0
  1702. package/vendor/lodash-es/padEnd.es.js.map +1 -0
  1703. package/vendor/lodash-es/padStart.es.js +1 -0
  1704. package/vendor/lodash-es/padStart.es.js.map +1 -0
  1705. package/vendor/lodash-es/parseInt.es.js +1 -0
  1706. package/vendor/lodash-es/parseInt.es.js.map +1 -0
  1707. package/vendor/lodash-es/partial.es.js +1 -0
  1708. package/vendor/lodash-es/partial.es.js.map +1 -0
  1709. package/vendor/lodash-es/partialRight.es.js +1 -0
  1710. package/vendor/lodash-es/partialRight.es.js.map +1 -0
  1711. package/vendor/lodash-es/partition.es.js +1 -0
  1712. package/vendor/lodash-es/partition.es.js.map +1 -0
  1713. package/vendor/lodash-es/pick.es.js +1 -0
  1714. package/vendor/lodash-es/pick.es.js.map +1 -0
  1715. package/vendor/lodash-es/pickBy.es.js +1 -0
  1716. package/vendor/lodash-es/pickBy.es.js.map +1 -0
  1717. package/vendor/lodash-es/plant.es.js +1 -0
  1718. package/vendor/lodash-es/plant.es.js.map +1 -0
  1719. package/vendor/lodash-es/property.es.js +1 -0
  1720. package/vendor/lodash-es/property.es.js.map +1 -0
  1721. package/vendor/lodash-es/propertyOf.es.js +1 -0
  1722. package/vendor/lodash-es/propertyOf.es.js.map +1 -0
  1723. package/vendor/lodash-es/pull.es.js +1 -0
  1724. package/vendor/lodash-es/pull.es.js.map +1 -0
  1725. package/vendor/lodash-es/pullAll.es.js +1 -0
  1726. package/vendor/lodash-es/pullAll.es.js.map +1 -0
  1727. package/vendor/lodash-es/pullAllBy.es.js +1 -0
  1728. package/vendor/lodash-es/pullAllBy.es.js.map +1 -0
  1729. package/vendor/lodash-es/pullAllWith.es.js +1 -0
  1730. package/vendor/lodash-es/pullAllWith.es.js.map +1 -0
  1731. package/vendor/lodash-es/pullAt.es.js +1 -0
  1732. package/vendor/lodash-es/pullAt.es.js.map +1 -0
  1733. package/vendor/lodash-es/random.es.js +1 -0
  1734. package/vendor/lodash-es/random.es.js.map +1 -0
  1735. package/vendor/lodash-es/range.es.js +1 -0
  1736. package/vendor/lodash-es/range.es.js.map +1 -0
  1737. package/vendor/lodash-es/rangeRight.es.js +1 -0
  1738. package/vendor/lodash-es/rangeRight.es.js.map +1 -0
  1739. package/vendor/lodash-es/rearg.es.js +1 -0
  1740. package/vendor/lodash-es/rearg.es.js.map +1 -0
  1741. package/vendor/lodash-es/reduce.es.js +1 -0
  1742. package/vendor/lodash-es/reduce.es.js.map +1 -0
  1743. package/vendor/lodash-es/reduceRight.es.js +1 -0
  1744. package/vendor/lodash-es/reduceRight.es.js.map +1 -0
  1745. package/vendor/lodash-es/reject.es.js +1 -0
  1746. package/vendor/lodash-es/reject.es.js.map +1 -0
  1747. package/vendor/lodash-es/remove.es.js +1 -0
  1748. package/vendor/lodash-es/remove.es.js.map +1 -0
  1749. package/vendor/lodash-es/repeat.es.js +1 -0
  1750. package/vendor/lodash-es/repeat.es.js.map +1 -0
  1751. package/vendor/lodash-es/replace.es.js +1 -0
  1752. package/vendor/lodash-es/replace.es.js.map +1 -0
  1753. package/vendor/lodash-es/rest.es.js +1 -0
  1754. package/vendor/lodash-es/rest.es.js.map +1 -0
  1755. package/vendor/lodash-es/result.es.js +1 -0
  1756. package/vendor/lodash-es/result.es.js.map +1 -0
  1757. package/vendor/lodash-es/reverse.es.js +1 -0
  1758. package/vendor/lodash-es/reverse.es.js.map +1 -0
  1759. package/vendor/lodash-es/round.es.js +1 -0
  1760. package/vendor/lodash-es/round.es.js.map +1 -0
  1761. package/vendor/lodash-es/sample.es.js +1 -0
  1762. package/vendor/lodash-es/sample.es.js.map +1 -0
  1763. package/vendor/lodash-es/sampleSize.es.js +1 -0
  1764. package/vendor/lodash-es/sampleSize.es.js.map +1 -0
  1765. package/vendor/lodash-es/seq.default.es.js +1 -0
  1766. package/vendor/lodash-es/seq.default.es.js.map +1 -0
  1767. package/vendor/lodash-es/seq.es.js +1 -0
  1768. package/vendor/lodash-es/seq.es.js.map +1 -0
  1769. package/vendor/lodash-es/set.es.js +1 -0
  1770. package/vendor/lodash-es/set.es.js.map +1 -0
  1771. package/vendor/lodash-es/setWith.es.js +1 -0
  1772. package/vendor/lodash-es/setWith.es.js.map +1 -0
  1773. package/vendor/lodash-es/shuffle.es.js +1 -0
  1774. package/vendor/lodash-es/shuffle.es.js.map +1 -0
  1775. package/vendor/lodash-es/size.es.js +1 -0
  1776. package/vendor/lodash-es/size.es.js.map +1 -0
  1777. package/vendor/lodash-es/slice.es.js +1 -0
  1778. package/vendor/lodash-es/slice.es.js.map +1 -0
  1779. package/vendor/lodash-es/snakeCase.es.js +1 -0
  1780. package/vendor/lodash-es/snakeCase.es.js.map +1 -0
  1781. package/vendor/lodash-es/some.es.js +1 -0
  1782. package/vendor/lodash-es/some.es.js.map +1 -0
  1783. package/vendor/lodash-es/sortBy.es.js +1 -0
  1784. package/vendor/lodash-es/sortBy.es.js.map +1 -0
  1785. package/vendor/lodash-es/sortedIndex.es.js +1 -0
  1786. package/vendor/lodash-es/sortedIndex.es.js.map +1 -0
  1787. package/vendor/lodash-es/sortedIndexBy.es.js +1 -0
  1788. package/vendor/lodash-es/sortedIndexBy.es.js.map +1 -0
  1789. package/vendor/lodash-es/sortedIndexOf.es.js +1 -0
  1790. package/vendor/lodash-es/sortedIndexOf.es.js.map +1 -0
  1791. package/vendor/lodash-es/sortedLastIndex.es.js +1 -0
  1792. package/vendor/lodash-es/sortedLastIndex.es.js.map +1 -0
  1793. package/vendor/lodash-es/sortedLastIndexBy.es.js +1 -0
  1794. package/vendor/lodash-es/sortedLastIndexBy.es.js.map +1 -0
  1795. package/vendor/lodash-es/sortedLastIndexOf.es.js +1 -0
  1796. package/vendor/lodash-es/sortedLastIndexOf.es.js.map +1 -0
  1797. package/vendor/lodash-es/sortedUniq.es.js +1 -0
  1798. package/vendor/lodash-es/sortedUniq.es.js.map +1 -0
  1799. package/vendor/lodash-es/sortedUniqBy.es.js +1 -0
  1800. package/vendor/lodash-es/sortedUniqBy.es.js.map +1 -0
  1801. package/vendor/lodash-es/split.es.js +1 -0
  1802. package/vendor/lodash-es/split.es.js.map +1 -0
  1803. package/vendor/lodash-es/spread.es.js +1 -0
  1804. package/vendor/lodash-es/spread.es.js.map +1 -0
  1805. package/vendor/lodash-es/startCase.es.js +1 -0
  1806. package/vendor/lodash-es/startCase.es.js.map +1 -0
  1807. package/vendor/lodash-es/startsWith.es.js +1 -0
  1808. package/vendor/lodash-es/startsWith.es.js.map +1 -0
  1809. package/vendor/lodash-es/string.default.es.js +1 -0
  1810. package/vendor/lodash-es/string.default.es.js.map +1 -0
  1811. package/vendor/lodash-es/string.es.js +1 -0
  1812. package/vendor/lodash-es/string.es.js.map +1 -0
  1813. package/vendor/lodash-es/stubArray.es.js +1 -0
  1814. package/vendor/lodash-es/stubArray.es.js.map +1 -0
  1815. package/vendor/lodash-es/stubFalse.es.js +1 -0
  1816. package/vendor/lodash-es/stubFalse.es.js.map +1 -0
  1817. package/vendor/lodash-es/stubObject.es.js +1 -0
  1818. package/vendor/lodash-es/stubObject.es.js.map +1 -0
  1819. package/vendor/lodash-es/stubString.es.js +1 -0
  1820. package/vendor/lodash-es/stubString.es.js.map +1 -0
  1821. package/vendor/lodash-es/stubTrue.es.js +1 -0
  1822. package/vendor/lodash-es/stubTrue.es.js.map +1 -0
  1823. package/vendor/lodash-es/subtract.es.js +1 -0
  1824. package/vendor/lodash-es/subtract.es.js.map +1 -0
  1825. package/vendor/lodash-es/sum.es.js +1 -0
  1826. package/vendor/lodash-es/sum.es.js.map +1 -0
  1827. package/vendor/lodash-es/sumBy.es.js +1 -0
  1828. package/vendor/lodash-es/sumBy.es.js.map +1 -0
  1829. package/vendor/lodash-es/tail.es.js +1 -0
  1830. package/vendor/lodash-es/tail.es.js.map +1 -0
  1831. package/vendor/lodash-es/take.es.js +1 -0
  1832. package/vendor/lodash-es/take.es.js.map +1 -0
  1833. package/vendor/lodash-es/takeRight.es.js +1 -0
  1834. package/vendor/lodash-es/takeRight.es.js.map +1 -0
  1835. package/vendor/lodash-es/takeRightWhile.es.js +1 -0
  1836. package/vendor/lodash-es/takeRightWhile.es.js.map +1 -0
  1837. package/vendor/lodash-es/takeWhile.es.js +1 -0
  1838. package/vendor/lodash-es/takeWhile.es.js.map +1 -0
  1839. package/vendor/lodash-es/tap.es.js +1 -0
  1840. package/vendor/lodash-es/tap.es.js.map +1 -0
  1841. package/vendor/lodash-es/template.es.js +1 -0
  1842. package/vendor/lodash-es/template.es.js.map +1 -0
  1843. package/vendor/lodash-es/templateSettings.es.js +1 -0
  1844. package/vendor/lodash-es/templateSettings.es.js.map +1 -0
  1845. package/vendor/lodash-es/throttle.es.js +17 -1
  1846. package/vendor/lodash-es/throttle.es.js.map +1 -0
  1847. package/vendor/lodash-es/thru.es.js +1 -0
  1848. package/vendor/lodash-es/thru.es.js.map +1 -0
  1849. package/vendor/lodash-es/times.es.js +1 -0
  1850. package/vendor/lodash-es/times.es.js.map +1 -0
  1851. package/vendor/lodash-es/toArray.es.js +1 -0
  1852. package/vendor/lodash-es/toArray.es.js.map +1 -0
  1853. package/vendor/lodash-es/toFinite.es.js +1 -0
  1854. package/vendor/lodash-es/toFinite.es.js.map +1 -0
  1855. package/vendor/lodash-es/toInteger.es.js +1 -0
  1856. package/vendor/lodash-es/toInteger.es.js.map +1 -0
  1857. package/vendor/lodash-es/toIterator.es.js +1 -0
  1858. package/vendor/lodash-es/toIterator.es.js.map +1 -0
  1859. package/vendor/lodash-es/toJSON.es.js +1 -0
  1860. package/vendor/lodash-es/toJSON.es.js.map +1 -0
  1861. package/vendor/lodash-es/toLength.es.js +1 -0
  1862. package/vendor/lodash-es/toLength.es.js.map +1 -0
  1863. package/vendor/lodash-es/toLower.es.js +1 -0
  1864. package/vendor/lodash-es/toLower.es.js.map +1 -0
  1865. package/vendor/lodash-es/toNumber.es.js +1 -0
  1866. package/vendor/lodash-es/toNumber.es.js.map +1 -0
  1867. package/vendor/lodash-es/toPairs.es.js +1 -0
  1868. package/vendor/lodash-es/toPairs.es.js.map +1 -0
  1869. package/vendor/lodash-es/toPairsIn.es.js +1 -0
  1870. package/vendor/lodash-es/toPairsIn.es.js.map +1 -0
  1871. package/vendor/lodash-es/toPath.es.js +1 -0
  1872. package/vendor/lodash-es/toPath.es.js.map +1 -0
  1873. package/vendor/lodash-es/toPlainObject.es.js +1 -0
  1874. package/vendor/lodash-es/toPlainObject.es.js.map +1 -0
  1875. package/vendor/lodash-es/toSafeInteger.es.js +1 -0
  1876. package/vendor/lodash-es/toSafeInteger.es.js.map +1 -0
  1877. package/vendor/lodash-es/toString.es.js +1 -0
  1878. package/vendor/lodash-es/toString.es.js.map +1 -0
  1879. package/vendor/lodash-es/toUpper.es.js +1 -0
  1880. package/vendor/lodash-es/toUpper.es.js.map +1 -0
  1881. package/vendor/lodash-es/transform.es.js +1 -0
  1882. package/vendor/lodash-es/transform.es.js.map +1 -0
  1883. package/vendor/lodash-es/trim.es.js +1 -0
  1884. package/vendor/lodash-es/trim.es.js.map +1 -0
  1885. package/vendor/lodash-es/trimEnd.es.js +1 -0
  1886. package/vendor/lodash-es/trimEnd.es.js.map +1 -0
  1887. package/vendor/lodash-es/trimStart.es.js +1 -0
  1888. package/vendor/lodash-es/trimStart.es.js.map +1 -0
  1889. package/vendor/lodash-es/truncate.es.js +1 -0
  1890. package/vendor/lodash-es/truncate.es.js.map +1 -0
  1891. package/vendor/lodash-es/unary.es.js +1 -0
  1892. package/vendor/lodash-es/unary.es.js.map +1 -0
  1893. package/vendor/lodash-es/unescape.es.js +1 -0
  1894. package/vendor/lodash-es/unescape.es.js.map +1 -0
  1895. package/vendor/lodash-es/union.es.js +1 -0
  1896. package/vendor/lodash-es/union.es.js.map +1 -0
  1897. package/vendor/lodash-es/unionBy.es.js +1 -0
  1898. package/vendor/lodash-es/unionBy.es.js.map +1 -0
  1899. package/vendor/lodash-es/unionWith.es.js +1 -0
  1900. package/vendor/lodash-es/unionWith.es.js.map +1 -0
  1901. package/vendor/lodash-es/uniq.es.js +1 -0
  1902. package/vendor/lodash-es/uniq.es.js.map +1 -0
  1903. package/vendor/lodash-es/uniqBy.es.js +1 -0
  1904. package/vendor/lodash-es/uniqBy.es.js.map +1 -0
  1905. package/vendor/lodash-es/uniqWith.es.js +1 -0
  1906. package/vendor/lodash-es/uniqWith.es.js.map +1 -0
  1907. package/vendor/lodash-es/uniqueId.es.js +1 -0
  1908. package/vendor/lodash-es/uniqueId.es.js.map +1 -0
  1909. package/vendor/lodash-es/unset.es.js +1 -0
  1910. package/vendor/lodash-es/unset.es.js.map +1 -0
  1911. package/vendor/lodash-es/unzip.es.js +1 -0
  1912. package/vendor/lodash-es/unzip.es.js.map +1 -0
  1913. package/vendor/lodash-es/unzipWith.es.js +1 -0
  1914. package/vendor/lodash-es/unzipWith.es.js.map +1 -0
  1915. package/vendor/lodash-es/update.es.js +1 -0
  1916. package/vendor/lodash-es/update.es.js.map +1 -0
  1917. package/vendor/lodash-es/updateWith.es.js +1 -0
  1918. package/vendor/lodash-es/updateWith.es.js.map +1 -0
  1919. package/vendor/lodash-es/upperCase.es.js +1 -0
  1920. package/vendor/lodash-es/upperCase.es.js.map +1 -0
  1921. package/vendor/lodash-es/upperFirst.es.js +1 -0
  1922. package/vendor/lodash-es/upperFirst.es.js.map +1 -0
  1923. package/vendor/lodash-es/util.default.es.js +1 -0
  1924. package/vendor/lodash-es/util.default.es.js.map +1 -0
  1925. package/vendor/lodash-es/util.es.js +1 -0
  1926. package/vendor/lodash-es/util.es.js.map +1 -0
  1927. package/vendor/lodash-es/value.es.js +1 -0
  1928. package/vendor/lodash-es/value.es.js.map +1 -0
  1929. package/vendor/lodash-es/valueOf.es.js +1 -0
  1930. package/vendor/lodash-es/valueOf.es.js.map +1 -0
  1931. package/vendor/lodash-es/values.es.js +1 -0
  1932. package/vendor/lodash-es/values.es.js.map +1 -0
  1933. package/vendor/lodash-es/valuesIn.es.js +1 -0
  1934. package/vendor/lodash-es/valuesIn.es.js.map +1 -0
  1935. package/vendor/lodash-es/without.es.js +1 -0
  1936. package/vendor/lodash-es/without.es.js.map +1 -0
  1937. package/vendor/lodash-es/words.es.js +1 -0
  1938. package/vendor/lodash-es/words.es.js.map +1 -0
  1939. package/vendor/lodash-es/wrap.es.js +1 -0
  1940. package/vendor/lodash-es/wrap.es.js.map +1 -0
  1941. package/vendor/lodash-es/wrapperAt.es.js +1 -0
  1942. package/vendor/lodash-es/wrapperAt.es.js.map +1 -0
  1943. package/vendor/lodash-es/wrapperChain.es.js +1 -0
  1944. package/vendor/lodash-es/wrapperChain.es.js.map +1 -0
  1945. package/vendor/lodash-es/wrapperLodash.es.js +1 -0
  1946. package/vendor/lodash-es/wrapperLodash.es.js.map +1 -0
  1947. package/vendor/lodash-es/wrapperReverse.es.js +1 -0
  1948. package/vendor/lodash-es/wrapperReverse.es.js.map +1 -0
  1949. package/vendor/lodash-es/wrapperValue.es.js +1 -0
  1950. package/vendor/lodash-es/wrapperValue.es.js.map +1 -0
  1951. package/vendor/lodash-es/xor.es.js +1 -0
  1952. package/vendor/lodash-es/xor.es.js.map +1 -0
  1953. package/vendor/lodash-es/xorBy.es.js +1 -0
  1954. package/vendor/lodash-es/xorBy.es.js.map +1 -0
  1955. package/vendor/lodash-es/xorWith.es.js +1 -0
  1956. package/vendor/lodash-es/xorWith.es.js.map +1 -0
  1957. package/vendor/lodash-es/zip.es.js +1 -0
  1958. package/vendor/lodash-es/zip.es.js.map +1 -0
  1959. package/vendor/lodash-es/zipObject.es.js +1 -0
  1960. package/vendor/lodash-es/zipObject.es.js.map +1 -0
  1961. package/vendor/lodash-es/zipObjectDeep.es.js +1 -0
  1962. package/vendor/lodash-es/zipObjectDeep.es.js.map +1 -0
  1963. package/vendor/lodash-es/zipWith.es.js +1 -0
  1964. package/vendor/lodash-es/zipWith.es.js.map +1 -0
  1965. package/vendor/luxon/build/es6/luxon.es.js +5516 -0
  1966. package/vendor/luxon/build/es6/luxon.es.js.map +1 -0
  1967. package/vendor/orderedmap/dist/index.es.js +1 -0
  1968. package/vendor/orderedmap/dist/index.es.js.map +1 -0
  1969. package/vendor/primevue/api/api.esm.es.js +1 -0
  1970. package/vendor/primevue/api/api.esm.es.js.map +1 -0
  1971. package/vendor/primevue/badge/badge.esm.es.js +3 -2
  1972. package/vendor/primevue/badge/badge.esm.es.js.map +1 -0
  1973. package/vendor/primevue/badge/style/badgestyle.esm.es.js +1 -0
  1974. package/vendor/primevue/badge/style/badgestyle.esm.es.js.map +1 -0
  1975. package/vendor/primevue/base/style/basestyle.esm.es.js +1 -0
  1976. package/vendor/primevue/base/style/basestyle.esm.es.js.map +1 -0
  1977. package/vendor/primevue/basecomponent/basecomponent.esm.es.js +1 -0
  1978. package/vendor/primevue/basecomponent/basecomponent.esm.es.js.map +1 -0
  1979. package/vendor/primevue/basedirective/basedirective.esm.es.js +1 -0
  1980. package/vendor/primevue/basedirective/basedirective.esm.es.js.map +1 -0
  1981. package/vendor/primevue/baseicon/baseicon.esm.es.js +1 -0
  1982. package/vendor/primevue/baseicon/baseicon.esm.es.js.map +1 -0
  1983. package/vendor/primevue/baseicon/style/baseiconstyle.esm.es.js +1 -0
  1984. package/vendor/primevue/baseicon/style/baseiconstyle.esm.es.js.map +1 -0
  1985. package/vendor/primevue/button/button.esm.es.js +8 -7
  1986. package/vendor/primevue/button/button.esm.es.js.map +1 -0
  1987. package/vendor/primevue/button/style/buttonstyle.esm.es.js +1 -0
  1988. package/vendor/primevue/button/style/buttonstyle.esm.es.js.map +1 -0
  1989. package/vendor/primevue/card/card.esm.es.js +11 -10
  1990. package/vendor/primevue/card/card.esm.es.js.map +1 -0
  1991. package/vendor/primevue/card/style/cardstyle.esm.es.js +1 -0
  1992. package/vendor/primevue/card/style/cardstyle.esm.es.js.map +1 -0
  1993. package/vendor/primevue/checkbox/checkbox.esm.es.js +2 -1
  1994. package/vendor/primevue/checkbox/checkbox.esm.es.js.map +1 -0
  1995. package/vendor/primevue/checkbox/style/checkboxstyle.esm.es.js +1 -0
  1996. package/vendor/primevue/checkbox/style/checkboxstyle.esm.es.js.map +1 -0
  1997. package/vendor/primevue/config/config.esm.es.js +1 -0
  1998. package/vendor/primevue/config/config.esm.es.js.map +1 -0
  1999. package/vendor/primevue/dialog/dialog.esm.es.js +6 -5
  2000. package/vendor/primevue/dialog/dialog.esm.es.js.map +1 -0
  2001. package/vendor/primevue/dialog/style/dialogstyle.esm.es.js +1 -0
  2002. package/vendor/primevue/dialog/style/dialogstyle.esm.es.js.map +1 -0
  2003. package/vendor/primevue/dropdown/dropdown.esm.es.js +20 -19
  2004. package/vendor/primevue/dropdown/dropdown.esm.es.js.map +1 -0
  2005. package/vendor/primevue/dropdown/style/dropdownstyle.esm.es.js +1 -0
  2006. package/vendor/primevue/dropdown/style/dropdownstyle.esm.es.js.map +1 -0
  2007. package/vendor/primevue/fileupload/fileupload.esm.es.js +2 -1
  2008. package/vendor/primevue/fileupload/fileupload.esm.es.js.map +1 -0
  2009. package/vendor/primevue/fileupload/style/fileuploadstyle.esm.es.js +1 -0
  2010. package/vendor/primevue/fileupload/style/fileuploadstyle.esm.es.js.map +1 -0
  2011. package/vendor/primevue/focustrap/focustrap.esm.es.js +1 -0
  2012. package/vendor/primevue/focustrap/focustrap.esm.es.js.map +1 -0
  2013. package/vendor/primevue/focustrap/style/focustrapstyle.esm.es.js +1 -0
  2014. package/vendor/primevue/focustrap/style/focustrapstyle.esm.es.js.map +1 -0
  2015. package/vendor/primevue/icons/angledoubleleft/index.esm.es.js +3 -2
  2016. package/vendor/primevue/icons/angledoubleleft/index.esm.es.js.map +1 -0
  2017. package/vendor/primevue/icons/angledoubleright/index.esm.es.js +3 -2
  2018. package/vendor/primevue/icons/angledoubleright/index.esm.es.js.map +1 -0
  2019. package/vendor/primevue/icons/angledown/index.esm.es.js +3 -2
  2020. package/vendor/primevue/icons/angledown/index.esm.es.js.map +1 -0
  2021. package/vendor/primevue/icons/angleleft/index.esm.es.js +3 -2
  2022. package/vendor/primevue/icons/angleleft/index.esm.es.js.map +1 -0
  2023. package/vendor/primevue/icons/angleright/index.esm.es.js +3 -2
  2024. package/vendor/primevue/icons/angleright/index.esm.es.js.map +1 -0
  2025. package/vendor/primevue/icons/angleup/index.esm.es.js +3 -2
  2026. package/vendor/primevue/icons/angleup/index.esm.es.js.map +1 -0
  2027. package/vendor/primevue/icons/blank/index.esm.es.js +3 -2
  2028. package/vendor/primevue/icons/blank/index.esm.es.js.map +1 -0
  2029. package/vendor/primevue/icons/check/index.esm.es.js +3 -2
  2030. package/vendor/primevue/icons/check/index.esm.es.js.map +1 -0
  2031. package/vendor/primevue/icons/chevrondown/index.esm.es.js +3 -2
  2032. package/vendor/primevue/icons/chevrondown/index.esm.es.js.map +1 -0
  2033. package/vendor/primevue/icons/exclamationtriangle/index.esm.es.js +3 -2
  2034. package/vendor/primevue/icons/exclamationtriangle/index.esm.es.js.map +1 -0
  2035. package/vendor/primevue/icons/eye/index.esm.es.js +3 -2
  2036. package/vendor/primevue/icons/eye/index.esm.es.js.map +1 -0
  2037. package/vendor/primevue/icons/eyeslash/index.esm.es.js +3 -2
  2038. package/vendor/primevue/icons/eyeslash/index.esm.es.js.map +1 -0
  2039. package/vendor/primevue/icons/infocircle/index.esm.es.js +3 -2
  2040. package/vendor/primevue/icons/infocircle/index.esm.es.js.map +1 -0
  2041. package/vendor/primevue/icons/plus/index.esm.es.js +3 -2
  2042. package/vendor/primevue/icons/plus/index.esm.es.js.map +1 -0
  2043. package/vendor/primevue/icons/refresh/index.esm.es.js +3 -2
  2044. package/vendor/primevue/icons/refresh/index.esm.es.js.map +1 -0
  2045. package/vendor/primevue/icons/search/index.esm.es.js +3 -2
  2046. package/vendor/primevue/icons/search/index.esm.es.js.map +1 -0
  2047. package/vendor/primevue/icons/searchminus/index.esm.es.js +3 -2
  2048. package/vendor/primevue/icons/searchminus/index.esm.es.js.map +1 -0
  2049. package/vendor/primevue/icons/searchplus/index.esm.es.js +3 -2
  2050. package/vendor/primevue/icons/searchplus/index.esm.es.js.map +1 -0
  2051. package/vendor/primevue/icons/spinner/index.esm.es.js +3 -2
  2052. package/vendor/primevue/icons/spinner/index.esm.es.js.map +1 -0
  2053. package/vendor/primevue/icons/times/index.esm.es.js +3 -2
  2054. package/vendor/primevue/icons/times/index.esm.es.js.map +1 -0
  2055. package/vendor/primevue/icons/timescircle/index.esm.es.js +3 -2
  2056. package/vendor/primevue/icons/timescircle/index.esm.es.js.map +1 -0
  2057. package/vendor/primevue/icons/undo/index.esm.es.js +3 -2
  2058. package/vendor/primevue/icons/undo/index.esm.es.js.map +1 -0
  2059. package/vendor/primevue/icons/upload/index.esm.es.js +3 -2
  2060. package/vendor/primevue/icons/upload/index.esm.es.js.map +1 -0
  2061. package/vendor/primevue/icons/windowmaximize/index.esm.es.js +3 -2
  2062. package/vendor/primevue/icons/windowmaximize/index.esm.es.js.map +1 -0
  2063. package/vendor/primevue/icons/windowminimize/index.esm.es.js +3 -2
  2064. package/vendor/primevue/icons/windowminimize/index.esm.es.js.map +1 -0
  2065. package/vendor/primevue/image/image.esm.es.js +2 -1
  2066. package/vendor/primevue/image/image.esm.es.js.map +1 -0
  2067. package/vendor/primevue/image/style/imagestyle.esm.es.js +1 -0
  2068. package/vendor/primevue/image/style/imagestyle.esm.es.js.map +1 -0
  2069. package/vendor/primevue/inputgroup/inputgroup.esm.es.js +3 -2
  2070. package/vendor/primevue/inputgroup/inputgroup.esm.es.js.map +1 -0
  2071. package/vendor/primevue/inputgroup/style/inputgroupstyle.esm.es.js +1 -0
  2072. package/vendor/primevue/inputgroup/style/inputgroupstyle.esm.es.js.map +1 -0
  2073. package/vendor/primevue/inputgroupaddon/inputgroupaddon.esm.es.js +3 -2
  2074. package/vendor/primevue/inputgroupaddon/inputgroupaddon.esm.es.js.map +1 -0
  2075. package/vendor/primevue/inputgroupaddon/style/inputgroupaddonstyle.esm.es.js +1 -0
  2076. package/vendor/primevue/inputgroupaddon/style/inputgroupaddonstyle.esm.es.js.map +1 -0
  2077. package/vendor/primevue/inputnumber/inputnumber.esm.es.js +2 -1
  2078. package/vendor/primevue/inputnumber/inputnumber.esm.es.js.map +1 -0
  2079. package/vendor/primevue/inputnumber/style/inputnumberstyle.esm.es.js +1 -0
  2080. package/vendor/primevue/inputnumber/style/inputnumberstyle.esm.es.js.map +1 -0
  2081. package/vendor/primevue/inputtext/inputtext.esm.es.js +3 -2
  2082. package/vendor/primevue/inputtext/inputtext.esm.es.js.map +1 -0
  2083. package/vendor/primevue/inputtext/style/inputtextstyle.esm.es.js +1 -0
  2084. package/vendor/primevue/inputtext/style/inputtextstyle.esm.es.js.map +1 -0
  2085. package/vendor/primevue/menu/menu.esm.es.js +2 -1
  2086. package/vendor/primevue/menu/menu.esm.es.js.map +1 -0
  2087. package/vendor/primevue/menu/style/menustyle.esm.es.js +1 -0
  2088. package/vendor/primevue/menu/style/menustyle.esm.es.js.map +1 -0
  2089. package/vendor/primevue/message/message.esm.es.js +4 -3
  2090. package/vendor/primevue/message/message.esm.es.js.map +1 -0
  2091. package/vendor/primevue/message/style/messagestyle.esm.es.js +1 -0
  2092. package/vendor/primevue/message/style/messagestyle.esm.es.js.map +1 -0
  2093. package/vendor/primevue/multiselect/multiselect.esm.es.js +2 -1
  2094. package/vendor/primevue/multiselect/multiselect.esm.es.js.map +1 -0
  2095. package/vendor/primevue/multiselect/style/multiselectstyle.esm.es.js +1 -0
  2096. package/vendor/primevue/multiselect/style/multiselectstyle.esm.es.js.map +1 -0
  2097. package/vendor/primevue/overlayeventbus/overlayeventbus.esm.es.js +1 -0
  2098. package/vendor/primevue/overlayeventbus/overlayeventbus.esm.es.js.map +1 -0
  2099. package/vendor/primevue/overlaypanel/overlaypanel.esm.es.js +2 -1
  2100. package/vendor/primevue/overlaypanel/overlaypanel.esm.es.js.map +1 -0
  2101. package/vendor/primevue/overlaypanel/style/overlaypanelstyle.esm.es.js +1 -0
  2102. package/vendor/primevue/overlaypanel/style/overlaypanelstyle.esm.es.js.map +1 -0
  2103. package/vendor/primevue/paginator/paginator.esm.es.js +2 -1
  2104. package/vendor/primevue/paginator/paginator.esm.es.js.map +1 -0
  2105. package/vendor/primevue/paginator/style/paginatorstyle.esm.es.js +1 -0
  2106. package/vendor/primevue/paginator/style/paginatorstyle.esm.es.js.map +1 -0
  2107. package/vendor/primevue/password/password.esm.es.js +2 -1
  2108. package/vendor/primevue/password/password.esm.es.js.map +1 -0
  2109. package/vendor/primevue/password/style/passwordstyle.esm.es.js +1 -0
  2110. package/vendor/primevue/password/style/passwordstyle.esm.es.js.map +1 -0
  2111. package/vendor/primevue/portal/portal.esm.es.js +4 -3
  2112. package/vendor/primevue/portal/portal.esm.es.js.map +1 -0
  2113. package/vendor/primevue/progressbar/progressbar.esm.es.js +6 -5
  2114. package/vendor/primevue/progressbar/progressbar.esm.es.js.map +1 -0
  2115. package/vendor/primevue/progressbar/style/progressbarstyle.esm.es.js +1 -0
  2116. package/vendor/primevue/progressbar/style/progressbarstyle.esm.es.js.map +1 -0
  2117. package/vendor/primevue/ripple/ripple.esm.es.js +1 -0
  2118. package/vendor/primevue/ripple/ripple.esm.es.js.map +1 -0
  2119. package/vendor/primevue/ripple/style/ripplestyle.esm.es.js +1 -0
  2120. package/vendor/primevue/ripple/style/ripplestyle.esm.es.js.map +1 -0
  2121. package/vendor/primevue/selectbutton/selectbutton.esm.es.js +5 -4
  2122. package/vendor/primevue/selectbutton/selectbutton.esm.es.js.map +1 -0
  2123. package/vendor/primevue/selectbutton/style/selectbuttonstyle.esm.es.js +1 -0
  2124. package/vendor/primevue/selectbutton/style/selectbuttonstyle.esm.es.js.map +1 -0
  2125. package/vendor/primevue/skeleton/skeleton.esm.es.js +3 -2
  2126. package/vendor/primevue/skeleton/skeleton.esm.es.js.map +1 -0
  2127. package/vendor/primevue/skeleton/style/skeletonstyle.esm.es.js +1 -0
  2128. package/vendor/primevue/skeleton/style/skeletonstyle.esm.es.js.map +1 -0
  2129. package/vendor/primevue/textarea/style/textareastyle.esm.es.js +1 -0
  2130. package/vendor/primevue/textarea/style/textareastyle.esm.es.js.map +1 -0
  2131. package/vendor/primevue/textarea/textarea.esm.es.js +3 -2
  2132. package/vendor/primevue/textarea/textarea.esm.es.js.map +1 -0
  2133. package/vendor/primevue/timeline/style/timelinestyle.esm.es.js +1 -0
  2134. package/vendor/primevue/timeline/style/timelinestyle.esm.es.js.map +1 -0
  2135. package/vendor/primevue/timeline/timeline.esm.es.js +5 -4
  2136. package/vendor/primevue/timeline/timeline.esm.es.js.map +1 -0
  2137. package/vendor/primevue/toast/style/toaststyle.esm.es.js +1 -0
  2138. package/vendor/primevue/toast/style/toaststyle.esm.es.js.map +1 -0
  2139. package/vendor/primevue/toast/toast.esm.es.js +5 -4
  2140. package/vendor/primevue/toast/toast.esm.es.js.map +1 -0
  2141. package/vendor/primevue/toasteventbus/toasteventbus.esm.es.js +1 -0
  2142. package/vendor/primevue/toasteventbus/toasteventbus.esm.es.js.map +1 -0
  2143. package/vendor/primevue/toastservice/toastservice.esm.es.js +1 -0
  2144. package/vendor/primevue/toastservice/toastservice.esm.es.js.map +1 -0
  2145. package/vendor/primevue/tooltip/style/tooltipstyle.esm.es.js +1 -0
  2146. package/vendor/primevue/tooltip/style/tooltipstyle.esm.es.js.map +1 -0
  2147. package/vendor/primevue/tooltip/tooltip.esm.es.js +1 -0
  2148. package/vendor/primevue/tooltip/tooltip.esm.es.js.map +1 -0
  2149. package/vendor/primevue/usestyle/usestyle.esm.es.js +1 -0
  2150. package/vendor/primevue/usestyle/usestyle.esm.es.js.map +1 -0
  2151. package/vendor/primevue/usetoast/usetoast.esm.es.js +1 -0
  2152. package/vendor/primevue/usetoast/usetoast.esm.es.js.map +1 -0
  2153. package/vendor/primevue/utils/utils.esm.es.js +1 -0
  2154. package/vendor/primevue/utils/utils.esm.es.js.map +1 -0
  2155. package/vendor/primevue/virtualscroller/style/virtualscrollerstyle.esm.es.js +1 -0
  2156. package/vendor/primevue/virtualscroller/style/virtualscrollerstyle.esm.es.js.map +1 -0
  2157. package/vendor/primevue/virtualscroller/virtualscroller.esm.es.js +10 -9
  2158. package/vendor/primevue/virtualscroller/virtualscroller.esm.es.js.map +1 -0
  2159. package/vendor/prosemirror-commands/dist/index.es.js +32 -29
  2160. package/vendor/prosemirror-commands/dist/index.es.js.map +1 -0
  2161. package/vendor/prosemirror-history/dist/index.es.js +2 -1
  2162. package/vendor/prosemirror-history/dist/index.es.js.map +1 -0
  2163. package/vendor/prosemirror-keymap/dist/index.es.js +16 -14
  2164. package/vendor/prosemirror-keymap/dist/index.es.js.map +1 -0
  2165. package/vendor/prosemirror-model/dist/index.es.js +90 -95
  2166. package/vendor/prosemirror-model/dist/index.es.js.map +1 -0
  2167. package/vendor/prosemirror-schema-list/dist/index.es.js +14 -13
  2168. package/vendor/prosemirror-schema-list/dist/index.es.js.map +1 -0
  2169. package/vendor/prosemirror-state/dist/index.es.js +41 -40
  2170. package/vendor/prosemirror-state/dist/index.es.js.map +1 -0
  2171. package/vendor/prosemirror-transform/dist/index.es.js +110 -92
  2172. package/vendor/prosemirror-transform/dist/index.es.js.map +1 -0
  2173. package/vendor/prosemirror-view/dist/index.es.js +776 -723
  2174. package/vendor/prosemirror-view/dist/index.es.js.map +1 -0
  2175. package/vendor/qrcode/lib/browser.es.js +1 -0
  2176. package/vendor/qrcode/lib/browser.es.js.map +1 -0
  2177. package/vendor/qrcode/lib/can-promise.es.js +1 -0
  2178. package/vendor/qrcode/lib/can-promise.es.js.map +1 -0
  2179. package/vendor/qrcode/lib/core/alignment-pattern.es.js +1 -0
  2180. package/vendor/qrcode/lib/core/alignment-pattern.es.js.map +1 -0
  2181. package/vendor/qrcode/lib/core/alphanumeric-data.es.js +1 -0
  2182. package/vendor/qrcode/lib/core/alphanumeric-data.es.js.map +1 -0
  2183. package/vendor/qrcode/lib/core/bit-buffer.es.js +1 -0
  2184. package/vendor/qrcode/lib/core/bit-buffer.es.js.map +1 -0
  2185. package/vendor/qrcode/lib/core/bit-matrix.es.js +1 -0
  2186. package/vendor/qrcode/lib/core/bit-matrix.es.js.map +1 -0
  2187. package/vendor/qrcode/lib/core/byte-data.es.js +1 -0
  2188. package/vendor/qrcode/lib/core/byte-data.es.js.map +1 -0
  2189. package/vendor/qrcode/lib/core/error-correction-code.es.js +1 -0
  2190. package/vendor/qrcode/lib/core/error-correction-code.es.js.map +1 -0
  2191. package/vendor/qrcode/lib/core/error-correction-level.es.js +1 -0
  2192. package/vendor/qrcode/lib/core/error-correction-level.es.js.map +1 -0
  2193. package/vendor/qrcode/lib/core/finder-pattern.es.js +1 -0
  2194. package/vendor/qrcode/lib/core/finder-pattern.es.js.map +1 -0
  2195. package/vendor/qrcode/lib/core/format-info.es.js +1 -0
  2196. package/vendor/qrcode/lib/core/format-info.es.js.map +1 -0
  2197. package/vendor/qrcode/lib/core/galois-field.es.js +1 -0
  2198. package/vendor/qrcode/lib/core/galois-field.es.js.map +1 -0
  2199. package/vendor/qrcode/lib/core/kanji-data.es.js +1 -0
  2200. package/vendor/qrcode/lib/core/kanji-data.es.js.map +1 -0
  2201. package/vendor/qrcode/lib/core/mask-pattern.es.js +1 -0
  2202. package/vendor/qrcode/lib/core/mask-pattern.es.js.map +1 -0
  2203. package/vendor/qrcode/lib/core/mode.es.js +1 -0
  2204. package/vendor/qrcode/lib/core/mode.es.js.map +1 -0
  2205. package/vendor/qrcode/lib/core/numeric-data.es.js +1 -0
  2206. package/vendor/qrcode/lib/core/numeric-data.es.js.map +1 -0
  2207. package/vendor/qrcode/lib/core/polynomial.es.js +1 -0
  2208. package/vendor/qrcode/lib/core/polynomial.es.js.map +1 -0
  2209. package/vendor/qrcode/lib/core/qrcode.es.js +1 -0
  2210. package/vendor/qrcode/lib/core/qrcode.es.js.map +1 -0
  2211. package/vendor/qrcode/lib/core/reed-solomon-encoder.es.js +1 -0
  2212. package/vendor/qrcode/lib/core/reed-solomon-encoder.es.js.map +1 -0
  2213. package/vendor/qrcode/lib/core/regex.es.js +1 -0
  2214. package/vendor/qrcode/lib/core/regex.es.js.map +1 -0
  2215. package/vendor/qrcode/lib/core/segments.es.js +1 -0
  2216. package/vendor/qrcode/lib/core/segments.es.js.map +1 -0
  2217. package/vendor/qrcode/lib/core/utils.es.js +1 -0
  2218. package/vendor/qrcode/lib/core/utils.es.js.map +1 -0
  2219. package/vendor/qrcode/lib/core/version-check.es.js +1 -0
  2220. package/vendor/qrcode/lib/core/version-check.es.js.map +1 -0
  2221. package/vendor/qrcode/lib/core/version.es.js +1 -0
  2222. package/vendor/qrcode/lib/core/version.es.js.map +1 -0
  2223. package/vendor/qrcode/lib/renderer/canvas.es.js +1 -0
  2224. package/vendor/qrcode/lib/renderer/canvas.es.js.map +1 -0
  2225. package/vendor/qrcode/lib/renderer/svg-tag.es.js +1 -0
  2226. package/vendor/qrcode/lib/renderer/svg-tag.es.js.map +1 -0
  2227. package/vendor/qrcode/lib/renderer/utils.es.js +1 -0
  2228. package/vendor/qrcode/lib/renderer/utils.es.js.map +1 -0
  2229. package/vendor/rope-sequence/dist/index.es.js +1 -0
  2230. package/vendor/rope-sequence/dist/index.es.js.map +1 -0
  2231. package/vendor/simplebar-core/dist/index.es.js +23 -27
  2232. package/vendor/simplebar-core/dist/index.es.js.map +1 -0
  2233. package/vendor/simplebar-vue/dist/simplebar-vue.esm.es.js +1 -0
  2234. package/vendor/simplebar-vue/dist/simplebar-vue.esm.es.js.map +1 -0
  2235. package/vendor/single-spa/lib/es2015/esm/single-spa.min.es.js +1 -0
  2236. package/vendor/single-spa/lib/es2015/esm/single-spa.min.es.js.map +1 -0
  2237. package/vendor/tippy.js/dist/tippy.esm.es.js +1 -0
  2238. package/vendor/tippy.js/dist/tippy.esm.es.js.map +1 -0
  2239. package/vendor/uuid/dist/esm-browser/index.es.js +1 -0
  2240. package/vendor/uuid/dist/esm-browser/index.es.js.map +1 -0
  2241. package/vendor/uuid/dist/esm-browser/md5.es.js +1 -0
  2242. package/vendor/uuid/dist/esm-browser/md5.es.js.map +1 -0
  2243. package/vendor/uuid/dist/esm-browser/native.es.js +1 -0
  2244. package/vendor/uuid/dist/esm-browser/native.es.js.map +1 -0
  2245. package/vendor/uuid/dist/esm-browser/nil.es.js +1 -0
  2246. package/vendor/uuid/dist/esm-browser/nil.es.js.map +1 -0
  2247. package/vendor/uuid/dist/esm-browser/parse.es.js +1 -0
  2248. package/vendor/uuid/dist/esm-browser/parse.es.js.map +1 -0
  2249. package/vendor/uuid/dist/esm-browser/regex.es.js +1 -0
  2250. package/vendor/uuid/dist/esm-browser/regex.es.js.map +1 -0
  2251. package/vendor/uuid/dist/esm-browser/rng.es.js +1 -0
  2252. package/vendor/uuid/dist/esm-browser/rng.es.js.map +1 -0
  2253. package/vendor/uuid/dist/esm-browser/sha1.es.js +1 -0
  2254. package/vendor/uuid/dist/esm-browser/sha1.es.js.map +1 -0
  2255. package/vendor/uuid/dist/esm-browser/stringify.es.js +1 -0
  2256. package/vendor/uuid/dist/esm-browser/stringify.es.js.map +1 -0
  2257. package/vendor/uuid/dist/esm-browser/v1.es.js +1 -0
  2258. package/vendor/uuid/dist/esm-browser/v1.es.js.map +1 -0
  2259. package/vendor/uuid/dist/esm-browser/v3.es.js +1 -0
  2260. package/vendor/uuid/dist/esm-browser/v3.es.js.map +1 -0
  2261. package/vendor/uuid/dist/esm-browser/v35.es.js +1 -0
  2262. package/vendor/uuid/dist/esm-browser/v35.es.js.map +1 -0
  2263. package/vendor/uuid/dist/esm-browser/v4.es.js +1 -0
  2264. package/vendor/uuid/dist/esm-browser/v4.es.js.map +1 -0
  2265. package/vendor/uuid/dist/esm-browser/v5.es.js +1 -0
  2266. package/vendor/uuid/dist/esm-browser/v5.es.js.map +1 -0
  2267. package/vendor/uuid/dist/esm-browser/validate.es.js +1 -0
  2268. package/vendor/uuid/dist/esm-browser/validate.es.js.map +1 -0
  2269. package/vendor/uuid/dist/esm-browser/version.es.js +1 -0
  2270. package/vendor/uuid/dist/esm-browser/version.es.js.map +1 -0
  2271. package/vendor/vee-validate/dist/vee-validate.esm.es.js +1 -0
  2272. package/vendor/vee-validate/dist/vee-validate.esm.es.js.map +1 -0
  2273. package/vendor/vue-advanced-cropper/dist/index.esm-bundler.es.js +19 -18
  2274. package/vendor/vue-advanced-cropper/dist/index.esm-bundler.es.js.map +1 -0
  2275. package/vendor/vue-demi/lib/index.es.js +1 -0
  2276. package/vendor/vue-demi/lib/index.es.js.map +1 -0
  2277. package/vendor/w3c-keyname/index.es.js +1 -0
  2278. package/vendor/w3c-keyname/index.es.js.map +1 -0
  2279. package/wangsvue-fats.d.ts +4 -2
  2280. package/wangsvue-fats.es.js +234 -0
  2281. package/wangsvue-fats.es.js.map +1 -0
  2282. package/wangsvue-fats.esm.browser.js +65185 -0
  2283. package/wangsvue-fats.esm.browser.js.map +1 -0
  2284. package/wangsvue-fats.system.js +94 -92
  2285. package/wangsvue-fats.system.js.map +1 -0
  2286. package/animation/Animation.es.js +0 -50
  2287. package/approverinfo/package.json +0 -4
  2288. package/assetinfo/AssetInfo.es.js +0 -162
  2289. package/assetinfo/package.json +0 -4
  2290. package/backgroundimagecropper/BackgroundImageCropper.es.js +0 -57
  2291. package/badge/package.json +0 -4
  2292. package/badgegroup/package.json +0 -4
  2293. package/basecalendar/BaseCalendar.es.js +0 -876
  2294. package/basetree/package.json +0 -4
  2295. package/breadcrumb/package.json +0 -4
  2296. package/button/Button.es.js +0 -120
  2297. package/button/package.json +0 -4
  2298. package/buttonImportExcel/index.d.ts +0 -35
  2299. package/buttonaddbyscan/package.json +0 -4
  2300. package/buttonbulkaction/ButtonBulkAction.es.js +0 -186
  2301. package/buttonbulkaction/package.json +0 -4
  2302. package/buttoncopy/package.json +0 -4
  2303. package/buttondownload/package.json +0 -4
  2304. package/buttonfilter/package.json +0 -4
  2305. package/buttonradio/package.json +0 -4
  2306. package/buttonscan/ButtonScan.es.js +0 -416
  2307. package/buttonscan/package.json +0 -4
  2308. package/buttonsearch/package.json +0 -4
  2309. package/buttonsearchbyscan/package.json +0 -4
  2310. package/buttonselecttree/package.json +0 -4
  2311. package/buttonselectuser/package.json +0 -4
  2312. package/buttonsplit/index.d.ts +0 -353
  2313. package/buttonsync/package.json +0 -4
  2314. package/buttontoggle/package.json +0 -4
  2315. package/buttonviewlog/package.json +0 -4
  2316. package/calendar/package.json +0 -4
  2317. package/card/package.json +0 -4
  2318. package/carousel/package.json +0 -4
  2319. package/checkbox/package.json +0 -4
  2320. package/codesnippet/CodeSnippet.es.js +0 -118
  2321. package/codesnippetadapter/CodeSnippetAdapter.es.js +0 -26
  2322. package/columnlist/ColumnList.es.js +0 -204
  2323. package/config/package.json +0 -4
  2324. package/customcolumn/package.json +0 -4
  2325. package/datatable/package.json +0 -4
  2326. package/datepicker/package.json +0 -4
  2327. package/daypicker/package.json +0 -4
  2328. package/dialog/package.json +0 -4
  2329. package/dialogassetnamedetail/package.json +0 -4
  2330. package/dialogbasictransferlog/DialogBasicTransferLog.es.js +0 -225
  2331. package/dialogconfirm/package.json +0 -4
  2332. package/dialogdamagelog/package.json +0 -4
  2333. package/dialogform/package.json +0 -4
  2334. package/dialogfulltransferlog/DialogFullTransferLog.es.js +0 -237
  2335. package/dialoglinkedasset/package.json +0 -4
  2336. package/dialogprintqr/DialogPrintQR.es.js +0 -334
  2337. package/dialogprintqr/package.json +0 -4
  2338. package/dialogreportdamage/package.json +0 -4
  2339. package/dialogreportmissing/package.json +0 -4
  2340. package/dialogreporttag/package.json +0 -4
  2341. package/dialogselecttree/package.json +0 -4
  2342. package/dialogselectuser/package.json +0 -4
  2343. package/dialogselectuserfilter/DialogSelectUserFilter.es.js +0 -40
  2344. package/dialogtransferlog/package.json +0 -4
  2345. package/directives/package.json +0 -4
  2346. package/disposalreport/package.json +0 -4
  2347. package/disposalreportbulkaction/DisposalReportBulkAction.es.js +0 -80
  2348. package/disposalreporttable/DisposalReportTable.es.js +0 -311
  2349. package/disposalreporttablefilter/DisposalReportTableFilter.es.js +0 -74
  2350. package/dropdown/package.json +0 -4
  2351. package/editor/Editor.es.js +0 -964
  2352. package/editorbutton/EditorButton.es.js +0 -28
  2353. package/event-bus/package.json +0 -4
  2354. package/fieldwrapper/FieldWrapper.es.js +0 -40
  2355. package/fileupload/package.json +0 -4
  2356. package/filtercontainer/package.json +0 -4
  2357. package/form/package.json +0 -4
  2358. package/hardwaresync/HardwareSync.es.js +0 -236
  2359. package/icon/package.json +0 -4
  2360. package/image/package.json +0 -4
  2361. package/imagecompressor/package.json +0 -4
  2362. package/imageinputinfo/ImageInputInfo.es.js +0 -46
  2363. package/inlinemessage/package.json +0 -4
  2364. package/inputbadge/package.json +0 -4
  2365. package/inputcurrency/helpers/index.es.js +0 -150
  2366. package/inputcurrency/helpers/package.json +0 -4
  2367. package/inputcurrency/package.json +0 -4
  2368. package/inputemail/package.json +0 -4
  2369. package/inputgroup/InputGroup.es.js +0 -31
  2370. package/inputnumber/package.json +0 -4
  2371. package/inputotp/package.json +0 -4
  2372. package/inputpassword/package.json +0 -4
  2373. package/inputphonenumber/package.json +0 -4
  2374. package/inputrangenumber/package.json +0 -4
  2375. package/inputsearch/package.json +0 -4
  2376. package/inputtext/package.json +0 -4
  2377. package/inputurl/package.json +0 -4
  2378. package/invisiblefield/package.json +0 -4
  2379. package/languagedropdown/index.d.ts +0 -30
  2380. package/languagedropdownoption/LanguageDropdownOption.es.js +0 -51
  2381. package/languageswitcher/package.json +0 -4
  2382. package/litedropdown/package.json +0 -4
  2383. package/loading/package.json +0 -4
  2384. package/loading/store/index.es.js +0 -5
  2385. package/loading/store/package.json +0 -4
  2386. package/mentionlist/MentionList.es.js +0 -58
  2387. package/mentionsection/MentionSection.es.js +0 -52
  2388. package/menu/package.json +0 -4
  2389. package/menuitem/MenuItem.es.js +0 -65
  2390. package/multirow/MultiRow.es.js +0 -52
  2391. package/multiselect/package.json +0 -4
  2392. package/overlaypanel/package.json +0 -4
  2393. package/paginator/package.json +0 -4
  2394. package/plugins/package.json +0 -4
  2395. package/steps/package.json +0 -4
  2396. package/tabmenu/package.json +0 -4
  2397. package/tagtype/package.json +0 -4
  2398. package/textarea/package.json +0 -4
  2399. package/timeline/package.json +0 -4
  2400. package/timelinecontentbytype/TimelineContentByType.es.js +0 -111
  2401. package/toast/package.json +0 -4
  2402. package/toast/service/index.es.js +0 -4
  2403. package/toast/service/package.json +0 -4
  2404. package/toggleswitch/package.json +0 -4
  2405. package/transactionroles/package.json +0 -4
  2406. package/tree/Tree.es.js +0 -271
  2407. package/tree/package.json +0 -4
  2408. package/treenode/TreeNode.es.js +0 -506
  2409. package/treenode/index.d.ts +0 -35
  2410. package/treesearchinput/TreeSearchInput.es.js +0 -56
  2411. package/treesearchinput/index.d.ts +0 -16
  2412. package/username/package.json +0 -4
  2413. package/userwithicon/package.json +0 -4
  2414. package/utils/package.json +0 -4
  2415. package/validatormessage/package.json +0 -4
  2416. package/vendor/@wangs-ui/core/components/p-BaJo52da.es.js +0 -135
  2417. package/vendor/@wangs-ui/core/components/p-CKYwZoTo.es.js +0 -57
  2418. package/vendor/@wangs-ui/core/components/p-CsoK-EWG.es.js +0 -158
  2419. package/vendor/@wangs-ui/core/components/p-DBIHoawY.es.js +0 -171
  2420. package/vendor/@wangs-ui/core/dist/esm/index-BRm3UDZx.es.js +0 -324
  2421. package/vendor/linkifyjs/dist/linkify.es.es.js +0 -705
  2422. package/vendor/lodash/_Symbol.es.js +0 -11
  2423. package/vendor/lodash/_baseGetTag.es.js +0 -16
  2424. package/vendor/lodash/_baseTrim.es.js +0 -14
  2425. package/vendor/lodash/_freeGlobal.es.js +0 -11
  2426. package/vendor/lodash/_getRawTag.es.js +0 -21
  2427. package/vendor/lodash/_objectToString.es.js +0 -13
  2428. package/vendor/lodash/_root.es.js +0 -11
  2429. package/vendor/lodash/_trimmedEndIndex.es.js +0 -15
  2430. package/vendor/lodash/debounce.es.js +0 -60
  2431. package/vendor/lodash/isObject.es.js +0 -13
  2432. package/vendor/lodash/isObjectLike.es.js +0 -12
  2433. package/vendor/lodash/isSymbol.es.js +0 -15
  2434. package/vendor/lodash/now.es.js +0 -13
  2435. package/vendor/lodash/throttle.es.js +0 -22
  2436. package/vendor/lodash/toNumber.es.js +0 -28
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.es.js","sources":["../../../../../../node_modules/.pnpm/prosemirror-view@1.41.5/node_modules/prosemirror-view/dist/index.js"],"sourcesContent":["import { TextSelection, NodeSelection, AllSelection, Selection } from 'prosemirror-state';\nimport { DOMSerializer, Fragment, Mark, Slice, DOMParser } from 'prosemirror-model';\nimport { dropPoint } from 'prosemirror-transform';\n\nconst domIndex = function (node) {\n for (var index = 0;; index++) {\n node = node.previousSibling;\n if (!node)\n return index;\n }\n};\nconst parentNode = function (node) {\n let parent = node.assignedSlot || node.parentNode;\n return parent && parent.nodeType == 11 ? parent.host : parent;\n};\nlet reusedRange = null;\n// Note that this will always return the same range, because DOM range\n// objects are every expensive, and keep slowing down subsequent DOM\n// updates, for some reason.\nconst textRange = function (node, from, to) {\n let range = reusedRange || (reusedRange = document.createRange());\n range.setEnd(node, to == null ? node.nodeValue.length : to);\n range.setStart(node, from || 0);\n return range;\n};\nconst clearReusedRange = function () {\n reusedRange = null;\n};\n// Scans forward and backward through DOM positions equivalent to the\n// given one to see if the two are in the same place (i.e. after a\n// text node vs at the end of that text node)\nconst isEquivalentPosition = function (node, off, targetNode, targetOff) {\n return targetNode && (scanFor(node, off, targetNode, targetOff, -1) ||\n scanFor(node, off, targetNode, targetOff, 1));\n};\nconst atomElements = /^(img|br|input|textarea|hr)$/i;\nfunction scanFor(node, off, targetNode, targetOff, dir) {\n var _a;\n for (;;) {\n if (node == targetNode && off == targetOff)\n return true;\n if (off == (dir < 0 ? 0 : nodeSize(node))) {\n let parent = node.parentNode;\n if (!parent || parent.nodeType != 1 || hasBlockDesc(node) || atomElements.test(node.nodeName) ||\n node.contentEditable == \"false\")\n return false;\n off = domIndex(node) + (dir < 0 ? 0 : 1);\n node = parent;\n }\n else if (node.nodeType == 1) {\n let child = node.childNodes[off + (dir < 0 ? -1 : 0)];\n if (child.nodeType == 1 && child.contentEditable == \"false\") {\n if ((_a = child.pmViewDesc) === null || _a === void 0 ? void 0 : _a.ignoreForSelection)\n off += dir;\n else\n return false;\n }\n else {\n node = child;\n off = dir < 0 ? nodeSize(node) : 0;\n }\n }\n else {\n return false;\n }\n }\n}\nfunction nodeSize(node) {\n return node.nodeType == 3 ? node.nodeValue.length : node.childNodes.length;\n}\nfunction textNodeBefore$1(node, offset) {\n for (;;) {\n if (node.nodeType == 3 && offset)\n return node;\n if (node.nodeType == 1 && offset > 0) {\n if (node.contentEditable == \"false\")\n return null;\n node = node.childNodes[offset - 1];\n offset = nodeSize(node);\n }\n else if (node.parentNode && !hasBlockDesc(node)) {\n offset = domIndex(node);\n node = node.parentNode;\n }\n else {\n return null;\n }\n }\n}\nfunction textNodeAfter$1(node, offset) {\n for (;;) {\n if (node.nodeType == 3 && offset < node.nodeValue.length)\n return node;\n if (node.nodeType == 1 && offset < node.childNodes.length) {\n if (node.contentEditable == \"false\")\n return null;\n node = node.childNodes[offset];\n offset = 0;\n }\n else if (node.parentNode && !hasBlockDesc(node)) {\n offset = domIndex(node) + 1;\n node = node.parentNode;\n }\n else {\n return null;\n }\n }\n}\nfunction isOnEdge(node, offset, parent) {\n for (let atStart = offset == 0, atEnd = offset == nodeSize(node); atStart || atEnd;) {\n if (node == parent)\n return true;\n let index = domIndex(node);\n node = node.parentNode;\n if (!node)\n return false;\n atStart = atStart && index == 0;\n atEnd = atEnd && index == nodeSize(node);\n }\n}\nfunction hasBlockDesc(dom) {\n let desc;\n for (let cur = dom; cur; cur = cur.parentNode)\n if (desc = cur.pmViewDesc)\n break;\n return desc && desc.node && desc.node.isBlock && (desc.dom == dom || desc.contentDOM == dom);\n}\n// Work around Chrome issue https://bugs.chromium.org/p/chromium/issues/detail?id=447523\n// (isCollapsed inappropriately returns true in shadow dom)\nconst selectionCollapsed = function (domSel) {\n return domSel.focusNode && isEquivalentPosition(domSel.focusNode, domSel.focusOffset, domSel.anchorNode, domSel.anchorOffset);\n};\nfunction keyEvent(keyCode, key) {\n let event = document.createEvent(\"Event\");\n event.initEvent(\"keydown\", true, true);\n event.keyCode = keyCode;\n event.key = event.code = key;\n return event;\n}\nfunction deepActiveElement(doc) {\n let elt = doc.activeElement;\n while (elt && elt.shadowRoot)\n elt = elt.shadowRoot.activeElement;\n return elt;\n}\nfunction caretFromPoint(doc, x, y) {\n if (doc.caretPositionFromPoint) {\n try { // Firefox throws for this call in hard-to-predict circumstances (#994)\n let pos = doc.caretPositionFromPoint(x, y);\n // Clip the offset, because Chrome will return a text offset\n // into <input> nodes, which can't be treated as a regular DOM\n // offset\n if (pos)\n return { node: pos.offsetNode, offset: Math.min(nodeSize(pos.offsetNode), pos.offset) };\n }\n catch (_) { }\n }\n if (doc.caretRangeFromPoint) {\n let range = doc.caretRangeFromPoint(x, y);\n if (range)\n return { node: range.startContainer, offset: Math.min(nodeSize(range.startContainer), range.startOffset) };\n }\n}\n\nconst nav = typeof navigator != \"undefined\" ? navigator : null;\nconst doc = typeof document != \"undefined\" ? document : null;\nconst agent = (nav && nav.userAgent) || \"\";\nconst ie_edge = /Edge\\/(\\d+)/.exec(agent);\nconst ie_upto10 = /MSIE \\d/.exec(agent);\nconst ie_11up = /Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(agent);\nconst ie = !!(ie_upto10 || ie_11up || ie_edge);\nconst ie_version = ie_upto10 ? document.documentMode : ie_11up ? +ie_11up[1] : ie_edge ? +ie_edge[1] : 0;\nconst gecko = !ie && /gecko\\/(\\d+)/i.test(agent);\ngecko && +(/Firefox\\/(\\d+)/.exec(agent) || [0, 0])[1];\nconst _chrome = !ie && /Chrome\\/(\\d+)/.exec(agent);\nconst chrome = !!_chrome;\nconst chrome_version = _chrome ? +_chrome[1] : 0;\nconst safari = !ie && !!nav && /Apple Computer/.test(nav.vendor);\n// Is true for both iOS and iPadOS for convenience\nconst ios = safari && (/Mobile\\/\\w+/.test(agent) || !!nav && nav.maxTouchPoints > 2);\nconst mac = ios || (nav ? /Mac/.test(nav.platform) : false);\nconst windows = nav ? /Win/.test(nav.platform) : false;\nconst android = /Android \\d/.test(agent);\nconst webkit = !!doc && \"webkitFontSmoothing\" in doc.documentElement.style;\nconst webkit_version = webkit ? +(/\\bAppleWebKit\\/(\\d+)/.exec(navigator.userAgent) || [0, 0])[1] : 0;\n\nfunction windowRect(doc) {\n let vp = doc.defaultView && doc.defaultView.visualViewport;\n if (vp)\n return {\n left: 0, right: vp.width,\n top: 0, bottom: vp.height\n };\n return { left: 0, right: doc.documentElement.clientWidth,\n top: 0, bottom: doc.documentElement.clientHeight };\n}\nfunction getSide(value, side) {\n return typeof value == \"number\" ? value : value[side];\n}\nfunction clientRect(node) {\n let rect = node.getBoundingClientRect();\n // Adjust for elements with style \"transform: scale()\"\n let scaleX = (rect.width / node.offsetWidth) || 1;\n let scaleY = (rect.height / node.offsetHeight) || 1;\n // Make sure scrollbar width isn't included in the rectangle\n return { left: rect.left, right: rect.left + node.clientWidth * scaleX,\n top: rect.top, bottom: rect.top + node.clientHeight * scaleY };\n}\nfunction scrollRectIntoView(view, rect, startDOM) {\n let scrollThreshold = view.someProp(\"scrollThreshold\") || 0, scrollMargin = view.someProp(\"scrollMargin\") || 5;\n let doc = view.dom.ownerDocument;\n for (let parent = startDOM || view.dom;;) {\n if (!parent)\n break;\n if (parent.nodeType != 1) {\n parent = parentNode(parent);\n continue;\n }\n let elt = parent;\n let atTop = elt == doc.body;\n let bounding = atTop ? windowRect(doc) : clientRect(elt);\n let moveX = 0, moveY = 0;\n if (rect.top < bounding.top + getSide(scrollThreshold, \"top\"))\n moveY = -(bounding.top - rect.top + getSide(scrollMargin, \"top\"));\n else if (rect.bottom > bounding.bottom - getSide(scrollThreshold, \"bottom\"))\n moveY = rect.bottom - rect.top > bounding.bottom - bounding.top\n ? rect.top + getSide(scrollMargin, \"top\") - bounding.top\n : rect.bottom - bounding.bottom + getSide(scrollMargin, \"bottom\");\n if (rect.left < bounding.left + getSide(scrollThreshold, \"left\"))\n moveX = -(bounding.left - rect.left + getSide(scrollMargin, \"left\"));\n else if (rect.right > bounding.right - getSide(scrollThreshold, \"right\"))\n moveX = rect.right - bounding.right + getSide(scrollMargin, \"right\");\n if (moveX || moveY) {\n if (atTop) {\n doc.defaultView.scrollBy(moveX, moveY);\n }\n else {\n let startX = elt.scrollLeft, startY = elt.scrollTop;\n if (moveY)\n elt.scrollTop += moveY;\n if (moveX)\n elt.scrollLeft += moveX;\n let dX = elt.scrollLeft - startX, dY = elt.scrollTop - startY;\n rect = { left: rect.left - dX, top: rect.top - dY, right: rect.right - dX, bottom: rect.bottom - dY };\n }\n }\n let pos = atTop ? \"fixed\" : getComputedStyle(parent).position;\n if (/^(fixed|sticky)$/.test(pos))\n break;\n parent = pos == \"absolute\" ? parent.offsetParent : parentNode(parent);\n }\n}\n// Store the scroll position of the editor's parent nodes, along with\n// the top position of an element near the top of the editor, which\n// will be used to make sure the visible viewport remains stable even\n// when the size of the content above changes.\nfunction storeScrollPos(view) {\n let rect = view.dom.getBoundingClientRect(), startY = Math.max(0, rect.top);\n let refDOM, refTop;\n for (let x = (rect.left + rect.right) / 2, y = startY + 1; y < Math.min(innerHeight, rect.bottom); y += 5) {\n let dom = view.root.elementFromPoint(x, y);\n if (!dom || dom == view.dom || !view.dom.contains(dom))\n continue;\n let localRect = dom.getBoundingClientRect();\n if (localRect.top >= startY - 20) {\n refDOM = dom;\n refTop = localRect.top;\n break;\n }\n }\n return { refDOM: refDOM, refTop: refTop, stack: scrollStack(view.dom) };\n}\nfunction scrollStack(dom) {\n let stack = [], doc = dom.ownerDocument;\n for (let cur = dom; cur; cur = parentNode(cur)) {\n stack.push({ dom: cur, top: cur.scrollTop, left: cur.scrollLeft });\n if (dom == doc)\n break;\n }\n return stack;\n}\n// Reset the scroll position of the editor's parent nodes to that what\n// it was before, when storeScrollPos was called.\nfunction resetScrollPos({ refDOM, refTop, stack }) {\n let newRefTop = refDOM ? refDOM.getBoundingClientRect().top : 0;\n restoreScrollStack(stack, newRefTop == 0 ? 0 : newRefTop - refTop);\n}\nfunction restoreScrollStack(stack, dTop) {\n for (let i = 0; i < stack.length; i++) {\n let { dom, top, left } = stack[i];\n if (dom.scrollTop != top + dTop)\n dom.scrollTop = top + dTop;\n if (dom.scrollLeft != left)\n dom.scrollLeft = left;\n }\n}\nlet preventScrollSupported = null;\n// Feature-detects support for .focus({preventScroll: true}), and uses\n// a fallback kludge when not supported.\nfunction focusPreventScroll(dom) {\n if (dom.setActive)\n return dom.setActive(); // in IE\n if (preventScrollSupported)\n return dom.focus(preventScrollSupported);\n let stored = scrollStack(dom);\n dom.focus(preventScrollSupported == null ? {\n get preventScroll() {\n preventScrollSupported = { preventScroll: true };\n return true;\n }\n } : undefined);\n if (!preventScrollSupported) {\n preventScrollSupported = false;\n restoreScrollStack(stored, 0);\n }\n}\nfunction findOffsetInNode(node, coords) {\n let closest, dxClosest = 2e8, coordsClosest, offset = 0;\n let rowBot = coords.top, rowTop = coords.top;\n let firstBelow, coordsBelow;\n for (let child = node.firstChild, childIndex = 0; child; child = child.nextSibling, childIndex++) {\n let rects;\n if (child.nodeType == 1)\n rects = child.getClientRects();\n else if (child.nodeType == 3)\n rects = textRange(child).getClientRects();\n else\n continue;\n for (let i = 0; i < rects.length; i++) {\n let rect = rects[i];\n if (rect.top <= rowBot && rect.bottom >= rowTop) {\n rowBot = Math.max(rect.bottom, rowBot);\n rowTop = Math.min(rect.top, rowTop);\n let dx = rect.left > coords.left ? rect.left - coords.left\n : rect.right < coords.left ? coords.left - rect.right : 0;\n if (dx < dxClosest) {\n closest = child;\n dxClosest = dx;\n coordsClosest = dx && closest.nodeType == 3 ? {\n left: rect.right < coords.left ? rect.right : rect.left,\n top: coords.top\n } : coords;\n if (child.nodeType == 1 && dx)\n offset = childIndex + (coords.left >= (rect.left + rect.right) / 2 ? 1 : 0);\n continue;\n }\n }\n else if (rect.top > coords.top && !firstBelow && rect.left <= coords.left && rect.right >= coords.left) {\n firstBelow = child;\n coordsBelow = { left: Math.max(rect.left, Math.min(rect.right, coords.left)), top: rect.top };\n }\n if (!closest && (coords.left >= rect.right && coords.top >= rect.top ||\n coords.left >= rect.left && coords.top >= rect.bottom))\n offset = childIndex + 1;\n }\n }\n if (!closest && firstBelow) {\n closest = firstBelow;\n coordsClosest = coordsBelow;\n dxClosest = 0;\n }\n if (closest && closest.nodeType == 3)\n return findOffsetInText(closest, coordsClosest);\n if (!closest || (dxClosest && closest.nodeType == 1))\n return { node, offset };\n return findOffsetInNode(closest, coordsClosest);\n}\nfunction findOffsetInText(node, coords) {\n let len = node.nodeValue.length;\n let range = document.createRange(), result;\n for (let i = 0; i < len; i++) {\n range.setEnd(node, i + 1);\n range.setStart(node, i);\n let rect = singleRect(range, 1);\n if (rect.top == rect.bottom)\n continue;\n if (inRect(coords, rect)) {\n result = { node, offset: i + (coords.left >= (rect.left + rect.right) / 2 ? 1 : 0) };\n break;\n }\n }\n range.detach();\n return result || { node, offset: 0 };\n}\nfunction inRect(coords, rect) {\n return coords.left >= rect.left - 1 && coords.left <= rect.right + 1 &&\n coords.top >= rect.top - 1 && coords.top <= rect.bottom + 1;\n}\nfunction targetKludge(dom, coords) {\n let parent = dom.parentNode;\n if (parent && /^li$/i.test(parent.nodeName) && coords.left < dom.getBoundingClientRect().left)\n return parent;\n return dom;\n}\nfunction posFromElement(view, elt, coords) {\n let { node, offset } = findOffsetInNode(elt, coords), bias = -1;\n if (node.nodeType == 1 && !node.firstChild) {\n let rect = node.getBoundingClientRect();\n bias = rect.left != rect.right && coords.left > (rect.left + rect.right) / 2 ? 1 : -1;\n }\n return view.docView.posFromDOM(node, offset, bias);\n}\nfunction posFromCaret(view, node, offset, coords) {\n // Browser (in caretPosition/RangeFromPoint) will agressively\n // normalize towards nearby inline nodes. Since we are interested in\n // positions between block nodes too, we first walk up the hierarchy\n // of nodes to see if there are block nodes that the coordinates\n // fall outside of. If so, we take the position before/after that\n // block. If not, we call `posFromDOM` on the raw node/offset.\n let outsideBlock = -1;\n for (let cur = node, sawBlock = false;;) {\n if (cur == view.dom)\n break;\n let desc = view.docView.nearestDesc(cur, true), rect;\n if (!desc)\n return null;\n if (desc.dom.nodeType == 1 && (desc.node.isBlock && desc.parent || !desc.contentDOM) &&\n // Ignore elements with zero-size bounding rectangles\n ((rect = desc.dom.getBoundingClientRect()).width || rect.height)) {\n if (desc.node.isBlock && desc.parent && !/^T(R|BODY|HEAD|FOOT)$/.test(desc.dom.nodeName)) {\n // Only apply the horizontal test to the innermost block. Vertical for any parent.\n if (!sawBlock && rect.left > coords.left || rect.top > coords.top)\n outsideBlock = desc.posBefore;\n else if (!sawBlock && rect.right < coords.left || rect.bottom < coords.top)\n outsideBlock = desc.posAfter;\n sawBlock = true;\n }\n if (!desc.contentDOM && outsideBlock < 0 && !desc.node.isText) {\n // If we are inside a leaf, return the side of the leaf closer to the coords\n let before = desc.node.isBlock ? coords.top < (rect.top + rect.bottom) / 2\n : coords.left < (rect.left + rect.right) / 2;\n return before ? desc.posBefore : desc.posAfter;\n }\n }\n cur = desc.dom.parentNode;\n }\n return outsideBlock > -1 ? outsideBlock : view.docView.posFromDOM(node, offset, -1);\n}\nfunction elementFromPoint(element, coords, box) {\n let len = element.childNodes.length;\n if (len && box.top < box.bottom) {\n for (let startI = Math.max(0, Math.min(len - 1, Math.floor(len * (coords.top - box.top) / (box.bottom - box.top)) - 2)), i = startI;;) {\n let child = element.childNodes[i];\n if (child.nodeType == 1) {\n let rects = child.getClientRects();\n for (let j = 0; j < rects.length; j++) {\n let rect = rects[j];\n if (inRect(coords, rect))\n return elementFromPoint(child, coords, rect);\n }\n }\n if ((i = (i + 1) % len) == startI)\n break;\n }\n }\n return element;\n}\n// Given an x,y position on the editor, get the position in the document.\nfunction posAtCoords(view, coords) {\n let doc = view.dom.ownerDocument, node, offset = 0;\n let caret = caretFromPoint(doc, coords.left, coords.top);\n if (caret)\n ({ node, offset } = caret);\n let elt = (view.root.elementFromPoint ? view.root : doc)\n .elementFromPoint(coords.left, coords.top);\n let pos;\n if (!elt || !view.dom.contains(elt.nodeType != 1 ? elt.parentNode : elt)) {\n let box = view.dom.getBoundingClientRect();\n if (!inRect(coords, box))\n return null;\n elt = elementFromPoint(view.dom, coords, box);\n if (!elt)\n return null;\n }\n // Safari's caretRangeFromPoint returns nonsense when on a draggable element\n if (safari) {\n for (let p = elt; node && p; p = parentNode(p))\n if (p.draggable)\n node = undefined;\n }\n elt = targetKludge(elt, coords);\n if (node) {\n if (gecko && node.nodeType == 1) {\n // Firefox will sometimes return offsets into <input> nodes, which\n // have no actual children, from caretPositionFromPoint (#953)\n offset = Math.min(offset, node.childNodes.length);\n // It'll also move the returned position before image nodes,\n // even if those are behind it.\n if (offset < node.childNodes.length) {\n let next = node.childNodes[offset], box;\n if (next.nodeName == \"IMG\" && (box = next.getBoundingClientRect()).right <= coords.left &&\n box.bottom > coords.top)\n offset++;\n }\n }\n let prev;\n // When clicking above the right side of an uneditable node, Chrome will report a cursor position after that node.\n if (webkit && offset && node.nodeType == 1 && (prev = node.childNodes[offset - 1]).nodeType == 1 &&\n prev.contentEditable == \"false\" && prev.getBoundingClientRect().top >= coords.top)\n offset--;\n // Suspiciously specific kludge to work around caret*FromPoint\n // never returning a position at the end of the document\n if (node == view.dom && offset == node.childNodes.length - 1 && node.lastChild.nodeType == 1 &&\n coords.top > node.lastChild.getBoundingClientRect().bottom)\n pos = view.state.doc.content.size;\n // Ignore positions directly after a BR, since caret*FromPoint\n // 'round up' positions that would be more accurately placed\n // before the BR node.\n else if (offset == 0 || node.nodeType != 1 || node.childNodes[offset - 1].nodeName != \"BR\")\n pos = posFromCaret(view, node, offset, coords);\n }\n if (pos == null)\n pos = posFromElement(view, elt, coords);\n let desc = view.docView.nearestDesc(elt, true);\n return { pos, inside: desc ? desc.posAtStart - desc.border : -1 };\n}\nfunction nonZero(rect) {\n return rect.top < rect.bottom || rect.left < rect.right;\n}\nfunction singleRect(target, bias) {\n let rects = target.getClientRects();\n if (rects.length) {\n let first = rects[bias < 0 ? 0 : rects.length - 1];\n if (nonZero(first))\n return first;\n }\n return Array.prototype.find.call(rects, nonZero) || target.getBoundingClientRect();\n}\nconst BIDI = /[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/;\n// Given a position in the document model, get a bounding box of the\n// character at that position, relative to the window.\nfunction coordsAtPos(view, pos, side) {\n let { node, offset, atom } = view.docView.domFromPos(pos, side < 0 ? -1 : 1);\n let supportEmptyRange = webkit || gecko;\n if (node.nodeType == 3) {\n // These browsers support querying empty text ranges. Prefer that in\n // bidi context or when at the end of a node.\n if (supportEmptyRange && (BIDI.test(node.nodeValue) || (side < 0 ? !offset : offset == node.nodeValue.length))) {\n let rect = singleRect(textRange(node, offset, offset), side);\n // Firefox returns bad results (the position before the space)\n // when querying a position directly after line-broken\n // whitespace. Detect this situation and and kludge around it\n if (gecko && offset && /\\s/.test(node.nodeValue[offset - 1]) && offset < node.nodeValue.length) {\n let rectBefore = singleRect(textRange(node, offset - 1, offset - 1), -1);\n if (rectBefore.top == rect.top) {\n let rectAfter = singleRect(textRange(node, offset, offset + 1), -1);\n if (rectAfter.top != rect.top)\n return flattenV(rectAfter, rectAfter.left < rectBefore.left);\n }\n }\n return rect;\n }\n else {\n let from = offset, to = offset, takeSide = side < 0 ? 1 : -1;\n if (side < 0 && !offset) {\n to++;\n takeSide = -1;\n }\n else if (side >= 0 && offset == node.nodeValue.length) {\n from--;\n takeSide = 1;\n }\n else if (side < 0) {\n from--;\n }\n else {\n to++;\n }\n return flattenV(singleRect(textRange(node, from, to), takeSide), takeSide < 0);\n }\n }\n let $dom = view.state.doc.resolve(pos - (atom || 0));\n // Return a horizontal line in block context\n if (!$dom.parent.inlineContent) {\n if (atom == null && offset && (side < 0 || offset == nodeSize(node))) {\n let before = node.childNodes[offset - 1];\n if (before.nodeType == 1)\n return flattenH(before.getBoundingClientRect(), false);\n }\n if (atom == null && offset < nodeSize(node)) {\n let after = node.childNodes[offset];\n if (after.nodeType == 1)\n return flattenH(after.getBoundingClientRect(), true);\n }\n return flattenH(node.getBoundingClientRect(), side >= 0);\n }\n // Inline, not in text node (this is not Bidi-safe)\n if (atom == null && offset && (side < 0 || offset == nodeSize(node))) {\n let before = node.childNodes[offset - 1];\n let target = before.nodeType == 3 ? textRange(before, nodeSize(before) - (supportEmptyRange ? 0 : 1))\n // BR nodes tend to only return the rectangle before them.\n // Only use them if they are the last element in their parent\n : before.nodeType == 1 && (before.nodeName != \"BR\" || !before.nextSibling) ? before : null;\n if (target)\n return flattenV(singleRect(target, 1), false);\n }\n if (atom == null && offset < nodeSize(node)) {\n let after = node.childNodes[offset];\n while (after.pmViewDesc && after.pmViewDesc.ignoreForCoords)\n after = after.nextSibling;\n let target = !after ? null : after.nodeType == 3 ? textRange(after, 0, (supportEmptyRange ? 0 : 1))\n : after.nodeType == 1 ? after : null;\n if (target)\n return flattenV(singleRect(target, -1), true);\n }\n // All else failed, just try to get a rectangle for the target node\n return flattenV(singleRect(node.nodeType == 3 ? textRange(node) : node, -side), side >= 0);\n}\nfunction flattenV(rect, left) {\n if (rect.width == 0)\n return rect;\n let x = left ? rect.left : rect.right;\n return { top: rect.top, bottom: rect.bottom, left: x, right: x };\n}\nfunction flattenH(rect, top) {\n if (rect.height == 0)\n return rect;\n let y = top ? rect.top : rect.bottom;\n return { top: y, bottom: y, left: rect.left, right: rect.right };\n}\nfunction withFlushedState(view, state, f) {\n let viewState = view.state, active = view.root.activeElement;\n if (viewState != state)\n view.updateState(state);\n if (active != view.dom)\n view.focus();\n try {\n return f();\n }\n finally {\n if (viewState != state)\n view.updateState(viewState);\n if (active != view.dom && active)\n active.focus();\n }\n}\n// Whether vertical position motion in a given direction\n// from a position would leave a text block.\nfunction endOfTextblockVertical(view, state, dir) {\n let sel = state.selection;\n let $pos = dir == \"up\" ? sel.$from : sel.$to;\n return withFlushedState(view, state, () => {\n let { node: dom } = view.docView.domFromPos($pos.pos, dir == \"up\" ? -1 : 1);\n for (;;) {\n let nearest = view.docView.nearestDesc(dom, true);\n if (!nearest)\n break;\n if (nearest.node.isBlock) {\n dom = nearest.contentDOM || nearest.dom;\n break;\n }\n dom = nearest.dom.parentNode;\n }\n let coords = coordsAtPos(view, $pos.pos, 1);\n for (let child = dom.firstChild; child; child = child.nextSibling) {\n let boxes;\n if (child.nodeType == 1)\n boxes = child.getClientRects();\n else if (child.nodeType == 3)\n boxes = textRange(child, 0, child.nodeValue.length).getClientRects();\n else\n continue;\n for (let i = 0; i < boxes.length; i++) {\n let box = boxes[i];\n if (box.bottom > box.top + 1 &&\n (dir == \"up\" ? coords.top - box.top > (box.bottom - coords.top) * 2\n : box.bottom - coords.bottom > (coords.bottom - box.top) * 2))\n return false;\n }\n }\n return true;\n });\n}\nconst maybeRTL = /[\\u0590-\\u08ac]/;\nfunction endOfTextblockHorizontal(view, state, dir) {\n let { $head } = state.selection;\n if (!$head.parent.isTextblock)\n return false;\n let offset = $head.parentOffset, atStart = !offset, atEnd = offset == $head.parent.content.size;\n let sel = view.domSelection();\n if (!sel)\n return $head.pos == $head.start() || $head.pos == $head.end();\n // If the textblock is all LTR, or the browser doesn't support\n // Selection.modify (Edge), fall back to a primitive approach\n if (!maybeRTL.test($head.parent.textContent) || !sel.modify)\n return dir == \"left\" || dir == \"backward\" ? atStart : atEnd;\n return withFlushedState(view, state, () => {\n // This is a huge hack, but appears to be the best we can\n // currently do: use `Selection.modify` to move the selection by\n // one character, and see if that moves the cursor out of the\n // textblock (or doesn't move it at all, when at the start/end of\n // the document).\n let { focusNode: oldNode, focusOffset: oldOff, anchorNode, anchorOffset } = view.domSelectionRange();\n let oldBidiLevel = sel.caretBidiLevel // Only for Firefox\n ;\n sel.modify(\"move\", dir, \"character\");\n let parentDOM = $head.depth ? view.docView.domAfterPos($head.before()) : view.dom;\n let { focusNode: newNode, focusOffset: newOff } = view.domSelectionRange();\n let result = newNode && !parentDOM.contains(newNode.nodeType == 1 ? newNode : newNode.parentNode) ||\n (oldNode == newNode && oldOff == newOff);\n // Restore the previous selection\n try {\n sel.collapse(anchorNode, anchorOffset);\n if (oldNode && (oldNode != anchorNode || oldOff != anchorOffset) && sel.extend)\n sel.extend(oldNode, oldOff);\n }\n catch (_) { }\n if (oldBidiLevel != null)\n sel.caretBidiLevel = oldBidiLevel;\n return result;\n });\n}\nlet cachedState = null;\nlet cachedDir = null;\nlet cachedResult = false;\nfunction endOfTextblock(view, state, dir) {\n if (cachedState == state && cachedDir == dir)\n return cachedResult;\n cachedState = state;\n cachedDir = dir;\n return cachedResult = dir == \"up\" || dir == \"down\"\n ? endOfTextblockVertical(view, state, dir)\n : endOfTextblockHorizontal(view, state, dir);\n}\n\n// View descriptions are data structures that describe the DOM that is\n// used to represent the editor's content. They are used for:\n//\n// - Incremental redrawing when the document changes\n//\n// - Figuring out what part of the document a given DOM position\n// corresponds to\n//\n// - Wiring in custom implementations of the editing interface for a\n// given node\n//\n// They form a doubly-linked mutable tree, starting at `view.docView`.\nconst NOT_DIRTY = 0, CHILD_DIRTY = 1, CONTENT_DIRTY = 2, NODE_DIRTY = 3;\n// Superclass for the various kinds of descriptions. Defines their\n// basic structure and shared methods.\nclass ViewDesc {\n constructor(parent, children, dom, \n // This is the node that holds the child views. It may be null for\n // descs that don't have children.\n contentDOM) {\n this.parent = parent;\n this.children = children;\n this.dom = dom;\n this.contentDOM = contentDOM;\n this.dirty = NOT_DIRTY;\n // An expando property on the DOM node provides a link back to its\n // description.\n dom.pmViewDesc = this;\n }\n // Used to check whether a given description corresponds to a\n // widget/mark/node.\n matchesWidget(widget) { return false; }\n matchesMark(mark) { return false; }\n matchesNode(node, outerDeco, innerDeco) { return false; }\n matchesHack(nodeName) { return false; }\n // When parsing in-editor content (in domchange.js), we allow\n // descriptions to determine the parse rules that should be used to\n // parse them.\n parseRule() { return null; }\n // Used by the editor's event handler to ignore events that come\n // from certain descs.\n stopEvent(event) { return false; }\n // The size of the content represented by this desc.\n get size() {\n let size = 0;\n for (let i = 0; i < this.children.length; i++)\n size += this.children[i].size;\n return size;\n }\n // For block nodes, this represents the space taken up by their\n // start/end tokens.\n get border() { return 0; }\n destroy() {\n this.parent = undefined;\n if (this.dom.pmViewDesc == this)\n this.dom.pmViewDesc = undefined;\n for (let i = 0; i < this.children.length; i++)\n this.children[i].destroy();\n }\n posBeforeChild(child) {\n for (let i = 0, pos = this.posAtStart;; i++) {\n let cur = this.children[i];\n if (cur == child)\n return pos;\n pos += cur.size;\n }\n }\n get posBefore() {\n return this.parent.posBeforeChild(this);\n }\n get posAtStart() {\n return this.parent ? this.parent.posBeforeChild(this) + this.border : 0;\n }\n get posAfter() {\n return this.posBefore + this.size;\n }\n get posAtEnd() {\n return this.posAtStart + this.size - 2 * this.border;\n }\n localPosFromDOM(dom, offset, bias) {\n // If the DOM position is in the content, use the child desc after\n // it to figure out a position.\n if (this.contentDOM && this.contentDOM.contains(dom.nodeType == 1 ? dom : dom.parentNode)) {\n if (bias < 0) {\n let domBefore, desc;\n if (dom == this.contentDOM) {\n domBefore = dom.childNodes[offset - 1];\n }\n else {\n while (dom.parentNode != this.contentDOM)\n dom = dom.parentNode;\n domBefore = dom.previousSibling;\n }\n while (domBefore && !((desc = domBefore.pmViewDesc) && desc.parent == this))\n domBefore = domBefore.previousSibling;\n return domBefore ? this.posBeforeChild(desc) + desc.size : this.posAtStart;\n }\n else {\n let domAfter, desc;\n if (dom == this.contentDOM) {\n domAfter = dom.childNodes[offset];\n }\n else {\n while (dom.parentNode != this.contentDOM)\n dom = dom.parentNode;\n domAfter = dom.nextSibling;\n }\n while (domAfter && !((desc = domAfter.pmViewDesc) && desc.parent == this))\n domAfter = domAfter.nextSibling;\n return domAfter ? this.posBeforeChild(desc) : this.posAtEnd;\n }\n }\n // Otherwise, use various heuristics, falling back on the bias\n // parameter, to determine whether to return the position at the\n // start or at the end of this view desc.\n let atEnd;\n if (dom == this.dom && this.contentDOM) {\n atEnd = offset > domIndex(this.contentDOM);\n }\n else if (this.contentDOM && this.contentDOM != this.dom && this.dom.contains(this.contentDOM)) {\n atEnd = dom.compareDocumentPosition(this.contentDOM) & 2;\n }\n else if (this.dom.firstChild) {\n if (offset == 0)\n for (let search = dom;; search = search.parentNode) {\n if (search == this.dom) {\n atEnd = false;\n break;\n }\n if (search.previousSibling)\n break;\n }\n if (atEnd == null && offset == dom.childNodes.length)\n for (let search = dom;; search = search.parentNode) {\n if (search == this.dom) {\n atEnd = true;\n break;\n }\n if (search.nextSibling)\n break;\n }\n }\n return (atEnd == null ? bias > 0 : atEnd) ? this.posAtEnd : this.posAtStart;\n }\n nearestDesc(dom, onlyNodes = false) {\n for (let first = true, cur = dom; cur; cur = cur.parentNode) {\n let desc = this.getDesc(cur), nodeDOM;\n if (desc && (!onlyNodes || desc.node)) {\n // If dom is outside of this desc's nodeDOM, don't count it.\n if (first && (nodeDOM = desc.nodeDOM) &&\n !(nodeDOM.nodeType == 1 ? nodeDOM.contains(dom.nodeType == 1 ? dom : dom.parentNode) : nodeDOM == dom))\n first = false;\n else\n return desc;\n }\n }\n }\n getDesc(dom) {\n let desc = dom.pmViewDesc;\n for (let cur = desc; cur; cur = cur.parent)\n if (cur == this)\n return desc;\n }\n posFromDOM(dom, offset, bias) {\n for (let scan = dom; scan; scan = scan.parentNode) {\n let desc = this.getDesc(scan);\n if (desc)\n return desc.localPosFromDOM(dom, offset, bias);\n }\n return -1;\n }\n // Find the desc for the node after the given pos, if any. (When a\n // parent node overrode rendering, there might not be one.)\n descAt(pos) {\n for (let i = 0, offset = 0; i < this.children.length; i++) {\n let child = this.children[i], end = offset + child.size;\n if (offset == pos && end != offset) {\n while (!child.border && child.children.length) {\n for (let i = 0; i < child.children.length; i++) {\n let inner = child.children[i];\n if (inner.size) {\n child = inner;\n break;\n }\n }\n }\n return child;\n }\n if (pos < end)\n return child.descAt(pos - offset - child.border);\n offset = end;\n }\n }\n domFromPos(pos, side) {\n if (!this.contentDOM)\n return { node: this.dom, offset: 0, atom: pos + 1 };\n // First find the position in the child array\n let i = 0, offset = 0;\n for (let curPos = 0; i < this.children.length; i++) {\n let child = this.children[i], end = curPos + child.size;\n if (end > pos || child instanceof TrailingHackViewDesc) {\n offset = pos - curPos;\n break;\n }\n curPos = end;\n }\n // If this points into the middle of a child, call through\n if (offset)\n return this.children[i].domFromPos(offset - this.children[i].border, side);\n // Go back if there were any zero-length widgets with side >= 0 before this point\n for (let prev; i && !(prev = this.children[i - 1]).size && prev instanceof WidgetViewDesc && prev.side >= 0; i--) { }\n // Scan towards the first useable node\n if (side <= 0) {\n let prev, enter = true;\n for (;; i--, enter = false) {\n prev = i ? this.children[i - 1] : null;\n if (!prev || prev.dom.parentNode == this.contentDOM)\n break;\n }\n if (prev && side && enter && !prev.border && !prev.domAtom)\n return prev.domFromPos(prev.size, side);\n return { node: this.contentDOM, offset: prev ? domIndex(prev.dom) + 1 : 0 };\n }\n else {\n let next, enter = true;\n for (;; i++, enter = false) {\n next = i < this.children.length ? this.children[i] : null;\n if (!next || next.dom.parentNode == this.contentDOM)\n break;\n }\n if (next && enter && !next.border && !next.domAtom)\n return next.domFromPos(0, side);\n return { node: this.contentDOM, offset: next ? domIndex(next.dom) : this.contentDOM.childNodes.length };\n }\n }\n // Used to find a DOM range in a single parent for a given changed\n // range.\n parseRange(from, to, base = 0) {\n if (this.children.length == 0)\n return { node: this.contentDOM, from, to, fromOffset: 0, toOffset: this.contentDOM.childNodes.length };\n let fromOffset = -1, toOffset = -1;\n for (let offset = base, i = 0;; i++) {\n let child = this.children[i], end = offset + child.size;\n if (fromOffset == -1 && from <= end) {\n let childBase = offset + child.border;\n // FIXME maybe descend mark views to parse a narrower range?\n if (from >= childBase && to <= end - child.border && child.node &&\n child.contentDOM && this.contentDOM.contains(child.contentDOM))\n return child.parseRange(from, to, childBase);\n from = offset;\n for (let j = i; j > 0; j--) {\n let prev = this.children[j - 1];\n if (prev.size && prev.dom.parentNode == this.contentDOM && !prev.emptyChildAt(1)) {\n fromOffset = domIndex(prev.dom) + 1;\n break;\n }\n from -= prev.size;\n }\n if (fromOffset == -1)\n fromOffset = 0;\n }\n if (fromOffset > -1 && (end > to || i == this.children.length - 1)) {\n to = end;\n for (let j = i + 1; j < this.children.length; j++) {\n let next = this.children[j];\n if (next.size && next.dom.parentNode == this.contentDOM && !next.emptyChildAt(-1)) {\n toOffset = domIndex(next.dom);\n break;\n }\n to += next.size;\n }\n if (toOffset == -1)\n toOffset = this.contentDOM.childNodes.length;\n break;\n }\n offset = end;\n }\n return { node: this.contentDOM, from, to, fromOffset, toOffset };\n }\n emptyChildAt(side) {\n if (this.border || !this.contentDOM || !this.children.length)\n return false;\n let child = this.children[side < 0 ? 0 : this.children.length - 1];\n return child.size == 0 || child.emptyChildAt(side);\n }\n domAfterPos(pos) {\n let { node, offset } = this.domFromPos(pos, 0);\n if (node.nodeType != 1 || offset == node.childNodes.length)\n throw new RangeError(\"No node after pos \" + pos);\n return node.childNodes[offset];\n }\n // View descs are responsible for setting any selection that falls\n // entirely inside of them, so that custom implementations can do\n // custom things with the selection. Note that this falls apart when\n // a selection starts in such a node and ends in another, in which\n // case we just use whatever domFromPos produces as a best effort.\n setSelection(anchor, head, view, force = false) {\n // If the selection falls entirely in a child, give it to that child\n let from = Math.min(anchor, head), to = Math.max(anchor, head);\n for (let i = 0, offset = 0; i < this.children.length; i++) {\n let child = this.children[i], end = offset + child.size;\n if (from > offset && to < end)\n return child.setSelection(anchor - offset - child.border, head - offset - child.border, view, force);\n offset = end;\n }\n let anchorDOM = this.domFromPos(anchor, anchor ? -1 : 1);\n let headDOM = head == anchor ? anchorDOM : this.domFromPos(head, head ? -1 : 1);\n let domSel = view.root.getSelection();\n let selRange = view.domSelectionRange();\n let brKludge = false;\n // On Firefox, using Selection.collapse to put the cursor after a\n // BR node for some reason doesn't always work (#1073). On Safari,\n // the cursor sometimes inexplicable visually lags behind its\n // reported position in such situations (#1092).\n if ((gecko || safari) && anchor == head) {\n let { node, offset } = anchorDOM;\n if (node.nodeType == 3) {\n brKludge = !!(offset && node.nodeValue[offset - 1] == \"\\n\");\n // Issue #1128\n if (brKludge && offset == node.nodeValue.length) {\n for (let scan = node, after; scan; scan = scan.parentNode) {\n if (after = scan.nextSibling) {\n if (after.nodeName == \"BR\")\n anchorDOM = headDOM = { node: after.parentNode, offset: domIndex(after) + 1 };\n break;\n }\n let desc = scan.pmViewDesc;\n if (desc && desc.node && desc.node.isBlock)\n break;\n }\n }\n }\n else {\n let prev = node.childNodes[offset - 1];\n brKludge = prev && (prev.nodeName == \"BR\" || prev.contentEditable == \"false\");\n }\n }\n // Firefox can act strangely when the selection is in front of an\n // uneditable node. See #1163 and https://bugzilla.mozilla.org/show_bug.cgi?id=1709536\n if (gecko && selRange.focusNode && selRange.focusNode != headDOM.node && selRange.focusNode.nodeType == 1) {\n let after = selRange.focusNode.childNodes[selRange.focusOffset];\n if (after && after.contentEditable == \"false\")\n force = true;\n }\n if (!(force || brKludge && safari) &&\n isEquivalentPosition(anchorDOM.node, anchorDOM.offset, selRange.anchorNode, selRange.anchorOffset) &&\n isEquivalentPosition(headDOM.node, headDOM.offset, selRange.focusNode, selRange.focusOffset))\n return;\n // Selection.extend can be used to create an 'inverted' selection\n // (one where the focus is before the anchor), but not all\n // browsers support it yet.\n let domSelExtended = false;\n if ((domSel.extend || anchor == head) && !(brKludge && gecko)) {\n domSel.collapse(anchorDOM.node, anchorDOM.offset);\n try {\n if (anchor != head)\n domSel.extend(headDOM.node, headDOM.offset);\n domSelExtended = true;\n }\n catch (_) {\n // In some cases with Chrome the selection is empty after calling\n // collapse, even when it should be valid. This appears to be a bug, but\n // it is difficult to isolate. If this happens fallback to the old path\n // without using extend.\n // Similarly, this could crash on Safari if the editor is hidden, and\n // there was no selection.\n }\n }\n if (!domSelExtended) {\n if (anchor > head) {\n let tmp = anchorDOM;\n anchorDOM = headDOM;\n headDOM = tmp;\n }\n let range = document.createRange();\n range.setEnd(headDOM.node, headDOM.offset);\n range.setStart(anchorDOM.node, anchorDOM.offset);\n domSel.removeAllRanges();\n domSel.addRange(range);\n }\n }\n ignoreMutation(mutation) {\n return !this.contentDOM && mutation.type != \"selection\";\n }\n get contentLost() {\n return this.contentDOM && this.contentDOM != this.dom && !this.dom.contains(this.contentDOM);\n }\n // Remove a subtree of the element tree that has been touched\n // by a DOM change, so that the next update will redraw it.\n markDirty(from, to) {\n for (let offset = 0, i = 0; i < this.children.length; i++) {\n let child = this.children[i], end = offset + child.size;\n if (offset == end ? from <= end && to >= offset : from < end && to > offset) {\n let startInside = offset + child.border, endInside = end - child.border;\n if (from >= startInside && to <= endInside) {\n this.dirty = from == offset || to == end ? CONTENT_DIRTY : CHILD_DIRTY;\n if (from == startInside && to == endInside &&\n (child.contentLost || child.dom.parentNode != this.contentDOM))\n child.dirty = NODE_DIRTY;\n else\n child.markDirty(from - startInside, to - startInside);\n return;\n }\n else {\n child.dirty = child.dom == child.contentDOM && child.dom.parentNode == this.contentDOM && !child.children.length\n ? CONTENT_DIRTY : NODE_DIRTY;\n }\n }\n offset = end;\n }\n this.dirty = CONTENT_DIRTY;\n }\n markParentsDirty() {\n let level = 1;\n for (let node = this.parent; node; node = node.parent, level++) {\n let dirty = level == 1 ? CONTENT_DIRTY : CHILD_DIRTY;\n if (node.dirty < dirty)\n node.dirty = dirty;\n }\n }\n get domAtom() { return false; }\n get ignoreForCoords() { return false; }\n get ignoreForSelection() { return false; }\n isText(text) { return false; }\n}\n// A widget desc represents a widget decoration, which is a DOM node\n// drawn between the document nodes.\nclass WidgetViewDesc extends ViewDesc {\n constructor(parent, widget, view, pos) {\n let self, dom = widget.type.toDOM;\n if (typeof dom == \"function\")\n dom = dom(view, () => {\n if (!self)\n return pos;\n if (self.parent)\n return self.parent.posBeforeChild(self);\n });\n if (!widget.type.spec.raw) {\n if (dom.nodeType != 1) {\n let wrap = document.createElement(\"span\");\n wrap.appendChild(dom);\n dom = wrap;\n }\n dom.contentEditable = \"false\";\n dom.classList.add(\"ProseMirror-widget\");\n }\n super(parent, [], dom, null);\n this.widget = widget;\n this.widget = widget;\n self = this;\n }\n matchesWidget(widget) {\n return this.dirty == NOT_DIRTY && widget.type.eq(this.widget.type);\n }\n parseRule() { return { ignore: true }; }\n stopEvent(event) {\n let stop = this.widget.spec.stopEvent;\n return stop ? stop(event) : false;\n }\n ignoreMutation(mutation) {\n return mutation.type != \"selection\" || this.widget.spec.ignoreSelection;\n }\n destroy() {\n this.widget.type.destroy(this.dom);\n super.destroy();\n }\n get domAtom() { return true; }\n get ignoreForSelection() { return !!this.widget.type.spec.relaxedSide; }\n get side() { return this.widget.type.side; }\n}\nclass CompositionViewDesc extends ViewDesc {\n constructor(parent, dom, textDOM, text) {\n super(parent, [], dom, null);\n this.textDOM = textDOM;\n this.text = text;\n }\n get size() { return this.text.length; }\n localPosFromDOM(dom, offset) {\n if (dom != this.textDOM)\n return this.posAtStart + (offset ? this.size : 0);\n return this.posAtStart + offset;\n }\n domFromPos(pos) {\n return { node: this.textDOM, offset: pos };\n }\n ignoreMutation(mut) {\n return mut.type === 'characterData' && mut.target.nodeValue == mut.oldValue;\n }\n}\n// A mark desc represents a mark. May have multiple children,\n// depending on how the mark is split. Note that marks are drawn using\n// a fixed nesting order, for simplicity and predictability, so in\n// some cases they will be split more often than would appear\n// necessary.\nclass MarkViewDesc extends ViewDesc {\n constructor(parent, mark, dom, contentDOM, spec) {\n super(parent, [], dom, contentDOM);\n this.mark = mark;\n this.spec = spec;\n }\n static create(parent, mark, inline, view) {\n let custom = view.nodeViews[mark.type.name];\n let spec = custom && custom(mark, view, inline);\n if (!spec || !spec.dom)\n spec = DOMSerializer.renderSpec(document, mark.type.spec.toDOM(mark, inline), null, mark.attrs);\n return new MarkViewDesc(parent, mark, spec.dom, spec.contentDOM || spec.dom, spec);\n }\n parseRule() {\n if ((this.dirty & NODE_DIRTY) || this.mark.type.spec.reparseInView)\n return null;\n return { mark: this.mark.type.name, attrs: this.mark.attrs, contentElement: this.contentDOM };\n }\n matchesMark(mark) { return this.dirty != NODE_DIRTY && this.mark.eq(mark); }\n markDirty(from, to) {\n super.markDirty(from, to);\n // Move dirty info to nearest node view\n if (this.dirty != NOT_DIRTY) {\n let parent = this.parent;\n while (!parent.node)\n parent = parent.parent;\n if (parent.dirty < this.dirty)\n parent.dirty = this.dirty;\n this.dirty = NOT_DIRTY;\n }\n }\n slice(from, to, view) {\n let copy = MarkViewDesc.create(this.parent, this.mark, true, view);\n let nodes = this.children, size = this.size;\n if (to < size)\n nodes = replaceNodes(nodes, to, size, view);\n if (from > 0)\n nodes = replaceNodes(nodes, 0, from, view);\n for (let i = 0; i < nodes.length; i++)\n nodes[i].parent = copy;\n copy.children = nodes;\n return copy;\n }\n ignoreMutation(mutation) {\n return this.spec.ignoreMutation ? this.spec.ignoreMutation(mutation) : super.ignoreMutation(mutation);\n }\n destroy() {\n if (this.spec.destroy)\n this.spec.destroy();\n super.destroy();\n }\n}\n// Node view descs are the main, most common type of view desc, and\n// correspond to an actual node in the document. Unlike mark descs,\n// they populate their child array themselves.\nclass NodeViewDesc extends ViewDesc {\n constructor(parent, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM, view, pos) {\n super(parent, [], dom, contentDOM);\n this.node = node;\n this.outerDeco = outerDeco;\n this.innerDeco = innerDeco;\n this.nodeDOM = nodeDOM;\n }\n // By default, a node is rendered using the `toDOM` method from the\n // node type spec. But client code can use the `nodeViews` spec to\n // supply a custom node view, which can influence various aspects of\n // the way the node works.\n //\n // (Using subclassing for this was intentionally decided against,\n // since it'd require exposing a whole slew of finicky\n // implementation details to the user code that they probably will\n // never need.)\n static create(parent, node, outerDeco, innerDeco, view, pos) {\n let custom = view.nodeViews[node.type.name], descObj;\n let spec = custom && custom(node, view, () => {\n // (This is a function that allows the custom view to find its\n // own position)\n if (!descObj)\n return pos;\n if (descObj.parent)\n return descObj.parent.posBeforeChild(descObj);\n }, outerDeco, innerDeco);\n let dom = spec && spec.dom, contentDOM = spec && spec.contentDOM;\n if (node.isText) {\n if (!dom)\n dom = document.createTextNode(node.text);\n else if (dom.nodeType != 3)\n throw new RangeError(\"Text must be rendered as a DOM text node\");\n }\n else if (!dom) {\n let spec = DOMSerializer.renderSpec(document, node.type.spec.toDOM(node), null, node.attrs);\n ({ dom, contentDOM } = spec);\n }\n if (!contentDOM && !node.isText && dom.nodeName != \"BR\") { // Chrome gets confused by <br contenteditable=false>\n if (!dom.hasAttribute(\"contenteditable\"))\n dom.contentEditable = \"false\";\n if (node.type.spec.draggable)\n dom.draggable = true;\n }\n let nodeDOM = dom;\n dom = applyOuterDeco(dom, outerDeco, node);\n if (spec)\n return descObj = new CustomNodeViewDesc(parent, node, outerDeco, innerDeco, dom, contentDOM || null, nodeDOM, spec, view, pos + 1);\n else if (node.isText)\n return new TextViewDesc(parent, node, outerDeco, innerDeco, dom, nodeDOM, view);\n else\n return new NodeViewDesc(parent, node, outerDeco, innerDeco, dom, contentDOM || null, nodeDOM, view, pos + 1);\n }\n parseRule() {\n // Experimental kludge to allow opt-in re-parsing of nodes\n if (this.node.type.spec.reparseInView)\n return null;\n // FIXME the assumption that this can always return the current\n // attrs means that if the user somehow manages to change the\n // attrs in the dom, that won't be picked up. Not entirely sure\n // whether this is a problem\n let rule = { node: this.node.type.name, attrs: this.node.attrs };\n if (this.node.type.whitespace == \"pre\")\n rule.preserveWhitespace = \"full\";\n if (!this.contentDOM) {\n rule.getContent = () => this.node.content;\n }\n else if (!this.contentLost) {\n rule.contentElement = this.contentDOM;\n }\n else {\n // Chrome likes to randomly recreate parent nodes when\n // backspacing things. When that happens, this tries to find the\n // new parent.\n for (let i = this.children.length - 1; i >= 0; i--) {\n let child = this.children[i];\n if (this.dom.contains(child.dom.parentNode)) {\n rule.contentElement = child.dom.parentNode;\n break;\n }\n }\n if (!rule.contentElement)\n rule.getContent = () => Fragment.empty;\n }\n return rule;\n }\n matchesNode(node, outerDeco, innerDeco) {\n return this.dirty == NOT_DIRTY && node.eq(this.node) &&\n sameOuterDeco(outerDeco, this.outerDeco) && innerDeco.eq(this.innerDeco);\n }\n get size() { return this.node.nodeSize; }\n get border() { return this.node.isLeaf ? 0 : 1; }\n // Syncs `this.children` to match `this.node.content` and the local\n // decorations, possibly introducing nesting for marks. Then, in a\n // separate step, syncs the DOM inside `this.contentDOM` to\n // `this.children`.\n updateChildren(view, pos) {\n let inline = this.node.inlineContent, off = pos;\n let composition = view.composing ? this.localCompositionInfo(view, pos) : null;\n let localComposition = composition && composition.pos > -1 ? composition : null;\n let compositionInChild = composition && composition.pos < 0;\n let updater = new ViewTreeUpdater(this, localComposition && localComposition.node, view);\n iterDeco(this.node, this.innerDeco, (widget, i, insideNode) => {\n if (widget.spec.marks)\n updater.syncToMarks(widget.spec.marks, inline, view, i);\n else if (widget.type.side >= 0 && !insideNode)\n updater.syncToMarks(i == this.node.childCount ? Mark.none : this.node.child(i).marks, inline, view, i);\n // If the next node is a desc matching this widget, reuse it,\n // otherwise insert the widget as a new view desc.\n updater.placeWidget(widget, view, off);\n }, (child, outerDeco, innerDeco, i) => {\n // Make sure the wrapping mark descs match the node's marks.\n updater.syncToMarks(child.marks, inline, view, i);\n // Try several strategies for drawing this node\n let compIndex;\n if (updater.findNodeMatch(child, outerDeco, innerDeco, i)) ;\n else if (compositionInChild && view.state.selection.from > off &&\n view.state.selection.to < off + child.nodeSize &&\n (compIndex = updater.findIndexWithChild(composition.node)) > -1 &&\n updater.updateNodeAt(child, outerDeco, innerDeco, compIndex, view)) ;\n else if (updater.updateNextNode(child, outerDeco, innerDeco, view, i, off)) ;\n else {\n // Add it as a new view\n updater.addNode(child, outerDeco, innerDeco, view, off);\n }\n off += child.nodeSize;\n });\n // Drop all remaining descs after the current position.\n updater.syncToMarks([], inline, view, 0);\n if (this.node.isTextblock)\n updater.addTextblockHacks();\n updater.destroyRest();\n // Sync the DOM if anything changed\n if (updater.changed || this.dirty == CONTENT_DIRTY) {\n // May have to protect focused DOM from being changed if a composition is active\n if (localComposition)\n this.protectLocalComposition(view, localComposition);\n renderDescs(this.contentDOM, this.children, view);\n if (ios)\n iosHacks(this.dom);\n }\n }\n localCompositionInfo(view, pos) {\n // Only do something if both the selection and a focused text node\n // are inside of this node\n let { from, to } = view.state.selection;\n if (!(view.state.selection instanceof TextSelection) || from < pos || to > pos + this.node.content.size)\n return null;\n let textNode = view.input.compositionNode;\n if (!textNode || !this.dom.contains(textNode.parentNode))\n return null;\n if (this.node.inlineContent) {\n // Find the text in the focused node in the node, stop if it's not\n // there (may have been modified through other means, in which\n // case it should overwritten)\n let text = textNode.nodeValue;\n let textPos = findTextInFragment(this.node.content, text, from - pos, to - pos);\n return textPos < 0 ? null : { node: textNode, pos: textPos, text };\n }\n else {\n return { node: textNode, pos: -1, text: \"\" };\n }\n }\n protectLocalComposition(view, { node, pos, text }) {\n // The node is already part of a local view desc, leave it there\n if (this.getDesc(node))\n return;\n // Create a composition view for the orphaned nodes\n let topNode = node;\n for (;; topNode = topNode.parentNode) {\n if (topNode.parentNode == this.contentDOM)\n break;\n while (topNode.previousSibling)\n topNode.parentNode.removeChild(topNode.previousSibling);\n while (topNode.nextSibling)\n topNode.parentNode.removeChild(topNode.nextSibling);\n if (topNode.pmViewDesc)\n topNode.pmViewDesc = undefined;\n }\n let desc = new CompositionViewDesc(this, topNode, node, text);\n view.input.compositionNodes.push(desc);\n // Patch up this.children to contain the composition view\n this.children = replaceNodes(this.children, pos, pos + text.length, view, desc);\n }\n // If this desc must be updated to match the given node decoration,\n // do so and return true.\n update(node, outerDeco, innerDeco, view) {\n if (this.dirty == NODE_DIRTY ||\n !node.sameMarkup(this.node))\n return false;\n this.updateInner(node, outerDeco, innerDeco, view);\n return true;\n }\n updateInner(node, outerDeco, innerDeco, view) {\n this.updateOuterDeco(outerDeco);\n this.node = node;\n this.innerDeco = innerDeco;\n if (this.contentDOM)\n this.updateChildren(view, this.posAtStart);\n this.dirty = NOT_DIRTY;\n }\n updateOuterDeco(outerDeco) {\n if (sameOuterDeco(outerDeco, this.outerDeco))\n return;\n let needsWrap = this.nodeDOM.nodeType != 1;\n let oldDOM = this.dom;\n this.dom = patchOuterDeco(this.dom, this.nodeDOM, computeOuterDeco(this.outerDeco, this.node, needsWrap), computeOuterDeco(outerDeco, this.node, needsWrap));\n if (this.dom != oldDOM) {\n oldDOM.pmViewDesc = undefined;\n this.dom.pmViewDesc = this;\n }\n this.outerDeco = outerDeco;\n }\n // Mark this node as being the selected node.\n selectNode() {\n if (this.nodeDOM.nodeType == 1) {\n this.nodeDOM.classList.add(\"ProseMirror-selectednode\");\n if (this.contentDOM || !this.node.type.spec.draggable)\n this.nodeDOM.draggable = true;\n }\n }\n // Remove selected node marking from this node.\n deselectNode() {\n if (this.nodeDOM.nodeType == 1) {\n this.nodeDOM.classList.remove(\"ProseMirror-selectednode\");\n if (this.contentDOM || !this.node.type.spec.draggable)\n this.nodeDOM.removeAttribute(\"draggable\");\n }\n }\n get domAtom() { return this.node.isAtom; }\n}\n// Create a view desc for the top-level document node, to be exported\n// and used by the view class.\nfunction docViewDesc(doc, outerDeco, innerDeco, dom, view) {\n applyOuterDeco(dom, outerDeco, doc);\n let docView = new NodeViewDesc(undefined, doc, outerDeco, innerDeco, dom, dom, dom, view, 0);\n if (docView.contentDOM)\n docView.updateChildren(view, 0);\n return docView;\n}\nclass TextViewDesc extends NodeViewDesc {\n constructor(parent, node, outerDeco, innerDeco, dom, nodeDOM, view) {\n super(parent, node, outerDeco, innerDeco, dom, null, nodeDOM, view, 0);\n }\n parseRule() {\n let skip = this.nodeDOM.parentNode;\n while (skip && skip != this.dom && !skip.pmIsDeco)\n skip = skip.parentNode;\n return { skip: (skip || true) };\n }\n update(node, outerDeco, innerDeco, view) {\n if (this.dirty == NODE_DIRTY || (this.dirty != NOT_DIRTY && !this.inParent()) ||\n !node.sameMarkup(this.node))\n return false;\n this.updateOuterDeco(outerDeco);\n if ((this.dirty != NOT_DIRTY || node.text != this.node.text) && node.text != this.nodeDOM.nodeValue) {\n this.nodeDOM.nodeValue = node.text;\n if (view.trackWrites == this.nodeDOM)\n view.trackWrites = null;\n }\n this.node = node;\n this.dirty = NOT_DIRTY;\n return true;\n }\n inParent() {\n let parentDOM = this.parent.contentDOM;\n for (let n = this.nodeDOM; n; n = n.parentNode)\n if (n == parentDOM)\n return true;\n return false;\n }\n domFromPos(pos) {\n return { node: this.nodeDOM, offset: pos };\n }\n localPosFromDOM(dom, offset, bias) {\n if (dom == this.nodeDOM)\n return this.posAtStart + Math.min(offset, this.node.text.length);\n return super.localPosFromDOM(dom, offset, bias);\n }\n ignoreMutation(mutation) {\n return mutation.type != \"characterData\" && mutation.type != \"selection\";\n }\n slice(from, to, view) {\n let node = this.node.cut(from, to), dom = document.createTextNode(node.text);\n return new TextViewDesc(this.parent, node, this.outerDeco, this.innerDeco, dom, dom, view);\n }\n markDirty(from, to) {\n super.markDirty(from, to);\n if (this.dom != this.nodeDOM && (from == 0 || to == this.nodeDOM.nodeValue.length))\n this.dirty = NODE_DIRTY;\n }\n get domAtom() { return false; }\n isText(text) { return this.node.text == text; }\n}\n// A dummy desc used to tag trailing BR or IMG nodes created to work\n// around contentEditable terribleness.\nclass TrailingHackViewDesc extends ViewDesc {\n parseRule() { return { ignore: true }; }\n matchesHack(nodeName) { return this.dirty == NOT_DIRTY && this.dom.nodeName == nodeName; }\n get domAtom() { return true; }\n get ignoreForCoords() { return this.dom.nodeName == \"IMG\"; }\n}\n// A separate subclass is used for customized node views, so that the\n// extra checks only have to be made for nodes that are actually\n// customized.\nclass CustomNodeViewDesc extends NodeViewDesc {\n constructor(parent, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM, spec, view, pos) {\n super(parent, node, outerDeco, innerDeco, dom, contentDOM, nodeDOM, view, pos);\n this.spec = spec;\n }\n // A custom `update` method gets to decide whether the update goes\n // through. If it does, and there's a `contentDOM` node, our logic\n // updates the children.\n update(node, outerDeco, innerDeco, view) {\n if (this.dirty == NODE_DIRTY)\n return false;\n if (this.spec.update && (this.node.type == node.type || this.spec.multiType)) {\n let result = this.spec.update(node, outerDeco, innerDeco);\n if (result)\n this.updateInner(node, outerDeco, innerDeco, view);\n return result;\n }\n else if (!this.contentDOM && !node.isLeaf) {\n return false;\n }\n else {\n return super.update(node, outerDeco, innerDeco, view);\n }\n }\n selectNode() {\n this.spec.selectNode ? this.spec.selectNode() : super.selectNode();\n }\n deselectNode() {\n this.spec.deselectNode ? this.spec.deselectNode() : super.deselectNode();\n }\n setSelection(anchor, head, view, force) {\n this.spec.setSelection ? this.spec.setSelection(anchor, head, view.root)\n : super.setSelection(anchor, head, view, force);\n }\n destroy() {\n if (this.spec.destroy)\n this.spec.destroy();\n super.destroy();\n }\n stopEvent(event) {\n return this.spec.stopEvent ? this.spec.stopEvent(event) : false;\n }\n ignoreMutation(mutation) {\n return this.spec.ignoreMutation ? this.spec.ignoreMutation(mutation) : super.ignoreMutation(mutation);\n }\n}\n// Sync the content of the given DOM node with the nodes associated\n// with the given array of view descs, recursing into mark descs\n// because this should sync the subtree for a whole node at a time.\nfunction renderDescs(parentDOM, descs, view) {\n let dom = parentDOM.firstChild, written = false;\n for (let i = 0; i < descs.length; i++) {\n let desc = descs[i], childDOM = desc.dom;\n if (childDOM.parentNode == parentDOM) {\n while (childDOM != dom) {\n dom = rm(dom);\n written = true;\n }\n dom = dom.nextSibling;\n }\n else {\n written = true;\n parentDOM.insertBefore(childDOM, dom);\n }\n if (desc instanceof MarkViewDesc) {\n let pos = dom ? dom.previousSibling : parentDOM.lastChild;\n renderDescs(desc.contentDOM, desc.children, view);\n dom = pos ? pos.nextSibling : parentDOM.firstChild;\n }\n }\n while (dom) {\n dom = rm(dom);\n written = true;\n }\n if (written && view.trackWrites == parentDOM)\n view.trackWrites = null;\n}\nconst OuterDecoLevel = function (nodeName) {\n if (nodeName)\n this.nodeName = nodeName;\n};\nOuterDecoLevel.prototype = Object.create(null);\nconst noDeco = [new OuterDecoLevel];\nfunction computeOuterDeco(outerDeco, node, needsWrap) {\n if (outerDeco.length == 0)\n return noDeco;\n let top = needsWrap ? noDeco[0] : new OuterDecoLevel, result = [top];\n for (let i = 0; i < outerDeco.length; i++) {\n let attrs = outerDeco[i].type.attrs;\n if (!attrs)\n continue;\n if (attrs.nodeName)\n result.push(top = new OuterDecoLevel(attrs.nodeName));\n for (let name in attrs) {\n let val = attrs[name];\n if (val == null)\n continue;\n if (needsWrap && result.length == 1)\n result.push(top = new OuterDecoLevel(node.isInline ? \"span\" : \"div\"));\n if (name == \"class\")\n top.class = (top.class ? top.class + \" \" : \"\") + val;\n else if (name == \"style\")\n top.style = (top.style ? top.style + \";\" : \"\") + val;\n else if (name != \"nodeName\")\n top[name] = val;\n }\n }\n return result;\n}\nfunction patchOuterDeco(outerDOM, nodeDOM, prevComputed, curComputed) {\n // Shortcut for trivial case\n if (prevComputed == noDeco && curComputed == noDeco)\n return nodeDOM;\n let curDOM = nodeDOM;\n for (let i = 0; i < curComputed.length; i++) {\n let deco = curComputed[i], prev = prevComputed[i];\n if (i) {\n let parent;\n if (prev && prev.nodeName == deco.nodeName && curDOM != outerDOM &&\n (parent = curDOM.parentNode) && parent.nodeName.toLowerCase() == deco.nodeName) {\n curDOM = parent;\n }\n else {\n parent = document.createElement(deco.nodeName);\n parent.pmIsDeco = true;\n parent.appendChild(curDOM);\n prev = noDeco[0];\n curDOM = parent;\n }\n }\n patchAttributes(curDOM, prev || noDeco[0], deco);\n }\n return curDOM;\n}\nfunction patchAttributes(dom, prev, cur) {\n for (let name in prev)\n if (name != \"class\" && name != \"style\" && name != \"nodeName\" && !(name in cur))\n dom.removeAttribute(name);\n for (let name in cur)\n if (name != \"class\" && name != \"style\" && name != \"nodeName\" && cur[name] != prev[name])\n dom.setAttribute(name, cur[name]);\n if (prev.class != cur.class) {\n let prevList = prev.class ? prev.class.split(\" \").filter(Boolean) : [];\n let curList = cur.class ? cur.class.split(\" \").filter(Boolean) : [];\n for (let i = 0; i < prevList.length; i++)\n if (curList.indexOf(prevList[i]) == -1)\n dom.classList.remove(prevList[i]);\n for (let i = 0; i < curList.length; i++)\n if (prevList.indexOf(curList[i]) == -1)\n dom.classList.add(curList[i]);\n if (dom.classList.length == 0)\n dom.removeAttribute(\"class\");\n }\n if (prev.style != cur.style) {\n if (prev.style) {\n let prop = /\\s*([\\w\\-\\xa1-\\uffff]+)\\s*:(?:\"(?:\\\\.|[^\"])*\"|'(?:\\\\.|[^'])*'|\\(.*?\\)|[^;])*/g, m;\n while (m = prop.exec(prev.style))\n dom.style.removeProperty(m[1]);\n }\n if (cur.style)\n dom.style.cssText += cur.style;\n }\n}\nfunction applyOuterDeco(dom, deco, node) {\n return patchOuterDeco(dom, dom, noDeco, computeOuterDeco(deco, node, dom.nodeType != 1));\n}\nfunction sameOuterDeco(a, b) {\n if (a.length != b.length)\n return false;\n for (let i = 0; i < a.length; i++)\n if (!a[i].type.eq(b[i].type))\n return false;\n return true;\n}\n// Remove a DOM node and return its next sibling.\nfunction rm(dom) {\n let next = dom.nextSibling;\n dom.parentNode.removeChild(dom);\n return next;\n}\n// Helper class for incrementally updating a tree of mark descs and\n// the widget and node descs inside of them.\nclass ViewTreeUpdater {\n constructor(top, lock, view) {\n this.lock = lock;\n this.view = view;\n // Index into `this.top`'s child array, represents the current\n // update position.\n this.index = 0;\n // When entering a mark, the current top and index are pushed\n // onto this.\n this.stack = [];\n // Tracks whether anything was changed\n this.changed = false;\n this.top = top;\n this.preMatch = preMatch(top.node.content, top);\n }\n // Destroy and remove the children between the given indices in\n // `this.top`.\n destroyBetween(start, end) {\n if (start == end)\n return;\n for (let i = start; i < end; i++)\n this.top.children[i].destroy();\n this.top.children.splice(start, end - start);\n this.changed = true;\n }\n // Destroy all remaining children in `this.top`.\n destroyRest() {\n this.destroyBetween(this.index, this.top.children.length);\n }\n // Sync the current stack of mark descs with the given array of\n // marks, reusing existing mark descs when possible.\n syncToMarks(marks, inline, view, parentIndex) {\n let keep = 0, depth = this.stack.length >> 1;\n let maxKeep = Math.min(depth, marks.length);\n while (keep < maxKeep &&\n (keep == depth - 1 ? this.top : this.stack[(keep + 1) << 1])\n .matchesMark(marks[keep]) && marks[keep].type.spec.spanning !== false)\n keep++;\n while (keep < depth) {\n this.destroyRest();\n this.top.dirty = NOT_DIRTY;\n this.index = this.stack.pop();\n this.top = this.stack.pop();\n depth--;\n }\n while (depth < marks.length) {\n this.stack.push(this.top, this.index + 1);\n let found = -1, scanTo = this.top.children.length;\n if (parentIndex < this.preMatch.index)\n scanTo = Math.min(this.index + 3, scanTo);\n for (let i = this.index; i < scanTo; i++) {\n let next = this.top.children[i];\n if (next.matchesMark(marks[depth]) && !this.isLocked(next.dom)) {\n found = i;\n break;\n }\n }\n if (found > -1) {\n if (found > this.index) {\n this.changed = true;\n this.destroyBetween(this.index, found);\n }\n this.top = this.top.children[this.index];\n }\n else {\n let markDesc = MarkViewDesc.create(this.top, marks[depth], inline, view);\n this.top.children.splice(this.index, 0, markDesc);\n this.top = markDesc;\n this.changed = true;\n }\n this.index = 0;\n depth++;\n }\n }\n // Try to find a node desc matching the given data. Skip over it and\n // return true when successful.\n findNodeMatch(node, outerDeco, innerDeco, index) {\n let found = -1, targetDesc;\n if (index >= this.preMatch.index &&\n (targetDesc = this.preMatch.matches[index - this.preMatch.index]).parent == this.top &&\n targetDesc.matchesNode(node, outerDeco, innerDeco)) {\n found = this.top.children.indexOf(targetDesc, this.index);\n }\n else {\n for (let i = this.index, e = Math.min(this.top.children.length, i + 5); i < e; i++) {\n let child = this.top.children[i];\n if (child.matchesNode(node, outerDeco, innerDeco) && !this.preMatch.matched.has(child)) {\n found = i;\n break;\n }\n }\n }\n if (found < 0)\n return false;\n this.destroyBetween(this.index, found);\n this.index++;\n return true;\n }\n updateNodeAt(node, outerDeco, innerDeco, index, view) {\n let child = this.top.children[index];\n if (child.dirty == NODE_DIRTY && child.dom == child.contentDOM)\n child.dirty = CONTENT_DIRTY;\n if (!child.update(node, outerDeco, innerDeco, view))\n return false;\n this.destroyBetween(this.index, index);\n this.index++;\n return true;\n }\n findIndexWithChild(domNode) {\n for (;;) {\n let parent = domNode.parentNode;\n if (!parent)\n return -1;\n if (parent == this.top.contentDOM) {\n let desc = domNode.pmViewDesc;\n if (desc)\n for (let i = this.index; i < this.top.children.length; i++) {\n if (this.top.children[i] == desc)\n return i;\n }\n return -1;\n }\n domNode = parent;\n }\n }\n // Try to update the next node, if any, to the given data. Checks\n // pre-matches to avoid overwriting nodes that could still be used.\n updateNextNode(node, outerDeco, innerDeco, view, index, pos) {\n for (let i = this.index; i < this.top.children.length; i++) {\n let next = this.top.children[i];\n if (next instanceof NodeViewDesc) {\n let preMatch = this.preMatch.matched.get(next);\n if (preMatch != null && preMatch != index)\n return false;\n let nextDOM = next.dom, updated;\n // Can't update if nextDOM is or contains this.lock, except if\n // it's a text node whose content already matches the new text\n // and whose decorations match the new ones.\n let locked = this.isLocked(nextDOM) &&\n !(node.isText && next.node && next.node.isText && next.nodeDOM.nodeValue == node.text &&\n next.dirty != NODE_DIRTY && sameOuterDeco(outerDeco, next.outerDeco));\n if (!locked && next.update(node, outerDeco, innerDeco, view)) {\n this.destroyBetween(this.index, i);\n if (next.dom != nextDOM)\n this.changed = true;\n this.index++;\n return true;\n }\n else if (!locked && (updated = this.recreateWrapper(next, node, outerDeco, innerDeco, view, pos))) {\n this.destroyBetween(this.index, i);\n this.top.children[this.index] = updated;\n if (updated.contentDOM) {\n updated.dirty = CONTENT_DIRTY;\n updated.updateChildren(view, pos + 1);\n updated.dirty = NOT_DIRTY;\n }\n this.changed = true;\n this.index++;\n return true;\n }\n break;\n }\n }\n return false;\n }\n // When a node with content is replaced by a different node with\n // identical content, move over its children.\n recreateWrapper(next, node, outerDeco, innerDeco, view, pos) {\n if (next.dirty || node.isAtom || !next.children.length ||\n !next.node.content.eq(node.content) ||\n !sameOuterDeco(outerDeco, next.outerDeco) || !innerDeco.eq(next.innerDeco))\n return null;\n let wrapper = NodeViewDesc.create(this.top, node, outerDeco, innerDeco, view, pos);\n if (wrapper.contentDOM) {\n wrapper.children = next.children;\n next.children = [];\n for (let ch of wrapper.children)\n ch.parent = wrapper;\n }\n next.destroy();\n return wrapper;\n }\n // Insert the node as a newly created node desc.\n addNode(node, outerDeco, innerDeco, view, pos) {\n let desc = NodeViewDesc.create(this.top, node, outerDeco, innerDeco, view, pos);\n if (desc.contentDOM)\n desc.updateChildren(view, pos + 1);\n this.top.children.splice(this.index++, 0, desc);\n this.changed = true;\n }\n placeWidget(widget, view, pos) {\n let next = this.index < this.top.children.length ? this.top.children[this.index] : null;\n if (next && next.matchesWidget(widget) &&\n (widget == next.widget || !next.widget.type.toDOM.parentNode)) {\n this.index++;\n }\n else {\n let desc = new WidgetViewDesc(this.top, widget, view, pos);\n this.top.children.splice(this.index++, 0, desc);\n this.changed = true;\n }\n }\n // Make sure a textblock looks and behaves correctly in\n // contentEditable.\n addTextblockHacks() {\n let lastChild = this.top.children[this.index - 1], parent = this.top;\n while (lastChild instanceof MarkViewDesc) {\n parent = lastChild;\n lastChild = parent.children[parent.children.length - 1];\n }\n if (!lastChild || // Empty textblock\n !(lastChild instanceof TextViewDesc) ||\n /\\n$/.test(lastChild.node.text) ||\n (this.view.requiresGeckoHackNode && /\\s$/.test(lastChild.node.text))) {\n // Avoid bugs in Safari's cursor drawing (#1165) and Chrome's mouse selection (#1152)\n if ((safari || chrome) && lastChild && lastChild.dom.contentEditable == \"false\")\n this.addHackNode(\"IMG\", parent);\n this.addHackNode(\"BR\", this.top);\n }\n }\n addHackNode(nodeName, parent) {\n if (parent == this.top && this.index < parent.children.length && parent.children[this.index].matchesHack(nodeName)) {\n this.index++;\n }\n else {\n let dom = document.createElement(nodeName);\n if (nodeName == \"IMG\") {\n dom.className = \"ProseMirror-separator\";\n dom.alt = \"\";\n }\n if (nodeName == \"BR\")\n dom.className = \"ProseMirror-trailingBreak\";\n let hack = new TrailingHackViewDesc(this.top, [], dom, null);\n if (parent != this.top)\n parent.children.push(hack);\n else\n parent.children.splice(this.index++, 0, hack);\n this.changed = true;\n }\n }\n isLocked(node) {\n return this.lock && (node == this.lock || node.nodeType == 1 && node.contains(this.lock.parentNode));\n }\n}\n// Iterate from the end of the fragment and array of descs to find\n// directly matching ones, in order to avoid overeagerly reusing those\n// for other nodes.\nfunction preMatch(frag, parentDesc) {\n let curDesc = parentDesc, descI = curDesc.children.length;\n let fI = frag.childCount, matched = new Map, matches = [];\n outer: while (fI > 0) {\n let desc;\n for (;;) {\n if (descI) {\n let next = curDesc.children[descI - 1];\n if (next instanceof MarkViewDesc) {\n curDesc = next;\n descI = next.children.length;\n }\n else {\n desc = next;\n descI--;\n break;\n }\n }\n else if (curDesc == parentDesc) {\n break outer;\n }\n else {\n descI = curDesc.parent.children.indexOf(curDesc);\n curDesc = curDesc.parent;\n }\n }\n let node = desc.node;\n if (!node)\n continue;\n if (node != frag.child(fI - 1))\n break;\n --fI;\n matched.set(desc, fI);\n matches.push(desc);\n }\n return { index: fI, matched, matches: matches.reverse() };\n}\nfunction compareSide(a, b) {\n return a.type.side - b.type.side;\n}\n// This function abstracts iterating over the nodes and decorations in\n// a fragment. Calls `onNode` for each node, with its local and child\n// decorations. Splits text nodes when there is a decoration starting\n// or ending inside of them. Calls `onWidget` for each widget.\nfunction iterDeco(parent, deco, onWidget, onNode) {\n let locals = deco.locals(parent), offset = 0;\n // Simple, cheap variant for when there are no local decorations\n if (locals.length == 0) {\n for (let i = 0; i < parent.childCount; i++) {\n let child = parent.child(i);\n onNode(child, locals, deco.forChild(offset, child), i);\n offset += child.nodeSize;\n }\n return;\n }\n let decoIndex = 0, active = [], restNode = null;\n for (let parentIndex = 0;;) {\n let widget, widgets;\n while (decoIndex < locals.length && locals[decoIndex].to == offset) {\n let next = locals[decoIndex++];\n if (next.widget) {\n if (!widget)\n widget = next;\n else\n (widgets || (widgets = [widget])).push(next);\n }\n }\n if (widget) {\n if (widgets) {\n widgets.sort(compareSide);\n for (let i = 0; i < widgets.length; i++)\n onWidget(widgets[i], parentIndex, !!restNode);\n }\n else {\n onWidget(widget, parentIndex, !!restNode);\n }\n }\n let child, index;\n if (restNode) {\n index = -1;\n child = restNode;\n restNode = null;\n }\n else if (parentIndex < parent.childCount) {\n index = parentIndex;\n child = parent.child(parentIndex++);\n }\n else {\n break;\n }\n for (let i = 0; i < active.length; i++)\n if (active[i].to <= offset)\n active.splice(i--, 1);\n while (decoIndex < locals.length && locals[decoIndex].from <= offset && locals[decoIndex].to > offset)\n active.push(locals[decoIndex++]);\n let end = offset + child.nodeSize;\n if (child.isText) {\n let cutAt = end;\n if (decoIndex < locals.length && locals[decoIndex].from < cutAt)\n cutAt = locals[decoIndex].from;\n for (let i = 0; i < active.length; i++)\n if (active[i].to < cutAt)\n cutAt = active[i].to;\n if (cutAt < end) {\n restNode = child.cut(cutAt - offset);\n child = child.cut(0, cutAt - offset);\n end = cutAt;\n index = -1;\n }\n }\n else {\n while (decoIndex < locals.length && locals[decoIndex].to < end)\n decoIndex++;\n }\n let outerDeco = child.isInline && !child.isLeaf ? active.filter(d => !d.inline) : active.slice();\n onNode(child, outerDeco, deco.forChild(offset, child), index);\n offset = end;\n }\n}\n// List markers in Mobile Safari will mysteriously disappear\n// sometimes. This works around that.\nfunction iosHacks(dom) {\n if (dom.nodeName == \"UL\" || dom.nodeName == \"OL\") {\n let oldCSS = dom.style.cssText;\n dom.style.cssText = oldCSS + \"; list-style: square !important\";\n window.getComputedStyle(dom).listStyle;\n dom.style.cssText = oldCSS;\n }\n}\n// Find a piece of text in an inline fragment, overlapping from-to\nfunction findTextInFragment(frag, text, from, to) {\n for (let i = 0, pos = 0; i < frag.childCount && pos <= to;) {\n let child = frag.child(i++), childStart = pos;\n pos += child.nodeSize;\n if (!child.isText)\n continue;\n let str = child.text;\n while (i < frag.childCount) {\n let next = frag.child(i++);\n pos += next.nodeSize;\n if (!next.isText)\n break;\n str += next.text;\n }\n if (pos >= from) {\n if (pos >= to && str.slice(to - text.length - childStart, to - childStart) == text)\n return to - text.length;\n let found = childStart < to ? str.lastIndexOf(text, to - childStart - 1) : -1;\n if (found >= 0 && found + text.length + childStart >= from)\n return childStart + found;\n if (from == to && str.length >= (to + text.length) - childStart &&\n str.slice(to - childStart, to - childStart + text.length) == text)\n return to;\n }\n }\n return -1;\n}\n// Replace range from-to in an array of view descs with replacement\n// (may be null to just delete). This goes very much against the grain\n// of the rest of this code, which tends to create nodes with the\n// right shape in one go, rather than messing with them after\n// creation, but is necessary in the composition hack.\nfunction replaceNodes(nodes, from, to, view, replacement) {\n let result = [];\n for (let i = 0, off = 0; i < nodes.length; i++) {\n let child = nodes[i], start = off, end = off += child.size;\n if (start >= to || end <= from) {\n result.push(child);\n }\n else {\n if (start < from)\n result.push(child.slice(0, from - start, view));\n if (replacement) {\n result.push(replacement);\n replacement = undefined;\n }\n if (end > to)\n result.push(child.slice(to - start, child.size, view));\n }\n }\n return result;\n}\n\nfunction selectionFromDOM(view, origin = null) {\n let domSel = view.domSelectionRange(), doc = view.state.doc;\n if (!domSel.focusNode)\n return null;\n let nearestDesc = view.docView.nearestDesc(domSel.focusNode), inWidget = nearestDesc && nearestDesc.size == 0;\n let head = view.docView.posFromDOM(domSel.focusNode, domSel.focusOffset, 1);\n if (head < 0)\n return null;\n let $head = doc.resolve(head), anchor, selection;\n if (selectionCollapsed(domSel)) {\n anchor = head;\n while (nearestDesc && !nearestDesc.node)\n nearestDesc = nearestDesc.parent;\n let nearestDescNode = nearestDesc.node;\n if (nearestDesc && nearestDescNode.isAtom && NodeSelection.isSelectable(nearestDescNode) && nearestDesc.parent\n && !(nearestDescNode.isInline && isOnEdge(domSel.focusNode, domSel.focusOffset, nearestDesc.dom))) {\n let pos = nearestDesc.posBefore;\n selection = new NodeSelection(head == pos ? $head : doc.resolve(pos));\n }\n }\n else {\n if (domSel instanceof view.dom.ownerDocument.defaultView.Selection && domSel.rangeCount > 1) {\n let min = head, max = head;\n for (let i = 0; i < domSel.rangeCount; i++) {\n let range = domSel.getRangeAt(i);\n min = Math.min(min, view.docView.posFromDOM(range.startContainer, range.startOffset, 1));\n max = Math.max(max, view.docView.posFromDOM(range.endContainer, range.endOffset, -1));\n }\n if (min < 0)\n return null;\n [anchor, head] = max == view.state.selection.anchor ? [max, min] : [min, max];\n $head = doc.resolve(head);\n }\n else {\n anchor = view.docView.posFromDOM(domSel.anchorNode, domSel.anchorOffset, 1);\n }\n if (anchor < 0)\n return null;\n }\n let $anchor = doc.resolve(anchor);\n if (!selection) {\n let bias = origin == \"pointer\" || (view.state.selection.head < $head.pos && !inWidget) ? 1 : -1;\n selection = selectionBetween(view, $anchor, $head, bias);\n }\n return selection;\n}\nfunction editorOwnsSelection(view) {\n return view.editable ? view.hasFocus() :\n hasSelection(view) && document.activeElement && document.activeElement.contains(view.dom);\n}\nfunction selectionToDOM(view, force = false) {\n let sel = view.state.selection;\n syncNodeSelection(view, sel);\n if (!editorOwnsSelection(view))\n return;\n // The delayed drag selection causes issues with Cell Selections\n // in Safari. And the drag selection delay is to workarond issues\n // which only present in Chrome.\n if (!force && view.input.mouseDown && view.input.mouseDown.allowDefault && chrome) {\n let domSel = view.domSelectionRange(), curSel = view.domObserver.currentSelection;\n if (domSel.anchorNode && curSel.anchorNode &&\n isEquivalentPosition(domSel.anchorNode, domSel.anchorOffset, curSel.anchorNode, curSel.anchorOffset)) {\n view.input.mouseDown.delayedSelectionSync = true;\n view.domObserver.setCurSelection();\n return;\n }\n }\n view.domObserver.disconnectSelection();\n if (view.cursorWrapper) {\n selectCursorWrapper(view);\n }\n else {\n let { anchor, head } = sel, resetEditableFrom, resetEditableTo;\n if (brokenSelectBetweenUneditable && !(sel instanceof TextSelection)) {\n if (!sel.$from.parent.inlineContent)\n resetEditableFrom = temporarilyEditableNear(view, sel.from);\n if (!sel.empty && !sel.$from.parent.inlineContent)\n resetEditableTo = temporarilyEditableNear(view, sel.to);\n }\n view.docView.setSelection(anchor, head, view, force);\n if (brokenSelectBetweenUneditable) {\n if (resetEditableFrom)\n resetEditable(resetEditableFrom);\n if (resetEditableTo)\n resetEditable(resetEditableTo);\n }\n if (sel.visible) {\n view.dom.classList.remove(\"ProseMirror-hideselection\");\n }\n else {\n view.dom.classList.add(\"ProseMirror-hideselection\");\n if (\"onselectionchange\" in document)\n removeClassOnSelectionChange(view);\n }\n }\n view.domObserver.setCurSelection();\n view.domObserver.connectSelection();\n}\n// Kludge to work around Webkit not allowing a selection to start/end\n// between non-editable block nodes. We briefly make something\n// editable, set the selection, then set it uneditable again.\nconst brokenSelectBetweenUneditable = safari || chrome && chrome_version < 63;\nfunction temporarilyEditableNear(view, pos) {\n let { node, offset } = view.docView.domFromPos(pos, 0);\n let after = offset < node.childNodes.length ? node.childNodes[offset] : null;\n let before = offset ? node.childNodes[offset - 1] : null;\n if (safari && after && after.contentEditable == \"false\")\n return setEditable(after);\n if ((!after || after.contentEditable == \"false\") &&\n (!before || before.contentEditable == \"false\")) {\n if (after)\n return setEditable(after);\n else if (before)\n return setEditable(before);\n }\n}\nfunction setEditable(element) {\n element.contentEditable = \"true\";\n if (safari && element.draggable) {\n element.draggable = false;\n element.wasDraggable = true;\n }\n return element;\n}\nfunction resetEditable(element) {\n element.contentEditable = \"false\";\n if (element.wasDraggable) {\n element.draggable = true;\n element.wasDraggable = null;\n }\n}\nfunction removeClassOnSelectionChange(view) {\n let doc = view.dom.ownerDocument;\n doc.removeEventListener(\"selectionchange\", view.input.hideSelectionGuard);\n let domSel = view.domSelectionRange();\n let node = domSel.anchorNode, offset = domSel.anchorOffset;\n doc.addEventListener(\"selectionchange\", view.input.hideSelectionGuard = () => {\n if (domSel.anchorNode != node || domSel.anchorOffset != offset) {\n doc.removeEventListener(\"selectionchange\", view.input.hideSelectionGuard);\n setTimeout(() => {\n if (!editorOwnsSelection(view) || view.state.selection.visible)\n view.dom.classList.remove(\"ProseMirror-hideselection\");\n }, 20);\n }\n });\n}\nfunction selectCursorWrapper(view) {\n let domSel = view.domSelection();\n if (!domSel)\n return;\n let node = view.cursorWrapper.dom, img = node.nodeName == \"IMG\";\n if (img)\n domSel.collapse(node.parentNode, domIndex(node) + 1);\n else\n domSel.collapse(node, 0);\n // Kludge to kill 'control selection' in IE11 when selecting an\n // invisible cursor wrapper, since that would result in those weird\n // resize handles and a selection that considers the absolutely\n // positioned wrapper, rather than the root editable node, the\n // focused element.\n if (!img && !view.state.selection.visible && ie && ie_version <= 11) {\n node.disabled = true;\n node.disabled = false;\n }\n}\nfunction syncNodeSelection(view, sel) {\n if (sel instanceof NodeSelection) {\n let desc = view.docView.descAt(sel.from);\n if (desc != view.lastSelectedViewDesc) {\n clearNodeSelection(view);\n if (desc)\n desc.selectNode();\n view.lastSelectedViewDesc = desc;\n }\n }\n else {\n clearNodeSelection(view);\n }\n}\n// Clear all DOM statefulness of the last node selection.\nfunction clearNodeSelection(view) {\n if (view.lastSelectedViewDesc) {\n if (view.lastSelectedViewDesc.parent)\n view.lastSelectedViewDesc.deselectNode();\n view.lastSelectedViewDesc = undefined;\n }\n}\nfunction selectionBetween(view, $anchor, $head, bias) {\n return view.someProp(\"createSelectionBetween\", f => f(view, $anchor, $head))\n || TextSelection.between($anchor, $head, bias);\n}\nfunction hasFocusAndSelection(view) {\n if (view.editable && !view.hasFocus())\n return false;\n return hasSelection(view);\n}\nfunction hasSelection(view) {\n let sel = view.domSelectionRange();\n if (!sel.anchorNode)\n return false;\n try {\n // Firefox will raise 'permission denied' errors when accessing\n // properties of `sel.anchorNode` when it's in a generated CSS\n // element.\n return view.dom.contains(sel.anchorNode.nodeType == 3 ? sel.anchorNode.parentNode : sel.anchorNode) &&\n (view.editable || view.dom.contains(sel.focusNode.nodeType == 3 ? sel.focusNode.parentNode : sel.focusNode));\n }\n catch (_) {\n return false;\n }\n}\nfunction anchorInRightPlace(view) {\n let anchorDOM = view.docView.domFromPos(view.state.selection.anchor, 0);\n let domSel = view.domSelectionRange();\n return isEquivalentPosition(anchorDOM.node, anchorDOM.offset, domSel.anchorNode, domSel.anchorOffset);\n}\n\nfunction moveSelectionBlock(state, dir) {\n let { $anchor, $head } = state.selection;\n let $side = dir > 0 ? $anchor.max($head) : $anchor.min($head);\n let $start = !$side.parent.inlineContent ? $side : $side.depth ? state.doc.resolve(dir > 0 ? $side.after() : $side.before()) : null;\n return $start && Selection.findFrom($start, dir);\n}\nfunction apply(view, sel) {\n view.dispatch(view.state.tr.setSelection(sel).scrollIntoView());\n return true;\n}\nfunction selectHorizontally(view, dir, mods) {\n let sel = view.state.selection;\n if (sel instanceof TextSelection) {\n if (mods.indexOf(\"s\") > -1) {\n let { $head } = sel, node = $head.textOffset ? null : dir < 0 ? $head.nodeBefore : $head.nodeAfter;\n if (!node || node.isText || !node.isLeaf)\n return false;\n let $newHead = view.state.doc.resolve($head.pos + node.nodeSize * (dir < 0 ? -1 : 1));\n return apply(view, new TextSelection(sel.$anchor, $newHead));\n }\n else if (!sel.empty) {\n return false;\n }\n else if (view.endOfTextblock(dir > 0 ? \"forward\" : \"backward\")) {\n let next = moveSelectionBlock(view.state, dir);\n if (next && (next instanceof NodeSelection))\n return apply(view, next);\n return false;\n }\n else if (!(mac && mods.indexOf(\"m\") > -1)) {\n let $head = sel.$head, node = $head.textOffset ? null : dir < 0 ? $head.nodeBefore : $head.nodeAfter, desc;\n if (!node || node.isText)\n return false;\n let nodePos = dir < 0 ? $head.pos - node.nodeSize : $head.pos;\n if (!(node.isAtom || (desc = view.docView.descAt(nodePos)) && !desc.contentDOM))\n return false;\n if (NodeSelection.isSelectable(node)) {\n return apply(view, new NodeSelection(dir < 0 ? view.state.doc.resolve($head.pos - node.nodeSize) : $head));\n }\n else if (webkit) {\n // Chrome and Safari will introduce extra pointless cursor\n // positions around inline uneditable nodes, so we have to\n // take over and move the cursor past them (#937)\n return apply(view, new TextSelection(view.state.doc.resolve(dir < 0 ? nodePos : nodePos + node.nodeSize)));\n }\n else {\n return false;\n }\n }\n }\n else if (sel instanceof NodeSelection && sel.node.isInline) {\n return apply(view, new TextSelection(dir > 0 ? sel.$to : sel.$from));\n }\n else {\n let next = moveSelectionBlock(view.state, dir);\n if (next)\n return apply(view, next);\n return false;\n }\n}\nfunction nodeLen(node) {\n return node.nodeType == 3 ? node.nodeValue.length : node.childNodes.length;\n}\nfunction isIgnorable(dom, dir) {\n let desc = dom.pmViewDesc;\n return desc && desc.size == 0 && (dir < 0 || dom.nextSibling || dom.nodeName != \"BR\");\n}\nfunction skipIgnoredNodes(view, dir) {\n return dir < 0 ? skipIgnoredNodesBefore(view) : skipIgnoredNodesAfter(view);\n}\n// Make sure the cursor isn't directly after one or more ignored\n// nodes, which will confuse the browser's cursor motion logic.\nfunction skipIgnoredNodesBefore(view) {\n let sel = view.domSelectionRange();\n let node = sel.focusNode, offset = sel.focusOffset;\n if (!node)\n return;\n let moveNode, moveOffset, force = false;\n // Gecko will do odd things when the selection is directly in front\n // of a non-editable node, so in that case, move it into the next\n // node if possible. Issue prosemirror/prosemirror#832.\n if (gecko && node.nodeType == 1 && offset < nodeLen(node) && isIgnorable(node.childNodes[offset], -1))\n force = true;\n for (;;) {\n if (offset > 0) {\n if (node.nodeType != 1) {\n break;\n }\n else {\n let before = node.childNodes[offset - 1];\n if (isIgnorable(before, -1)) {\n moveNode = node;\n moveOffset = --offset;\n }\n else if (before.nodeType == 3) {\n node = before;\n offset = node.nodeValue.length;\n }\n else\n break;\n }\n }\n else if (isBlockNode(node)) {\n break;\n }\n else {\n let prev = node.previousSibling;\n while (prev && isIgnorable(prev, -1)) {\n moveNode = node.parentNode;\n moveOffset = domIndex(prev);\n prev = prev.previousSibling;\n }\n if (!prev) {\n node = node.parentNode;\n if (node == view.dom)\n break;\n offset = 0;\n }\n else {\n node = prev;\n offset = nodeLen(node);\n }\n }\n }\n if (force)\n setSelFocus(view, node, offset);\n else if (moveNode)\n setSelFocus(view, moveNode, moveOffset);\n}\n// Make sure the cursor isn't directly before one or more ignored\n// nodes.\nfunction skipIgnoredNodesAfter(view) {\n let sel = view.domSelectionRange();\n let node = sel.focusNode, offset = sel.focusOffset;\n if (!node)\n return;\n let len = nodeLen(node);\n let moveNode, moveOffset;\n for (;;) {\n if (offset < len) {\n if (node.nodeType != 1)\n break;\n let after = node.childNodes[offset];\n if (isIgnorable(after, 1)) {\n moveNode = node;\n moveOffset = ++offset;\n }\n else\n break;\n }\n else if (isBlockNode(node)) {\n break;\n }\n else {\n let next = node.nextSibling;\n while (next && isIgnorable(next, 1)) {\n moveNode = next.parentNode;\n moveOffset = domIndex(next) + 1;\n next = next.nextSibling;\n }\n if (!next) {\n node = node.parentNode;\n if (node == view.dom)\n break;\n offset = len = 0;\n }\n else {\n node = next;\n offset = 0;\n len = nodeLen(node);\n }\n }\n }\n if (moveNode)\n setSelFocus(view, moveNode, moveOffset);\n}\nfunction isBlockNode(dom) {\n let desc = dom.pmViewDesc;\n return desc && desc.node && desc.node.isBlock;\n}\nfunction textNodeAfter(node, offset) {\n while (node && offset == node.childNodes.length && !hasBlockDesc(node)) {\n offset = domIndex(node) + 1;\n node = node.parentNode;\n }\n while (node && offset < node.childNodes.length) {\n let next = node.childNodes[offset];\n if (next.nodeType == 3)\n return next;\n if (next.nodeType == 1 && next.contentEditable == \"false\")\n break;\n node = next;\n offset = 0;\n }\n}\nfunction textNodeBefore(node, offset) {\n while (node && !offset && !hasBlockDesc(node)) {\n offset = domIndex(node);\n node = node.parentNode;\n }\n while (node && offset) {\n let next = node.childNodes[offset - 1];\n if (next.nodeType == 3)\n return next;\n if (next.nodeType == 1 && next.contentEditable == \"false\")\n break;\n node = next;\n offset = node.childNodes.length;\n }\n}\nfunction setSelFocus(view, node, offset) {\n if (node.nodeType != 3) {\n let before, after;\n if (after = textNodeAfter(node, offset)) {\n node = after;\n offset = 0;\n }\n else if (before = textNodeBefore(node, offset)) {\n node = before;\n offset = before.nodeValue.length;\n }\n }\n let sel = view.domSelection();\n if (!sel)\n return;\n if (selectionCollapsed(sel)) {\n let range = document.createRange();\n range.setEnd(node, offset);\n range.setStart(node, offset);\n sel.removeAllRanges();\n sel.addRange(range);\n }\n else if (sel.extend) {\n sel.extend(node, offset);\n }\n view.domObserver.setCurSelection();\n let { state } = view;\n // If no state update ends up happening, reset the selection.\n setTimeout(() => {\n if (view.state == state)\n selectionToDOM(view);\n }, 50);\n}\nfunction findDirection(view, pos) {\n let $pos = view.state.doc.resolve(pos);\n if (!(chrome || windows) && $pos.parent.inlineContent) {\n let coords = view.coordsAtPos(pos);\n if (pos > $pos.start()) {\n let before = view.coordsAtPos(pos - 1);\n let mid = (before.top + before.bottom) / 2;\n if (mid > coords.top && mid < coords.bottom && Math.abs(before.left - coords.left) > 1)\n return before.left < coords.left ? \"ltr\" : \"rtl\";\n }\n if (pos < $pos.end()) {\n let after = view.coordsAtPos(pos + 1);\n let mid = (after.top + after.bottom) / 2;\n if (mid > coords.top && mid < coords.bottom && Math.abs(after.left - coords.left) > 1)\n return after.left > coords.left ? \"ltr\" : \"rtl\";\n }\n }\n let computed = getComputedStyle(view.dom).direction;\n return computed == \"rtl\" ? \"rtl\" : \"ltr\";\n}\n// Check whether vertical selection motion would involve node\n// selections. If so, apply it (if not, the result is left to the\n// browser)\nfunction selectVertically(view, dir, mods) {\n let sel = view.state.selection;\n if (sel instanceof TextSelection && !sel.empty || mods.indexOf(\"s\") > -1)\n return false;\n if (mac && mods.indexOf(\"m\") > -1)\n return false;\n let { $from, $to } = sel;\n if (!$from.parent.inlineContent || view.endOfTextblock(dir < 0 ? \"up\" : \"down\")) {\n let next = moveSelectionBlock(view.state, dir);\n if (next && (next instanceof NodeSelection))\n return apply(view, next);\n }\n if (!$from.parent.inlineContent) {\n let side = dir < 0 ? $from : $to;\n let beyond = sel instanceof AllSelection ? Selection.near(side, dir) : Selection.findFrom(side, dir);\n return beyond ? apply(view, beyond) : false;\n }\n return false;\n}\nfunction stopNativeHorizontalDelete(view, dir) {\n if (!(view.state.selection instanceof TextSelection))\n return true;\n let { $head, $anchor, empty } = view.state.selection;\n if (!$head.sameParent($anchor))\n return true;\n if (!empty)\n return false;\n if (view.endOfTextblock(dir > 0 ? \"forward\" : \"backward\"))\n return true;\n let nextNode = !$head.textOffset && (dir < 0 ? $head.nodeBefore : $head.nodeAfter);\n if (nextNode && !nextNode.isText) {\n let tr = view.state.tr;\n if (dir < 0)\n tr.delete($head.pos - nextNode.nodeSize, $head.pos);\n else\n tr.delete($head.pos, $head.pos + nextNode.nodeSize);\n view.dispatch(tr);\n return true;\n }\n return false;\n}\nfunction switchEditable(view, node, state) {\n view.domObserver.stop();\n node.contentEditable = state;\n view.domObserver.start();\n}\n// Issue #867 / #1090 / https://bugs.chromium.org/p/chromium/issues/detail?id=903821\n// In which Safari (and at some point in the past, Chrome) does really\n// wrong things when the down arrow is pressed when the cursor is\n// directly at the start of a textblock and has an uneditable node\n// after it\nfunction safariDownArrowBug(view) {\n if (!safari || view.state.selection.$head.parentOffset > 0)\n return false;\n let { focusNode, focusOffset } = view.domSelectionRange();\n if (focusNode && focusNode.nodeType == 1 && focusOffset == 0 &&\n focusNode.firstChild && focusNode.firstChild.contentEditable == \"false\") {\n let child = focusNode.firstChild;\n switchEditable(view, child, \"true\");\n setTimeout(() => switchEditable(view, child, \"false\"), 20);\n }\n return false;\n}\n// A backdrop key mapping used to make sure we always suppress keys\n// that have a dangerous default effect, even if the commands they are\n// bound to return false, and to make sure that cursor-motion keys\n// find a cursor (as opposed to a node selection) when pressed. For\n// cursor-motion keys, the code in the handlers also takes care of\n// block selections.\nfunction getMods(event) {\n let result = \"\";\n if (event.ctrlKey)\n result += \"c\";\n if (event.metaKey)\n result += \"m\";\n if (event.altKey)\n result += \"a\";\n if (event.shiftKey)\n result += \"s\";\n return result;\n}\nfunction captureKeyDown(view, event) {\n let code = event.keyCode, mods = getMods(event);\n if (code == 8 || (mac && code == 72 && mods == \"c\")) { // Backspace, Ctrl-h on Mac\n return stopNativeHorizontalDelete(view, -1) || skipIgnoredNodes(view, -1);\n }\n else if ((code == 46 && !event.shiftKey) || (mac && code == 68 && mods == \"c\")) { // Delete, Ctrl-d on Mac\n return stopNativeHorizontalDelete(view, 1) || skipIgnoredNodes(view, 1);\n }\n else if (code == 13 || code == 27) { // Enter, Esc\n return true;\n }\n else if (code == 37 || (mac && code == 66 && mods == \"c\")) { // Left arrow, Ctrl-b on Mac\n let dir = code == 37 ? (findDirection(view, view.state.selection.from) == \"ltr\" ? -1 : 1) : -1;\n return selectHorizontally(view, dir, mods) || skipIgnoredNodes(view, dir);\n }\n else if (code == 39 || (mac && code == 70 && mods == \"c\")) { // Right arrow, Ctrl-f on Mac\n let dir = code == 39 ? (findDirection(view, view.state.selection.from) == \"ltr\" ? 1 : -1) : 1;\n return selectHorizontally(view, dir, mods) || skipIgnoredNodes(view, dir);\n }\n else if (code == 38 || (mac && code == 80 && mods == \"c\")) { // Up arrow, Ctrl-p on Mac\n return selectVertically(view, -1, mods) || skipIgnoredNodes(view, -1);\n }\n else if (code == 40 || (mac && code == 78 && mods == \"c\")) { // Down arrow, Ctrl-n on Mac\n return safariDownArrowBug(view) || selectVertically(view, 1, mods) || skipIgnoredNodes(view, 1);\n }\n else if (mods == (mac ? \"m\" : \"c\") &&\n (code == 66 || code == 73 || code == 89 || code == 90)) { // Mod-[biyz]\n return true;\n }\n return false;\n}\n\nfunction serializeForClipboard(view, slice) {\n view.someProp(\"transformCopied\", f => { slice = f(slice, view); });\n let context = [], { content, openStart, openEnd } = slice;\n while (openStart > 1 && openEnd > 1 && content.childCount == 1 && content.firstChild.childCount == 1) {\n openStart--;\n openEnd--;\n let node = content.firstChild;\n context.push(node.type.name, node.attrs != node.type.defaultAttrs ? node.attrs : null);\n content = node.content;\n }\n let serializer = view.someProp(\"clipboardSerializer\") || DOMSerializer.fromSchema(view.state.schema);\n let doc = detachedDoc(), wrap = doc.createElement(\"div\");\n wrap.appendChild(serializer.serializeFragment(content, { document: doc }));\n let firstChild = wrap.firstChild, needsWrap, wrappers = 0;\n while (firstChild && firstChild.nodeType == 1 && (needsWrap = wrapMap[firstChild.nodeName.toLowerCase()])) {\n for (let i = needsWrap.length - 1; i >= 0; i--) {\n let wrapper = doc.createElement(needsWrap[i]);\n while (wrap.firstChild)\n wrapper.appendChild(wrap.firstChild);\n wrap.appendChild(wrapper);\n wrappers++;\n }\n firstChild = wrap.firstChild;\n }\n if (firstChild && firstChild.nodeType == 1)\n firstChild.setAttribute(\"data-pm-slice\", `${openStart} ${openEnd}${wrappers ? ` -${wrappers}` : \"\"} ${JSON.stringify(context)}`);\n let text = view.someProp(\"clipboardTextSerializer\", f => f(slice, view)) ||\n slice.content.textBetween(0, slice.content.size, \"\\n\\n\");\n return { dom: wrap, text, slice };\n}\n// Read a slice of content from the clipboard (or drop data).\nfunction parseFromClipboard(view, text, html, plainText, $context) {\n let inCode = $context.parent.type.spec.code;\n let dom, slice;\n if (!html && !text)\n return null;\n let asText = !!text && (plainText || inCode || !html);\n if (asText) {\n view.someProp(\"transformPastedText\", f => { text = f(text, inCode || plainText, view); });\n if (inCode) {\n slice = new Slice(Fragment.from(view.state.schema.text(text.replace(/\\r\\n?/g, \"\\n\"))), 0, 0);\n view.someProp(\"transformPasted\", f => { slice = f(slice, view, true); });\n return slice;\n }\n let parsed = view.someProp(\"clipboardTextParser\", f => f(text, $context, plainText, view));\n if (parsed) {\n slice = parsed;\n }\n else {\n let marks = $context.marks();\n let { schema } = view.state, serializer = DOMSerializer.fromSchema(schema);\n dom = document.createElement(\"div\");\n text.split(/(?:\\r\\n?|\\n)+/).forEach(block => {\n let p = dom.appendChild(document.createElement(\"p\"));\n if (block)\n p.appendChild(serializer.serializeNode(schema.text(block, marks)));\n });\n }\n }\n else {\n view.someProp(\"transformPastedHTML\", f => { html = f(html, view); });\n dom = readHTML(html);\n if (webkit)\n restoreReplacedSpaces(dom);\n }\n let contextNode = dom && dom.querySelector(\"[data-pm-slice]\");\n let sliceData = contextNode && /^(\\d+) (\\d+)(?: -(\\d+))? (.*)/.exec(contextNode.getAttribute(\"data-pm-slice\") || \"\");\n if (sliceData && sliceData[3])\n for (let i = +sliceData[3]; i > 0; i--) {\n let child = dom.firstChild;\n while (child && child.nodeType != 1)\n child = child.nextSibling;\n if (!child)\n break;\n dom = child;\n }\n if (!slice) {\n let parser = view.someProp(\"clipboardParser\") || view.someProp(\"domParser\") || DOMParser.fromSchema(view.state.schema);\n slice = parser.parseSlice(dom, {\n preserveWhitespace: !!(asText || sliceData),\n context: $context,\n ruleFromNode(dom) {\n if (dom.nodeName == \"BR\" && !dom.nextSibling &&\n dom.parentNode && !inlineParents.test(dom.parentNode.nodeName))\n return { ignore: true };\n return null;\n }\n });\n }\n if (sliceData) {\n slice = addContext(closeSlice(slice, +sliceData[1], +sliceData[2]), sliceData[4]);\n }\n else { // HTML wasn't created by ProseMirror. Make sure top-level siblings are coherent\n slice = Slice.maxOpen(normalizeSiblings(slice.content, $context), true);\n if (slice.openStart || slice.openEnd) {\n let openStart = 0, openEnd = 0;\n for (let node = slice.content.firstChild; openStart < slice.openStart && !node.type.spec.isolating; openStart++, node = node.firstChild) { }\n for (let node = slice.content.lastChild; openEnd < slice.openEnd && !node.type.spec.isolating; openEnd++, node = node.lastChild) { }\n slice = closeSlice(slice, openStart, openEnd);\n }\n }\n view.someProp(\"transformPasted\", f => { slice = f(slice, view, asText); });\n return slice;\n}\nconst inlineParents = /^(a|abbr|acronym|b|cite|code|del|em|i|ins|kbd|label|output|q|ruby|s|samp|span|strong|sub|sup|time|u|tt|var)$/i;\n// Takes a slice parsed with parseSlice, which means there hasn't been\n// any content-expression checking done on the top nodes, tries to\n// find a parent node in the current context that might fit the nodes,\n// and if successful, rebuilds the slice so that it fits into that parent.\n//\n// This addresses the problem that Transform.replace expects a\n// coherent slice, and will fail to place a set of siblings that don't\n// fit anywhere in the schema.\nfunction normalizeSiblings(fragment, $context) {\n if (fragment.childCount < 2)\n return fragment;\n for (let d = $context.depth; d >= 0; d--) {\n let parent = $context.node(d);\n let match = parent.contentMatchAt($context.index(d));\n let lastWrap, result = [];\n fragment.forEach(node => {\n if (!result)\n return;\n let wrap = match.findWrapping(node.type), inLast;\n if (!wrap)\n return result = null;\n if (inLast = result.length && lastWrap.length && addToSibling(wrap, lastWrap, node, result[result.length - 1], 0)) {\n result[result.length - 1] = inLast;\n }\n else {\n if (result.length)\n result[result.length - 1] = closeRight(result[result.length - 1], lastWrap.length);\n let wrapped = withWrappers(node, wrap);\n result.push(wrapped);\n match = match.matchType(wrapped.type);\n lastWrap = wrap;\n }\n });\n if (result)\n return Fragment.from(result);\n }\n return fragment;\n}\nfunction withWrappers(node, wrap, from = 0) {\n for (let i = wrap.length - 1; i >= from; i--)\n node = wrap[i].create(null, Fragment.from(node));\n return node;\n}\n// Used to group adjacent nodes wrapped in similar parents by\n// normalizeSiblings into the same parent node\nfunction addToSibling(wrap, lastWrap, node, sibling, depth) {\n if (depth < wrap.length && depth < lastWrap.length && wrap[depth] == lastWrap[depth]) {\n let inner = addToSibling(wrap, lastWrap, node, sibling.lastChild, depth + 1);\n if (inner)\n return sibling.copy(sibling.content.replaceChild(sibling.childCount - 1, inner));\n let match = sibling.contentMatchAt(sibling.childCount);\n if (match.matchType(depth == wrap.length - 1 ? node.type : wrap[depth + 1]))\n return sibling.copy(sibling.content.append(Fragment.from(withWrappers(node, wrap, depth + 1))));\n }\n}\nfunction closeRight(node, depth) {\n if (depth == 0)\n return node;\n let fragment = node.content.replaceChild(node.childCount - 1, closeRight(node.lastChild, depth - 1));\n let fill = node.contentMatchAt(node.childCount).fillBefore(Fragment.empty, true);\n return node.copy(fragment.append(fill));\n}\nfunction closeRange(fragment, side, from, to, depth, openEnd) {\n let node = side < 0 ? fragment.firstChild : fragment.lastChild, inner = node.content;\n if (fragment.childCount > 1)\n openEnd = 0;\n if (depth < to - 1)\n inner = closeRange(inner, side, from, to, depth + 1, openEnd);\n if (depth >= from)\n inner = side < 0 ? node.contentMatchAt(0).fillBefore(inner, openEnd <= depth).append(inner)\n : inner.append(node.contentMatchAt(node.childCount).fillBefore(Fragment.empty, true));\n return fragment.replaceChild(side < 0 ? 0 : fragment.childCount - 1, node.copy(inner));\n}\nfunction closeSlice(slice, openStart, openEnd) {\n if (openStart < slice.openStart)\n slice = new Slice(closeRange(slice.content, -1, openStart, slice.openStart, 0, slice.openEnd), openStart, slice.openEnd);\n if (openEnd < slice.openEnd)\n slice = new Slice(closeRange(slice.content, 1, openEnd, slice.openEnd, 0, 0), slice.openStart, openEnd);\n return slice;\n}\n// Trick from jQuery -- some elements must be wrapped in other\n// elements for innerHTML to work. I.e. if you do `div.innerHTML =\n// \"<td>..</td>\"` the table cells are ignored.\nconst wrapMap = {\n thead: [\"table\"],\n tbody: [\"table\"],\n tfoot: [\"table\"],\n caption: [\"table\"],\n colgroup: [\"table\"],\n col: [\"table\", \"colgroup\"],\n tr: [\"table\", \"tbody\"],\n td: [\"table\", \"tbody\", \"tr\"],\n th: [\"table\", \"tbody\", \"tr\"]\n};\nlet _detachedDoc = null;\nfunction detachedDoc() {\n return _detachedDoc || (_detachedDoc = document.implementation.createHTMLDocument(\"title\"));\n}\nlet _policy = null;\nfunction maybeWrapTrusted(html) {\n let trustedTypes = window.trustedTypes;\n if (!trustedTypes)\n return html;\n // With the require-trusted-types-for CSP, Chrome will block\n // innerHTML, even on a detached document. This wraps the string in\n // a way that makes the browser allow us to use its parser again.\n if (!_policy)\n _policy = trustedTypes.defaultPolicy || trustedTypes.createPolicy(\"ProseMirrorClipboard\", { createHTML: (s) => s });\n return _policy.createHTML(html);\n}\nfunction readHTML(html) {\n let metas = /^(\\s*<meta [^>]*>)*/.exec(html);\n if (metas)\n html = html.slice(metas[0].length);\n let elt = detachedDoc().createElement(\"div\");\n let firstTag = /<([a-z][^>\\s]+)/i.exec(html), wrap;\n if (wrap = firstTag && wrapMap[firstTag[1].toLowerCase()])\n html = wrap.map(n => \"<\" + n + \">\").join(\"\") + html + wrap.map(n => \"</\" + n + \">\").reverse().join(\"\");\n elt.innerHTML = maybeWrapTrusted(html);\n if (wrap)\n for (let i = 0; i < wrap.length; i++)\n elt = elt.querySelector(wrap[i]) || elt;\n return elt;\n}\n// Webkit browsers do some hard-to-predict replacement of regular\n// spaces with non-breaking spaces when putting content on the\n// clipboard. This tries to convert such non-breaking spaces (which\n// will be wrapped in a plain span on Chrome, a span with class\n// Apple-converted-space on Safari) back to regular spaces.\nfunction restoreReplacedSpaces(dom) {\n let nodes = dom.querySelectorAll(chrome ? \"span:not([class]):not([style])\" : \"span.Apple-converted-space\");\n for (let i = 0; i < nodes.length; i++) {\n let node = nodes[i];\n if (node.childNodes.length == 1 && node.textContent == \"\\u00a0\" && node.parentNode)\n node.parentNode.replaceChild(dom.ownerDocument.createTextNode(\" \"), node);\n }\n}\nfunction addContext(slice, context) {\n if (!slice.size)\n return slice;\n let schema = slice.content.firstChild.type.schema, array;\n try {\n array = JSON.parse(context);\n }\n catch (e) {\n return slice;\n }\n let { content, openStart, openEnd } = slice;\n for (let i = array.length - 2; i >= 0; i -= 2) {\n let type = schema.nodes[array[i]];\n if (!type || type.hasRequiredAttrs())\n break;\n content = Fragment.from(type.create(array[i + 1], content));\n openStart++;\n openEnd++;\n }\n return new Slice(content, openStart, openEnd);\n}\n\n// A collection of DOM events that occur within the editor, and callback functions\n// to invoke when the event fires.\nconst handlers = {};\nconst editHandlers = {};\nconst passiveHandlers = { touchstart: true, touchmove: true };\nclass InputState {\n constructor() {\n this.shiftKey = false;\n this.mouseDown = null;\n this.lastKeyCode = null;\n this.lastKeyCodeTime = 0;\n this.lastClick = { time: 0, x: 0, y: 0, type: \"\", button: 0 };\n this.lastSelectionOrigin = null;\n this.lastSelectionTime = 0;\n this.lastIOSEnter = 0;\n this.lastIOSEnterFallbackTimeout = -1;\n this.lastFocus = 0;\n this.lastTouch = 0;\n this.lastChromeDelete = 0;\n this.composing = false;\n this.compositionNode = null;\n this.composingTimeout = -1;\n this.compositionNodes = [];\n this.compositionEndedAt = -2e8;\n this.compositionID = 1;\n this.badSafariComposition = false;\n // Set to a composition ID when there are pending changes at compositionend\n this.compositionPendingChanges = 0;\n this.domChangeCount = 0;\n this.eventHandlers = Object.create(null);\n this.hideSelectionGuard = null;\n }\n}\nfunction initInput(view) {\n for (let event in handlers) {\n let handler = handlers[event];\n view.dom.addEventListener(event, view.input.eventHandlers[event] = (event) => {\n if (eventBelongsToView(view, event) && !runCustomHandler(view, event) &&\n (view.editable || !(event.type in editHandlers)))\n handler(view, event);\n }, passiveHandlers[event] ? { passive: true } : undefined);\n }\n // On Safari, for reasons beyond my understanding, adding an input\n // event handler makes an issue where the composition vanishes when\n // you press enter go away.\n if (safari)\n view.dom.addEventListener(\"input\", () => null);\n ensureListeners(view);\n}\nfunction setSelectionOrigin(view, origin) {\n view.input.lastSelectionOrigin = origin;\n view.input.lastSelectionTime = Date.now();\n}\nfunction destroyInput(view) {\n view.domObserver.stop();\n for (let type in view.input.eventHandlers)\n view.dom.removeEventListener(type, view.input.eventHandlers[type]);\n clearTimeout(view.input.composingTimeout);\n clearTimeout(view.input.lastIOSEnterFallbackTimeout);\n}\nfunction ensureListeners(view) {\n view.someProp(\"handleDOMEvents\", currentHandlers => {\n for (let type in currentHandlers)\n if (!view.input.eventHandlers[type])\n view.dom.addEventListener(type, view.input.eventHandlers[type] = event => runCustomHandler(view, event));\n });\n}\nfunction runCustomHandler(view, event) {\n return view.someProp(\"handleDOMEvents\", handlers => {\n let handler = handlers[event.type];\n return handler ? handler(view, event) || event.defaultPrevented : false;\n });\n}\nfunction eventBelongsToView(view, event) {\n if (!event.bubbles)\n return true;\n if (event.defaultPrevented)\n return false;\n for (let node = event.target; node != view.dom; node = node.parentNode)\n if (!node || node.nodeType == 11 ||\n (node.pmViewDesc && node.pmViewDesc.stopEvent(event)))\n return false;\n return true;\n}\nfunction dispatchEvent(view, event) {\n if (!runCustomHandler(view, event) && handlers[event.type] &&\n (view.editable || !(event.type in editHandlers)))\n handlers[event.type](view, event);\n}\neditHandlers.keydown = (view, _event) => {\n let event = _event;\n view.input.shiftKey = event.keyCode == 16 || event.shiftKey;\n if (inOrNearComposition(view, event))\n return;\n view.input.lastKeyCode = event.keyCode;\n view.input.lastKeyCodeTime = Date.now();\n // Suppress enter key events on Chrome Android, because those tend\n // to be part of a confused sequence of composition events fired,\n // and handling them eagerly tends to corrupt the input.\n if (android && chrome && event.keyCode == 13)\n return;\n if (event.keyCode != 229)\n view.domObserver.forceFlush();\n // On iOS, if we preventDefault enter key presses, the virtual\n // keyboard gets confused. So the hack here is to set a flag that\n // makes the DOM change code recognize that what just happens should\n // be replaced by whatever the Enter key handlers do.\n if (ios && event.keyCode == 13 && !event.ctrlKey && !event.altKey && !event.metaKey) {\n let now = Date.now();\n view.input.lastIOSEnter = now;\n view.input.lastIOSEnterFallbackTimeout = setTimeout(() => {\n if (view.input.lastIOSEnter == now) {\n view.someProp(\"handleKeyDown\", f => f(view, keyEvent(13, \"Enter\")));\n view.input.lastIOSEnter = 0;\n }\n }, 200);\n }\n else if (view.someProp(\"handleKeyDown\", f => f(view, event)) || captureKeyDown(view, event)) {\n event.preventDefault();\n }\n else {\n setSelectionOrigin(view, \"key\");\n }\n};\neditHandlers.keyup = (view, event) => {\n if (event.keyCode == 16)\n view.input.shiftKey = false;\n};\neditHandlers.keypress = (view, _event) => {\n let event = _event;\n if (inOrNearComposition(view, event) || !event.charCode ||\n event.ctrlKey && !event.altKey || mac && event.metaKey)\n return;\n if (view.someProp(\"handleKeyPress\", f => f(view, event))) {\n event.preventDefault();\n return;\n }\n let sel = view.state.selection;\n if (!(sel instanceof TextSelection) || !sel.$from.sameParent(sel.$to)) {\n let text = String.fromCharCode(event.charCode);\n let deflt = () => view.state.tr.insertText(text).scrollIntoView();\n if (!/[\\r\\n]/.test(text) && !view.someProp(\"handleTextInput\", f => f(view, sel.$from.pos, sel.$to.pos, text, deflt)))\n view.dispatch(deflt());\n event.preventDefault();\n }\n};\nfunction eventCoords(event) { return { left: event.clientX, top: event.clientY }; }\nfunction isNear(event, click) {\n let dx = click.x - event.clientX, dy = click.y - event.clientY;\n return dx * dx + dy * dy < 100;\n}\nfunction runHandlerOnContext(view, propName, pos, inside, event) {\n if (inside == -1)\n return false;\n let $pos = view.state.doc.resolve(inside);\n for (let i = $pos.depth + 1; i > 0; i--) {\n if (view.someProp(propName, f => i > $pos.depth ? f(view, pos, $pos.nodeAfter, $pos.before(i), event, true)\n : f(view, pos, $pos.node(i), $pos.before(i), event, false)))\n return true;\n }\n return false;\n}\nfunction updateSelection(view, selection, origin) {\n if (!view.focused)\n view.focus();\n if (view.state.selection.eq(selection))\n return;\n let tr = view.state.tr.setSelection(selection);\n if (origin == \"pointer\")\n tr.setMeta(\"pointer\", true);\n view.dispatch(tr);\n}\nfunction selectClickedLeaf(view, inside) {\n if (inside == -1)\n return false;\n let $pos = view.state.doc.resolve(inside), node = $pos.nodeAfter;\n if (node && node.isAtom && NodeSelection.isSelectable(node)) {\n updateSelection(view, new NodeSelection($pos), \"pointer\");\n return true;\n }\n return false;\n}\nfunction selectClickedNode(view, inside) {\n if (inside == -1)\n return false;\n let sel = view.state.selection, selectedNode, selectAt;\n if (sel instanceof NodeSelection)\n selectedNode = sel.node;\n let $pos = view.state.doc.resolve(inside);\n for (let i = $pos.depth + 1; i > 0; i--) {\n let node = i > $pos.depth ? $pos.nodeAfter : $pos.node(i);\n if (NodeSelection.isSelectable(node)) {\n if (selectedNode && sel.$from.depth > 0 &&\n i >= sel.$from.depth && $pos.before(sel.$from.depth + 1) == sel.$from.pos)\n selectAt = $pos.before(sel.$from.depth);\n else\n selectAt = $pos.before(i);\n break;\n }\n }\n if (selectAt != null) {\n updateSelection(view, NodeSelection.create(view.state.doc, selectAt), \"pointer\");\n return true;\n }\n else {\n return false;\n }\n}\nfunction handleSingleClick(view, pos, inside, event, selectNode) {\n return runHandlerOnContext(view, \"handleClickOn\", pos, inside, event) ||\n view.someProp(\"handleClick\", f => f(view, pos, event)) ||\n (selectNode ? selectClickedNode(view, inside) : selectClickedLeaf(view, inside));\n}\nfunction handleDoubleClick(view, pos, inside, event) {\n return runHandlerOnContext(view, \"handleDoubleClickOn\", pos, inside, event) ||\n view.someProp(\"handleDoubleClick\", f => f(view, pos, event));\n}\nfunction handleTripleClick(view, pos, inside, event) {\n return runHandlerOnContext(view, \"handleTripleClickOn\", pos, inside, event) ||\n view.someProp(\"handleTripleClick\", f => f(view, pos, event)) ||\n defaultTripleClick(view, inside, event);\n}\nfunction defaultTripleClick(view, inside, event) {\n if (event.button != 0)\n return false;\n let doc = view.state.doc;\n if (inside == -1) {\n if (doc.inlineContent) {\n updateSelection(view, TextSelection.create(doc, 0, doc.content.size), \"pointer\");\n return true;\n }\n return false;\n }\n let $pos = doc.resolve(inside);\n for (let i = $pos.depth + 1; i > 0; i--) {\n let node = i > $pos.depth ? $pos.nodeAfter : $pos.node(i);\n let nodePos = $pos.before(i);\n if (node.inlineContent)\n updateSelection(view, TextSelection.create(doc, nodePos + 1, nodePos + 1 + node.content.size), \"pointer\");\n else if (NodeSelection.isSelectable(node))\n updateSelection(view, NodeSelection.create(doc, nodePos), \"pointer\");\n else\n continue;\n return true;\n }\n}\nfunction forceDOMFlush(view) {\n return endComposition(view);\n}\nconst selectNodeModifier = mac ? \"metaKey\" : \"ctrlKey\";\nhandlers.mousedown = (view, _event) => {\n let event = _event;\n view.input.shiftKey = event.shiftKey;\n let flushed = forceDOMFlush(view);\n let now = Date.now(), type = \"singleClick\";\n if (now - view.input.lastClick.time < 500 && isNear(event, view.input.lastClick) && !event[selectNodeModifier] &&\n view.input.lastClick.button == event.button) {\n if (view.input.lastClick.type == \"singleClick\")\n type = \"doubleClick\";\n else if (view.input.lastClick.type == \"doubleClick\")\n type = \"tripleClick\";\n }\n view.input.lastClick = { time: now, x: event.clientX, y: event.clientY, type, button: event.button };\n let pos = view.posAtCoords(eventCoords(event));\n if (!pos)\n return;\n if (type == \"singleClick\") {\n if (view.input.mouseDown)\n view.input.mouseDown.done();\n view.input.mouseDown = new MouseDown(view, pos, event, !!flushed);\n }\n else if ((type == \"doubleClick\" ? handleDoubleClick : handleTripleClick)(view, pos.pos, pos.inside, event)) {\n event.preventDefault();\n }\n else {\n setSelectionOrigin(view, \"pointer\");\n }\n};\nclass MouseDown {\n constructor(view, pos, event, flushed) {\n this.view = view;\n this.pos = pos;\n this.event = event;\n this.flushed = flushed;\n this.delayedSelectionSync = false;\n this.mightDrag = null;\n this.startDoc = view.state.doc;\n this.selectNode = !!event[selectNodeModifier];\n this.allowDefault = event.shiftKey;\n let targetNode, targetPos;\n if (pos.inside > -1) {\n targetNode = view.state.doc.nodeAt(pos.inside);\n targetPos = pos.inside;\n }\n else {\n let $pos = view.state.doc.resolve(pos.pos);\n targetNode = $pos.parent;\n targetPos = $pos.depth ? $pos.before() : 0;\n }\n const target = flushed ? null : event.target;\n const targetDesc = target ? view.docView.nearestDesc(target, true) : null;\n this.target = targetDesc && targetDesc.nodeDOM.nodeType == 1 ? targetDesc.nodeDOM : null;\n let { selection } = view.state;\n if (event.button == 0 &&\n targetNode.type.spec.draggable && targetNode.type.spec.selectable !== false ||\n selection instanceof NodeSelection && selection.from <= targetPos && selection.to > targetPos)\n this.mightDrag = {\n node: targetNode,\n pos: targetPos,\n addAttr: !!(this.target && !this.target.draggable),\n setUneditable: !!(this.target && gecko && !this.target.hasAttribute(\"contentEditable\"))\n };\n if (this.target && this.mightDrag && (this.mightDrag.addAttr || this.mightDrag.setUneditable)) {\n this.view.domObserver.stop();\n if (this.mightDrag.addAttr)\n this.target.draggable = true;\n if (this.mightDrag.setUneditable)\n setTimeout(() => {\n if (this.view.input.mouseDown == this)\n this.target.setAttribute(\"contentEditable\", \"false\");\n }, 20);\n this.view.domObserver.start();\n }\n view.root.addEventListener(\"mouseup\", this.up = this.up.bind(this));\n view.root.addEventListener(\"mousemove\", this.move = this.move.bind(this));\n setSelectionOrigin(view, \"pointer\");\n }\n done() {\n this.view.root.removeEventListener(\"mouseup\", this.up);\n this.view.root.removeEventListener(\"mousemove\", this.move);\n if (this.mightDrag && this.target) {\n this.view.domObserver.stop();\n if (this.mightDrag.addAttr)\n this.target.removeAttribute(\"draggable\");\n if (this.mightDrag.setUneditable)\n this.target.removeAttribute(\"contentEditable\");\n this.view.domObserver.start();\n }\n if (this.delayedSelectionSync)\n setTimeout(() => selectionToDOM(this.view));\n this.view.input.mouseDown = null;\n }\n up(event) {\n this.done();\n if (!this.view.dom.contains(event.target))\n return;\n let pos = this.pos;\n if (this.view.state.doc != this.startDoc)\n pos = this.view.posAtCoords(eventCoords(event));\n this.updateAllowDefault(event);\n if (this.allowDefault || !pos) {\n setSelectionOrigin(this.view, \"pointer\");\n }\n else if (handleSingleClick(this.view, pos.pos, pos.inside, event, this.selectNode)) {\n event.preventDefault();\n }\n else if (event.button == 0 &&\n (this.flushed ||\n // Safari ignores clicks on draggable elements\n (safari && this.mightDrag && !this.mightDrag.node.isAtom) ||\n // Chrome will sometimes treat a node selection as a\n // cursor, but still report that the node is selected\n // when asked through getSelection. You'll then get a\n // situation where clicking at the point where that\n // (hidden) cursor is doesn't change the selection, and\n // thus doesn't get a reaction from ProseMirror. This\n // works around that.\n (chrome && !this.view.state.selection.visible &&\n Math.min(Math.abs(pos.pos - this.view.state.selection.from), Math.abs(pos.pos - this.view.state.selection.to)) <= 2))) {\n updateSelection(this.view, Selection.near(this.view.state.doc.resolve(pos.pos)), \"pointer\");\n event.preventDefault();\n }\n else {\n setSelectionOrigin(this.view, \"pointer\");\n }\n }\n move(event) {\n this.updateAllowDefault(event);\n setSelectionOrigin(this.view, \"pointer\");\n if (event.buttons == 0)\n this.done();\n }\n updateAllowDefault(event) {\n if (!this.allowDefault && (Math.abs(this.event.x - event.clientX) > 4 ||\n Math.abs(this.event.y - event.clientY) > 4))\n this.allowDefault = true;\n }\n}\nhandlers.touchstart = view => {\n view.input.lastTouch = Date.now();\n forceDOMFlush(view);\n setSelectionOrigin(view, \"pointer\");\n};\nhandlers.touchmove = view => {\n view.input.lastTouch = Date.now();\n setSelectionOrigin(view, \"pointer\");\n};\nhandlers.contextmenu = view => forceDOMFlush(view);\nfunction inOrNearComposition(view, event) {\n if (view.composing)\n return true;\n // See https://www.stum.de/2016/06/24/handling-ime-events-in-javascript/.\n // On Japanese input method editors (IMEs), the Enter key is used to confirm character\n // selection. On Safari, when Enter is pressed, compositionend and keydown events are\n // emitted. The keydown event triggers newline insertion, which we don't want.\n // This method returns true if the keydown event should be ignored.\n // We only ignore it once, as pressing Enter a second time *should* insert a newline.\n // Furthermore, the keydown event timestamp must be close to the compositionEndedAt timestamp.\n // This guards against the case where compositionend is triggered without the keyboard\n // (e.g. character confirmation may be done with the mouse), and keydown is triggered\n // afterwards- we wouldn't want to ignore the keydown event in this case.\n if (safari && Math.abs(event.timeStamp - view.input.compositionEndedAt) < 500) {\n view.input.compositionEndedAt = -2e8;\n return true;\n }\n return false;\n}\n// Drop active composition after 5 seconds of inactivity on Android\nconst timeoutComposition = android ? 5000 : -1;\neditHandlers.compositionstart = editHandlers.compositionupdate = view => {\n if (!view.composing) {\n view.domObserver.flush();\n let { state } = view, $pos = state.selection.$to;\n if (state.selection instanceof TextSelection &&\n (state.storedMarks ||\n (!$pos.textOffset && $pos.parentOffset && $pos.nodeBefore.marks.some(m => m.type.spec.inclusive === false)) ||\n chrome && windows && selectionBeforeUneditable(view))) { // Issue #1500\n // Need to wrap the cursor in mark nodes different from the ones in the DOM context\n view.markCursor = view.state.storedMarks || $pos.marks();\n endComposition(view, true);\n view.markCursor = null;\n }\n else {\n endComposition(view, !state.selection.empty);\n // In firefox, if the cursor is after but outside a marked node,\n // the inserted text won't inherit the marks. So this moves it\n // inside if necessary.\n if (gecko && state.selection.empty && $pos.parentOffset && !$pos.textOffset && $pos.nodeBefore.marks.length) {\n let sel = view.domSelectionRange();\n for (let node = sel.focusNode, offset = sel.focusOffset; node && node.nodeType == 1 && offset != 0;) {\n let before = offset < 0 ? node.lastChild : node.childNodes[offset - 1];\n if (!before)\n break;\n if (before.nodeType == 3) {\n let sel = view.domSelection();\n if (sel)\n sel.collapse(before, before.nodeValue.length);\n break;\n }\n else {\n node = before;\n offset = -1;\n }\n }\n }\n }\n view.input.composing = true;\n }\n scheduleComposeEnd(view, timeoutComposition);\n};\nfunction selectionBeforeUneditable(view) {\n let { focusNode, focusOffset } = view.domSelectionRange();\n if (!focusNode || focusNode.nodeType != 1 || focusOffset >= focusNode.childNodes.length)\n return false;\n let next = focusNode.childNodes[focusOffset];\n return next.nodeType == 1 && next.contentEditable == \"false\";\n}\neditHandlers.compositionend = (view, event) => {\n if (view.composing) {\n view.input.composing = false;\n view.input.compositionEndedAt = event.timeStamp;\n view.input.compositionPendingChanges = view.domObserver.pendingRecords().length ? view.input.compositionID : 0;\n view.input.compositionNode = null;\n if (view.input.badSafariComposition)\n view.domObserver.forceFlush();\n else if (view.input.compositionPendingChanges)\n Promise.resolve().then(() => view.domObserver.flush());\n view.input.compositionID++;\n scheduleComposeEnd(view, 20);\n }\n};\nfunction scheduleComposeEnd(view, delay) {\n clearTimeout(view.input.composingTimeout);\n if (delay > -1)\n view.input.composingTimeout = setTimeout(() => endComposition(view), delay);\n}\nfunction clearComposition(view) {\n if (view.composing) {\n view.input.composing = false;\n view.input.compositionEndedAt = timestampFromCustomEvent();\n }\n while (view.input.compositionNodes.length > 0)\n view.input.compositionNodes.pop().markParentsDirty();\n}\nfunction findCompositionNode(view) {\n let sel = view.domSelectionRange();\n if (!sel.focusNode)\n return null;\n let textBefore = textNodeBefore$1(sel.focusNode, sel.focusOffset);\n let textAfter = textNodeAfter$1(sel.focusNode, sel.focusOffset);\n if (textBefore && textAfter && textBefore != textAfter) {\n let descAfter = textAfter.pmViewDesc, lastChanged = view.domObserver.lastChangedTextNode;\n if (textBefore == lastChanged || textAfter == lastChanged)\n return lastChanged;\n if (!descAfter || !descAfter.isText(textAfter.nodeValue)) {\n return textAfter;\n }\n else if (view.input.compositionNode == textAfter) {\n let descBefore = textBefore.pmViewDesc;\n if (!(!descBefore || !descBefore.isText(textBefore.nodeValue)))\n return textAfter;\n }\n }\n return textBefore || textAfter;\n}\nfunction timestampFromCustomEvent() {\n let event = document.createEvent(\"Event\");\n event.initEvent(\"event\", true, true);\n return event.timeStamp;\n}\n/**\n@internal\n*/\nfunction endComposition(view, restarting = false) {\n if (android && view.domObserver.flushingSoon >= 0)\n return;\n view.domObserver.forceFlush();\n clearComposition(view);\n if (restarting || view.docView && view.docView.dirty) {\n let sel = selectionFromDOM(view), cur = view.state.selection;\n if (sel && !sel.eq(cur))\n view.dispatch(view.state.tr.setSelection(sel));\n else if ((view.markCursor || restarting) && !cur.$from.node(cur.$from.sharedDepth(cur.to)).inlineContent)\n view.dispatch(view.state.tr.deleteSelection());\n else\n view.updateState(view.state);\n return true;\n }\n return false;\n}\nfunction captureCopy(view, dom) {\n // The extra wrapper is somehow necessary on IE/Edge to prevent the\n // content from being mangled when it is put onto the clipboard\n if (!view.dom.parentNode)\n return;\n let wrap = view.dom.parentNode.appendChild(document.createElement(\"div\"));\n wrap.appendChild(dom);\n wrap.style.cssText = \"position: fixed; left: -10000px; top: 10px\";\n let sel = getSelection(), range = document.createRange();\n range.selectNodeContents(dom);\n // Done because IE will fire a selectionchange moving the selection\n // to its start when removeAllRanges is called and the editor still\n // has focus (which will mess up the editor's selection state).\n view.dom.blur();\n sel.removeAllRanges();\n sel.addRange(range);\n setTimeout(() => {\n if (wrap.parentNode)\n wrap.parentNode.removeChild(wrap);\n view.focus();\n }, 50);\n}\n// This is very crude, but unfortunately both these browsers _pretend_\n// that they have a clipboard API—all the objects and methods are\n// there, they just don't work, and they are hard to test.\nconst brokenClipboardAPI = (ie && ie_version < 15) ||\n (ios && webkit_version < 604);\nhandlers.copy = editHandlers.cut = (view, _event) => {\n let event = _event;\n let sel = view.state.selection, cut = event.type == \"cut\";\n if (sel.empty)\n return;\n // IE and Edge's clipboard interface is completely broken\n let data = brokenClipboardAPI ? null : event.clipboardData;\n let slice = sel.content(), { dom, text } = serializeForClipboard(view, slice);\n if (data) {\n event.preventDefault();\n data.clearData();\n data.setData(\"text/html\", dom.innerHTML);\n data.setData(\"text/plain\", text);\n }\n else {\n captureCopy(view, dom);\n }\n if (cut)\n view.dispatch(view.state.tr.deleteSelection().scrollIntoView().setMeta(\"uiEvent\", \"cut\"));\n};\nfunction sliceSingleNode(slice) {\n return slice.openStart == 0 && slice.openEnd == 0 && slice.content.childCount == 1 ? slice.content.firstChild : null;\n}\nfunction capturePaste(view, event) {\n if (!view.dom.parentNode)\n return;\n let plainText = view.input.shiftKey || view.state.selection.$from.parent.type.spec.code;\n let target = view.dom.parentNode.appendChild(document.createElement(plainText ? \"textarea\" : \"div\"));\n if (!plainText)\n target.contentEditable = \"true\";\n target.style.cssText = \"position: fixed; left: -10000px; top: 10px\";\n target.focus();\n let plain = view.input.shiftKey && view.input.lastKeyCode != 45;\n setTimeout(() => {\n view.focus();\n if (target.parentNode)\n target.parentNode.removeChild(target);\n if (plainText)\n doPaste(view, target.value, null, plain, event);\n else\n doPaste(view, target.textContent, target.innerHTML, plain, event);\n }, 50);\n}\nfunction doPaste(view, text, html, preferPlain, event) {\n let slice = parseFromClipboard(view, text, html, preferPlain, view.state.selection.$from);\n if (view.someProp(\"handlePaste\", f => f(view, event, slice || Slice.empty)))\n return true;\n if (!slice)\n return false;\n let singleNode = sliceSingleNode(slice);\n let tr = singleNode\n ? view.state.tr.replaceSelectionWith(singleNode, preferPlain)\n : view.state.tr.replaceSelection(slice);\n view.dispatch(tr.scrollIntoView().setMeta(\"paste\", true).setMeta(\"uiEvent\", \"paste\"));\n return true;\n}\nfunction getText(clipboardData) {\n let text = clipboardData.getData(\"text/plain\") || clipboardData.getData(\"Text\");\n if (text)\n return text;\n let uris = clipboardData.getData(\"text/uri-list\");\n return uris ? uris.replace(/\\r?\\n/g, \" \") : \"\";\n}\neditHandlers.paste = (view, _event) => {\n let event = _event;\n // Handling paste from JavaScript during composition is very poorly\n // handled by browsers, so as a dodgy but preferable kludge, we just\n // let the browser do its native thing there, except on Android,\n // where the editor is almost always composing.\n if (view.composing && !android)\n return;\n let data = brokenClipboardAPI ? null : event.clipboardData;\n let plain = view.input.shiftKey && view.input.lastKeyCode != 45;\n if (data && doPaste(view, getText(data), data.getData(\"text/html\"), plain, event))\n event.preventDefault();\n else\n capturePaste(view, event);\n};\nclass Dragging {\n constructor(slice, move, node) {\n this.slice = slice;\n this.move = move;\n this.node = node;\n }\n}\nconst dragCopyModifier = mac ? \"altKey\" : \"ctrlKey\";\nfunction dragMoves(view, event) {\n let moves = view.someProp(\"dragCopies\", test => !test(event));\n return moves != null ? moves : !event[dragCopyModifier];\n}\nhandlers.dragstart = (view, _event) => {\n let event = _event;\n let mouseDown = view.input.mouseDown;\n if (mouseDown)\n mouseDown.done();\n if (!event.dataTransfer)\n return;\n let sel = view.state.selection;\n let pos = sel.empty ? null : view.posAtCoords(eventCoords(event));\n let node;\n if (pos && pos.pos >= sel.from && pos.pos <= (sel instanceof NodeSelection ? sel.to - 1 : sel.to)) ;\n else if (mouseDown && mouseDown.mightDrag) {\n node = NodeSelection.create(view.state.doc, mouseDown.mightDrag.pos);\n }\n else if (event.target && event.target.nodeType == 1) {\n let desc = view.docView.nearestDesc(event.target, true);\n if (desc && desc.node.type.spec.draggable && desc != view.docView)\n node = NodeSelection.create(view.state.doc, desc.posBefore);\n }\n let draggedSlice = (node || view.state.selection).content();\n let { dom, text, slice } = serializeForClipboard(view, draggedSlice);\n // Pre-120 Chrome versions clear files when calling `clearData` (#1472)\n if (!event.dataTransfer.files.length || !chrome || chrome_version > 120)\n event.dataTransfer.clearData();\n event.dataTransfer.setData(brokenClipboardAPI ? \"Text\" : \"text/html\", dom.innerHTML);\n // See https://github.com/ProseMirror/prosemirror/issues/1156\n event.dataTransfer.effectAllowed = \"copyMove\";\n if (!brokenClipboardAPI)\n event.dataTransfer.setData(\"text/plain\", text);\n view.dragging = new Dragging(slice, dragMoves(view, event), node);\n};\nhandlers.dragend = view => {\n let dragging = view.dragging;\n window.setTimeout(() => {\n if (view.dragging == dragging)\n view.dragging = null;\n }, 50);\n};\neditHandlers.dragover = editHandlers.dragenter = (_, e) => e.preventDefault();\neditHandlers.drop = (view, event) => {\n try {\n handleDrop(view, event, view.dragging);\n }\n finally {\n view.dragging = null;\n }\n};\nfunction handleDrop(view, event, dragging) {\n if (!event.dataTransfer)\n return;\n let eventPos = view.posAtCoords(eventCoords(event));\n if (!eventPos)\n return;\n let $mouse = view.state.doc.resolve(eventPos.pos);\n let slice = dragging && dragging.slice;\n if (slice) {\n view.someProp(\"transformPasted\", f => { slice = f(slice, view, false); });\n }\n else {\n slice = parseFromClipboard(view, getText(event.dataTransfer), brokenClipboardAPI ? null : event.dataTransfer.getData(\"text/html\"), false, $mouse);\n }\n let move = !!(dragging && dragMoves(view, event));\n if (view.someProp(\"handleDrop\", f => f(view, event, slice || Slice.empty, move))) {\n event.preventDefault();\n return;\n }\n if (!slice)\n return;\n event.preventDefault();\n let insertPos = slice ? dropPoint(view.state.doc, $mouse.pos, slice) : $mouse.pos;\n if (insertPos == null)\n insertPos = $mouse.pos;\n let tr = view.state.tr;\n if (move) {\n let { node } = dragging;\n if (node)\n node.replace(tr);\n else\n tr.deleteSelection();\n }\n let pos = tr.mapping.map(insertPos);\n let isNode = slice.openStart == 0 && slice.openEnd == 0 && slice.content.childCount == 1;\n let beforeInsert = tr.doc;\n if (isNode)\n tr.replaceRangeWith(pos, pos, slice.content.firstChild);\n else\n tr.replaceRange(pos, pos, slice);\n if (tr.doc.eq(beforeInsert))\n return;\n let $pos = tr.doc.resolve(pos);\n if (isNode && NodeSelection.isSelectable(slice.content.firstChild) &&\n $pos.nodeAfter && $pos.nodeAfter.sameMarkup(slice.content.firstChild)) {\n tr.setSelection(new NodeSelection($pos));\n }\n else {\n let end = tr.mapping.map(insertPos);\n tr.mapping.maps[tr.mapping.maps.length - 1].forEach((_from, _to, _newFrom, newTo) => end = newTo);\n tr.setSelection(selectionBetween(view, $pos, tr.doc.resolve(end)));\n }\n view.focus();\n view.dispatch(tr.setMeta(\"uiEvent\", \"drop\"));\n}\nhandlers.focus = view => {\n view.input.lastFocus = Date.now();\n if (!view.focused) {\n view.domObserver.stop();\n view.dom.classList.add(\"ProseMirror-focused\");\n view.domObserver.start();\n view.focused = true;\n setTimeout(() => {\n if (view.docView && view.hasFocus() && !view.domObserver.currentSelection.eq(view.domSelectionRange()))\n selectionToDOM(view);\n }, 20);\n }\n};\nhandlers.blur = (view, _event) => {\n let event = _event;\n if (view.focused) {\n view.domObserver.stop();\n view.dom.classList.remove(\"ProseMirror-focused\");\n view.domObserver.start();\n if (event.relatedTarget && view.dom.contains(event.relatedTarget))\n view.domObserver.currentSelection.clear();\n view.focused = false;\n }\n};\nhandlers.beforeinput = (view, _event) => {\n let event = _event;\n // We should probably do more with beforeinput events, but support\n // is so spotty that I'm still waiting to see where they are going.\n // Very specific hack to deal with backspace sometimes failing on\n // Chrome Android when after an uneditable node.\n if (chrome && android && event.inputType == \"deleteContentBackward\") {\n view.domObserver.flushSoon();\n let { domChangeCount } = view.input;\n setTimeout(() => {\n if (view.input.domChangeCount != domChangeCount)\n return; // Event already had some effect\n // This bug tends to close the virtual keyboard, so we refocus\n view.dom.blur();\n view.focus();\n if (view.someProp(\"handleKeyDown\", f => f(view, keyEvent(8, \"Backspace\"))))\n return;\n let { $cursor } = view.state.selection;\n // Crude approximation of backspace behavior when no command handled it\n if ($cursor && $cursor.pos > 0)\n view.dispatch(view.state.tr.delete($cursor.pos - 1, $cursor.pos).scrollIntoView());\n }, 50);\n }\n};\n// Make sure all handlers get registered\nfor (let prop in editHandlers)\n handlers[prop] = editHandlers[prop];\n\nfunction compareObjs(a, b) {\n if (a == b)\n return true;\n for (let p in a)\n if (a[p] !== b[p])\n return false;\n for (let p in b)\n if (!(p in a))\n return false;\n return true;\n}\nclass WidgetType {\n constructor(toDOM, spec) {\n this.toDOM = toDOM;\n this.spec = spec || noSpec;\n this.side = this.spec.side || 0;\n }\n map(mapping, span, offset, oldOffset) {\n let { pos, deleted } = mapping.mapResult(span.from + oldOffset, this.side < 0 ? -1 : 1);\n return deleted ? null : new Decoration(pos - offset, pos - offset, this);\n }\n valid() { return true; }\n eq(other) {\n return this == other ||\n (other instanceof WidgetType &&\n (this.spec.key && this.spec.key == other.spec.key ||\n this.toDOM == other.toDOM && compareObjs(this.spec, other.spec)));\n }\n destroy(node) {\n if (this.spec.destroy)\n this.spec.destroy(node);\n }\n}\nclass InlineType {\n constructor(attrs, spec) {\n this.attrs = attrs;\n this.spec = spec || noSpec;\n }\n map(mapping, span, offset, oldOffset) {\n let from = mapping.map(span.from + oldOffset, this.spec.inclusiveStart ? -1 : 1) - offset;\n let to = mapping.map(span.to + oldOffset, this.spec.inclusiveEnd ? 1 : -1) - offset;\n return from >= to ? null : new Decoration(from, to, this);\n }\n valid(_, span) { return span.from < span.to; }\n eq(other) {\n return this == other ||\n (other instanceof InlineType && compareObjs(this.attrs, other.attrs) &&\n compareObjs(this.spec, other.spec));\n }\n static is(span) { return span.type instanceof InlineType; }\n destroy() { }\n}\nclass NodeType {\n constructor(attrs, spec) {\n this.attrs = attrs;\n this.spec = spec || noSpec;\n }\n map(mapping, span, offset, oldOffset) {\n let from = mapping.mapResult(span.from + oldOffset, 1);\n if (from.deleted)\n return null;\n let to = mapping.mapResult(span.to + oldOffset, -1);\n if (to.deleted || to.pos <= from.pos)\n return null;\n return new Decoration(from.pos - offset, to.pos - offset, this);\n }\n valid(node, span) {\n let { index, offset } = node.content.findIndex(span.from), child;\n return offset == span.from && !(child = node.child(index)).isText && offset + child.nodeSize == span.to;\n }\n eq(other) {\n return this == other ||\n (other instanceof NodeType && compareObjs(this.attrs, other.attrs) &&\n compareObjs(this.spec, other.spec));\n }\n destroy() { }\n}\n/**\nDecoration objects can be provided to the view through the\n[`decorations` prop](https://prosemirror.net/docs/ref/#view.EditorProps.decorations). They come in\nseveral variants—see the static members of this class for details.\n*/\nclass Decoration {\n /**\n @internal\n */\n constructor(\n /**\n The start position of the decoration.\n */\n from, \n /**\n The end position. Will be the same as `from` for [widget\n decorations](https://prosemirror.net/docs/ref/#view.Decoration^widget).\n */\n to, \n /**\n @internal\n */\n type) {\n this.from = from;\n this.to = to;\n this.type = type;\n }\n /**\n @internal\n */\n copy(from, to) {\n return new Decoration(from, to, this.type);\n }\n /**\n @internal\n */\n eq(other, offset = 0) {\n return this.type.eq(other.type) && this.from + offset == other.from && this.to + offset == other.to;\n }\n /**\n @internal\n */\n map(mapping, offset, oldOffset) {\n return this.type.map(mapping, this, offset, oldOffset);\n }\n /**\n Creates a widget decoration, which is a DOM node that's shown in\n the document at the given position. It is recommended that you\n delay rendering the widget by passing a function that will be\n called when the widget is actually drawn in a view, but you can\n also directly pass a DOM node. `getPos` can be used to find the\n widget's current document position.\n */\n static widget(pos, toDOM, spec) {\n return new Decoration(pos, pos, new WidgetType(toDOM, spec));\n }\n /**\n Creates an inline decoration, which adds the given attributes to\n each inline node between `from` and `to`.\n */\n static inline(from, to, attrs, spec) {\n return new Decoration(from, to, new InlineType(attrs, spec));\n }\n /**\n Creates a node decoration. `from` and `to` should point precisely\n before and after a node in the document. That node, and only that\n node, will receive the given attributes.\n */\n static node(from, to, attrs, spec) {\n return new Decoration(from, to, new NodeType(attrs, spec));\n }\n /**\n The spec provided when creating this decoration. Can be useful\n if you've stored extra information in that object.\n */\n get spec() { return this.type.spec; }\n /**\n @internal\n */\n get inline() { return this.type instanceof InlineType; }\n /**\n @internal\n */\n get widget() { return this.type instanceof WidgetType; }\n}\nconst none = [], noSpec = {};\n/**\nA collection of [decorations](https://prosemirror.net/docs/ref/#view.Decoration), organized in such\na way that the drawing algorithm can efficiently use and compare\nthem. This is a persistent data structure—it is not modified,\nupdates create a new value.\n*/\nclass DecorationSet {\n /**\n @internal\n */\n constructor(local, children) {\n this.local = local.length ? local : none;\n this.children = children.length ? children : none;\n }\n /**\n Create a set of decorations, using the structure of the given\n document. This will consume (modify) the `decorations` array, so\n you must make a copy if you want need to preserve that.\n */\n static create(doc, decorations) {\n return decorations.length ? buildTree(decorations, doc, 0, noSpec) : empty;\n }\n /**\n Find all decorations in this set which touch the given range\n (including decorations that start or end directly at the\n boundaries) and match the given predicate on their spec. When\n `start` and `end` are omitted, all decorations in the set are\n considered. When `predicate` isn't given, all decorations are\n assumed to match.\n */\n find(start, end, predicate) {\n let result = [];\n this.findInner(start == null ? 0 : start, end == null ? 1e9 : end, result, 0, predicate);\n return result;\n }\n findInner(start, end, result, offset, predicate) {\n for (let i = 0; i < this.local.length; i++) {\n let span = this.local[i];\n if (span.from <= end && span.to >= start && (!predicate || predicate(span.spec)))\n result.push(span.copy(span.from + offset, span.to + offset));\n }\n for (let i = 0; i < this.children.length; i += 3) {\n if (this.children[i] < end && this.children[i + 1] > start) {\n let childOff = this.children[i] + 1;\n this.children[i + 2].findInner(start - childOff, end - childOff, result, offset + childOff, predicate);\n }\n }\n }\n /**\n Map the set of decorations in response to a change in the\n document.\n */\n map(mapping, doc, options) {\n if (this == empty || mapping.maps.length == 0)\n return this;\n return this.mapInner(mapping, doc, 0, 0, options || noSpec);\n }\n /**\n @internal\n */\n mapInner(mapping, node, offset, oldOffset, options) {\n let newLocal;\n for (let i = 0; i < this.local.length; i++) {\n let mapped = this.local[i].map(mapping, offset, oldOffset);\n if (mapped && mapped.type.valid(node, mapped))\n (newLocal || (newLocal = [])).push(mapped);\n else if (options.onRemove)\n options.onRemove(this.local[i].spec);\n }\n if (this.children.length)\n return mapChildren(this.children, newLocal || [], mapping, node, offset, oldOffset, options);\n else\n return newLocal ? new DecorationSet(newLocal.sort(byPos), none) : empty;\n }\n /**\n Add the given array of decorations to the ones in the set,\n producing a new set. Consumes the `decorations` array. Needs\n access to the current document to create the appropriate tree\n structure.\n */\n add(doc, decorations) {\n if (!decorations.length)\n return this;\n if (this == empty)\n return DecorationSet.create(doc, decorations);\n return this.addInner(doc, decorations, 0);\n }\n addInner(doc, decorations, offset) {\n let children, childIndex = 0;\n doc.forEach((childNode, childOffset) => {\n let baseOffset = childOffset + offset, found;\n if (!(found = takeSpansForNode(decorations, childNode, baseOffset)))\n return;\n if (!children)\n children = this.children.slice();\n while (childIndex < children.length && children[childIndex] < childOffset)\n childIndex += 3;\n if (children[childIndex] == childOffset)\n children[childIndex + 2] = children[childIndex + 2].addInner(childNode, found, baseOffset + 1);\n else\n children.splice(childIndex, 0, childOffset, childOffset + childNode.nodeSize, buildTree(found, childNode, baseOffset + 1, noSpec));\n childIndex += 3;\n });\n let local = moveSpans(childIndex ? withoutNulls(decorations) : decorations, -offset);\n for (let i = 0; i < local.length; i++)\n if (!local[i].type.valid(doc, local[i]))\n local.splice(i--, 1);\n return new DecorationSet(local.length ? this.local.concat(local).sort(byPos) : this.local, children || this.children);\n }\n /**\n Create a new set that contains the decorations in this set, minus\n the ones in the given array.\n */\n remove(decorations) {\n if (decorations.length == 0 || this == empty)\n return this;\n return this.removeInner(decorations, 0);\n }\n removeInner(decorations, offset) {\n let children = this.children, local = this.local;\n for (let i = 0; i < children.length; i += 3) {\n let found;\n let from = children[i] + offset, to = children[i + 1] + offset;\n for (let j = 0, span; j < decorations.length; j++)\n if (span = decorations[j]) {\n if (span.from > from && span.to < to) {\n decorations[j] = null;\n (found || (found = [])).push(span);\n }\n }\n if (!found)\n continue;\n if (children == this.children)\n children = this.children.slice();\n let removed = children[i + 2].removeInner(found, from + 1);\n if (removed != empty) {\n children[i + 2] = removed;\n }\n else {\n children.splice(i, 3);\n i -= 3;\n }\n }\n if (local.length)\n for (let i = 0, span; i < decorations.length; i++)\n if (span = decorations[i]) {\n for (let j = 0; j < local.length; j++)\n if (local[j].eq(span, offset)) {\n if (local == this.local)\n local = this.local.slice();\n local.splice(j--, 1);\n }\n }\n if (children == this.children && local == this.local)\n return this;\n return local.length || children.length ? new DecorationSet(local, children) : empty;\n }\n forChild(offset, node) {\n if (this == empty)\n return this;\n if (node.isLeaf)\n return DecorationSet.empty;\n let child, local;\n for (let i = 0; i < this.children.length; i += 3)\n if (this.children[i] >= offset) {\n if (this.children[i] == offset)\n child = this.children[i + 2];\n break;\n }\n let start = offset + 1, end = start + node.content.size;\n for (let i = 0; i < this.local.length; i++) {\n let dec = this.local[i];\n if (dec.from < end && dec.to > start && (dec.type instanceof InlineType)) {\n let from = Math.max(start, dec.from) - start, to = Math.min(end, dec.to) - start;\n if (from < to)\n (local || (local = [])).push(dec.copy(from, to));\n }\n }\n if (local) {\n let localSet = new DecorationSet(local.sort(byPos), none);\n return child ? new DecorationGroup([localSet, child]) : localSet;\n }\n return child || empty;\n }\n /**\n @internal\n */\n eq(other) {\n if (this == other)\n return true;\n if (!(other instanceof DecorationSet) ||\n this.local.length != other.local.length ||\n this.children.length != other.children.length)\n return false;\n for (let i = 0; i < this.local.length; i++)\n if (!this.local[i].eq(other.local[i]))\n return false;\n for (let i = 0; i < this.children.length; i += 3)\n if (this.children[i] != other.children[i] ||\n this.children[i + 1] != other.children[i + 1] ||\n !this.children[i + 2].eq(other.children[i + 2]))\n return false;\n return true;\n }\n /**\n @internal\n */\n locals(node) {\n return removeOverlap(this.localsInner(node));\n }\n /**\n @internal\n */\n localsInner(node) {\n if (this == empty)\n return none;\n if (node.inlineContent || !this.local.some(InlineType.is))\n return this.local;\n let result = [];\n for (let i = 0; i < this.local.length; i++) {\n if (!(this.local[i].type instanceof InlineType))\n result.push(this.local[i]);\n }\n return result;\n }\n forEachSet(f) { f(this); }\n}\n/**\nThe empty set of decorations.\n*/\nDecorationSet.empty = new DecorationSet([], []);\n/**\n@internal\n*/\nDecorationSet.removeOverlap = removeOverlap;\nconst empty = DecorationSet.empty;\n// An abstraction that allows the code dealing with decorations to\n// treat multiple DecorationSet objects as if it were a single object\n// with (a subset of) the same interface.\nclass DecorationGroup {\n constructor(members) {\n this.members = members;\n }\n map(mapping, doc) {\n const mappedDecos = this.members.map(member => member.map(mapping, doc, noSpec));\n return DecorationGroup.from(mappedDecos);\n }\n forChild(offset, child) {\n if (child.isLeaf)\n return DecorationSet.empty;\n let found = [];\n for (let i = 0; i < this.members.length; i++) {\n let result = this.members[i].forChild(offset, child);\n if (result == empty)\n continue;\n if (result instanceof DecorationGroup)\n found = found.concat(result.members);\n else\n found.push(result);\n }\n return DecorationGroup.from(found);\n }\n eq(other) {\n if (!(other instanceof DecorationGroup) ||\n other.members.length != this.members.length)\n return false;\n for (let i = 0; i < this.members.length; i++)\n if (!this.members[i].eq(other.members[i]))\n return false;\n return true;\n }\n locals(node) {\n let result, sorted = true;\n for (let i = 0; i < this.members.length; i++) {\n let locals = this.members[i].localsInner(node);\n if (!locals.length)\n continue;\n if (!result) {\n result = locals;\n }\n else {\n if (sorted) {\n result = result.slice();\n sorted = false;\n }\n for (let j = 0; j < locals.length; j++)\n result.push(locals[j]);\n }\n }\n return result ? removeOverlap(sorted ? result : result.sort(byPos)) : none;\n }\n // Create a group for the given array of decoration sets, or return\n // a single set when possible.\n static from(members) {\n switch (members.length) {\n case 0: return empty;\n case 1: return members[0];\n default: return new DecorationGroup(members.every(m => m instanceof DecorationSet) ? members :\n members.reduce((r, m) => r.concat(m instanceof DecorationSet ? m : m.members), []));\n }\n }\n forEachSet(f) {\n for (let i = 0; i < this.members.length; i++)\n this.members[i].forEachSet(f);\n }\n}\nfunction mapChildren(oldChildren, newLocal, mapping, node, offset, oldOffset, options) {\n let children = oldChildren.slice();\n // Mark the children that are directly touched by changes, and\n // move those that are after the changes.\n for (let i = 0, baseOffset = oldOffset; i < mapping.maps.length; i++) {\n let moved = 0;\n mapping.maps[i].forEach((oldStart, oldEnd, newStart, newEnd) => {\n let dSize = (newEnd - newStart) - (oldEnd - oldStart);\n for (let i = 0; i < children.length; i += 3) {\n let end = children[i + 1];\n if (end < 0 || oldStart > end + baseOffset - moved)\n continue;\n let start = children[i] + baseOffset - moved;\n if (oldEnd >= start) {\n children[i + 1] = oldStart <= start ? -2 : -1;\n }\n else if (oldStart >= baseOffset && dSize) {\n children[i] += dSize;\n children[i + 1] += dSize;\n }\n }\n moved += dSize;\n });\n baseOffset = mapping.maps[i].map(baseOffset, -1);\n }\n // Find the child nodes that still correspond to a single node,\n // recursively call mapInner on them and update their positions.\n let mustRebuild = false;\n for (let i = 0; i < children.length; i += 3)\n if (children[i + 1] < 0) { // Touched nodes\n if (children[i + 1] == -2) {\n mustRebuild = true;\n children[i + 1] = -1;\n continue;\n }\n let from = mapping.map(oldChildren[i] + oldOffset), fromLocal = from - offset;\n if (fromLocal < 0 || fromLocal >= node.content.size) {\n mustRebuild = true;\n continue;\n }\n // Must read oldChildren because children was tagged with -1\n let to = mapping.map(oldChildren[i + 1] + oldOffset, -1), toLocal = to - offset;\n let { index, offset: childOffset } = node.content.findIndex(fromLocal);\n let childNode = node.maybeChild(index);\n if (childNode && childOffset == fromLocal && childOffset + childNode.nodeSize == toLocal) {\n let mapped = children[i + 2]\n .mapInner(mapping, childNode, from + 1, oldChildren[i] + oldOffset + 1, options);\n if (mapped != empty) {\n children[i] = fromLocal;\n children[i + 1] = toLocal;\n children[i + 2] = mapped;\n }\n else {\n children[i + 1] = -2;\n mustRebuild = true;\n }\n }\n else {\n mustRebuild = true;\n }\n }\n // Remaining children must be collected and rebuilt into the appropriate structure\n if (mustRebuild) {\n let decorations = mapAndGatherRemainingDecorations(children, oldChildren, newLocal, mapping, offset, oldOffset, options);\n let built = buildTree(decorations, node, 0, options);\n newLocal = built.local;\n for (let i = 0; i < children.length; i += 3)\n if (children[i + 1] < 0) {\n children.splice(i, 3);\n i -= 3;\n }\n for (let i = 0, j = 0; i < built.children.length; i += 3) {\n let from = built.children[i];\n while (j < children.length && children[j] < from)\n j += 3;\n children.splice(j, 0, built.children[i], built.children[i + 1], built.children[i + 2]);\n }\n }\n return new DecorationSet(newLocal.sort(byPos), children);\n}\nfunction moveSpans(spans, offset) {\n if (!offset || !spans.length)\n return spans;\n let result = [];\n for (let i = 0; i < spans.length; i++) {\n let span = spans[i];\n result.push(new Decoration(span.from + offset, span.to + offset, span.type));\n }\n return result;\n}\nfunction mapAndGatherRemainingDecorations(children, oldChildren, decorations, mapping, offset, oldOffset, options) {\n // Gather all decorations from the remaining marked children\n function gather(set, oldOffset) {\n for (let i = 0; i < set.local.length; i++) {\n let mapped = set.local[i].map(mapping, offset, oldOffset);\n if (mapped)\n decorations.push(mapped);\n else if (options.onRemove)\n options.onRemove(set.local[i].spec);\n }\n for (let i = 0; i < set.children.length; i += 3)\n gather(set.children[i + 2], set.children[i] + oldOffset + 1);\n }\n for (let i = 0; i < children.length; i += 3)\n if (children[i + 1] == -1)\n gather(children[i + 2], oldChildren[i] + oldOffset + 1);\n return decorations;\n}\nfunction takeSpansForNode(spans, node, offset) {\n if (node.isLeaf)\n return null;\n let end = offset + node.nodeSize, found = null;\n for (let i = 0, span; i < spans.length; i++) {\n if ((span = spans[i]) && span.from > offset && span.to < end) {\n (found || (found = [])).push(span);\n spans[i] = null;\n }\n }\n return found;\n}\nfunction withoutNulls(array) {\n let result = [];\n for (let i = 0; i < array.length; i++)\n if (array[i] != null)\n result.push(array[i]);\n return result;\n}\n// Build up a tree that corresponds to a set of decorations. `offset`\n// is a base offset that should be subtracted from the `from` and `to`\n// positions in the spans (so that we don't have to allocate new spans\n// for recursive calls).\nfunction buildTree(spans, node, offset, options) {\n let children = [], hasNulls = false;\n node.forEach((childNode, localStart) => {\n let found = takeSpansForNode(spans, childNode, localStart + offset);\n if (found) {\n hasNulls = true;\n let subtree = buildTree(found, childNode, offset + localStart + 1, options);\n if (subtree != empty)\n children.push(localStart, localStart + childNode.nodeSize, subtree);\n }\n });\n let locals = moveSpans(hasNulls ? withoutNulls(spans) : spans, -offset).sort(byPos);\n for (let i = 0; i < locals.length; i++)\n if (!locals[i].type.valid(node, locals[i])) {\n if (options.onRemove)\n options.onRemove(locals[i].spec);\n locals.splice(i--, 1);\n }\n return locals.length || children.length ? new DecorationSet(locals, children) : empty;\n}\n// Used to sort decorations so that ones with a low start position\n// come first, and within a set with the same start position, those\n// with an smaller end position come first.\nfunction byPos(a, b) {\n return a.from - b.from || a.to - b.to;\n}\n// Scan a sorted array of decorations for partially overlapping spans,\n// and split those so that only fully overlapping spans are left (to\n// make subsequent rendering easier). Will return the input array if\n// no partially overlapping spans are found (the common case).\nfunction removeOverlap(spans) {\n let working = spans;\n for (let i = 0; i < working.length - 1; i++) {\n let span = working[i];\n if (span.from != span.to)\n for (let j = i + 1; j < working.length; j++) {\n let next = working[j];\n if (next.from == span.from) {\n if (next.to != span.to) {\n if (working == spans)\n working = spans.slice();\n // Followed by a partially overlapping larger span. Split that\n // span.\n working[j] = next.copy(next.from, span.to);\n insertAhead(working, j + 1, next.copy(span.to, next.to));\n }\n continue;\n }\n else {\n if (next.from < span.to) {\n if (working == spans)\n working = spans.slice();\n // The end of this one overlaps with a subsequent span. Split\n // this one.\n working[i] = span.copy(span.from, next.from);\n insertAhead(working, j, span.copy(next.from, span.to));\n }\n break;\n }\n }\n }\n return working;\n}\nfunction insertAhead(array, i, deco) {\n while (i < array.length && byPos(deco, array[i]) > 0)\n i++;\n array.splice(i, 0, deco);\n}\n// Get the decorations associated with the current props of a view.\nfunction viewDecorations(view) {\n let found = [];\n view.someProp(\"decorations\", f => {\n let result = f(view.state);\n if (result && result != empty)\n found.push(result);\n });\n if (view.cursorWrapper)\n found.push(DecorationSet.create(view.state.doc, [view.cursorWrapper.deco]));\n return DecorationGroup.from(found);\n}\n\nconst observeOptions = {\n childList: true,\n characterData: true,\n characterDataOldValue: true,\n attributes: true,\n attributeOldValue: true,\n subtree: true\n};\n// IE11 has very broken mutation observers, so we also listen to DOMCharacterDataModified\nconst useCharData = ie && ie_version <= 11;\nclass SelectionState {\n constructor() {\n this.anchorNode = null;\n this.anchorOffset = 0;\n this.focusNode = null;\n this.focusOffset = 0;\n }\n set(sel) {\n this.anchorNode = sel.anchorNode;\n this.anchorOffset = sel.anchorOffset;\n this.focusNode = sel.focusNode;\n this.focusOffset = sel.focusOffset;\n }\n clear() {\n this.anchorNode = this.focusNode = null;\n }\n eq(sel) {\n return sel.anchorNode == this.anchorNode && sel.anchorOffset == this.anchorOffset &&\n sel.focusNode == this.focusNode && sel.focusOffset == this.focusOffset;\n }\n}\nclass DOMObserver {\n constructor(view, handleDOMChange) {\n this.view = view;\n this.handleDOMChange = handleDOMChange;\n this.queue = [];\n this.flushingSoon = -1;\n this.observer = null;\n this.currentSelection = new SelectionState;\n this.onCharData = null;\n this.suppressingSelectionUpdates = false;\n this.lastChangedTextNode = null;\n this.observer = window.MutationObserver &&\n new window.MutationObserver(mutations => {\n for (let i = 0; i < mutations.length; i++)\n this.queue.push(mutations[i]);\n if (ie && ie_version <= 11 && mutations.some(m => m.type == \"childList\" && m.removedNodes.length ||\n m.type == \"characterData\" && m.oldValue.length > m.target.nodeValue.length)) {\n // IE11 will sometimes (on backspacing out a single character\n // text node after a BR node) call the observer callback\n // before actually updating the DOM, which will cause\n // ProseMirror to miss the change (see #930)\n this.flushSoon();\n }\n else if (safari && view.composing && mutations.some(m => m.type == \"childList\" && m.target.nodeName == \"TR\")) {\n // Safari does weird stuff when finishing a composition in a\n // table cell, which tends to involve inserting inappropriate\n // nodes in the table row.\n view.input.badSafariComposition = true;\n this.flushSoon();\n }\n else {\n this.flush();\n }\n });\n if (useCharData) {\n this.onCharData = e => {\n this.queue.push({ target: e.target, type: \"characterData\", oldValue: e.prevValue });\n this.flushSoon();\n };\n }\n this.onSelectionChange = this.onSelectionChange.bind(this);\n }\n flushSoon() {\n if (this.flushingSoon < 0)\n this.flushingSoon = window.setTimeout(() => { this.flushingSoon = -1; this.flush(); }, 20);\n }\n forceFlush() {\n if (this.flushingSoon > -1) {\n window.clearTimeout(this.flushingSoon);\n this.flushingSoon = -1;\n this.flush();\n }\n }\n start() {\n if (this.observer) {\n this.observer.takeRecords();\n this.observer.observe(this.view.dom, observeOptions);\n }\n if (this.onCharData)\n this.view.dom.addEventListener(\"DOMCharacterDataModified\", this.onCharData);\n this.connectSelection();\n }\n stop() {\n if (this.observer) {\n let take = this.observer.takeRecords();\n if (take.length) {\n for (let i = 0; i < take.length; i++)\n this.queue.push(take[i]);\n window.setTimeout(() => this.flush(), 20);\n }\n this.observer.disconnect();\n }\n if (this.onCharData)\n this.view.dom.removeEventListener(\"DOMCharacterDataModified\", this.onCharData);\n this.disconnectSelection();\n }\n connectSelection() {\n this.view.dom.ownerDocument.addEventListener(\"selectionchange\", this.onSelectionChange);\n }\n disconnectSelection() {\n this.view.dom.ownerDocument.removeEventListener(\"selectionchange\", this.onSelectionChange);\n }\n suppressSelectionUpdates() {\n this.suppressingSelectionUpdates = true;\n setTimeout(() => this.suppressingSelectionUpdates = false, 50);\n }\n onSelectionChange() {\n if (!hasFocusAndSelection(this.view))\n return;\n if (this.suppressingSelectionUpdates)\n return selectionToDOM(this.view);\n // Deletions on IE11 fire their events in the wrong order, giving\n // us a selection change event before the DOM changes are\n // reported.\n if (ie && ie_version <= 11 && !this.view.state.selection.empty) {\n let sel = this.view.domSelectionRange();\n // Selection.isCollapsed isn't reliable on IE\n if (sel.focusNode && isEquivalentPosition(sel.focusNode, sel.focusOffset, sel.anchorNode, sel.anchorOffset))\n return this.flushSoon();\n }\n this.flush();\n }\n setCurSelection() {\n this.currentSelection.set(this.view.domSelectionRange());\n }\n ignoreSelectionChange(sel) {\n if (!sel.focusNode)\n return true;\n let ancestors = new Set, container;\n for (let scan = sel.focusNode; scan; scan = parentNode(scan))\n ancestors.add(scan);\n for (let scan = sel.anchorNode; scan; scan = parentNode(scan))\n if (ancestors.has(scan)) {\n container = scan;\n break;\n }\n let desc = container && this.view.docView.nearestDesc(container);\n if (desc && desc.ignoreMutation({\n type: \"selection\",\n target: container.nodeType == 3 ? container.parentNode : container\n })) {\n this.setCurSelection();\n return true;\n }\n }\n pendingRecords() {\n if (this.observer)\n for (let mut of this.observer.takeRecords())\n this.queue.push(mut);\n return this.queue;\n }\n flush() {\n let { view } = this;\n if (!view.docView || this.flushingSoon > -1)\n return;\n let mutations = this.pendingRecords();\n if (mutations.length)\n this.queue = [];\n let sel = view.domSelectionRange();\n let newSel = !this.suppressingSelectionUpdates && !this.currentSelection.eq(sel) && hasFocusAndSelection(view) && !this.ignoreSelectionChange(sel);\n let from = -1, to = -1, typeOver = false, added = [];\n if (view.editable) {\n for (let i = 0; i < mutations.length; i++) {\n let result = this.registerMutation(mutations[i], added);\n if (result) {\n from = from < 0 ? result.from : Math.min(result.from, from);\n to = to < 0 ? result.to : Math.max(result.to, to);\n if (result.typeOver)\n typeOver = true;\n }\n }\n }\n if (gecko && added.length) {\n let brs = added.filter(n => n.nodeName == \"BR\");\n if (brs.length == 2) {\n let [a, b] = brs;\n if (a.parentNode && a.parentNode.parentNode == b.parentNode)\n b.remove();\n else\n a.remove();\n }\n else {\n let { focusNode } = this.currentSelection;\n for (let br of brs) {\n let parent = br.parentNode;\n if (parent && parent.nodeName == \"LI\" && (!focusNode || blockParent(view, focusNode) != parent))\n br.remove();\n }\n }\n }\n else if ((chrome || safari) && added.some(n => n.nodeName == \"BR\") &&\n (view.input.lastKeyCode == 8 || view.input.lastKeyCode == 46)) {\n // Chrome/Safari sometimes insert a bogus break node if you\n // backspace out the last bit of text before an inline-flex node (#1552)\n for (let node of added)\n if (node.nodeName == \"BR\" && node.parentNode) {\n let after = node.nextSibling;\n if (after && after.nodeType == 1 && after.contentEditable == \"false\")\n node.parentNode.removeChild(node);\n }\n }\n let readSel = null;\n // If it looks like the browser has reset the selection to the\n // start of the document after focus, restore the selection from\n // the state\n if (from < 0 && newSel && view.input.lastFocus > Date.now() - 200 &&\n Math.max(view.input.lastTouch, view.input.lastClick.time) < Date.now() - 300 &&\n selectionCollapsed(sel) && (readSel = selectionFromDOM(view)) &&\n readSel.eq(Selection.near(view.state.doc.resolve(0), 1))) {\n view.input.lastFocus = 0;\n selectionToDOM(view);\n this.currentSelection.set(sel);\n view.scrollToSelection();\n }\n else if (from > -1 || newSel) {\n if (from > -1) {\n view.docView.markDirty(from, to);\n checkCSS(view);\n }\n if (view.input.badSafariComposition) {\n view.input.badSafariComposition = false;\n fixUpBadSafariComposition(view, added);\n }\n this.handleDOMChange(from, to, typeOver, added);\n if (view.docView && view.docView.dirty)\n view.updateState(view.state);\n else if (!this.currentSelection.eq(sel))\n selectionToDOM(view);\n this.currentSelection.set(sel);\n }\n }\n registerMutation(mut, added) {\n // Ignore mutations inside nodes that were already noted as inserted\n if (added.indexOf(mut.target) > -1)\n return null;\n let desc = this.view.docView.nearestDesc(mut.target);\n if (mut.type == \"attributes\" &&\n (desc == this.view.docView || mut.attributeName == \"contenteditable\" ||\n // Firefox sometimes fires spurious events for null/empty styles\n (mut.attributeName == \"style\" && !mut.oldValue && !mut.target.getAttribute(\"style\"))))\n return null;\n if (!desc || desc.ignoreMutation(mut))\n return null;\n if (mut.type == \"childList\") {\n for (let i = 0; i < mut.addedNodes.length; i++) {\n let node = mut.addedNodes[i];\n added.push(node);\n if (node.nodeType == 3)\n this.lastChangedTextNode = node;\n }\n if (desc.contentDOM && desc.contentDOM != desc.dom && !desc.contentDOM.contains(mut.target))\n return { from: desc.posBefore, to: desc.posAfter };\n let prev = mut.previousSibling, next = mut.nextSibling;\n if (ie && ie_version <= 11 && mut.addedNodes.length) {\n // IE11 gives us incorrect next/prev siblings for some\n // insertions, so if there are added nodes, recompute those\n for (let i = 0; i < mut.addedNodes.length; i++) {\n let { previousSibling, nextSibling } = mut.addedNodes[i];\n if (!previousSibling || Array.prototype.indexOf.call(mut.addedNodes, previousSibling) < 0)\n prev = previousSibling;\n if (!nextSibling || Array.prototype.indexOf.call(mut.addedNodes, nextSibling) < 0)\n next = nextSibling;\n }\n }\n let fromOffset = prev && prev.parentNode == mut.target\n ? domIndex(prev) + 1 : 0;\n let from = desc.localPosFromDOM(mut.target, fromOffset, -1);\n let toOffset = next && next.parentNode == mut.target\n ? domIndex(next) : mut.target.childNodes.length;\n let to = desc.localPosFromDOM(mut.target, toOffset, 1);\n return { from, to };\n }\n else if (mut.type == \"attributes\") {\n return { from: desc.posAtStart - desc.border, to: desc.posAtEnd + desc.border };\n }\n else { // \"characterData\"\n this.lastChangedTextNode = mut.target;\n return {\n from: desc.posAtStart,\n to: desc.posAtEnd,\n // An event was generated for a text change that didn't change\n // any text. Mark the dom change to fall back to assuming the\n // selection was typed over with an identical value if it can't\n // find another change.\n typeOver: mut.target.nodeValue == mut.oldValue\n };\n }\n }\n}\nlet cssChecked = new WeakMap();\nlet cssCheckWarned = false;\nfunction checkCSS(view) {\n if (cssChecked.has(view))\n return;\n cssChecked.set(view, null);\n if (['normal', 'nowrap', 'pre-line'].indexOf(getComputedStyle(view.dom).whiteSpace) !== -1) {\n view.requiresGeckoHackNode = gecko;\n if (cssCheckWarned)\n return;\n console[\"warn\"](\"ProseMirror expects the CSS white-space property to be set, preferably to 'pre-wrap'. It is recommended to load style/prosemirror.css from the prosemirror-view package.\");\n cssCheckWarned = true;\n }\n}\nfunction rangeToSelectionRange(view, range) {\n let anchorNode = range.startContainer, anchorOffset = range.startOffset;\n let focusNode = range.endContainer, focusOffset = range.endOffset;\n let currentAnchor = view.domAtPos(view.state.selection.anchor);\n // Since such a range doesn't distinguish between anchor and head,\n // use a heuristic that flips it around if its end matches the\n // current anchor.\n if (isEquivalentPosition(currentAnchor.node, currentAnchor.offset, focusNode, focusOffset))\n [anchorNode, anchorOffset, focusNode, focusOffset] = [focusNode, focusOffset, anchorNode, anchorOffset];\n return { anchorNode, anchorOffset, focusNode, focusOffset };\n}\n// Used to work around a Safari Selection/shadow DOM bug\n// Based on https://github.com/codemirror/dev/issues/414 fix\nfunction safariShadowSelectionRange(view, selection) {\n if (selection.getComposedRanges) {\n let range = selection.getComposedRanges(view.root)[0];\n if (range)\n return rangeToSelectionRange(view, range);\n }\n let found;\n function read(event) {\n event.preventDefault();\n event.stopImmediatePropagation();\n found = event.getTargetRanges()[0];\n }\n // Because Safari (at least in 2018-2022) doesn't provide regular\n // access to the selection inside a shadowRoot, we have to perform a\n // ridiculous hack to get at it—using `execCommand` to trigger a\n // `beforeInput` event so that we can read the target range from the\n // event.\n view.dom.addEventListener(\"beforeinput\", read, true);\n document.execCommand(\"indent\");\n view.dom.removeEventListener(\"beforeinput\", read, true);\n return found ? rangeToSelectionRange(view, found) : null;\n}\nfunction blockParent(view, node) {\n for (let p = node.parentNode; p && p != view.dom; p = p.parentNode) {\n let desc = view.docView.nearestDesc(p, true);\n if (desc && desc.node.isBlock)\n return p;\n }\n return null;\n}\n// Kludge for a Safari bug where, on ending a composition in an\n// otherwise empty table cell, it randomly moves the composed text\n// into the table row around that cell, greatly confusing everything\n// (#188).\nfunction fixUpBadSafariComposition(view, addedNodes) {\n var _a;\n let { focusNode, focusOffset } = view.domSelectionRange();\n for (let node of addedNodes) {\n if (((_a = node.parentNode) === null || _a === void 0 ? void 0 : _a.nodeName) == \"TR\") {\n let nextCell = node.nextSibling;\n while (nextCell && (nextCell.nodeName != \"TD\" && nextCell.nodeName != \"TH\"))\n nextCell = nextCell.nextSibling;\n if (nextCell) {\n let parent = nextCell;\n for (;;) {\n let first = parent.firstChild;\n if (!first || first.nodeType != 1 || first.contentEditable == \"false\" ||\n /^(BR|IMG)$/.test(first.nodeName))\n break;\n parent = first;\n }\n parent.insertBefore(node, parent.firstChild);\n if (focusNode == node)\n view.domSelection().collapse(node, focusOffset);\n }\n else {\n node.parentNode.removeChild(node);\n }\n }\n }\n}\n\n// Note that all referencing and parsing is done with the\n// start-of-operation selection and document, since that's the one\n// that the DOM represents. If any changes came in in the meantime,\n// the modification is mapped over those before it is applied, in\n// readDOMChange.\nfunction parseBetween(view, from_, to_) {\n let { node: parent, fromOffset, toOffset, from, to } = view.docView.parseRange(from_, to_);\n let domSel = view.domSelectionRange();\n let find;\n let anchor = domSel.anchorNode;\n if (anchor && view.dom.contains(anchor.nodeType == 1 ? anchor : anchor.parentNode)) {\n find = [{ node: anchor, offset: domSel.anchorOffset }];\n if (!selectionCollapsed(domSel))\n find.push({ node: domSel.focusNode, offset: domSel.focusOffset });\n }\n // Work around issue in Chrome where backspacing sometimes replaces\n // the deleted content with a random BR node (issues #799, #831)\n if (chrome && view.input.lastKeyCode === 8) {\n for (let off = toOffset; off > fromOffset; off--) {\n let node = parent.childNodes[off - 1], desc = node.pmViewDesc;\n if (node.nodeName == \"BR\" && !desc) {\n toOffset = off;\n break;\n }\n if (!desc || desc.size)\n break;\n }\n }\n let startDoc = view.state.doc;\n let parser = view.someProp(\"domParser\") || DOMParser.fromSchema(view.state.schema);\n let $from = startDoc.resolve(from);\n let sel = null, doc = parser.parse(parent, {\n topNode: $from.parent,\n topMatch: $from.parent.contentMatchAt($from.index()),\n topOpen: true,\n from: fromOffset,\n to: toOffset,\n preserveWhitespace: $from.parent.type.whitespace == \"pre\" ? \"full\" : true,\n findPositions: find,\n ruleFromNode,\n context: $from\n });\n if (find && find[0].pos != null) {\n let anchor = find[0].pos, head = find[1] && find[1].pos;\n if (head == null)\n head = anchor;\n sel = { anchor: anchor + from, head: head + from };\n }\n return { doc, sel, from, to };\n}\nfunction ruleFromNode(dom) {\n let desc = dom.pmViewDesc;\n if (desc) {\n return desc.parseRule();\n }\n else if (dom.nodeName == \"BR\" && dom.parentNode) {\n // Safari replaces the list item or table cell with a BR\n // directly in the list node (?!) if you delete the last\n // character in a list item or table cell (#708, #862)\n if (safari && /^(ul|ol)$/i.test(dom.parentNode.nodeName)) {\n let skip = document.createElement(\"div\");\n skip.appendChild(document.createElement(\"li\"));\n return { skip };\n }\n else if (dom.parentNode.lastChild == dom || safari && /^(tr|table)$/i.test(dom.parentNode.nodeName)) {\n return { ignore: true };\n }\n }\n else if (dom.nodeName == \"IMG\" && dom.getAttribute(\"mark-placeholder\")) {\n return { ignore: true };\n }\n return null;\n}\nconst isInline = /^(a|abbr|acronym|b|bd[io]|big|br|button|cite|code|data(list)?|del|dfn|em|i|img|ins|kbd|label|map|mark|meter|output|q|ruby|s|samp|small|span|strong|su[bp]|time|u|tt|var)$/i;\nfunction readDOMChange(view, from, to, typeOver, addedNodes) {\n let compositionID = view.input.compositionPendingChanges || (view.composing ? view.input.compositionID : 0);\n view.input.compositionPendingChanges = 0;\n if (from < 0) {\n let origin = view.input.lastSelectionTime > Date.now() - 50 ? view.input.lastSelectionOrigin : null;\n let newSel = selectionFromDOM(view, origin);\n if (newSel && !view.state.selection.eq(newSel)) {\n if (chrome && android &&\n view.input.lastKeyCode === 13 && Date.now() - 100 < view.input.lastKeyCodeTime &&\n view.someProp(\"handleKeyDown\", f => f(view, keyEvent(13, \"Enter\"))))\n return;\n let tr = view.state.tr.setSelection(newSel);\n if (origin == \"pointer\")\n tr.setMeta(\"pointer\", true);\n else if (origin == \"key\")\n tr.scrollIntoView();\n if (compositionID)\n tr.setMeta(\"composition\", compositionID);\n view.dispatch(tr);\n }\n return;\n }\n let $before = view.state.doc.resolve(from);\n let shared = $before.sharedDepth(to);\n from = $before.before(shared + 1);\n to = view.state.doc.resolve(to).after(shared + 1);\n let sel = view.state.selection;\n let parse = parseBetween(view, from, to);\n let doc = view.state.doc, compare = doc.slice(parse.from, parse.to);\n let preferredPos, preferredSide;\n // Prefer anchoring to end when Backspace is pressed\n if (view.input.lastKeyCode === 8 && Date.now() - 100 < view.input.lastKeyCodeTime) {\n preferredPos = view.state.selection.to;\n preferredSide = \"end\";\n }\n else {\n preferredPos = view.state.selection.from;\n preferredSide = \"start\";\n }\n view.input.lastKeyCode = null;\n let change = findDiff(compare.content, parse.doc.content, parse.from, preferredPos, preferredSide);\n if (change)\n view.input.domChangeCount++;\n if ((ios && view.input.lastIOSEnter > Date.now() - 225 || android) &&\n addedNodes.some(n => n.nodeType == 1 && !isInline.test(n.nodeName)) &&\n (!change || change.endA >= change.endB) &&\n view.someProp(\"handleKeyDown\", f => f(view, keyEvent(13, \"Enter\")))) {\n view.input.lastIOSEnter = 0;\n return;\n }\n if (!change) {\n if (typeOver && sel instanceof TextSelection && !sel.empty && sel.$head.sameParent(sel.$anchor) &&\n !view.composing && !(parse.sel && parse.sel.anchor != parse.sel.head)) {\n change = { start: sel.from, endA: sel.to, endB: sel.to };\n }\n else {\n if (parse.sel) {\n let sel = resolveSelection(view, view.state.doc, parse.sel);\n if (sel && !sel.eq(view.state.selection)) {\n let tr = view.state.tr.setSelection(sel);\n if (compositionID)\n tr.setMeta(\"composition\", compositionID);\n view.dispatch(tr);\n }\n }\n return;\n }\n }\n // Handle the case where overwriting a selection by typing matches\n // the start or end of the selected content, creating a change\n // that's smaller than what was actually overwritten.\n if (view.state.selection.from < view.state.selection.to &&\n change.start == change.endB &&\n view.state.selection instanceof TextSelection) {\n if (change.start > view.state.selection.from && change.start <= view.state.selection.from + 2 &&\n view.state.selection.from >= parse.from) {\n change.start = view.state.selection.from;\n }\n else if (change.endA < view.state.selection.to && change.endA >= view.state.selection.to - 2 &&\n view.state.selection.to <= parse.to) {\n change.endB += (view.state.selection.to - change.endA);\n change.endA = view.state.selection.to;\n }\n }\n // IE11 will insert a non-breaking space _ahead_ of the space after\n // the cursor space when adding a space before another space. When\n // that happened, adjust the change to cover the space instead.\n if (ie && ie_version <= 11 && change.endB == change.start + 1 &&\n change.endA == change.start && change.start > parse.from &&\n parse.doc.textBetween(change.start - parse.from - 1, change.start - parse.from + 1) == \" \\u00a0\") {\n change.start--;\n change.endA--;\n change.endB--;\n }\n let $from = parse.doc.resolveNoCache(change.start - parse.from);\n let $to = parse.doc.resolveNoCache(change.endB - parse.from);\n let $fromA = doc.resolve(change.start);\n let inlineChange = $from.sameParent($to) && $from.parent.inlineContent && $fromA.end() >= change.endA;\n // If this looks like the effect of pressing Enter (or was recorded\n // as being an iOS enter press), just dispatch an Enter key instead.\n if (((ios && view.input.lastIOSEnter > Date.now() - 225 &&\n (!inlineChange || addedNodes.some(n => n.nodeName == \"DIV\" || n.nodeName == \"P\"))) ||\n (!inlineChange && $from.pos < parse.doc.content.size &&\n (!$from.sameParent($to) || !$from.parent.inlineContent) &&\n $from.pos < $to.pos && !/\\S/.test(parse.doc.textBetween($from.pos, $to.pos, \"\", \"\")))) &&\n view.someProp(\"handleKeyDown\", f => f(view, keyEvent(13, \"Enter\")))) {\n view.input.lastIOSEnter = 0;\n return;\n }\n // Same for backspace\n if (view.state.selection.anchor > change.start &&\n looksLikeBackspace(doc, change.start, change.endA, $from, $to) &&\n view.someProp(\"handleKeyDown\", f => f(view, keyEvent(8, \"Backspace\")))) {\n if (android && chrome)\n view.domObserver.suppressSelectionUpdates(); // #820\n return;\n }\n // Chrome will occasionally, during composition, delete the\n // entire composition and then immediately insert it again. This is\n // used to detect that situation.\n if (chrome && change.endB == change.start)\n view.input.lastChromeDelete = Date.now();\n // This tries to detect Android virtual keyboard\n // enter-and-pick-suggestion action. That sometimes (see issue\n // #1059) first fires a DOM mutation, before moving the selection to\n // the newly created block. And then, because ProseMirror cleans up\n // the DOM selection, it gives up moving the selection entirely,\n // leaving the cursor in the wrong place. When that happens, we drop\n // the new paragraph from the initial change, and fire a simulated\n // enter key afterwards.\n if (android && !inlineChange && $from.start() != $to.start() && $to.parentOffset == 0 && $from.depth == $to.depth &&\n parse.sel && parse.sel.anchor == parse.sel.head && parse.sel.head == change.endA) {\n change.endB -= 2;\n $to = parse.doc.resolveNoCache(change.endB - parse.from);\n setTimeout(() => {\n view.someProp(\"handleKeyDown\", function (f) { return f(view, keyEvent(13, \"Enter\")); });\n }, 20);\n }\n let chFrom = change.start, chTo = change.endA;\n let mkTr = (base) => {\n let tr = base || view.state.tr.replace(chFrom, chTo, parse.doc.slice(change.start - parse.from, change.endB - parse.from));\n if (parse.sel) {\n let sel = resolveSelection(view, tr.doc, parse.sel);\n // Chrome will sometimes, during composition, report the\n // selection in the wrong place. If it looks like that is\n // happening, don't update the selection.\n // Edge just doesn't move the cursor forward when you start typing\n // in an empty block or between br nodes.\n if (sel && !(chrome && view.composing && sel.empty &&\n (change.start != change.endB || view.input.lastChromeDelete < Date.now() - 100) &&\n (sel.head == chFrom || sel.head == tr.mapping.map(chTo) - 1) ||\n ie && sel.empty && sel.head == chFrom))\n tr.setSelection(sel);\n }\n if (compositionID)\n tr.setMeta(\"composition\", compositionID);\n return tr.scrollIntoView();\n };\n let markChange;\n if (inlineChange) {\n if ($from.pos == $to.pos) { // Deletion\n // IE11 sometimes weirdly moves the DOM selection around after\n // backspacing out the first element in a textblock\n if (ie && ie_version <= 11 && $from.parentOffset == 0) {\n view.domObserver.suppressSelectionUpdates();\n setTimeout(() => selectionToDOM(view), 20);\n }\n let tr = mkTr(view.state.tr.delete(chFrom, chTo));\n let marks = doc.resolve(change.start).marksAcross(doc.resolve(change.endA));\n if (marks)\n tr.ensureMarks(marks);\n view.dispatch(tr);\n }\n else if ( // Adding or removing a mark\n change.endA == change.endB &&\n (markChange = isMarkChange($from.parent.content.cut($from.parentOffset, $to.parentOffset), $fromA.parent.content.cut($fromA.parentOffset, change.endA - $fromA.start())))) {\n let tr = mkTr(view.state.tr);\n if (markChange.type == \"add\")\n tr.addMark(chFrom, chTo, markChange.mark);\n else\n tr.removeMark(chFrom, chTo, markChange.mark);\n view.dispatch(tr);\n }\n else if ($from.parent.child($from.index()).isText && $from.index() == $to.index() - ($to.textOffset ? 0 : 1)) {\n // Both positions in the same text node -- simply insert text\n let text = $from.parent.textBetween($from.parentOffset, $to.parentOffset);\n let deflt = () => mkTr(view.state.tr.insertText(text, chFrom, chTo));\n if (!view.someProp(\"handleTextInput\", f => f(view, chFrom, chTo, text, deflt)))\n view.dispatch(deflt());\n }\n else {\n view.dispatch(mkTr());\n }\n }\n else {\n view.dispatch(mkTr());\n }\n}\nfunction resolveSelection(view, doc, parsedSel) {\n if (Math.max(parsedSel.anchor, parsedSel.head) > doc.content.size)\n return null;\n return selectionBetween(view, doc.resolve(parsedSel.anchor), doc.resolve(parsedSel.head));\n}\n// Given two same-length, non-empty fragments of inline content,\n// determine whether the first could be created from the second by\n// removing or adding a single mark type.\nfunction isMarkChange(cur, prev) {\n let curMarks = cur.firstChild.marks, prevMarks = prev.firstChild.marks;\n let added = curMarks, removed = prevMarks, type, mark, update;\n for (let i = 0; i < prevMarks.length; i++)\n added = prevMarks[i].removeFromSet(added);\n for (let i = 0; i < curMarks.length; i++)\n removed = curMarks[i].removeFromSet(removed);\n if (added.length == 1 && removed.length == 0) {\n mark = added[0];\n type = \"add\";\n update = (node) => node.mark(mark.addToSet(node.marks));\n }\n else if (added.length == 0 && removed.length == 1) {\n mark = removed[0];\n type = \"remove\";\n update = (node) => node.mark(mark.removeFromSet(node.marks));\n }\n else {\n return null;\n }\n let updated = [];\n for (let i = 0; i < prev.childCount; i++)\n updated.push(update(prev.child(i)));\n if (Fragment.from(updated).eq(cur))\n return { mark, type };\n}\nfunction looksLikeBackspace(old, start, end, $newStart, $newEnd) {\n if ( // The content must have shrunk\n end - start <= $newEnd.pos - $newStart.pos ||\n // newEnd must point directly at or after the end of the block that newStart points into\n skipClosingAndOpening($newStart, true, false) < $newEnd.pos)\n return false;\n let $start = old.resolve(start);\n // Handle the case where, rather than joining blocks, the change just removed an entire block\n if (!$newStart.parent.isTextblock) {\n let after = $start.nodeAfter;\n return after != null && end == start + after.nodeSize;\n }\n // Start must be at the end of a block\n if ($start.parentOffset < $start.parent.content.size || !$start.parent.isTextblock)\n return false;\n let $next = old.resolve(skipClosingAndOpening($start, true, true));\n // The next textblock must start before end and end near it\n if (!$next.parent.isTextblock || $next.pos > end ||\n skipClosingAndOpening($next, true, false) < end)\n return false;\n // The fragments after the join point must match\n return $newStart.parent.content.cut($newStart.parentOffset).eq($next.parent.content);\n}\nfunction skipClosingAndOpening($pos, fromEnd, mayOpen) {\n let depth = $pos.depth, end = fromEnd ? $pos.end() : $pos.pos;\n while (depth > 0 && (fromEnd || $pos.indexAfter(depth) == $pos.node(depth).childCount)) {\n depth--;\n end++;\n fromEnd = false;\n }\n if (mayOpen) {\n let next = $pos.node(depth).maybeChild($pos.indexAfter(depth));\n while (next && !next.isLeaf) {\n next = next.firstChild;\n end++;\n }\n }\n return end;\n}\nfunction findDiff(a, b, pos, preferredPos, preferredSide) {\n let start = a.findDiffStart(b, pos);\n if (start == null)\n return null;\n let { a: endA, b: endB } = a.findDiffEnd(b, pos + a.size, pos + b.size);\n if (preferredSide == \"end\") {\n let adjust = Math.max(0, start - Math.min(endA, endB));\n preferredPos -= endA + adjust - start;\n }\n if (endA < start && a.size < b.size) {\n let move = preferredPos <= start && preferredPos >= endA ? start - preferredPos : 0;\n start -= move;\n if (start && start < b.size && isSurrogatePair(b.textBetween(start - 1, start + 1)))\n start += move ? 1 : -1;\n endB = start + (endB - endA);\n endA = start;\n }\n else if (endB < start) {\n let move = preferredPos <= start && preferredPos >= endB ? start - preferredPos : 0;\n start -= move;\n if (start && start < a.size && isSurrogatePair(a.textBetween(start - 1, start + 1)))\n start += move ? 1 : -1;\n endA = start + (endA - endB);\n endB = start;\n }\n return { start, endA, endB };\n}\nfunction isSurrogatePair(str) {\n if (str.length != 2)\n return false;\n let a = str.charCodeAt(0), b = str.charCodeAt(1);\n return a >= 0xDC00 && a <= 0xDFFF && b >= 0xD800 && b <= 0xDBFF;\n}\n\n/**\n@internal\n*/\nconst __parseFromClipboard = parseFromClipboard;\n/**\n@internal\n*/\nconst __endComposition = endComposition;\n/**\nAn editor view manages the DOM structure that represents an\neditable document. Its state and behavior are determined by its\n[props](https://prosemirror.net/docs/ref/#view.DirectEditorProps).\n*/\nclass EditorView {\n /**\n Create a view. `place` may be a DOM node that the editor should\n be appended to, a function that will place it into the document,\n or an object whose `mount` property holds the node to use as the\n document container. If it is `null`, the editor will not be\n added to the document.\n */\n constructor(place, props) {\n this._root = null;\n /**\n @internal\n */\n this.focused = false;\n /**\n Kludge used to work around a Chrome bug @internal\n */\n this.trackWrites = null;\n this.mounted = false;\n /**\n @internal\n */\n this.markCursor = null;\n /**\n @internal\n */\n this.cursorWrapper = null;\n /**\n @internal\n */\n this.lastSelectedViewDesc = undefined;\n /**\n @internal\n */\n this.input = new InputState;\n this.prevDirectPlugins = [];\n this.pluginViews = [];\n /**\n Holds `true` when a hack node is needed in Firefox to prevent the\n [space is eaten issue](https://github.com/ProseMirror/prosemirror/issues/651)\n @internal\n */\n this.requiresGeckoHackNode = false;\n /**\n When editor content is being dragged, this object contains\n information about the dragged slice and whether it is being\n copied or moved. At any other time, it is null.\n */\n this.dragging = null;\n this._props = props;\n this.state = props.state;\n this.directPlugins = props.plugins || [];\n this.directPlugins.forEach(checkStateComponent);\n this.dispatch = this.dispatch.bind(this);\n this.dom = (place && place.mount) || document.createElement(\"div\");\n if (place) {\n if (place.appendChild)\n place.appendChild(this.dom);\n else if (typeof place == \"function\")\n place(this.dom);\n else if (place.mount)\n this.mounted = true;\n }\n this.editable = getEditable(this);\n updateCursorWrapper(this);\n this.nodeViews = buildNodeViews(this);\n this.docView = docViewDesc(this.state.doc, computeDocDeco(this), viewDecorations(this), this.dom, this);\n this.domObserver = new DOMObserver(this, (from, to, typeOver, added) => readDOMChange(this, from, to, typeOver, added));\n this.domObserver.start();\n initInput(this);\n this.updatePluginViews();\n }\n /**\n Holds `true` when a\n [composition](https://w3c.github.io/uievents/#events-compositionevents)\n is active.\n */\n get composing() { return this.input.composing; }\n /**\n The view's current [props](https://prosemirror.net/docs/ref/#view.EditorProps).\n */\n get props() {\n if (this._props.state != this.state) {\n let prev = this._props;\n this._props = {};\n for (let name in prev)\n this._props[name] = prev[name];\n this._props.state = this.state;\n }\n return this._props;\n }\n /**\n Update the view's props. Will immediately cause an update to\n the DOM.\n */\n update(props) {\n if (props.handleDOMEvents != this._props.handleDOMEvents)\n ensureListeners(this);\n let prevProps = this._props;\n this._props = props;\n if (props.plugins) {\n props.plugins.forEach(checkStateComponent);\n this.directPlugins = props.plugins;\n }\n this.updateStateInner(props.state, prevProps);\n }\n /**\n Update the view by updating existing props object with the object\n given as argument. Equivalent to `view.update(Object.assign({},\n view.props, props))`.\n */\n setProps(props) {\n let updated = {};\n for (let name in this._props)\n updated[name] = this._props[name];\n updated.state = this.state;\n for (let name in props)\n updated[name] = props[name];\n this.update(updated);\n }\n /**\n Update the editor's `state` prop, without touching any of the\n other props.\n */\n updateState(state) {\n this.updateStateInner(state, this._props);\n }\n updateStateInner(state, prevProps) {\n var _a;\n let prev = this.state, redraw = false, updateSel = false;\n // When stored marks are added, stop composition, so that they can\n // be displayed.\n if (state.storedMarks && this.composing) {\n clearComposition(this);\n updateSel = true;\n }\n this.state = state;\n let pluginsChanged = prev.plugins != state.plugins || this._props.plugins != prevProps.plugins;\n if (pluginsChanged || this._props.plugins != prevProps.plugins || this._props.nodeViews != prevProps.nodeViews) {\n let nodeViews = buildNodeViews(this);\n if (changedNodeViews(nodeViews, this.nodeViews)) {\n this.nodeViews = nodeViews;\n redraw = true;\n }\n }\n if (pluginsChanged || prevProps.handleDOMEvents != this._props.handleDOMEvents) {\n ensureListeners(this);\n }\n this.editable = getEditable(this);\n updateCursorWrapper(this);\n let innerDeco = viewDecorations(this), outerDeco = computeDocDeco(this);\n let scroll = prev.plugins != state.plugins && !prev.doc.eq(state.doc) ? \"reset\"\n : state.scrollToSelection > prev.scrollToSelection ? \"to selection\" : \"preserve\";\n let updateDoc = redraw || !this.docView.matchesNode(state.doc, outerDeco, innerDeco);\n if (updateDoc || !state.selection.eq(prev.selection))\n updateSel = true;\n let oldScrollPos = scroll == \"preserve\" && updateSel && this.dom.style.overflowAnchor == null && storeScrollPos(this);\n if (updateSel) {\n this.domObserver.stop();\n // Work around an issue in Chrome, IE, and Edge where changing\n // the DOM around an active selection puts it into a broken\n // state where the thing the user sees differs from the\n // selection reported by the Selection object (#710, #973,\n // #1011, #1013, #1035).\n let forceSelUpdate = updateDoc && (ie || chrome) && !this.composing &&\n !prev.selection.empty && !state.selection.empty && selectionContextChanged(prev.selection, state.selection);\n if (updateDoc) {\n // If the node that the selection points into is written to,\n // Chrome sometimes starts misreporting the selection, so this\n // tracks that and forces a selection reset when our update\n // did write to the node.\n let chromeKludge = chrome ? (this.trackWrites = this.domSelectionRange().focusNode) : null;\n if (this.composing)\n this.input.compositionNode = findCompositionNode(this);\n if (redraw || !this.docView.update(state.doc, outerDeco, innerDeco, this)) {\n this.docView.updateOuterDeco(outerDeco);\n this.docView.destroy();\n this.docView = docViewDesc(state.doc, outerDeco, innerDeco, this.dom, this);\n }\n if (chromeKludge && (!this.trackWrites || !this.dom.contains(this.trackWrites)))\n forceSelUpdate = true;\n }\n // Work around for an issue where an update arriving right between\n // a DOM selection change and the \"selectionchange\" event for it\n // can cause a spurious DOM selection update, disrupting mouse\n // drag selection.\n if (forceSelUpdate ||\n !(this.input.mouseDown && this.domObserver.currentSelection.eq(this.domSelectionRange()) &&\n anchorInRightPlace(this))) {\n selectionToDOM(this, forceSelUpdate);\n }\n else {\n syncNodeSelection(this, state.selection);\n this.domObserver.setCurSelection();\n }\n this.domObserver.start();\n }\n this.updatePluginViews(prev);\n if (((_a = this.dragging) === null || _a === void 0 ? void 0 : _a.node) && !prev.doc.eq(state.doc))\n this.updateDraggedNode(this.dragging, prev);\n if (scroll == \"reset\") {\n this.dom.scrollTop = 0;\n }\n else if (scroll == \"to selection\") {\n this.scrollToSelection();\n }\n else if (oldScrollPos) {\n resetScrollPos(oldScrollPos);\n }\n }\n /**\n @internal\n */\n scrollToSelection() {\n let startDOM = this.domSelectionRange().focusNode;\n if (!startDOM || !this.dom.contains(startDOM.nodeType == 1 ? startDOM : startDOM.parentNode)) ;\n else if (this.someProp(\"handleScrollToSelection\", f => f(this))) ;\n else if (this.state.selection instanceof NodeSelection) {\n let target = this.docView.domAfterPos(this.state.selection.from);\n if (target.nodeType == 1)\n scrollRectIntoView(this, target.getBoundingClientRect(), startDOM);\n }\n else {\n scrollRectIntoView(this, this.coordsAtPos(this.state.selection.head, 1), startDOM);\n }\n }\n destroyPluginViews() {\n let view;\n while (view = this.pluginViews.pop())\n if (view.destroy)\n view.destroy();\n }\n updatePluginViews(prevState) {\n if (!prevState || prevState.plugins != this.state.plugins || this.directPlugins != this.prevDirectPlugins) {\n this.prevDirectPlugins = this.directPlugins;\n this.destroyPluginViews();\n for (let i = 0; i < this.directPlugins.length; i++) {\n let plugin = this.directPlugins[i];\n if (plugin.spec.view)\n this.pluginViews.push(plugin.spec.view(this));\n }\n for (let i = 0; i < this.state.plugins.length; i++) {\n let plugin = this.state.plugins[i];\n if (plugin.spec.view)\n this.pluginViews.push(plugin.spec.view(this));\n }\n }\n else {\n for (let i = 0; i < this.pluginViews.length; i++) {\n let pluginView = this.pluginViews[i];\n if (pluginView.update)\n pluginView.update(this, prevState);\n }\n }\n }\n updateDraggedNode(dragging, prev) {\n let sel = dragging.node, found = -1;\n if (this.state.doc.nodeAt(sel.from) == sel.node) {\n found = sel.from;\n }\n else {\n let movedPos = sel.from + (this.state.doc.content.size - prev.doc.content.size);\n let moved = movedPos > 0 && this.state.doc.nodeAt(movedPos);\n if (moved == sel.node)\n found = movedPos;\n }\n this.dragging = new Dragging(dragging.slice, dragging.move, found < 0 ? undefined : NodeSelection.create(this.state.doc, found));\n }\n someProp(propName, f) {\n let prop = this._props && this._props[propName], value;\n if (prop != null && (value = f ? f(prop) : prop))\n return value;\n for (let i = 0; i < this.directPlugins.length; i++) {\n let prop = this.directPlugins[i].props[propName];\n if (prop != null && (value = f ? f(prop) : prop))\n return value;\n }\n let plugins = this.state.plugins;\n if (plugins)\n for (let i = 0; i < plugins.length; i++) {\n let prop = plugins[i].props[propName];\n if (prop != null && (value = f ? f(prop) : prop))\n return value;\n }\n }\n /**\n Query whether the view has focus.\n */\n hasFocus() {\n // Work around IE not handling focus correctly if resize handles are shown.\n // If the cursor is inside an element with resize handles, activeElement\n // will be that element instead of this.dom.\n if (ie) {\n // If activeElement is within this.dom, and there are no other elements\n // setting `contenteditable` to false in between, treat it as focused.\n let node = this.root.activeElement;\n if (node == this.dom)\n return true;\n if (!node || !this.dom.contains(node))\n return false;\n while (node && this.dom != node && this.dom.contains(node)) {\n if (node.contentEditable == 'false')\n return false;\n node = node.parentElement;\n }\n return true;\n }\n return this.root.activeElement == this.dom;\n }\n /**\n Focus the editor.\n */\n focus() {\n this.domObserver.stop();\n if (this.editable)\n focusPreventScroll(this.dom);\n selectionToDOM(this);\n this.domObserver.start();\n }\n /**\n Get the document root in which the editor exists. This will\n usually be the top-level `document`, but might be a [shadow\n DOM](https://developer.mozilla.org/en-US/docs/Web/Web_Components/Shadow_DOM)\n root if the editor is inside one.\n */\n get root() {\n let cached = this._root;\n if (cached == null)\n for (let search = this.dom.parentNode; search; search = search.parentNode) {\n if (search.nodeType == 9 || (search.nodeType == 11 && search.host)) {\n if (!search.getSelection)\n Object.getPrototypeOf(search).getSelection = () => search.ownerDocument.getSelection();\n return this._root = search;\n }\n }\n return cached || document;\n }\n /**\n When an existing editor view is moved to a new document or\n shadow tree, call this to make it recompute its root.\n */\n updateRoot() {\n this._root = null;\n }\n /**\n Given a pair of viewport coordinates, return the document\n position that corresponds to them. May return null if the given\n coordinates aren't inside of the editor. When an object is\n returned, its `pos` property is the position nearest to the\n coordinates, and its `inside` property holds the position of the\n inner node that the position falls inside of, or -1 if it is at\n the top level, not in any node.\n */\n posAtCoords(coords) {\n return posAtCoords(this, coords);\n }\n /**\n Returns the viewport rectangle at a given document position.\n `left` and `right` will be the same number, as this returns a\n flat cursor-ish rectangle. If the position is between two things\n that aren't directly adjacent, `side` determines which element\n is used. When < 0, the element before the position is used,\n otherwise the element after.\n */\n coordsAtPos(pos, side = 1) {\n return coordsAtPos(this, pos, side);\n }\n /**\n Find the DOM position that corresponds to the given document\n position. When `side` is negative, find the position as close as\n possible to the content before the position. When positive,\n prefer positions close to the content after the position. When\n zero, prefer as shallow a position as possible.\n \n Note that you should **not** mutate the editor's internal DOM,\n only inspect it (and even that is usually not necessary).\n */\n domAtPos(pos, side = 0) {\n return this.docView.domFromPos(pos, side);\n }\n /**\n Find the DOM node that represents the document node after the\n given position. May return `null` when the position doesn't point\n in front of a node or if the node is inside an opaque node view.\n \n This is intended to be able to call things like\n `getBoundingClientRect` on that DOM node. Do **not** mutate the\n editor DOM directly, or add styling this way, since that will be\n immediately overriden by the editor as it redraws the node.\n */\n nodeDOM(pos) {\n let desc = this.docView.descAt(pos);\n return desc ? desc.nodeDOM : null;\n }\n /**\n Find the document position that corresponds to a given DOM\n position. (Whenever possible, it is preferable to inspect the\n document structure directly, rather than poking around in the\n DOM, but sometimes—for example when interpreting an event\n target—you don't have a choice.)\n \n The `bias` parameter can be used to influence which side of a DOM\n node to use when the position is inside a leaf node.\n */\n posAtDOM(node, offset, bias = -1) {\n let pos = this.docView.posFromDOM(node, offset, bias);\n if (pos == null)\n throw new RangeError(\"DOM position not inside the editor\");\n return pos;\n }\n /**\n Find out whether the selection is at the end of a textblock when\n moving in a given direction. When, for example, given `\"left\"`,\n it will return true if moving left from the current cursor\n position would leave that position's parent textblock. Will apply\n to the view's current state by default, but it is possible to\n pass a different state.\n */\n endOfTextblock(dir, state) {\n return endOfTextblock(this, state || this.state, dir);\n }\n /**\n Run the editor's paste logic with the given HTML string. The\n `event`, if given, will be passed to the\n [`handlePaste`](https://prosemirror.net/docs/ref/#view.EditorProps.handlePaste) hook.\n */\n pasteHTML(html, event) {\n return doPaste(this, \"\", html, false, event || new ClipboardEvent(\"paste\"));\n }\n /**\n Run the editor's paste logic with the given plain-text input.\n */\n pasteText(text, event) {\n return doPaste(this, text, null, true, event || new ClipboardEvent(\"paste\"));\n }\n /**\n Serialize the given slice as it would be if it was copied from\n this editor. Returns a DOM element that contains a\n representation of the slice as its children, a textual\n representation, and the transformed slice (which can be\n different from the given input due to hooks like\n [`transformCopied`](https://prosemirror.net/docs/ref/#view.EditorProps.transformCopied)).\n */\n serializeForClipboard(slice) {\n return serializeForClipboard(this, slice);\n }\n /**\n Removes the editor from the DOM and destroys all [node\n views](https://prosemirror.net/docs/ref/#view.NodeView).\n */\n destroy() {\n if (!this.docView)\n return;\n destroyInput(this);\n this.destroyPluginViews();\n if (this.mounted) {\n this.docView.update(this.state.doc, [], viewDecorations(this), this);\n this.dom.textContent = \"\";\n }\n else if (this.dom.parentNode) {\n this.dom.parentNode.removeChild(this.dom);\n }\n this.docView.destroy();\n this.docView = null;\n clearReusedRange();\n }\n /**\n This is true when the view has been\n [destroyed](https://prosemirror.net/docs/ref/#view.EditorView.destroy) (and thus should not be\n used anymore).\n */\n get isDestroyed() {\n return this.docView == null;\n }\n /**\n Used for testing.\n */\n dispatchEvent(event) {\n return dispatchEvent(this, event);\n }\n /**\n @internal\n */\n domSelectionRange() {\n let sel = this.domSelection();\n if (!sel)\n return { focusNode: null, focusOffset: 0, anchorNode: null, anchorOffset: 0 };\n return safari && this.root.nodeType === 11 &&\n deepActiveElement(this.dom.ownerDocument) == this.dom && safariShadowSelectionRange(this, sel) || sel;\n }\n /**\n @internal\n */\n domSelection() {\n return this.root.getSelection();\n }\n}\nEditorView.prototype.dispatch = function (tr) {\n let dispatchTransaction = this._props.dispatchTransaction;\n if (dispatchTransaction)\n dispatchTransaction.call(this, tr);\n else\n this.updateState(this.state.apply(tr));\n};\nfunction computeDocDeco(view) {\n let attrs = Object.create(null);\n attrs.class = \"ProseMirror\";\n attrs.contenteditable = String(view.editable);\n view.someProp(\"attributes\", value => {\n if (typeof value == \"function\")\n value = value(view.state);\n if (value)\n for (let attr in value) {\n if (attr == \"class\")\n attrs.class += \" \" + value[attr];\n else if (attr == \"style\")\n attrs.style = (attrs.style ? attrs.style + \";\" : \"\") + value[attr];\n else if (!attrs[attr] && attr != \"contenteditable\" && attr != \"nodeName\")\n attrs[attr] = String(value[attr]);\n }\n });\n if (!attrs.translate)\n attrs.translate = \"no\";\n return [Decoration.node(0, view.state.doc.content.size, attrs)];\n}\nfunction updateCursorWrapper(view) {\n if (view.markCursor) {\n let dom = document.createElement(\"img\");\n dom.className = \"ProseMirror-separator\";\n dom.setAttribute(\"mark-placeholder\", \"true\");\n dom.setAttribute(\"alt\", \"\");\n view.cursorWrapper = { dom, deco: Decoration.widget(view.state.selection.from, dom, { raw: true, marks: view.markCursor }) };\n }\n else {\n view.cursorWrapper = null;\n }\n}\nfunction getEditable(view) {\n return !view.someProp(\"editable\", value => value(view.state) === false);\n}\nfunction selectionContextChanged(sel1, sel2) {\n let depth = Math.min(sel1.$anchor.sharedDepth(sel1.head), sel2.$anchor.sharedDepth(sel2.head));\n return sel1.$anchor.start(depth) != sel2.$anchor.start(depth);\n}\nfunction buildNodeViews(view) {\n let result = Object.create(null);\n function add(obj) {\n for (let prop in obj)\n if (!Object.prototype.hasOwnProperty.call(result, prop))\n result[prop] = obj[prop];\n }\n view.someProp(\"nodeViews\", add);\n view.someProp(\"markViews\", add);\n return result;\n}\nfunction changedNodeViews(a, b) {\n let nA = 0, nB = 0;\n for (let prop in a) {\n if (a[prop] != b[prop])\n return true;\n nA++;\n }\n for (let _ in b)\n nB++;\n return nA != nB;\n}\nfunction checkStateComponent(plugin) {\n if (plugin.spec.state || plugin.spec.filterTransaction || plugin.spec.appendTransaction)\n throw new RangeError(\"Plugins passed directly to the view must not have a state component\");\n}\n\nexport { Decoration, DecorationSet, EditorView, __endComposition, __parseFromClipboard };\n"],"names":["domIndex","node","index","parentNode","parent","reusedRange","textRange","from","to","range","clearReusedRange","isEquivalentPosition","off","targetNode","targetOff","scanFor","atomElements","dir","_a","nodeSize","hasBlockDesc","child","textNodeBefore$1","offset","textNodeAfter$1","isOnEdge","atStart","atEnd","dom","desc","cur","selectionCollapsed","domSel","keyEvent","keyCode","key","event","deepActiveElement","doc","elt","caretFromPoint","x","y","pos","nav","agent","ie_edge","ie_upto10","ie_11up","ie","ie_version","gecko","_chrome","chrome","chrome_version","safari","ios","mac","windows","android","webkit","webkit_version","windowRect","vp","getSide","value","side","clientRect","rect","scaleX","scaleY","scrollRectIntoView","view","startDOM","scrollThreshold","scrollMargin","atTop","bounding","moveX","moveY","startX","startY","dX","dY","storeScrollPos","refDOM","refTop","localRect","scrollStack","stack","resetScrollPos","newRefTop","restoreScrollStack","dTop","i","top","left","preventScrollSupported","focusPreventScroll","stored","findOffsetInNode","coords","closest","dxClosest","coordsClosest","rowBot","rowTop","firstBelow","coordsBelow","childIndex","rects","dx","findOffsetInText","len","result","singleRect","inRect","targetKludge","posFromElement","bias","posFromCaret","outsideBlock","sawBlock","elementFromPoint","element","box","startI","j","posAtCoords","caret","p","next","prev","nonZero","target","first","BIDI","coordsAtPos","atom","supportEmptyRange","rectBefore","rectAfter","flattenV","takeSide","before","flattenH","after","withFlushedState","state","f","viewState","active","endOfTextblockVertical","sel","$pos","nearest","boxes","maybeRTL","endOfTextblockHorizontal","$head","oldNode","oldOff","anchorNode","anchorOffset","oldBidiLevel","parentDOM","newNode","newOff","cachedState","cachedDir","cachedResult","endOfTextblock","NOT_DIRTY","CHILD_DIRTY","CONTENT_DIRTY","NODE_DIRTY","ViewDesc","children","contentDOM","widget","mark","outerDeco","innerDeco","nodeName","size","domBefore","domAfter","search","onlyNodes","nodeDOM","scan","end","inner","curPos","TrailingHackViewDesc","WidgetViewDesc","enter","base","fromOffset","toOffset","childBase","anchor","head","force","anchorDOM","headDOM","selRange","brKludge","domSelExtended","tmp","mutation","startInside","endInside","level","dirty","text","self","wrap","stop","CompositionViewDesc","textDOM","mut","MarkViewDesc","spec","inline","custom","DOMSerializer","copy","nodes","replaceNodes","NodeViewDesc","descObj","applyOuterDeco","CustomNodeViewDesc","TextViewDesc","rule","Fragment","sameOuterDeco","composition","localComposition","compositionInChild","updater","ViewTreeUpdater","iterDeco","insideNode","Mark","compIndex","renderDescs","iosHacks","TextSelection","textNode","textPos","findTextInFragment","topNode","needsWrap","oldDOM","patchOuterDeco","computeOuterDeco","docViewDesc","docView","skip","descs","written","childDOM","rm","OuterDecoLevel","noDeco","attrs","name","val","outerDOM","prevComputed","curComputed","curDOM","deco","patchAttributes","prevList","curList","prop","m","a","b","lock","preMatch","start","marks","parentIndex","keep","depth","maxKeep","found","scanTo","markDesc","targetDesc","e","domNode","nextDOM","updated","locked","wrapper","ch","lastChild","hack","frag","parentDesc","curDesc","descI","fI","matched","matches","outer","compareSide","onWidget","onNode","locals","decoIndex","restNode","widgets","cutAt","d","oldCSS","childStart","str","replacement","selectionFromDOM","origin","nearestDesc","inWidget","selection","nearestDescNode","NodeSelection","min","max","$anchor","selectionBetween","editorOwnsSelection","hasSelection","selectionToDOM","syncNodeSelection","curSel","selectCursorWrapper","resetEditableFrom","resetEditableTo","brokenSelectBetweenUneditable","temporarilyEditableNear","resetEditable","removeClassOnSelectionChange","setEditable","img","clearNodeSelection","hasFocusAndSelection","anchorInRightPlace","moveSelectionBlock","$side","$start","Selection","apply","selectHorizontally","mods","$newHead","nodePos","nodeLen","isIgnorable","skipIgnoredNodes","skipIgnoredNodesBefore","skipIgnoredNodesAfter","moveNode","moveOffset","isBlockNode","setSelFocus","textNodeAfter","textNodeBefore","findDirection","mid","selectVertically","$from","$to","beyond","AllSelection","stopNativeHorizontalDelete","empty","nextNode","tr","switchEditable","safariDownArrowBug","focusNode","focusOffset","getMods","captureKeyDown","code","serializeForClipboard","slice","context","content","openStart","openEnd","serializer","detachedDoc","firstChild","wrappers","wrapMap","parseFromClipboard","html","plainText","$context","inCode","asText","Slice","parsed","schema","block","readHTML","restoreReplacedSpaces","contextNode","sliceData","DOMParser","inlineParents","addContext","closeSlice","normalizeSiblings","fragment","match","lastWrap","inLast","addToSibling","closeRight","wrapped","withWrappers","sibling","fill","closeRange","_detachedDoc","_policy","maybeWrapTrusted","trustedTypes","s","metas","firstTag","n","array","type","handlers","editHandlers","passiveHandlers","InputState","initInput","handler","eventBelongsToView","runCustomHandler","ensureListeners","setSelectionOrigin","destroyInput","currentHandlers","dispatchEvent","_event","inOrNearComposition","now","deflt","eventCoords","isNear","click","dy","runHandlerOnContext","propName","inside","updateSelection","selectClickedLeaf","selectClickedNode","selectedNode","selectAt","handleSingleClick","selectNode","handleDoubleClick","handleTripleClick","defaultTripleClick","forceDOMFlush","endComposition","selectNodeModifier","flushed","MouseDown","targetPos","timeoutComposition","selectionBeforeUneditable","scheduleComposeEnd","delay","clearComposition","timestampFromCustomEvent","findCompositionNode","textBefore","textAfter","descAfter","lastChanged","descBefore","restarting","captureCopy","brokenClipboardAPI","cut","data","sliceSingleNode","capturePaste","plain","doPaste","preferPlain","singleNode","getText","clipboardData","uris","Dragging","move","dragCopyModifier","dragMoves","moves","test","mouseDown","draggedSlice","dragging","_","handleDrop","eventPos","$mouse","insertPos","dropPoint","isNode","beforeInsert","_from","_to","_newFrom","newTo","domChangeCount","$cursor","compareObjs","WidgetType","toDOM","noSpec","mapping","span","oldOffset","deleted","Decoration","other","InlineType","NodeType","none","DecorationSet","local","decorations","buildTree","predicate","childOff","options","newLocal","mapped","mapChildren","byPos","childNode","childOffset","baseOffset","takeSpansForNode","moveSpans","withoutNulls","removed","dec","localSet","DecorationGroup","removeOverlap","members","mappedDecos","member","sorted","r","oldChildren","moved","oldStart","oldEnd","newStart","newEnd","dSize","mustRebuild","fromLocal","toLocal","mapAndGatherRemainingDecorations","built","spans","gather","set","hasNulls","localStart","subtree","working","insertAhead","viewDecorations","observeOptions","useCharData","SelectionState","DOMObserver","handleDOMChange","mutations","take","ancestors","container","newSel","typeOver","added","brs","br","blockParent","readSel","checkCSS","fixUpBadSafariComposition","previousSibling","nextSibling","cssChecked","cssCheckWarned","rangeToSelectionRange","currentAnchor","safariShadowSelectionRange","read","addedNodes","nextCell","parseBetween","from_","to_","find","startDoc","parser","ruleFromNode","isInline","readDOMChange","compositionID","$before","shared","parse","compare","preferredPos","preferredSide","change","findDiff","resolveSelection","$fromA","inlineChange","looksLikeBackspace","chFrom","chTo","mkTr","markChange","isMarkChange","parsedSel","curMarks","prevMarks","update","old","$newStart","$newEnd","skipClosingAndOpening","$next","fromEnd","mayOpen","endA","endB","adjust","isSurrogatePair","EditorView","place","props","checkStateComponent","getEditable","updateCursorWrapper","buildNodeViews","computeDocDeco","prevProps","redraw","updateSel","pluginsChanged","nodeViews","changedNodeViews","scroll","updateDoc","oldScrollPos","forceSelUpdate","selectionContextChanged","chromeKludge","prevState","plugin","pluginView","movedPos","plugins","cached","dispatchTransaction","attr","sel1","sel2","add","obj","nA","nB"],"mappings":"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","x_google_ignoreList":[0]}