@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
@@ -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,33 +8,33 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
9
8
  step((generator = generator.apply(thisArg, _arguments || [])).next());
10
9
  });
11
10
  };
12
- Object.defineProperty(exports, "__esModule", { value: true });
13
- exports.AiTerminal = void 0;
14
- const jsx_runtime_1 = require("react/jsx-runtime");
15
- const react_1 = require("react");
16
- const terminalservice_1 = require("primereact/terminalservice");
17
- const navigation_1 = require("next/navigation");
18
- const Terminal_1 = require("./Terminal");
19
- const editContext_1 = require("./editContext");
20
- const dropdown_1 = require("primereact/dropdown");
21
- function AiTerminal({ selection, newEditOperations, }) {
22
- var _a;
23
- const searchParams = (0, navigation_1.useSearchParams)();
24
- const editContext = (0, editContext_1.useEditContext)();
11
+ import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
12
+ import { useEffect, useRef, useState } from "react";
13
+ import { TerminalService } from "primereact/terminalservice";
14
+ import { useRouter, useSearchParams } from "next/navigation";
15
+ import { Terminal } from "../Terminal";
16
+ import { useEditContext } from "../editContext";
17
+ import { Dropdown } from "primereact/dropdown";
18
+ import { getSelectedText } from "../utils";
19
+ import Cookies from "universal-cookie";
20
+ import { WizardIcon } from "../ui/Icons";
21
+ import { AiResponseMessage } from "./AiResponseMessage";
22
+ export function AiTerminal({ closeButton }) {
23
+ const searchParams = useSearchParams();
24
+ const editContext = useEditContext();
25
+ const [showPredefined, setShowPredefined] = useState(false);
25
26
  if (!editContext)
26
27
  return null;
27
- const [messages, setMessages] = (0, react_1.useState)([]);
28
- const [response, setResponse] = (0, react_1.useState)();
29
- const [model, setModel] = (0, react_1.useState)("gpt-3.5-turbo-1106");
30
- const selectionRef = (0, react_1.useRef)(selection);
31
- (0, react_1.useEffect)(() => {
32
- selectionRef.current = selection;
33
- }, [selection]);
34
- const messagesRef = (0, react_1.useRef)(messages);
35
- (0, react_1.useEffect)(() => {
28
+ const [messages, setMessages] = useState([]);
29
+ const [response, setResponse] = useState();
30
+ const [model, setModel] = useState("gpt-3.5-turbo-0125");
31
+ const [prompt, setPrompt] = useState("");
32
+ const selection = editContext.selection;
33
+ const messagesRef = useRef(messages);
34
+ useEffect(() => {
36
35
  messagesRef.current = messages;
37
36
  }, [messages]);
38
- const router = (0, navigation_1.useRouter)();
37
+ const router = useRouter();
39
38
  function commandHandler(text, callback) {
40
39
  return __awaiter(this, void 0, void 0, function* () {
41
40
  const newMessages = [
@@ -43,30 +42,29 @@ function AiTerminal({ selection, newEditOperations, }) {
43
42
  { content: text, role: "user", name: "user" },
44
43
  ];
45
44
  let lastOps = 0;
46
- const response = yield prompt(newMessages, selectionRef.current, searchParams.get("session"), searchParams.get("itemid"), searchParams.get("language"), searchParams.get("version"), model, (response) => {
45
+ const selectedText = getSelectedText();
46
+ const response = yield executePrompt(newMessages, selection, editContext.sessionId, searchParams.get("itemid"), searchParams.get("language"), searchParams.get("version"), model, selectedText, (response) => {
47
47
  setResponse(response);
48
48
  handleResponse(response, callback, false);
49
49
  if (response.editOperations.length) {
50
- if (newEditOperations)
51
- newEditOperations(response.editOperations);
52
50
  if (lastOps != response.editOperations.length) {
53
51
  lastOps = response.editOperations.length;
54
52
  editContext.requestRefresh("immediate");
55
53
  }
56
54
  else {
57
55
  response.editOperations.forEach((op) => {
56
+ var _a;
58
57
  if (op.type === "edit-field") {
59
58
  const editFieldOp = op;
60
59
  const liveField = editContext.getLiveFieldIfExists({
61
- id: editFieldOp.fieldId,
62
- item: {
63
- id: editFieldOp.itemId,
64
- language: editFieldOp.language,
65
- version: editFieldOp.version,
66
- },
60
+ fieldId: editFieldOp.fieldId,
61
+ item: editFieldOp.item,
67
62
  });
68
- if (liveField != null)
63
+ if (liveField != null) {
69
64
  liveField.value = editFieldOp.value;
65
+ liveField._editor.rawValue = editFieldOp.value;
66
+ editContext === null || editContext === void 0 ? void 0 : editContext.setFocusedField((_a = liveField._editor) === null || _a === void 0 ? void 0 : _a.descriptor, false);
67
+ }
70
68
  }
71
69
  });
72
70
  }
@@ -74,6 +72,7 @@ function AiTerminal({ selection, newEditOperations, }) {
74
72
  });
75
73
  if (response) {
76
74
  handleResponse(response, callback, true);
75
+ //if (newEditOperations) newEditOperations(response.editOperations);
77
76
  router.refresh();
78
77
  }
79
78
  // if (response) {
@@ -97,24 +96,34 @@ function AiTerminal({ selection, newEditOperations, }) {
97
96
  // }
98
97
  // // else
99
98
  // // TerminalService.emit('clear');
99
+ setResponse(response ? response : undefined);
100
100
  setMessages(newMessages);
101
101
  });
102
102
  }
103
- (0, react_1.useEffect)(() => {
104
- terminalservice_1.TerminalService.on("command", commandHandler);
103
+ useEffect(() => {
104
+ TerminalService.on("command", commandHandler);
105
105
  return () => {
106
- terminalservice_1.TerminalService.off("command", commandHandler);
106
+ TerminalService.off("command", commandHandler);
107
107
  };
108
108
  }, []);
109
- return ((0, jsx_runtime_1.jsxs)("div", { className: "a-h-full a-flex a-flex-col a-relative a-flex-1", children: [(0, jsx_runtime_1.jsx)("div", { className: "a-flex-1 a-relative", children: (0, jsx_runtime_1.jsx)("div", { className: "a-inset-0 a-absolute", children: (0, jsx_runtime_1.jsx)(Terminal_1.Terminal, { onReset: () => setMessages([]), toolbar: (0, jsx_runtime_1.jsx)("div", { children: (0, jsx_runtime_1.jsx)(dropdown_1.Dropdown, { value: model, onChange: (e) => setModel(e.value), options: ["gpt-3.5-turbo-1106", "gpt-4-1106-preview"] }) }), commandHandler: (v, callback) => {
110
- commandHandler(v, callback);
111
- } }) }) }), (response === null || response === void 0 ? void 0 : response.numInputTokens) && ((0, jsx_runtime_1.jsxs)("div", { className: "a-text-xs", children: ["Tokens in: ", response === null || response === void 0 ? void 0 : response.numInputTokens, " out: ", response === null || response === void 0 ? void 0 : response.numOutputTokens, " ", (_a = response === null || response === void 0 ? void 0 : response.toolCalls) === null || _a === void 0 ? void 0 : _a.map((tool_call) => {
112
- var _a;
113
- return (_a = tool_call.function) === null || _a === void 0 ? void 0 : _a.name;
114
- })] }))] }));
109
+ return (_jsx("div", { className: "a-h-full a-flex a-flex-col a-relative a-flex-1", children: _jsx("div", { className: "a-flex-1 a-relative", children: _jsx("div", { className: "a-inset-0 a-absolute", children: _jsx(Terminal, { onReset: () => {
110
+ setMessages([]);
111
+ setResponse(undefined);
112
+ }, infobar: (response === null || response === void 0 ? void 0 : response.numInputTokens) && (_jsxs("div", { className: "a-text-gray-400 a-text-right", style: { fontSize: "10px" }, children: ["Tokens in: ", response === null || response === void 0 ? void 0 : response.numInputTokens, " out:", " ", response === null || response === void 0 ? void 0 : response.numOutputTokens, " ", response === null || response === void 0 ? void 0 : response.state, " "] })), prompt: prompt, setPrompt: setPrompt, statusbar: _jsxs("div", { className: "a-flex a-items-center a-justify-between a-gap-1", children: [_jsxs("a", { className: "a-text-xs a-text-blue-300 a-cursor-pointer a-flex a-items-center a-gap-1", onClick: () => {
113
+ setShowPredefined(!showPredefined);
114
+ }, children: [_jsx(WizardIcon, { className: "a-w-5 a-h-5" }), "Predefined prompts"] }), showPredefined && (_jsx("div", { className: "a-absolute a-right-0 a-left-0 a-bottom-8 a-text-sm a-overflow-y-auto a-bg-white a-p-3 a-pb-1 a-flex a-flex-col a-gap-1 ", children: editContext.editData.aiPrompts.map((p, index) => (_jsx("div", { className: "a-p-1.5 a-mb-1 a-border a-border-gray-200 a-rounded-lg a-cursor-pointer a-text-gray-700 a-text-xs", onClick: () => {
115
+ setPrompt(p.prompt);
116
+ setShowPredefined(false);
117
+ }, children: p.title }, index))) }))] }), toolbar: _jsxs("div", { className: "a-flex a-items-center", children: [_jsx(Dropdown, { className: "a-text-sm", value: model, onChange: (e) => setModel(e.value), options: [
118
+ "gpt-3.5-turbo-0125",
119
+ "gpt-4-0125-preview",
120
+ "gpt-3.5-turbo-1106",
121
+ "gpt-4-1106-preview",
122
+ ] }), closeButton] }), commandHandler: (v, callback) => {
123
+ commandHandler(v, callback);
124
+ } }) }) }) }));
115
125
  }
116
- exports.AiTerminal = AiTerminal;
117
- function prompt(messages, selection, session, itemid, language, version, model, callback) {
126
+ function executePrompt(messages, selection, session, itemid, language, version, model, selectedText, callback) {
118
127
  return __awaiter(this, void 0, void 0, function* () {
119
128
  const response = yield fetch("/alpaca/headless/ai/prompt", {
120
129
  method: "POST",
@@ -124,13 +133,14 @@ function prompt(messages, selection, session, itemid, language, version, model,
124
133
  language,
125
134
  version,
126
135
  selection,
136
+ selectedText,
127
137
  model,
128
138
  sessionId: session,
129
139
  }),
130
- credentials: "omit",
140
+ credentials: "include",
131
141
  headers: {
132
142
  "Content-Type": "application/json",
133
- //Cookie: 'test'// new Cookies().getAll(),
143
+ Cookie: new Cookies().getAll(),
134
144
  },
135
145
  next: {
136
146
  revalidate: 0,
@@ -181,5 +191,14 @@ function prompt(messages, selection, session, itemid, language, version, model,
181
191
  });
182
192
  }
183
193
  function handleResponse(response, terminalCallback, isFinished) {
184
- terminalCallback(response.responseText, isFinished);
194
+ var _a;
195
+ const toolcalls = ((_a = response === null || response === void 0 ? void 0 : response.toolCalls) === null || _a === void 0 ? void 0 : _a.map((tool_call) => {
196
+ var _a, _b;
197
+ return {
198
+ func: (_a = tool_call.function) === null || _a === void 0 ? void 0 : _a.name,
199
+ arguments: (_b = tool_call.function) === null || _b === void 0 ? void 0 : _b.arguments,
200
+ result: tool_call.result,
201
+ };
202
+ })) || [];
203
+ terminalCallback(_jsx(AiResponseMessage, { responseText: response.responseText, toolcalls: toolcalls, editOperations: response.editOperations }), isFinished);
185
204
  }
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { useState } from "react";
3
+ import { JsonView, defaultStyles } from "react-json-view-lite";
4
+ export function AiToolCall({ toolCall }) {
5
+ const [expanded, setExpaded] = useState(false);
6
+ return (_jsxs("div", { className: "a-mt-2", children: [_jsxs("div", { onClick: () => setExpaded(!expanded), className: "a-flex a-items-center a-cursor-pointer", children: [_jsx("i", { className: "pi pi-angle-right" }), " ", toolCall.func] }), expanded && (_jsxs("div", { className: "a-ml-4", children: [_jsx("div", { className: "a-italic", children: "Args:" }), _jsx("div", { children: renderJsonOrText(toolCall.arguments) }), _jsx("div", { className: "a-italic a-mt-1", children: "Result:" }), _jsxs("div", { className: "a-mb-4", children: [toolCall.error && (_jsx("div", { className: "a-text-red", children: toolCall.error })), renderJsonOrText(toolCall.result)] })] }))] }));
7
+ }
8
+ function renderJsonOrText(json) {
9
+ try {
10
+ return _jsx(JsonView, { data: JSON.parse(json), style: defaultStyles });
11
+ }
12
+ catch (e) {
13
+ return _jsx("div", { children: json });
14
+ }
15
+ }
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,287 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { confirmDialog } from "primereact/confirmdialog";
11
+ import uuid from "react-uuid";
12
+ import { getComponentById } from "../componentTreeHelper";
13
+ const isPlaceholder = (x) => x.components !== undefined;
14
+ export function getSelectedComponentCommands(editContext) {
15
+ const selection = editContext.selection;
16
+ const selectedComponents = selection
17
+ .map((x) => getComponentById(x, editContext.page))
18
+ .filter((x) => x);
19
+ const componentCommands = getComponentCommands(selectedComponents, editContext);
20
+ const componentCommandMenuItems = componentCommands.filter((x) => x.visibilityScopes.indexOf("menu") >= 0);
21
+ return componentCommandMenuItems;
22
+ }
23
+ export function getComponentCommands(entities, editContext) {
24
+ const components = entities.filter((x) => x && !isPlaceholder(x));
25
+ const commands = [
26
+ getInsertCommand(components, editContext),
27
+ getDeleteCommand(components, editContext),
28
+ getDuplicateCommand(components, editContext),
29
+ getSyncCommand(entities, editContext),
30
+ getAiCommand(editContext),
31
+ getDesignCommand(components, editContext),
32
+ getLinkToMasterCommand(components, editContext),
33
+ getInheritChildrenFromMasterCommand(components, editContext),
34
+ ];
35
+ return commands.filter((x) => x !== null);
36
+ }
37
+ function getInsertCommand(components, editContext) {
38
+ if (components.length !== 1 || isPlaceholder(components[0]))
39
+ return null;
40
+ if (components[0].placeholders.length == 0)
41
+ return null;
42
+ return {
43
+ id: "insert",
44
+ icon: "pi pi-plus",
45
+ label: "Insert component",
46
+ visibilityScopes: ["editFrame", "contextMenu"],
47
+ execute: (ev) => {
48
+ editContext.setSelectedForInsertion(components[0].id);
49
+ ev.stopPropagation();
50
+ ev.preventDefault();
51
+ },
52
+ };
53
+ }
54
+ function getDuplicateCommand(components, editContext) {
55
+ if (components.length < 1)
56
+ return null;
57
+ return {
58
+ id: "duplicate",
59
+ icon: "pi pi-copy",
60
+ label: "Duplicate",
61
+ visibilityScopes: ["contextMenu", "menu"],
62
+ execute: (ev) => {
63
+ var _a;
64
+ if (!((_a = components[0]._editor.placeholderReference) === null || _a === void 0 ? void 0 : _a.parentComponent))
65
+ return null;
66
+ editContext.duplicateComponents({
67
+ componentIds: components.map((x) => x.id),
68
+ parent: components[0]._editor.placeholderReference.parentComponent,
69
+ placeholderName: components[0]._editor.placeholderReference.key,
70
+ });
71
+ ev.stopPropagation();
72
+ ev.preventDefault();
73
+ },
74
+ };
75
+ }
76
+ function getAiCommand(editContext) {
77
+ return {
78
+ name: "ai",
79
+ icon: "pi pi-comments",
80
+ label: "AI",
81
+ disabled: () => false,
82
+ execute: (context) => __awaiter(this, void 0, void 0, function* () {
83
+ const event = context.event;
84
+ editContext.showAiPopup(event);
85
+ event.preventDefault();
86
+ event.stopPropagation();
87
+ }),
88
+ visibilityScopes: ["editFrame", "contextMenu"],
89
+ };
90
+ }
91
+ function getDesignCommand(components, editContext) {
92
+ if (components.length !== 1 || isPlaceholder(components[0]))
93
+ return null;
94
+ if (!Object.values(components[0].fields).find((x) => { var _a; return ((_a = x._editor) === null || _a === void 0 ? void 0 : _a.section) === "Design"; }))
95
+ return null;
96
+ return {
97
+ name: "design",
98
+ icon: "pi pi-palette",
99
+ label: "Design",
100
+ disabled: () => false,
101
+ execute: (context) => __awaiter(this, void 0, void 0, function* () {
102
+ editContext.showFieldEditorPopup(components[0].fields, ["Design"], context.event);
103
+ }),
104
+ visibilityScopes: ["menu", "editFrame", "contextMenu"],
105
+ };
106
+ }
107
+ function getLinkToMasterCommand(components, editContext) {
108
+ var _a, _b, _c;
109
+ if (!components.length)
110
+ return null;
111
+ if (((_c = (_b = (_a = editContext.page) === null || _a === void 0 ? void 0 : _a._editor) === null || _b === void 0 ? void 0 : _b.masterLanguages) === null || _c === void 0 ? void 0 : _c.length) === 0)
112
+ return null;
113
+ return getCheckboxCommand(components, editContext, "componentLinkedToMasterLanguage", "Linked To Master Language");
114
+ }
115
+ function getCheckboxCommand(components, editContext, fieldName, label) {
116
+ const someLinked = components.find((x) => { var _a, _b; return ((_b = (_a = x.fields[fieldName]) === null || _a === void 0 ? void 0 : _a._editor) === null || _b === void 0 ? void 0 : _b.rawValue) === "1"; });
117
+ const allLinked = !components.find((x) => { var _a, _b; return ((_b = (_a = x.fields[fieldName]) === null || _a === void 0 ? void 0 : _a._editor) === null || _b === void 0 ? void 0 : _b.rawValue) !== "1"; });
118
+ return {
119
+ name: fieldName,
120
+ icon: "pi pi-" +
121
+ (allLinked ? "check-square" : someLinked ? "stop-circle" : "stop"),
122
+ label,
123
+ disabled: () => false,
124
+ execute: () => __awaiter(this, void 0, void 0, function* () {
125
+ components.forEach((c) => {
126
+ editContext.editField({
127
+ field: c.fields[fieldName],
128
+ rawValue: allLinked ? "" : "1",
129
+ refresh: "immediate",
130
+ });
131
+ });
132
+ }),
133
+ visibilityScopes: ["menu", "contextMenu"],
134
+ };
135
+ }
136
+ function getInheritChildrenFromMasterCommand(components, editContext) {
137
+ var _a, _b, _c;
138
+ if (!components.length)
139
+ return null;
140
+ if (((_c = (_b = (_a = editContext.page) === null || _a === void 0 ? void 0 : _a._editor) === null || _b === void 0 ? void 0 : _b.masterLanguages) === null || _c === void 0 ? void 0 : _c.length) === 0)
141
+ return null;
142
+ if (components.find((x) => x.placeholders.length === 0))
143
+ return null;
144
+ return getCheckboxCommand(components, editContext, "inheritChildrenFromMasterLanguage", "Inherit Children From Master");
145
+ }
146
+ function isLocked(c, editContext) {
147
+ if (editContext.activeSessions.find((x) => {
148
+ var _a;
149
+ return ((_a = x.fieldLock) === null || _a === void 0 ? void 0 : _a.item.id) === c.id &&
150
+ x.fieldLock.item.language == c.language &&
151
+ x.fieldLock.item.version === c.version &&
152
+ x.sessionId !== editContext.sessionId;
153
+ }) !== undefined) {
154
+ return true;
155
+ }
156
+ else
157
+ return (c.placeholders.find((x) => x.components.find((child) => isLocked(child, editContext)) !==
158
+ undefined) !== undefined);
159
+ }
160
+ function getDeleteCommand(components, editContext) {
161
+ const applicableComponents = components.filter((c) => {
162
+ var _a, _b, _c, _d;
163
+ return ((!isPlaceholder(c) && !((_a = c._editor) === null || _a === void 0 ? void 0 : _a.hostingPageItem)) ||
164
+ ((_c = (_b = c._editor) === null || _b === void 0 ? void 0 : _b.hostingPageItem) === null || _c === void 0 ? void 0 : _c.id) === ((_d = editContext.page) === null || _d === void 0 ? void 0 : _d.id)) &&
165
+ !isLocked(c, editContext);
166
+ });
167
+ if (applicableComponents.length === 0)
168
+ return null;
169
+ return {
170
+ name: "delete",
171
+ label: "Delete",
172
+ icon: "pi pi-fw pi-trash",
173
+ execute: (context) => __awaiter(this, void 0, void 0, function* () { return deleteComponents(applicableComponents, context.editContext); }),
174
+ disabled: () => applicableComponents.length === 0 ||
175
+ applicableComponents.length !== components.length,
176
+ visibilityScopes: ["editFrame", "menu", "contextMenu"],
177
+ };
178
+ }
179
+ function canSynchronize(placeholderData) {
180
+ var _a;
181
+ if ((_a = placeholderData._editor) === null || _a === void 0 ? void 0 : _a.canSynchronize)
182
+ return true;
183
+ placeholderData.components.forEach((c) => {
184
+ if (c.placeholders.find((x) => canSynchronize(x)))
185
+ return true;
186
+ });
187
+ return false;
188
+ }
189
+ function getSyncCommand(components, editContext) {
190
+ var _a, _b;
191
+ const placeholders = [];
192
+ for (const component of components) {
193
+ if (isPlaceholder(component) && canSynchronize(component)) {
194
+ placeholders.push({
195
+ item: component.parentComponent
196
+ ? getItemDescriptor(component.parentComponent, editContext)
197
+ : undefined,
198
+ name: component.name,
199
+ });
200
+ }
201
+ else {
202
+ if ((_a = component.placeholders) === null || _a === void 0 ? void 0 : _a.find((x) => canSynchronize(x))) {
203
+ placeholders.push({
204
+ item: getItemDescriptor(component, editContext),
205
+ });
206
+ }
207
+ }
208
+ }
209
+ const canSync = placeholders.length > 0 ||
210
+ (components.length === 0 &&
211
+ ((_b = editContext.page) === null || _b === void 0 ? void 0 : _b.placeholders.find((x) => canSynchronize(x))));
212
+ return {
213
+ name: "synchronize",
214
+ label: "Synchronize",
215
+ icon: "pi pi-fw pi-sync",
216
+ disabled: () => !canSync,
217
+ visibilityScopes: ["menu", "editFrame", "contextMenu"],
218
+ execute: () => __awaiter(this, void 0, void 0, function* () {
219
+ const op = {
220
+ type: "synchronize-components",
221
+ date: new Date().toISOString(),
222
+ delete: false,
223
+ id: uuid(),
224
+ placeholders: placeholders,
225
+ pageItem: getPageItemDescriptor(editContext),
226
+ description: "Synchronize components",
227
+ };
228
+ editContext.executeEditOperation(op);
229
+ }),
230
+ };
231
+ }
232
+ function getItemDescriptors(components, editContext) {
233
+ const items = components
234
+ .map((c) => getItemDescriptor(c, editContext))
235
+ .flatMap((f) => (f ? [f] : []));
236
+ return items;
237
+ }
238
+ function deleteComponents(components, editContext) {
239
+ const items = getItemDescriptors(components, editContext);
240
+ if (!items.length)
241
+ return;
242
+ confirmDialog({
243
+ message: (items.length > 1
244
+ ? "Are you sure you want to remove these components? "
245
+ : "Are you sure you want to remove this component? ") +
246
+ items.map((x) => x.name).join(", "),
247
+ header: items.length > 1 ? "Remove components" : "Remove component",
248
+ icon: "pi pi-exclamation-triangle",
249
+ accept: () => {
250
+ const op = {
251
+ type: "remove-component",
252
+ date: new Date().toISOString(),
253
+ id: uuid(),
254
+ components: items,
255
+ pageItem: getPageItemDescriptor(editContext),
256
+ description: "Remove components: " + items.map((x) => x.name).join(", "),
257
+ };
258
+ editContext.executeEditOperation(op);
259
+ components.forEach((c) => {
260
+ if (c)
261
+ c._editor.isRemoved = true;
262
+ });
263
+ },
264
+ });
265
+ }
266
+ function getItemDescriptor(component, editContext) {
267
+ var _a, _b;
268
+ if (component.type === "page")
269
+ return {
270
+ id: component.id,
271
+ language: component.language,
272
+ version: component.version,
273
+ };
274
+ return {
275
+ id: component.id,
276
+ language: ((_a = component._editor.hostingPageItem) === null || _a === void 0 ? void 0 : _a.language) || editContext.page.language,
277
+ version: ((_b = component._editor.hostingPageItem) === null || _b === void 0 ? void 0 : _b.version) || editContext.page.version,
278
+ name: component.name,
279
+ };
280
+ }
281
+ function getPageItemDescriptor(editContext) {
282
+ return {
283
+ id: editContext.page.id,
284
+ language: editContext.page.language,
285
+ version: editContext.page.version,
286
+ };
287
+ }
@@ -0,0 +1,26 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import { createVersion } from "../services/editService";
11
+ import { getItemDescriptor } from "../utils";
12
+ export function getCreateAndSwitchToNewVersionCommand() {
13
+ return {
14
+ name: "createAndSwitchToNewVersion",
15
+ execute: execute,
16
+ label: "Add Version",
17
+ icon: "pi pi-fw pi-plus",
18
+ disabled: (context) => !context.editContext.item._editor.canLock,
19
+ };
20
+ }
21
+ function execute(context) {
22
+ return __awaiter(this, void 0, void 0, function* () {
23
+ yield createVersion(getItemDescriptor(context.editContext.item), context.editContext.sessionId);
24
+ context.editContext.loadItem(Object.assign(Object.assign({}, context.editContext.item), { version: context.editContext.item.version + 1 }));
25
+ });
26
+ }
@@ -0,0 +1,22 @@
1
+ export function getUndoCommand() {
2
+ return {
3
+ name: "undo",
4
+ label: "Undo",
5
+ icon: "pi pi-fw pi-undo",
6
+ execute: (context) => context.editContext.undo(),
7
+ disabled: (context) => context.editContext.editHistory.length === 0 ||
8
+ !context.editContext.editHistory.find((x) => x.sessionId === context.editContext.sessionId && x.canUndo),
9
+ };
10
+ }
11
+ export function getRedoCommand() {
12
+ return {
13
+ name: "redo",
14
+ label: "Redo",
15
+ icon: "pi pi-fw pi-refresh",
16
+ execute: (context) => context.editContext.redo(),
17
+ disabled: (context) => {
18
+ return (context.editContext.editHistory.length === 0 ||
19
+ !context.editContext.editHistory.find((x) => x.sessionId === context.editContext.sessionId && x.canRedo));
20
+ },
21
+ };
22
+ }
@@ -0,0 +1,20 @@
1
+ export function findComponent(id, placeholders) {
2
+ var _a;
3
+ for (const p of placeholders) {
4
+ for (const c of p.components) {
5
+ if (c.id === id || ((_a = c._editor.linkedComponentItem) === null || _a === void 0 ? void 0 : _a.id) === id) {
6
+ return c;
7
+ }
8
+ const match = findComponent(id, c.placeholders);
9
+ if (match) {
10
+ return match;
11
+ }
12
+ }
13
+ }
14
+ return null;
15
+ }
16
+ export function getComponentById(id, page) {
17
+ if (!page)
18
+ return null;
19
+ return findComponent(id, page.placeholders);
20
+ }