@cwa/nuxt-edge 1.0.0-29138192.e49c1a0

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 (387) hide show
  1. package/README.md +38 -0
  2. package/README.template.md +32 -0
  3. package/dist/layer/error.vue +13 -0
  4. package/dist/layer/layouts/CwaRootLayout.vue +140 -0
  5. package/dist/layer/nuxt.config.spec.ts +10 -0
  6. package/dist/layer/nuxt.config.ts +3 -0
  7. package/dist/layer/pages/_cwa/composables/useDataList.ts +50 -0
  8. package/dist/layer/pages/_cwa/composables/useDataType.ts +30 -0
  9. package/dist/layer/pages/_cwa/composables/useDynamicPageLoader.ts +28 -0
  10. package/dist/layer/pages/_cwa/composables/useItemPage.ts +172 -0
  11. package/dist/layer/pages/_cwa/composables/useListPage.ts +43 -0
  12. package/dist/layer/pages/_cwa/data/[type]/[iri].vue +17 -0
  13. package/dist/layer/pages/_cwa/data/[type].vue +131 -0
  14. package/dist/layer/pages/_cwa/data/index.vue +84 -0
  15. package/dist/layer/pages/_cwa/layouts/[iri].vue +174 -0
  16. package/dist/layer/pages/_cwa/layouts.vue +77 -0
  17. package/dist/layer/pages/_cwa/pages/[iri].vue +11 -0
  18. package/dist/layer/pages/_cwa/pages.vue +129 -0
  19. package/dist/layer/pages/_cwa/routes.vue +72 -0
  20. package/dist/layer/pages/_cwa/users/[iri].vue +248 -0
  21. package/dist/layer/pages/_cwa/users.vue +86 -0
  22. package/dist/layer/pages/_cwa.vue +43 -0
  23. package/dist/layer/pages/forgot-password.vue +32 -0
  24. package/dist/layer/pages/login.vue +33 -0
  25. package/dist/layer/pages/reset-password/[username]/[token].vue +39 -0
  26. package/dist/module.d.mts +53 -0
  27. package/dist/module.json +13 -0
  28. package/dist/module.mjs +235 -0
  29. package/dist/runtime/admin/admin.d.ts +36 -0
  30. package/dist/runtime/admin/admin.js +65 -0
  31. package/dist/runtime/admin/manageable-resource.d.ts +41 -0
  32. package/dist/runtime/admin/manageable-resource.js +206 -0
  33. package/dist/runtime/admin/manager-tabs-resolver.d.ts +17 -0
  34. package/dist/runtime/admin/manager-tabs-resolver.js +51 -0
  35. package/dist/runtime/admin/navigation-guard.d.ts +18 -0
  36. package/dist/runtime/admin/navigation-guard.js +55 -0
  37. package/dist/runtime/admin/resource-stack-manager.d.ts +92 -0
  38. package/dist/runtime/admin/resource-stack-manager.js +355 -0
  39. package/dist/runtime/api/api-documentation.d.ts +28 -0
  40. package/dist/runtime/api/api-documentation.js +131 -0
  41. package/dist/runtime/api/auth.d.ts +85 -0
  42. package/dist/runtime/api/auth.js +183 -0
  43. package/dist/runtime/api/fetcher/cwa-fetch.d.ts +5 -0
  44. package/dist/runtime/api/fetcher/cwa-fetch.js +20 -0
  45. package/dist/runtime/api/fetcher/fetch-status-manager.d.ts +51 -0
  46. package/dist/runtime/api/fetcher/fetch-status-manager.js +185 -0
  47. package/dist/runtime/api/fetcher/fetcher.d.ts +57 -0
  48. package/dist/runtime/api/fetcher/fetcher.js +222 -0
  49. package/dist/runtime/api/fetcher/preload-headers.d.ts +6 -0
  50. package/dist/runtime/api/fetcher/preload-headers.js +31 -0
  51. package/dist/runtime/api/forms.d.ts +40 -0
  52. package/dist/runtime/api/forms.js +40 -0
  53. package/dist/runtime/api/mercure.d.ts +33 -0
  54. package/dist/runtime/api/mercure.js +191 -0
  55. package/dist/runtime/composables/component/html-content.d.ts +2 -0
  56. package/dist/runtime/composables/component/html-content.js +82 -0
  57. package/dist/runtime/composables/cwa-collection-pagination.d.ts +13 -0
  58. package/dist/runtime/composables/cwa-collection-pagination.js +34 -0
  59. package/dist/runtime/composables/cwa-collection-resource.d.ts +16 -0
  60. package/dist/runtime/composables/cwa-collection-resource.js +92 -0
  61. package/dist/runtime/composables/cwa-image.d.ts +19 -0
  62. package/dist/runtime/composables/cwa-image.js +43 -0
  63. package/dist/runtime/composables/cwa-query-bound-model.d.ts +9 -0
  64. package/dist/runtime/composables/cwa-query-bound-model.js +108 -0
  65. package/dist/runtime/composables/cwa-resource-endpoint.d.ts +5 -0
  66. package/dist/runtime/composables/cwa-resource-endpoint.js +36 -0
  67. package/dist/runtime/composables/cwa-resource-manageable.d.ts +10 -0
  68. package/dist/runtime/composables/cwa-resource-manageable.js +32 -0
  69. package/dist/runtime/composables/cwa-resource-manager-tab.d.ts +17 -0
  70. package/dist/runtime/composables/cwa-resource-manager-tab.js +30 -0
  71. package/dist/runtime/composables/cwa-resource-model.d.ts +21 -0
  72. package/dist/runtime/composables/cwa-resource-model.js +149 -0
  73. package/dist/runtime/composables/cwa-resource-upload.d.ts +8 -0
  74. package/dist/runtime/composables/cwa-resource-upload.js +70 -0
  75. package/dist/runtime/composables/cwa-resource.d.ts +24 -0
  76. package/dist/runtime/composables/cwa-resource.js +22 -0
  77. package/dist/runtime/composables/cwa-select-input.d.ts +21 -0
  78. package/dist/runtime/composables/cwa-select-input.js +37 -0
  79. package/dist/runtime/composables/cwa-select.d.ts +15 -0
  80. package/dist/runtime/composables/cwa-select.js +24 -0
  81. package/dist/runtime/composables/cwa.d.ts +2 -0
  82. package/dist/runtime/composables/cwa.js +2 -0
  83. package/dist/runtime/composables/forgot-password.d.ts +9 -0
  84. package/dist/runtime/composables/forgot-password.js +45 -0
  85. package/dist/runtime/composables/login.d.ts +9 -0
  86. package/dist/runtime/composables/login.js +30 -0
  87. package/dist/runtime/composables/popper.d.ts +529 -0
  88. package/dist/runtime/composables/popper.js +104 -0
  89. package/dist/runtime/composables/process.d.ts +4 -0
  90. package/dist/runtime/composables/process.js +6 -0
  91. package/dist/runtime/composables/reset-password.d.ts +14 -0
  92. package/dist/runtime/composables/reset-password.js +75 -0
  93. package/dist/runtime/composables/transitions.d.ts +12 -0
  94. package/dist/runtime/composables/transitions.js +12 -0
  95. package/dist/runtime/cwa.d.ts +61 -0
  96. package/dist/runtime/cwa.js +123 -0
  97. package/dist/runtime/errors/cwa-resource-error.d.ts +18 -0
  98. package/dist/runtime/errors/cwa-resource-error.js +54 -0
  99. package/dist/runtime/plugin.d.ts +7 -0
  100. package/dist/runtime/plugin.js +18 -0
  101. package/dist/runtime/resources/resource-utils.d.ts +44 -0
  102. package/dist/runtime/resources/resource-utils.js +73 -0
  103. package/dist/runtime/resources/resources-manager.d.ts +70 -0
  104. package/dist/runtime/resources/resources-manager.js +463 -0
  105. package/dist/runtime/resources/resources.d.ts +53 -0
  106. package/dist/runtime/resources/resources.js +300 -0
  107. package/dist/runtime/route-middleware.d.ts +2 -0
  108. package/dist/runtime/route-middleware.js +86 -0
  109. package/dist/runtime/storage/storage.d.ts +20 -0
  110. package/dist/runtime/storage/storage.js +25 -0
  111. package/dist/runtime/storage/stores/admin/actions.d.ts +5 -0
  112. package/dist/runtime/storage/stores/admin/actions.js +10 -0
  113. package/dist/runtime/storage/stores/admin/admin-store.d.ts +18 -0
  114. package/dist/runtime/storage/stores/admin/admin-store.js +20 -0
  115. package/dist/runtime/storage/stores/admin/state.d.ts +7 -0
  116. package/dist/runtime/storage/stores/admin/state.js +9 -0
  117. package/dist/runtime/storage/stores/api-documentation/api-documentation-store.d.ts +16 -0
  118. package/dist/runtime/storage/stores/api-documentation/api-documentation-store.js +18 -0
  119. package/dist/runtime/storage/stores/api-documentation/state.d.ts +74 -0
  120. package/dist/runtime/storage/stores/api-documentation/state.js +6 -0
  121. package/dist/runtime/storage/stores/auth/auth-store.d.ts +16 -0
  122. package/dist/runtime/storage/stores/auth/auth-store.js +18 -0
  123. package/dist/runtime/storage/stores/auth/state.d.ts +20 -0
  124. package/dist/runtime/storage/stores/auth/state.js +15 -0
  125. package/dist/runtime/storage/stores/cwa-store-types.d.ts +14 -0
  126. package/dist/runtime/storage/stores/error/actions.d.ts +11 -0
  127. package/dist/runtime/storage/stores/error/actions.js +69 -0
  128. package/dist/runtime/storage/stores/error/error-store.d.ts +13 -0
  129. package/dist/runtime/storage/stores/error/error-store.js +21 -0
  130. package/dist/runtime/storage/stores/error/getters.d.ts +7 -0
  131. package/dist/runtime/storage/stores/error/getters.js +11 -0
  132. package/dist/runtime/storage/stores/error/state.d.ts +35 -0
  133. package/dist/runtime/storage/stores/error/state.js +15 -0
  134. package/dist/runtime/storage/stores/fetcher/actions.d.ts +49 -0
  135. package/dist/runtime/storage/stores/fetcher/actions.js +125 -0
  136. package/dist/runtime/storage/stores/fetcher/fetcher-store.d.ts +19 -0
  137. package/dist/runtime/storage/stores/fetcher/fetcher-store.js +23 -0
  138. package/dist/runtime/storage/stores/fetcher/getter-utils.d.ts +7 -0
  139. package/dist/runtime/storage/stores/fetcher/getter-utils.js +27 -0
  140. package/dist/runtime/storage/stores/fetcher/getters.d.ts +13 -0
  141. package/dist/runtime/storage/stores/fetcher/getters.js +52 -0
  142. package/dist/runtime/storage/stores/fetcher/state.d.ts +25 -0
  143. package/dist/runtime/storage/stores/fetcher/state.js +7 -0
  144. package/dist/runtime/storage/stores/mercure/mercure-store.d.ts +16 -0
  145. package/dist/runtime/storage/stores/mercure/mercure-store.js +18 -0
  146. package/dist/runtime/storage/stores/mercure/state.d.ts +5 -0
  147. package/dist/runtime/storage/stores/mercure/state.js +6 -0
  148. package/dist/runtime/storage/stores/resources/actions.d.ts +54 -0
  149. package/dist/runtime/storage/stores/resources/actions.js +390 -0
  150. package/dist/runtime/storage/stores/resources/getter-utils.d.ts +7 -0
  151. package/dist/runtime/storage/stores/resources/getter-utils.js +27 -0
  152. package/dist/runtime/storage/stores/resources/getters.d.ts +38 -0
  153. package/dist/runtime/storage/stores/resources/getters.js +251 -0
  154. package/dist/runtime/storage/stores/resources/resources-store.d.ts +19 -0
  155. package/dist/runtime/storage/stores/resources/resources-store.js +23 -0
  156. package/dist/runtime/storage/stores/resources/state.d.ts +64 -0
  157. package/dist/runtime/storage/stores/resources/state.js +24 -0
  158. package/dist/runtime/templates/assets/base.css +1 -0
  159. package/dist/runtime/templates/assets/cwa.css +1 -0
  160. package/dist/runtime/templates/components/core/ComponentPlaceholder.vue +18 -0
  161. package/dist/runtime/templates/components/core/ComponentPlaceholder.vue.d.ts +3 -0
  162. package/dist/runtime/templates/components/core/ComponentPosition.spec.ts.snap +16 -0
  163. package/dist/runtime/templates/components/core/ComponentPosition.vue +63 -0
  164. package/dist/runtime/templates/components/core/ComponentPosition.vue.d.ts +3 -0
  165. package/dist/runtime/templates/components/core/ConfirmDialog.vue +41 -0
  166. package/dist/runtime/templates/components/core/ConfirmDialog.vue.d.ts +9 -0
  167. package/dist/runtime/templates/components/core/DialogBox.vue +95 -0
  168. package/dist/runtime/templates/components/core/DialogBox.vue.d.ts +38 -0
  169. package/dist/runtime/templates/components/core/README.md +1 -0
  170. package/dist/runtime/templates/components/core/ResourceLoader.spec.ts.snap +39 -0
  171. package/dist/runtime/templates/components/core/ResourceLoader.vue +151 -0
  172. package/dist/runtime/templates/components/core/ResourceLoader.vue.d.ts +13 -0
  173. package/dist/runtime/templates/components/core/admin/ListContainer.vue +7 -0
  174. package/dist/runtime/templates/components/core/admin/ListContainer.vue.d.ts +12 -0
  175. package/dist/runtime/templates/components/core/admin/ListContent.vue +136 -0
  176. package/dist/runtime/templates/components/core/admin/ListContent.vue.d.ts +21 -0
  177. package/dist/runtime/templates/components/core/admin/ListFilter.vue +49 -0
  178. package/dist/runtime/templates/components/core/admin/ListFilter.vue.d.ts +9 -0
  179. package/dist/runtime/templates/components/core/admin/ListFilterButton.vue +53 -0
  180. package/dist/runtime/templates/components/core/admin/ListFilterButton.vue.d.ts +9 -0
  181. package/dist/runtime/templates/components/core/admin/ListHeading.vue +32 -0
  182. package/dist/runtime/templates/components/core/admin/ListHeading.vue.d.ts +20 -0
  183. package/dist/runtime/templates/components/core/admin/ListPagination.vue +87 -0
  184. package/dist/runtime/templates/components/core/admin/ListPagination.vue.d.ts +15 -0
  185. package/dist/runtime/templates/components/core/admin/ListPaginationButton.vue +18 -0
  186. package/dist/runtime/templates/components/core/admin/ListPaginationButton.vue.d.ts +16 -0
  187. package/dist/runtime/templates/components/core/admin/PageAdminModal.vue +260 -0
  188. package/dist/runtime/templates/components/core/admin/PageAdminModal.vue.d.ts +12 -0
  189. package/dist/runtime/templates/components/core/admin/PageDataAdminModal.vue +187 -0
  190. package/dist/runtime/templates/components/core/admin/PageDataAdminModal.vue.d.ts +13 -0
  191. package/dist/runtime/templates/components/core/admin/ResourceModal.vue +99 -0
  192. package/dist/runtime/templates/components/core/admin/ResourceModal.vue.d.ts +27 -0
  193. package/dist/runtime/templates/components/core/admin/ResourceModalOverlay.vue +27 -0
  194. package/dist/runtime/templates/components/core/admin/ResourceModalOverlay.vue.d.ts +6 -0
  195. package/dist/runtime/templates/components/core/admin/ResourceModalOverlayTemplate.vue +23 -0
  196. package/dist/runtime/templates/components/core/admin/ResourceModalOverlayTemplate.vue.d.ts +15 -0
  197. package/dist/runtime/templates/components/core/admin/ResourceModalTabs.vue +77 -0
  198. package/dist/runtime/templates/components/core/admin/ResourceModalTabs.vue.d.ts +19 -0
  199. package/dist/runtime/templates/components/core/admin/RouteListRow.vue +102 -0
  200. package/dist/runtime/templates/components/core/admin/RouteListRow.vue.d.ts +20 -0
  201. package/dist/runtime/templates/components/core/admin/RouteRedirectsTree.vue +52 -0
  202. package/dist/runtime/templates/components/core/admin/RouteRedirectsTree.vue.d.ts +10 -0
  203. package/dist/runtime/templates/components/core/admin/RoutesTab.vue +273 -0
  204. package/dist/runtime/templates/components/core/admin/RoutesTab.vue.d.ts +12 -0
  205. package/dist/runtime/templates/components/core/admin/form/FilterFormWrapper.vue +18 -0
  206. package/dist/runtime/templates/components/core/admin/form/FilterFormWrapper.vue.d.ts +16 -0
  207. package/dist/runtime/templates/components/core/admin/form/FilterSelect.vue +86 -0
  208. package/dist/runtime/templates/components/core/admin/form/FilterSelect.vue.d.ts +3 -0
  209. package/dist/runtime/templates/components/core/admin/form/ModalInfo.vue +23 -0
  210. package/dist/runtime/templates/components/core/admin/form/ModalInfo.vue.d.ts +16 -0
  211. package/dist/runtime/templates/components/core/admin/form/ModalInput.vue +30 -0
  212. package/dist/runtime/templates/components/core/admin/form/ModalInput.vue.d.ts +15 -0
  213. package/dist/runtime/templates/components/core/admin/form/ModalSelect.vue +99 -0
  214. package/dist/runtime/templates/components/core/admin/form/ModalSelect.vue.d.ts +6 -0
  215. package/dist/runtime/templates/components/core/admin/form/PageTypeSelect.vue +112 -0
  216. package/dist/runtime/templates/components/core/admin/form/PageTypeSelect.vue.d.ts +4 -0
  217. package/dist/runtime/templates/components/core/assets/CwaLogo.vue +21 -0
  218. package/dist/runtime/templates/components/core/assets/CwaLogo.vue.d.ts +2 -0
  219. package/dist/runtime/templates/components/core/assets/IconComponents.vue +15 -0
  220. package/dist/runtime/templates/components/core/assets/IconComponents.vue.d.ts +2 -0
  221. package/dist/runtime/templates/components/core/assets/IconData.vue +24 -0
  222. package/dist/runtime/templates/components/core/assets/IconData.vue.d.ts +2 -0
  223. package/dist/runtime/templates/components/core/assets/IconLayouts.vue +20 -0
  224. package/dist/runtime/templates/components/core/assets/IconLayouts.vue.d.ts +2 -0
  225. package/dist/runtime/templates/components/core/assets/IconPages.vue +21 -0
  226. package/dist/runtime/templates/components/core/assets/IconPages.vue.d.ts +2 -0
  227. package/dist/runtime/templates/components/core/assets/IconRoutes.vue +23 -0
  228. package/dist/runtime/templates/components/core/assets/IconRoutes.vue.d.ts +2 -0
  229. package/dist/runtime/templates/components/core/assets/IconUsers.vue +13 -0
  230. package/dist/runtime/templates/components/core/assets/IconUsers.vue.d.ts +2 -0
  231. package/dist/runtime/templates/components/core/useDataResolver.d.ts +12 -0
  232. package/dist/runtime/templates/components/core/useDataResolver.js +109 -0
  233. package/dist/runtime/templates/components/main/ComponentGroup.Util.Positions.d.ts +6 -0
  234. package/dist/runtime/templates/components/main/ComponentGroup.Util.Positions.js +164 -0
  235. package/dist/runtime/templates/components/main/ComponentGroup.Util.Synchronizer.d.ts +20 -0
  236. package/dist/runtime/templates/components/main/ComponentGroup.Util.Synchronizer.js +69 -0
  237. package/dist/runtime/templates/components/main/ComponentGroup.spec.ts.snap +59 -0
  238. package/dist/runtime/templates/components/main/ComponentGroup.vue +107 -0
  239. package/dist/runtime/templates/components/main/ComponentGroup.vue.d.ts +9 -0
  240. package/dist/runtime/templates/components/main/CwaLink.vue +51 -0
  241. package/dist/runtime/templates/components/main/CwaLink.vue.d.ts +14 -0
  242. package/dist/runtime/templates/components/main/DefaultLayout.vue +8 -0
  243. package/dist/runtime/templates/components/main/DefaultLayout.vue.d.ts +12 -0
  244. package/dist/runtime/templates/components/main/ErrorPage.vue +98 -0
  245. package/dist/runtime/templates/components/main/ErrorPage.vue.d.ts +6 -0
  246. package/dist/runtime/templates/components/main/Logo.vue +18 -0
  247. package/dist/runtime/templates/components/main/Logo.vue.d.ts +2 -0
  248. package/dist/runtime/templates/components/main/README.md +7 -0
  249. package/dist/runtime/templates/components/main/admin/_common/ResourceContextItem.vue +41 -0
  250. package/dist/runtime/templates/components/main/admin/_common/ResourceContextItem.vue.d.ts +7 -0
  251. package/dist/runtime/templates/components/main/admin/_common/ResourceLoadingIndicator.vue +48 -0
  252. package/dist/runtime/templates/components/main/admin/_common/ResourceLoadingIndicator.vue.d.ts +2 -0
  253. package/dist/runtime/templates/components/main/admin/_common/useDynamicPositionSelectOptions.d.ts +5 -0
  254. package/dist/runtime/templates/components/main/admin/_common/useDynamicPositionSelectOptions.js +19 -0
  255. package/dist/runtime/templates/components/main/admin/header/Header.vue +207 -0
  256. package/dist/runtime/templates/components/main/admin/header/Header.vue.d.ts +2 -0
  257. package/dist/runtime/templates/components/main/admin/header/_parts/Menu.vue +189 -0
  258. package/dist/runtime/templates/components/main/admin/header/_parts/Menu.vue.d.ts +2 -0
  259. package/dist/runtime/templates/components/main/admin/header/_parts/MenuLink.vue +14 -0
  260. package/dist/runtime/templates/components/main/admin/header/_parts/MenuLink.vue.d.ts +16 -0
  261. package/dist/runtime/templates/components/main/admin/header/_parts/MenuPrimaryLink.vue +19 -0
  262. package/dist/runtime/templates/components/main/admin/header/_parts/MenuPrimaryLink.vue.d.ts +15 -0
  263. package/dist/runtime/templates/components/main/admin/header/_parts/Notification.vue +69 -0
  264. package/dist/runtime/templates/components/main/admin/header/_parts/Notification.vue.d.ts +12 -0
  265. package/dist/runtime/templates/components/main/admin/header/_parts/OutdatedContentNotice.vue +19 -0
  266. package/dist/runtime/templates/components/main/admin/header/_parts/OutdatedContentNotice.vue.d.ts +2 -0
  267. package/dist/runtime/templates/components/main/admin/header/_parts/PathSelector.vue +79 -0
  268. package/dist/runtime/templates/components/main/admin/header/_parts/PathSelector.vue.d.ts +2 -0
  269. package/dist/runtime/templates/components/main/admin/header/_parts/RequestErrors.vue +52 -0
  270. package/dist/runtime/templates/components/main/admin/header/_parts/RequestErrors.vue.d.ts +2 -0
  271. package/dist/runtime/templates/components/main/admin/resource-manager/ComponentFocus.vue +151 -0
  272. package/dist/runtime/templates/components/main/admin/resource-manager/ComponentFocus.vue.d.ts +10 -0
  273. package/dist/runtime/templates/components/main/admin/resource-manager/LayoutPageOverlay.vue +192 -0
  274. package/dist/runtime/templates/components/main/admin/resource-manager/LayoutPageOverlay.vue.d.ts +6 -0
  275. package/dist/runtime/templates/components/main/admin/resource-manager/ResourceManager.vue +186 -0
  276. package/dist/runtime/templates/components/main/admin/resource-manager/ResourceManager.vue.d.ts +9 -0
  277. package/dist/runtime/templates/components/main/admin/resource-manager/_parts/AddComponentDialog.vue +205 -0
  278. package/dist/runtime/templates/components/main/admin/resource-manager/_parts/AddComponentDialog.vue.d.ts +2 -0
  279. package/dist/runtime/templates/components/main/admin/resource-manager/_parts/CwaResourceManagerContextMenu.vue +38 -0
  280. package/dist/runtime/templates/components/main/admin/resource-manager/_parts/CwaResourceManagerContextMenu.vue.d.ts +6 -0
  281. package/dist/runtime/templates/components/main/admin/resource-manager/_parts/ManagerTab.vue +15 -0
  282. package/dist/runtime/templates/components/main/admin/resource-manager/_parts/ManagerTab.vue.d.ts +7 -0
  283. package/dist/runtime/templates/components/main/admin/resource-manager/_parts/ManagerTabs.vue +44 -0
  284. package/dist/runtime/templates/components/main/admin/resource-manager/_parts/ManagerTabs.vue.d.ts +13 -0
  285. package/dist/runtime/templates/components/main/admin/resource-manager/_tabs/ResourceInfoTab.vue +59 -0
  286. package/dist/runtime/templates/components/main/admin/resource-manager/_tabs/ResourceInfoTab.vue.d.ts +6 -0
  287. package/dist/runtime/templates/components/main/admin/resource-manager/_tabs/component/Order.vue +75 -0
  288. package/dist/runtime/templates/components/main/admin/resource-manager/_tabs/component/Order.vue.d.ts +6 -0
  289. package/dist/runtime/templates/components/main/admin/resource-manager/_tabs/component/Publish.vue +41 -0
  290. package/dist/runtime/templates/components/main/admin/resource-manager/_tabs/component/Publish.vue.d.ts +6 -0
  291. package/dist/runtime/templates/components/main/admin/resource-manager/_tabs/component/Ui.vue +101 -0
  292. package/dist/runtime/templates/components/main/admin/resource-manager/_tabs/component/Ui.vue.d.ts +6 -0
  293. package/dist/runtime/templates/components/main/admin/resource-manager/_tabs/group/Group.vue +34 -0
  294. package/dist/runtime/templates/components/main/admin/resource-manager/_tabs/group/Group.vue.d.ts +6 -0
  295. package/dist/runtime/templates/components/main/admin/resource-manager/_tabs/position/DataPage.vue +121 -0
  296. package/dist/runtime/templates/components/main/admin/resource-manager/_tabs/position/DataPage.vue.d.ts +6 -0
  297. package/dist/runtime/templates/components/main/admin/resource-manager/_tabs/position/DynamicPage.vue +52 -0
  298. package/dist/runtime/templates/components/main/admin/resource-manager/_tabs/position/DynamicPage.vue.d.ts +6 -0
  299. package/dist/runtime/templates/components/main/admin/resource-manager/cta/CurrentResourceCta.vue +99 -0
  300. package/dist/runtime/templates/components/main/admin/resource-manager/cta/CurrentResourceCta.vue.d.ts +7 -0
  301. package/dist/runtime/templates/components/main/admin/resource-manager/cta/NewResourceCta.vue +59 -0
  302. package/dist/runtime/templates/components/main/admin/resource-manager/cta/NewResourceCta.vue.d.ts +7 -0
  303. package/dist/runtime/templates/components/main/admin/resource-manager/cta/ResourceManagerCtaButton.vue +28 -0
  304. package/dist/runtime/templates/components/main/admin/resource-manager/cta/ResourceManagerCtaButton.vue.d.ts +2 -0
  305. package/dist/runtime/templates/components/main/auth/ForgotPasswordPage.vue +55 -0
  306. package/dist/runtime/templates/components/main/auth/ForgotPasswordPage.vue.d.ts +20 -0
  307. package/dist/runtime/templates/components/main/auth/LoginPage.vue +60 -0
  308. package/dist/runtime/templates/components/main/auth/LoginPage.vue.d.ts +23 -0
  309. package/dist/runtime/templates/components/main/auth/ResetPasswordPage.vue +59 -0
  310. package/dist/runtime/templates/components/main/auth/ResetPasswordPage.vue.d.ts +27 -0
  311. package/dist/runtime/templates/components/main/auth/_parts/AuthPageLink.spec.ts.snap +14 -0
  312. package/dist/runtime/templates/components/main/auth/_parts/AuthPageLink.vue +17 -0
  313. package/dist/runtime/templates/components/main/auth/_parts/AuthPageLink.vue.d.ts +6 -0
  314. package/dist/runtime/templates/components/main/auth/_parts/AuthTemplate.spec.ts.snap +90 -0
  315. package/dist/runtime/templates/components/main/auth/_parts/AuthTemplate.vue +45 -0
  316. package/dist/runtime/templates/components/main/auth/_parts/AuthTemplate.vue.d.ts +17 -0
  317. package/dist/runtime/templates/components/main/auth/_parts/InputField.spec.ts.snap +111 -0
  318. package/dist/runtime/templates/components/main/auth/_parts/InputField.vue +50 -0
  319. package/dist/runtime/templates/components/main/auth/_parts/InputField.vue.d.ts +17 -0
  320. package/dist/runtime/templates/components/ui/BackgroundParticles.vue +960 -0
  321. package/dist/runtime/templates/components/ui/BackgroundParticles.vue.d.ts +2 -0
  322. package/dist/runtime/templates/components/ui/Hamburger.vue +75 -0
  323. package/dist/runtime/templates/components/ui/Hamburger.vue.d.ts +9 -0
  324. package/dist/runtime/templates/components/ui/ProgressBar.spec.ts.snap +71 -0
  325. package/dist/runtime/templates/components/ui/ProgressBar.vue +29 -0
  326. package/dist/runtime/templates/components/ui/ProgressBar.vue.d.ts +9 -0
  327. package/dist/runtime/templates/components/ui/README.md +6 -0
  328. package/dist/runtime/templates/components/ui/alert/Info.spec.ts.snap +23 -0
  329. package/dist/runtime/templates/components/ui/alert/Info.vue +13 -0
  330. package/dist/runtime/templates/components/ui/alert/Info.vue.d.ts +12 -0
  331. package/dist/runtime/templates/components/ui/alert/Warning.spec.ts.snap +14 -0
  332. package/dist/runtime/templates/components/ui/alert/Warning.vue +8 -0
  333. package/dist/runtime/templates/components/ui/alert/Warning.vue.d.ts +12 -0
  334. package/dist/runtime/templates/components/ui/form/Button.vue +139 -0
  335. package/dist/runtime/templates/components/ui/form/Button.vue.d.ts +52 -0
  336. package/dist/runtime/templates/components/ui/form/ButtonPopoverGroup.vue +18 -0
  337. package/dist/runtime/templates/components/ui/form/ButtonPopoverGroup.vue.d.ts +10 -0
  338. package/dist/runtime/templates/components/ui/form/ButtonPopoverItem.vue +15 -0
  339. package/dist/runtime/templates/components/ui/form/ButtonPopoverItem.vue.d.ts +10 -0
  340. package/dist/runtime/templates/components/ui/form/File.vue +72 -0
  341. package/dist/runtime/templates/components/ui/form/File.vue.d.ts +9 -0
  342. package/dist/runtime/templates/components/ui/form/Input.vue +22 -0
  343. package/dist/runtime/templates/components/ui/form/Input.vue.d.ts +5 -0
  344. package/dist/runtime/templates/components/ui/form/LabelWrapper.vue +16 -0
  345. package/dist/runtime/templates/components/ui/form/LabelWrapper.vue.d.ts +15 -0
  346. package/dist/runtime/templates/components/ui/form/SearchResource.vue +212 -0
  347. package/dist/runtime/templates/components/ui/form/SearchResource.vue.d.ts +14 -0
  348. package/dist/runtime/templates/components/ui/form/Select.vue +60 -0
  349. package/dist/runtime/templates/components/ui/form/Select.vue.d.ts +3 -0
  350. package/dist/runtime/templates/components/ui/form/Toggle.vue +39 -0
  351. package/dist/runtime/templates/components/ui/form/Toggle.vue.d.ts +6 -0
  352. package/dist/runtime/templates/components/ui/icon/ArrowIcon.vue +30 -0
  353. package/dist/runtime/templates/components/ui/icon/ArrowIcon.vue.d.ts +2 -0
  354. package/dist/runtime/templates/components/ui/icon/BinIcon.vue +24 -0
  355. package/dist/runtime/templates/components/ui/icon/BinIcon.vue.d.ts +2 -0
  356. package/dist/runtime/templates/components/ui/icon/CogIcon.vue +9 -0
  357. package/dist/runtime/templates/components/ui/icon/CogIcon.vue.d.ts +2 -0
  358. package/dist/runtime/templates/components/ui/icon/EyeIcon.vue +24 -0
  359. package/dist/runtime/templates/components/ui/icon/EyeIcon.vue.d.ts +2 -0
  360. package/dist/runtime/templates/components/ui/icon/PenIcon.vue +12 -0
  361. package/dist/runtime/templates/components/ui/icon/PenIcon.vue.d.ts +2 -0
  362. package/dist/runtime/templates/components/ui/icon/PlusIcon.vue +9 -0
  363. package/dist/runtime/templates/components/ui/icon/PlusIcon.vue.d.ts +2 -0
  364. package/dist/runtime/templates/components/ui/icon/SearchIcon.vue +10 -0
  365. package/dist/runtime/templates/components/ui/icon/SearchIcon.vue.d.ts +2 -0
  366. package/dist/runtime/templates/components/ui/icon/TickIcon.vue +23 -0
  367. package/dist/runtime/templates/components/ui/icon/TickIcon.vue.d.ts +2 -0
  368. package/dist/runtime/templates/components/ui/icon/WarningIcon.vue +11 -0
  369. package/dist/runtime/templates/components/ui/icon/WarningIcon.vue.d.ts +2 -0
  370. package/dist/runtime/templates/components/ui/icon/XMarkIcon.vue +15 -0
  371. package/dist/runtime/templates/components/ui/icon/XMarkIcon.vue.d.ts +2 -0
  372. package/dist/runtime/templates/components/utils/ContextMenu.vue +59 -0
  373. package/dist/runtime/templates/components/utils/ContextMenu.vue.d.ts +21 -0
  374. package/dist/runtime/templates/components/utils/HotSpot.vue +24 -0
  375. package/dist/runtime/templates/components/utils/HotSpot.vue.d.ts +9 -0
  376. package/dist/runtime/templates/components/utils/README.md +1 -0
  377. package/dist/runtime/templates/components/utils/Spinner.spec.ts.snap +56 -0
  378. package/dist/runtime/templates/components/utils/Spinner.vue +42 -0
  379. package/dist/runtime/templates/components/utils/Spinner.vue.d.ts +5 -0
  380. package/dist/runtime/templates/components/utils/SpinnerTick.vue +43 -0
  381. package/dist/runtime/templates/components/utils/SpinnerTick.vue.d.ts +6 -0
  382. package/dist/runtime/templates/cwa-page.spec.ts.snap +20 -0
  383. package/dist/runtime/templates/cwa-page.vue +32 -0
  384. package/dist/runtime/templates/cwa-page.vue.d.ts +2 -0
  385. package/dist/runtime/types/popper.d.ts +14 -0
  386. package/dist/types.d.mts +9 -0
  387. package/package.json +108 -0
@@ -0,0 +1,463 @@
1
+ import { computed, nextTick, reactive, ref, watch } from "vue";
2
+ import { set, unset, mergeWith, isArray } from "lodash-es";
3
+ import { createConfirmDialog } from "vuejs-confirm-dialog";
4
+ import { DateTime } from "luxon";
5
+ import {
6
+ CwaResourceTypes,
7
+ getPublishedResourceIri,
8
+ getPublishedResourceState,
9
+ getResourceTypeFromIri
10
+ } from "./resource-utils.js";
11
+ import { NEW_RESOURCE_IRI } from "#cwa/runtime/storage/stores/resources/state";
12
+ import ConfirmDialog from "#cwa/runtime/templates/components/core/ConfirmDialog.vue";
13
+ export class ResourcesManager {
14
+ constructor(cwaFetch, resourcesStoreDefinition, fetchStatusManager, errorStoreDefinition, fetcher, admin, resources) {
15
+ this.fetcher = fetcher;
16
+ this.admin = admin;
17
+ this.resources = resources;
18
+ this.cwaFetch = cwaFetch;
19
+ this.resourcesStoreDefinition = resourcesStoreDefinition;
20
+ this.fetchStatusManager = fetchStatusManager;
21
+ this.errorStoreDefinition = errorStoreDefinition;
22
+ watch(this.reqCount, (newValue) => {
23
+ if (newValue >= 1e4) {
24
+ this.reqCount.value = 0;
25
+ }
26
+ });
27
+ }
28
+ cwaFetch;
29
+ resourcesStoreDefinition;
30
+ fetchStatusManager;
31
+ errorStoreDefinition;
32
+ requestsInProgress = reactive({});
33
+ reqCount = ref(0);
34
+ _addResourceEvent = ref();
35
+ _requestCount;
36
+ mergeNewResources() {
37
+ return this.resourcesStore.mergeNewResources();
38
+ }
39
+ get requestCount() {
40
+ if (this._requestCount) {
41
+ return this._requestCount;
42
+ }
43
+ this._requestCount = computed(() => Object.values(this.requestsInProgress).reduce((count, reqs) => count + Object.values(reqs).length, 0));
44
+ return this._requestCount;
45
+ }
46
+ getWaitForRequestPromise(endpoint, property, source) {
47
+ const hasRequestConflict = () => {
48
+ if (!this.requestsInProgress.value) {
49
+ return false;
50
+ }
51
+ for (const req of Object.values(this.requestsInProgress)) {
52
+ if (req.event.endpoint === endpoint) {
53
+ if ("data" in req.event) {
54
+ return req.event.data?.[property] && (!source || req.event.source !== source);
55
+ }
56
+ return true;
57
+ }
58
+ }
59
+ return false;
60
+ };
61
+ return new Promise((resolve) => {
62
+ if (!hasRequestConflict()) {
63
+ resolve();
64
+ return;
65
+ }
66
+ const unwatch = watch(this.requestsInProgress, () => {
67
+ if (hasRequestConflict()) {
68
+ return;
69
+ }
70
+ unwatch();
71
+ resolve();
72
+ });
73
+ });
74
+ }
75
+ createResource(event) {
76
+ const args = [
77
+ event.endpoint,
78
+ { ...this.requestOptions("POST"), body: event.data }
79
+ ];
80
+ return this.doResourceRequest(event, args);
81
+ }
82
+ async confirmDelete() {
83
+ const alertData = {
84
+ title: "Delete this resource?",
85
+ content: "<p>Are you sure you want to permanently delete this resource?</p>"
86
+ };
87
+ const dialog = createConfirmDialog(ConfirmDialog);
88
+ const { isCanceled } = await dialog.reveal(alertData);
89
+ return !isCanceled;
90
+ }
91
+ getEndpointForIri(iri) {
92
+ const resource = this.resourcesStore.getResource(iri)?.data;
93
+ if (!resource) {
94
+ return iri;
95
+ }
96
+ const isDraft = getPublishedResourceState({ data: resource }) === false;
97
+ const postfix = isDraft ? "?published=false" : "?published=true";
98
+ return `${iri}${postfix}`;
99
+ }
100
+ async deleteResource(event) {
101
+ if (!await this.confirmDelete()) {
102
+ return false;
103
+ }
104
+ const args = [
105
+ this.getEndpointForIri(event.endpoint),
106
+ { ...this.requestOptions("DELETE") }
107
+ ];
108
+ return this.doResourceRequest(event, args);
109
+ }
110
+ removeResource(event) {
111
+ return this.resourcesStore.deleteResource(event);
112
+ }
113
+ async updateResource(event) {
114
+ const iri = (event.iri || event.endpoint).split("?")[0];
115
+ const currentResource = this.resourcesStore.getResource(iri)?.data;
116
+ const reqOps = {
117
+ ...this.requestOptions(event.data instanceof FormData ? "POST" : "PATCH"),
118
+ body: event.data
119
+ };
120
+ if (event.headers) {
121
+ reqOps.headers = event.headers;
122
+ }
123
+ const args = [
124
+ event.endpoint,
125
+ reqOps
126
+ ];
127
+ if (currentResource?._metadata.persisted === false) {
128
+ const newResource = mergeWith(currentResource, event.data, (a, b) => {
129
+ if (isArray(a)) {
130
+ return b.concat(a);
131
+ }
132
+ });
133
+ this.saveResource({
134
+ resource: newResource
135
+ });
136
+ return;
137
+ }
138
+ const currentIsDraft = getPublishedResourceState({ data: currentResource }) === false;
139
+ let isPublishing = false;
140
+ let existingLiveIri = null;
141
+ if (currentIsDraft) {
142
+ isPublishing = event.data.publishedAt <= DateTime.local().toUTC().toISO();
143
+ if (isPublishing) {
144
+ existingLiveIri = currentResource ? getPublishedResourceIri(currentResource) : null;
145
+ const currentLiveResource = existingLiveIri ? this.resourcesStore.getResource(existingLiveIri)?.data : void 0;
146
+ if (currentLiveResource) {
147
+ const updatingResourcePositions = currentLiveResource.componentPositions;
148
+ if (updatingResourcePositions) {
149
+ const existingRefreshEndpoints = event.refreshEndpoints || [];
150
+ event.refreshEndpoints = [...existingRefreshEndpoints, ...updatingResourcePositions];
151
+ }
152
+ }
153
+ }
154
+ }
155
+ const isPublishingAndOverwritingPreviousLiveResource = isPublishing && currentResource && existingLiveIri && existingLiveIri !== iri;
156
+ const postRequestFn = () => {
157
+ if (isPublishingAndOverwritingPreviousLiveResource) {
158
+ this.admin.emptyStack();
159
+ }
160
+ };
161
+ const postSaveFn = () => {
162
+ if (isPublishingAndOverwritingPreviousLiveResource) {
163
+ this.removeResource({ resource: event.endpoint, noCascade: true });
164
+ }
165
+ };
166
+ const resource = await this.doResourceRequest(event, args, postRequestFn, postSaveFn);
167
+ const responseId = resource?.["@id"];
168
+ if (responseId && responseId !== iri) {
169
+ this.admin.resourceStackManager.forcePublishedVersion.value = isPublishing ? void 0 : false;
170
+ }
171
+ return resource;
172
+ }
173
+ async doResourceRequest(event, args, postRequestFn, postSaveFn) {
174
+ const source = "source" in event ? event.source || "unknown" : "delete";
175
+ const id = ++this.reqCount.value;
176
+ const iri = (event.iri || event.endpoint).split("?")[0];
177
+ set(this.requestsInProgress, [source, id], { event, args });
178
+ this.errorStore.removeByEndpoint(args[0]);
179
+ try {
180
+ const resource = await this.cwaFetch.fetch(...args);
181
+ const refreshEndpoints = event.refreshEndpoints || [];
182
+ if (args[1].method === "POST") {
183
+ if (resource.componentPositions) {
184
+ refreshEndpoints.push(...resource.componentPositions);
185
+ }
186
+ }
187
+ if (refreshEndpoints.length) {
188
+ const fetchBathEvent = {
189
+ paths: refreshEndpoints,
190
+ shallowFetch: "noexist"
191
+ };
192
+ try {
193
+ await this.fetcher.fetchBatch(fetchBathEvent);
194
+ } catch (err) {
195
+ const fetchError = err;
196
+ if (fetchError?.statusCode !== 404) {
197
+ throw err;
198
+ }
199
+ }
200
+ }
201
+ if (postRequestFn) {
202
+ await postRequestFn(resource);
203
+ }
204
+ if (event.requestCompleteFn) {
205
+ await event.requestCompleteFn(resource);
206
+ }
207
+ if ("data" in event) {
208
+ this.saveResource({
209
+ resource
210
+ });
211
+ } else {
212
+ this.removeResource({
213
+ resource: iri
214
+ });
215
+ }
216
+ if (postSaveFn) {
217
+ await postSaveFn(resource);
218
+ }
219
+ if (event.saveCompleteFn) {
220
+ await event.saveCompleteFn(resource);
221
+ }
222
+ return resource;
223
+ } catch (err) {
224
+ this.errorStore.error(event, err);
225
+ } finally {
226
+ unset(this.requestsInProgress, [source, id]);
227
+ }
228
+ }
229
+ addError(error) {
230
+ this.errorStore.manual(error);
231
+ }
232
+ get errors() {
233
+ return this.errorStore.getErrors;
234
+ }
235
+ get hasErrors() {
236
+ return this.errorStore.hasErrors;
237
+ }
238
+ removeError(id) {
239
+ this.errorStore.removeById(id);
240
+ }
241
+ // @internal - just used in reset-password.ts - should be private and refactored for that use case
242
+ saveResource(event) {
243
+ return this.resourcesStore.saveResource(event);
244
+ }
245
+ requestOptions(method) {
246
+ const headers = {
247
+ accept: "application/ld+json,application/json"
248
+ };
249
+ if (this.fetchStatusManager.primaryFetchPath) {
250
+ headers.path = this.fetchStatusManager.primaryFetchPath;
251
+ }
252
+ headers["content-type"] = method === "PATCH" ? "application/merge-patch+json" : "application/ld+json";
253
+ return {
254
+ method,
255
+ headers
256
+ };
257
+ }
258
+ async initAddResource(targetIri, addAfter, resourceStack, pageDataProperty) {
259
+ const initEvent = {
260
+ targetIri,
261
+ addAfter
262
+ };
263
+ const findClosestResourceByType = (type) => {
264
+ for (const stackItem of resourceStack) {
265
+ if (getResourceTypeFromIri(stackItem.iri) === type) {
266
+ return stackItem.iri;
267
+ }
268
+ }
269
+ };
270
+ const findClosestPositionFromGroupEvent = (event) => {
271
+ const resource = this.resourcesStore.current.byId?.[event.targetIri];
272
+ const positions = resource?.data?.componentPositions;
273
+ if (!positions || !positions.length) {
274
+ return;
275
+ }
276
+ if (event.addAfter === true) {
277
+ return positions[positions.length - 1];
278
+ } else if (event.addAfter === false) {
279
+ return positions[0];
280
+ }
281
+ };
282
+ const findClosestPosition = (event) => {
283
+ if (getResourceTypeFromIri(event.targetIri) !== CwaResourceTypes.COMPONENT_GROUP) {
284
+ return findClosestResourceByType(CwaResourceTypes.COMPONENT_POSITION);
285
+ }
286
+ return findClosestPositionFromGroupEvent(event);
287
+ };
288
+ const closestPosition = findClosestPosition(initEvent);
289
+ const closestGroup = findClosestResourceByType(CwaResourceTypes.COMPONENT_GROUP);
290
+ if (!await this.confirmDiscardAddingResource()) {
291
+ return;
292
+ }
293
+ this._addResourceEvent.value = {
294
+ targetIri,
295
+ addAfter,
296
+ closest: {
297
+ position: closestPosition,
298
+ group: closestGroup
299
+ },
300
+ pageDataProperty
301
+ };
302
+ }
303
+ async setAddResourceEventResource(resourceType, endpoint, isPublishable, instantAdd, defaultData) {
304
+ if (!this._addResourceEvent.value) {
305
+ return;
306
+ }
307
+ this.resourcesStore.initNewResource(this._addResourceEvent.value, resourceType, endpoint, isPublishable, instantAdd, defaultData);
308
+ await nextTick(() => {
309
+ !instantAdd && this.admin.eventBus.emit("selectResource", NEW_RESOURCE_IRI);
310
+ });
311
+ }
312
+ clearAddResourceEventResource() {
313
+ this.resourcesStore.resetNewResource();
314
+ }
315
+ clearAddResource() {
316
+ this._addResourceEvent.value = void 0;
317
+ this.clearAddResourceEventResource();
318
+ }
319
+ get addResourceEvent() {
320
+ return this._addResourceEvent;
321
+ }
322
+ async confirmDiscardAddingResource() {
323
+ if (!this._addResourceEvent.value) {
324
+ return true;
325
+ }
326
+ const alertData = {
327
+ title: "Discard new resource?",
328
+ content: "<p>Are you sure you want to discard your new resource. It will NOT be saved.</p>"
329
+ };
330
+ const dialog = createConfirmDialog(ConfirmDialog);
331
+ const { isCanceled } = await dialog.reveal(alertData);
332
+ if (isCanceled) {
333
+ return false;
334
+ }
335
+ this.clearAddResource();
336
+ return true;
337
+ }
338
+ async addResourceAction(publish) {
339
+ const addEvent = this._addResourceEvent.value;
340
+ if (!addEvent || !this.resourcesStore.adding?.resource) {
341
+ throw new Error("Cannot add resource. No addResource event is present");
342
+ }
343
+ const resource = this.resourcesStore.getResource(this.resourcesStore.adding.resource)?.data;
344
+ if (!resource) {
345
+ throw new Error("Cannot add resource. No new resource exists in the store with data");
346
+ }
347
+ const addingMeta = resource._metadata.adding;
348
+ if (!addingMeta) {
349
+ throw new Error("Cannot add resource. There was no adding metadata on the new resource in the store.");
350
+ }
351
+ const refreshEndpoints = [];
352
+ if (addEvent.addAfter !== null) {
353
+ (() => {
354
+ addEvent.closest.group && refreshEndpoints.push(addEvent.closest.group);
355
+ const getPositionSortValue = () => {
356
+ let targetPosition;
357
+ if (getResourceTypeFromIri(addEvent.targetIri) === CwaResourceTypes.COMPONENT_GROUP) {
358
+ const groupResource = this.resourcesStore.getResource(addEvent.targetIri)?.data;
359
+ if (!groupResource?.componentPositions || groupResource?.componentPositions.length === 0) {
360
+ return 0;
361
+ }
362
+ targetPosition = addEvent.addAfter ? groupResource.componentPositions[groupResource.componentPositions.length - 1] : groupResource.componentPositions[0];
363
+ } else {
364
+ targetPosition = addEvent.closest.position;
365
+ }
366
+ if (!targetPosition) {
367
+ return 0;
368
+ }
369
+ const sortValue = this.resourcesStore.getResource(targetPosition)?.data?.sortValue;
370
+ return sortValue !== void 0 ? addEvent.addAfter ? sortValue + 1 : sortValue : 0;
371
+ };
372
+ const positionIri = this.resourcesStore.adding.position;
373
+ if (!positionIri) {
374
+ resource.sortValue = getPositionSortValue();
375
+ refreshEndpoints.push(...this.getRefreshPositions(this.resourcesStore.adding.resource));
376
+ return;
377
+ }
378
+ const positionData = this.resourcesStore.getResource(positionIri)?.data;
379
+ if (!positionData) {
380
+ throw new Error("Position resource being added not found");
381
+ }
382
+ const positionPostData = {
383
+ ...this.resourcesStore.getResource(positionIri)?.data,
384
+ "@id": void 0,
385
+ "@type": void 0,
386
+ "sortValue": getPositionSortValue()
387
+ };
388
+ resource.componentPositions = [
389
+ positionPostData
390
+ ];
391
+ refreshEndpoints.push(...this.getRefreshPositions(positionIri));
392
+ })();
393
+ } else if (!addEvent.pageDataProperty) {
394
+ const addingToIri = addEvent.targetIri;
395
+ if (getResourceTypeFromIri(addingToIri) !== CwaResourceTypes.COMPONENT_POSITION) {
396
+ throw new Error("Cannot add to arbitrary IRIs. Only to component positions.");
397
+ }
398
+ resource.componentPositions = [addingToIri];
399
+ }
400
+ if (publish !== void 0) {
401
+ resource.publishedAt = publish ? DateTime.local().toUTC().toISO() : null;
402
+ }
403
+ const postData = { ...resource, "@id": void 0, "@type": void 0 };
404
+ const requestCompleteFn = () => {
405
+ this.clearAddResource();
406
+ };
407
+ const newResource = await this.createResource({
408
+ endpoint: addingMeta.endpoint,
409
+ data: postData,
410
+ refreshEndpoints,
411
+ requestCompleteFn: () => {
412
+ this.clearAddResource();
413
+ }
414
+ });
415
+ if (newResource && addEvent.pageDataProperty) {
416
+ await this.updateResource({
417
+ endpoint: this.resources.pageDataIri.value,
418
+ data: { [addEvent.pageDataProperty]: newResource["@id"] },
419
+ refreshEndpoints: [addEvent.targetIri],
420
+ requestCompleteFn
421
+ });
422
+ }
423
+ return newResource;
424
+ }
425
+ getRefreshPositions(positionIri) {
426
+ const refreshPositions = [];
427
+ if (!positionIri) {
428
+ return refreshPositions;
429
+ }
430
+ const groupPositions = this.groupResourcePositions;
431
+ if (groupPositions) {
432
+ const currentPositions = groupPositions;
433
+ if (currentPositions) {
434
+ const index = currentPositions.indexOf(positionIri);
435
+ if (index !== -1) {
436
+ const positionsAfterInsert = groupPositions.slice(index);
437
+ if (positionsAfterInsert && positionsAfterInsert.length) {
438
+ refreshPositions.push(...positionsAfterInsert);
439
+ }
440
+ }
441
+ }
442
+ }
443
+ return refreshPositions;
444
+ }
445
+ get groupResource() {
446
+ if (!this._addResourceEvent.value || !this._addResourceEvent.value.closest.group) {
447
+ return;
448
+ }
449
+ return this.resourcesStore.getResource(this._addResourceEvent.value.closest.group);
450
+ }
451
+ get groupResourcePositions() {
452
+ if (!this.groupResource) {
453
+ return;
454
+ }
455
+ return this.groupResource.data?.componentPositions;
456
+ }
457
+ get resourcesStore() {
458
+ return this.resourcesStoreDefinition.useStore();
459
+ }
460
+ get errorStore() {
461
+ return this.errorStoreDefinition.useStore();
462
+ }
463
+ }
@@ -0,0 +1,53 @@
1
+ import { type ComputedRef } from 'vue';
2
+ import type { ResourcesStore } from '../storage/stores/resources/resources-store.js';
3
+ import type { CwaCurrentResourceInterface } from '../storage/stores/resources/state.js';
4
+ import type { FetcherStore } from '../storage/stores/fetcher/fetcher-store.js';
5
+ import type { AddResourceEvent } from '#cwa/runtime/admin/resource-stack-manager';
6
+ interface PageLoadStatus {
7
+ resources: (string | undefined)[];
8
+ total: number;
9
+ complete: number;
10
+ percent: number;
11
+ }
12
+ export declare class Resources {
13
+ private readonly resourcesStoreDefinition;
14
+ private readonly fetcherStoreDefinition;
15
+ constructor(resourcesStoreDefinition: ResourcesStore, fetcherStoreDefinition: FetcherStore);
16
+ get currentIds(): string[];
17
+ isIriPublishableEquivalent(oldIri: string, newIri: string): boolean;
18
+ findAllPublishableIris(iri: string): string[];
19
+ getResource(id: string): ComputedRef<CwaCurrentResourceInterface | undefined>;
20
+ getChildIris(iri: string, addResourceEvent: undefined | AddResourceEvent): string[];
21
+ get newResource(): ComputedRef<CwaCurrentResourceInterface | undefined>;
22
+ getComponentGroupByReference(reference: string): CwaCurrentResourceInterface | undefined;
23
+ get currentResources(): {
24
+ [key: string]: CwaCurrentResourceInterface;
25
+ };
26
+ private get displayFetchStatus();
27
+ private get pageLoadResources();
28
+ get pageLoadProgress(): ComputedRef<PageLoadStatus>;
29
+ isPageDataResource(iri: string): ComputedRef<boolean>;
30
+ private getFetchStatusType;
31
+ private getLayoutIriByFetchStatus;
32
+ private getPageIriByFetchStatus;
33
+ get pageDataIri(): ComputedRef<any>;
34
+ get pageData(): ComputedRef<CwaCurrentResourceInterface | undefined> | undefined;
35
+ get pageIri(): ComputedRef<string | undefined>;
36
+ get page(): ComputedRef<CwaCurrentResourceInterface | undefined> | undefined;
37
+ get layoutIri(): ComputedRef<string | undefined>;
38
+ get layout(): ComputedRef<CwaCurrentResourceInterface | undefined>;
39
+ findPublishedComponentIri(iri: string): ComputedRef<string | undefined>;
40
+ findDraftComponentIri(iri: string): ComputedRef<string | undefined>;
41
+ get getOrderedPositionsForGroup(): (groupIri: string, includeNewIri?: boolean) => string[] | undefined;
42
+ get getPositionSortDisplayNumber(): (groupIri: string, includeNewIri?: boolean) => number | undefined;
43
+ getRefreshEndpointsForDelete(iri: string): string[];
44
+ get isLoading(): ComputedRef<boolean>;
45
+ get resourceLoadStatus(): import("../storage/stores/resources/getters.js").ResourcesLoadStatusInterface;
46
+ private get fetcherStore();
47
+ private get resourcesStore();
48
+ get usesPageTemplate(): ComputedRef<boolean>;
49
+ get isDataPage(): ComputedRef<boolean>;
50
+ get isDynamicPage(): ComputedRef<boolean>;
51
+ get hasNewResources(): boolean;
52
+ }
53
+ export {};