@alpaca-headless/alpaca-headless-nextjs 1.0.129 → 1.0.246

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 (364) hide show
  1. package/dist/editor.css +439 -49
  2. package/dist/esm/alpacaContext.js +16 -0
  3. package/dist/esm/client-components/ClientLink.js +34 -0
  4. package/dist/{cjs/components → esm/client-components}/LinkEditor.js +22 -19
  5. package/dist/esm/client-components/MultiComponentEditor.js +22 -0
  6. package/dist/esm/client-components/index.js +4 -0
  7. package/dist/esm/components/Error.js +10 -0
  8. package/dist/{cjs → esm}/components/Image.js +4 -7
  9. package/dist/esm/components/Link.js +32 -0
  10. package/dist/esm/components/LinkPreview.js +30 -0
  11. package/dist/esm/components/LockedFieldIndicator.js +21 -0
  12. package/dist/esm/components/Picture.js +133 -0
  13. package/dist/esm/components/PictureEditor.js +77 -0
  14. package/dist/esm/components/PictureEditorWrapper.js +6 -0
  15. package/dist/esm/components/Placeholder.js +117 -0
  16. package/dist/esm/components/RichText.js +30 -0
  17. package/dist/esm/components/RichTextEditor.js +92 -0
  18. package/dist/esm/components/RichTextEditorWrapper.js +7 -0
  19. package/dist/esm/components/Slot.js +6 -0
  20. package/dist/esm/components/Text.js +29 -0
  21. package/dist/esm/components/TextEditor.js +78 -0
  22. package/dist/esm/components/TextEditorWrapper.js +19 -0
  23. package/dist/esm/components/Translate.js +12 -0
  24. package/dist/esm/components/TranslateEditor.js +24 -0
  25. package/dist/esm/components/index.js +7 -0
  26. package/dist/esm/components/picture-shared.js +26 -0
  27. package/dist/esm/editor/ComponentInfo.js +12 -0
  28. package/dist/esm/editor/ConfirmationDialog.js +29 -0
  29. package/dist/{cjs → esm}/editor/ContentTree.js +55 -46
  30. package/dist/esm/editor/ContextMenu.js +90 -0
  31. package/dist/esm/editor/DialogButtons.js +4 -0
  32. package/dist/esm/editor/DictionaryEditor.js +37 -0
  33. package/dist/esm/editor/EditFrame.js +115 -0
  34. package/dist/esm/editor/EditFrameWrapper.js +7 -0
  35. package/dist/esm/editor/Editor.js +15 -0
  36. package/dist/esm/editor/EditorClient.js +877 -0
  37. package/dist/esm/editor/EditorClientHost.js +15 -0
  38. package/dist/esm/editor/EditorWarning.js +10 -0
  39. package/dist/esm/editor/EditorWarnings.js +13 -0
  40. package/dist/esm/editor/FieldEditorPopup.js +23 -0
  41. package/dist/esm/editor/FieldList.js +48 -0
  42. package/dist/esm/editor/FieldListField.js +137 -0
  43. package/dist/{cjs → esm}/editor/FloatingToolbar.js +20 -23
  44. package/dist/esm/editor/ItemInfo.js +14 -0
  45. package/dist/esm/editor/ItemNameDialog.js +32 -0
  46. package/dist/esm/editor/LinkEditorDialog.js +61 -0
  47. package/dist/esm/editor/MainLayout.js +18 -0
  48. package/dist/esm/editor/MediaSelector.js +85 -0
  49. package/dist/esm/editor/Outline.js +82 -0
  50. package/dist/esm/editor/PageViewer.js +41 -0
  51. package/dist/esm/editor/PictureEditorDialog.js +201 -0
  52. package/dist/esm/editor/PlaceholderDropZone.js +130 -0
  53. package/dist/esm/editor/PlaceholderDropZoneHost.js +7 -0
  54. package/dist/esm/editor/PreviewClient.js +5 -0
  55. package/dist/esm/editor/PreviewClientHost.js +7 -0
  56. package/dist/esm/editor/PreviewPanel.js +7 -0
  57. package/dist/esm/editor/PublishDialog.js +15 -0
  58. package/dist/esm/editor/Terminal.js +55 -0
  59. package/dist/esm/editor/ai/AiPopup.js +28 -0
  60. package/dist/esm/editor/ai/AiResponseMessage.js +20 -0
  61. package/dist/{cjs/editor → esm/editor/ai}/AiTerminal.js +67 -48
  62. package/dist/esm/editor/ai/AiToolCall.js +15 -0
  63. package/dist/esm/editor/commands/commands.js +1 -0
  64. package/dist/esm/editor/commands/componentCommands.js +287 -0
  65. package/dist/esm/editor/commands/createVersionCommand.js +26 -0
  66. package/dist/esm/editor/commands/undo.js +22 -0
  67. package/dist/esm/editor/componentTreeHelper.js +20 -0
  68. package/dist/esm/editor/config/config.js +261 -0
  69. package/dist/esm/editor/editContext.js +11 -0
  70. package/dist/esm/editor/editor-warnings/ItemLocked.js +40 -0
  71. package/dist/esm/editor/editor-warnings/ValidationErrors.js +22 -0
  72. package/dist/esm/editor/fieldTypes/CheckboxEditor.js +21 -0
  73. package/dist/esm/editor/fieldTypes/DropLinkEditor.js +50 -0
  74. package/dist/esm/editor/fieldTypes/InternalLinkFieldEditor.js +41 -0
  75. package/dist/{cjs → esm}/editor/fieldTypes/LinkFieldEditor.js +14 -16
  76. package/dist/esm/editor/fieldTypes/MultiLineText.js +25 -0
  77. package/dist/esm/editor/fieldTypes/PictureFieldEditor.js +33 -0
  78. package/dist/esm/editor/fieldTypes/RawEditor.js +26 -0
  79. package/dist/esm/editor/fieldTypes/RichTextEditor.js +7 -0
  80. package/dist/esm/editor/fieldTypes/RichTextEditorComponent.js +46 -0
  81. package/dist/esm/editor/fieldTypes/SingleLineText.js +25 -0
  82. package/dist/esm/editor/fieldTypes/TreeListEditor.js +57 -0
  83. package/dist/esm/editor/index.js +4 -0
  84. package/dist/esm/editor/itemCommands.js +27 -0
  85. package/dist/esm/editor/menubar/BrowseHistory.js +39 -0
  86. package/dist/esm/editor/menubar/ItemLanguageVersion.js +20 -0
  87. package/dist/esm/editor/menubar/LanguageSelector.js +18 -0
  88. package/dist/esm/editor/menubar/Menu.js +105 -0
  89. package/dist/esm/editor/menubar/PageViewerControls.js +66 -0
  90. package/dist/esm/editor/menubar/VersionSelector.js +18 -0
  91. package/dist/esm/editor/previewContext.js +5 -0
  92. package/dist/esm/editor/services/contentService.js +58 -0
  93. package/dist/esm/editor/services/editService.js +428 -0
  94. package/dist/esm/editor/sidebar/ComponentPalette.js +42 -0
  95. package/dist/esm/editor/sidebar/ComponentTree.js +237 -0
  96. package/dist/esm/editor/sidebar/Debug.js +46 -0
  97. package/dist/esm/editor/sidebar/EditHistory.js +66 -0
  98. package/dist/esm/editor/sidebar/EditorForm.js +24 -0
  99. package/dist/esm/editor/sidebar/GraphQL.js +85 -0
  100. package/dist/esm/editor/sidebar/Insert.js +7 -0
  101. package/dist/esm/editor/sidebar/MainContentTree.js +38 -0
  102. package/dist/esm/editor/sidebar/Sessions.js +11 -0
  103. package/dist/esm/editor/sidebar/Sidebar.js +13 -0
  104. package/dist/esm/editor/sidebar/SidebarView.js +69 -0
  105. package/dist/esm/editor/sidebar/Workbox.js +77 -0
  106. package/dist/esm/editor/ui/CopyToClipboardButton.js +14 -0
  107. package/dist/esm/editor/ui/Icons.js +19 -0
  108. package/dist/esm/editor/ui/Section.js +8 -0
  109. package/dist/esm/editor/utils/insertOptions.js +39 -0
  110. package/dist/esm/editor/utils.js +71 -0
  111. package/dist/esm/editor/views/ItemEditor.js +18 -0
  112. package/dist/esm/fieldTypes.js +1 -0
  113. package/dist/esm/graphQL.js +50 -0
  114. package/dist/esm/graphQLTypes.js +1 -0
  115. package/dist/esm/index.js +8 -0
  116. package/dist/{cjs → esm}/loadRouteData.js +23 -20
  117. package/dist/{cjs → esm}/mediaProtection.js +4 -11
  118. package/dist/esm/middleware/handleRequest.js +45 -0
  119. package/dist/esm/middleware/index.js +1 -0
  120. package/dist/esm/servertypes.js +1 -0
  121. package/dist/primereact/resources/themes/arya-blue/theme.css +854 -790
  122. package/dist/primereact/resources/themes/arya-green/theme.css +854 -790
  123. package/dist/primereact/resources/themes/arya-orange/theme.css +854 -790
  124. package/dist/primereact/resources/themes/arya-purple/theme.css +854 -790
  125. package/dist/primereact/resources/themes/bootstrap4-dark-blue/theme.css +678 -615
  126. package/dist/primereact/resources/themes/bootstrap4-dark-purple/theme.css +678 -615
  127. package/dist/primereact/resources/themes/bootstrap4-light-blue/theme.css +679 -616
  128. package/dist/primereact/resources/themes/bootstrap4-light-purple/theme.css +679 -616
  129. package/dist/primereact/resources/themes/fluent-light/theme.css +686 -638
  130. package/dist/primereact/resources/themes/lara-dark-amber/theme.css +679 -630
  131. package/dist/primereact/resources/themes/lara-dark-blue/theme.css +679 -630
  132. package/dist/primereact/resources/themes/lara-dark-cyan/theme.css +679 -630
  133. package/dist/primereact/resources/themes/lara-dark-green/theme.css +679 -630
  134. package/dist/primereact/resources/themes/lara-dark-indigo/theme.css +679 -630
  135. package/dist/primereact/resources/themes/lara-dark-pink/theme.css +679 -630
  136. package/dist/primereact/resources/themes/lara-dark-purple/theme.css +679 -630
  137. package/dist/primereact/resources/themes/lara-dark-teal/theme.css +679 -630
  138. package/dist/primereact/resources/themes/lara-light-amber/theme.css +776 -725
  139. package/dist/primereact/resources/themes/lara-light-blue/theme.css +1011 -960
  140. package/dist/primereact/resources/themes/lara-light-cyan/theme.css +776 -725
  141. package/dist/primereact/resources/themes/lara-light-green/theme.css +820 -769
  142. package/dist/primereact/resources/themes/lara-light-indigo/theme.css +1016 -965
  143. package/dist/primereact/resources/themes/lara-light-pink/theme.css +776 -725
  144. package/dist/primereact/resources/themes/lara-light-purple/theme.css +1016 -965
  145. package/dist/primereact/resources/themes/lara-light-teal/theme.css +776 -725
  146. package/dist/primereact/resources/themes/luna-amber/theme.css +950 -887
  147. package/dist/primereact/resources/themes/luna-blue/theme.css +950 -887
  148. package/dist/primereact/resources/themes/luna-green/theme.css +950 -887
  149. package/dist/primereact/resources/themes/luna-pink/theme.css +950 -887
  150. package/dist/primereact/resources/themes/md-dark-deeppurple/theme.css +918 -950
  151. package/dist/primereact/resources/themes/md-dark-indigo/theme.css +918 -950
  152. package/dist/primereact/resources/themes/md-light-deeppurple/theme.css +878 -910
  153. package/dist/primereact/resources/themes/md-light-indigo/theme.css +878 -910
  154. package/dist/primereact/resources/themes/mdc-dark-deeppurple/theme.css +918 -950
  155. package/dist/primereact/resources/themes/mdc-dark-indigo/theme.css +918 -950
  156. package/dist/primereact/resources/themes/mdc-light-deeppurple/theme.css +878 -910
  157. package/dist/primereact/resources/themes/mdc-light-indigo/theme.css +878 -910
  158. package/dist/primereact/resources/themes/mira/theme.css +1562 -1532
  159. package/dist/primereact/resources/themes/nano/theme.css +707 -641
  160. package/dist/primereact/resources/themes/nova/theme.css +705 -643
  161. package/dist/primereact/resources/themes/nova-accent/theme.css +701 -636
  162. package/dist/primereact/resources/themes/nova-alt/theme.css +705 -643
  163. package/dist/primereact/resources/themes/rhea/theme.css +876 -811
  164. package/dist/primereact/resources/themes/saga-blue/theme.css +896 -832
  165. package/dist/primereact/resources/themes/saga-green/theme.css +896 -832
  166. package/dist/primereact/resources/themes/saga-orange/theme.css +896 -832
  167. package/dist/primereact/resources/themes/saga-purple/theme.css +896 -832
  168. package/dist/primereact/resources/themes/soho-dark/theme.css +701 -643
  169. package/dist/primereact/resources/themes/soho-light/theme.css +690 -634
  170. package/dist/primereact/resources/themes/tailwind-light/theme.css +1370 -1306
  171. package/dist/primereact/resources/themes/vela-blue/theme.css +862 -798
  172. package/dist/primereact/resources/themes/vela-green/theme.css +862 -798
  173. package/dist/primereact/resources/themes/vela-orange/theme.css +862 -798
  174. package/dist/primereact/resources/themes/vela-purple/theme.css +862 -798
  175. package/dist/primereact/resources/themes/viva-dark/theme.css +655 -612
  176. package/dist/primereact/resources/themes/viva-light/theme.css +737 -694
  177. package/package.json +25 -22
  178. package/types/alpacaContext.d.ts +14 -8
  179. package/types/{components → client-components}/LinkEditor.d.ts +1 -1
  180. package/types/client-components/MultiComponentEditor.d.ts +4 -2
  181. package/types/client-components/index.d.ts +3 -2
  182. package/types/components/Image.d.ts +1 -0
  183. package/types/components/Link.d.ts +1 -0
  184. package/types/components/LinkPreview.d.ts +6 -0
  185. package/types/components/LockedFieldIndicator.d.ts +6 -0
  186. package/types/components/Picture.d.ts +4 -6
  187. package/types/components/PictureEditorWrapper.d.ts +3 -0
  188. package/types/components/Placeholder.d.ts +12 -11
  189. package/types/components/RichText.d.ts +2 -1
  190. package/types/components/RichTextEditor.d.ts +3 -290
  191. package/types/components/RichTextEditorWrapper.d.ts +2 -0
  192. package/types/components/Slot.d.ts +2 -1
  193. package/types/components/Text.d.ts +2 -1
  194. package/types/components/TextEditor.d.ts +3 -290
  195. package/types/components/TextEditorWrapper.d.ts +4 -0
  196. package/types/components/Translate.d.ts +1 -0
  197. package/types/components/picture-shared.d.ts +16 -0
  198. package/types/editor/ComponentInfo.d.ts +1 -1
  199. package/types/editor/ContentTree.d.ts +2 -2
  200. package/types/editor/ContextMenu.d.ts +14 -0
  201. package/types/editor/DictionaryEditor.d.ts +1 -4
  202. package/types/editor/EditFrameWrapper.d.ts +6 -0
  203. package/types/editor/Editor.d.ts +68 -5
  204. package/types/editor/EditorClient.d.ts +17 -5
  205. package/types/editor/EditorClientHost.d.ts +4 -2
  206. package/types/editor/EditorWarning.d.ts +6 -0
  207. package/types/editor/EditorWarnings.d.ts +9 -0
  208. package/types/editor/FieldEditorPopup.d.ts +10 -0
  209. package/types/editor/FieldList.d.ts +6 -2
  210. package/types/editor/FieldListField.d.ts +6 -2
  211. package/types/editor/ItemInfo.d.ts +1 -1
  212. package/types/editor/Outline.d.ts +11 -0
  213. package/types/editor/PageViewer.d.ts +1 -0
  214. package/types/editor/PictureEditorDialog.d.ts +4 -2
  215. package/types/editor/PlaceholderDropZone.d.ts +3 -2
  216. package/types/editor/PlaceholderDropZoneHost.d.ts +3 -2
  217. package/types/editor/PreviewClient.d.ts +4 -0
  218. package/types/editor/PreviewClientHost.d.ts +4 -0
  219. package/types/editor/PreviewPanel.d.ts +1 -0
  220. package/types/editor/PublishDialog.d.ts +7 -0
  221. package/types/editor/Terminal.d.ts +6 -2
  222. package/types/editor/{AiPopup.d.ts → ai/AiPopup.d.ts} +2 -3
  223. package/types/editor/ai/AiResponseMessage.d.ts +7 -0
  224. package/types/editor/ai/AiTerminal.d.ts +4 -0
  225. package/types/editor/ai/AiToolCall.d.ts +9 -0
  226. package/types/editor/commands/commands.d.ts +21 -0
  227. package/types/editor/commands/componentCommands.d.ts +5 -0
  228. package/types/editor/commands/createVersionCommand.d.ts +2 -0
  229. package/types/editor/commands/undo.d.ts +15 -0
  230. package/types/editor/componentTreeHelper.d.ts +2 -1
  231. package/types/editor/config/config.d.ts +2 -0
  232. package/types/editor/editContext.d.ts +70 -93
  233. package/types/editor/editor-warnings/ItemLocked.d.ts +2 -0
  234. package/types/editor/editor-warnings/ValidationErrors.d.ts +2 -0
  235. package/types/editor/fieldTypes/CheckboxEditor.d.ts +3 -2
  236. package/types/editor/fieldTypes/DropLinkEditor.d.ts +5 -0
  237. package/types/editor/fieldTypes/InternalLinkFieldEditor.d.ts +3 -2
  238. package/types/editor/fieldTypes/LinkFieldEditor.d.ts +3 -2
  239. package/types/editor/fieldTypes/MultiLineText.d.ts +3 -2
  240. package/types/editor/fieldTypes/PictureFieldEditor.d.ts +2 -1
  241. package/types/editor/fieldTypes/RawEditor.d.ts +5 -0
  242. package/types/editor/fieldTypes/RichTextEditor.d.ts +4 -3
  243. package/types/editor/fieldTypes/RichTextEditorComponent.d.ts +5 -0
  244. package/types/editor/fieldTypes/SingleLineText.d.ts +3 -2
  245. package/types/editor/fieldTypes/TreeListEditor.d.ts +2 -1
  246. package/types/editor/index.d.ts +2 -0
  247. package/types/editor/itemCommands.d.ts +3 -0
  248. package/types/editor/menubar/BrowseHistory.d.ts +4 -0
  249. package/types/editor/menubar/ItemLanguageVersion.d.ts +1 -0
  250. package/types/editor/menubar/LanguageSelector.d.ts +5 -0
  251. package/types/editor/menubar/Menu.d.ts +1 -0
  252. package/types/editor/menubar/PageViewerControls.d.ts +1 -0
  253. package/types/editor/menubar/VersionSelector.d.ts +5 -0
  254. package/types/editor/previewContext.d.ts +4 -0
  255. package/types/editor/{contentService.d.ts → services/contentService.d.ts} +2 -3
  256. package/types/editor/services/editService.d.ts +27 -0
  257. package/types/editor/sidebar/ComponentPalette.d.ts +1 -0
  258. package/types/editor/sidebar/ComponentTree.d.ts +1 -0
  259. package/types/editor/sidebar/Debug.d.ts +1 -0
  260. package/types/editor/sidebar/EditHistory.d.ts +1 -0
  261. package/types/editor/sidebar/EditorForm.d.ts +1 -0
  262. package/types/editor/sidebar/GraphQL.d.ts +1 -0
  263. package/types/editor/sidebar/Insert.d.ts +1 -0
  264. package/types/editor/sidebar/MainContentTree.d.ts +3 -0
  265. package/types/editor/sidebar/Sessions.d.ts +1 -0
  266. package/types/editor/sidebar/Sidebar.d.ts +4 -0
  267. package/types/editor/sidebar/SidebarView.d.ts +8 -0
  268. package/types/editor/sidebar/Workbox.d.ts +1 -0
  269. package/types/editor/ui/CopyToClipboardButton.d.ts +3 -0
  270. package/types/editor/ui/Icons.d.ts +16 -0
  271. package/types/editor/utils/insertOptions.d.ts +3 -0
  272. package/types/editor/utils.d.ts +8 -0
  273. package/types/editor/views/ItemEditor.d.ts +1 -0
  274. package/types/fieldTypes.d.ts +39 -11
  275. package/types/graphQL.d.ts +12 -0
  276. package/types/index.d.ts +4 -3
  277. package/types/loadRouteData.d.ts +7 -85
  278. package/types/middleware/handleRequest.d.ts +5 -0
  279. package/types/middleware/index.d.ts +1 -1
  280. package/types/servertypes.d.ts +306 -0
  281. package/dist/cjs/alpacaContext.js +0 -12
  282. package/dist/cjs/client-components/ClientLink.js +0 -36
  283. package/dist/cjs/client-components/MultiComponentEditor.js +0 -26
  284. package/dist/cjs/client-components/index.js +0 -19
  285. package/dist/cjs/components/Error.js +0 -15
  286. package/dist/cjs/components/Link.js +0 -36
  287. package/dist/cjs/components/Picture.js +0 -124
  288. package/dist/cjs/components/PictureEditor.js +0 -49
  289. package/dist/cjs/components/Placeholder.js +0 -118
  290. package/dist/cjs/components/RichText.js +0 -47
  291. package/dist/cjs/components/RichTextEditor.js +0 -94
  292. package/dist/cjs/components/Slot.js +0 -8
  293. package/dist/cjs/components/Text.js +0 -46
  294. package/dist/cjs/components/TextEditor.js +0 -77
  295. package/dist/cjs/components/Translate.js +0 -14
  296. package/dist/cjs/components/TranslateEditor.js +0 -28
  297. package/dist/cjs/components/index.js +0 -23
  298. package/dist/cjs/editor/AiPopup.js +0 -33
  299. package/dist/cjs/editor/ComponentInfo.js +0 -15
  300. package/dist/cjs/editor/ComponentPalette.js +0 -23
  301. package/dist/cjs/editor/ComponentTree.js +0 -217
  302. package/dist/cjs/editor/ConfirmationDialog.js +0 -31
  303. package/dist/cjs/editor/Debug.js +0 -26
  304. package/dist/cjs/editor/DialogButtons.js +0 -7
  305. package/dist/cjs/editor/DictionaryEditor.js +0 -41
  306. package/dist/cjs/editor/EditFrame.js +0 -129
  307. package/dist/cjs/editor/EditHistory.js +0 -43
  308. package/dist/cjs/editor/Editor.js +0 -27
  309. package/dist/cjs/editor/EditorClient.js +0 -753
  310. package/dist/cjs/editor/EditorClientHost.js +0 -37
  311. package/dist/cjs/editor/FieldList.js +0 -51
  312. package/dist/cjs/editor/FieldListField.js +0 -75
  313. package/dist/cjs/editor/GraphQL.js +0 -87
  314. package/dist/cjs/editor/ItemEditor.js +0 -9
  315. package/dist/cjs/editor/ItemInfo.js +0 -17
  316. package/dist/cjs/editor/ItemNameDialog.js +0 -37
  317. package/dist/cjs/editor/LanguageSelector.js +0 -21
  318. package/dist/cjs/editor/LinkEditorDialog.js +0 -67
  319. package/dist/cjs/editor/MainLayout.js +0 -24
  320. package/dist/cjs/editor/MediaSelector.js +0 -92
  321. package/dist/cjs/editor/PictureEditorDialog.js +0 -93
  322. package/dist/cjs/editor/PlaceholderDropZone.js +0 -93
  323. package/dist/cjs/editor/PlaceholderDropZoneHost.js +0 -37
  324. package/dist/cjs/editor/SidebarTabs.js +0 -47
  325. package/dist/cjs/editor/Terminal.js +0 -61
  326. package/dist/cjs/editor/Utils.js +0 -43
  327. package/dist/cjs/editor/VersionSelector.js +0 -21
  328. package/dist/cjs/editor/Workbox.js +0 -41
  329. package/dist/cjs/editor/componentCommands.js +0 -141
  330. package/dist/cjs/editor/componentTreeHelper.js +0 -18
  331. package/dist/cjs/editor/contentService.js +0 -80
  332. package/dist/cjs/editor/editContext.js +0 -40
  333. package/dist/cjs/editor/editService.js +0 -334
  334. package/dist/cjs/editor/fieldTypes/CheckboxEditor.js +0 -21
  335. package/dist/cjs/editor/fieldTypes/InternalLinkFieldEditor.js +0 -46
  336. package/dist/cjs/editor/fieldTypes/MultiLineText.js +0 -25
  337. package/dist/cjs/editor/fieldTypes/PictureFieldEditor.js +0 -19
  338. package/dist/cjs/editor/fieldTypes/RichTextEditor.js +0 -24
  339. package/dist/cjs/editor/fieldTypes/SingleLineText.js +0 -25
  340. package/dist/cjs/editor/fieldTypes/TreeListEditor.js +0 -59
  341. package/dist/cjs/editor/index.js +0 -18
  342. package/dist/cjs/editor/ui/Section.js +0 -8
  343. package/dist/cjs/fieldTypes.js +0 -2
  344. package/dist/cjs/graphQLTypes.js +0 -2
  345. package/dist/cjs/index.js +0 -36
  346. package/dist/cjs/layoutData.js +0 -2
  347. package/dist/cjs/middleware/authorization.js +0 -52
  348. package/dist/cjs/middleware/index.js +0 -17
  349. package/types/editor/AiTerminal.d.ts +0 -5
  350. package/types/editor/ComponentPalette.d.ts +0 -6
  351. package/types/editor/ComponentTree.d.ts +0 -5
  352. package/types/editor/Debug.d.ts +0 -6
  353. package/types/editor/EditHistory.d.ts +0 -4
  354. package/types/editor/GraphQL.d.ts +0 -5
  355. package/types/editor/ItemEditor.d.ts +0 -4
  356. package/types/editor/LanguageSelector.d.ts +0 -5
  357. package/types/editor/SidebarTabs.d.ts +0 -8
  358. package/types/editor/Utils.d.ts +0 -3
  359. package/types/editor/VersionSelector.d.ts +0 -5
  360. package/types/editor/Workbox.d.ts +0 -6
  361. package/types/editor/componentCommands.d.ts +0 -4
  362. package/types/editor/editService.d.ts +0 -20
  363. package/types/layoutData.d.ts +0 -92
  364. package/types/middleware/authorization.d.ts +0 -2
@@ -0,0 +1,30 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ import "server-only";
14
+ import React from "react";
15
+ import { useAlpacaContext } from "../alpacaContext";
16
+ import { RichTextEditorWrapper } from "./RichTextEditorWrapper";
17
+ export function RichText(_a) {
18
+ var { field, tag, editable } = _a, props = __rest(_a, ["field", "tag", "editable"]);
19
+ if (!field)
20
+ return;
21
+ if (field.jsonValue) {
22
+ field = field.jsonValue;
23
+ }
24
+ const internalProps = Object.assign(Object.assign({}, props), { dangerouslySetInnerHTML: {
25
+ __html: field.value,
26
+ } });
27
+ if (useAlpacaContext().pageContext.pageEditing)
28
+ return (_jsx(RichTextEditorWrapper, Object.assign({ field: field, tag: tag }, props)));
29
+ return React.createElement(tag || "div", Object.assign(props, internalProps));
30
+ }
@@ -0,0 +1,92 @@
1
+ "use client";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
14
+ import React, { useEffect, useState, useMemo, useCallback, useRef, } from "react";
15
+ import { useEditContext } from "../editor/editContext";
16
+ import { isFieldActionExecuting } from "../editor/utils";
17
+ import { getFieldContextMenu } from "../editor/ContextMenu";
18
+ import { LockedFieldIndicator } from "./LockedFieldIndicator";
19
+ export function RichTextEditor(_a) {
20
+ var _b, _c, _d, _e;
21
+ var { field, tag } = _a, props = __rest(_a, ["field", "tag"]);
22
+ const editContext = useEditContext();
23
+ const [value, setValue] = useState("");
24
+ const [editedValue, setEditedValue] = useState();
25
+ const ref = useRef(null);
26
+ if (!editContext)
27
+ return;
28
+ const { updateContentEditingFields } = editContext;
29
+ const liveField = editContext.getLiveField(field);
30
+ useEffect(() => {
31
+ if (!liveField)
32
+ return;
33
+ if (editedValue != liveField.value &&
34
+ "<p>" + editedValue + "</p>" != liveField.value) {
35
+ // console.log(
36
+ // "editedValue:" + editedValue + " liveField.value " + liveField.value
37
+ // );
38
+ setValue(liveField.value);
39
+ }
40
+ }, [liveField === null || liveField === void 0 ? void 0 : liveField.value]);
41
+ useEffect(() => {
42
+ if (!liveField)
43
+ return;
44
+ setValue(liveField.value); // Otherwise react would not update the field after the refresh
45
+ }, [updateContentEditingFields]);
46
+ useEffect(() => {
47
+ if (liveField) {
48
+ setValue(field.value);
49
+ liveField.value = field.value;
50
+ }
51
+ editContext.registerAsRenderedField(field);
52
+ }, [field]);
53
+ const setFieldValue = (val) => {
54
+ if (val != editedValue) {
55
+ setEditedValue(val);
56
+ if (editContext)
57
+ editContext.editField({ field, value: val, refresh: "none" });
58
+ }
59
+ };
60
+ const eventHandler = useCallback((e) => {
61
+ setFieldValue(e.currentTarget.innerHTML);
62
+ }, [editContext.editField]);
63
+ let className = (_b = props.className) !== null && _b !== void 0 ? _b : "";
64
+ className += " a-cursor-text";
65
+ if (isFieldActionExecuting(field, editContext))
66
+ className += " a-executing-action a-focus-shadow ";
67
+ const isLocked = (((_c = liveField._editor) === null || _c === void 0 ? void 0 : _c.lockedBy) &&
68
+ ((_e = (_d = liveField._editor) === null || _d === void 0 ? void 0 : _d.lockedBy) === null || _e === void 0 ? void 0 : _e.sessionId) != editContext.sessionId) ||
69
+ false;
70
+ const onContextMenu = getFieldContextMenu(field, editContext, []);
71
+ return useMemo(() => {
72
+ var _a, _b;
73
+ const properies = Object.assign(Object.assign({}, props), { className, contentEditable: ((_a = field._editor) === null || _a === void 0 ? void 0 : _a.canWrite) && !isLocked, suppressContentEditableWarning: true, onInput: eventHandler, placeholder: "[" + ((_b = field._editor) === null || _b === void 0 ? void 0 : _b.name) + "]", dangerouslySetInnerHTML: {
74
+ __html: value,
75
+ }, onFocus: () => {
76
+ var _a;
77
+ editContext.setFocusedField((_a = field._editor) === null || _a === void 0 ? void 0 : _a.descriptor, true);
78
+ }, onBlur: () => {
79
+ editContext.setFocusedField(undefined, false);
80
+ }, onClick: () => {
81
+ var _a, _b, _c;
82
+ if (!((_a = field._editor) === null || _a === void 0 ? void 0 : _a.canWrite) || !((_b = field._editor) === null || _b === void 0 ? void 0 : _b.hasLock))
83
+ editContext.setFocusedField((_c = field._editor) === null || _c === void 0 ? void 0 : _c.descriptor, true);
84
+ }, onContextMenu,
85
+ ref });
86
+ const element = React.createElement(tag || "div", properies);
87
+ if (isLocked) {
88
+ return (_jsxs(_Fragment, { children: [_jsx(LockedFieldIndicator, { field: liveField, elementRef: ref }), " ", element] }));
89
+ }
90
+ return element;
91
+ }, [value, className, isLocked, ref]);
92
+ }
@@ -0,0 +1,7 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import dynamic from "next/dynamic";
4
+ const RichTextEditor = dynamic(() => import("./RichTextEditor").then((dnd) => dnd.RichTextEditor), { ssr: false });
5
+ export function RichTextEditorWrapper(props) {
6
+ return _jsx(RichTextEditor, Object.assign({}, props));
7
+ }
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import "server-only";
3
+ import { Placeholder } from "./Placeholder";
4
+ export default function Section({ component }) {
5
+ return (_jsx(_Fragment, { children: _jsx(Placeholder, { name: "ph-slot-content", content: component }) }));
6
+ }
@@ -0,0 +1,29 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ import "server-only";
14
+ import React from "react";
15
+ import { useAlpacaContext } from "../alpacaContext";
16
+ import { TextEditorWrapper } from "./TextEditorWrapper";
17
+ export function Text(_a) {
18
+ var { field, tag, editable } = _a, props = __rest(_a, ["field", "tag", "editable"]);
19
+ if (!field)
20
+ return;
21
+ if (field.jsonValue) {
22
+ field = field.jsonValue;
23
+ }
24
+ if (useAlpacaContext().pageContext.pageEditing) {
25
+ return (_jsx("div", { children: _jsx(TextEditorWrapper, Object.assign({ field: field, tag: tag }, props)) }));
26
+ }
27
+ else
28
+ return React.createElement(tag || "div", props, field.value);
29
+ }
@@ -0,0 +1,78 @@
1
+ "use client";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ import { jsx as _jsx, Fragment as _Fragment, jsxs as _jsxs } from "react/jsx-runtime";
14
+ import React, { useEffect, useRef, useState } from "react";
15
+ import { useEditContext } from "../editor/editContext";
16
+ import { isFieldActionExecuting } from "../editor/utils";
17
+ import { getFieldContextMenu } from "../editor/ContextMenu";
18
+ import { LockedFieldIndicator } from "./LockedFieldIndicator";
19
+ export function TextEditor(_a) {
20
+ var _b, _c, _d, _e, _f, _g;
21
+ var { field, tag } = _a, props = __rest(_a, ["field", "tag"]);
22
+ const editContext = useEditContext();
23
+ const [value, setValue] = useState("");
24
+ const [editedValue, setEditedValue] = useState();
25
+ const ref = useRef(null);
26
+ if (!editContext)
27
+ return;
28
+ const { updateContentEditingFields } = editContext;
29
+ const liveField = editContext.getLiveField(field);
30
+ useEffect(() => {
31
+ if (!liveField)
32
+ return;
33
+ if (editedValue != liveField.value)
34
+ setValue(liveField.value);
35
+ }, [liveField === null || liveField === void 0 ? void 0 : liveField.value]);
36
+ useEffect(() => {
37
+ if (liveField) {
38
+ setValue(field.value);
39
+ liveField.value = field.value;
40
+ }
41
+ editContext.registerAsRenderedField(field);
42
+ }, [field]);
43
+ useEffect(() => {
44
+ if (!liveField)
45
+ return;
46
+ setValue(liveField.value); // Otherwise react would not update the field after the refresh
47
+ }, [updateContentEditingFields]);
48
+ let className = (_b = props.className) !== null && _b !== void 0 ? _b : "";
49
+ className += " a-cursor-text";
50
+ if (isFieldActionExecuting(field, editContext)) {
51
+ className += " a-executing-action a-focus-shadow ";
52
+ }
53
+ const onContextMenu = getFieldContextMenu(field, editContext, []);
54
+ const isLocked = (((_c = liveField._editor) === null || _c === void 0 ? void 0 : _c.lockedBy) &&
55
+ ((_e = (_d = liveField._editor) === null || _d === void 0 ? void 0 : _d.lockedBy) === null || _e === void 0 ? void 0 : _e.sessionId) != editContext.sessionId) ||
56
+ false;
57
+ const properies = Object.assign(Object.assign({}, props), { className, contentEditable: ((_f = field._editor) === null || _f === void 0 ? void 0 : _f.canWrite) && !isLocked, suppressContentEditableWarning: true, onInput: (e) => setFieldValue(e.currentTarget.textContent), placeholder: "[" + ((_g = field._editor) === null || _g === void 0 ? void 0 : _g.name) + "]", onFocus: () => {
58
+ var _a;
59
+ editContext.setFocusedField((_a = field._editor) === null || _a === void 0 ? void 0 : _a.descriptor, true);
60
+ }, onBlur: () => {
61
+ editContext.setFocusedField(undefined, false);
62
+ }, onClick: () => {
63
+ var _a, _b, _c;
64
+ if (!((_a = field._editor) === null || _a === void 0 ? void 0 : _a.canWrite) || !((_b = field._editor) === null || _b === void 0 ? void 0 : _b.hasLock))
65
+ editContext.setFocusedField((_c = field._editor) === null || _c === void 0 ? void 0 : _c.descriptor, true);
66
+ }, ref,
67
+ onContextMenu });
68
+ const setFieldValue = (val) => {
69
+ setEditedValue(val);
70
+ if (editContext)
71
+ editContext.editField({ field, value: val, refresh: "none" });
72
+ };
73
+ const element = React.createElement(tag || "div", properies, value);
74
+ if (isLocked) {
75
+ return (_jsxs(_Fragment, { children: [_jsx(LockedFieldIndicator, { elementRef: ref, field: liveField }), " ", element] }));
76
+ }
77
+ return element;
78
+ }
@@ -0,0 +1,19 @@
1
+ "use client";
2
+ var __rest = (this && this.__rest) || function (s, e) {
3
+ var t = {};
4
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
5
+ t[p] = s[p];
6
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
7
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
8
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
9
+ t[p[i]] = s[p[i]];
10
+ }
11
+ return t;
12
+ };
13
+ import { jsx as _jsx } from "react/jsx-runtime";
14
+ import dynamic from "next/dynamic";
15
+ const TextEditor = dynamic(() => import("./TextEditor").then((dnd) => dnd.TextEditor), { ssr: false });
16
+ export function TextEditorWrapper(_a) {
17
+ var { field, tag } = _a, props = __rest(_a, ["field", "tag"]);
18
+ return _jsx(TextEditor, Object.assign({ field: field, tag: tag }, props));
19
+ }
@@ -0,0 +1,12 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import "server-only";
3
+ import { useAlpacaContext } from "../alpacaContext";
4
+ import dynamic from "next/dynamic";
5
+ const TranslateEditor = dynamic(() => import("./TranslateEditor").then((dnd) => dnd.TranslateEditor), { ssr: false });
6
+ export function Translate({ text }) {
7
+ const context = useAlpacaContext();
8
+ const dictionary = context.dictionary;
9
+ if (context.pageContext.pageEditing)
10
+ return _jsx(TranslateEditor, { text: text });
11
+ return dictionary[text] || text;
12
+ }
@@ -0,0 +1,24 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useEffect } from "react";
4
+ import { useEditContext } from "../editor/editContext";
5
+ import { TextEditor } from "./TextEditor";
6
+ export function TranslateEditor({ text }) {
7
+ const context = useEditContext();
8
+ if (!context || !context.dictionary)
9
+ return text;
10
+ const dictionary = context.dictionary;
11
+ useEffect(() => {
12
+ if (Object.keys(dictionary).indexOf(text) < 0 &&
13
+ context.unresolvedDictionaryKeys.indexOf(text) < 0) {
14
+ context.setUnresolvedDictionaryKeys([
15
+ ...context.unresolvedDictionaryKeys,
16
+ text,
17
+ ]);
18
+ }
19
+ }, []);
20
+ if (dictionary[text]) {
21
+ return _jsx(TextEditor, { field: dictionary[text] });
22
+ }
23
+ return (_jsx("span", { className: "a-p-1 a-ring-2 a-ring-red-500", onClick: () => console.log("create dictionary entry"), children: text }));
24
+ }
@@ -0,0 +1,7 @@
1
+ export * from "./Placeholder";
2
+ export * from "./Text";
3
+ export * from "./Picture";
4
+ export * from "./RichText";
5
+ export * from "./Image";
6
+ export * from "./Link";
7
+ export * from "./Translate";
@@ -0,0 +1,26 @@
1
+ export function getRenderedPictureVariant(params, variants) {
2
+ var _a, _b;
3
+ const variantName = (_a = params.variant) !== null && _a !== void 0 ? _a : "auto";
4
+ const variant = variantName.toLocaleLowerCase() === "auto" && params.aspectRatio
5
+ ? getBestMatchingVariant(variants, params.aspectRatio)
6
+ : (_b = variants.find((v) => v.name.toLowerCase() == variantName.toLowerCase())) !== null && _b !== void 0 ? _b : variants[0];
7
+ return variant;
8
+ }
9
+ export function getBestMatchingVariant(variants, aspectRatio) {
10
+ var _a;
11
+ if (!aspectRatio)
12
+ return ((_a = variants.find((v) => v.name.toLowerCase() == "default")) !== null && _a !== void 0 ? _a : variants[0]);
13
+ let minDistance = 1000000;
14
+ let bestMatch = undefined;
15
+ for (let i = 0; i < variants.length; i++) {
16
+ const variant = variants[i];
17
+ if (!variant.src)
18
+ continue;
19
+ const distance = Math.abs(aspectRatio - variant.aspectRatio);
20
+ if (distance < minDistance) {
21
+ minDistance = distance;
22
+ bestMatch = variant;
23
+ }
24
+ }
25
+ return bestMatch !== null && bestMatch !== void 0 ? bestMatch : variants[0];
26
+ }
@@ -0,0 +1,12 @@
1
+ "use client";
2
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
3
+ import { CopyToClipboardButton } from "./ui/CopyToClipboardButton";
4
+ import { Section } from "./ui/Section";
5
+ export function ComponentInfo({ component, }) {
6
+ var _a;
7
+ if (!(component === null || component === void 0 ? void 0 : component.fields))
8
+ return;
9
+ const hostingPageItem = component._editor.hostingPageItem ? (_jsxs(_Fragment, { children: [_jsx("div", { className: "a-font-bold", children: "Source:" }), _jsxs("div", { children: [component._editor.hostingPageItem.path, " (ID:", " ", component._editor.hostingPageItem.id, ")"] })] })) : null;
10
+ const linkedComponent = component._editor.linkedComponentItem ? (_jsxs(_Fragment, { children: [_jsx("div", { className: "a-font-bold", children: "Source:" }), _jsxs("div", { children: [component._editor.linkedComponentItem.path, " (", component._editor.linkedComponentItem.id, ")"] })] })) : null;
11
+ return (_jsxs("div", { children: [_jsx("h2", { className: "a-py-3 a-px-3 a-text-l a-font-bold a-my-2", children: component.name }), _jsx(Section, { title: "Info", children: _jsxs("div", { className: "a-grid a-grid-cols-[min-content_1fr] a-gap-3 a-text-xs a-bg-gray-100", children: [_jsx("div", { className: "a-font-bold", children: "ID:" }), _jsxs("div", { children: [component.id, " ", _jsx(CopyToClipboardButton, { text: component.id })] }), _jsx("div", { className: "a-font-bold", children: "Template" }), _jsxs("div", { children: [component.componentType, " (", component.templateId, _jsx(CopyToClipboardButton, { text: component.templateId }), ")"] }), _jsx("div", { className: "a-font-bold", children: "Languages" }), _jsx("div", { children: (_a = component._editor.translations) === null || _a === void 0 ? void 0 : _a.join(", ") }), hostingPageItem, linkedComponent] }) })] }));
12
+ }
@@ -0,0 +1,29 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState, forwardRef, useImperativeHandle } from "react";
3
+ import { Dialog } from "primereact/dialog";
4
+ import { Button } from "primereact/button";
5
+ const ConfirmationDialog = forwardRef((_props, ref) => {
6
+ const [visible, setVisible] = useState(false);
7
+ const [props, setProps] = useState();
8
+ useImperativeHandle(ref, () => ({
9
+ confirm: (props) => {
10
+ setVisible(true);
11
+ setProps(props);
12
+ },
13
+ }));
14
+ const handleAccept = () => {
15
+ props === null || props === void 0 ? void 0 : props.accept();
16
+ setVisible(false);
17
+ };
18
+ const handleReject = () => {
19
+ if (props === null || props === void 0 ? void 0 : props.reject)
20
+ props.reject();
21
+ setVisible(false);
22
+ };
23
+ const handleCancel = () => {
24
+ setVisible(false);
25
+ };
26
+ const dialogFooter = (_jsxs("div", { children: [_jsx(Button, { label: (props === null || props === void 0 ? void 0 : props.acceptLabel) || "Yes", icon: (props === null || props === void 0 ? void 0 : props.acceptIcon) || "pi pi-check", onClick: handleAccept, className: "p-button-text" }), (props === null || props === void 0 ? void 0 : props.rejectLabel) && (_jsx(Button, { label: props === null || props === void 0 ? void 0 : props.rejectLabel, icon: (props === null || props === void 0 ? void 0 : props.rejectIcon) || "pi pi-times", onClick: handleReject, className: "p-button-text" })), (props === null || props === void 0 ? void 0 : props.showCancel) && (_jsx(Button, { label: "Cancel", icon: "pi pi-ban", onClick: handleCancel, className: "p-button-text" }))] }));
27
+ return (_jsx(Dialog, { header: (props === null || props === void 0 ? void 0 : props.header) || "Confirm", visible: visible, style: { width: "50vw" }, footer: dialogFooter, onHide: handleCancel, children: _jsxs("div", { className: "a-pt-3 a-flex a-items-center a-gap-2", children: [(props === null || props === void 0 ? void 0 : props.icon) && _jsx("i", { className: props.icon + " a-text-3xl" }), props === null || props === void 0 ? void 0 : props.message] }) }));
28
+ });
29
+ export default ConfirmationDialog;
@@ -1,4 +1,3 @@
1
- "use strict";
2
1
  "use client";
3
2
  var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
4
3
  function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
@@ -9,29 +8,26 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
10
9
  });
11
10
  };
12
- var __importDefault = (this && this.__importDefault) || function (mod) {
13
- return (mod && mod.__esModule) ? mod : { "default": mod };
14
- };
15
- Object.defineProperty(exports, "__esModule", { value: true });
16
- const jsx_runtime_1 = require("react/jsx-runtime");
17
- const progressspinner_1 = require("primereact/progressspinner");
18
- const __1 = require("..");
19
- const tree_1 = require("primereact/tree");
20
- const react_1 = require("react");
21
- const contentService_1 = require("./contentService");
22
- const contextmenu_1 = require("primereact/contextmenu");
23
- const editService_1 = require("./editService");
24
- const ItemNameDialog_1 = __importDefault(require("./ItemNameDialog"));
25
- function ContentTree({ isDraggable, dragStart, dragEnd, expandIdPath, selectionMode, selectedItemIds, rootItemId, onSelectionChange, filter, templateIds, className, includeEmbeddedItems, onDoubleClick, secondarySelectedItemId, }) {
26
- const [treeNodes, setTreeNodes] = (0, react_1.useState)([]);
27
- const [selectedKeys, setSelectedKeys] = (0, react_1.useState)();
28
- const [expandedKeys, setExpandedKeys] = (0, react_1.useState)();
29
- const treeContainerRef = (0, react_1.useRef)(null);
30
- const editContext = (0, __1.useEditContext)();
31
- const [selectedNodeScrolledIntoView, setSelectedNodeScrolledIntoView] = (0, react_1.useState)(false);
32
- const cm = (0, react_1.useRef)(null);
33
- const [menu, setMenu] = (0, react_1.useState)([]);
34
- const itemNameDialogRef = (0, react_1.useRef)(null);
11
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
12
+ import { ProgressSpinner } from "primereact/progressspinner";
13
+ import { useEditContext } from ".";
14
+ import { Tree, } from "primereact/tree";
15
+ import { useEffect, useRef, useState } from "react";
16
+ import { getChildren } from "./services/contentService";
17
+ import { ContextMenu } from "primereact/contextmenu";
18
+ import { createItem, loadInsertOptions } from "./services/editService";
19
+ import ItemNameDialog from "./ItemNameDialog";
20
+ import { getDeleteItemCommand } from "./itemCommands";
21
+ export default function ContentTree({ isDraggable, dragStart, dragEnd, expandIdPath, selectionMode, selectedItemIds, rootItemId, onSelectionChange, filter, templateIds, className, includeEmbeddedItems, onDoubleClick, secondarySelectedItemId, }) {
22
+ const [treeNodes, setTreeNodes] = useState([]);
23
+ const [selectedKeys, setSelectedKeys] = useState();
24
+ const [expandedKeys, setExpandedKeys] = useState();
25
+ const treeContainerRef = useRef(null);
26
+ const editContext = useEditContext();
27
+ const [selectedNodeScrolledIntoView, setSelectedNodeScrolledIntoView] = useState(false);
28
+ const cm = useRef(null);
29
+ const [menu, setMenu] = useState([]);
30
+ const itemNameDialogRef = useRef(null);
35
31
  const loadOnExpand = (event) => __awaiter(this, void 0, void 0, function* () {
36
32
  const node = event.node;
37
33
  yield loadChildren(node);
@@ -40,7 +36,7 @@ function ContentTree({ isDraggable, dragStart, dragEnd, expandIdPath, selectionM
40
36
  return __awaiter(this, void 0, void 0, function* () {
41
37
  if (!node.children) {
42
38
  node.loading = true;
43
- const nodes = yield loadNodeChildren(node.key);
39
+ const nodes = yield loadNodeChildren(node);
44
40
  node.children = nodes;
45
41
  let value = [...treeNodes];
46
42
  setTreeNodes(value);
@@ -52,10 +48,10 @@ function ContentTree({ isDraggable, dragStart, dragEnd, expandIdPath, selectionM
52
48
  node.children = undefined;
53
49
  loadChildren(node);
54
50
  }
55
- const loadNodeChildren = (id) => __awaiter(this, void 0, void 0, function* () {
51
+ const loadNodeChildren = (node) => __awaiter(this, void 0, void 0, function* () {
56
52
  if (!editContext)
57
53
  return [];
58
- let children = yield (0, contentService_1.getChildren)(id, editContext.sessionId, templateIds, includeEmbeddedItems !== null && includeEmbeddedItems !== void 0 ? includeEmbeddedItems : false);
54
+ let children = yield getChildren(node.key, editContext.sessionId, templateIds, includeEmbeddedItems !== null && includeEmbeddedItems !== void 0 ? includeEmbeddedItems : false);
59
55
  if (filter)
60
56
  children = filter(children);
61
57
  return children.map((x) => ({
@@ -65,9 +61,10 @@ function ContentTree({ isDraggable, dragStart, dragEnd, expandIdPath, selectionM
65
61
  isDraggable: isDraggable && isDraggable(x),
66
62
  data: x,
67
63
  leaf: !x.hasChildren,
64
+ parent: node,
68
65
  }));
69
66
  });
70
- (0, react_1.useEffect)(() => {
67
+ useEffect(() => {
71
68
  const newExpandedKeys = getExpandedKeys();
72
69
  setExpandedKeys(newExpandedKeys);
73
70
  preLoadNodes(newExpandedKeys);
@@ -87,7 +84,7 @@ function ContentTree({ isDraggable, dragStart, dragEnd, expandIdPath, selectionM
87
84
  }
88
85
  function preLoadNodes(expandedKeys) {
89
86
  return __awaiter(this, void 0, void 0, function* () {
90
- const rootNodes = yield loadNodeChildren(rootItemId);
87
+ const rootNodes = yield loadNodeChildren({ key: rootItemId });
91
88
  yield doPreloadNodes(expandedKeys, rootNodes);
92
89
  setExpandedKeys(Object.assign({}, expandedKeys));
93
90
  setTreeNodes([...rootNodes]);
@@ -97,7 +94,7 @@ function ContentTree({ isDraggable, dragStart, dragEnd, expandIdPath, selectionM
97
94
  return __awaiter(this, void 0, void 0, function* () {
98
95
  for (let i = 0; i < treeNodes.length; i++) {
99
96
  if (expandedKeys[treeNodes[i].key]) {
100
- const children = yield loadNodeChildren(treeNodes[i].key);
97
+ const children = yield loadNodeChildren(treeNodes[i]);
101
98
  treeNodes[i].children = children;
102
99
  yield doPreloadNodes(expandedKeys, children);
103
100
  }
@@ -115,13 +112,13 @@ function ContentTree({ isDraggable, dragStart, dragEnd, expandIdPath, selectionM
115
112
  });
116
113
  }
117
114
  const nodeTemplate = (node, options) => {
118
- let label = (0, jsx_runtime_1.jsx)("span", { children: node.label });
115
+ let label = _jsx("span", { children: node.label });
119
116
  if (node.url) {
120
- label = ((0, jsx_runtime_1.jsx)("a", { onDragStart: (e) => e.preventDefault(), href: node.url, className: "a-text-primary hover:a-underline a-font-semibold", children: node.label }));
117
+ label = (_jsx("a", { onDragStart: (e) => e.preventDefault(), href: node.url, className: "a-text-primary hover:a-underline a-font-semibold", children: node.label }));
121
118
  }
122
- return ((0, jsx_runtime_1.jsxs)("span", { onDragStart: (event) => {
119
+ return (_jsxs("span", { onDragStart: (event) => {
123
120
  handleDragStart(event, node.data);
124
- }, onDragEnd: handleDragEnd, draggable: node.isDraggable, className: `a-flex a-items-center a-gap-2 ${node.isDraggable ? "a-cursor-grab" : ""} ${options.className} ${node.data.id == secondarySelectedItemId ? "a-selected-secondary" : ""}`, children: [(0, jsx_runtime_1.jsx)("img", { src: node.iconUrl, style: { height: "20px" }, width: "20", height: "20", onDragStart: (e) => e.preventDefault() }), label, node.loading && ((0, jsx_runtime_1.jsx)(progressspinner_1.ProgressSpinner, { style: { width: "20px", height: "20px" } }))] }));
121
+ }, onDragEnd: handleDragEnd, draggable: node.isDraggable, className: `a-flex a-items-center a-gap-2 ${node.isDraggable ? "a-cursor-grab" : ""} ${options.className} ${node.data.id == secondarySelectedItemId ? "a-selected-secondary" : ""}`, children: [_jsx("img", { src: node.iconUrl, style: { height: "16px" }, width: "16", height: "16", onDragStart: (e) => e.preventDefault() }), label, node.loading && (_jsx(ProgressSpinner, { style: { width: "20px", height: "20px" } }))] }));
125
122
  };
126
123
  function handleDragStart(event, item) {
127
124
  if (dragStart)
@@ -132,7 +129,7 @@ function ContentTree({ isDraggable, dragStart, dragEnd, expandIdPath, selectionM
132
129
  if (dragEnd)
133
130
  dragEnd();
134
131
  }
135
- (0, react_1.useEffect)(() => {
132
+ useEffect(() => {
136
133
  const newSelectedKeys = {};
137
134
  selectedItemIds === null || selectedItemIds === void 0 ? void 0 : selectedItemIds.forEach((x) => {
138
135
  if (x.startsWith("{") && x.endsWith("}") && x.length > 2)
@@ -146,7 +143,7 @@ function ContentTree({ isDraggable, dragStart, dragEnd, expandIdPath, selectionM
146
143
  else
147
144
  setSelectedKeys(newSelectedKeys);
148
145
  }, [selectedItemIds]);
149
- (0, react_1.useEffect)(() => {
146
+ useEffect(() => {
150
147
  const scrollNodeIntoView = () => {
151
148
  if (!treeContainerRef.current)
152
149
  return;
@@ -167,16 +164,16 @@ function ContentTree({ isDraggable, dragStart, dragEnd, expandIdPath, selectionM
167
164
  var _a;
168
165
  (_a = itemNameDialogRef.current) === null || _a === void 0 ? void 0 : _a.show({
169
166
  accept: (name) => __awaiter(this, void 0, void 0, function* () {
170
- yield (0, editService_1.createItem)(parent, templateId, name);
167
+ yield createItem(parent, templateId, name);
171
168
  editContext === null || editContext === void 0 ? void 0 : editContext.requestRefresh("immediate");
172
169
  node.expanded = true;
173
170
  refreshNode(node);
174
171
  }),
175
172
  });
176
173
  }
177
- return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(ItemNameDialog_1.default, { ref: itemNameDialogRef }), (0, jsx_runtime_1.jsx)(contextmenu_1.ContextMenu, { model: menu, ref: cm, className: "a-text-sm" }), (0, jsx_runtime_1.jsx)("div", { className: className, onDragEnterCapture: (ev) => ev.stopPropagation(), onDragOverCapture: (ev) => ev.stopPropagation(), onDragLeaveCapture: (ev) => ev.stopPropagation(), ref: treeContainerRef, children: (0, jsx_runtime_1.jsx)(tree_1.Tree, { value: treeNodes, expandedKeys: expandedKeys, onToggle: (e) => setExpandedKeys(e.value), nodeTemplate: nodeTemplate,
174
+ return (_jsxs(_Fragment, { children: [_jsx(ItemNameDialog, { ref: itemNameDialogRef }), _jsx(ContextMenu, { model: menu, ref: cm, className: "a-text-sm" }), _jsx("div", { className: className, onDragEnterCapture: (ev) => ev.stopPropagation(), onDragOverCapture: (ev) => ev.stopPropagation(), onDragLeaveCapture: (ev) => ev.stopPropagation(), ref: treeContainerRef, children: _jsx(Tree, { value: treeNodes, expandedKeys: expandedKeys, onToggle: (e) => setExpandedKeys(e.value), nodeTemplate: nodeTemplate,
178
175
  //dragdropScope={isDraggable ? "alpaca" : undefined}
179
- className: "a-w-full a-h-full alpaca-no-border a-p-0 a-text-xs", onExpand: loadOnExpand, selectionMode: selectionMode, pt: { container: { className: "a-h-full" } }, onNodeDoubleClick: (e) => {
176
+ className: "a-w-full a-h-full alpaca-no-border a-p-0 a-text-xs", onExpand: loadOnExpand, selectionMode: selectionMode == "none" ? undefined : selectionMode, pt: { container: { className: "a-h-full" } }, onNodeDoubleClick: (e) => {
180
177
  onDoubleClick === null || onDoubleClick === void 0 ? void 0 : onDoubleClick(e.node.data);
181
178
  }, onSelectionChange: (ev) => {
182
179
  if (onSelectionChange && selectionMode == "multiple") {
@@ -190,26 +187,38 @@ function ContentTree({ isDraggable, dragStart, dragEnd, expandIdPath, selectionM
190
187
  onSelectionChange(nodeDictionary[ev.value].data);
191
188
  }
192
189
  }, selectionKeys: selectedKeys, onContextMenu: (e) => __awaiter(this, void 0, void 0, function* () {
193
- var _a;
190
+ var _a, _b;
194
191
  e.originalEvent.preventDefault();
195
192
  const item = e.node.data;
196
- var insertOptions = yield (0, editService_1.loadInsertOptions)(item);
197
- setMenu([
193
+ const insertOptions = yield loadInsertOptions(item);
194
+ const contextMenuItems = [
198
195
  {
199
196
  label: "Insert",
200
197
  disabled: insertOptions.length == 0,
198
+ icon: "pi pi-plus",
201
199
  items: insertOptions.length === 0
202
200
  ? undefined
203
201
  : insertOptions.map((x) => ({
204
202
  label: x.name,
205
- icon: ((0, jsx_runtime_1.jsx)("img", { className: "p-menuitem-icon", src: x.icon, style: { height: "16px" }, width: "16", height: "16", onDragStart: (e) => e.preventDefault() })),
203
+ icon: (_jsx("img", { className: "p-menuitem-icon", src: x.icon, style: { height: "16px" }, width: "16", height: "16", onDragStart: (e) => e.preventDefault() })),
206
204
  command: () => {
207
205
  insertItem(e.node, item, x.id);
208
206
  },
209
207
  })),
210
208
  },
211
- ]);
212
- (_a = cm.current) === null || _a === void 0 ? void 0 : _a.show(e.originalEvent);
209
+ {
210
+ label: "Delete",
211
+ icon: "pi pi-trash",
212
+ command: getDeleteItemCommand(item, editContext, () => {
213
+ const parent = e.node.parent;
214
+ if (parent) {
215
+ refreshNode(parent);
216
+ }
217
+ }),
218
+ disabled: item.id == ((_a = editContext === null || editContext === void 0 ? void 0 : editContext.page) === null || _a === void 0 ? void 0 : _a.id),
219
+ },
220
+ ];
221
+ setMenu(contextMenuItems);
222
+ (_b = cm.current) === null || _b === void 0 ? void 0 : _b.show(e.originalEvent);
213
223
  }) }) })] }));
214
224
  }
215
- exports.default = ContentTree;