@payloadcms/richtext-slate 3.0.0-alpha.7 → 3.0.0-alpha.70

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 (428) hide show
  1. package/dist/cell/index.d.ts +2 -3
  2. package/dist/cell/index.d.ts.map +1 -1
  3. package/dist/cell/index.js +4 -20
  4. package/dist/cell/index.js.map +1 -0
  5. package/dist/data/defaultValue.js +2 -12
  6. package/dist/data/defaultValue.js.map +1 -0
  7. package/dist/data/populate.d.ts +5 -4
  8. package/dist/data/populate.d.ts.map +1 -1
  9. package/dist/data/populate.js +14 -22
  10. package/dist/data/populate.js.map +1 -0
  11. package/dist/data/recurseNestedFields.d.ts +5 -4
  12. package/dist/data/recurseNestedFields.d.ts.map +1 -1
  13. package/dist/data/recurseNestedFields.js +28 -28
  14. package/dist/data/recurseNestedFields.js.map +1 -0
  15. package/dist/data/richTextRelationshipPromise.d.ts +8 -7
  16. package/dist/data/richTextRelationshipPromise.d.ts.map +1 -1
  17. package/dist/data/richTextRelationshipPromise.js +19 -33
  18. package/dist/data/richTextRelationshipPromise.js.map +1 -0
  19. package/dist/data/validation.d.ts +1 -1
  20. package/dist/data/validation.d.ts.map +1 -1
  21. package/dist/data/validation.js +6 -16
  22. package/dist/data/validation.js.map +1 -0
  23. package/dist/field/RichText.d.ts +10 -18
  24. package/dist/field/RichText.d.ts.map +1 -1
  25. package/dist/field/RichText.js +97 -133
  26. package/dist/field/RichText.js.map +1 -0
  27. package/dist/field/createFeatureMap.d.ts +1 -1
  28. package/dist/field/createFeatureMap.d.ts.map +1 -1
  29. package/dist/field/createFeatureMap.js +2 -12
  30. package/dist/field/createFeatureMap.js.map +1 -0
  31. package/dist/field/elements/Button.d.ts +2 -3
  32. package/dist/field/elements/Button.d.ts.map +1 -1
  33. package/dist/field/elements/Button.js +16 -81
  34. package/dist/field/elements/Button.js.map +1 -0
  35. package/dist/field/elements/EnabledRelationshipsCondition.d.ts.map +1 -1
  36. package/dist/field/elements/EnabledRelationshipsCondition.js +15 -64
  37. package/dist/field/elements/EnabledRelationshipsCondition.js.map +1 -0
  38. package/dist/field/elements/ListButton.d.ts +2 -3
  39. package/dist/field/elements/ListButton.d.ts.map +1 -1
  40. package/dist/field/elements/ListButton.js +13 -78
  41. package/dist/field/elements/ListButton.js.map +1 -0
  42. package/dist/field/elements/areAllChildrenElements.js +4 -14
  43. package/dist/field/elements/areAllChildrenElements.js.map +1 -0
  44. package/dist/field/elements/blockquote/Blockquote.js +7 -22
  45. package/dist/field/elements/blockquote/Blockquote.js.map +1 -0
  46. package/dist/field/elements/blockquote/index.d.ts +2 -3
  47. package/dist/field/elements/blockquote/index.d.ts.map +1 -1
  48. package/dist/field/elements/blockquote/index.js +9 -25
  49. package/dist/field/elements/blockquote/index.js.map +1 -0
  50. package/dist/field/elements/getCommonBlock.js +9 -19
  51. package/dist/field/elements/getCommonBlock.js.map +1 -0
  52. package/dist/field/elements/h1/Heading1.js +6 -21
  53. package/dist/field/elements/h1/Heading1.js.map +1 -0
  54. package/dist/field/elements/h1/index.d.ts +2 -3
  55. package/dist/field/elements/h1/index.d.ts.map +1 -1
  56. package/dist/field/elements/h1/index.js +9 -25
  57. package/dist/field/elements/h1/index.js.map +1 -0
  58. package/dist/field/elements/h2/Heading2.js +6 -21
  59. package/dist/field/elements/h2/Heading2.js.map +1 -0
  60. package/dist/field/elements/h2/index.d.ts +2 -3
  61. package/dist/field/elements/h2/index.d.ts.map +1 -1
  62. package/dist/field/elements/h2/index.js +9 -25
  63. package/dist/field/elements/h2/index.js.map +1 -0
  64. package/dist/field/elements/h3/Heading3.js +6 -21
  65. package/dist/field/elements/h3/Heading3.js.map +1 -0
  66. package/dist/field/elements/h3/index.d.ts +2 -3
  67. package/dist/field/elements/h3/index.d.ts.map +1 -1
  68. package/dist/field/elements/h3/index.js +9 -25
  69. package/dist/field/elements/h3/index.js.map +1 -0
  70. package/dist/field/elements/h4/Heading4.js +6 -21
  71. package/dist/field/elements/h4/Heading4.js.map +1 -0
  72. package/dist/field/elements/h4/index.d.ts +2 -3
  73. package/dist/field/elements/h4/index.d.ts.map +1 -1
  74. package/dist/field/elements/h4/index.js +9 -25
  75. package/dist/field/elements/h4/index.js.map +1 -0
  76. package/dist/field/elements/h5/Heading5.js +6 -21
  77. package/dist/field/elements/h5/Heading5.js.map +1 -0
  78. package/dist/field/elements/h5/index.d.ts +2 -3
  79. package/dist/field/elements/h5/index.d.ts.map +1 -1
  80. package/dist/field/elements/h5/index.js +9 -25
  81. package/dist/field/elements/h5/index.js.map +1 -0
  82. package/dist/field/elements/h6/Heading6.js +6 -21
  83. package/dist/field/elements/h6/Heading6.js.map +1 -0
  84. package/dist/field/elements/h6/index.d.ts +2 -3
  85. package/dist/field/elements/h6/index.d.ts.map +1 -1
  86. package/dist/field/elements/h6/index.js +9 -25
  87. package/dist/field/elements/h6/index.js.map +1 -0
  88. package/dist/field/elements/indent/Button.js +60 -115
  89. package/dist/field/elements/indent/Button.js.map +1 -0
  90. package/dist/field/elements/indent/Element.js +6 -21
  91. package/dist/field/elements/indent/Element.js.map +1 -0
  92. package/dist/field/elements/indent/index.d.ts +2 -3
  93. package/dist/field/elements/indent/index.d.ts.map +1 -1
  94. package/dist/field/elements/indent/index.js +8 -19
  95. package/dist/field/elements/indent/index.js.map +1 -0
  96. package/dist/field/elements/indent/shared.js +2 -12
  97. package/dist/field/elements/indent/shared.js.map +1 -0
  98. package/dist/field/elements/index.d.ts +2 -3
  99. package/dist/field/elements/index.d.ts.map +1 -1
  100. package/dist/field/elements/index.js +32 -48
  101. package/dist/field/elements/index.js.map +1 -0
  102. package/dist/field/elements/injectVoid.js +12 -22
  103. package/dist/field/elements/injectVoid.js.map +1 -0
  104. package/dist/field/elements/isActive.d.ts +1 -2
  105. package/dist/field/elements/isActive.d.ts.map +1 -1
  106. package/dist/field/elements/isActive.js +6 -17
  107. package/dist/field/elements/isActive.js.map +1 -0
  108. package/dist/field/elements/isBlockElement.d.ts +1 -1
  109. package/dist/field/elements/isBlockElement.d.ts.map +1 -1
  110. package/dist/field/elements/isBlockElement.js +9 -14
  111. package/dist/field/elements/isBlockElement.js.map +1 -0
  112. package/dist/field/elements/isLastSelectedElementEmpty.js +8 -18
  113. package/dist/field/elements/isLastSelectedElementEmpty.js.map +1 -0
  114. package/dist/field/elements/isListActive.d.ts +1 -2
  115. package/dist/field/elements/isListActive.d.ts.map +1 -1
  116. package/dist/field/elements/isListActive.js +8 -19
  117. package/dist/field/elements/isListActive.js.map +1 -0
  118. package/dist/field/elements/isWithinListItem.js +5 -15
  119. package/dist/field/elements/isWithinListItem.js.map +1 -0
  120. package/dist/field/elements/li/ListItem.js +9 -65
  121. package/dist/field/elements/li/ListItem.js.map +1 -0
  122. package/dist/field/elements/li/index.d.ts +2 -3
  123. package/dist/field/elements/li/index.d.ts.map +1 -1
  124. package/dist/field/elements/li/index.js +4 -15
  125. package/dist/field/elements/li/index.js.map +1 -0
  126. package/dist/field/elements/link/Button/index.d.ts.map +1 -1
  127. package/dist/field/elements/link/Button/index.js +46 -100
  128. package/dist/field/elements/link/Button/index.js.map +1 -0
  129. package/dist/field/elements/link/Element/index.d.ts.map +1 -1
  130. package/dist/field/elements/link/Element/index.js +69 -107
  131. package/dist/field/elements/link/Element/index.js.map +1 -0
  132. package/dist/field/elements/link/LinkDrawer/baseFields.d.ts +2 -2
  133. package/dist/field/elements/link/LinkDrawer/baseFields.d.ts.map +1 -1
  134. package/dist/field/elements/link/LinkDrawer/baseFields.js +10 -31
  135. package/dist/field/elements/link/LinkDrawer/baseFields.js.map +1 -0
  136. package/dist/field/elements/link/LinkDrawer/index.d.ts +1 -1
  137. package/dist/field/elements/link/LinkDrawer/index.d.ts.map +1 -1
  138. package/dist/field/elements/link/LinkDrawer/index.js +40 -79
  139. package/dist/field/elements/link/LinkDrawer/index.js.map +1 -0
  140. package/dist/field/elements/link/LinkDrawer/types.d.ts +2 -1
  141. package/dist/field/elements/link/LinkDrawer/types.d.ts.map +1 -1
  142. package/dist/field/elements/link/LinkDrawer/types.js +2 -5
  143. package/dist/field/elements/link/LinkDrawer/types.js.map +1 -0
  144. package/dist/field/elements/link/WithLinks.js +4 -14
  145. package/dist/field/elements/link/WithLinks.js.map +1 -0
  146. package/dist/field/elements/link/index.d.ts +2 -3
  147. package/dist/field/elements/link/index.d.ts.map +1 -1
  148. package/dist/field/elements/link/index.js +8 -19
  149. package/dist/field/elements/link/index.js.map +1 -0
  150. package/dist/field/elements/link/shared.js +3 -21
  151. package/dist/field/elements/link/shared.js.map +1 -0
  152. package/dist/field/elements/link/types.js +2 -5
  153. package/dist/field/elements/link/types.js.map +1 -0
  154. package/dist/field/elements/link/utilities.d.ts +1 -3
  155. package/dist/field/elements/link/utilities.d.ts.map +1 -1
  156. package/dist/field/elements/link/utilities.js +17 -37
  157. package/dist/field/elements/link/utilities.js.map +1 -0
  158. package/dist/field/elements/listTypes.d.ts +1 -2
  159. package/dist/field/elements/listTypes.d.ts.map +1 -1
  160. package/dist/field/elements/listTypes.js +2 -12
  161. package/dist/field/elements/listTypes.js.map +1 -0
  162. package/dist/field/elements/ol/OrderedList.js +7 -22
  163. package/dist/field/elements/ol/OrderedList.js.map +1 -0
  164. package/dist/field/elements/ol/index.d.ts +2 -3
  165. package/dist/field/elements/ol/index.d.ts.map +1 -1
  166. package/dist/field/elements/ol/index.js +9 -25
  167. package/dist/field/elements/ol/index.js.map +1 -0
  168. package/dist/field/elements/relationship/Button/index.d.ts +2 -2
  169. package/dist/field/elements/relationship/Button/index.d.ts.map +1 -1
  170. package/dist/field/elements/relationship/Button/index.js +22 -77
  171. package/dist/field/elements/relationship/Button/index.js.map +1 -0
  172. package/dist/field/elements/relationship/Element/index.d.ts +3 -3
  173. package/dist/field/elements/relationship/Element/index.d.ts.map +1 -1
  174. package/dist/field/elements/relationship/Element/index.js +50 -96
  175. package/dist/field/elements/relationship/Element/index.js.map +1 -0
  176. package/dist/field/elements/relationship/index.d.ts +2 -3
  177. package/dist/field/elements/relationship/index.d.ts.map +1 -1
  178. package/dist/field/elements/relationship/index.js +10 -26
  179. package/dist/field/elements/relationship/index.js.map +1 -0
  180. package/dist/field/elements/relationship/plugin.js +6 -16
  181. package/dist/field/elements/relationship/plugin.js.map +1 -0
  182. package/dist/field/elements/relationship/shared.js +2 -12
  183. package/dist/field/elements/relationship/shared.js.map +1 -0
  184. package/dist/field/elements/relationship/types.js +2 -5
  185. package/dist/field/elements/relationship/types.js.map +1 -0
  186. package/dist/field/elements/textAlign/index.d.ts +2 -3
  187. package/dist/field/elements/textAlign/index.d.ts.map +1 -1
  188. package/dist/field/elements/textAlign/index.js +11 -27
  189. package/dist/field/elements/textAlign/index.js.map +1 -0
  190. package/dist/field/elements/toggle.d.ts +1 -2
  191. package/dist/field/elements/toggle.d.ts.map +1 -1
  192. package/dist/field/elements/toggle.js +13 -29
  193. package/dist/field/elements/toggle.js.map +1 -0
  194. package/dist/field/elements/toggleList.d.ts +1 -2
  195. package/dist/field/elements/toggleList.d.ts.map +1 -1
  196. package/dist/field/elements/toggleList.js +27 -43
  197. package/dist/field/elements/toggleList.js.map +1 -0
  198. package/dist/field/elements/types.js +2 -5
  199. package/dist/field/elements/types.js.map +1 -0
  200. package/dist/field/elements/ul/UnorderedList.js +7 -22
  201. package/dist/field/elements/ul/UnorderedList.js.map +1 -0
  202. package/dist/field/elements/ul/index.d.ts +2 -3
  203. package/dist/field/elements/ul/index.d.ts.map +1 -1
  204. package/dist/field/elements/ul/index.js +9 -25
  205. package/dist/field/elements/ul/index.js.map +1 -0
  206. package/dist/field/elements/unwrapList.js +13 -28
  207. package/dist/field/elements/unwrapList.js.map +1 -0
  208. package/dist/field/elements/upload/Button/index.d.ts +2 -2
  209. package/dist/field/elements/upload/Button/index.d.ts.map +1 -1
  210. package/dist/field/elements/upload/Button/index.js +21 -76
  211. package/dist/field/elements/upload/Button/index.js.map +1 -0
  212. package/dist/field/elements/upload/Element/UploadDrawer/index.d.ts +4 -4
  213. package/dist/field/elements/upload/Element/UploadDrawer/index.d.ts.map +1 -1
  214. package/dist/field/elements/upload/Element/UploadDrawer/index.js +70 -87
  215. package/dist/field/elements/upload/Element/UploadDrawer/index.js.map +1 -0
  216. package/dist/field/elements/upload/Element/index.d.ts +3 -3
  217. package/dist/field/elements/upload/Element/index.d.ts.map +1 -1
  218. package/dist/field/elements/upload/Element/index.js +64 -108
  219. package/dist/field/elements/upload/Element/index.js.map +1 -0
  220. package/dist/field/elements/upload/index.d.ts +2 -3
  221. package/dist/field/elements/upload/index.d.ts.map +1 -1
  222. package/dist/field/elements/upload/index.js +10 -26
  223. package/dist/field/elements/upload/index.js.map +1 -0
  224. package/dist/field/elements/upload/plugin.js +6 -16
  225. package/dist/field/elements/upload/plugin.js.map +1 -0
  226. package/dist/field/elements/upload/shared.js +3 -21
  227. package/dist/field/elements/upload/shared.js.map +1 -0
  228. package/dist/field/elements/upload/types.js +2 -5
  229. package/dist/field/elements/upload/types.js.map +1 -0
  230. package/dist/field/hotkeys.d.ts +1 -2
  231. package/dist/field/hotkeys.d.ts.map +1 -1
  232. package/dist/field/hotkeys.js +2 -12
  233. package/dist/field/hotkeys.js.map +1 -0
  234. package/dist/field/icons/AlignCenter/index.d.ts +1 -2
  235. package/dist/field/icons/AlignCenter/index.d.ts.map +1 -1
  236. package/dist/field/icons/AlignCenter/index.js +4 -20
  237. package/dist/field/icons/AlignCenter/index.js.map +1 -0
  238. package/dist/field/icons/AlignLeft/index.d.ts +1 -2
  239. package/dist/field/icons/AlignLeft/index.d.ts.map +1 -1
  240. package/dist/field/icons/AlignLeft/index.js +4 -20
  241. package/dist/field/icons/AlignLeft/index.js.map +1 -0
  242. package/dist/field/icons/AlignRight/index.d.ts +1 -2
  243. package/dist/field/icons/AlignRight/index.d.ts.map +1 -1
  244. package/dist/field/icons/AlignRight/index.js +4 -20
  245. package/dist/field/icons/AlignRight/index.js.map +1 -0
  246. package/dist/field/icons/Blockquote/index.d.ts +1 -2
  247. package/dist/field/icons/Blockquote/index.d.ts.map +1 -1
  248. package/dist/field/icons/Blockquote/index.js +5 -21
  249. package/dist/field/icons/Blockquote/index.js.map +1 -0
  250. package/dist/field/icons/Bold/index.d.ts +1 -2
  251. package/dist/field/icons/Bold/index.d.ts.map +1 -1
  252. package/dist/field/icons/Bold/index.js +5 -21
  253. package/dist/field/icons/Bold/index.js.map +1 -0
  254. package/dist/field/icons/Code/index.d.ts +1 -2
  255. package/dist/field/icons/Code/index.d.ts.map +1 -1
  256. package/dist/field/icons/Code/index.js +4 -20
  257. package/dist/field/icons/Code/index.js.map +1 -0
  258. package/dist/field/icons/IndentLeft/index.d.ts +1 -2
  259. package/dist/field/icons/IndentLeft/index.d.ts.map +1 -1
  260. package/dist/field/icons/IndentLeft/index.js +8 -24
  261. package/dist/field/icons/IndentLeft/index.js.map +1 -0
  262. package/dist/field/icons/IndentRight/index.d.ts +1 -2
  263. package/dist/field/icons/IndentRight/index.d.ts.map +1 -1
  264. package/dist/field/icons/IndentRight/index.js +8 -24
  265. package/dist/field/icons/IndentRight/index.js.map +1 -0
  266. package/dist/field/icons/Italic/index.d.ts +1 -2
  267. package/dist/field/icons/Italic/index.d.ts.map +1 -1
  268. package/dist/field/icons/Italic/index.js +5 -21
  269. package/dist/field/icons/Italic/index.js.map +1 -0
  270. package/dist/field/icons/Link/index.d.ts +1 -2
  271. package/dist/field/icons/Link/index.d.ts.map +1 -1
  272. package/dist/field/icons/Link/index.js +6 -22
  273. package/dist/field/icons/Link/index.js.map +1 -0
  274. package/dist/field/icons/OrderedList/index.d.ts +1 -2
  275. package/dist/field/icons/OrderedList/index.d.ts.map +1 -1
  276. package/dist/field/icons/OrderedList/index.js +5 -21
  277. package/dist/field/icons/OrderedList/index.js.map +1 -0
  278. package/dist/field/icons/Relationship/index.d.ts +1 -2
  279. package/dist/field/icons/Relationship/index.d.ts.map +1 -1
  280. package/dist/field/icons/Relationship/index.js +7 -23
  281. package/dist/field/icons/Relationship/index.js.map +1 -0
  282. package/dist/field/icons/Strikethrough/index.d.ts +1 -2
  283. package/dist/field/icons/Strikethrough/index.d.ts.map +1 -1
  284. package/dist/field/icons/Strikethrough/index.js +5 -21
  285. package/dist/field/icons/Strikethrough/index.js.map +1 -0
  286. package/dist/field/icons/Underline/index.d.ts +1 -2
  287. package/dist/field/icons/Underline/index.d.ts.map +1 -1
  288. package/dist/field/icons/Underline/index.js +5 -21
  289. package/dist/field/icons/Underline/index.js.map +1 -0
  290. package/dist/field/icons/UnorderedList/index.d.ts +1 -2
  291. package/dist/field/icons/UnorderedList/index.d.ts.map +1 -1
  292. package/dist/field/icons/UnorderedList/index.js +5 -21
  293. package/dist/field/icons/UnorderedList/index.js.map +1 -0
  294. package/dist/field/icons/Upload/index.d.ts +1 -2
  295. package/dist/field/icons/Upload/index.d.ts.map +1 -1
  296. package/dist/field/icons/Upload/index.js +6 -22
  297. package/dist/field/icons/Upload/index.js.map +1 -0
  298. package/dist/field/icons/headings/H1/index.d.ts +1 -2
  299. package/dist/field/icons/headings/H1/index.d.ts.map +1 -1
  300. package/dist/field/icons/headings/H1/index.js +5 -21
  301. package/dist/field/icons/headings/H1/index.js.map +1 -0
  302. package/dist/field/icons/headings/H2/index.d.ts +1 -2
  303. package/dist/field/icons/headings/H2/index.d.ts.map +1 -1
  304. package/dist/field/icons/headings/H2/index.js +5 -21
  305. package/dist/field/icons/headings/H2/index.js.map +1 -0
  306. package/dist/field/icons/headings/H3/index.d.ts +1 -2
  307. package/dist/field/icons/headings/H3/index.d.ts.map +1 -1
  308. package/dist/field/icons/headings/H3/index.js +5 -21
  309. package/dist/field/icons/headings/H3/index.js.map +1 -0
  310. package/dist/field/icons/headings/H4/index.d.ts +1 -2
  311. package/dist/field/icons/headings/H4/index.d.ts.map +1 -1
  312. package/dist/field/icons/headings/H4/index.js +5 -21
  313. package/dist/field/icons/headings/H4/index.js.map +1 -0
  314. package/dist/field/icons/headings/H5/index.d.ts +1 -2
  315. package/dist/field/icons/headings/H5/index.d.ts.map +1 -1
  316. package/dist/field/icons/headings/H5/index.js +5 -21
  317. package/dist/field/icons/headings/H5/index.js.map +1 -0
  318. package/dist/field/icons/headings/H6/index.d.ts +1 -2
  319. package/dist/field/icons/headings/H6/index.d.ts.map +1 -1
  320. package/dist/field/icons/headings/H6/index.js +5 -21
  321. package/dist/field/icons/headings/H6/index.js.map +1 -0
  322. package/dist/field/index.d.ts +2 -3
  323. package/dist/field/index.d.ts.map +1 -1
  324. package/dist/field/index.js +22 -73
  325. package/dist/field/index.js.map +1 -0
  326. package/dist/field/leaves/Button.d.ts +1 -2
  327. package/dist/field/leaves/Button.d.ts.map +1 -1
  328. package/dist/field/leaves/Button.js +11 -27
  329. package/dist/field/leaves/Button.js.map +1 -0
  330. package/dist/field/leaves/bold/Bold/index.js +6 -21
  331. package/dist/field/leaves/bold/Bold/index.js.map +1 -0
  332. package/dist/field/leaves/bold/index.d.ts +2 -3
  333. package/dist/field/leaves/bold/index.d.ts.map +1 -1
  334. package/dist/field/leaves/bold/index.js +9 -25
  335. package/dist/field/leaves/bold/index.js.map +1 -0
  336. package/dist/field/leaves/code/Code/index.js +6 -21
  337. package/dist/field/leaves/code/Code/index.js.map +1 -0
  338. package/dist/field/leaves/code/index.d.ts +2 -3
  339. package/dist/field/leaves/code/index.d.ts.map +1 -1
  340. package/dist/field/leaves/code/index.js +9 -25
  341. package/dist/field/leaves/code/index.js.map +1 -0
  342. package/dist/field/leaves/index.d.ts +2 -3
  343. package/dist/field/leaves/index.d.ts.map +1 -1
  344. package/dist/field/leaves/index.js +12 -28
  345. package/dist/field/leaves/index.js.map +1 -0
  346. package/dist/field/leaves/isActive.d.ts +1 -2
  347. package/dist/field/leaves/isActive.d.ts.map +1 -1
  348. package/dist/field/leaves/isActive.js +4 -15
  349. package/dist/field/leaves/isActive.js.map +1 -0
  350. package/dist/field/leaves/italic/Italic/index.js +6 -21
  351. package/dist/field/leaves/italic/Italic/index.js.map +1 -0
  352. package/dist/field/leaves/italic/index.d.ts +2 -3
  353. package/dist/field/leaves/italic/index.d.ts.map +1 -1
  354. package/dist/field/leaves/italic/index.js +9 -25
  355. package/dist/field/leaves/italic/index.js.map +1 -0
  356. package/dist/field/leaves/strikethrough/Strikethrough/index.js +6 -21
  357. package/dist/field/leaves/strikethrough/Strikethrough/index.js.map +1 -0
  358. package/dist/field/leaves/strikethrough/index.d.ts +2 -3
  359. package/dist/field/leaves/strikethrough/index.d.ts.map +1 -1
  360. package/dist/field/leaves/strikethrough/index.js +9 -25
  361. package/dist/field/leaves/strikethrough/index.js.map +1 -0
  362. package/dist/field/leaves/toggle.d.ts +1 -2
  363. package/dist/field/leaves/toggle.d.ts.map +1 -1
  364. package/dist/field/leaves/toggle.js +7 -23
  365. package/dist/field/leaves/toggle.js.map +1 -0
  366. package/dist/field/leaves/underline/Underline/index.js +6 -21
  367. package/dist/field/leaves/underline/Underline/index.js.map +1 -0
  368. package/dist/field/leaves/underline/index.d.ts +2 -3
  369. package/dist/field/leaves/underline/index.d.ts.map +1 -1
  370. package/dist/field/leaves/underline/index.js +9 -25
  371. package/dist/field/leaves/underline/index.js.map +1 -0
  372. package/dist/field/mergeCustomFunctions.js +3 -13
  373. package/dist/field/mergeCustomFunctions.js.map +1 -0
  374. package/dist/field/plugins/withEnterBreakOut.d.ts +1 -2
  375. package/dist/field/plugins/withEnterBreakOut.d.ts.map +1 -1
  376. package/dist/field/plugins/withEnterBreakOut.js +2 -13
  377. package/dist/field/plugins/withEnterBreakOut.js.map +1 -0
  378. package/dist/field/plugins/withHTML.d.ts +1 -2
  379. package/dist/field/plugins/withHTML.d.ts.map +1 -1
  380. package/dist/field/plugins/withHTML.js +8 -19
  381. package/dist/field/plugins/withHTML.js.map +1 -0
  382. package/dist/field/providers/ElementButtonProvider.d.ts +1 -1
  383. package/dist/field/providers/ElementButtonProvider.d.ts.map +1 -1
  384. package/dist/field/providers/ElementButtonProvider.js +7 -30
  385. package/dist/field/providers/ElementButtonProvider.js.map +1 -0
  386. package/dist/field/providers/ElementProvider.d.ts +1 -1
  387. package/dist/field/providers/ElementProvider.d.ts.map +1 -1
  388. package/dist/field/providers/ElementProvider.js +7 -30
  389. package/dist/field/providers/ElementProvider.js.map +1 -0
  390. package/dist/field/providers/LeafButtonProvider.d.ts +1 -1
  391. package/dist/field/providers/LeafButtonProvider.d.ts.map +1 -1
  392. package/dist/field/providers/LeafButtonProvider.js +7 -30
  393. package/dist/field/providers/LeafButtonProvider.js.map +1 -0
  394. package/dist/field/providers/LeafProvider.d.ts +1 -1
  395. package/dist/field/providers/LeafProvider.d.ts.map +1 -1
  396. package/dist/field/providers/LeafProvider.js +7 -30
  397. package/dist/field/providers/LeafProvider.js.map +1 -0
  398. package/dist/field/types.d.ts +1 -1
  399. package/dist/field/types.js +2 -5
  400. package/dist/field/types.js.map +1 -0
  401. package/dist/generateComponentMap.d.ts +1 -1
  402. package/dist/generateComponentMap.d.ts.map +1 -1
  403. package/dist/generateComponentMap.js +30 -65
  404. package/dist/generateComponentMap.js.map +1 -0
  405. package/dist/generateSchemaMap.d.ts +1 -1
  406. package/dist/generateSchemaMap.d.ts.map +1 -1
  407. package/dist/generateSchemaMap.js +10 -45
  408. package/dist/generateSchemaMap.js.map +1 -0
  409. package/dist/index.d.ts +8 -8
  410. package/dist/index.d.ts.map +1 -1
  411. package/dist/index.js +74 -75
  412. package/dist/index.js.map +1 -0
  413. package/dist/scss/app.scss +2 -3
  414. package/dist/scss/vars.scss +0 -7
  415. package/dist/types.d.ts +1 -3
  416. package/dist/types.d.ts.map +1 -1
  417. package/dist/types.js +2 -12
  418. package/dist/types.js.map +1 -0
  419. package/dist/utilities/useSlatePlugin.js +6 -16
  420. package/dist/utilities/useSlatePlugin.js.map +1 -0
  421. package/package.json +30 -25
  422. package/dist/field/enablePlugins.d.ts +0 -3
  423. package/dist/field/enablePlugins.d.ts.map +0 -1
  424. package/dist/field/enablePlugins.js +0 -38
  425. package/dist/field/icons/headings/index.d.ts +0 -11
  426. package/dist/field/icons/headings/index.d.ts.map +0 -1
  427. package/dist/field/icons/headings/index.js +0 -31
  428. package/dist/scss/fonts.scss +0 -75
@@ -1 +1 @@
1
- {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/data/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAIhD,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CACrC,OAAO,EAAE,EACT,OAAO,EACP,aAAa,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,EACtC,aAAa,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,CAUvC,CAAA"}
1
+ {"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../src/data/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AAE5D,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAA;AAInD,eAAO,MAAM,gBAAgB,EAAE,QAAQ,CACrC,OAAO,EAAE,EACT,OAAO,EACP,aAAa,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,EACtC,aAAa,CAAC,GAAG,EAAE,EAAE,gBAAgB,CAAC,CAUvC,CAAA"}
@@ -1,22 +1,12 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", {
3
- value: true
4
- });
5
- Object.defineProperty(exports, "richTextValidate", {
6
- enumerable: true,
7
- get: function() {
8
- return richTextValidate;
9
- }
10
- });
11
- const _defaultValue = require("./defaultValue");
12
- const richTextValidate = (value, { required })=>{
1
+ import { defaultRichTextValue } from './defaultValue.js';
2
+ export const richTextValidate = (value, { req, required })=>{
3
+ const { t } = req;
13
4
  if (required) {
14
- const stringifiedDefaultValue = JSON.stringify(_defaultValue.defaultRichTextValue);
5
+ const stringifiedDefaultValue = JSON.stringify(defaultRichTextValue);
15
6
  if (value && JSON.stringify(value) !== stringifiedDefaultValue) return true;
16
- // TODO: translate this string
17
- return 'This field is required.';
7
+ return t('validation:required');
18
8
  }
19
9
  return true;
20
10
  };
21
11
 
22
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9kYXRhL3ZhbGlkYXRpb24udHMiXSwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBSaWNoVGV4dEZpZWxkLCBWYWxpZGF0ZSB9IGZyb20gJ3BheWxvYWQvdHlwZXMnXG5cbmltcG9ydCB0eXBlIHsgQWRhcHRlckFyZ3VtZW50cyB9IGZyb20gJy4uL3R5cGVzJ1xuXG5pbXBvcnQgeyBkZWZhdWx0UmljaFRleHRWYWx1ZSB9IGZyb20gJy4vZGVmYXVsdFZhbHVlJ1xuXG5leHBvcnQgY29uc3QgcmljaFRleHRWYWxpZGF0ZTogVmFsaWRhdGU8XG4gIHVua25vd25bXSxcbiAgdW5rbm93bixcbiAgUmljaFRleHRGaWVsZDxhbnlbXSwgQWRhcHRlckFyZ3VtZW50cz4sXG4gIFJpY2hUZXh0RmllbGQ8YW55W10sIEFkYXB0ZXJBcmd1bWVudHM+XG4+ID0gKHZhbHVlLCB7IHJlcXVpcmVkIH0pID0+IHtcbiAgaWYgKHJlcXVpcmVkKSB7XG4gICAgY29uc3Qgc3RyaW5naWZpZWREZWZhdWx0VmFsdWUgPSBKU09OLnN0cmluZ2lmeShkZWZhdWx0UmljaFRleHRWYWx1ZSlcbiAgICBpZiAodmFsdWUgJiYgSlNPTi5zdHJpbmdpZnkodmFsdWUpICE9PSBzdHJpbmdpZmllZERlZmF1bHRWYWx1ZSkgcmV0dXJuIHRydWVcbiAgICAvLyBUT0RPOiB0cmFuc2xhdGUgdGhpcyBzdHJpbmdcbiAgICByZXR1cm4gJ1RoaXMgZmllbGQgaXMgcmVxdWlyZWQuJ1xuICB9XG5cbiAgcmV0dXJuIHRydWVcbn1cbiJdLCJuYW1lcyI6WyJyaWNoVGV4dFZhbGlkYXRlIiwidmFsdWUiLCJyZXF1aXJlZCIsInN0cmluZ2lmaWVkRGVmYXVsdFZhbHVlIiwiSlNPTiIsInN0cmluZ2lmeSIsImRlZmF1bHRSaWNoVGV4dFZhbHVlIl0sIm1hcHBpbmdzIjoiOzs7OytCQU1hQTs7O2VBQUFBOzs7OEJBRndCO0FBRTlCLE1BQU1BLG1CQUtULENBQUNDLE9BQU8sRUFBRUMsUUFBUSxFQUFFO0lBQ3RCLElBQUlBLFVBQVU7UUFDWixNQUFNQywwQkFBMEJDLEtBQUtDLFNBQVMsQ0FBQ0Msa0NBQW9CO1FBQ25FLElBQUlMLFNBQVNHLEtBQUtDLFNBQVMsQ0FBQ0osV0FBV0UseUJBQXlCLE9BQU87UUFDdkUsOEJBQThCO1FBQzlCLE9BQU87SUFDVDtJQUVBLE9BQU87QUFDVCJ9
12
+ //# sourceMappingURL=validation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/data/validation.ts"],"sourcesContent":["import type { RichTextField, Validate } from 'payload/types'\n\nimport type { AdapterArguments } from '../types.js'\n\nimport { defaultRichTextValue } from './defaultValue.js'\n\nexport const richTextValidate: Validate<\n unknown[],\n unknown,\n RichTextField<any[], AdapterArguments>,\n RichTextField<any[], AdapterArguments>\n> = (value, { req, required }) => {\n const { t } = req\n if (required) {\n const stringifiedDefaultValue = JSON.stringify(defaultRichTextValue)\n if (value && JSON.stringify(value) !== stringifiedDefaultValue) return true\n return t('validation:required')\n }\n\n return true\n}\n"],"names":["defaultRichTextValue","richTextValidate","value","req","required","t","stringifiedDefaultValue","JSON","stringify"],"rangeMappings":";;;;;;;;;","mappings":"AAIA,SAASA,oBAAoB,QAAQ,oBAAmB;AAExD,OAAO,MAAMC,mBAKT,CAACC,OAAO,EAAEC,GAAG,EAAEC,QAAQ,EAAE;IAC3B,MAAM,EAAEC,CAAC,EAAE,GAAGF;IACd,IAAIC,UAAU;QACZ,MAAME,0BAA0BC,KAAKC,SAAS,CAACR;QAC/C,IAAIE,SAASK,KAAKC,SAAS,CAACN,WAAWI,yBAAyB,OAAO;QACvE,OAAOD,EAAE;IACX;IAEA,OAAO;AACT,EAAC"}
@@ -1,9 +1,11 @@
1
- import type { FormFieldBase } from '@payloadcms/ui/types';
1
+ import type { FormFieldBase } from '@payloadcms/ui/fields/shared';
2
+ import type { FieldBase } from 'payload/types';
2
3
  import type { BaseEditor } from 'slate';
3
4
  import type { HistoryEditor } from 'slate-history';
4
5
  import type { ReactEditor } from 'slate-react';
5
6
  import React from 'react';
6
- import type { ElementNode, RichTextPlugin, TextNode } from '../types';
7
+ import type { ElementNode, RichTextPlugin, TextNode } from '../types.js';
8
+ import type { EnabledFeatures } from './types.js';
7
9
  import './index.scss';
8
10
  declare module 'slate' {
9
11
  interface CustomTypes {
@@ -12,24 +14,14 @@ declare module 'slate' {
12
14
  Text: TextNode;
13
15
  }
14
16
  }
15
- declare const _default: React.FC<FormFieldBase & {
16
- elements: {
17
- [name: string]: {
18
- Button: React.ReactNode;
19
- Element: React.ReactNode;
20
- name: string;
21
- };
22
- };
23
- leaves: {
24
- [name: string]: {
25
- Button: React.ReactNode;
26
- Leaf: React.ReactNode;
27
- name: string;
28
- };
29
- };
17
+ export declare const RichText: React.FC<FormFieldBase & {
18
+ elements: EnabledFeatures['elements'];
19
+ label?: FieldBase['label'];
20
+ leaves: EnabledFeatures['leaves'];
30
21
  name: string;
22
+ placeholder?: string;
31
23
  plugins: RichTextPlugin[];
32
24
  richTextComponentMap: Map<string, React.ReactNode>;
25
+ width?: string;
33
26
  }>;
34
- export default _default;
35
27
  //# sourceMappingURL=RichText.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"RichText.d.ts","sourceRoot":"","sources":["../../src/field/RichText.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AACzD,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,OAAO,CAAA;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAM9C,OAAO,KAAkD,MAAM,OAAO,CAAA;AAKtE,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAA;AAOrE,OAAO,cAAc,CAAA;AAWrB,OAAO,QAAQ,OAAO,CAAC;IACrB,UAAU,WAAW;QACnB,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,aAAa,CAAA;QAChD,OAAO,EAAE,WAAW,CAAA;QACpB,IAAI,EAAE,QAAQ,CAAA;KACf;CACF;;;;;;;;;;;;;;;;;;;;AA0YD,wBAAsC"}
1
+ {"version":3,"file":"RichText.d.ts","sourceRoot":"","sources":["../../src/field/RichText.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAA;AACjE,OAAO,KAAK,EAAkB,SAAS,EAAE,MAAM,eAAe,CAAA;AAC9D,OAAO,KAAK,EAAE,UAAU,EAAiB,MAAM,OAAO,CAAA;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,eAAe,CAAA;AAClD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAA;AAY9C,OAAO,KAAkD,MAAM,OAAO,CAAA;AAKtE,OAAO,KAAK,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAA;AACxE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,YAAY,CAAA;AAMjD,OAAO,cAAc,CAAA;AAWrB,OAAO,QAAQ,OAAO,CAAC;IACrB,UAAU,WAAW;QACnB,MAAM,EAAE,UAAU,GAAG,WAAW,GAAG,aAAa,CAAA;QAChD,OAAO,EAAE,WAAW,CAAA;QACpB,IAAI,EAAE,QAAQ,CAAA;KACf;CACF;AAkaD,eAAO,MAAM,QAAQ;cA9ZP,eAAe,CAAC,UAAU,CAAC;YAC7B,SAAS,CAAC,OAAO,CAAC;YAClB,eAAe,CAAC,QAAQ,CAAC;UAC3B,MAAM;kBACE,MAAM;aACX,cAAc,EAAE;0BACH,IAAI,MAAM,EAAE,MAAM,SAAS,CAAC;YAC1C,MAAM;EAuZkC,CAAA"}
@@ -1,106 +1,61 @@
1
1
  'use client';
2
- "use strict";
3
- Object.defineProperty(exports, "__esModule", {
4
- value: true
5
- });
6
- Object.defineProperty(exports, "default", {
7
- enumerable: true,
8
- get: function() {
9
- return _default;
10
- }
11
- });
12
- const _translations = require("@payloadcms/translations");
13
- const _ui = require("@payloadcms/ui");
14
- const _forms = require("@payloadcms/ui/forms");
15
- const _ishotkey = /*#__PURE__*/ _interop_require_default(require("is-hotkey"));
16
- const _react = /*#__PURE__*/ _interop_require_wildcard(require("react"));
17
- const _slate = require("slate");
18
- const _slatehistory = require("slate-history");
19
- const _slatereact = require("slate-react");
20
- const _defaultValue = require("../data/defaultValue");
21
- const _validation = require("../data/validation");
22
- const _listTypes = /*#__PURE__*/ _interop_require_default(require("./elements/listTypes"));
23
- const _hotkeys = /*#__PURE__*/ _interop_require_default(require("./hotkeys"));
24
- require("./index.scss");
25
- const _toggle = /*#__PURE__*/ _interop_require_default(require("./leaves/toggle"));
26
- const _withEnterBreakOut = /*#__PURE__*/ _interop_require_default(require("./plugins/withEnterBreakOut"));
27
- const _withHTML = /*#__PURE__*/ _interop_require_default(require("./plugins/withHTML"));
28
- const _ElementButtonProvider = require("./providers/ElementButtonProvider");
29
- const _ElementProvider = require("./providers/ElementProvider");
30
- const _LeafButtonProvider = require("./providers/LeafButtonProvider");
31
- const _LeafProvider = require("./providers/LeafProvider");
32
- function _interop_require_default(obj) {
33
- return obj && obj.__esModule ? obj : {
34
- default: obj
35
- };
36
- }
37
- function _getRequireWildcardCache(nodeInterop) {
38
- if (typeof WeakMap !== "function") return null;
39
- var cacheBabelInterop = new WeakMap();
40
- var cacheNodeInterop = new WeakMap();
41
- return (_getRequireWildcardCache = function(nodeInterop) {
42
- return nodeInterop ? cacheNodeInterop : cacheBabelInterop;
43
- })(nodeInterop);
44
- }
45
- function _interop_require_wildcard(obj, nodeInterop) {
46
- if (!nodeInterop && obj && obj.__esModule) {
47
- return obj;
48
- }
49
- if (obj === null || typeof obj !== "object" && typeof obj !== "function") {
50
- return {
51
- default: obj
52
- };
53
- }
54
- var cache = _getRequireWildcardCache(nodeInterop);
55
- if (cache && cache.has(obj)) {
56
- return cache.get(obj);
57
- }
58
- var newObj = {
59
- __proto__: null
60
- };
61
- var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor;
62
- for(var key in obj){
63
- if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) {
64
- var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null;
65
- if (desc && (desc.get || desc.set)) {
66
- Object.defineProperty(newObj, key, desc);
67
- } else {
68
- newObj[key] = obj[key];
69
- }
70
- }
71
- }
72
- newObj.default = obj;
73
- if (cache) {
74
- cache.set(obj, newObj);
75
- }
76
- return newObj;
77
- }
2
+ import { getTranslation } from '@payloadcms/translations';
3
+ import { FieldDescription } from '@payloadcms/ui/forms/FieldDescription';
4
+ import { FieldError } from '@payloadcms/ui/forms/FieldError';
5
+ import { FieldLabel } from '@payloadcms/ui/forms/FieldLabel';
6
+ import { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider';
7
+ import { useField } from '@payloadcms/ui/forms/useField';
8
+ import { withCondition } from '@payloadcms/ui/forms/withCondition';
9
+ import { useEditDepth } from '@payloadcms/ui/providers/EditDepth';
10
+ import { useTranslation } from '@payloadcms/ui/providers/Translation';
11
+ import isHotkey from 'is-hotkey';
12
+ import React, { useCallback, useEffect, useMemo, useRef } from 'react';
13
+ import { Node, Element as SlateElement, Text, Transforms, createEditor } from 'slate';
14
+ import { withHistory } from 'slate-history';
15
+ import { Editable, Slate, withReact } from 'slate-react';
16
+ import { defaultRichTextValue } from '../data/defaultValue.js';
17
+ import { richTextValidate } from '../data/validation.js';
18
+ import { listTypes } from './elements/listTypes.js';
19
+ import { hotkeys } from './hotkeys.js';
20
+ import './index.scss';
21
+ import { toggleLeaf } from './leaves/toggle.js';
22
+ import { withEnterBreakOut } from './plugins/withEnterBreakOut.js';
23
+ import { withHTML } from './plugins/withHTML.js';
24
+ import { ElementButtonProvider } from './providers/ElementButtonProvider.js';
25
+ import { ElementProvider } from './providers/ElementProvider.js';
26
+ import { LeafButtonProvider } from './providers/LeafButtonProvider.js';
27
+ import { LeafProvider } from './providers/LeafProvider.js';
78
28
  const baseClass = 'rich-text';
79
- const RichText = (props)=>{
80
- const { name, Description, Error, Label, className, elements, leaves, path: pathFromProps, placeholder, plugins, readOnly, required, style, validate = _validation.richTextValidate, width } = props;
81
- const { i18n } = (0, _ui.useTranslation)();
82
- const editorRef = (0, _react.useRef)(null);
83
- const toolbarRef = (0, _react.useRef)(null);
84
- const drawerDepth = (0, _ui.useEditDepth)();
29
+ const RichTextField = (props)=>{
30
+ const { name, CustomDescription, CustomError, CustomLabel, className, descriptionProps, elements, errorProps, label, labelProps, leaves, path: pathFromProps, placeholder, plugins, readOnly, required, style, validate = richTextValidate, width } = props;
31
+ const { i18n } = useTranslation();
32
+ const editorRef = useRef(null);
33
+ const toolbarRef = useRef(null);
34
+ const drawerDepth = useEditDepth();
85
35
  const drawerIsOpen = drawerDepth > 1;
86
- const memoizedValidate = (0, _react.useCallback)((value, validationOptions)=>{
36
+ const memoizedValidate = useCallback((value, validationOptions)=>{
87
37
  if (typeof validate === 'function') {
88
38
  return validate(value, {
89
39
  ...validationOptions,
40
+ req: {
41
+ t: i18n.t
42
+ },
90
43
  required
91
44
  });
92
45
  }
93
46
  }, [
94
47
  validate,
95
- required
48
+ required,
49
+ i18n
96
50
  ]);
97
- const { initialValue, path, schemaPath, setValue, showError, value } = (0, _ui.useField)({
98
- path: pathFromProps || name,
51
+ const { path: pathFromContext } = useFieldProps();
52
+ const { initialValue, path, schemaPath, setValue, showError, value } = useField({
53
+ path: pathFromContext || pathFromProps || name,
99
54
  validate: memoizedValidate
100
55
  });
101
- const editor = (0, _react.useMemo)(()=>{
102
- let CreatedEditor = (0, _withEnterBreakOut.default)((0, _slatehistory.withHistory)((0, _slatereact.withReact)((0, _slate.createEditor)())));
103
- CreatedEditor = (0, _withHTML.default)(CreatedEditor);
56
+ const editor = useMemo(()=>{
57
+ let CreatedEditor = withEnterBreakOut(withHistory(withReact(createEditor())));
58
+ CreatedEditor = withHTML(CreatedEditor);
104
59
  if (plugins.length) {
105
60
  CreatedEditor = plugins.reduce((editorWithPlugins, plugin)=>{
106
61
  return plugin(editorWithPlugins);
@@ -110,7 +65,7 @@ const RichText = (props)=>{
110
65
  }, [
111
66
  plugins
112
67
  ]);
113
- const renderElement = (0, _react.useCallback)(({ attributes, children, element })=>{
68
+ const renderElement = useCallback(({ attributes, children, element })=>{
114
69
  // return <div {...attributes}>{children}</div>
115
70
  const matchedElement = elements[element.type];
116
71
  const Element = matchedElement?.Element;
@@ -196,7 +151,7 @@ const RichText = (props)=>{
196
151
  }
197
152
  }
198
153
  if (Element) {
199
- const el = /*#__PURE__*/ _react.default.createElement(_ElementProvider.ElementProvider, {
154
+ const el = /*#__PURE__*/ React.createElement(ElementProvider, {
200
155
  attributes: attr,
201
156
  childNodes: children,
202
157
  editorRef: editorRef,
@@ -207,20 +162,20 @@ const RichText = (props)=>{
207
162
  }, Element);
208
163
  return el;
209
164
  }
210
- return /*#__PURE__*/ _react.default.createElement("div", attr, children);
165
+ return /*#__PURE__*/ React.createElement("div", attr, children);
211
166
  }, [
212
167
  elements,
213
168
  path,
214
169
  props,
215
170
  schemaPath
216
171
  ]);
217
- const renderLeaf = (0, _react.useCallback)(({ attributes, children, leaf })=>{
172
+ const renderLeaf = useCallback(({ attributes, children, leaf })=>{
218
173
  const matchedLeaves = Object.entries(leaves).filter(([leafName])=>leaf[leafName]);
219
174
  if (matchedLeaves.length > 0) {
220
175
  return matchedLeaves.reduce((result, [, leafConfig], i)=>{
221
176
  if (leafConfig?.Leaf) {
222
177
  const Leaf = leafConfig.Leaf;
223
- return /*#__PURE__*/ _react.default.createElement(_LeafProvider.LeafProvider, {
178
+ return /*#__PURE__*/ React.createElement(LeafProvider, {
224
179
  attributes: attributes,
225
180
  editorRef: editorRef,
226
181
  fieldProps: props,
@@ -232,9 +187,9 @@ const RichText = (props)=>{
232
187
  }, Leaf);
233
188
  }
234
189
  return result;
235
- }, /*#__PURE__*/ _react.default.createElement("span", attributes, children));
190
+ }, /*#__PURE__*/ React.createElement("span", attributes, children));
236
191
  }
237
- return /*#__PURE__*/ _react.default.createElement("span", attributes, children);
192
+ return /*#__PURE__*/ React.createElement("span", attributes, children);
238
193
  }, [
239
194
  path,
240
195
  props,
@@ -245,7 +200,7 @@ const RichText = (props)=>{
245
200
  // including selection changes
246
201
  // so we will filter the set_selection operations out
247
202
  // and only fire setValue when onChange is because of value
248
- const handleChange = (0, _react.useCallback)((val)=>{
203
+ const handleChange = useCallback((val)=>{
249
204
  const ops = editor?.operations.filter((o)=>{
250
205
  if (o) {
251
206
  return o.type !== 'set_selection';
@@ -253,7 +208,7 @@ const RichText = (props)=>{
253
208
  return false;
254
209
  });
255
210
  if (ops && Array.isArray(ops) && ops.length > 0) {
256
- if (!readOnly && val !== _defaultValue.defaultRichTextValue && val !== value) {
211
+ if (!readOnly && val !== defaultRichTextValue && val !== value) {
257
212
  setValue(val);
258
213
  }
259
214
  }
@@ -263,7 +218,7 @@ const RichText = (props)=>{
263
218
  setValue,
264
219
  value
265
220
  ]);
266
- (0, _react.useEffect)(()=>{
221
+ useEffect(()=>{
267
222
  function setClickableState(clickState) {
268
223
  const selectors = 'button, a, [role="button"]';
269
224
  const toolbarButtons = toolbarRef.current?.querySelectorAll(selectors);
@@ -310,16 +265,25 @@ const RichText = (props)=>{
310
265
  valueToRender = null;
311
266
  }
312
267
  }
313
- if (!valueToRender) valueToRender = _defaultValue.defaultRichTextValue;
314
- return /*#__PURE__*/ _react.default.createElement("div", {
268
+ if (!valueToRender) valueToRender = defaultRichTextValue;
269
+ return /*#__PURE__*/ React.createElement("div", {
315
270
  className: classes,
316
271
  style: {
317
272
  ...style,
318
273
  width
319
274
  }
320
- }, /*#__PURE__*/ _react.default.createElement("div", {
275
+ }, /*#__PURE__*/ React.createElement("div", {
321
276
  className: `${baseClass}__wrap`
322
- }, Error, Label, /*#__PURE__*/ _react.default.createElement(_slatereact.Slate, {
277
+ }, /*#__PURE__*/ React.createElement(FieldError, {
278
+ CustomError: CustomError,
279
+ path: path,
280
+ ...errorProps || {}
281
+ }), /*#__PURE__*/ React.createElement(FieldLabel, {
282
+ CustomLabel: CustomLabel,
283
+ label: label,
284
+ required: required,
285
+ ...labelProps || {}
286
+ }), /*#__PURE__*/ React.createElement(Slate, {
323
287
  editor: editor,
324
288
  key: JSON.stringify({
325
289
  initialValue,
@@ -327,20 +291,20 @@ const RichText = (props)=>{
327
291
  }),
328
292
  onChange: handleChange,
329
293
  value: valueToRender
330
- }, /*#__PURE__*/ _react.default.createElement("div", {
294
+ }, /*#__PURE__*/ React.createElement("div", {
331
295
  className: `${baseClass}__wrapper`
332
- }, Object.keys(elements)?.length + Object.keys(leaves)?.length > 0 && /*#__PURE__*/ _react.default.createElement("div", {
296
+ }, Object.keys(elements)?.length + Object.keys(leaves)?.length > 0 && /*#__PURE__*/ React.createElement("div", {
333
297
  className: [
334
298
  `${baseClass}__toolbar`,
335
299
  drawerIsOpen && `${baseClass}__drawerIsOpen`
336
300
  ].filter(Boolean).join(' '),
337
301
  ref: toolbarRef
338
- }, /*#__PURE__*/ _react.default.createElement("div", {
302
+ }, /*#__PURE__*/ React.createElement("div", {
339
303
  className: `${baseClass}__toolbar-wrap`
340
304
  }, Object.values(elements).map((element)=>{
341
305
  const Button = element?.Button;
342
306
  if (Button) {
343
- return /*#__PURE__*/ _react.default.createElement(_ElementButtonProvider.ElementButtonProvider, {
307
+ return /*#__PURE__*/ React.createElement(ElementButtonProvider, {
344
308
  fieldProps: props,
345
309
  key: element.name,
346
310
  path: path,
@@ -351,7 +315,7 @@ const RichText = (props)=>{
351
315
  }), Object.values(leaves).map((leaf)=>{
352
316
  const Button = leaf?.Button;
353
317
  if (Button) {
354
- return /*#__PURE__*/ _react.default.createElement(_LeafButtonProvider.LeafButtonProvider, {
318
+ return /*#__PURE__*/ React.createElement(LeafButtonProvider, {
355
319
  fieldProps: props,
356
320
  key: leaf.name,
357
321
  path: path,
@@ -359,10 +323,10 @@ const RichText = (props)=>{
359
323
  }, Button);
360
324
  }
361
325
  return null;
362
- }))), /*#__PURE__*/ _react.default.createElement("div", {
326
+ }))), /*#__PURE__*/ React.createElement("div", {
363
327
  className: `${baseClass}__editor`,
364
328
  ref: editorRef
365
- }, /*#__PURE__*/ _react.default.createElement(_slatereact.Editable, {
329
+ }, /*#__PURE__*/ React.createElement(Editable, {
366
330
  className: `${baseClass}__input`,
367
331
  id: `field-${path.replace(/\./g, '__')}`,
368
332
  onKeyDown: (event)=>{
@@ -371,14 +335,14 @@ const RichText = (props)=>{
371
335
  event.preventDefault();
372
336
  editor.insertText('\n');
373
337
  } else {
374
- const selectedElement = _slate.Node.descendant(editor, editor.selection.anchor.path.slice(0, -1));
375
- if (_slate.Element.isElement(selectedElement)) {
338
+ const selectedElement = Node.descendant(editor, editor.selection.anchor.path.slice(0, -1));
339
+ if (SlateElement.isElement(selectedElement)) {
376
340
  // Allow hard enter to "break out" of certain elements
377
341
  if (editor.shouldBreakOutOnEnter(selectedElement)) {
378
342
  event.preventDefault();
379
- const selectedLeaf = _slate.Node.descendant(editor, editor.selection.anchor.path);
380
- if (_slate.Text.isText(selectedLeaf) && String(selectedLeaf.text).length === editor.selection.anchor.offset) {
381
- _slate.Transforms.insertNodes(editor, {
343
+ const selectedLeaf = Node.descendant(editor, editor.selection.anchor.path);
344
+ if (Text.isText(selectedLeaf) && String(selectedLeaf.text).length === editor.selection.anchor.offset) {
345
+ Transforms.insertNodes(editor, {
382
346
  children: [
383
347
  {
384
348
  text: ''
@@ -386,47 +350,47 @@ const RichText = (props)=>{
386
350
  ]
387
351
  });
388
352
  } else {
389
- _slate.Transforms.splitNodes(editor);
390
- _slate.Transforms.setNodes(editor, {});
353
+ Transforms.splitNodes(editor);
354
+ Transforms.setNodes(editor, {});
391
355
  }
392
356
  }
393
357
  }
394
358
  }
395
359
  }
396
360
  if (event.key === 'Backspace') {
397
- const selectedElement = _slate.Node.descendant(editor, editor.selection.anchor.path.slice(0, -1));
398
- if (_slate.Element.isElement(selectedElement) && selectedElement.type === 'li') {
399
- const selectedLeaf = _slate.Node.descendant(editor, editor.selection.anchor.path);
400
- if (_slate.Text.isText(selectedLeaf) && String(selectedLeaf.text).length === 0) {
361
+ const selectedElement = Node.descendant(editor, editor.selection.anchor.path.slice(0, -1));
362
+ if (SlateElement.isElement(selectedElement) && selectedElement.type === 'li') {
363
+ const selectedLeaf = Node.descendant(editor, editor.selection.anchor.path);
364
+ if (Text.isText(selectedLeaf) && String(selectedLeaf.text).length === 0) {
401
365
  event.preventDefault();
402
- _slate.Transforms.unwrapNodes(editor, {
403
- match: (n)=>_slate.Element.isElement(n) && _listTypes.default.includes(n.type),
366
+ Transforms.unwrapNodes(editor, {
367
+ match: (n)=>SlateElement.isElement(n) && listTypes.includes(n.type),
404
368
  mode: 'lowest',
405
369
  split: true
406
370
  });
407
- _slate.Transforms.setNodes(editor, {
371
+ Transforms.setNodes(editor, {
408
372
  type: undefined
409
373
  });
410
374
  }
411
375
  } else if (editor.isVoid(selectedElement)) {
412
- _slate.Transforms.removeNodes(editor);
376
+ Transforms.removeNodes(editor);
413
377
  }
414
378
  }
415
- Object.keys(_hotkeys.default).forEach((hotkey)=>{
416
- if ((0, _ishotkey.default)(hotkey, event)) {
379
+ Object.keys(hotkeys).forEach((hotkey)=>{
380
+ if (isHotkey(hotkey, event)) {
417
381
  event.preventDefault();
418
- const mark = _hotkeys.default[hotkey];
419
- (0, _toggle.default)(editor, mark);
382
+ const mark = hotkeys[hotkey];
383
+ toggleLeaf(editor, mark);
420
384
  }
421
385
  });
422
386
  },
423
- placeholder: (0, _translations.getTranslation)(placeholder, i18n),
387
+ placeholder: getTranslation(placeholder, i18n),
424
388
  readOnly: readOnly,
425
389
  renderElement: renderElement,
426
390
  renderLeaf: renderLeaf,
427
391
  spellCheck: true
428
- })))), Description));
392
+ })))), CustomDescription !== undefined ? CustomDescription : /*#__PURE__*/ React.createElement(FieldDescription, descriptionProps || {})));
429
393
  };
430
- const _default = (0, _forms.withCondition)(RichText);
394
+ export const RichText = withCondition(RichTextField);
431
395
 
432
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9maWVsZC9SaWNoVGV4dC50c3giXSwic291cmNlc0NvbnRlbnQiOlsiJ3VzZSBjbGllbnQnXG5cbmltcG9ydCB0eXBlIHsgRm9ybUZpZWxkQmFzZSB9IGZyb20gJ0BwYXlsb2FkY21zL3VpL3R5cGVzJ1xuaW1wb3J0IHR5cGUgeyBCYXNlRWRpdG9yLCBCYXNlT3BlcmF0aW9uIH0gZnJvbSAnc2xhdGUnXG5pbXBvcnQgdHlwZSB7IEhpc3RvcnlFZGl0b3IgfSBmcm9tICdzbGF0ZS1oaXN0b3J5J1xuaW1wb3J0IHR5cGUgeyBSZWFjdEVkaXRvciB9IGZyb20gJ3NsYXRlLXJlYWN0J1xuXG5pbXBvcnQgeyBnZXRUcmFuc2xhdGlvbiB9IGZyb20gJ0BwYXlsb2FkY21zL3RyYW5zbGF0aW9ucydcbmltcG9ydCB7IHVzZUVkaXREZXB0aCwgdXNlRmllbGQsIHVzZVRyYW5zbGF0aW9uIH0gZnJvbSAnQHBheWxvYWRjbXMvdWknXG5pbXBvcnQgeyB3aXRoQ29uZGl0aW9uIH0gZnJvbSAnQHBheWxvYWRjbXMvdWkvZm9ybXMnXG5pbXBvcnQgaXNIb3RrZXkgZnJvbSAnaXMtaG90a2V5J1xuaW1wb3J0IFJlYWN0LCB7IHVzZUNhbGxiYWNrLCB1c2VFZmZlY3QsIHVzZU1lbW8sIHVzZVJlZiB9IGZyb20gJ3JlYWN0J1xuaW1wb3J0IHsgTm9kZSwgRWxlbWVudCBhcyBTbGF0ZUVsZW1lbnQsIFRleHQsIFRyYW5zZm9ybXMsIGNyZWF0ZUVkaXRvciB9IGZyb20gJ3NsYXRlJ1xuaW1wb3J0IHsgd2l0aEhpc3RvcnkgfSBmcm9tICdzbGF0ZS1oaXN0b3J5J1xuaW1wb3J0IHsgRWRpdGFibGUsIFNsYXRlLCB3aXRoUmVhY3QgfSBmcm9tICdzbGF0ZS1yZWFjdCdcblxuaW1wb3J0IHR5cGUgeyBFbGVtZW50Tm9kZSwgUmljaFRleHRQbHVnaW4sIFRleHROb2RlIH0gZnJvbSAnLi4vdHlwZXMnXG5pbXBvcnQgdHlwZSB7IEVuYWJsZWRGZWF0dXJlcyB9IGZyb20gJy4vdHlwZXMnXG5cbmltcG9ydCB7IGRlZmF1bHRSaWNoVGV4dFZhbHVlIH0gZnJvbSAnLi4vZGF0YS9kZWZhdWx0VmFsdWUnXG5pbXBvcnQgeyByaWNoVGV4dFZhbGlkYXRlIH0gZnJvbSAnLi4vZGF0YS92YWxpZGF0aW9uJ1xuaW1wb3J0IGxpc3RUeXBlcyBmcm9tICcuL2VsZW1lbnRzL2xpc3RUeXBlcydcbmltcG9ydCBob3RrZXlzIGZyb20gJy4vaG90a2V5cydcbmltcG9ydCAnLi9pbmRleC5zY3NzJ1xuaW1wb3J0IHRvZ2dsZUxlYWYgZnJvbSAnLi9sZWF2ZXMvdG9nZ2xlJ1xuaW1wb3J0IHdpdGhFbnRlckJyZWFrT3V0IGZyb20gJy4vcGx1Z2lucy93aXRoRW50ZXJCcmVha091dCdcbmltcG9ydCB3aXRoSFRNTCBmcm9tICcuL3BsdWdpbnMvd2l0aEhUTUwnXG5pbXBvcnQgeyBFbGVtZW50QnV0dG9uUHJvdmlkZXIgfSBmcm9tICcuL3Byb3ZpZGVycy9FbGVtZW50QnV0dG9uUHJvdmlkZXInXG5pbXBvcnQgeyBFbGVtZW50UHJvdmlkZXIgfSBmcm9tICcuL3Byb3ZpZGVycy9FbGVtZW50UHJvdmlkZXInXG5pbXBvcnQgeyBMZWFmQnV0dG9uUHJvdmlkZXIgfSBmcm9tICcuL3Byb3ZpZGVycy9MZWFmQnV0dG9uUHJvdmlkZXInXG5pbXBvcnQgeyBMZWFmUHJvdmlkZXIgfSBmcm9tICcuL3Byb3ZpZGVycy9MZWFmUHJvdmlkZXInXG5cbmNvbnN0IGJhc2VDbGFzcyA9ICdyaWNoLXRleHQnXG5cbmRlY2xhcmUgbW9kdWxlICdzbGF0ZScge1xuICBpbnRlcmZhY2UgQ3VzdG9tVHlwZXMge1xuICAgIEVkaXRvcjogQmFzZUVkaXRvciAmIFJlYWN0RWRpdG9yICYgSGlzdG9yeUVkaXRvclxuICAgIEVsZW1lbnQ6IEVsZW1lbnROb2RlXG4gICAgVGV4dDogVGV4dE5vZGVcbiAgfVxufVxuXG5jb25zdCBSaWNoVGV4dDogUmVhY3QuRkM8XG4gIEZvcm1GaWVsZEJhc2UgJiB7XG4gICAgZWxlbWVudHM6IEVuYWJsZWRGZWF0dXJlc1snZWxlbWVudHMnXVxuICAgIGxlYXZlczogRW5hYmxlZEZlYXR1cmVzWydsZWF2ZXMnXVxuICAgIG5hbWU6IHN0cmluZ1xuICAgIHBsdWdpbnM6IFJpY2hUZXh0UGx1Z2luW11cbiAgICByaWNoVGV4dENvbXBvbmVudE1hcDogTWFwPHN0cmluZywgUmVhY3QuUmVhY3ROb2RlPlxuICB9XG4+ID0gKHByb3BzKSA9PiB7XG4gIGNvbnN0IHtcbiAgICBuYW1lLFxuICAgIERlc2NyaXB0aW9uLFxuICAgIEVycm9yLFxuICAgIExhYmVsLFxuICAgIGNsYXNzTmFtZSxcbiAgICBlbGVtZW50cyxcbiAgICBsZWF2ZXMsXG4gICAgcGF0aDogcGF0aEZyb21Qcm9wcyxcbiAgICBwbGFjZWhvbGRlcixcbiAgICBwbHVnaW5zLFxuICAgIHJlYWRPbmx5LFxuICAgIHJlcXVpcmVkLFxuICAgIHN0eWxlLFxuICAgIHZhbGlkYXRlID0gcmljaFRleHRWYWxpZGF0ZSxcbiAgICB3aWR0aCxcbiAgfSA9IHByb3BzXG5cbiAgY29uc3QgeyBpMThuIH0gPSB1c2VUcmFuc2xhdGlvbigpXG4gIGNvbnN0IGVkaXRvclJlZiA9IHVzZVJlZihudWxsKVxuICBjb25zdCB0b29sYmFyUmVmID0gdXNlUmVmKG51bGwpXG5cbiAgY29uc3QgZHJhd2VyRGVwdGggPSB1c2VFZGl0RGVwdGgoKVxuICBjb25zdCBkcmF3ZXJJc09wZW4gPSBkcmF3ZXJEZXB0aCA+IDFcblxuICBjb25zdCBtZW1vaXplZFZhbGlkYXRlID0gdXNlQ2FsbGJhY2soXG4gICAgKHZhbHVlLCB2YWxpZGF0aW9uT3B0aW9ucykgPT4ge1xuICAgICAgaWYgKHR5cGVvZiB2YWxpZGF0ZSA9PT0gJ2Z1bmN0aW9uJykge1xuICAgICAgICByZXR1cm4gdmFsaWRhdGUodmFsdWUsIHsgLi4udmFsaWRhdGlvbk9wdGlvbnMsIHJlcXVpcmVkIH0pXG4gICAgICB9XG4gICAgfSxcbiAgICBbdmFsaWRhdGUsIHJlcXVpcmVkXSxcbiAgKVxuXG4gIGNvbnN0IHsgaW5pdGlhbFZhbHVlLCBwYXRoLCBzY2hlbWFQYXRoLCBzZXRWYWx1ZSwgc2hvd0Vycm9yLCB2YWx1ZSB9ID0gdXNlRmllbGQoe1xuICAgIHBhdGg6IHBhdGhGcm9tUHJvcHMgfHwgbmFtZSxcbiAgICB2YWxpZGF0ZTogbWVtb2l6ZWRWYWxpZGF0ZSxcbiAgfSlcblxuICBjb25zdCBlZGl0b3IgPSB1c2VNZW1vKCgpID0+IHtcbiAgICBsZXQgQ3JlYXRlZEVkaXRvciA9IHdpdGhFbnRlckJyZWFrT3V0KHdpdGhIaXN0b3J5KHdpdGhSZWFjdChjcmVhdGVFZGl0b3IoKSkpKVxuXG4gICAgQ3JlYXRlZEVkaXRvciA9IHdpdGhIVE1MKENyZWF0ZWRFZGl0b3IpXG5cbiAgICBpZiAocGx1Z2lucy5sZW5ndGgpIHtcbiAgICAgIENyZWF0ZWRFZGl0b3IgPSBwbHVnaW5zLnJlZHVjZSgoZWRpdG9yV2l0aFBsdWdpbnMsIHBsdWdpbikgPT4ge1xuICAgICAgICByZXR1cm4gcGx1Z2luKGVkaXRvcldpdGhQbHVnaW5zKVxuICAgICAgfSwgQ3JlYXRlZEVkaXRvcilcbiAgICB9XG5cbiAgICByZXR1cm4gQ3JlYXRlZEVkaXRvclxuICB9LCBbcGx1Z2luc10pXG5cbiAgY29uc3QgcmVuZGVyRWxlbWVudCA9IHVzZUNhbGxiYWNrKFxuICAgICh7IGF0dHJpYnV0ZXMsIGNoaWxkcmVuLCBlbGVtZW50IH0pID0+IHtcbiAgICAgIC8vIHJldHVybiA8ZGl2IHsuLi5hdHRyaWJ1dGVzfT57Y2hpbGRyZW59PC9kaXY+XG5cbiAgICAgIGNvbnN0IG1hdGNoZWRFbGVtZW50ID0gZWxlbWVudHNbZWxlbWVudC50eXBlXVxuICAgICAgY29uc3QgRWxlbWVudCA9IG1hdGNoZWRFbGVtZW50Py5FbGVtZW50XG5cbiAgICAgIGxldCBhdHRyID0geyAuLi5hdHRyaWJ1dGVzIH1cblxuICAgICAgLy8gdGhpcyBjb252ZXJ0cyB0ZXh0IGFsaWdubWVudCB0byBtYXJnaW4gd2hlbiBkZWFsaW5nIHdpdGggdm9pZCBlbGVtZW50c1xuICAgICAgaWYgKGVsZW1lbnQudGV4dEFsaWduKSB7XG4gICAgICAgIGlmIChlbGVtZW50LnR5cGUgPT09ICdyZWxhdGlvbnNoaXAnIHx8IGVsZW1lbnQudHlwZSA9PT0gJ3VwbG9hZCcpIHtcbiAgICAgICAgICBzd2l0Y2ggKGVsZW1lbnQudGV4dEFsaWduKSB7XG4gICAgICAgICAgICBjYXNlICdsZWZ0JzpcbiAgICAgICAgICAgICAgYXR0ciA9IHsgLi4uYXR0ciwgc3R5bGU6IHsgbWFyZ2luUmlnaHQ6ICdhdXRvJyB9IH1cbiAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgIGNhc2UgJ3JpZ2h0JzpcbiAgICAgICAgICAgICAgYXR0ciA9IHsgLi4uYXR0ciwgc3R5bGU6IHsgbWFyZ2luTGVmdDogJ2F1dG8nIH0gfVxuICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgY2FzZSAnY2VudGVyJzpcbiAgICAgICAgICAgICAgYXR0ciA9IHsgLi4uYXR0ciwgc3R5bGU6IHsgbWFyZ2luTGVmdDogJ2F1dG8nLCBtYXJnaW5SaWdodDogJ2F1dG8nIH0gfVxuICAgICAgICAgICAgICBicmVha1xuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgYXR0ciA9IHsgLi4uYXR0ciwgc3R5bGU6IHsgdGV4dEFsaWduOiBlbGVtZW50LnRleHRBbGlnbiB9IH1cbiAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICB9XG4gICAgICAgIH0gZWxzZSBpZiAoZWxlbWVudC50eXBlID09PSAnbGknKSB7XG4gICAgICAgICAgc3dpdGNoIChlbGVtZW50LnRleHRBbGlnbikge1xuICAgICAgICAgICAgY2FzZSAncmlnaHQnOlxuICAgICAgICAgICAgICBhdHRyID0geyAuLi5hdHRyLCBzdHlsZTogeyBsaXN0U3R5bGVQb3NpdGlvbjogJ2luc2lkZScsIHRleHRBbGlnbjogJ3JpZ2h0JyB9IH1cbiAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgIGNhc2UgJ2NlbnRlcic6XG4gICAgICAgICAgICAgIGF0dHIgPSB7IC4uLmF0dHIsIHN0eWxlOiB7IGxpc3RTdHlsZVBvc2l0aW9uOiAnaW5zaWRlJywgdGV4dEFsaWduOiAnY2VudGVyJyB9IH1cbiAgICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICAgIGNhc2UgJ2xlZnQnOlxuICAgICAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgICAgYXR0ciA9IHsgLi4uYXR0ciwgc3R5bGU6IHsgbGlzdFN0eWxlUG9zaXRpb246ICdvdXRzaWRlJywgdGV4dEFsaWduOiAnbGVmdCcgfSB9XG4gICAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgfVxuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGF0dHIgPSB7IC4uLmF0dHIsIHN0eWxlOiB7IHRleHRBbGlnbjogZWxlbWVudC50ZXh0QWxpZ24gfSB9XG4gICAgICAgIH1cbiAgICAgIH1cblxuICAgICAgaWYgKEVsZW1lbnQpIHtcbiAgICAgICAgY29uc3QgZWwgPSAoXG4gICAgICAgICAgPEVsZW1lbnRQcm92aWRlclxuICAgICAgICAgICAgYXR0cmlidXRlcz17YXR0cn1cbiAgICAgICAgICAgIGNoaWxkTm9kZXM9e2NoaWxkcmVufVxuICAgICAgICAgICAgZWRpdG9yUmVmPXtlZGl0b3JSZWZ9XG4gICAgICAgICAgICBlbGVtZW50PXtlbGVtZW50fVxuICAgICAgICAgICAgZmllbGRQcm9wcz17cHJvcHN9XG4gICAgICAgICAgICBwYXRoPXtwYXRofVxuICAgICAgICAgICAgc2NoZW1hUGF0aD17c2NoZW1hUGF0aH1cbiAgICAgICAgICA+XG4gICAgICAgICAgICB7RWxlbWVudH1cbiAgICAgICAgICA8L0VsZW1lbnRQcm92aWRlcj5cbiAgICAgICAgKVxuXG4gICAgICAgIHJldHVybiBlbFxuICAgICAgfVxuXG4gICAgICByZXR1cm4gPGRpdiB7Li4uYXR0cn0+e2NoaWxkcmVufTwvZGl2PlxuICAgIH0sXG4gICAgW2VsZW1lbnRzLCBwYXRoLCBwcm9wcywgc2NoZW1hUGF0aF0sXG4gIClcblxuICBjb25zdCByZW5kZXJMZWFmID0gdXNlQ2FsbGJhY2soXG4gICAgKHsgYXR0cmlidXRlcywgY2hpbGRyZW4sIGxlYWYgfSkgPT4ge1xuICAgICAgY29uc3QgbWF0Y2hlZExlYXZlcyA9IE9iamVjdC5lbnRyaWVzKGxlYXZlcykuZmlsdGVyKChbbGVhZk5hbWVdKSA9PiBsZWFmW2xlYWZOYW1lXSlcblxuICAgICAgaWYgKG1hdGNoZWRMZWF2ZXMubGVuZ3RoID4gMCkge1xuICAgICAgICByZXR1cm4gbWF0Y2hlZExlYXZlcy5yZWR1Y2UoXG4gICAgICAgICAgKHJlc3VsdCwgWywgbGVhZkNvbmZpZ10sIGkpID0+IHtcbiAgICAgICAgICAgIGlmIChsZWFmQ29uZmlnPy5MZWFmKSB7XG4gICAgICAgICAgICAgIGNvbnN0IExlYWYgPSBsZWFmQ29uZmlnLkxlYWZcblxuICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgIDxMZWFmUHJvdmlkZXJcbiAgICAgICAgICAgICAgICAgIGF0dHJpYnV0ZXM9e2F0dHJpYnV0ZXN9XG4gICAgICAgICAgICAgICAgICBlZGl0b3JSZWY9e2VkaXRvclJlZn1cbiAgICAgICAgICAgICAgICAgIGZpZWxkUHJvcHM9e3Byb3BzfVxuICAgICAgICAgICAgICAgICAga2V5PXtpfVxuICAgICAgICAgICAgICAgICAgbGVhZj17bGVhZn1cbiAgICAgICAgICAgICAgICAgIHBhdGg9e3BhdGh9XG4gICAgICAgICAgICAgICAgICByZXN1bHQ9e3Jlc3VsdH1cbiAgICAgICAgICAgICAgICAgIHNjaGVtYVBhdGg9e3NjaGVtYVBhdGh9XG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAge0xlYWZ9XG4gICAgICAgICAgICAgICAgPC9MZWFmUHJvdmlkZXI+XG4gICAgICAgICAgICAgIClcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHJlc3VsdFxuICAgICAgICAgIH0sXG4gICAgICAgICAgPHNwYW4gey4uLmF0dHJpYnV0ZXN9PntjaGlsZHJlbn08L3NwYW4+LFxuICAgICAgICApXG4gICAgICB9XG5cbiAgICAgIHJldHVybiA8c3BhbiB7Li4uYXR0cmlidXRlc30+e2NoaWxkcmVufTwvc3Bhbj5cbiAgICB9LFxuICAgIFtwYXRoLCBwcm9wcywgc2NoZW1hUGF0aCwgbGVhdmVzXSxcbiAgKVxuXG4gIC8vIEFsbCBzbGF0ZSBjaGFuZ2VzIGZpcmUgdGhlIG9uQ2hhbmdlIGV2ZW50XG4gIC8vIGluY2x1ZGluZyBzZWxlY3Rpb24gY2hhbmdlc1xuICAvLyBzbyB3ZSB3aWxsIGZpbHRlciB0aGUgc2V0X3NlbGVjdGlvbiBvcGVyYXRpb25zIG91dFxuICAvLyBhbmQgb25seSBmaXJlIHNldFZhbHVlIHdoZW4gb25DaGFuZ2UgaXMgYmVjYXVzZSBvZiB2YWx1ZVxuICBjb25zdCBoYW5kbGVDaGFuZ2UgPSB1c2VDYWxsYmFjayhcbiAgICAodmFsOiB1bmtub3duKSA9PiB7XG4gICAgICBjb25zdCBvcHMgPSBlZGl0b3I/Lm9wZXJhdGlvbnMuZmlsdGVyKChvOiBCYXNlT3BlcmF0aW9uKSA9PiB7XG4gICAgICAgIGlmIChvKSB7XG4gICAgICAgICAgcmV0dXJuIG8udHlwZSAhPT0gJ3NldF9zZWxlY3Rpb24nXG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGZhbHNlXG4gICAgICB9KVxuXG4gICAgICBpZiAob3BzICYmIEFycmF5LmlzQXJyYXkob3BzKSAmJiBvcHMubGVuZ3RoID4gMCkge1xuICAgICAgICBpZiAoIXJlYWRPbmx5ICYmIHZhbCAhPT0gZGVmYXVsdFJpY2hUZXh0VmFsdWUgJiYgdmFsICE9PSB2YWx1ZSkge1xuICAgICAgICAgIHNldFZhbHVlKHZhbClcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gICAgW2VkaXRvcj8ub3BlcmF0aW9ucywgcmVhZE9ubHksIHNldFZhbHVlLCB2YWx1ZV0sXG4gIClcblxuICB1c2VFZmZlY3QoKCkgPT4ge1xuICAgIGZ1bmN0aW9uIHNldENsaWNrYWJsZVN0YXRlKGNsaWNrU3RhdGU6ICdkaXNhYmxlZCcgfCAnZW5hYmxlZCcpIHtcbiAgICAgIGNvbnN0IHNlbGVjdG9ycyA9ICdidXR0b24sIGEsIFtyb2xlPVwiYnV0dG9uXCJdJ1xuICAgICAgY29uc3QgdG9vbGJhckJ1dHRvbnM6IChIVE1MQW5jaG9yRWxlbWVudCB8IEhUTUxCdXR0b25FbGVtZW50KVtdID1cbiAgICAgICAgdG9vbGJhclJlZi5jdXJyZW50Py5xdWVyeVNlbGVjdG9yQWxsKHNlbGVjdG9ycylcblxuICAgICAgOyh0b29sYmFyQnV0dG9ucyB8fCBbXSkuZm9yRWFjaCgoY2hpbGQpID0+IHtcbiAgICAgICAgY29uc3QgaXNCdXR0b24gPSBjaGlsZC50YWdOYW1lID09PSAnQlVUVE9OJ1xuICAgICAgICBjb25zdCBpc0Rpc2FibGluZyA9IGNsaWNrU3RhdGUgPT09ICdkaXNhYmxlZCdcbiAgICAgICAgY2hpbGQuc2V0QXR0cmlidXRlKCd0YWJJbmRleCcsIGlzRGlzYWJsaW5nID8gJy0xJyA6ICcwJylcbiAgICAgICAgaWYgKGlzQnV0dG9uKSBjaGlsZC5zZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJywgaXNEaXNhYmxpbmcgPyAnZGlzYWJsZWQnIDogbnVsbClcbiAgICAgIH0pXG4gICAgfVxuXG4gICAgaWYgKHJlYWRPbmx5KSB7XG4gICAgICBzZXRDbGlja2FibGVTdGF0ZSgnZGlzYWJsZWQnKVxuICAgIH1cblxuICAgIHJldHVybiAoKSA9PiB7XG4gICAgICBpZiAocmVhZE9ubHkpIHtcbiAgICAgICAgc2V0Q2xpY2thYmxlU3RhdGUoJ2VuYWJsZWQnKVxuICAgICAgfVxuICAgIH1cbiAgfSwgW3JlYWRPbmx5XSlcblxuICAvLyB1c2VFZmZlY3QoKCkgPT4ge1xuICAvLyAgIC8vIElmIHRoZXJlIGlzIGEgY2hhbmdlIHRvIHRoZSBpbml0aWFsIHZhbHVlLCB3ZSBuZWVkIHRvIHJlc2V0IFNsYXRlIGhpc3RvcnlcbiAgLy8gICAvLyBhbmQgY2xlYXIgc2VsZWN0aW9uIGJlY2F1c2UgdGhlIG9sZCBzZWxlY3Rpb24gbWF5IG5vIGxvbmdlciBiZSB2YWxpZFxuICAvLyAgIC8vIGFzIHJldHVybmVkIEpTT04gbWF5IGJlIG1vZGlmaWVkIGluIGhvb2tzIGFuZCBoYXZlIGEgZGlmZmVyZW50IHNoYXBlXG4gIC8vICAgaWYgKGVkaXRvci5zZWxlY3Rpb24pIHtcbiAgLy8gICAgIGNvbnNvbGUubG9nKCdkZXNlbGVjdGluZycpO1xuICAvLyAgICAgUmVhY3RFZGl0b3IuZGVzZWxlY3QoZWRpdG9yKTtcbiAgLy8gICB9XG4gIC8vIH0sIFtwYXRoLCBlZGl0b3JdKTtcblxuICBjb25zdCBjbGFzc2VzID0gW1xuICAgIGJhc2VDbGFzcyxcbiAgICAnZmllbGQtdHlwZScsXG4gICAgY2xhc3NOYW1lLFxuICAgIHNob3dFcnJvciAmJiAnZXJyb3InLFxuICAgIHJlYWRPbmx5ICYmIGAke2Jhc2VDbGFzc30tLXJlYWQtb25seWAsXG4gIF1cbiAgICAuZmlsdGVyKEJvb2xlYW4pXG4gICAgLmpvaW4oJyAnKVxuXG4gIGxldCB2YWx1ZVRvUmVuZGVyID0gdmFsdWVcblxuICBpZiAodHlwZW9mIHZhbHVlVG9SZW5kZXIgPT09ICdzdHJpbmcnKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHBhcnNlZEpTT04gPSBKU09OLnBhcnNlKHZhbHVlVG9SZW5kZXIpXG4gICAgICB2YWx1ZVRvUmVuZGVyID0gcGFyc2VkSlNPTlxuICAgIH0gY2F0Y2ggKGVycikge1xuICAgICAgdmFsdWVUb1JlbmRlciA9IG51bGxcbiAgICB9XG4gIH1cblxuICBpZiAoIXZhbHVlVG9SZW5kZXIpIHZhbHVlVG9SZW5kZXIgPSBkZWZhdWx0UmljaFRleHRWYWx1ZVxuXG4gIHJldHVybiAoXG4gICAgPGRpdlxuICAgICAgY2xhc3NOYW1lPXtjbGFzc2VzfVxuICAgICAgc3R5bGU9e3tcbiAgICAgICAgLi4uc3R5bGUsXG4gICAgICAgIHdpZHRoLFxuICAgICAgfX1cbiAgICA+XG4gICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fd3JhcGB9PlxuICAgICAgICB7RXJyb3J9XG4gICAgICAgIHtMYWJlbH1cbiAgICAgICAgPFNsYXRlXG4gICAgICAgICAgZWRpdG9yPXtlZGl0b3J9XG4gICAgICAgICAga2V5PXtKU09OLnN0cmluZ2lmeSh7IGluaXRpYWxWYWx1ZSwgcGF0aCB9KX0gLy8gbWFrZXMgc3VyZSBzbGF0ZSBpcyBjb21wbGV0ZWx5IHJlLXJlbmRlcmVkIHdoZW4gaW5pdGlhbFZhbHVlIGNoYW5nZXMsIGJ5cGFzc2luZyB0aGUgc2xhdGUtaW50ZXJuYWwgdmFsdWUgbWVtb2l6YXRpb24uIFRoYXQgd2F5LCBleHRlcm5hbCBjaGFuZ2VzIHRvIHRoZSBmb3JtIHdpbGwgdXBkYXRlIHRoZSBlZGl0b3JcbiAgICAgICAgICBvbkNoYW5nZT17aGFuZGxlQ2hhbmdlfVxuICAgICAgICAgIHZhbHVlPXt2YWx1ZVRvUmVuZGVyIGFzIGFueVtdfVxuICAgICAgICA+XG4gICAgICAgICAgPGRpdiBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX3dyYXBwZXJgfT5cbiAgICAgICAgICAgIHtPYmplY3Qua2V5cyhlbGVtZW50cyk/Lmxlbmd0aCArIE9iamVjdC5rZXlzKGxlYXZlcyk/Lmxlbmd0aCA+IDAgJiYgKFxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3NOYW1lPXtbYCR7YmFzZUNsYXNzfV9fdG9vbGJhcmAsIGRyYXdlcklzT3BlbiAmJiBgJHtiYXNlQ2xhc3N9X19kcmF3ZXJJc09wZW5gXVxuICAgICAgICAgICAgICAgICAgLmZpbHRlcihCb29sZWFuKVxuICAgICAgICAgICAgICAgICAgLmpvaW4oJyAnKX1cbiAgICAgICAgICAgICAgICByZWY9e3Rvb2xiYXJSZWZ9XG4gICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fdG9vbGJhci13cmFwYH0+XG4gICAgICAgICAgICAgICAgICB7T2JqZWN0LnZhbHVlcyhlbGVtZW50cykubWFwKChlbGVtZW50KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IEJ1dHRvbiA9IGVsZW1lbnQ/LkJ1dHRvblxuXG4gICAgICAgICAgICAgICAgICAgIGlmIChCdXR0b24pIHtcbiAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gKFxuICAgICAgICAgICAgICAgICAgICAgICAgPEVsZW1lbnRCdXR0b25Qcm92aWRlclxuICAgICAgICAgICAgICAgICAgICAgICAgICBmaWVsZFByb3BzPXtwcm9wc31cbiAgICAgICAgICAgICAgICAgICAgICAgICAga2V5PXtlbGVtZW50Lm5hbWV9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHBhdGg9e3BhdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNjaGVtYVBhdGg9e3NjaGVtYVBhdGh9XG4gICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIHtCdXR0b259XG4gICAgICAgICAgICAgICAgICAgICAgICA8L0VsZW1lbnRCdXR0b25Qcm92aWRlcj5cbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgICAgICAgICAgfSl9XG4gICAgICAgICAgICAgICAgICB7T2JqZWN0LnZhbHVlcyhsZWF2ZXMpLm1hcCgobGVhZikgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBCdXR0b24gPSBsZWFmPy5CdXR0b25cblxuICAgICAgICAgICAgICAgICAgICBpZiAoQnV0dG9uKSB7XG4gICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgICAgICAgICAgIDxMZWFmQnV0dG9uUHJvdmlkZXJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZmllbGRQcm9wcz17cHJvcHN9XG4gICAgICAgICAgICAgICAgICAgICAgICAgIGtleT17bGVhZi5uYW1lfVxuICAgICAgICAgICAgICAgICAgICAgICAgICBwYXRoPXtwYXRofVxuICAgICAgICAgICAgICAgICAgICAgICAgICBzY2hlbWFQYXRoPXtzY2hlbWFQYXRofVxuICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICB7QnV0dG9ufVxuICAgICAgICAgICAgICAgICAgICAgICAgPC9MZWFmQnV0dG9uUHJvdmlkZXI+XG4gICAgICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICAgICAgICAgIH0pfVxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICl9XG4gICAgICAgICAgICA8ZGl2IGNsYXNzTmFtZT17YCR7YmFzZUNsYXNzfV9fZWRpdG9yYH0gcmVmPXtlZGl0b3JSZWZ9PlxuICAgICAgICAgICAgICA8RWRpdGFibGVcbiAgICAgICAgICAgICAgICBjbGFzc05hbWU9e2Ake2Jhc2VDbGFzc31fX2lucHV0YH1cbiAgICAgICAgICAgICAgICBpZD17YGZpZWxkLSR7cGF0aC5yZXBsYWNlKC9cXC4vZywgJ19fJyl9YH1cbiAgICAgICAgICAgICAgICBvbktleURvd249eyhldmVudCkgPT4ge1xuICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LmtleSA9PT0gJ0VudGVyJykge1xuICAgICAgICAgICAgICAgICAgICBpZiAoZXZlbnQuc2hpZnRLZXkpIHtcbiAgICAgICAgICAgICAgICAgICAgICBldmVudC5wcmV2ZW50RGVmYXVsdCgpXG4gICAgICAgICAgICAgICAgICAgICAgZWRpdG9yLmluc2VydFRleHQoJ1xcbicpXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRFbGVtZW50ID0gTm9kZS5kZXNjZW5kYW50KFxuICAgICAgICAgICAgICAgICAgICAgICAgZWRpdG9yLFxuICAgICAgICAgICAgICAgICAgICAgICAgZWRpdG9yLnNlbGVjdGlvbi5hbmNob3IucGF0aC5zbGljZSgwLCAtMSksXG4gICAgICAgICAgICAgICAgICAgICAgKVxuXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKFNsYXRlRWxlbWVudC5pc0VsZW1lbnQoc2VsZWN0ZWRFbGVtZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgLy8gQWxsb3cgaGFyZCBlbnRlciB0byBcImJyZWFrIG91dFwiIG9mIGNlcnRhaW4gZWxlbWVudHNcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmIChlZGl0b3Iuc2hvdWxkQnJlYWtPdXRPbkVudGVyKHNlbGVjdGVkRWxlbWVudCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZExlYWYgPSBOb2RlLmRlc2NlbmRhbnQoZWRpdG9yLCBlZGl0b3Iuc2VsZWN0aW9uLmFuY2hvci5wYXRoKVxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUZXh0LmlzVGV4dChzZWxlY3RlZExlYWYpICYmXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgU3RyaW5nKHNlbGVjdGVkTGVhZi50ZXh0KS5sZW5ndGggPT09IGVkaXRvci5zZWxlY3Rpb24uYW5jaG9yLm9mZnNldFxuICAgICAgICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLmluc2VydE5vZGVzKGVkaXRvciwgeyBjaGlsZHJlbjogW3sgdGV4dDogJycgfV0gfSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBUcmFuc2Zvcm1zLnNwbGl0Tm9kZXMoZWRpdG9yKVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMuc2V0Tm9kZXMoZWRpdG9yLCB7fSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgICBpZiAoZXZlbnQua2V5ID09PSAnQmFja3NwYWNlJykge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZEVsZW1lbnQgPSBOb2RlLmRlc2NlbmRhbnQoXG4gICAgICAgICAgICAgICAgICAgICAgZWRpdG9yLFxuICAgICAgICAgICAgICAgICAgICAgIGVkaXRvci5zZWxlY3Rpb24uYW5jaG9yLnBhdGguc2xpY2UoMCwgLTEpLFxuICAgICAgICAgICAgICAgICAgICApXG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKFNsYXRlRWxlbWVudC5pc0VsZW1lbnQoc2VsZWN0ZWRFbGVtZW50KSAmJiBzZWxlY3RlZEVsZW1lbnQudHlwZSA9PT0gJ2xpJykge1xuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkTGVhZiA9IE5vZGUuZGVzY2VuZGFudChlZGl0b3IsIGVkaXRvci5zZWxlY3Rpb24uYW5jaG9yLnBhdGgpXG4gICAgICAgICAgICAgICAgICAgICAgaWYgKFRleHQuaXNUZXh0KHNlbGVjdGVkTGVhZikgJiYgU3RyaW5nKHNlbGVjdGVkTGVhZi50ZXh0KS5sZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KClcbiAgICAgICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMudW53cmFwTm9kZXMoZWRpdG9yLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgIG1hdGNoOiAobikgPT4gU2xhdGVFbGVtZW50LmlzRWxlbWVudChuKSAmJiBsaXN0VHlwZXMuaW5jbHVkZXMobi50eXBlKSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgbW9kZTogJ2xvd2VzdCcsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHNwbGl0OiB0cnVlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcblxuICAgICAgICAgICAgICAgICAgICAgICAgVHJhbnNmb3Jtcy5zZXROb2RlcyhlZGl0b3IsIHsgdHlwZTogdW5kZWZpbmVkIH0pXG4gICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKGVkaXRvci5pc1ZvaWQoc2VsZWN0ZWRFbGVtZW50KSkge1xuICAgICAgICAgICAgICAgICAgICAgIFRyYW5zZm9ybXMucmVtb3ZlTm9kZXMoZWRpdG9yKVxuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICAgIE9iamVjdC5rZXlzKGhvdGtleXMpLmZvckVhY2goKGhvdGtleSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoaXNIb3RrZXkoaG90a2V5LCBldmVudCBhcyBhbnkpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKVxuICAgICAgICAgICAgICAgICAgICAgIGNvbnN0IG1hcmsgPSBob3RrZXlzW2hvdGtleV1cbiAgICAgICAgICAgICAgICAgICAgICB0b2dnbGVMZWFmKGVkaXRvciwgbWFyaylcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICB9fVxuICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPXtnZXRUcmFuc2xhdGlvbihwbGFjZWhvbGRlciwgaTE4bil9XG4gICAgICAgICAgICAgICAgcmVhZE9ubHk9e3JlYWRPbmx5fVxuICAgICAgICAgICAgICAgIHJlbmRlckVsZW1lbnQ9e3JlbmRlckVsZW1lbnR9XG4gICAgICAgICAgICAgICAgcmVuZGVyTGVhZj17cmVuZGVyTGVhZn1cbiAgICAgICAgICAgICAgICBzcGVsbENoZWNrXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9TbGF0ZT5cbiAgICAgICAge0Rlc2NyaXB0aW9ufVxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIClcbn1cblxuZXhwb3J0IGRlZmF1bHQgd2l0aENvbmRpdGlvbihSaWNoVGV4dClcbiJdLCJuYW1lcyI6WyJiYXNlQ2xhc3MiLCJSaWNoVGV4dCIsInByb3BzIiwibmFtZSIsIkRlc2NyaXB0aW9uIiwiRXJyb3IiLCJMYWJlbCIsImNsYXNzTmFtZSIsImVsZW1lbnRzIiwibGVhdmVzIiwicGF0aCIsInBhdGhGcm9tUHJvcHMiLCJwbGFjZWhvbGRlciIsInBsdWdpbnMiLCJyZWFkT25seSIsInJlcXVpcmVkIiwic3R5bGUiLCJ2YWxpZGF0ZSIsInJpY2hUZXh0VmFsaWRhdGUiLCJ3aWR0aCIsImkxOG4iLCJ1c2VUcmFuc2xhdGlvbiIsImVkaXRvclJlZiIsInVzZVJlZiIsInRvb2xiYXJSZWYiLCJkcmF3ZXJEZXB0aCIsInVzZUVkaXREZXB0aCIsImRyYXdlcklzT3BlbiIsIm1lbW9pemVkVmFsaWRhdGUiLCJ1c2VDYWxsYmFjayIsInZhbHVlIiwidmFsaWRhdGlvbk9wdGlvbnMiLCJpbml0aWFsVmFsdWUiLCJzY2hlbWFQYXRoIiwic2V0VmFsdWUiLCJzaG93RXJyb3IiLCJ1c2VGaWVsZCIsImVkaXRvciIsInVzZU1lbW8iLCJDcmVhdGVkRWRpdG9yIiwid2l0aEVudGVyQnJlYWtPdXQiLCJ3aXRoSGlzdG9yeSIsIndpdGhSZWFjdCIsImNyZWF0ZUVkaXRvciIsIndpdGhIVE1MIiwibGVuZ3RoIiwicmVkdWNlIiwiZWRpdG9yV2l0aFBsdWdpbnMiLCJwbHVnaW4iLCJyZW5kZXJFbGVtZW50IiwiYXR0cmlidXRlcyIsImNoaWxkcmVuIiwiZWxlbWVudCIsIm1hdGNoZWRFbGVtZW50IiwidHlwZSIsIkVsZW1lbnQiLCJhdHRyIiwidGV4dEFsaWduIiwibWFyZ2luUmlnaHQiLCJtYXJnaW5MZWZ0IiwibGlzdFN0eWxlUG9zaXRpb24iLCJlbCIsIkVsZW1lbnRQcm92aWRlciIsImNoaWxkTm9kZXMiLCJmaWVsZFByb3BzIiwiZGl2IiwicmVuZGVyTGVhZiIsImxlYWYiLCJtYXRjaGVkTGVhdmVzIiwiT2JqZWN0IiwiZW50cmllcyIsImZpbHRlciIsImxlYWZOYW1lIiwicmVzdWx0IiwibGVhZkNvbmZpZyIsImkiLCJMZWFmIiwiTGVhZlByb3ZpZGVyIiwia2V5Iiwic3BhbiIsImhhbmRsZUNoYW5nZSIsInZhbCIsIm9wcyIsIm9wZXJhdGlvbnMiLCJvIiwiQXJyYXkiLCJpc0FycmF5IiwiZGVmYXVsdFJpY2hUZXh0VmFsdWUiLCJ1c2VFZmZlY3QiLCJzZXRDbGlja2FibGVTdGF0ZSIsImNsaWNrU3RhdGUiLCJzZWxlY3RvcnMiLCJ0b29sYmFyQnV0dG9ucyIsImN1cnJlbnQiLCJxdWVyeVNlbGVjdG9yQWxsIiwiZm9yRWFjaCIsImNoaWxkIiwiaXNCdXR0b24iLCJ0YWdOYW1lIiwiaXNEaXNhYmxpbmciLCJzZXRBdHRyaWJ1dGUiLCJjbGFzc2VzIiwiQm9vbGVhbiIsImpvaW4iLCJ2YWx1ZVRvUmVuZGVyIiwicGFyc2VkSlNPTiIsIkpTT04iLCJwYXJzZSIsImVyciIsIlNsYXRlIiwic3RyaW5naWZ5Iiwib25DaGFuZ2UiLCJrZXlzIiwicmVmIiwidmFsdWVzIiwibWFwIiwiQnV0dG9uIiwiRWxlbWVudEJ1dHRvblByb3ZpZGVyIiwiTGVhZkJ1dHRvblByb3ZpZGVyIiwiRWRpdGFibGUiLCJpZCIsInJlcGxhY2UiLCJvbktleURvd24iLCJldmVudCIsInNoaWZ0S2V5IiwicHJldmVudERlZmF1bHQiLCJpbnNlcnRUZXh0Iiwic2VsZWN0ZWRFbGVtZW50IiwiTm9kZSIsImRlc2NlbmRhbnQiLCJzZWxlY3Rpb24iLCJhbmNob3IiLCJzbGljZSIsIlNsYXRlRWxlbWVudCIsImlzRWxlbWVudCIsInNob3VsZEJyZWFrT3V0T25FbnRlciIsInNlbGVjdGVkTGVhZiIsIlRleHQiLCJpc1RleHQiLCJTdHJpbmciLCJ0ZXh0Iiwib2Zmc2V0IiwiVHJhbnNmb3JtcyIsImluc2VydE5vZGVzIiwic3BsaXROb2RlcyIsInNldE5vZGVzIiwidW53cmFwTm9kZXMiLCJtYXRjaCIsIm4iLCJsaXN0VHlwZXMiLCJpbmNsdWRlcyIsIm1vZGUiLCJzcGxpdCIsInVuZGVmaW5lZCIsImlzVm9pZCIsInJlbW92ZU5vZGVzIiwiaG90a2V5cyIsImhvdGtleSIsImlzSG90a2V5IiwibWFyayIsInRvZ2dsZUxlYWYiLCJnZXRUcmFuc2xhdGlvbiIsInNwZWxsQ2hlY2siLCJ3aXRoQ29uZGl0aW9uIl0sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7K0JBa2JBOzs7ZUFBQTs7OzhCQTNhK0I7b0JBQ3dCO3VCQUN6QjtpRUFDVDsrREFDMEM7dUJBQ2U7OEJBQ2xEOzRCQUNlOzhCQUtOOzRCQUNKO2tFQUNYO2dFQUNGO1FBQ2I7K0RBQ2dCOzBFQUNPO2lFQUNUO3VDQUNpQjtpQ0FDTjtvQ0FDRzs4QkFDTjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFFN0IsTUFBTUEsWUFBWTtBQVVsQixNQUFNQyxXQVFGLENBQUNDO0lBQ0gsTUFBTSxFQUNKQyxJQUFJLEVBQ0pDLFdBQVcsRUFDWEMsS0FBSyxFQUNMQyxLQUFLLEVBQ0xDLFNBQVMsRUFDVEMsUUFBUSxFQUNSQyxNQUFNLEVBQ05DLE1BQU1DLGFBQWEsRUFDbkJDLFdBQVcsRUFDWEMsT0FBTyxFQUNQQyxRQUFRLEVBQ1JDLFFBQVEsRUFDUkMsS0FBSyxFQUNMQyxXQUFXQyw0QkFBZ0IsRUFDM0JDLEtBQUssRUFDTixHQUFHakI7SUFFSixNQUFNLEVBQUVrQixJQUFJLEVBQUUsR0FBR0MsSUFBQUEsa0JBQWM7SUFDL0IsTUFBTUMsWUFBWUMsSUFBQUEsYUFBTSxFQUFDO0lBQ3pCLE1BQU1DLGFBQWFELElBQUFBLGFBQU0sRUFB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
396
+ //# sourceMappingURL=RichText.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/field/RichText.tsx"],"sourcesContent":["'use client'\n\nimport type { FormFieldBase } from '@payloadcms/ui/fields/shared'\nimport type { ClientValidate, FieldBase } from 'payload/types'\nimport type { BaseEditor, BaseOperation } from 'slate'\nimport type { HistoryEditor } from 'slate-history'\nimport type { ReactEditor } from 'slate-react'\n\nimport { getTranslation } from '@payloadcms/translations'\nimport { FieldDescription } from '@payloadcms/ui/forms/FieldDescription'\nimport { FieldError } from '@payloadcms/ui/forms/FieldError'\nimport { FieldLabel } from '@payloadcms/ui/forms/FieldLabel'\nimport { useFieldProps } from '@payloadcms/ui/forms/FieldPropsProvider'\nimport { useField } from '@payloadcms/ui/forms/useField'\nimport { withCondition } from '@payloadcms/ui/forms/withCondition'\nimport { useEditDepth } from '@payloadcms/ui/providers/EditDepth'\nimport { useTranslation } from '@payloadcms/ui/providers/Translation'\nimport isHotkey from 'is-hotkey'\nimport React, { useCallback, useEffect, useMemo, useRef } from 'react'\nimport { Node, Element as SlateElement, Text, Transforms, createEditor } from 'slate'\nimport { withHistory } from 'slate-history'\nimport { Editable, Slate, withReact } from 'slate-react'\n\nimport type { ElementNode, RichTextPlugin, TextNode } from '../types.js'\nimport type { EnabledFeatures } from './types.js'\n\nimport { defaultRichTextValue } from '../data/defaultValue.js'\nimport { richTextValidate } from '../data/validation.js'\nimport { listTypes } from './elements/listTypes.js'\nimport { hotkeys } from './hotkeys.js'\nimport './index.scss'\nimport { toggleLeaf } from './leaves/toggle.js'\nimport { withEnterBreakOut } from './plugins/withEnterBreakOut.js'\nimport { withHTML } from './plugins/withHTML.js'\nimport { ElementButtonProvider } from './providers/ElementButtonProvider.js'\nimport { ElementProvider } from './providers/ElementProvider.js'\nimport { LeafButtonProvider } from './providers/LeafButtonProvider.js'\nimport { LeafProvider } from './providers/LeafProvider.js'\n\nconst baseClass = 'rich-text'\n\ndeclare module 'slate' {\n interface CustomTypes {\n Editor: BaseEditor & ReactEditor & HistoryEditor\n Element: ElementNode\n Text: TextNode\n }\n}\n\nconst RichTextField: React.FC<\n FormFieldBase & {\n elements: EnabledFeatures['elements']\n label?: FieldBase['label']\n leaves: EnabledFeatures['leaves']\n name: string\n placeholder?: string\n plugins: RichTextPlugin[]\n richTextComponentMap: Map<string, React.ReactNode>\n width?: string\n }\n> = (props) => {\n const {\n name,\n CustomDescription,\n CustomError,\n CustomLabel,\n className,\n descriptionProps,\n elements,\n errorProps,\n label,\n labelProps,\n leaves,\n path: pathFromProps,\n placeholder,\n plugins,\n readOnly,\n required,\n style,\n validate = richTextValidate,\n width,\n } = props\n\n const { i18n } = useTranslation()\n const editorRef = useRef(null)\n const toolbarRef = useRef(null)\n\n const drawerDepth = useEditDepth()\n const drawerIsOpen = drawerDepth > 1\n\n const memoizedValidate: ClientValidate = useCallback(\n (value, validationOptions) => {\n if (typeof validate === 'function') {\n return validate(value, {\n ...validationOptions,\n req: {\n t: i18n.t,\n },\n required,\n })\n }\n },\n [validate, required, i18n],\n )\n\n const { path: pathFromContext } = useFieldProps()\n\n const { initialValue, path, schemaPath, setValue, showError, value } = useField({\n path: pathFromContext || pathFromProps || name,\n validate: memoizedValidate,\n })\n\n const editor = useMemo(() => {\n let CreatedEditor = withEnterBreakOut(withHistory(withReact(createEditor())))\n\n CreatedEditor = withHTML(CreatedEditor)\n\n if (plugins.length) {\n CreatedEditor = plugins.reduce((editorWithPlugins, plugin) => {\n return plugin(editorWithPlugins)\n }, CreatedEditor)\n }\n\n return CreatedEditor\n }, [plugins])\n\n const renderElement = useCallback(\n ({ attributes, children, element }) => {\n // return <div {...attributes}>{children}</div>\n\n const matchedElement = elements[element.type]\n const Element = matchedElement?.Element\n\n let attr = { ...attributes }\n\n // this converts text alignment to margin when dealing with void elements\n if (element.textAlign) {\n if (element.type === 'relationship' || element.type === 'upload') {\n switch (element.textAlign) {\n case 'left':\n attr = { ...attr, style: { marginRight: 'auto' } }\n break\n case 'right':\n attr = { ...attr, style: { marginLeft: 'auto' } }\n break\n case 'center':\n attr = { ...attr, style: { marginLeft: 'auto', marginRight: 'auto' } }\n break\n default:\n attr = { ...attr, style: { textAlign: element.textAlign } }\n break\n }\n } else if (element.type === 'li') {\n switch (element.textAlign) {\n case 'right':\n attr = { ...attr, style: { listStylePosition: 'inside', textAlign: 'right' } }\n break\n case 'center':\n attr = { ...attr, style: { listStylePosition: 'inside', textAlign: 'center' } }\n break\n case 'left':\n default:\n attr = { ...attr, style: { listStylePosition: 'outside', textAlign: 'left' } }\n break\n }\n } else {\n attr = { ...attr, style: { textAlign: element.textAlign } }\n }\n }\n\n if (Element) {\n const el = (\n <ElementProvider\n attributes={attr}\n childNodes={children}\n editorRef={editorRef}\n element={element}\n fieldProps={props}\n path={path}\n schemaPath={schemaPath}\n >\n {Element}\n </ElementProvider>\n )\n\n return el\n }\n\n return <div {...attr}>{children}</div>\n },\n [elements, path, props, schemaPath],\n )\n\n const renderLeaf = useCallback(\n ({ attributes, children, leaf }) => {\n const matchedLeaves = Object.entries(leaves).filter(([leafName]) => leaf[leafName])\n\n if (matchedLeaves.length > 0) {\n return matchedLeaves.reduce(\n (result, [, leafConfig], i) => {\n if (leafConfig?.Leaf) {\n const Leaf = leafConfig.Leaf\n\n return (\n <LeafProvider\n attributes={attributes}\n editorRef={editorRef}\n fieldProps={props}\n key={i}\n leaf={leaf}\n path={path}\n result={result}\n schemaPath={schemaPath}\n >\n {Leaf}\n </LeafProvider>\n )\n }\n\n return result\n },\n <span {...attributes}>{children}</span>,\n )\n }\n\n return <span {...attributes}>{children}</span>\n },\n [path, props, schemaPath, leaves],\n )\n\n // All slate changes fire the onChange event\n // including selection changes\n // so we will filter the set_selection operations out\n // and only fire setValue when onChange is because of value\n const handleChange = useCallback(\n (val: unknown) => {\n const ops = editor?.operations.filter((o: BaseOperation) => {\n if (o) {\n return o.type !== 'set_selection'\n }\n return false\n })\n\n if (ops && Array.isArray(ops) && ops.length > 0) {\n if (!readOnly && val !== defaultRichTextValue && val !== value) {\n setValue(val)\n }\n }\n },\n [editor?.operations, readOnly, setValue, value],\n )\n\n useEffect(() => {\n function setClickableState(clickState: 'disabled' | 'enabled') {\n const selectors = 'button, a, [role=\"button\"]'\n const toolbarButtons: (HTMLAnchorElement | HTMLButtonElement)[] =\n toolbarRef.current?.querySelectorAll(selectors)\n\n ;(toolbarButtons || []).forEach((child) => {\n const isButton = child.tagName === 'BUTTON'\n const isDisabling = clickState === 'disabled'\n child.setAttribute('tabIndex', isDisabling ? '-1' : '0')\n if (isButton) child.setAttribute('disabled', isDisabling ? 'disabled' : null)\n })\n }\n\n if (readOnly) {\n setClickableState('disabled')\n }\n\n return () => {\n if (readOnly) {\n setClickableState('enabled')\n }\n }\n }, [readOnly])\n\n // useEffect(() => {\n // // If there is a change to the initial value, we need to reset Slate history\n // // and clear selection because the old selection may no longer be valid\n // // as returned JSON may be modified in hooks and have a different shape\n // if (editor.selection) {\n // console.log('deselecting');\n // ReactEditor.deselect(editor);\n // }\n // }, [path, editor]);\n\n const classes = [\n baseClass,\n 'field-type',\n className,\n showError && 'error',\n readOnly && `${baseClass}--read-only`,\n ]\n .filter(Boolean)\n .join(' ')\n\n let valueToRender = value\n\n if (typeof valueToRender === 'string') {\n try {\n const parsedJSON = JSON.parse(valueToRender)\n valueToRender = parsedJSON\n } catch (err) {\n valueToRender = null\n }\n }\n\n if (!valueToRender) valueToRender = defaultRichTextValue\n\n return (\n <div\n className={classes}\n style={{\n ...style,\n width,\n }}\n >\n <div className={`${baseClass}__wrap`}>\n <FieldError CustomError={CustomError} path={path} {...(errorProps || {})} />\n <FieldLabel\n CustomLabel={CustomLabel}\n label={label}\n required={required}\n {...(labelProps || {})}\n />\n <Slate\n editor={editor}\n key={JSON.stringify({ initialValue, path })} // makes sure slate is completely re-rendered when initialValue changes, bypassing the slate-internal value memoization. That way, external changes to the form will update the editor\n onChange={handleChange}\n value={valueToRender as any[]}\n >\n <div className={`${baseClass}__wrapper`}>\n {Object.keys(elements)?.length + Object.keys(leaves)?.length > 0 && (\n <div\n className={[`${baseClass}__toolbar`, drawerIsOpen && `${baseClass}__drawerIsOpen`]\n .filter(Boolean)\n .join(' ')}\n ref={toolbarRef}\n >\n <div className={`${baseClass}__toolbar-wrap`}>\n {Object.values(elements).map((element) => {\n const Button = element?.Button\n\n if (Button) {\n return (\n <ElementButtonProvider\n fieldProps={props}\n key={element.name}\n path={path}\n schemaPath={schemaPath}\n >\n {Button}\n </ElementButtonProvider>\n )\n }\n\n return null\n })}\n {Object.values(leaves).map((leaf) => {\n const Button = leaf?.Button\n\n if (Button) {\n return (\n <LeafButtonProvider\n fieldProps={props}\n key={leaf.name}\n path={path}\n schemaPath={schemaPath}\n >\n {Button}\n </LeafButtonProvider>\n )\n }\n\n return null\n })}\n </div>\n </div>\n )}\n <div className={`${baseClass}__editor`} ref={editorRef}>\n <Editable\n className={`${baseClass}__input`}\n id={`field-${path.replace(/\\./g, '__')}`}\n onKeyDown={(event) => {\n if (event.key === 'Enter') {\n if (event.shiftKey) {\n event.preventDefault()\n editor.insertText('\\n')\n } else {\n const selectedElement = Node.descendant(\n editor,\n editor.selection.anchor.path.slice(0, -1),\n )\n\n if (SlateElement.isElement(selectedElement)) {\n // Allow hard enter to \"break out\" of certain elements\n if (editor.shouldBreakOutOnEnter(selectedElement)) {\n event.preventDefault()\n const selectedLeaf = Node.descendant(editor, editor.selection.anchor.path)\n\n if (\n Text.isText(selectedLeaf) &&\n String(selectedLeaf.text).length === editor.selection.anchor.offset\n ) {\n Transforms.insertNodes(editor, { children: [{ text: '' }] })\n } else {\n Transforms.splitNodes(editor)\n Transforms.setNodes(editor, {})\n }\n }\n }\n }\n }\n\n if (event.key === 'Backspace') {\n const selectedElement = Node.descendant(\n editor,\n editor.selection.anchor.path.slice(0, -1),\n )\n\n if (SlateElement.isElement(selectedElement) && selectedElement.type === 'li') {\n const selectedLeaf = Node.descendant(editor, editor.selection.anchor.path)\n if (Text.isText(selectedLeaf) && String(selectedLeaf.text).length === 0) {\n event.preventDefault()\n Transforms.unwrapNodes(editor, {\n match: (n) => SlateElement.isElement(n) && listTypes.includes(n.type),\n mode: 'lowest',\n split: true,\n })\n\n Transforms.setNodes(editor, { type: undefined })\n }\n } else if (editor.isVoid(selectedElement)) {\n Transforms.removeNodes(editor)\n }\n }\n\n Object.keys(hotkeys).forEach((hotkey) => {\n if (isHotkey(hotkey, event as any)) {\n event.preventDefault()\n const mark = hotkeys[hotkey]\n toggleLeaf(editor, mark)\n }\n })\n }}\n placeholder={getTranslation(placeholder, i18n)}\n readOnly={readOnly}\n renderElement={renderElement}\n renderLeaf={renderLeaf}\n spellCheck\n />\n </div>\n </div>\n </Slate>\n {CustomDescription !== undefined ? (\n CustomDescription\n ) : (\n <FieldDescription {...(descriptionProps || {})} />\n )}\n </div>\n </div>\n )\n}\n\nexport const RichText = withCondition(RichTextField)\n"],"names":["getTranslation","FieldDescription","FieldError","FieldLabel","useFieldProps","useField","withCondition","useEditDepth","useTranslation","isHotkey","React","useCallback","useEffect","useMemo","useRef","Node","Element","SlateElement","Text","Transforms","createEditor","withHistory","Editable","Slate","withReact","defaultRichTextValue","richTextValidate","listTypes","hotkeys","toggleLeaf","withEnterBreakOut","withHTML","ElementButtonProvider","ElementProvider","LeafButtonProvider","LeafProvider","baseClass","RichTextField","props","name","CustomDescription","CustomError","CustomLabel","className","descriptionProps","elements","errorProps","label","labelProps","leaves","path","pathFromProps","placeholder","plugins","readOnly","required","style","validate","width","i18n","editorRef","toolbarRef","drawerDepth","drawerIsOpen","memoizedValidate","value","validationOptions","req","t","pathFromContext","initialValue","schemaPath","setValue","showError","editor","CreatedEditor","length","reduce","editorWithPlugins","plugin","renderElement","attributes","children","element","matchedElement","type","attr","textAlign","marginRight","marginLeft","listStylePosition","el","childNodes","fieldProps","div","renderLeaf","leaf","matchedLeaves","Object","entries","filter","leafName","result","leafConfig","i","Leaf","key","span","handleChange","val","ops","operations","o","Array","isArray","setClickableState","clickState","selectors","toolbarButtons","current","querySelectorAll","forEach","child","isButton","tagName","isDisabling","setAttribute","classes","Boolean","join","valueToRender","parsedJSON","JSON","parse","err","stringify","onChange","keys","ref","values","map","Button","id","replace","onKeyDown","event","shiftKey","preventDefault","insertText","selectedElement","descendant","selection","anchor","slice","isElement","shouldBreakOutOnEnter","selectedLeaf","isText","String","text","offset","insertNodes","splitNodes","setNodes","unwrapNodes","match","n","includes","mode","split","undefined","isVoid","removeNodes","hotkey","mark","spellCheck","RichText"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}