@payloadcms/ui 3.68.0-internal-debug.591ab42 → 3.68.0-internal-debug.e9b66ee

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 (770) hide show
  1. package/dist/elements/AddNewRelation/index.js +37 -126
  2. package/dist/elements/AddNewRelation/index.js.map +1 -1
  3. package/dist/elements/AnimateHeight/index.js +17 -33
  4. package/dist/elements/AnimateHeight/index.js.map +1 -1
  5. package/dist/elements/AppHeader/index.js +35 -147
  6. package/dist/elements/AppHeader/index.js.map +1 -1
  7. package/dist/elements/ArrayAction/index.js +57 -183
  8. package/dist/elements/ArrayAction/index.js.map +1 -1
  9. package/dist/elements/Autosave/index.js +12 -28
  10. package/dist/elements/Autosave/index.js.map +1 -1
  11. package/dist/elements/Banner/index.js +5 -34
  12. package/dist/elements/Banner/index.js.map +1 -1
  13. package/dist/elements/BulkUpload/ActionsBar/index.js +56 -160
  14. package/dist/elements/BulkUpload/ActionsBar/index.js.map +1 -1
  15. package/dist/elements/BulkUpload/AddFilesView/index.js +23 -80
  16. package/dist/elements/BulkUpload/AddFilesView/index.js.map +1 -1
  17. package/dist/elements/BulkUpload/AddingFilesView/index.js +13 -78
  18. package/dist/elements/BulkUpload/AddingFilesView/index.js.map +1 -1
  19. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js +1 -14
  20. package/dist/elements/BulkUpload/DiscardWithoutSaving/index.js.map +1 -1
  21. package/dist/elements/BulkUpload/DrawerCloseButton/index.js +3 -17
  22. package/dist/elements/BulkUpload/DrawerCloseButton/index.js.map +1 -1
  23. package/dist/elements/BulkUpload/EditForm/index.js +19 -89
  24. package/dist/elements/BulkUpload/EditForm/index.js.map +1 -1
  25. package/dist/elements/BulkUpload/EditMany/DrawerContent.js +35 -134
  26. package/dist/elements/BulkUpload/EditMany/DrawerContent.js.map +1 -1
  27. package/dist/elements/BulkUpload/EditMany/index.js +10 -44
  28. package/dist/elements/BulkUpload/EditMany/index.js.map +1 -1
  29. package/dist/elements/BulkUpload/FileSidebar/index.js +91 -326
  30. package/dist/elements/BulkUpload/FileSidebar/index.js.map +1 -1
  31. package/dist/elements/BulkUpload/FormsManager/index.js +25 -42
  32. package/dist/elements/BulkUpload/FormsManager/index.js.map +1 -1
  33. package/dist/elements/BulkUpload/Header/index.js +4 -26
  34. package/dist/elements/BulkUpload/Header/index.js.map +1 -1
  35. package/dist/elements/BulkUpload/index.js +43 -94
  36. package/dist/elements/BulkUpload/index.js.map +1 -1
  37. package/dist/elements/Button/index.js +38 -155
  38. package/dist/elements/Button/index.js.map +1 -1
  39. package/dist/elements/Card/index.js +5 -40
  40. package/dist/elements/Card/index.js.map +1 -1
  41. package/dist/elements/CheckboxPopup/index.js +15 -41
  42. package/dist/elements/CheckboxPopup/index.js.map +1 -1
  43. package/dist/elements/ClipboardAction/ClipboardActionLabel.js +3 -20
  44. package/dist/elements/ClipboardAction/ClipboardActionLabel.js.map +1 -1
  45. package/dist/elements/ClipboardAction/index.js +14 -64
  46. package/dist/elements/ClipboardAction/index.js.map +1 -1
  47. package/dist/elements/CloseModalButton/index.js +8 -21
  48. package/dist/elements/CloseModalButton/index.js.map +1 -1
  49. package/dist/elements/CodeEditor/CodeEditor.js +27 -48
  50. package/dist/elements/CodeEditor/CodeEditor.js.map +1 -1
  51. package/dist/elements/CodeEditor/index.js +5 -21
  52. package/dist/elements/CodeEditor/index.js.map +1 -1
  53. package/dist/elements/Collapsible/index.js +40 -128
  54. package/dist/elements/Collapsible/index.js.map +1 -1
  55. package/dist/elements/Collapsible/provider.js +2 -10
  56. package/dist/elements/Collapsible/provider.js.map +1 -1
  57. package/dist/elements/ColumnSelector/index.js +12 -28
  58. package/dist/elements/ColumnSelector/index.js.map +1 -1
  59. package/dist/elements/Combobox/index.js +23 -71
  60. package/dist/elements/Combobox/index.js.map +1 -1
  61. package/dist/elements/ConfirmationModal/index.js +22 -81
  62. package/dist/elements/ConfirmationModal/index.js.map +1 -1
  63. package/dist/elements/CopyLocaleData/index.js +56 -148
  64. package/dist/elements/CopyLocaleData/index.js.map +1 -1
  65. package/dist/elements/CopyToClipboard/index.js +17 -41
  66. package/dist/elements/CopyToClipboard/index.js.map +1 -1
  67. package/dist/elements/DatePicker/DatePicker.js +11 -56
  68. package/dist/elements/DatePicker/DatePicker.js.map +1 -1
  69. package/dist/elements/DatePicker/index.js +5 -23
  70. package/dist/elements/DatePicker/index.js.map +1 -1
  71. package/dist/elements/DefaultListViewTabs/index.js +22 -62
  72. package/dist/elements/DefaultListViewTabs/index.js.map +1 -1
  73. package/dist/elements/DeleteDocument/index.js +19 -79
  74. package/dist/elements/DeleteDocument/index.js.map +1 -1
  75. package/dist/elements/DeleteMany/index.js +45 -131
  76. package/dist/elements/DeleteMany/index.js.map +1 -1
  77. package/dist/elements/DocumentControls/index.js +95 -442
  78. package/dist/elements/DocumentControls/index.js.map +1 -1
  79. package/dist/elements/DocumentDrawer/DrawerContent.js +4 -18
  80. package/dist/elements/DocumentDrawer/DrawerContent.js.map +1 -1
  81. package/dist/elements/DocumentDrawer/DrawerHeader/index.js +15 -76
  82. package/dist/elements/DocumentDrawer/DrawerHeader/index.js.map +1 -1
  83. package/dist/elements/DocumentDrawer/Provider.js +4 -12
  84. package/dist/elements/DocumentDrawer/Provider.js.map +1 -1
  85. package/dist/elements/DocumentDrawer/index.js +14 -62
  86. package/dist/elements/DocumentDrawer/index.js.map +1 -1
  87. package/dist/elements/DocumentFields/index.js +22 -86
  88. package/dist/elements/DocumentFields/index.js.map +1 -1
  89. package/dist/elements/DocumentLocked/index.js +41 -126
  90. package/dist/elements/DocumentLocked/index.js.map +1 -1
  91. package/dist/elements/DocumentTakeOver/index.js +24 -81
  92. package/dist/elements/DocumentTakeOver/index.js.map +1 -1
  93. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js +16 -21
  94. package/dist/elements/DraggableSortable/DraggableSortableItem/index.js.map +1 -1
  95. package/dist/elements/DraggableSortable/index.js +8 -29
  96. package/dist/elements/DraggableSortable/index.js.map +1 -1
  97. package/dist/elements/Drawer/index.js +38 -135
  98. package/dist/elements/Drawer/index.js.map +1 -1
  99. package/dist/elements/DrawerActionHeader/index.js +18 -57
  100. package/dist/elements/DrawerActionHeader/index.js.map +1 -1
  101. package/dist/elements/DrawerContentContainer/index.js +4 -13
  102. package/dist/elements/DrawerContentContainer/index.js.map +1 -1
  103. package/dist/elements/Dropzone/index.js +15 -22
  104. package/dist/elements/Dropzone/index.js.map +1 -1
  105. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js +22 -98
  106. package/dist/elements/DuplicateDocument/SelectLocalesDrawer/index.js.map +1 -1
  107. package/dist/elements/DuplicateDocument/index.js +15 -46
  108. package/dist/elements/DuplicateDocument/index.js.map +1 -1
  109. package/dist/elements/EditMany/DrawerContent.js +49 -204
  110. package/dist/elements/EditMany/DrawerContent.js.map +1 -1
  111. package/dist/elements/EditMany/index.js +18 -66
  112. package/dist/elements/EditMany/index.js.map +1 -1
  113. package/dist/elements/EditUpload/index.js +105 -388
  114. package/dist/elements/EditUpload/index.js.map +1 -1
  115. package/dist/elements/EmailAndUsername/index.js +25 -64
  116. package/dist/elements/EmailAndUsername/index.js.map +1 -1
  117. package/dist/elements/ErrorPill/index.js +6 -27
  118. package/dist/elements/ErrorPill/index.js.map +1 -1
  119. package/dist/elements/FieldDiffContainer/index.js +17 -47
  120. package/dist/elements/FieldDiffContainer/index.js.map +1 -1
  121. package/dist/elements/FieldDiffLabel/index.js +1 -10
  122. package/dist/elements/FieldDiffLabel/index.js.map +1 -1
  123. package/dist/elements/FieldSelect/index.js +14 -37
  124. package/dist/elements/FieldSelect/index.js.map +1 -1
  125. package/dist/elements/FileDetails/DraggableFileDetails/index.js +26 -107
  126. package/dist/elements/FileDetails/DraggableFileDetails/index.js.map +1 -1
  127. package/dist/elements/FileDetails/FileMeta/index.js +19 -69
  128. package/dist/elements/FileDetails/FileMeta/index.js.map +1 -1
  129. package/dist/elements/FileDetails/StaticFileDetails/index.js +12 -72
  130. package/dist/elements/FileDetails/StaticFileDetails/index.js.map +1 -1
  131. package/dist/elements/FileDetails/index.js +2 -16
  132. package/dist/elements/FileDetails/index.js.map +1 -1
  133. package/dist/elements/FolderView/Breadcrumbs/index.js +15 -51
  134. package/dist/elements/FolderView/Breadcrumbs/index.js.map +1 -1
  135. package/dist/elements/FolderView/BrowseByFolderButton/index.js +10 -26
  136. package/dist/elements/FolderView/BrowseByFolderButton/index.js.map +1 -1
  137. package/dist/elements/FolderView/Cell/index.client.js +4 -22
  138. package/dist/elements/FolderView/Cell/index.client.js.map +1 -1
  139. package/dist/elements/FolderView/Cell/index.server.js +1 -14
  140. package/dist/elements/FolderView/Cell/index.server.js.map +1 -1
  141. package/dist/elements/FolderView/ColoredFolderIcon/index.js +1 -8
  142. package/dist/elements/FolderView/ColoredFolderIcon/index.js.map +1 -1
  143. package/dist/elements/FolderView/CurrentFolderActions/index.js +58 -138
  144. package/dist/elements/FolderView/CurrentFolderActions/index.js.map +1 -1
  145. package/dist/elements/FolderView/DragOverlaySelection/index.js +18 -56
  146. package/dist/elements/FolderView/DragOverlaySelection/index.js.map +1 -1
  147. package/dist/elements/FolderView/DraggableTableRow/index.js +20 -47
  148. package/dist/elements/FolderView/DraggableTableRow/index.js.map +1 -1
  149. package/dist/elements/FolderView/DraggableWithClick/index.js +16 -28
  150. package/dist/elements/FolderView/DraggableWithClick/index.js.map +1 -1
  151. package/dist/elements/FolderView/Drawers/EditFolderAction/index.js +10 -24
  152. package/dist/elements/FolderView/Drawers/EditFolderAction/index.js.map +1 -1
  153. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js +105 -327
  154. package/dist/elements/FolderView/Drawers/MoveToFolder/index.js.map +1 -1
  155. package/dist/elements/FolderView/FilterFolderTypePill/index.js +11 -39
  156. package/dist/elements/FolderView/FilterFolderTypePill/index.js.map +1 -1
  157. package/dist/elements/FolderView/FolderField/index.server.js +1 -10
  158. package/dist/elements/FolderView/FolderField/index.server.js.map +1 -1
  159. package/dist/elements/FolderView/FolderFileCard/index.js +50 -168
  160. package/dist/elements/FolderView/FolderFileCard/index.js.map +1 -1
  161. package/dist/elements/FolderView/FolderFileTable/index.js +97 -166
  162. package/dist/elements/FolderView/FolderFileTable/index.js.map +1 -1
  163. package/dist/elements/FolderView/FolderTypeField/index.js +1 -30
  164. package/dist/elements/FolderView/FolderTypeField/index.js.map +1 -1
  165. package/dist/elements/FolderView/ItemCardGrid/index.js +10 -34
  166. package/dist/elements/FolderView/ItemCardGrid/index.js.map +1 -1
  167. package/dist/elements/FolderView/MoveDocToFolder/index.js +54 -104
  168. package/dist/elements/FolderView/MoveDocToFolder/index.js.map +1 -1
  169. package/dist/elements/FolderView/SimpleTable/index.js +31 -98
  170. package/dist/elements/FolderView/SimpleTable/index.js.map +1 -1
  171. package/dist/elements/FolderView/SortByPill/index.js +46 -135
  172. package/dist/elements/FolderView/SortByPill/index.js.map +1 -1
  173. package/dist/elements/FolderView/ToggleViewButtons/index.js +14 -45
  174. package/dist/elements/FolderView/ToggleViewButtons/index.js.map +1 -1
  175. package/dist/elements/FullscreenModal/index.js +5 -15
  176. package/dist/elements/FullscreenModal/index.js.map +1 -1
  177. package/dist/elements/GenerateConfirmation/index.js +10 -48
  178. package/dist/elements/GenerateConfirmation/index.js.map +1 -1
  179. package/dist/elements/GroupByBuilder/index.js +54 -113
  180. package/dist/elements/GroupByBuilder/index.js.map +1 -1
  181. package/dist/elements/Gutter/index.js +10 -18
  182. package/dist/elements/Gutter/index.js.map +1 -1
  183. package/dist/elements/HTMLDiff/diff/index.js.map +1 -1
  184. package/dist/elements/HTMLDiff/index.js +6 -22
  185. package/dist/elements/HTMLDiff/index.js.map +1 -1
  186. package/dist/elements/Hamburger/index.js +9 -48
  187. package/dist/elements/Hamburger/index.js.map +1 -1
  188. package/dist/elements/IDLabel/index.js +8 -25
  189. package/dist/elements/IDLabel/index.js.map +1 -1
  190. package/dist/elements/LeaveWithoutSaving/index.js +2 -23
  191. package/dist/elements/LeaveWithoutSaving/index.js.map +1 -1
  192. package/dist/elements/Link/index.js +26 -36
  193. package/dist/elements/Link/index.js.map +1 -1
  194. package/dist/elements/ListControls/index.js +32 -199
  195. package/dist/elements/ListControls/index.js.map +1 -1
  196. package/dist/elements/ListDrawer/DrawerContent.js +6 -34
  197. package/dist/elements/ListDrawer/DrawerContent.js.map +1 -1
  198. package/dist/elements/ListDrawer/Provider.js +7 -13
  199. package/dist/elements/ListDrawer/Provider.js.map +1 -1
  200. package/dist/elements/ListDrawer/index.js +12 -59
  201. package/dist/elements/ListDrawer/index.js.map +1 -1
  202. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js +10 -34
  203. package/dist/elements/ListHeader/DrawerRelationshipSelect/index.js.map +1 -1
  204. package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerCreateNewDocButton.js +3 -16
  205. package/dist/elements/ListHeader/DrawerTitleActions/ListDrawerCreateNewDocButton.js.map +1 -1
  206. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js +3 -12
  207. package/dist/elements/ListHeader/TitleActions/ListBulkUploadButton.js.map +1 -1
  208. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocButton.js +5 -17
  209. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocButton.js.map +1 -1
  210. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js +52 -110
  211. package/dist/elements/ListHeader/TitleActions/ListCreateNewDocInFolderButton.js.map +1 -1
  212. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js +16 -64
  213. package/dist/elements/ListHeader/TitleActions/ListEmptyTrashButton.js.map +1 -1
  214. package/dist/elements/ListHeader/index.js +15 -64
  215. package/dist/elements/ListHeader/index.js.map +1 -1
  216. package/dist/elements/ListSelection/index.js +20 -79
  217. package/dist/elements/ListSelection/index.js.map +1 -1
  218. package/dist/elements/LivePreview/Device/index.js +13 -26
  219. package/dist/elements/LivePreview/Device/index.js.map +1 -1
  220. package/dist/elements/LivePreview/DeviceContainer/index.js +8 -15
  221. package/dist/elements/LivePreview/DeviceContainer/index.js.map +1 -1
  222. package/dist/elements/LivePreview/IFrame/index.js +5 -18
  223. package/dist/elements/LivePreview/IFrame/index.js.map +1 -1
  224. package/dist/elements/LivePreview/Toggler/index.js +8 -26
  225. package/dist/elements/LivePreview/Toggler/index.js.map +1 -1
  226. package/dist/elements/LivePreview/Toolbar/Controls/index.js +50 -197
  227. package/dist/elements/LivePreview/Toolbar/Controls/index.js.map +1 -1
  228. package/dist/elements/LivePreview/Toolbar/SizeInput/index.js +1 -14
  229. package/dist/elements/LivePreview/Toolbar/SizeInput/index.js.map +1 -1
  230. package/dist/elements/LivePreview/Toolbar/index.js +23 -75
  231. package/dist/elements/LivePreview/Toolbar/index.js.map +1 -1
  232. package/dist/elements/LivePreview/ToolbarArea/index.js +3 -11
  233. package/dist/elements/LivePreview/ToolbarArea/index.js.map +1 -1
  234. package/dist/elements/LivePreview/Window/index.js +13 -53
  235. package/dist/elements/LivePreview/Window/index.js.map +1 -1
  236. package/dist/elements/Loading/index.js +18 -79
  237. package/dist/elements/Loading/index.js.map +1 -1
  238. package/dist/elements/LoadingOverlay/index.js +8 -25
  239. package/dist/elements/LoadingOverlay/index.js.map +1 -1
  240. package/dist/elements/Localizer/LocalizerLabel/index.js +12 -51
  241. package/dist/elements/Localizer/LocalizerLabel/index.js.map +1 -1
  242. package/dist/elements/Localizer/index.js +39 -88
  243. package/dist/elements/Localizer/index.js.map +1 -1
  244. package/dist/elements/Locked/index.js +8 -34
  245. package/dist/elements/Locked/index.js.map +1 -1
  246. package/dist/elements/Logout/index.js +6 -22
  247. package/dist/elements/Logout/index.js.map +1 -1
  248. package/dist/elements/Nav/NavToggler/index.js +16 -28
  249. package/dist/elements/Nav/NavToggler/index.js.map +1 -1
  250. package/dist/elements/Nav/context.js +10 -16
  251. package/dist/elements/Nav/context.js.map +1 -1
  252. package/dist/elements/NavGroup/index.js +19 -76
  253. package/dist/elements/NavGroup/index.js.map +1 -1
  254. package/dist/elements/NoListResults/index.js +6 -25
  255. package/dist/elements/NoListResults/index.js.map +1 -1
  256. package/dist/elements/PageControls/GroupByPageControls.js +2 -13
  257. package/dist/elements/PageControls/GroupByPageControls.js.map +1 -1
  258. package/dist/elements/PageControls/index.js +14 -73
  259. package/dist/elements/PageControls/index.js.map +1 -1
  260. package/dist/elements/Pagination/ClickableArrow/index.js +3 -17
  261. package/dist/elements/Pagination/ClickableArrow/index.js.map +1 -1
  262. package/dist/elements/Pagination/Page/index.js +3 -12
  263. package/dist/elements/Pagination/Page/index.js.map +1 -1
  264. package/dist/elements/Pagination/Separator/index.js +1 -10
  265. package/dist/elements/Pagination/Separator/index.js.map +1 -1
  266. package/dist/elements/Pagination/index.js +9 -30
  267. package/dist/elements/Pagination/index.js.map +1 -1
  268. package/dist/elements/PerPage/index.js +25 -90
  269. package/dist/elements/PerPage/index.js.map +1 -1
  270. package/dist/elements/PermanentlyDeleteButton/index.js +14 -53
  271. package/dist/elements/PermanentlyDeleteButton/index.js.map +1 -1
  272. package/dist/elements/Pill/index.js +16 -68
  273. package/dist/elements/Pill/index.js.map +1 -1
  274. package/dist/elements/PillSelector/index.js +21 -63
  275. package/dist/elements/PillSelector/index.js.map +1 -1
  276. package/dist/elements/Popup/PopupButtonList/index.js +18 -50
  277. package/dist/elements/Popup/PopupButtonList/index.js.map +1 -1
  278. package/dist/elements/Popup/PopupDivider/index.js +1 -9
  279. package/dist/elements/Popup/PopupDivider/index.js.map +1 -1
  280. package/dist/elements/Popup/PopupGroupLabel/index.js +1 -10
  281. package/dist/elements/Popup/PopupGroupLabel/index.js.map +1 -1
  282. package/dist/elements/Popup/PopupTrigger/index.js +13 -33
  283. package/dist/elements/Popup/PopupTrigger/index.js.map +1 -1
  284. package/dist/elements/Popup/index.js +40 -102
  285. package/dist/elements/Popup/index.js.map +1 -1
  286. package/dist/elements/PreviewButton/index.js +3 -19
  287. package/dist/elements/PreviewButton/index.js.map +1 -1
  288. package/dist/elements/PreviewSizes/index.js +43 -160
  289. package/dist/elements/PreviewSizes/index.js.map +1 -1
  290. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js +24 -96
  291. package/dist/elements/PublishButton/ScheduleDrawer/buildUpcomingColumns.js.map +1 -1
  292. package/dist/elements/PublishButton/ScheduleDrawer/index.js +44 -244
  293. package/dist/elements/PublishButton/ScheduleDrawer/index.js.map +1 -1
  294. package/dist/elements/PublishButton/index.js +26 -78
  295. package/dist/elements/PublishButton/index.js.map +1 -1
  296. package/dist/elements/PublishMany/DrawerContent.js +3 -16
  297. package/dist/elements/PublishMany/DrawerContent.js.map +1 -1
  298. package/dist/elements/PublishMany/index.js +9 -43
  299. package/dist/elements/PublishMany/index.js.map +1 -1
  300. package/dist/elements/QueryPresets/QueryPresetBar/index.js +68 -202
  301. package/dist/elements/QueryPresets/QueryPresetBar/index.js.map +1 -1
  302. package/dist/elements/QueryPresets/QueryPresetToggler/index.js +28 -75
  303. package/dist/elements/QueryPresets/QueryPresetToggler/index.js.map +1 -1
  304. package/dist/elements/QueryPresets/cells/AccessCell/index.js +15 -40
  305. package/dist/elements/QueryPresets/cells/AccessCell/index.js.map +1 -1
  306. package/dist/elements/QueryPresets/cells/ColumnsCell/index.js +12 -25
  307. package/dist/elements/QueryPresets/cells/ColumnsCell/index.js.map +1 -1
  308. package/dist/elements/QueryPresets/cells/GroupByCell/index.js +5 -21
  309. package/dist/elements/QueryPresets/cells/GroupByCell/index.js.map +1 -1
  310. package/dist/elements/QueryPresets/cells/WhereCell/index.js +1 -9
  311. package/dist/elements/QueryPresets/cells/WhereCell/index.js.map +1 -1
  312. package/dist/elements/QueryPresets/fields/ColumnsField/index.js +11 -40
  313. package/dist/elements/QueryPresets/fields/ColumnsField/index.js.map +1 -1
  314. package/dist/elements/QueryPresets/fields/GroupByField/index.js +8 -49
  315. package/dist/elements/QueryPresets/fields/GroupByField/index.js.map +1 -1
  316. package/dist/elements/QueryPresets/fields/WhereField/index.js +21 -110
  317. package/dist/elements/QueryPresets/fields/WhereField/index.js.map +1 -1
  318. package/dist/elements/ReactSelect/ClearIndicator/index.js +9 -27
  319. package/dist/elements/ReactSelect/ClearIndicator/index.js.map +1 -1
  320. package/dist/elements/ReactSelect/Control/index.js +25 -36
  321. package/dist/elements/ReactSelect/Control/index.js.map +1 -1
  322. package/dist/elements/ReactSelect/DropdownIndicator/index.js +7 -24
  323. package/dist/elements/ReactSelect/DropdownIndicator/index.js.map +1 -1
  324. package/dist/elements/ReactSelect/Input/index.js +4 -16
  325. package/dist/elements/ReactSelect/Input/index.js.map +1 -1
  326. package/dist/elements/ReactSelect/MultiValue/index.js +19 -32
  327. package/dist/elements/ReactSelect/MultiValue/index.js.map +1 -1
  328. package/dist/elements/ReactSelect/MultiValueLabel/index.js +7 -22
  329. package/dist/elements/ReactSelect/MultiValueLabel/index.js.map +1 -1
  330. package/dist/elements/ReactSelect/MultiValueRemove/index.js +16 -44
  331. package/dist/elements/ReactSelect/MultiValueRemove/index.js.map +1 -1
  332. package/dist/elements/ReactSelect/SingleValue/index.js +8 -19
  333. package/dist/elements/ReactSelect/SingleValue/index.js.map +1 -1
  334. package/dist/elements/ReactSelect/ValueContainer/index.js +4 -28
  335. package/dist/elements/ReactSelect/ValueContainer/index.js.map +1 -1
  336. package/dist/elements/ReactSelect/index.js +36 -127
  337. package/dist/elements/ReactSelect/index.js.map +1 -1
  338. package/dist/elements/RelationshipTable/AddNewButton.js +20 -60
  339. package/dist/elements/RelationshipTable/AddNewButton.js.map +1 -1
  340. package/dist/elements/RelationshipTable/Pagination.js +3 -19
  341. package/dist/elements/RelationshipTable/Pagination.js.map +1 -1
  342. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js +8 -37
  343. package/dist/elements/RelationshipTable/cells/DrawerLink/index.js.map +1 -1
  344. package/dist/elements/RelationshipTable/index.js +39 -189
  345. package/dist/elements/RelationshipTable/index.js.map +1 -1
  346. package/dist/elements/RenderComponent/index.js +3 -24
  347. package/dist/elements/RenderComponent/index.js.map +1 -1
  348. package/dist/elements/RenderIfInViewport/index.js +3 -10
  349. package/dist/elements/RenderIfInViewport/index.js.map +1 -1
  350. package/dist/elements/RenderServerComponent/index.js +2 -16
  351. package/dist/elements/RenderServerComponent/index.js.map +1 -1
  352. package/dist/elements/RenderTitle/index.js +11 -36
  353. package/dist/elements/RenderTitle/index.js.map +1 -1
  354. package/dist/elements/RestoreButton/index.js +19 -80
  355. package/dist/elements/RestoreButton/index.js.map +1 -1
  356. package/dist/elements/RestoreMany/index.js +16 -62
  357. package/dist/elements/RestoreMany/index.js.map +1 -1
  358. package/dist/elements/SaveButton/index.js +4 -15
  359. package/dist/elements/SaveButton/index.js.map +1 -1
  360. package/dist/elements/SaveDraftButton/index.js +6 -19
  361. package/dist/elements/SaveDraftButton/index.js.map +1 -1
  362. package/dist/elements/SearchBar/index.js +8 -35
  363. package/dist/elements/SearchBar/index.js.map +1 -1
  364. package/dist/elements/SearchFilter/index.js +7 -25
  365. package/dist/elements/SearchFilter/index.js.map +1 -1
  366. package/dist/elements/SelectAll/index.js +4 -18
  367. package/dist/elements/SelectAll/index.js.map +1 -1
  368. package/dist/elements/SelectMany/index.js +7 -20
  369. package/dist/elements/SelectMany/index.js.map +1 -1
  370. package/dist/elements/SelectRow/index.js +5 -21
  371. package/dist/elements/SelectRow/index.js.map +1 -1
  372. package/dist/elements/ShimmerEffect/index.js +18 -51
  373. package/dist/elements/ShimmerEffect/index.js.map +1 -1
  374. package/dist/elements/SortColumn/index.js +28 -83
  375. package/dist/elements/SortColumn/index.js.map +1 -1
  376. package/dist/elements/SortComplex/index.js +16 -77
  377. package/dist/elements/SortComplex/index.js.map +1 -1
  378. package/dist/elements/SortHeader/index.js +13 -37
  379. package/dist/elements/SortHeader/index.js.map +1 -1
  380. package/dist/elements/SortRow/index.js +3 -18
  381. package/dist/elements/SortRow/index.js.map +1 -1
  382. package/dist/elements/Status/index.js +20 -99
  383. package/dist/elements/Status/index.js.map +1 -1
  384. package/dist/elements/StayLoggedIn/index.js +2 -15
  385. package/dist/elements/StayLoggedIn/index.js.map +1 -1
  386. package/dist/elements/StepNav/context.js +8 -14
  387. package/dist/elements/StepNav/context.js.map +1 -1
  388. package/dist/elements/StepNav/index.js +36 -139
  389. package/dist/elements/StepNav/index.js.map +1 -1
  390. package/dist/elements/StickyToolbar/index.js +1 -10
  391. package/dist/elements/StickyToolbar/index.js.map +1 -1
  392. package/dist/elements/Table/DefaultCell/fields/Array/index.js +1 -9
  393. package/dist/elements/Table/DefaultCell/fields/Array/index.js.map +1 -1
  394. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js +1 -9
  395. package/dist/elements/Table/DefaultCell/fields/Blocks/index.js.map +1 -1
  396. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js +3 -16
  397. package/dist/elements/Table/DefaultCell/fields/Checkbox/index.js.map +1 -1
  398. package/dist/elements/Table/DefaultCell/fields/Code/index.js +3 -17
  399. package/dist/elements/Table/DefaultCell/fields/Code/index.js.map +1 -1
  400. package/dist/elements/Table/DefaultCell/fields/Date/index.js +8 -14
  401. package/dist/elements/Table/DefaultCell/fields/Date/index.js.map +1 -1
  402. package/dist/elements/Table/DefaultCell/fields/File/index.js +8 -37
  403. package/dist/elements/Table/DefaultCell/fields/File/index.js.map +1 -1
  404. package/dist/elements/Table/DefaultCell/fields/JSON/index.js +3 -16
  405. package/dist/elements/Table/DefaultCell/fields/JSON/index.js.map +1 -1
  406. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js +36 -62
  407. package/dist/elements/Table/DefaultCell/fields/Relationship/index.js.map +1 -1
  408. package/dist/elements/Table/DefaultCell/fields/Select/index.js +1 -9
  409. package/dist/elements/Table/DefaultCell/fields/Select/index.js.map +1 -1
  410. package/dist/elements/Table/DefaultCell/fields/Textarea/index.js +1 -9
  411. package/dist/elements/Table/DefaultCell/fields/Textarea/index.js.map +1 -1
  412. package/dist/elements/Table/DefaultCell/index.js +20 -76
  413. package/dist/elements/Table/DefaultCell/index.js.map +1 -1
  414. package/dist/elements/Table/OrderableRow.js +18 -40
  415. package/dist/elements/Table/OrderableRow.js.map +1 -1
  416. package/dist/elements/Table/OrderableRowDragPreview.js +5 -23
  417. package/dist/elements/Table/OrderableRowDragPreview.js.map +1 -1
  418. package/dist/elements/Table/OrderableTable.js +37 -120
  419. package/dist/elements/Table/OrderableTable.js.map +1 -1
  420. package/dist/elements/Table/RelationshipProvider/index.js +6 -14
  421. package/dist/elements/Table/RelationshipProvider/index.js.map +1 -1
  422. package/dist/elements/Table/index.js +28 -79
  423. package/dist/elements/Table/index.js.map +1 -1
  424. package/dist/elements/Thumbnail/index.js +18 -69
  425. package/dist/elements/Thumbnail/index.js.map +1 -1
  426. package/dist/elements/ThumbnailCard/index.js +4 -30
  427. package/dist/elements/ThumbnailCard/index.js.map +1 -1
  428. package/dist/elements/TimezonePicker/index.js +8 -38
  429. package/dist/elements/TimezonePicker/index.js.map +1 -1
  430. package/dist/elements/Toasts/fieldErrors.js +8 -33
  431. package/dist/elements/Toasts/fieldErrors.js.map +1 -1
  432. package/dist/elements/Tooltip/index.js +21 -56
  433. package/dist/elements/Tooltip/index.js.map +1 -1
  434. package/dist/elements/Translation/index.js +16 -39
  435. package/dist/elements/Translation/index.js.map +1 -1
  436. package/dist/elements/TrashBanner/index.js +8 -25
  437. package/dist/elements/TrashBanner/index.js.map +1 -1
  438. package/dist/elements/UnpublishMany/DrawerContent.js +3 -14
  439. package/dist/elements/UnpublishMany/DrawerContent.js.map +1 -1
  440. package/dist/elements/UnpublishMany/index.js +9 -43
  441. package/dist/elements/UnpublishMany/index.js.map +1 -1
  442. package/dist/elements/Upload/index.js +109 -401
  443. package/dist/elements/Upload/index.js.map +1 -1
  444. package/dist/elements/ViewDescription/index.js +2 -10
  445. package/dist/elements/ViewDescription/index.js.map +1 -1
  446. package/dist/elements/WhereBuilder/Condition/Date/index.js +3 -20
  447. package/dist/elements/WhereBuilder/Condition/Date/index.js.map +1 -1
  448. package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.js +6 -72
  449. package/dist/elements/WhereBuilder/Condition/DefaultFilter/index.js.map +1 -1
  450. package/dist/elements/WhereBuilder/Condition/Number/index.js +1 -28
  451. package/dist/elements/WhereBuilder/Condition/Number/index.js.map +1 -1
  452. package/dist/elements/WhereBuilder/Condition/Relationship/index.js +25 -52
  453. package/dist/elements/WhereBuilder/Condition/Relationship/index.js.map +1 -1
  454. package/dist/elements/WhereBuilder/Condition/Select/index.js +4 -17
  455. package/dist/elements/WhereBuilder/Condition/Select/index.js.map +1 -1
  456. package/dist/elements/WhereBuilder/Condition/Text/index.js +1 -27
  457. package/dist/elements/WhereBuilder/Condition/Text/index.js.map +1 -1
  458. package/dist/elements/WhereBuilder/Condition/index.js +30 -128
  459. package/dist/elements/WhereBuilder/Condition/index.js.map +1 -1
  460. package/dist/elements/WhereBuilder/index.js +54 -159
  461. package/dist/elements/WhereBuilder/index.js.map +1 -1
  462. package/dist/elements/WithServerSideProps/index.js +1 -9
  463. package/dist/elements/WithServerSideProps/index.js.map +1 -1
  464. package/dist/elements/withMergedProps/index.js +1 -9
  465. package/dist/elements/withMergedProps/index.js.map +1 -1
  466. package/dist/fields/Array/ArrayRow.js +16 -100
  467. package/dist/fields/Array/ArrayRow.js.map +1 -1
  468. package/dist/fields/Array/index.js +69 -290
  469. package/dist/fields/Array/index.js.map +1 -1
  470. package/dist/fields/Blocks/BlockRow.js +22 -130
  471. package/dist/fields/Blocks/BlockRow.js.map +1 -1
  472. package/dist/fields/Blocks/BlockSelector/BlockSearch/index.js +4 -25
  473. package/dist/fields/Blocks/BlockSelector/BlockSearch/index.js.map +1 -1
  474. package/dist/fields/Blocks/BlockSelector/index.js +29 -101
  475. package/dist/fields/Blocks/BlockSelector/index.js.map +1 -1
  476. package/dist/fields/Blocks/BlocksDrawer/index.js +8 -23
  477. package/dist/fields/Blocks/BlocksDrawer/index.js.map +1 -1
  478. package/dist/fields/Blocks/RowActions.js +12 -44
  479. package/dist/fields/Blocks/RowActions.js.map +1 -1
  480. package/dist/fields/Blocks/SectionTitle/index.js +3 -24
  481. package/dist/fields/Blocks/SectionTitle/index.js.map +1 -1
  482. package/dist/fields/Blocks/index.js +83 -326
  483. package/dist/fields/Blocks/index.js.map +1 -1
  484. package/dist/fields/Checkbox/Input.js +21 -83
  485. package/dist/fields/Checkbox/Input.js.map +1 -1
  486. package/dist/fields/Checkbox/index.js +13 -68
  487. package/dist/fields/Checkbox/index.js.map +1 -1
  488. package/dist/fields/Code/index.js +18 -92
  489. package/dist/fields/Code/index.js.map +1 -1
  490. package/dist/fields/Collapsible/index.js +21 -103
  491. package/dist/fields/Collapsible/index.js.map +1 -1
  492. package/dist/fields/ConfirmPassword/index.js +11 -54
  493. package/dist/fields/ConfirmPassword/index.js.map +1 -1
  494. package/dist/fields/DateTime/index.js +19 -102
  495. package/dist/fields/DateTime/index.js.map +1 -1
  496. package/dist/fields/Email/index.js +19 -91
  497. package/dist/fields/Email/index.js.map +1 -1
  498. package/dist/fields/FieldDescription/index.js +8 -15
  499. package/dist/fields/FieldDescription/index.js.map +1 -1
  500. package/dist/fields/FieldError/index.js +3 -13
  501. package/dist/fields/FieldError/index.js.map +1 -1
  502. package/dist/fields/FieldLabel/index.js +7 -32
  503. package/dist/fields/FieldLabel/index.js.map +1 -1
  504. package/dist/fields/Group/index.js +31 -132
  505. package/dist/fields/Group/index.js.map +1 -1
  506. package/dist/fields/Group/provider.js +3 -11
  507. package/dist/fields/Group/provider.js.map +1 -1
  508. package/dist/fields/Hidden/index.js +2 -13
  509. package/dist/fields/Hidden/index.js.map +1 -1
  510. package/dist/fields/JSON/index.js +18 -93
  511. package/dist/fields/JSON/index.js.map +1 -1
  512. package/dist/fields/Join/index.js +20 -88
  513. package/dist/fields/Join/index.js.map +1 -1
  514. package/dist/fields/Number/index.js +36 -134
  515. package/dist/fields/Number/index.js.map +1 -1
  516. package/dist/fields/Password/index.js +4 -29
  517. package/dist/fields/Password/index.js.map +1 -1
  518. package/dist/fields/Password/input.js +21 -105
  519. package/dist/fields/Password/input.js.map +1 -1
  520. package/dist/fields/Point/index.js +33 -157
  521. package/dist/fields/Point/index.js.map +1 -1
  522. package/dist/fields/RadioGroup/Radio/index.js +13 -51
  523. package/dist/fields/RadioGroup/Radio/index.js.map +1 -1
  524. package/dist/fields/RadioGroup/index.js +42 -124
  525. package/dist/fields/RadioGroup/index.js.map +1 -1
  526. package/dist/fields/Relationship/Input.js +119 -242
  527. package/dist/fields/Relationship/Input.js.map +1 -1
  528. package/dist/fields/Relationship/index.js +11 -44
  529. package/dist/fields/Relationship/index.js.map +1 -1
  530. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js +33 -85
  531. package/dist/fields/Relationship/select-components/MultiValueLabel/index.js.map +1 -1
  532. package/dist/fields/Relationship/select-components/SingleValue/index.js +32 -88
  533. package/dist/fields/Relationship/select-components/SingleValue/index.js.map +1 -1
  534. package/dist/fields/Row/index.js +9 -35
  535. package/dist/fields/Row/index.js.map +1 -1
  536. package/dist/fields/Row/provider.js +3 -11
  537. package/dist/fields/Row/provider.js.map +1 -1
  538. package/dist/fields/Select/Input.js +19 -98
  539. package/dist/fields/Select/Input.js.map +1 -1
  540. package/dist/fields/Select/index.js +1 -30
  541. package/dist/fields/Select/index.js.map +1 -1
  542. package/dist/fields/Slug/index.js +13 -58
  543. package/dist/fields/Slug/index.js.map +1 -1
  544. package/dist/fields/Tabs/Tab/index.js +12 -43
  545. package/dist/fields/Tabs/Tab/index.js.map +1 -1
  546. package/dist/fields/Tabs/index.js +31 -117
  547. package/dist/fields/Tabs/index.js.map +1 -1
  548. package/dist/fields/Tabs/provider.js +3 -11
  549. package/dist/fields/Tabs/provider.js.map +1 -1
  550. package/dist/fields/Text/Input.js +31 -129
  551. package/dist/fields/Text/Input.js.map +1 -1
  552. package/dist/fields/Text/index.js +6 -36
  553. package/dist/fields/Text/index.js.map +1 -1
  554. package/dist/fields/Textarea/Input.js +20 -101
  555. package/dist/fields/Textarea/Input.js.map +1 -1
  556. package/dist/fields/Textarea/index.js +4 -29
  557. package/dist/fields/Textarea/index.js.map +1 -1
  558. package/dist/fields/Upload/HasMany/index.js +52 -117
  559. package/dist/fields/Upload/HasMany/index.js.map +1 -1
  560. package/dist/fields/Upload/HasOne/index.js +6 -34
  561. package/dist/fields/Upload/HasOne/index.js.map +1 -1
  562. package/dist/fields/Upload/Input.js +60 -248
  563. package/dist/fields/Upload/Input.js.map +1 -1
  564. package/dist/fields/Upload/RelationshipContent/index.js +23 -112
  565. package/dist/fields/Upload/RelationshipContent/index.js.map +1 -1
  566. package/dist/fields/Upload/UploadCard/index.js +7 -14
  567. package/dist/fields/Upload/UploadCard/index.js.map +1 -1
  568. package/dist/fields/Upload/index.js +3 -39
  569. package/dist/fields/Upload/index.js.map +1 -1
  570. package/dist/forms/Form/index.js +26 -87
  571. package/dist/forms/Form/index.js.map +1 -1
  572. package/dist/forms/NullifyField/index.js +6 -23
  573. package/dist/forms/NullifyField/index.js.map +1 -1
  574. package/dist/forms/RenderFields/RenderField.js +23 -203
  575. package/dist/forms/RenderFields/RenderField.js.map +1 -1
  576. package/dist/forms/RenderFields/index.js +45 -72
  577. package/dist/forms/RenderFields/index.js.map +1 -1
  578. package/dist/forms/RowLabel/Context/index.js +2 -10
  579. package/dist/forms/RowLabel/Context/index.js.map +1 -1
  580. package/dist/forms/RowLabel/index.js +10 -31
  581. package/dist/forms/RowLabel/index.js.map +1 -1
  582. package/dist/forms/Submit/index.js +5 -22
  583. package/dist/forms/Submit/index.js.map +1 -1
  584. package/dist/forms/fieldSchemasToFormState/renderField.js +26 -44
  585. package/dist/forms/fieldSchemasToFormState/renderField.js.map +1 -1
  586. package/dist/forms/useField/index.js +1 -1
  587. package/dist/forms/useField/index.js.map +1 -1
  588. package/dist/forms/withCondition/index.js +3 -16
  589. package/dist/forms/withCondition/index.js.map +1 -1
  590. package/dist/graphics/Account/Default/index.js +8 -46
  591. package/dist/graphics/Account/Default/index.js.map +1 -1
  592. package/dist/graphics/Account/Gravatar/index.js +3 -16
  593. package/dist/graphics/Account/Gravatar/index.js.map +1 -1
  594. package/dist/graphics/Account/index.js +2 -14
  595. package/dist/graphics/Account/index.js.map +1 -1
  596. package/dist/graphics/DefaultBlockImage/index.js +16 -115
  597. package/dist/graphics/DefaultBlockImage/index.js.map +1 -1
  598. package/dist/graphics/File/index.js +6 -33
  599. package/dist/graphics/File/index.js.map +1 -1
  600. package/dist/graphics/Icon/index.js +4 -31
  601. package/dist/graphics/Icon/index.js.map +1 -1
  602. package/dist/graphics/Logo/index.js +17 -112
  603. package/dist/graphics/Logo/index.js.map +1 -1
  604. package/dist/icons/Calendar/index.js +3 -20
  605. package/dist/icons/Calendar/index.js.map +1 -1
  606. package/dist/icons/Check/index.js +3 -20
  607. package/dist/icons/Check/index.js.map +1 -1
  608. package/dist/icons/Chevron/index.js +9 -30
  609. package/dist/icons/Chevron/index.js.map +1 -1
  610. package/dist/icons/CloseMenu/index.js +3 -20
  611. package/dist/icons/CloseMenu/index.js.map +1 -1
  612. package/dist/icons/CodeBlock/index.js +3 -22
  613. package/dist/icons/CodeBlock/index.js.map +1 -1
  614. package/dist/icons/Copy/index.js +3 -24
  615. package/dist/icons/Copy/index.js.map +1 -1
  616. package/dist/icons/Document/index.js +3 -24
  617. package/dist/icons/Document/index.js.map +1 -1
  618. package/dist/icons/Dots/index.js +10 -32
  619. package/dist/icons/Dots/index.js.map +1 -1
  620. package/dist/icons/DragHandle/index.js +11 -70
  621. package/dist/icons/DragHandle/index.js.map +1 -1
  622. package/dist/icons/Edit/index.js +6 -23
  623. package/dist/icons/Edit/index.js.map +1 -1
  624. package/dist/icons/ExternalLink/index.js +6 -23
  625. package/dist/icons/ExternalLink/index.js.map +1 -1
  626. package/dist/icons/Eye/index.js +12 -53
  627. package/dist/icons/Eye/index.js.map +1 -1
  628. package/dist/icons/Folder/index.js +6 -25
  629. package/dist/icons/Folder/index.js.map +1 -1
  630. package/dist/icons/Gear/index.js +8 -34
  631. package/dist/icons/Gear/index.js.map +1 -1
  632. package/dist/icons/GridView/index.js +6 -56
  633. package/dist/icons/GridView/index.js.map +1 -1
  634. package/dist/icons/Line/index.js +3 -23
  635. package/dist/icons/Line/index.js.map +1 -1
  636. package/dist/icons/Link/index.js +3 -25
  637. package/dist/icons/Link/index.js.map +1 -1
  638. package/dist/icons/ListView/index.js +3 -24
  639. package/dist/icons/ListView/index.js.map +1 -1
  640. package/dist/icons/Lock/index.js +7 -41
  641. package/dist/icons/Lock/index.js.map +1 -1
  642. package/dist/icons/LogOut/index.js +3 -23
  643. package/dist/icons/LogOut/index.js.map +1 -1
  644. package/dist/icons/Menu/index.js +3 -23
  645. package/dist/icons/Menu/index.js.map +1 -1
  646. package/dist/icons/MinimizeMaximize/index.js +3 -27
  647. package/dist/icons/MinimizeMaximize/index.js.map +1 -1
  648. package/dist/icons/More/index.js +8 -43
  649. package/dist/icons/More/index.js.map +1 -1
  650. package/dist/icons/MoveFolder/index.js +10 -62
  651. package/dist/icons/MoveFolder/index.js.map +1 -1
  652. package/dist/icons/People/index.js +7 -28
  653. package/dist/icons/People/index.js.map +1 -1
  654. package/dist/icons/Plus/index.js +3 -22
  655. package/dist/icons/Plus/index.js.map +1 -1
  656. package/dist/icons/Search/index.js +3 -21
  657. package/dist/icons/Search/index.js.map +1 -1
  658. package/dist/icons/Sort/index.js +6 -48
  659. package/dist/icons/Sort/index.js.map +1 -1
  660. package/dist/icons/Swap/index.js +3 -20
  661. package/dist/icons/Swap/index.js.map +1 -1
  662. package/dist/icons/ThreeDots/index.js +5 -26
  663. package/dist/icons/ThreeDots/index.js.map +1 -1
  664. package/dist/icons/Trash/index.js +6 -27
  665. package/dist/icons/Trash/index.js.map +1 -1
  666. package/dist/icons/X/index.js +6 -25
  667. package/dist/icons/X/index.js.map +1 -1
  668. package/dist/providers/Actions/index.js +10 -16
  669. package/dist/providers/Actions/index.js.map +1 -1
  670. package/dist/providers/Auth/index.js +16 -22
  671. package/dist/providers/Auth/index.js.map +1 -1
  672. package/dist/providers/ClickOutside/index.js +6 -14
  673. package/dist/providers/ClickOutside/index.js.map +1 -1
  674. package/dist/providers/ClientFunction/index.js +8 -21
  675. package/dist/providers/ClientFunction/index.js.map +1 -1
  676. package/dist/providers/Config/index.js +4 -19
  677. package/dist/providers/Config/index.js.map +1 -1
  678. package/dist/providers/DocumentEvents/index.js +6 -14
  679. package/dist/providers/DocumentEvents/index.js.map +1 -1
  680. package/dist/providers/DocumentInfo/index.js +7 -29
  681. package/dist/providers/DocumentInfo/index.js.map +1 -1
  682. package/dist/providers/DocumentTitle/index.js +5 -13
  683. package/dist/providers/DocumentTitle/index.js.map +1 -1
  684. package/dist/providers/EditDepth/index.js +3 -11
  685. package/dist/providers/EditDepth/index.js.map +1 -1
  686. package/dist/providers/EntityVisibility/index.js +8 -14
  687. package/dist/providers/EntityVisibility/index.js.map +1 -1
  688. package/dist/providers/Folders/index.js +42 -48
  689. package/dist/providers/Folders/index.js.map +1 -1
  690. package/dist/providers/ListQuery/index.js +17 -30
  691. package/dist/providers/ListQuery/index.js.map +1 -1
  692. package/dist/providers/LivePreview/index.js +39 -51
  693. package/dist/providers/LivePreview/index.js.map +1 -1
  694. package/dist/providers/Locale/index.js +10 -21
  695. package/dist/providers/Locale/index.js.map +1 -1
  696. package/dist/providers/Operation/index.js +3 -11
  697. package/dist/providers/Operation/index.js.map +1 -1
  698. package/dist/providers/Params/index.js +3 -11
  699. package/dist/providers/Params/index.js.map +1 -1
  700. package/dist/providers/Preferences/index.js +3 -11
  701. package/dist/providers/Preferences/index.js.map +1 -1
  702. package/dist/providers/Root/index.js +54 -187
  703. package/dist/providers/Root/index.js.map +1 -1
  704. package/dist/providers/RouteCache/index.js +6 -14
  705. package/dist/providers/RouteCache/index.js.map +1 -1
  706. package/dist/providers/RouteTransition/ProgressBar/index.js +11 -25
  707. package/dist/providers/RouteTransition/ProgressBar/index.js.map +1 -1
  708. package/dist/providers/RouteTransition/index.js +8 -14
  709. package/dist/providers/RouteTransition/index.js.map +1 -1
  710. package/dist/providers/SearchParams/index.js +5 -13
  711. package/dist/providers/SearchParams/index.js.map +1 -1
  712. package/dist/providers/Selection/index.js +3 -11
  713. package/dist/providers/Selection/index.js.map +1 -1
  714. package/dist/providers/ServerFunctions/index.js +15 -21
  715. package/dist/providers/ServerFunctions/index.js.map +1 -1
  716. package/dist/providers/TableColumns/RenderDefaultCell/index.js +4 -16
  717. package/dist/providers/TableColumns/RenderDefaultCell/index.js.map +1 -1
  718. package/dist/providers/TableColumns/buildColumnState/index.js +1 -13
  719. package/dist/providers/TableColumns/buildColumnState/index.js.map +1 -1
  720. package/dist/providers/TableColumns/buildColumnState/renderCell.js +1 -18
  721. package/dist/providers/TableColumns/buildColumnState/renderCell.js.map +1 -1
  722. package/dist/providers/TableColumns/index.js +11 -17
  723. package/dist/providers/TableColumns/index.js.map +1 -1
  724. package/dist/providers/Theme/index.js +7 -15
  725. package/dist/providers/Theme/index.js.map +1 -1
  726. package/dist/providers/ToastContainer/icons/Error.js +4 -33
  727. package/dist/providers/ToastContainer/icons/Error.js.map +1 -1
  728. package/dist/providers/ToastContainer/icons/Info.js +4 -33
  729. package/dist/providers/ToastContainer/icons/Info.js.map +1 -1
  730. package/dist/providers/ToastContainer/icons/Success.js +4 -33
  731. package/dist/providers/ToastContainer/icons/Success.js.map +1 -1
  732. package/dist/providers/ToastContainer/icons/Warning.js +4 -33
  733. package/dist/providers/ToastContainer/icons/Warning.js.map +1 -1
  734. package/dist/providers/ToastContainer/index.js +19 -53
  735. package/dist/providers/ToastContainer/index.js.map +1 -1
  736. package/dist/providers/Translation/index.js +15 -21
  737. package/dist/providers/Translation/index.js.map +1 -1
  738. package/dist/providers/UploadControls/index.js +12 -18
  739. package/dist/providers/UploadControls/index.js.map +1 -1
  740. package/dist/providers/UploadEdits/index.js +9 -15
  741. package/dist/providers/UploadEdits/index.js.map +1 -1
  742. package/dist/providers/UploadHandlers/index.js +5 -13
  743. package/dist/providers/UploadHandlers/index.js.map +1 -1
  744. package/dist/utilities/combineFieldLabel.js +13 -51
  745. package/dist/utilities/combineFieldLabel.js.map +1 -1
  746. package/dist/utilities/getFolderResultsComponentAndData.js +10 -39
  747. package/dist/utilities/getFolderResultsComponentAndData.js.map +1 -1
  748. package/dist/utilities/renderTable.js +23 -113
  749. package/dist/utilities/renderTable.js.map +1 -1
  750. package/dist/views/BrowseByFolder/index.js +74 -273
  751. package/dist/views/BrowseByFolder/index.js.map +1 -1
  752. package/dist/views/CollectionFolder/ListSelection/index.js +44 -130
  753. package/dist/views/CollectionFolder/ListSelection/index.js.map +1 -1
  754. package/dist/views/CollectionFolder/index.js +84 -268
  755. package/dist/views/CollectionFolder/index.js.map +1 -1
  756. package/dist/views/Edit/Auth/APIKey.js +23 -103
  757. package/dist/views/Edit/Auth/APIKey.js.map +1 -1
  758. package/dist/views/Edit/Auth/index.js +48 -165
  759. package/dist/views/Edit/Auth/index.js.map +1 -1
  760. package/dist/views/Edit/index.js +85 -272
  761. package/dist/views/Edit/index.js.map +1 -1
  762. package/dist/views/List/GroupByHeader/index.js +10 -34
  763. package/dist/views/List/GroupByHeader/index.js.map +1 -1
  764. package/dist/views/List/ListHeader/index.js +18 -103
  765. package/dist/views/List/ListHeader/index.js.map +1 -1
  766. package/dist/views/List/ListSelection/index.js +20 -93
  767. package/dist/views/List/ListSelection/index.js.map +1 -1
  768. package/dist/views/List/index.js +58 -243
  769. package/dist/views/List/index.js.map +1 -1
  770. package/package.json +5 -5
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/elements/HTMLDiff/diff/index.ts"],"sourcesContent":["// Taken and modified from https://github.com/Arman19941113/html-diff/blob/master/packages/html-diff/src/index.ts\n\ninterface MatchedBlock {\n newEnd: number\n newStart: number\n oldEnd: number\n oldStart: number\n size: number\n}\n\ninterface Operation {\n /**\n * Index of entry in tokenized token list\n */\n newEnd: number\n newStart: number\n oldEnd: number\n oldStart: number\n type: 'create' | 'delete' | 'equal' | 'replace'\n}\n\ntype BaseOpType = 'create' | 'delete'\n\ninterface HtmlDiffConfig {\n classNames: {\n createBlock: string\n createInline: string\n deleteBlock: string\n deleteInline: string\n }\n greedyBoundary: number\n greedyMatch: boolean\n minMatchedSize: number\n}\n\nexport interface HtmlDiffOptions {\n /**\n * The classNames for wrapper DOM.\n * Use this to configure your own styles without importing the built-in CSS file\n */\n classNames?: Partial<{\n createBlock?: string\n createInline?: string\n deleteBlock?: string\n deleteInline?: string\n }>\n /**\n * @defaultValue 1000\n */\n greedyBoundary?: number\n /**\n * When greedyMatch is enabled, if the length of the sub-tokens exceeds greedyBoundary,\n * we will use the matched sub-tokens that are sufficiently good, even if they are not optimal, to enhance performance.\n * @defaultValue true\n */\n greedyMatch?: boolean\n /**\n * Determine the minimum threshold for calculating common sub-tokens.\n * You may adjust it to a value larger than 2, but not lower, due to the potential inclusion of HTML tags in the count.\n * @defaultValue 2\n */\n minMatchedSize?: number\n /**\n * Whether to tokenize by character or by word.\n * @defaultValue false\n */\n tokenizeByCharacter?: boolean\n}\n\n// eslint-disable-next-line regexp/no-super-linear-backtracking, regexp/optimal-quantifier-concatenation\nconst htmlStartTagReg = /^<(?<name>[^\\s/>]+)[^>]*>$/\n// eslint-disable-next-line regexp/no-super-linear-backtracking, regexp/optimal-quantifier-concatenation\nconst htmlTagWithNameReg = /^<(?<isEnd>\\/)?(?<name>[^\\s>]+)[^>]*>$/\n\nconst htmlTagReg = /^<[^>]+>/\nconst htmlImgTagReg = /^<img[^>]*>$/\nconst htmlVideoTagReg = /^<video[^>]*>.*?<\\/video>$/ms\n\nexport class HtmlDiff {\n private readonly config: HtmlDiffConfig\n private leastCommonLength: number = Infinity\n private readonly matchedBlockList: MatchedBlock[] = []\n private readonly newTokens: string[] = []\n private readonly oldTokens: string[] = []\n private readonly operationList: Operation[] = []\n private sideBySideContents?: [string, string]\n private unifiedContent?: string\n\n constructor(\n oldHtml: string,\n newHtml: string,\n {\n classNames = {\n createBlock: 'html-diff-create-block-wrapper',\n createInline: 'html-diff-create-inline-wrapper',\n deleteBlock: 'html-diff-delete-block-wrapper',\n deleteInline: 'html-diff-delete-inline-wrapper',\n },\n greedyBoundary = 1000,\n greedyMatch = true,\n minMatchedSize = 2,\n tokenizeByCharacter = false,\n }: HtmlDiffOptions = {},\n ) {\n // init config\n this.config = {\n classNames: {\n createBlock: 'html-diff-create-block-wrapper',\n createInline: 'html-diff-create-inline-wrapper',\n deleteBlock: 'html-diff-delete-block-wrapper',\n deleteInline: 'html-diff-delete-inline-wrapper',\n ...classNames,\n },\n greedyBoundary,\n greedyMatch,\n minMatchedSize,\n }\n // white space is junk\n oldHtml = oldHtml.trim()\n newHtml = newHtml.trim()\n\n // no need to diff\n if (oldHtml === newHtml) {\n this.unifiedContent = oldHtml\n let equalSequence = 0\n // eslint-disable-next-line regexp/no-super-linear-backtracking, regexp/optimal-quantifier-concatenation\n const content = oldHtml.replace(/<([^\\s/>]+)[^>]*>/g, (match: string, name: string) => {\n const tagNameLength = name.length + 1\n return `${match.slice(0, tagNameLength)} data-seq=\"${++equalSequence}\"${match.slice(tagNameLength)}`\n })\n this.sideBySideContents = [content, content]\n return\n }\n\n // step1: split HTML to tokens(atomic tokens)\n const tokenizeFn = tokenizeByCharacter ? this.tokenizeByCharacter : this.tokenizeByWord\n this.oldTokens = tokenizeFn(oldHtml)\n this.newTokens = tokenizeFn(newHtml)\n // step2: find matched blocks\n this.matchedBlockList = this.getMatchedBlockList()\n\n // step3: generate operation list\n this.operationList = this.getOperationList()\n }\n\n // Find the longest matched block between tokens\n private computeBestMatchedBlock(\n oldStart: number,\n oldEnd: number,\n newStart: number,\n newEnd: number,\n ): MatchedBlock | null {\n let bestMatchedBlock = null\n for (let i = oldStart; i < oldEnd; i++) {\n const len = Math.min(oldEnd - i, newEnd - newStart)\n const ret = this.slideBestMatchedBlock(i, newStart, len)\n if (ret && (!bestMatchedBlock || ret.size > bestMatchedBlock.size)) {\n bestMatchedBlock = ret\n if (ret.size > this.leastCommonLength) {\n return bestMatchedBlock\n }\n }\n }\n for (let j = newStart; j < newEnd; j++) {\n const len = Math.min(oldEnd - oldStart, newEnd - j)\n const ret = this.slideBestMatchedBlock(oldStart, j, len)\n if (ret && (!bestMatchedBlock || ret.size > bestMatchedBlock.size)) {\n bestMatchedBlock = ret\n if (ret.size > this.leastCommonLength) {\n return bestMatchedBlock\n }\n }\n }\n return bestMatchedBlock\n }\n\n private computeMatchedBlockList(\n oldStart: number,\n oldEnd: number,\n newStart: number,\n newEnd: number,\n matchedBlockList: MatchedBlock[] = [],\n ): MatchedBlock[] {\n const matchBlock = this.computeBestMatchedBlock(oldStart, oldEnd, newStart, newEnd)\n\n if (!matchBlock) {\n return []\n }\n\n if (oldStart < matchBlock.oldStart && newStart < matchBlock.newStart) {\n this.computeMatchedBlockList(\n oldStart,\n matchBlock.oldStart,\n newStart,\n matchBlock.newStart,\n matchedBlockList,\n )\n }\n matchedBlockList.push(matchBlock)\n if (oldEnd > matchBlock.oldEnd && newEnd > matchBlock.newEnd) {\n this.computeMatchedBlockList(\n matchBlock.oldEnd,\n oldEnd,\n matchBlock.newEnd,\n newEnd,\n matchedBlockList,\n )\n }\n return matchedBlockList\n }\n\n private dressUpBlockTag(type: BaseOpType, token: string): string {\n if (type === 'create') {\n return `<div class=\"${this.config.classNames.createBlock}\">${token}</div>`\n }\n if (type === 'delete') {\n return `<div class=\"${this.config.classNames.deleteBlock}\">${token}</div>`\n }\n return ''\n }\n\n private dressUpDiffContent(type: BaseOpType, tokens: string[]): string {\n const tokensLength = tokens.length\n if (!tokensLength) {\n return ''\n }\n\n let result = ''\n let textStartIndex = 0\n let i = -1\n for (const token of tokens) {\n i++\n\n // If this is true, this HTML should be diffed as well - not just its children\n const isMatchElement = token.includes('data-enable-match=\"true\"')\n const isMatchExplicitlyDisabled = token.includes('data-enable-match=\"false\"')\n const isHtmlTag = !!token.match(htmlTagReg)?.length\n\n if (isMatchExplicitlyDisabled) {\n textStartIndex = i + 1\n result += token\n }\n // this token is html tag\n else if (!isMatchElement && isHtmlTag) {\n // handle text tokens before\n if (i > textStartIndex) {\n result += this.dressUpText(type, tokens.slice(textStartIndex, i))\n }\n // handle this tag\n textStartIndex = i + 1\n if (token.match(htmlVideoTagReg)) {\n result += this.dressUpBlockTag(type, token)\n } /* else if ([htmlImgTagReg].some((item) => token.match(item))) {\n result += this.dressUpInlineTag(type, token)\n }*/ else {\n result += token\n }\n } else if (isMatchElement && isHtmlTag) {\n // handle text tokens before\n if (i > textStartIndex) {\n result += this.dressUpText(type, tokens.slice(textStartIndex, i))\n }\n\n // handle this tag\n textStartIndex = i + 1\n // Add data-match-type to the tag that can be styled\n const newToken = this.dressupMatchEnabledHtmlTag(type, token)\n\n result += newToken\n }\n }\n if (textStartIndex < tokensLength) {\n result += this.dressUpText(type, tokens.slice(textStartIndex))\n }\n return result\n }\n\n private dressUpInlineTag(type: BaseOpType, token: string): string {\n if (type === 'create') {\n return `<span class=\"${this.config.classNames.createInline}\">${token}</span>`\n }\n if (type === 'delete') {\n return `<span class=\"${this.config.classNames.deleteInline}\">${token}</span>`\n }\n return ''\n }\n\n private dressupMatchEnabledHtmlTag(type: BaseOpType, token: string): string {\n // token is a single html tag, e.g. <a data-enable-match=\"true\" href=\"https://2\" rel=undefined target=undefined>\n // add data-match-type to the tag\n const tagName = token.match(htmlStartTagReg)?.groups?.name\n if (!tagName) {\n return token\n }\n const tagNameLength = tagName.length + 1\n const matchType = type === 'create' ? 'create' : 'delete'\n return `${token.slice(0, tagNameLength)} data-match-type=\"${matchType}\"${token.slice(\n tagNameLength,\n token.length,\n )}`\n }\n\n private dressUpText(type: BaseOpType, tokens: string[]): string {\n const text = tokens.join('')\n if (!text.trim()) {\n return ''\n }\n if (type === 'create') {\n return `<span data-match-type=\"create\">${text}</span>`\n }\n if (type === 'delete') {\n return `<span data-match-type=\"delete\">${text}</span>`\n }\n return ''\n }\n\n /**\n * Generates a list of token entries that are matched between the old and new HTML. This list will not\n * include token ranges that differ.\n */\n private getMatchedBlockList(): MatchedBlock[] {\n const n1 = this.oldTokens.length\n const n2 = this.newTokens.length\n\n // 1. sync from start\n let start: MatchedBlock | null = null\n let i = 0\n while (i < n1 && i < n2 && this.oldTokens[i] === this.newTokens[i]) {\n i++\n }\n if (i >= this.config.minMatchedSize) {\n start = {\n newEnd: i,\n newStart: 0,\n oldEnd: i,\n oldStart: 0,\n size: i,\n }\n }\n\n // 2. sync from end\n let end: MatchedBlock | null = null\n let e1 = n1 - 1\n let e2 = n2 - 1\n while (i <= e1 && i <= e2 && this.oldTokens[e1] === this.newTokens[e2]) {\n e1--\n e2--\n }\n const size = n1 - 1 - e1\n if (size >= this.config.minMatchedSize) {\n end = {\n newEnd: n2,\n newStart: e2 + 1,\n oldEnd: n1,\n oldStart: e1 + 1,\n size,\n }\n }\n\n // 3. handle rest\n const oldStart = start ? i : 0\n const oldEnd = end ? e1 + 1 : n1\n const newStart = start ? i : 0\n const newEnd = end ? e2 + 1 : n2\n // optimize for large tokens\n if (this.config.greedyMatch) {\n const commonLength = Math.min(oldEnd - oldStart, newEnd - newStart)\n if (commonLength > this.config.greedyBoundary) {\n this.leastCommonLength = Math.floor(commonLength / 3)\n }\n }\n const ret = this.computeMatchedBlockList(oldStart, oldEnd, newStart, newEnd)\n if (start) {\n ret.unshift(start)\n }\n if (end) {\n ret.push(end)\n }\n\n return ret\n }\n\n // Generate operation list by matchedBlockList\n private getOperationList(): Operation[] {\n const operationList: Operation[] = []\n let walkIndexOld = 0\n let walkIndexNew = 0\n for (const matchedBlock of this.matchedBlockList) {\n const isOldStartIndexMatched = walkIndexOld === matchedBlock.oldStart\n const isNewStartIndexMatched = walkIndexNew === matchedBlock.newStart\n const operationBase = {\n newEnd: matchedBlock.newStart,\n newStart: walkIndexNew,\n oldEnd: matchedBlock.oldStart,\n oldStart: walkIndexOld,\n }\n if (!isOldStartIndexMatched && !isNewStartIndexMatched) {\n operationList.push(Object.assign(operationBase, { type: 'replace' as const }))\n } else if (isOldStartIndexMatched && !isNewStartIndexMatched) {\n operationList.push(Object.assign(operationBase, { type: 'create' as const }))\n } else if (!isOldStartIndexMatched && isNewStartIndexMatched) {\n operationList.push(Object.assign(operationBase, { type: 'delete' as const }))\n }\n\n operationList.push({\n type: 'equal',\n newEnd: matchedBlock.newEnd,\n newStart: matchedBlock.newStart,\n oldEnd: matchedBlock.oldEnd,\n oldStart: matchedBlock.oldStart,\n })\n walkIndexOld = matchedBlock.oldEnd\n walkIndexNew = matchedBlock.newEnd\n }\n // handle the tail content\n const maxIndexOld = this.oldTokens.length\n const maxIndexNew = this.newTokens.length\n const tailOperationBase = {\n newEnd: maxIndexNew,\n newStart: walkIndexNew,\n oldEnd: maxIndexOld,\n oldStart: walkIndexOld,\n }\n const isOldFinished = walkIndexOld === maxIndexOld\n const isNewFinished = walkIndexNew === maxIndexNew\n if (!isOldFinished && !isNewFinished) {\n operationList.push(Object.assign(tailOperationBase, { type: 'replace' as const }))\n } else if (isOldFinished && !isNewFinished) {\n operationList.push(Object.assign(tailOperationBase, { type: 'create' as const }))\n } else if (!isOldFinished && isNewFinished) {\n operationList.push(Object.assign(tailOperationBase, { type: 'delete' as const }))\n }\n return operationList\n }\n\n private slideBestMatchedBlock(addA: number, addB: number, len: number): MatchedBlock | null {\n let maxSize = 0\n let bestMatchedBlock: MatchedBlock | null = null\n\n let continuousSize = 0\n for (let i = 0; i < len; i++) {\n if (this.oldTokens[addA + i] === this.newTokens[addB + i]) {\n continuousSize++\n } else {\n continuousSize = 0\n }\n if (continuousSize > maxSize) {\n maxSize = continuousSize\n bestMatchedBlock = {\n newEnd: addB + i + 1,\n newStart: addB + i - continuousSize + 1,\n oldEnd: addA + i + 1,\n oldStart: addA + i - continuousSize + 1,\n size: continuousSize,\n }\n }\n }\n\n return maxSize >= this.config.minMatchedSize ? bestMatchedBlock : null\n }\n\n /**\n * Convert HTML to tokens at character level, preserving HTML tags as complete tokens\n * @example\n * tokenize(\"<a> Hello World </a>\")\n * [\"<a>\", \" \", \"H\", \"e\", \"l\", \"l\", \"o\", \" \", \"W\", \"o\", \"r\", \"l\", \"d\", \" \", \"</a>\"]\n */\n private tokenizeByCharacter(html: string): string[] {\n // First, identify HTML tags and preserve them as complete tokens\n const tokens: string[] = []\n let currentPos = 0\n\n // Regular expression to match HTML tags (including picture and video tags with content)\n const tagRegex = /<picture[^>]*>.*?<\\/picture>|<video[^>]*>.*?<\\/video>|<[^>]+>/gs\n let match: null | RegExpExecArray\n\n while ((match = tagRegex.exec(html)) !== null) {\n // Add characters before the tag\n const beforeTag = html.substring(currentPos, match.index)\n if (beforeTag) {\n // Split non-tag content into individual characters\n for (const char of beforeTag) {\n tokens.push(char)\n }\n }\n\n // Add the complete tag as a single token\n tokens.push(match[0])\n currentPos = match.index + match[0].length\n }\n\n // Add any remaining characters after the last tag\n const remaining = html.substring(currentPos)\n for (const char of remaining) {\n tokens.push(char)\n }\n\n return tokens\n }\n\n /**\n * convert HTML to tokens\n * @example\n * tokenize(\"<a> Hello World </a>\")\n * [\"<a>\",\" \", \"Hello\", \" \", \"World\", \" \", \"</a>\"]\n */\n private tokenizeByWord(html: string): string[] {\n // atomic token: html tag、continuous numbers or letters、blank spaces、other symbol\n return (\n html.match(\n /<picture[^>]*>.*?<\\/picture>|<video[^>]*>.*?<\\/video>|<[^>]+>|\\w+\\b|\\s+|[^<>\\w]/gs,\n ) || []\n )\n }\n\n public getSideBySideContents(): string[] {\n if (this.sideBySideContents !== undefined) {\n return this.sideBySideContents\n }\n\n let oldHtml = ''\n let newHtml = ''\n let equalSequence = 0\n this.operationList.forEach((operation) => {\n switch (operation.type) {\n case 'create': {\n newHtml += this.dressUpDiffContent(\n 'create',\n this.newTokens.slice(operation.newStart, operation.newEnd),\n )\n break\n }\n\n case 'delete': {\n const deletedTokens = this.oldTokens.slice(operation.oldStart, operation.oldEnd)\n oldHtml += this.dressUpDiffContent('delete', deletedTokens)\n break\n }\n case 'equal': {\n const equalTokens = this.newTokens.slice(operation.newStart, operation.newEnd)\n let equalString = ''\n for (const token of equalTokens) {\n // find start tags and add data-seq to enable sync scroll\n const startTagMatch = token.match(htmlStartTagReg)\n if (startTagMatch) {\n equalSequence += 1\n const tagNameLength = (startTagMatch?.groups?.name?.length ?? 0) + 1\n equalString += `${token.slice(0, tagNameLength)} data-seq=\"${equalSequence}\"${token.slice(tagNameLength)}`\n } else {\n equalString += token\n }\n }\n oldHtml += equalString\n newHtml += equalString\n break\n }\n\n case 'replace': {\n oldHtml += this.dressUpDiffContent(\n 'delete',\n this.oldTokens.slice(operation.oldStart, operation.oldEnd),\n )\n newHtml += this.dressUpDiffContent(\n 'create',\n this.newTokens.slice(operation.newStart, operation.newEnd),\n )\n break\n }\n\n default: {\n console.error('Richtext diff error - invalid operation: ' + String(operation.type))\n }\n }\n })\n\n const result: [string, string] = [oldHtml, newHtml]\n this.sideBySideContents = result\n return result\n }\n\n public getUnifiedContent(): string {\n if (this.unifiedContent !== undefined) {\n return this.unifiedContent\n }\n\n let result = ''\n this.operationList.forEach((operation) => {\n switch (operation.type) {\n case 'create': {\n result += this.dressUpDiffContent(\n 'create',\n this.newTokens.slice(operation.newStart, operation.newEnd),\n )\n break\n }\n\n case 'delete': {\n result += this.dressUpDiffContent(\n 'delete',\n this.oldTokens.slice(operation.oldStart, operation.oldEnd),\n )\n break\n }\n\n case 'equal': {\n for (const token of this.newTokens.slice(operation.newStart, operation.newEnd)) {\n result += token\n }\n break\n }\n\n case 'replace': {\n // handle specially tag replace\n const olds = this.oldTokens.slice(operation.oldStart, operation.oldEnd)\n const news = this.newTokens.slice(operation.newStart, operation.newEnd)\n if (\n olds.length === 1 &&\n news.length === 1 &&\n olds[0]?.match(htmlTagReg) &&\n news[0]?.match(htmlTagReg)\n ) {\n result += news[0]\n break\n }\n\n const deletedTokens: string[] = []\n const createdTokens: string[] = []\n let createIndex = operation.newStart\n for (\n let deleteIndex = operation.oldStart;\n deleteIndex < operation.oldEnd;\n deleteIndex++\n ) {\n const deletedToken = this.oldTokens[deleteIndex]\n\n if (!deletedToken) {\n continue\n }\n\n const matchTagResultD = deletedToken?.match(htmlTagWithNameReg)\n if (matchTagResultD) {\n // handle replaced tag token\n\n // skip special tag\n if ([htmlImgTagReg, htmlVideoTagReg].some((item) => deletedToken?.match(item))) {\n deletedTokens.push(deletedToken)\n continue\n }\n\n // handle normal tag\n result += this.dressUpDiffContent('delete', deletedTokens)\n deletedTokens.splice(0)\n let isTagInNewFind = false\n for (\n let tempCreateIndex = createIndex;\n tempCreateIndex < operation.newEnd;\n tempCreateIndex++\n ) {\n const createdToken = this.newTokens[tempCreateIndex]\n if (!createdToken) {\n continue\n }\n const matchTagResultC = createdToken?.match(htmlTagWithNameReg)\n if (\n matchTagResultC &&\n matchTagResultC.groups?.name === matchTagResultD.groups?.name &&\n matchTagResultC.groups?.isEnd === matchTagResultD.groups?.isEnd\n ) {\n // find first matched tag, but not maybe the expected tag(to optimize)\n isTagInNewFind = true\n result += this.dressUpDiffContent('create', createdTokens)\n result += createdToken\n createdTokens.splice(0)\n createIndex = tempCreateIndex + 1\n break\n } else {\n createdTokens.push(createdToken)\n }\n }\n if (!isTagInNewFind) {\n result += deletedToken\n createdTokens.splice(0)\n }\n } else {\n // token is not a tag\n deletedTokens.push(deletedToken)\n }\n }\n if (createIndex < operation.newEnd) {\n createdTokens.push(...this.newTokens.slice(createIndex, operation.newEnd))\n }\n result += this.dressUpDiffContent('delete', deletedTokens)\n result += this.dressUpDiffContent('create', createdTokens)\n break\n }\n\n default: {\n console.error('Richtext diff error - invalid operation: ' + String(operation.type))\n }\n }\n })\n this.unifiedContent = result\n return result\n }\n}\n"],"names":["htmlStartTagReg","htmlTagWithNameReg","htmlTagReg","htmlImgTagReg","htmlVideoTagReg","HtmlDiff","config","leastCommonLength","Infinity","matchedBlockList","newTokens","oldTokens","operationList","sideBySideContents","unifiedContent","constructor","oldHtml","newHtml","classNames","createBlock","createInline","deleteBlock","deleteInline","greedyBoundary","greedyMatch","minMatchedSize","tokenizeByCharacter","trim","equalSequence","content","replace","match","name","tagNameLength","length","slice","tokenizeFn","tokenizeByWord","getMatchedBlockList","getOperationList","computeBestMatchedBlock","oldStart","oldEnd","newStart","newEnd","bestMatchedBlock","i","len","Math","min","ret","slideBestMatchedBlock","size","j","computeMatchedBlockList","matchBlock","push","dressUpBlockTag","type","token","dressUpDiffContent","tokens","tokensLength","result","textStartIndex","isMatchElement","includes","isMatchExplicitlyDisabled","isHtmlTag","dressUpText","newToken","dressupMatchEnabledHtmlTag","dressUpInlineTag","tagName","groups","matchType","text","join","n1","n2","start","end","e1","e2","commonLength","floor","unshift","walkIndexOld","walkIndexNew","matchedBlock","isOldStartIndexMatched","isNewStartIndexMatched","operationBase","Object","assign","maxIndexOld","maxIndexNew","tailOperationBase","isOldFinished","isNewFinished","addA","addB","maxSize","continuousSize","html","currentPos","tagRegex","exec","beforeTag","substring","index","char","remaining","getSideBySideContents","undefined","forEach","operation","deletedTokens","equalTokens","equalString","startTagMatch","console","error","String","getUnifiedContent","olds","news","createdTokens","createIndex","deleteIndex","deletedToken","matchTagResultD","some","item","splice","isTagInNewFind","tempCreateIndex","createdToken","matchTagResultC","isEnd"],"mappings":"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"}
1
+ {"version":3,"sources":["../../../../src/elements/HTMLDiff/diff/index.ts"],"sourcesContent":["// Taken and modified from https://github.com/Arman19941113/html-diff/blob/master/packages/html-diff/src/index.ts\n\ninterface MatchedBlock {\n newEnd: number\n newStart: number\n oldEnd: number\n oldStart: number\n size: number\n}\n\ninterface Operation {\n /**\n * Index of entry in tokenized token list\n */\n newEnd: number\n newStart: number\n oldEnd: number\n oldStart: number\n type: 'create' | 'delete' | 'equal' | 'replace'\n}\n\ntype BaseOpType = 'create' | 'delete'\n\ninterface HtmlDiffConfig {\n classNames: {\n createBlock: string\n createInline: string\n deleteBlock: string\n deleteInline: string\n }\n greedyBoundary: number\n greedyMatch: boolean\n minMatchedSize: number\n}\n\nexport interface HtmlDiffOptions {\n /**\n * The classNames for wrapper DOM.\n * Use this to configure your own styles without importing the built-in CSS file\n */\n classNames?: Partial<{\n createBlock?: string\n createInline?: string\n deleteBlock?: string\n deleteInline?: string\n }>\n /**\n * @defaultValue 1000\n */\n greedyBoundary?: number\n /**\n * When greedyMatch is enabled, if the length of the sub-tokens exceeds greedyBoundary,\n * we will use the matched sub-tokens that are sufficiently good, even if they are not optimal, to enhance performance.\n * @defaultValue true\n */\n greedyMatch?: boolean\n /**\n * Determine the minimum threshold for calculating common sub-tokens.\n * You may adjust it to a value larger than 2, but not lower, due to the potential inclusion of HTML tags in the count.\n * @defaultValue 2\n */\n minMatchedSize?: number\n /**\n * Whether to tokenize by character or by word.\n * @defaultValue false\n */\n tokenizeByCharacter?: boolean\n}\n\n// eslint-disable-next-line regexp/no-super-linear-backtracking, regexp/optimal-quantifier-concatenation\nconst htmlStartTagReg = /^<(?<name>[^\\s/>]+)[^>]*>$/\n// eslint-disable-next-line regexp/no-super-linear-backtracking, regexp/optimal-quantifier-concatenation\nconst htmlTagWithNameReg = /^<(?<isEnd>\\/)?(?<name>[^\\s>]+)[^>]*>$/\n\nconst htmlTagReg = /^<[^>]+>/\nconst htmlImgTagReg = /^<img[^>]*>$/\nconst htmlVideoTagReg = /^<video[^>]*>.*?<\\/video>$/ms\n\nexport class HtmlDiff {\n private readonly config: HtmlDiffConfig\n private leastCommonLength: number = Infinity\n private readonly matchedBlockList: MatchedBlock[] = []\n private readonly newTokens: string[] = []\n private readonly oldTokens: string[] = []\n private readonly operationList: Operation[] = []\n private sideBySideContents?: [string, string]\n private unifiedContent?: string\n\n constructor(\n oldHtml: string,\n newHtml: string,\n {\n classNames = {\n createBlock: 'html-diff-create-block-wrapper',\n createInline: 'html-diff-create-inline-wrapper',\n deleteBlock: 'html-diff-delete-block-wrapper',\n deleteInline: 'html-diff-delete-inline-wrapper',\n },\n greedyBoundary = 1000,\n greedyMatch = true,\n minMatchedSize = 2,\n tokenizeByCharacter = false,\n }: HtmlDiffOptions = {},\n ) {\n // init config\n this.config = {\n classNames: {\n createBlock: 'html-diff-create-block-wrapper',\n createInline: 'html-diff-create-inline-wrapper',\n deleteBlock: 'html-diff-delete-block-wrapper',\n deleteInline: 'html-diff-delete-inline-wrapper',\n ...classNames,\n },\n greedyBoundary,\n greedyMatch,\n minMatchedSize,\n }\n // white space is junk\n oldHtml = oldHtml.trim()\n newHtml = newHtml.trim()\n\n // no need to diff\n if (oldHtml === newHtml) {\n this.unifiedContent = oldHtml\n let equalSequence = 0\n // eslint-disable-next-line regexp/no-super-linear-backtracking, regexp/optimal-quantifier-concatenation\n const content = oldHtml.replace(/<([^\\s/>]+)[^>]*>/g, (match: string, name: string) => {\n const tagNameLength = name.length + 1\n return `${match.slice(0, tagNameLength)} data-seq=\"${++equalSequence}\"${match.slice(tagNameLength)}`\n })\n this.sideBySideContents = [content, content]\n return\n }\n\n // step1: split HTML to tokens(atomic tokens)\n const tokenizeFn = tokenizeByCharacter ? this.tokenizeByCharacter : this.tokenizeByWord\n this.oldTokens = tokenizeFn(oldHtml)\n this.newTokens = tokenizeFn(newHtml)\n // step2: find matched blocks\n this.matchedBlockList = this.getMatchedBlockList()\n\n // step3: generate operation list\n this.operationList = this.getOperationList()\n }\n\n // Find the longest matched block between tokens\n private computeBestMatchedBlock(\n oldStart: number,\n oldEnd: number,\n newStart: number,\n newEnd: number,\n ): MatchedBlock | null {\n let bestMatchedBlock = null\n for (let i = oldStart; i < oldEnd; i++) {\n const len = Math.min(oldEnd - i, newEnd - newStart)\n const ret = this.slideBestMatchedBlock(i, newStart, len)\n if (ret && (!bestMatchedBlock || ret.size > bestMatchedBlock.size)) {\n bestMatchedBlock = ret\n if (ret.size > this.leastCommonLength) {\n return bestMatchedBlock\n }\n }\n }\n for (let j = newStart; j < newEnd; j++) {\n const len = Math.min(oldEnd - oldStart, newEnd - j)\n const ret = this.slideBestMatchedBlock(oldStart, j, len)\n if (ret && (!bestMatchedBlock || ret.size > bestMatchedBlock.size)) {\n bestMatchedBlock = ret\n if (ret.size > this.leastCommonLength) {\n return bestMatchedBlock\n }\n }\n }\n return bestMatchedBlock\n }\n\n private computeMatchedBlockList(\n oldStart: number,\n oldEnd: number,\n newStart: number,\n newEnd: number,\n matchedBlockList: MatchedBlock[] = [],\n ): MatchedBlock[] {\n const matchBlock = this.computeBestMatchedBlock(oldStart, oldEnd, newStart, newEnd)\n\n if (!matchBlock) {\n return []\n }\n\n if (oldStart < matchBlock.oldStart && newStart < matchBlock.newStart) {\n this.computeMatchedBlockList(\n oldStart,\n matchBlock.oldStart,\n newStart,\n matchBlock.newStart,\n matchedBlockList,\n )\n }\n matchedBlockList.push(matchBlock)\n if (oldEnd > matchBlock.oldEnd && newEnd > matchBlock.newEnd) {\n this.computeMatchedBlockList(\n matchBlock.oldEnd,\n oldEnd,\n matchBlock.newEnd,\n newEnd,\n matchedBlockList,\n )\n }\n return matchedBlockList\n }\n\n private dressUpBlockTag(type: BaseOpType, token: string): string {\n if (type === 'create') {\n return `<div class=\"${this.config.classNames.createBlock}\">${token}</div>`\n }\n if (type === 'delete') {\n return `<div class=\"${this.config.classNames.deleteBlock}\">${token}</div>`\n }\n return ''\n }\n\n private dressUpDiffContent(type: BaseOpType, tokens: string[]): string {\n const tokensLength = tokens.length\n if (!tokensLength) {\n return ''\n }\n\n let result = ''\n let textStartIndex = 0\n let i = -1\n for (const token of tokens) {\n i++\n\n // If this is true, this HTML should be diffed as well - not just its children\n const isMatchElement = token.includes('data-enable-match=\"true\"')\n const isMatchExplicitlyDisabled = token.includes('data-enable-match=\"false\"')\n const isHtmlTag = !!token.match(htmlTagReg)?.length\n\n if (isMatchExplicitlyDisabled) {\n textStartIndex = i + 1\n result += token\n }\n // this token is html tag\n else if (!isMatchElement && isHtmlTag) {\n // handle text tokens before\n if (i > textStartIndex) {\n result += this.dressUpText(type, tokens.slice(textStartIndex, i))\n }\n // handle this tag\n textStartIndex = i + 1\n if (token.match(htmlVideoTagReg)) {\n result += this.dressUpBlockTag(type, token)\n } /* else if ([htmlImgTagReg].some((item) => token.match(item))) {\n result += this.dressUpInlineTag(type, token)\n }*/ else {\n result += token\n }\n } else if (isMatchElement && isHtmlTag) {\n // handle text tokens before\n if (i > textStartIndex) {\n result += this.dressUpText(type, tokens.slice(textStartIndex, i))\n }\n\n // handle this tag\n textStartIndex = i + 1\n // Add data-match-type to the tag that can be styled\n const newToken = this.dressupMatchEnabledHtmlTag(type, token)\n\n result += newToken\n }\n }\n if (textStartIndex < tokensLength) {\n result += this.dressUpText(type, tokens.slice(textStartIndex))\n }\n return result\n }\n\n private dressUpInlineTag(type: BaseOpType, token: string): string {\n if (type === 'create') {\n return `<span class=\"${this.config.classNames.createInline}\">${token}</span>`\n }\n if (type === 'delete') {\n return `<span class=\"${this.config.classNames.deleteInline}\">${token}</span>`\n }\n return ''\n }\n\n private dressupMatchEnabledHtmlTag(type: BaseOpType, token: string): string {\n // token is a single html tag, e.g. <a data-enable-match=\"true\" href=\"https://2\" rel=undefined target=undefined>\n // add data-match-type to the tag\n const tagName = token.match(htmlStartTagReg)?.groups?.name\n if (!tagName) {\n return token\n }\n const tagNameLength = tagName.length + 1\n const matchType = type === 'create' ? 'create' : 'delete'\n return `${token.slice(0, tagNameLength)} data-match-type=\"${matchType}\"${token.slice(\n tagNameLength,\n token.length,\n )}`\n }\n\n private dressUpText(type: BaseOpType, tokens: string[]): string {\n const text = tokens.join('')\n if (!text.trim()) {\n return ''\n }\n if (type === 'create') {\n return `<span data-match-type=\"create\">${text}</span>`\n }\n if (type === 'delete') {\n return `<span data-match-type=\"delete\">${text}</span>`\n }\n return ''\n }\n\n /**\n * Generates a list of token entries that are matched between the old and new HTML. This list will not\n * include token ranges that differ.\n */\n private getMatchedBlockList(): MatchedBlock[] {\n const n1 = this.oldTokens.length\n const n2 = this.newTokens.length\n\n // 1. sync from start\n let start: MatchedBlock | null = null\n let i = 0\n while (i < n1 && i < n2 && this.oldTokens[i] === this.newTokens[i]) {\n i++\n }\n if (i >= this.config.minMatchedSize) {\n start = {\n newEnd: i,\n newStart: 0,\n oldEnd: i,\n oldStart: 0,\n size: i,\n }\n }\n\n // 2. sync from end\n let end: MatchedBlock | null = null\n let e1 = n1 - 1\n let e2 = n2 - 1\n while (i <= e1 && i <= e2 && this.oldTokens[e1] === this.newTokens[e2]) {\n e1--\n e2--\n }\n const size = n1 - 1 - e1\n if (size >= this.config.minMatchedSize) {\n end = {\n newEnd: n2,\n newStart: e2 + 1,\n oldEnd: n1,\n oldStart: e1 + 1,\n size,\n }\n }\n\n // 3. handle rest\n const oldStart = start ? i : 0\n const oldEnd = end ? e1 + 1 : n1\n const newStart = start ? i : 0\n const newEnd = end ? e2 + 1 : n2\n // optimize for large tokens\n if (this.config.greedyMatch) {\n const commonLength = Math.min(oldEnd - oldStart, newEnd - newStart)\n if (commonLength > this.config.greedyBoundary) {\n this.leastCommonLength = Math.floor(commonLength / 3)\n }\n }\n const ret = this.computeMatchedBlockList(oldStart, oldEnd, newStart, newEnd)\n if (start) {\n ret.unshift(start)\n }\n if (end) {\n ret.push(end)\n }\n\n return ret\n }\n\n // Generate operation list by matchedBlockList\n private getOperationList(): Operation[] {\n const operationList: Operation[] = []\n let walkIndexOld = 0\n let walkIndexNew = 0\n for (const matchedBlock of this.matchedBlockList) {\n const isOldStartIndexMatched = walkIndexOld === matchedBlock.oldStart\n const isNewStartIndexMatched = walkIndexNew === matchedBlock.newStart\n const operationBase = {\n newEnd: matchedBlock.newStart,\n newStart: walkIndexNew,\n oldEnd: matchedBlock.oldStart,\n oldStart: walkIndexOld,\n }\n if (!isOldStartIndexMatched && !isNewStartIndexMatched) {\n operationList.push(Object.assign(operationBase, { type: 'replace' as const }))\n } else if (isOldStartIndexMatched && !isNewStartIndexMatched) {\n operationList.push(Object.assign(operationBase, { type: 'create' as const }))\n } else if (!isOldStartIndexMatched && isNewStartIndexMatched) {\n operationList.push(Object.assign(operationBase, { type: 'delete' as const }))\n }\n\n operationList.push({\n type: 'equal',\n newEnd: matchedBlock.newEnd,\n newStart: matchedBlock.newStart,\n oldEnd: matchedBlock.oldEnd,\n oldStart: matchedBlock.oldStart,\n })\n walkIndexOld = matchedBlock.oldEnd\n walkIndexNew = matchedBlock.newEnd\n }\n // handle the tail content\n const maxIndexOld = this.oldTokens.length\n const maxIndexNew = this.newTokens.length\n const tailOperationBase = {\n newEnd: maxIndexNew,\n newStart: walkIndexNew,\n oldEnd: maxIndexOld,\n oldStart: walkIndexOld,\n }\n const isOldFinished = walkIndexOld === maxIndexOld\n const isNewFinished = walkIndexNew === maxIndexNew\n if (!isOldFinished && !isNewFinished) {\n operationList.push(Object.assign(tailOperationBase, { type: 'replace' as const }))\n } else if (isOldFinished && !isNewFinished) {\n operationList.push(Object.assign(tailOperationBase, { type: 'create' as const }))\n } else if (!isOldFinished && isNewFinished) {\n operationList.push(Object.assign(tailOperationBase, { type: 'delete' as const }))\n }\n return operationList\n }\n\n private slideBestMatchedBlock(addA: number, addB: number, len: number): MatchedBlock | null {\n let maxSize = 0\n let bestMatchedBlock: MatchedBlock | null = null\n\n let continuousSize = 0\n for (let i = 0; i < len; i++) {\n if (this.oldTokens[addA + i] === this.newTokens[addB + i]) {\n continuousSize++\n } else {\n continuousSize = 0\n }\n if (continuousSize > maxSize) {\n maxSize = continuousSize\n bestMatchedBlock = {\n newEnd: addB + i + 1,\n newStart: addB + i - continuousSize + 1,\n oldEnd: addA + i + 1,\n oldStart: addA + i - continuousSize + 1,\n size: continuousSize,\n }\n }\n }\n\n return maxSize >= this.config.minMatchedSize ? bestMatchedBlock : null\n }\n\n /**\n * Convert HTML to tokens at character level, preserving HTML tags as complete tokens\n * @example\n * tokenize(\"<a> Hello World </a>\")\n * [\"<a>\", \" \", \"H\", \"e\", \"l\", \"l\", \"o\", \" \", \"W\", \"o\", \"r\", \"l\", \"d\", \" \", \"</a>\"]\n */\n private tokenizeByCharacter(html: string): string[] {\n // First, identify HTML tags and preserve them as complete tokens\n const tokens: string[] = []\n let currentPos = 0\n\n // Regular expression to match HTML tags (including picture and video tags with content)\n const tagRegex = /<picture[^>]*>.*?<\\/picture>|<video[^>]*>.*?<\\/video>|<[^>]+>/gs\n let match: null | RegExpExecArray\n\n while ((match = tagRegex.exec(html)) !== null) {\n // Add characters before the tag\n const beforeTag = html.substring(currentPos, match.index)\n if (beforeTag) {\n // Split non-tag content into individual characters\n for (const char of beforeTag) {\n tokens.push(char)\n }\n }\n\n // Add the complete tag as a single token\n tokens.push(match[0])\n currentPos = match.index + match[0].length\n }\n\n // Add any remaining characters after the last tag\n const remaining = html.substring(currentPos)\n for (const char of remaining) {\n tokens.push(char)\n }\n\n return tokens\n }\n\n /**\n * convert HTML to tokens\n * @example\n * tokenize(\"<a> Hello World </a>\")\n * [\"<a>\",\" \", \"Hello\", \" \", \"World\", \" \", \"</a>\"]\n */\n private tokenizeByWord(html: string): string[] {\n // atomic token: html tag、continuous numbers or letters、blank spaces、other symbol\n return (\n html.match(\n /<picture[^>]*>.*?<\\/picture>|<video[^>]*>.*?<\\/video>|<[^>]+>|\\w+\\b|\\s+|[^<>\\w]/gs,\n ) || []\n )\n }\n\n public getSideBySideContents(): string[] {\n if (this.sideBySideContents !== undefined) {\n return this.sideBySideContents\n }\n\n let oldHtml = ''\n let newHtml = ''\n let equalSequence = 0\n this.operationList.forEach((operation) => {\n switch (operation.type) {\n case 'create': {\n newHtml += this.dressUpDiffContent(\n 'create',\n this.newTokens.slice(operation.newStart, operation.newEnd),\n )\n break\n }\n\n case 'delete': {\n const deletedTokens = this.oldTokens.slice(operation.oldStart, operation.oldEnd)\n oldHtml += this.dressUpDiffContent('delete', deletedTokens)\n break\n }\n case 'equal': {\n const equalTokens = this.newTokens.slice(operation.newStart, operation.newEnd)\n let equalString = ''\n for (const token of equalTokens) {\n // find start tags and add data-seq to enable sync scroll\n const startTagMatch = token.match(htmlStartTagReg)\n if (startTagMatch) {\n equalSequence += 1\n const tagNameLength = (startTagMatch?.groups?.name?.length ?? 0) + 1\n equalString += `${token.slice(0, tagNameLength)} data-seq=\"${equalSequence}\"${token.slice(tagNameLength)}`\n } else {\n equalString += token\n }\n }\n oldHtml += equalString\n newHtml += equalString\n break\n }\n\n case 'replace': {\n oldHtml += this.dressUpDiffContent(\n 'delete',\n this.oldTokens.slice(operation.oldStart, operation.oldEnd),\n )\n newHtml += this.dressUpDiffContent(\n 'create',\n this.newTokens.slice(operation.newStart, operation.newEnd),\n )\n break\n }\n\n default: {\n console.error('Richtext diff error - invalid operation: ' + String(operation.type))\n }\n }\n })\n\n const result: [string, string] = [oldHtml, newHtml]\n this.sideBySideContents = result\n return result\n }\n\n public getUnifiedContent(): string {\n if (this.unifiedContent !== undefined) {\n return this.unifiedContent\n }\n\n let result = ''\n this.operationList.forEach((operation) => {\n switch (operation.type) {\n case 'create': {\n result += this.dressUpDiffContent(\n 'create',\n this.newTokens.slice(operation.newStart, operation.newEnd),\n )\n break\n }\n\n case 'delete': {\n result += this.dressUpDiffContent(\n 'delete',\n this.oldTokens.slice(operation.oldStart, operation.oldEnd),\n )\n break\n }\n\n case 'equal': {\n for (const token of this.newTokens.slice(operation.newStart, operation.newEnd)) {\n result += token\n }\n break\n }\n\n case 'replace': {\n // handle specially tag replace\n const olds = this.oldTokens.slice(operation.oldStart, operation.oldEnd)\n const news = this.newTokens.slice(operation.newStart, operation.newEnd)\n if (\n olds.length === 1 &&\n news.length === 1 &&\n olds[0]?.match(htmlTagReg) &&\n news[0]?.match(htmlTagReg)\n ) {\n result += news[0]\n break\n }\n\n const deletedTokens: string[] = []\n const createdTokens: string[] = []\n let createIndex = operation.newStart\n for (\n let deleteIndex = operation.oldStart;\n deleteIndex < operation.oldEnd;\n deleteIndex++\n ) {\n const deletedToken = this.oldTokens[deleteIndex]\n\n if (!deletedToken) {\n continue\n }\n\n const matchTagResultD = deletedToken?.match(htmlTagWithNameReg)\n if (matchTagResultD) {\n // handle replaced tag token\n\n // skip special tag\n if ([htmlImgTagReg, htmlVideoTagReg].some((item) => deletedToken?.match(item))) {\n deletedTokens.push(deletedToken)\n continue\n }\n\n // handle normal tag\n result += this.dressUpDiffContent('delete', deletedTokens)\n deletedTokens.splice(0)\n let isTagInNewFind = false\n for (\n let tempCreateIndex = createIndex;\n tempCreateIndex < operation.newEnd;\n tempCreateIndex++\n ) {\n const createdToken = this.newTokens[tempCreateIndex]\n if (!createdToken) {\n continue\n }\n const matchTagResultC = createdToken?.match(htmlTagWithNameReg)\n if (\n matchTagResultC &&\n matchTagResultC.groups?.name === matchTagResultD.groups?.name &&\n matchTagResultC.groups?.isEnd === matchTagResultD.groups?.isEnd\n ) {\n // find first matched tag, but not maybe the expected tag(to optimize)\n isTagInNewFind = true\n result += this.dressUpDiffContent('create', createdTokens)\n result += createdToken\n createdTokens.splice(0)\n createIndex = tempCreateIndex + 1\n break\n } else {\n createdTokens.push(createdToken)\n }\n }\n if (!isTagInNewFind) {\n result += deletedToken\n createdTokens.splice(0)\n }\n } else {\n // token is not a tag\n deletedTokens.push(deletedToken)\n }\n }\n if (createIndex < operation.newEnd) {\n createdTokens.push(...this.newTokens.slice(createIndex, operation.newEnd))\n }\n result += this.dressUpDiffContent('delete', deletedTokens)\n result += this.dressUpDiffContent('create', createdTokens)\n break\n }\n\n default: {\n console.error('Richtext diff error - invalid operation: ' + String(operation.type))\n }\n }\n })\n this.unifiedContent = result\n return result\n }\n}\n"],"names":["htmlStartTagReg","htmlTagWithNameReg","htmlTagReg","htmlImgTagReg","htmlVideoTagReg","HtmlDiff","config","leastCommonLength","Infinity","matchedBlockList","newTokens","oldTokens","operationList","sideBySideContents","unifiedContent","oldHtml","newHtml","classNames","createBlock","createInline","deleteBlock","deleteInline","greedyBoundary","greedyMatch","minMatchedSize","tokenizeByCharacter","trim","equalSequence","content","replace","match","name","tagNameLength","length","slice","tokenizeFn","tokenizeByWord","getMatchedBlockList","getOperationList","computeBestMatchedBlock","oldStart","oldEnd","newStart","newEnd","bestMatchedBlock","i","len","Math","min","ret","slideBestMatchedBlock","size","j","computeMatchedBlockList","matchBlock","push","dressUpBlockTag","type","token","dressUpDiffContent","tokens","tokensLength","result","textStartIndex","isMatchElement","includes","isMatchExplicitlyDisabled","isHtmlTag","dressUpText","newToken","dressupMatchEnabledHtmlTag","dressUpInlineTag","tagName","groups","matchType","text","join","n1","n2","start","end","e1","e2","commonLength","floor","unshift","walkIndexOld","walkIndexNew","matchedBlock","isOldStartIndexMatched","isNewStartIndexMatched","operationBase","Object","assign","maxIndexOld","maxIndexNew","tailOperationBase","isOldFinished","isNewFinished","addA","addB","maxSize","continuousSize","html","currentPos","tagRegex","exec","beforeTag","substring","index","char","remaining","getSideBySideContents","undefined","forEach","operation","deletedTokens","equalTokens","equalString","startTagMatch","console","error","String","getUnifiedContent","olds","news","createdTokens","createIndex","deleteIndex","deletedToken","matchTagResultD","some","item","splice","isTagInNewFind","tempCreateIndex","createdToken","matchTagResultC","isEnd"],"mappings":"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"}
@@ -1,5 +1,3 @@
1
- import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
2
- import React from 'react';
3
1
  import { HtmlDiff } from './diff/index.js';
4
2
  import './index.scss';
5
3
  const baseClass = 'html-diff';
@@ -8,26 +6,12 @@ export const getHTMLDiffComponents = ({ fromHTML, toHTML, tokenizeByCharacter })
8
6
  tokenizeByCharacter
9
7
  });
10
8
  const [oldHTML, newHTML] = diffHTML.getSideBySideContents();
11
- const From = oldHTML ? /*#__PURE__*/ _jsxDEV("div", {
12
- className: `${baseClass}__diff-old html-diff`,
13
- dangerouslySetInnerHTML: {
14
- __html: oldHTML
15
- }
16
- }, void 0, false, {
17
- fileName: "src/elements/HTMLDiff/index.tsx",
18
- lineNumber: 27,
19
- columnNumber: 5
20
- }, this) : null;
21
- const To = newHTML ? /*#__PURE__*/ _jsxDEV("div", {
22
- className: `${baseClass}__diff-new html-diff`,
23
- dangerouslySetInnerHTML: {
24
- __html: newHTML
25
- }
26
- }, void 0, false, {
27
- fileName: "src/elements/HTMLDiff/index.tsx",
28
- lineNumber: 34,
29
- columnNumber: 5
30
- }, this) : null;
9
+ const From = oldHTML ? <div className={`${baseClass}__diff-old html-diff`} dangerouslySetInnerHTML={{
10
+ __html: oldHTML
11
+ }}/> : null;
12
+ const To = newHTML ? <div className={`${baseClass}__diff-new html-diff`} dangerouslySetInnerHTML={{
13
+ __html: newHTML
14
+ }}/> : null;
31
15
  return {
32
16
  From,
33
17
  To
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/HTMLDiff/index.tsx"],"sourcesContent":["import React from 'react'\n\nimport { HtmlDiff } from './diff/index.js'\nimport './index.scss'\n\nconst baseClass = 'html-diff'\n\nexport const getHTMLDiffComponents = ({\n fromHTML,\n toHTML,\n tokenizeByCharacter,\n}: {\n fromHTML: string\n toHTML: string\n tokenizeByCharacter?: boolean\n}): {\n From: React.ReactNode\n To: React.ReactNode\n} => {\n const diffHTML = new HtmlDiff(fromHTML, toHTML, {\n tokenizeByCharacter,\n })\n\n const [oldHTML, newHTML] = diffHTML.getSideBySideContents()\n\n const From = oldHTML ? (\n <div\n className={`${baseClass}__diff-old html-diff`}\n dangerouslySetInnerHTML={{ __html: oldHTML }}\n />\n ) : null\n\n const To = newHTML ? (\n <div\n className={`${baseClass}__diff-new html-diff`}\n dangerouslySetInnerHTML={{ __html: newHTML }}\n />\n ) : null\n\n return { From, To }\n}\n"],"names":["React","HtmlDiff","baseClass","getHTMLDiffComponents","fromHTML","toHTML","tokenizeByCharacter","diffHTML","oldHTML","newHTML","getSideBySideContents","From","div","className","dangerouslySetInnerHTML","__html","To"],"mappings":";AAAA,OAAOA,WAAW,QAAO;AAEzB,SAASC,QAAQ,QAAQ,kBAAiB;AAC1C,OAAO,eAAc;AAErB,MAAMC,YAAY;AAElB,OAAO,MAAMC,wBAAwB,CAAC,EACpCC,QAAQ,EACRC,MAAM,EACNC,mBAAmB,EAKpB;IAIC,MAAMC,WAAW,IAAIN,SAASG,UAAUC,QAAQ;QAC9CC;IACF;IAEA,MAAM,CAACE,SAASC,QAAQ,GAAGF,SAASG,qBAAqB;IAEzD,MAAMC,OAAOH,wBACX,QAACI;QACCC,WAAW,GAAGX,UAAU,oBAAoB,CAAC;QAC7CY,yBAAyB;YAAEC,QAAQP;QAAQ;;;;;eAE3C;IAEJ,MAAMQ,KAAKP,wBACT,QAACG;QACCC,WAAW,GAAGX,UAAU,oBAAoB,CAAC;QAC7CY,yBAAyB;YAAEC,QAAQN;QAAQ;;;;;eAE3C;IAEJ,OAAO;QAAEE;QAAMK;IAAG;AACpB,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/HTMLDiff/index.tsx"],"sourcesContent":["import React from 'react'\n\nimport { HtmlDiff } from './diff/index.js'\nimport './index.scss'\n\nconst baseClass = 'html-diff'\n\nexport const getHTMLDiffComponents = ({\n fromHTML,\n toHTML,\n tokenizeByCharacter,\n}: {\n fromHTML: string\n toHTML: string\n tokenizeByCharacter?: boolean\n}): {\n From: React.ReactNode\n To: React.ReactNode\n} => {\n const diffHTML = new HtmlDiff(fromHTML, toHTML, {\n tokenizeByCharacter,\n })\n\n const [oldHTML, newHTML] = diffHTML.getSideBySideContents()\n\n const From = oldHTML ? (\n <div\n className={`${baseClass}__diff-old html-diff`}\n dangerouslySetInnerHTML={{ __html: oldHTML }}\n />\n ) : null\n\n const To = newHTML ? (\n <div\n className={`${baseClass}__diff-new html-diff`}\n dangerouslySetInnerHTML={{ __html: newHTML }}\n />\n ) : null\n\n return { From, To }\n}\n"],"names":["HtmlDiff","baseClass","getHTMLDiffComponents","fromHTML","toHTML","tokenizeByCharacter","diffHTML","oldHTML","newHTML","getSideBySideContents","From","div","className","dangerouslySetInnerHTML","__html","To"],"mappings":"AAEA,SAASA,QAAQ,QAAQ,kBAAiB;AAC1C,OAAO,eAAc;AAErB,MAAMC,YAAY;AAElB,OAAO,MAAMC,wBAAwB,CAAC,EACpCC,QAAQ,EACRC,MAAM,EACNC,mBAAmB,EAKpB;IAIC,MAAMC,WAAW,IAAIN,SAASG,UAAUC,QAAQ;QAC9CC;IACF;IAEA,MAAM,CAACE,SAASC,QAAQ,GAAGF,SAASG,qBAAqB;IAEzD,MAAMC,OAAOH,WACVI,IACCC,WAAW,GAAGX,UAAU,oBAAoB,CAAC,EAC7CY,yBAAyB;QAAEC,QAAQP;IAAQ,OAE3C;IAEJ,MAAMQ,KAAKP,WACRG,IACCC,WAAW,GAAGX,UAAU,oBAAoB,CAAC,EAC7CY,yBAAyB;QAAEC,QAAQN;IAAQ,OAE3C;IAEJ,OAAO;QAAEE;QAAMK;IAAG;AACpB,EAAC"}
@@ -1,6 +1,4 @@
1
1
  'use client';
2
- import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
3
- import React from 'react';
4
2
  import { ChevronIcon } from '../../icons/Chevron/index.js';
5
3
  import { CloseMenuIcon } from '../../icons/CloseMenu/index.js';
6
4
  import { MenuIcon } from '../../icons/Menu/index.js';
@@ -10,52 +8,15 @@ const baseClass = 'hamburger';
10
8
  export const Hamburger = (props)=>{
11
9
  const { t } = useTranslation();
12
10
  const { closeIcon = 'x', isActive = false } = props;
13
- return /*#__PURE__*/ _jsxDEV("div", {
14
- className: baseClass,
15
- children: [
16
- !isActive && /*#__PURE__*/ _jsxDEV("div", {
17
- "aria-label": t('general:open'),
18
- className: `${baseClass}__open-icon`,
19
- title: t('general:open'),
20
- children: /*#__PURE__*/ _jsxDEV(MenuIcon, {}, void 0, false, {
21
- fileName: "src/elements/Hamburger/index.tsx",
22
- lineNumber: 27,
23
- columnNumber: 11
24
- }, this)
25
- }, void 0, false, {
26
- fileName: "src/elements/Hamburger/index.tsx",
27
- lineNumber: 22,
28
- columnNumber: 9
29
- }, this),
30
- isActive && /*#__PURE__*/ _jsxDEV("div", {
31
- "aria-label": closeIcon === 'collapse' ? t('general:collapse') : t('general:close'),
32
- className: `${baseClass}__close-icon`,
33
- title: closeIcon === 'collapse' ? t('general:collapse') : t('general:close'),
34
- children: [
35
- closeIcon === 'x' && /*#__PURE__*/ _jsxDEV(CloseMenuIcon, {}, void 0, false, {
36
- fileName: "src/elements/Hamburger/index.tsx",
37
- lineNumber: 36,
38
- columnNumber: 33
39
- }, this),
40
- closeIcon === 'collapse' && /*#__PURE__*/ _jsxDEV(ChevronIcon, {
41
- direction: "left"
42
- }, void 0, false, {
43
- fileName: "src/elements/Hamburger/index.tsx",
44
- lineNumber: 37,
45
- columnNumber: 40
46
- }, this)
47
- ]
48
- }, void 0, true, {
49
- fileName: "src/elements/Hamburger/index.tsx",
50
- lineNumber: 31,
51
- columnNumber: 9
52
- }, this)
53
- ]
54
- }, void 0, true, {
55
- fileName: "src/elements/Hamburger/index.tsx",
56
- lineNumber: 20,
57
- columnNumber: 5
58
- }, this);
11
+ return <div className={baseClass}>
12
+ {!isActive && <div aria-label={t('general:open')} className={`${baseClass}__open-icon`} title={t('general:open')}>
13
+ <MenuIcon/>
14
+ </div>}
15
+ {isActive && <div aria-label={closeIcon === 'collapse' ? t('general:collapse') : t('general:close')} className={`${baseClass}__close-icon`} title={closeIcon === 'collapse' ? t('general:collapse') : t('general:close')}>
16
+ {closeIcon === 'x' && <CloseMenuIcon/>}
17
+ {closeIcon === 'collapse' && <ChevronIcon direction="left"/>}
18
+ </div>}
19
+ </div>;
59
20
  };
60
21
 
61
22
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/Hamburger/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { CloseMenuIcon } from '../../icons/CloseMenu/index.js'\nimport { MenuIcon } from '../../icons/Menu/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'hamburger'\n\nexport const Hamburger: React.FC<{\n readonly closeIcon?: 'collapse' | 'x'\n readonly isActive?: boolean\n}> = (props) => {\n const { t } = useTranslation()\n const { closeIcon = 'x', isActive = false } = props\n\n return (\n <div className={baseClass}>\n {!isActive && (\n <div\n aria-label={t('general:open')}\n className={`${baseClass}__open-icon`}\n title={t('general:open')}\n >\n <MenuIcon />\n </div>\n )}\n {isActive && (\n <div\n aria-label={closeIcon === 'collapse' ? t('general:collapse') : t('general:close')}\n className={`${baseClass}__close-icon`}\n title={closeIcon === 'collapse' ? t('general:collapse') : t('general:close')}\n >\n {closeIcon === 'x' && <CloseMenuIcon />}\n {closeIcon === 'collapse' && <ChevronIcon direction=\"left\" />}\n </div>\n )}\n </div>\n )\n}\n"],"names":["React","ChevronIcon","CloseMenuIcon","MenuIcon","useTranslation","baseClass","Hamburger","props","t","closeIcon","isActive","div","className","aria-label","title","direction"],"mappings":"AAAA;;AACA,OAAOA,WAAW,QAAO;AAEzB,SAASC,WAAW,QAAQ,+BAA8B;AAC1D,SAASC,aAAa,QAAQ,iCAAgC;AAC9D,SAASC,QAAQ,QAAQ,4BAA2B;AACpD,SAASC,cAAc,QAAQ,uCAAsC;AACrE,OAAO,eAAc;AAErB,MAAMC,YAAY;AAElB,OAAO,MAAMC,YAGR,CAACC;IACJ,MAAM,EAAEC,CAAC,EAAE,GAAGJ;IACd,MAAM,EAAEK,YAAY,GAAG,EAAEC,WAAW,KAAK,EAAE,GAAGH;IAE9C,qBACE,QAACI;QAAIC,WAAWP;;YACb,CAACK,0BACA,QAACC;gBACCE,cAAYL,EAAE;gBACdI,WAAW,GAAGP,UAAU,WAAW,CAAC;gBACpCS,OAAON,EAAE;0BAET,cAAA,QAACL;;;;;;;;;;YAGJO,0BACC,QAACC;gBACCE,cAAYJ,cAAc,aAAaD,EAAE,sBAAsBA,EAAE;gBACjEI,WAAW,GAAGP,UAAU,YAAY,CAAC;gBACrCS,OAAOL,cAAc,aAAaD,EAAE,sBAAsBA,EAAE;;oBAE3DC,cAAc,qBAAO,QAACP;;;;;oBACtBO,cAAc,4BAAc,QAACR;wBAAYc,WAAU;;;;;;;;;;;;;;;;;;AAK9D,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/Hamburger/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport { ChevronIcon } from '../../icons/Chevron/index.js'\nimport { CloseMenuIcon } from '../../icons/CloseMenu/index.js'\nimport { MenuIcon } from '../../icons/Menu/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport './index.scss'\n\nconst baseClass = 'hamburger'\n\nexport const Hamburger: React.FC<{\n readonly closeIcon?: 'collapse' | 'x'\n readonly isActive?: boolean\n}> = (props) => {\n const { t } = useTranslation()\n const { closeIcon = 'x', isActive = false } = props\n\n return (\n <div className={baseClass}>\n {!isActive && (\n <div\n aria-label={t('general:open')}\n className={`${baseClass}__open-icon`}\n title={t('general:open')}\n >\n <MenuIcon />\n </div>\n )}\n {isActive && (\n <div\n aria-label={closeIcon === 'collapse' ? t('general:collapse') : t('general:close')}\n className={`${baseClass}__close-icon`}\n title={closeIcon === 'collapse' ? t('general:collapse') : t('general:close')}\n >\n {closeIcon === 'x' && <CloseMenuIcon />}\n {closeIcon === 'collapse' && <ChevronIcon direction=\"left\" />}\n </div>\n )}\n </div>\n )\n}\n"],"names":["ChevronIcon","CloseMenuIcon","MenuIcon","useTranslation","baseClass","Hamburger","props","t","closeIcon","isActive","div","className","aria-label","title","direction"],"mappings":"AAAA;AAGA,SAASA,WAAW,QAAQ,+BAA8B;AAC1D,SAASC,aAAa,QAAQ,iCAAgC;AAC9D,SAASC,QAAQ,QAAQ,4BAA2B;AACpD,SAASC,cAAc,QAAQ,uCAAsC;AACrE,OAAO,eAAc;AAErB,MAAMC,YAAY;AAElB,OAAO,MAAMC,YAGR,CAACC;IACJ,MAAM,EAAEC,CAAC,EAAE,GAAGJ;IACd,MAAM,EAAEK,YAAY,GAAG,EAAEC,WAAW,KAAK,EAAE,GAAGH;IAE9C,QACGI,IAAIC,WAAWP,WAAW;MACzB,CAAC,CAACK,aACCC,IACCE,YAAYL,EAAE,iBACdI,WAAW,GAAGP,UAAU,WAAW,CAAC,EACpCS,OAAON,EAAE,iBACV;UACC,CAACL,UAAW;QACd,EAAEQ,KACF;MACF,CAACD,aACEC,IACCE,YAAYJ,cAAc,aAAaD,EAAE,sBAAsBA,EAAE,kBACjEI,WAAW,GAAGP,UAAU,YAAY,CAAC,EACrCS,OAAOL,cAAc,aAAaD,EAAE,sBAAsBA,EAAE,kBAC7D;UACC,CAACC,cAAc,QAAQP,gBAAiB;UACxC,CAACO,cAAc,eAAeR,YAAYc,UAAU,SAAU;QAChE,EAAEJ,KACF;IACJ,EAAEA;AAEN,EAAC"}
@@ -1,6 +1,4 @@
1
1
  'use client';
2
- import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
3
- import React from 'react';
4
2
  import './index.scss';
5
3
  import { Link } from '../../elements/Link/index.js';
6
4
  import { useConfig } from '../../providers/Config/index.js';
@@ -17,29 +15,14 @@ export const IDLabel = ({ id, className, prefix = 'ID:' })=>{
17
15
  adminRoute,
18
16
  path: `/${collectionSlug ? `collections/${collectionSlug}` : `globals/${globalSlug}`}/${id}`
19
17
  });
20
- return /*#__PURE__*/ _jsxDEV("div", {
21
- className: [
22
- baseClass,
23
- className
24
- ].filter(Boolean).join(' '),
25
- title: id,
26
- children: [
27
- prefix,
28
- " ",
29
- drawerDepth > 1 ? /*#__PURE__*/ _jsxDEV(Link, {
30
- href: docPath,
31
- children: sanitizeID(id)
32
- }, void 0, false, {
33
- fileName: "src/elements/IDLabel/index.tsx",
34
- lineNumber: 37,
35
- columnNumber: 26
36
- }, this) : sanitizeID(id)
37
- ]
38
- }, void 0, true, {
39
- fileName: "src/elements/IDLabel/index.tsx",
40
- lineNumber: 34,
41
- columnNumber: 5
42
- }, this);
18
+ return <div className={[
19
+ baseClass,
20
+ className
21
+ ].filter(Boolean).join(' ')} title={id}>
22
+ {prefix}
23
+ &nbsp;
24
+ {drawerDepth > 1 ? <Link href={docPath}>{sanitizeID(id)}</Link> : sanitizeID(id)}
25
+ </div>;
43
26
  };
44
27
 
45
28
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/IDLabel/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport './index.scss'\nimport { Link } from '../../elements/Link/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { sanitizeID } from '../../utilities/sanitizeID.js'\nimport { useDrawerDepth } from '../Drawer/index.js'\n\nconst baseClass = 'id-label'\n\nexport const IDLabel: React.FC<{ className?: string; id: string; prefix?: string }> = ({\n id,\n className,\n prefix = 'ID:',\n}) => {\n const {\n config: {\n routes: { admin: adminRoute },\n },\n } = useConfig()\n\n const { collectionSlug, globalSlug } = useDocumentInfo()\n const drawerDepth = useDrawerDepth()\n\n const docPath = formatAdminURL({\n adminRoute,\n path: `/${collectionSlug ? `collections/${collectionSlug}` : `globals/${globalSlug}`}/${id}`,\n })\n\n return (\n <div className={[baseClass, className].filter(Boolean).join(' ')} title={id}>\n {prefix}\n &nbsp;\n {drawerDepth > 1 ? <Link href={docPath}>{sanitizeID(id)}</Link> : sanitizeID(id)}\n </div>\n )\n}\n"],"names":["React","Link","useConfig","useDocumentInfo","formatAdminURL","sanitizeID","useDrawerDepth","baseClass","IDLabel","id","className","prefix","config","routes","admin","adminRoute","collectionSlug","globalSlug","drawerDepth","docPath","path","div","filter","Boolean","join","title","href"],"mappings":"AAAA;;AACA,OAAOA,WAAW,QAAO;AAEzB,OAAO,eAAc;AACrB,SAASC,IAAI,QAAQ,+BAA8B;AACnD,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,cAAc,QAAQ,oCAAmC;AAClE,SAASC,UAAU,QAAQ,gCAA+B;AAC1D,SAASC,cAAc,QAAQ,qBAAoB;AAEnD,MAAMC,YAAY;AAElB,OAAO,MAAMC,UAAyE,CAAC,EACrFC,EAAE,EACFC,SAAS,EACTC,SAAS,KAAK,EACf;IACC,MAAM,EACJC,QAAQ,EACNC,QAAQ,EAAEC,OAAOC,UAAU,EAAE,EAC9B,EACF,GAAGb;IAEJ,MAAM,EAAEc,cAAc,EAAEC,UAAU,EAAE,GAAGd;IACvC,MAAMe,cAAcZ;IAEpB,MAAMa,UAAUf,eAAe;QAC7BW;QACAK,MAAM,CAAC,CAAC,EAAEJ,iBAAiB,CAAC,YAAY,EAAEA,gBAAgB,GAAG,CAAC,QAAQ,EAAEC,YAAY,CAAC,CAAC,EAAER,IAAI;IAC9F;IAEA,qBACE,QAACY;QAAIX,WAAW;YAACH;YAAWG;SAAU,CAACY,MAAM,CAACC,SAASC,IAAI,CAAC;QAAMC,OAAOhB;;YACtEE;YAAO;YAEPO,cAAc,kBAAI,QAACjB;gBAAKyB,MAAMP;0BAAUd,WAAWI;;;;;uBAAcJ,WAAWI;;;;;;;AAGnF,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/IDLabel/index.tsx"],"sourcesContent":["'use client'\nimport React from 'react'\n\nimport './index.scss'\nimport { Link } from '../../elements/Link/index.js'\nimport { useConfig } from '../../providers/Config/index.js'\nimport { useDocumentInfo } from '../../providers/DocumentInfo/index.js'\nimport { formatAdminURL } from '../../utilities/formatAdminURL.js'\nimport { sanitizeID } from '../../utilities/sanitizeID.js'\nimport { useDrawerDepth } from '../Drawer/index.js'\n\nconst baseClass = 'id-label'\n\nexport const IDLabel: React.FC<{ className?: string; id: string; prefix?: string }> = ({\n id,\n className,\n prefix = 'ID:',\n}) => {\n const {\n config: {\n routes: { admin: adminRoute },\n },\n } = useConfig()\n\n const { collectionSlug, globalSlug } = useDocumentInfo()\n const drawerDepth = useDrawerDepth()\n\n const docPath = formatAdminURL({\n adminRoute,\n path: `/${collectionSlug ? `collections/${collectionSlug}` : `globals/${globalSlug}`}/${id}`,\n })\n\n return (\n <div className={[baseClass, className].filter(Boolean).join(' ')} title={id}>\n {prefix}\n &nbsp;\n {drawerDepth > 1 ? <Link href={docPath}>{sanitizeID(id)}</Link> : sanitizeID(id)}\n </div>\n )\n}\n"],"names":["Link","useConfig","useDocumentInfo","formatAdminURL","sanitizeID","useDrawerDepth","baseClass","IDLabel","id","className","prefix","config","routes","admin","adminRoute","collectionSlug","globalSlug","drawerDepth","docPath","path","div","filter","Boolean","join","title","href"],"mappings":"AAAA;AAGA,OAAO,eAAc;AACrB,SAASA,IAAI,QAAQ,+BAA8B;AACnD,SAASC,SAAS,QAAQ,kCAAiC;AAC3D,SAASC,eAAe,QAAQ,wCAAuC;AACvE,SAASC,cAAc,QAAQ,oCAAmC;AAClE,SAASC,UAAU,QAAQ,gCAA+B;AAC1D,SAASC,cAAc,QAAQ,qBAAoB;AAEnD,MAAMC,YAAY;AAElB,OAAO,MAAMC,UAAyE,CAAC,EACrFC,EAAE,EACFC,SAAS,EACTC,SAAS,KAAK,EACf;IACC,MAAM,EACJC,QAAQ,EACNC,QAAQ,EAAEC,OAAOC,UAAU,EAAE,EAC9B,EACF,GAAGb;IAEJ,MAAM,EAAEc,cAAc,EAAEC,UAAU,EAAE,GAAGd;IACvC,MAAMe,cAAcZ;IAEpB,MAAMa,UAAUf,eAAe;QAC7BW;QACAK,MAAM,CAAC,CAAC,EAAEJ,iBAAiB,CAAC,YAAY,EAAEA,gBAAgB,GAAG,CAAC,QAAQ,EAAEC,YAAY,CAAC,CAAC,EAAER,IAAI;IAC9F;IAEA,QACGY,IAAIX,WAAW;QAACH;QAAWG;KAAU,CAACY,MAAM,CAACC,SAASC,IAAI,CAAC,MAAMC,OAAOhB,IAAI;MAC3E,CAACE,OAAO;;MAER,CAACO,cAAc,KAAKjB,KAAKyB,MAAMP,UAAUd,WAAWI,MAAMR,QAAQI,WAAWI,IAAI;IACnF,EAAEY;AAEN,EAAC"}
@@ -1,5 +1,4 @@
1
1
  'use client';
2
- import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
3
2
  import React, { useCallback } from 'react';
4
3
  import { useForm, useFormModified } from '../../forms/Form/index.js';
5
4
  import { useAuth } from '../../providers/Auth/index.js';
@@ -57,31 +56,11 @@ export const LeaveWithoutSaving = ({ disablePreventLeave = false, onConfirm, onP
57
56
  }, [
58
57
  onConfirm
59
58
  ]);
60
- return /*#__PURE__*/ _jsxDEV(LeaveWithoutSavingModal, {
61
- modalSlug: modalSlug,
62
- onCancel: onCancel,
63
- onConfirm: handleConfirm
64
- }, void 0, false, {
65
- fileName: "src/elements/LeaveWithoutSaving/index.tsx",
66
- lineNumber: 66,
67
- columnNumber: 5
68
- }, this);
59
+ return <LeaveWithoutSavingModal modalSlug={modalSlug} onCancel={onCancel} onConfirm={handleConfirm}/>;
69
60
  };
70
61
  export const LeaveWithoutSavingModal = ({ modalSlug, onCancel, onConfirm })=>{
71
62
  const { t } = useTranslation();
72
- return /*#__PURE__*/ _jsxDEV(ConfirmationModal, {
73
- body: t('general:changesNotSaved'),
74
- cancelLabel: t('general:stayOnThisPage'),
75
- confirmLabel: t('general:leaveAnyway'),
76
- heading: t('general:leaveWithoutSaving'),
77
- modalSlug: modalSlug,
78
- onCancel: onCancel,
79
- onConfirm: onConfirm
80
- }, void 0, false, {
81
- fileName: "src/elements/LeaveWithoutSaving/index.tsx",
82
- lineNumber: 82,
83
- columnNumber: 5
84
- }, this);
63
+ return <ConfirmationModal body={t('general:changesNotSaved')} cancelLabel={t('general:stayOnThisPage')} confirmLabel={t('general:leaveAnyway')} heading={t('general:leaveWithoutSaving')} modalSlug={modalSlug} onCancel={onCancel} onConfirm={onConfirm}/>;
85
64
  };
86
65
 
87
66
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/LeaveWithoutSaving/index.tsx"],"sourcesContent":["'use client'\nimport React, { useCallback } from 'react'\n\nimport type { OnCancel } from '../ConfirmationModal/index.js'\n\nimport { useForm, useFormModified } from '../../forms/Form/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { useModal } from '../Modal/index.js'\nimport { usePreventLeave } from './usePreventLeave.js'\n\ntype LeaveWithoutSavingProps = {\n disablePreventLeave?: boolean\n modalSlug?: string\n onConfirm?: () => Promise<void> | void\n onPrevent?: (nextHref: null | string) => void\n}\n\nconst leaveWithoutSavingModalSlug = 'leave-without-saving'\n\nexport const LeaveWithoutSaving: React.FC<LeaveWithoutSavingProps> = ({\n disablePreventLeave = false,\n onConfirm,\n onPrevent,\n}) => {\n const modalSlug = leaveWithoutSavingModalSlug\n const { closeModal, openModal } = useModal()\n const modified = useFormModified()\n const { isValid } = useForm()\n const { user } = useAuth()\n const [hasAccepted, setHasAccepted] = React.useState(false)\n\n const prevent = !disablePreventLeave && Boolean((modified || !isValid) && user)\n\n const handlePrevent = useCallback(() => {\n const activeHref = (document.activeElement as HTMLAnchorElement)?.href || null\n if (onPrevent) {\n onPrevent(activeHref)\n }\n openModal(modalSlug)\n }, [openModal, onPrevent, modalSlug])\n\n const handleAccept = useCallback(() => {\n closeModal(modalSlug)\n }, [closeModal, modalSlug])\n\n usePreventLeave({ hasAccepted, onAccept: handleAccept, onPrevent: handlePrevent, prevent })\n\n const onCancel: OnCancel = useCallback(() => {\n closeModal(modalSlug)\n }, [closeModal, modalSlug])\n\n const handleConfirm = useCallback(async () => {\n if (onConfirm) {\n try {\n await onConfirm()\n } catch (err) {\n console.error('Error in LeaveWithoutSaving onConfirm:', err)\n }\n }\n setHasAccepted(true)\n }, [onConfirm])\n\n return (\n <LeaveWithoutSavingModal modalSlug={modalSlug} onCancel={onCancel} onConfirm={handleConfirm} />\n )\n}\n\nexport const LeaveWithoutSavingModal = ({\n modalSlug,\n onCancel,\n onConfirm,\n}: {\n modalSlug: string\n onCancel?: OnCancel\n onConfirm: () => Promise<void> | void\n}) => {\n const { t } = useTranslation()\n\n return (\n <ConfirmationModal\n body={t('general:changesNotSaved')}\n cancelLabel={t('general:stayOnThisPage')}\n confirmLabel={t('general:leaveAnyway')}\n heading={t('general:leaveWithoutSaving')}\n modalSlug={modalSlug}\n onCancel={onCancel}\n onConfirm={onConfirm}\n />\n )\n}\n"],"names":["React","useCallback","useForm","useFormModified","useAuth","useTranslation","ConfirmationModal","useModal","usePreventLeave","leaveWithoutSavingModalSlug","LeaveWithoutSaving","disablePreventLeave","onConfirm","onPrevent","modalSlug","closeModal","openModal","modified","isValid","user","hasAccepted","setHasAccepted","useState","prevent","Boolean","handlePrevent","activeHref","document","activeElement","href","handleAccept","onAccept","onCancel","handleConfirm","err","console","error","LeaveWithoutSavingModal","t","body","cancelLabel","confirmLabel","heading"],"mappings":"AAAA;;AACA,OAAOA,SAASC,WAAW,QAAQ,QAAO;AAI1C,SAASC,OAAO,EAAEC,eAAe,QAAQ,4BAA2B;AACpE,SAASC,OAAO,QAAQ,gCAA+B;AACvD,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,iBAAiB,QAAQ,gCAA+B;AACjE,SAASC,QAAQ,QAAQ,oBAAmB;AAC5C,SAASC,eAAe,QAAQ,uBAAsB;AAStD,MAAMC,8BAA8B;AAEpC,OAAO,MAAMC,qBAAwD,CAAC,EACpEC,sBAAsB,KAAK,EAC3BC,SAAS,EACTC,SAAS,EACV;IACC,MAAMC,YAAYL;IAClB,MAAM,EAAEM,UAAU,EAAEC,SAAS,EAAE,GAAGT;IAClC,MAAMU,WAAWd;IACjB,MAAM,EAAEe,OAAO,EAAE,GAAGhB;IACpB,MAAM,EAAEiB,IAAI,EAAE,GAAGf;IACjB,MAAM,CAACgB,aAAaC,eAAe,GAAGrB,MAAMsB,QAAQ,CAAC;IAErD,MAAMC,UAAU,CAACZ,uBAAuBa,QAAQ,AAACP,CAAAA,YAAY,CAACC,OAAM,KAAMC;IAE1E,MAAMM,gBAAgBxB,YAAY;QAChC,MAAMyB,aAAa,AAACC,SAASC,aAAa,EAAwBC,QAAQ;QAC1E,IAAIhB,WAAW;YACbA,UAAUa;QACZ;QACAV,UAAUF;IACZ,GAAG;QAACE;QAAWH;QAAWC;KAAU;IAEpC,MAAMgB,eAAe7B,YAAY;QAC/Bc,WAAWD;IACb,GAAG;QAACC;QAAYD;KAAU;IAE1BN,gBAAgB;QAAEY;QAAaW,UAAUD;QAAcjB,WAAWY;QAAeF;IAAQ;IAEzF,MAAMS,WAAqB/B,YAAY;QACrCc,WAAWD;IACb,GAAG;QAACC;QAAYD;KAAU;IAE1B,MAAMmB,gBAAgBhC,YAAY;QAChC,IAAIW,WAAW;YACb,IAAI;gBACF,MAAMA;YACR,EAAE,OAAOsB,KAAK;gBACZC,QAAQC,KAAK,CAAC,0CAA0CF;YAC1D;QACF;QACAb,eAAe;IACjB,GAAG;QAACT;KAAU;IAEd,qBACE,QAACyB;QAAwBvB,WAAWA;QAAWkB,UAAUA;QAAUpB,WAAWqB;;;;;;AAElF,EAAC;AAED,OAAO,MAAMI,0BAA0B,CAAC,EACtCvB,SAAS,EACTkB,QAAQ,EACRpB,SAAS,EAKV;IACC,MAAM,EAAE0B,CAAC,EAAE,GAAGjC;IAEd,qBACE,QAACC;QACCiC,MAAMD,EAAE;QACRE,aAAaF,EAAE;QACfG,cAAcH,EAAE;QAChBI,SAASJ,EAAE;QACXxB,WAAWA;QACXkB,UAAUA;QACVpB,WAAWA;;;;;;AAGjB,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/LeaveWithoutSaving/index.tsx"],"sourcesContent":["'use client'\nimport React, { useCallback } from 'react'\n\nimport type { OnCancel } from '../ConfirmationModal/index.js'\n\nimport { useForm, useFormModified } from '../../forms/Form/index.js'\nimport { useAuth } from '../../providers/Auth/index.js'\nimport { useTranslation } from '../../providers/Translation/index.js'\nimport { ConfirmationModal } from '../ConfirmationModal/index.js'\nimport { useModal } from '../Modal/index.js'\nimport { usePreventLeave } from './usePreventLeave.js'\n\ntype LeaveWithoutSavingProps = {\n disablePreventLeave?: boolean\n modalSlug?: string\n onConfirm?: () => Promise<void> | void\n onPrevent?: (nextHref: null | string) => void\n}\n\nconst leaveWithoutSavingModalSlug = 'leave-without-saving'\n\nexport const LeaveWithoutSaving: React.FC<LeaveWithoutSavingProps> = ({\n disablePreventLeave = false,\n onConfirm,\n onPrevent,\n}) => {\n const modalSlug = leaveWithoutSavingModalSlug\n const { closeModal, openModal } = useModal()\n const modified = useFormModified()\n const { isValid } = useForm()\n const { user } = useAuth()\n const [hasAccepted, setHasAccepted] = React.useState(false)\n\n const prevent = !disablePreventLeave && Boolean((modified || !isValid) && user)\n\n const handlePrevent = useCallback(() => {\n const activeHref = (document.activeElement as HTMLAnchorElement)?.href || null\n if (onPrevent) {\n onPrevent(activeHref)\n }\n openModal(modalSlug)\n }, [openModal, onPrevent, modalSlug])\n\n const handleAccept = useCallback(() => {\n closeModal(modalSlug)\n }, [closeModal, modalSlug])\n\n usePreventLeave({ hasAccepted, onAccept: handleAccept, onPrevent: handlePrevent, prevent })\n\n const onCancel: OnCancel = useCallback(() => {\n closeModal(modalSlug)\n }, [closeModal, modalSlug])\n\n const handleConfirm = useCallback(async () => {\n if (onConfirm) {\n try {\n await onConfirm()\n } catch (err) {\n console.error('Error in LeaveWithoutSaving onConfirm:', err)\n }\n }\n setHasAccepted(true)\n }, [onConfirm])\n\n return (\n <LeaveWithoutSavingModal modalSlug={modalSlug} onCancel={onCancel} onConfirm={handleConfirm} />\n )\n}\n\nexport const LeaveWithoutSavingModal = ({\n modalSlug,\n onCancel,\n onConfirm,\n}: {\n modalSlug: string\n onCancel?: OnCancel\n onConfirm: () => Promise<void> | void\n}) => {\n const { t } = useTranslation()\n\n return (\n <ConfirmationModal\n body={t('general:changesNotSaved')}\n cancelLabel={t('general:stayOnThisPage')}\n confirmLabel={t('general:leaveAnyway')}\n heading={t('general:leaveWithoutSaving')}\n modalSlug={modalSlug}\n onCancel={onCancel}\n onConfirm={onConfirm}\n />\n )\n}\n"],"names":["React","useCallback","useForm","useFormModified","useAuth","useTranslation","ConfirmationModal","useModal","usePreventLeave","leaveWithoutSavingModalSlug","LeaveWithoutSaving","disablePreventLeave","onConfirm","onPrevent","modalSlug","closeModal","openModal","modified","isValid","user","hasAccepted","setHasAccepted","useState","prevent","Boolean","handlePrevent","activeHref","document","activeElement","href","handleAccept","onAccept","onCancel","handleConfirm","err","console","error","LeaveWithoutSavingModal","t","body","cancelLabel","confirmLabel","heading"],"mappings":"AAAA;AACA,OAAOA,SAASC,WAAW,QAAQ,QAAO;AAI1C,SAASC,OAAO,EAAEC,eAAe,QAAQ,4BAA2B;AACpE,SAASC,OAAO,QAAQ,gCAA+B;AACvD,SAASC,cAAc,QAAQ,uCAAsC;AACrE,SAASC,iBAAiB,QAAQ,gCAA+B;AACjE,SAASC,QAAQ,QAAQ,oBAAmB;AAC5C,SAASC,eAAe,QAAQ,uBAAsB;AAStD,MAAMC,8BAA8B;AAEpC,OAAO,MAAMC,qBAAwD,CAAC,EACpEC,sBAAsB,KAAK,EAC3BC,SAAS,EACTC,SAAS,EACV;IACC,MAAMC,YAAYL;IAClB,MAAM,EAAEM,UAAU,EAAEC,SAAS,EAAE,GAAGT;IAClC,MAAMU,WAAWd;IACjB,MAAM,EAAEe,OAAO,EAAE,GAAGhB;IACpB,MAAM,EAAEiB,IAAI,EAAE,GAAGf;IACjB,MAAM,CAACgB,aAAaC,eAAe,GAAGrB,MAAMsB,QAAQ,CAAC;IAErD,MAAMC,UAAU,CAACZ,uBAAuBa,QAAQ,AAACP,CAAAA,YAAY,CAACC,OAAM,KAAMC;IAE1E,MAAMM,gBAAgBxB,YAAY;QAChC,MAAMyB,aAAa,AAACC,SAASC,aAAa,EAAwBC,QAAQ;QAC1E,IAAIhB,WAAW;YACbA,UAAUa;QACZ;QACAV,UAAUF;IACZ,GAAG;QAACE;QAAWH;QAAWC;KAAU;IAEpC,MAAMgB,eAAe7B,YAAY;QAC/Bc,WAAWD;IACb,GAAG;QAACC;QAAYD;KAAU;IAE1BN,gBAAgB;QAAEY;QAAaW,UAAUD;QAAcjB,WAAWY;QAAeF;IAAQ;IAEzF,MAAMS,WAAqB/B,YAAY;QACrCc,WAAWD;IACb,GAAG;QAACC;QAAYD;KAAU;IAE1B,MAAMmB,gBAAgBhC,YAAY;QAChC,IAAIW,WAAW;YACb,IAAI;gBACF,MAAMA;YACR,EAAE,OAAOsB,KAAK;gBACZC,QAAQC,KAAK,CAAC,0CAA0CF;YAC1D;QACF;QACAb,eAAe;IACjB,GAAG;QAACT;KAAU;IAEd,QACGyB,wBAAwBvB,WAAWA,WAAWkB,UAAUA,UAAUpB,WAAWqB;AAElF,EAAC;AAED,OAAO,MAAMI,0BAA0B,CAAC,EACtCvB,SAAS,EACTkB,QAAQ,EACRpB,SAAS,EAKV;IACC,MAAM,EAAE0B,CAAC,EAAE,GAAGjC;IAEd,QACGC,kBACCiC,MAAMD,EAAE,4BACRE,aAAaF,EAAE,2BACfG,cAAcH,EAAE,wBAChBI,SAASJ,EAAE,+BACXxB,WAAWA,WACXkB,UAAUA,UACVpB,WAAWA;AAGjB,EAAC"}
@@ -1,8 +1,6 @@
1
1
  'use client';
2
- import { jsxDEV as _jsxDEV } from "react/jsx-dev-runtime";
3
2
  import NextLinkImport from 'next/link.js';
4
3
  import { useRouter } from 'next/navigation.js';
5
- import React from 'react';
6
4
  import { useRouteTransition } from '../../providers/RouteTransition/index.js';
7
5
  import { formatUrl } from './formatUrl.js';
8
6
  const NextLink = 'default' in NextLinkImport ? NextLinkImport.default : NextLinkImport;
@@ -20,41 +18,33 @@ function isModifiedEvent(event) {
20
18
  */ export const Link = ({ children, href, onClick, preventDefault = true, ref, replace, scroll, ...rest })=>{
21
19
  const router = useRouter();
22
20
  const { startRouteTransition } = useRouteTransition();
23
- return /*#__PURE__*/ _jsxDEV(NextLink, {
24
- href: href,
25
- onClick: (e)=>{
26
- if (isModifiedEvent(e)) {
27
- return;
21
+ return <NextLink href={href} onClick={(e)=>{
22
+ if (isModifiedEvent(e)) {
23
+ return;
24
+ }
25
+ if (onClick) {
26
+ onClick(e);
27
+ }
28
+ // We need a preventDefault here so that a clicked link doesn't trigger twice,
29
+ // once for default browser navigation and once for startRouteTransition
30
+ if (preventDefault) {
31
+ e.preventDefault();
32
+ }
33
+ startRouteTransition(()=>{
34
+ const url = typeof href === 'string' ? href : formatUrl(href);
35
+ if (replace) {
36
+ void router.replace(url, {
37
+ scroll
38
+ });
39
+ } else {
40
+ void router.push(url, {
41
+ scroll
42
+ });
28
43
  }
29
- if (onClick) {
30
- onClick(e);
31
- }
32
- // We need a preventDefault here so that a clicked link doesn't trigger twice,
33
- // once for default browser navigation and once for startRouteTransition
34
- if (preventDefault) {
35
- e.preventDefault();
36
- }
37
- startRouteTransition(()=>{
38
- const url = typeof href === 'string' ? href : formatUrl(href);
39
- if (replace) {
40
- void router.replace(url, {
41
- scroll
42
- });
43
- } else {
44
- void router.push(url, {
45
- scroll
46
- });
47
- }
48
- });
49
- },
50
- ref: ref,
51
- ...rest,
52
- children: children
53
- }, void 0, false, {
54
- fileName: "src/elements/Link/index.tsx",
55
- lineNumber: 48,
56
- columnNumber: 5
57
- }, this);
44
+ });
45
+ }} ref={ref} {...rest}>
46
+ {children}
47
+ </NextLink>;
58
48
  };
59
49
 
60
50
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/elements/Link/index.tsx"],"sourcesContent":["'use client'\nimport NextLinkImport from 'next/link.js'\nimport { useRouter } from 'next/navigation.js'\nimport React from 'react'\n\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { formatUrl } from './formatUrl.js'\n\nconst NextLink = 'default' in NextLinkImport ? NextLinkImport.default : NextLinkImport\n\n// Copied from https://github.com/vercel/next.js/blob/canary/packages/next/src/client/link.tsx#L180-L191\nfunction isModifiedEvent(event: React.MouseEvent): boolean {\n const eventTarget = event.currentTarget as HTMLAnchorElement | SVGAElement\n const target = eventTarget.getAttribute('target')\n return (\n (target && target !== '_self') ||\n event.metaKey ||\n event.ctrlKey ||\n event.shiftKey ||\n event.altKey || // triggers resource download\n (event.nativeEvent && event.nativeEvent.which === 2)\n )\n}\n\ntype Props = {\n /**\n * Disable the e.preventDefault() call on click if you want to handle it yourself via onClick\n *\n * @default true\n */\n preventDefault?: boolean\n} & Parameters<typeof NextLink>[0]\n\nexport const Link: React.FC<Props> = ({\n children,\n href,\n onClick,\n preventDefault = true,\n ref,\n replace,\n scroll,\n ...rest\n}) => {\n const router = useRouter()\n const { startRouteTransition } = useRouteTransition()\n\n return (\n <NextLink\n href={href}\n onClick={(e) => {\n if (isModifiedEvent(e)) {\n return\n }\n\n if (onClick) {\n onClick(e)\n }\n\n // We need a preventDefault here so that a clicked link doesn't trigger twice,\n // once for default browser navigation and once for startRouteTransition\n if (preventDefault) {\n e.preventDefault()\n }\n\n startRouteTransition(() => {\n const url = typeof href === 'string' ? href : formatUrl(href)\n\n if (replace) {\n void router.replace(url, { scroll })\n } else {\n void router.push(url, { scroll })\n }\n })\n }}\n ref={ref}\n {...rest}\n >\n {children}\n </NextLink>\n )\n}\n"],"names":["NextLinkImport","useRouter","React","useRouteTransition","formatUrl","NextLink","default","isModifiedEvent","event","eventTarget","currentTarget","target","getAttribute","metaKey","ctrlKey","shiftKey","altKey","nativeEvent","which","Link","children","href","onClick","preventDefault","ref","replace","scroll","rest","router","startRouteTransition","e","url","push"],"mappings":"AAAA;;AACA,OAAOA,oBAAoB,eAAc;AACzC,SAASC,SAAS,QAAQ,qBAAoB;AAC9C,OAAOC,WAAW,QAAO;AAEzB,SAASC,kBAAkB,QAAQ,2CAA0C;AAC7E,SAASC,SAAS,QAAQ,iBAAgB;AAE1C,MAAMC,WAAW,aAAaL,iBAAiBA,eAAeM,OAAO,GAAGN;AAExE,yGAAyG;AACzG,SAASO,gBAAgBC,KAAuB;IAC9C,MAAMC,cAAcD,MAAME,aAAa;IACvC,MAAMC,SAASF,YAAYG,YAAY,CAAC;IACxC,OACE,AAACD,UAAUA,WAAW,WACtBH,MAAMK,OAAO,IACbL,MAAMM,OAAO,IACbN,MAAMO,QAAQ,IACdP,MAAMQ,MAAM,IAAI,6BAA6B;IAC5CR,MAAMS,WAAW,IAAIT,MAAMS,WAAW,CAACC,KAAK,KAAK;AAEtD;AAGE;;;;GAIC,GAIH,OAAO,MAAMC,OAAwB,CAAC,EACpCC,QAAQ,EACRC,IAAI,EACJC,OAAO,EACPC,iBAAiB,IAAI,EACrBC,GAAG,EACHC,OAAO,EACPC,MAAM,EACN,GAAGC,MACJ;IACC,MAAMC,SAAS3B;IACf,MAAM,EAAE4B,oBAAoB,EAAE,GAAG1B;IAEjC,qBACE,QAACE;QACCgB,MAAMA;QACNC,SAAS,CAACQ;YACR,IAAIvB,gBAAgBuB,IAAI;gBACtB;YACF;YAEA,IAAIR,SAAS;gBACXA,QAAQQ;YACV;YAEA,8EAA8E;YAC9E,wEAAwE;YACxE,IAAIP,gBAAgB;gBAClBO,EAAEP,cAAc;YAClB;YAEAM,qBAAqB;gBACnB,MAAME,MAAM,OAAOV,SAAS,WAAWA,OAAOjB,UAAUiB;gBAExD,IAAII,SAAS;oBACX,KAAKG,OAAOH,OAAO,CAACM,KAAK;wBAAEL;oBAAO;gBACpC,OAAO;oBACL,KAAKE,OAAOI,IAAI,CAACD,KAAK;wBAAEL;oBAAO;gBACjC;YACF;QACF;QACAF,KAAKA;QACJ,GAAGG,IAAI;kBAEPP;;;;;;AAGP,EAAC"}
1
+ {"version":3,"sources":["../../../src/elements/Link/index.tsx"],"sourcesContent":["'use client'\nimport NextLinkImport from 'next/link.js'\nimport { useRouter } from 'next/navigation.js'\nimport React from 'react'\n\nimport { useRouteTransition } from '../../providers/RouteTransition/index.js'\nimport { formatUrl } from './formatUrl.js'\n\nconst NextLink = 'default' in NextLinkImport ? NextLinkImport.default : NextLinkImport\n\n// Copied from https://github.com/vercel/next.js/blob/canary/packages/next/src/client/link.tsx#L180-L191\nfunction isModifiedEvent(event: React.MouseEvent): boolean {\n const eventTarget = event.currentTarget as HTMLAnchorElement | SVGAElement\n const target = eventTarget.getAttribute('target')\n return (\n (target && target !== '_self') ||\n event.metaKey ||\n event.ctrlKey ||\n event.shiftKey ||\n event.altKey || // triggers resource download\n (event.nativeEvent && event.nativeEvent.which === 2)\n )\n}\n\ntype Props = {\n /**\n * Disable the e.preventDefault() call on click if you want to handle it yourself via onClick\n *\n * @default true\n */\n preventDefault?: boolean\n} & Parameters<typeof NextLink>[0]\n\nexport const Link: React.FC<Props> = ({\n children,\n href,\n onClick,\n preventDefault = true,\n ref,\n replace,\n scroll,\n ...rest\n}) => {\n const router = useRouter()\n const { startRouteTransition } = useRouteTransition()\n\n return (\n <NextLink\n href={href}\n onClick={(e) => {\n if (isModifiedEvent(e)) {\n return\n }\n\n if (onClick) {\n onClick(e)\n }\n\n // We need a preventDefault here so that a clicked link doesn't trigger twice,\n // once for default browser navigation and once for startRouteTransition\n if (preventDefault) {\n e.preventDefault()\n }\n\n startRouteTransition(() => {\n const url = typeof href === 'string' ? href : formatUrl(href)\n\n if (replace) {\n void router.replace(url, { scroll })\n } else {\n void router.push(url, { scroll })\n }\n })\n }}\n ref={ref}\n {...rest}\n >\n {children}\n </NextLink>\n )\n}\n"],"names":["NextLinkImport","useRouter","useRouteTransition","formatUrl","NextLink","default","isModifiedEvent","event","eventTarget","currentTarget","target","getAttribute","metaKey","ctrlKey","shiftKey","altKey","nativeEvent","which","Link","children","href","onClick","preventDefault","ref","replace","scroll","rest","router","startRouteTransition","e","url","push"],"mappings":"AAAA;AACA,OAAOA,oBAAoB,eAAc;AACzC,SAASC,SAAS,QAAQ,qBAAoB;AAG9C,SAASC,kBAAkB,QAAQ,2CAA0C;AAC7E,SAASC,SAAS,QAAQ,iBAAgB;AAE1C,MAAMC,WAAW,aAAaJ,iBAAiBA,eAAeK,OAAO,GAAGL;AAExE,yGAAyG;AACzG,SAASM,gBAAgBC,KAAuB;IAC9C,MAAMC,cAAcD,MAAME,aAAa;IACvC,MAAMC,SAASF,YAAYG,YAAY,CAAC;IACxC,OACE,AAACD,UAAUA,WAAW,WACtBH,MAAMK,OAAO,IACbL,MAAMM,OAAO,IACbN,MAAMO,QAAQ,IACdP,MAAMQ,MAAM,IAAI,6BAA6B;IAC5CR,MAAMS,WAAW,IAAIT,MAAMS,WAAW,CAACC,KAAK,KAAK;AAEtD;AAGE;;;;GAIC,GAIH,OAAO,MAAMC,OAAwB,CAAC,EACpCC,QAAQ,EACRC,IAAI,EACJC,OAAO,EACPC,iBAAiB,IAAI,EACrBC,GAAG,EACHC,OAAO,EACPC,MAAM,EACN,GAAGC,MACJ;IACC,MAAMC,SAAS1B;IACf,MAAM,EAAE2B,oBAAoB,EAAE,GAAG1B;IAEjC,QACGE,SACCgB,MAAMA,MACNC,SAAS,CAACQ;QACR,IAAIvB,gBAAgBuB,IAAI;YACtB;QACF;QAEA,IAAIR,SAAS;YACXA,QAAQQ;QACV;QAEA,8EAA8E;QAC9E,wEAAwE;QACxE,IAAIP,gBAAgB;YAClBO,EAAEP,cAAc;QAClB;QAEAM,qBAAqB;YACnB,MAAME,MAAM,OAAOV,SAAS,WAAWA,OAAOjB,UAAUiB;YAExD,IAAII,SAAS;gBACX,KAAKG,OAAOH,OAAO,CAACM,KAAK;oBAAEL;gBAAO;YACpC,OAAO;gBACL,KAAKE,OAAOI,IAAI,CAACD,KAAK;oBAAEL;gBAAO;YACjC;QACF;IACF,GACAF,KAAKA,MACJ,GAAGG,IAAI,EACT;MACC,CAACP,SAAS;IACZ,EAAEf;AAEN,EAAC"}