@conduction/nextcloud-vue 2.58.0 → 2.59.0

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 (304) hide show
  1. package/dist/esm/components/CnActionsBar/CnActionsBar.vue2.js +12 -2
  2. package/dist/esm/components/CnActionsBar/CnActionsBar.vue2.js.map +1 -1
  3. package/dist/esm/components/CnActionsBar/CnActionsBar.vue3.js +1 -2
  4. package/dist/esm/components/CnActionsBar/CnActionsBar.vue3.js.map +1 -1
  5. package/dist/esm/components/CnActionsMenu/CnActionsMenu.vue2.js.map +1 -1
  6. package/dist/esm/components/CnActionsMenu/CnActionsMenu.vue3.js +0 -3
  7. package/dist/esm/components/CnActionsMenu/CnActionsMenu.vue3.js.map +1 -1
  8. package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue2.js.map +1 -1
  9. package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue3.js +1 -2
  10. package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue3.js.map +1 -1
  11. package/dist/esm/components/CnBoardView/CnBoardView.vue2.js +12 -5
  12. package/dist/esm/components/CnBoardView/CnBoardView.vue2.js.map +1 -1
  13. package/dist/esm/components/CnBoardView/CnBoardView.vue3.js +2 -1
  14. package/dist/esm/components/CnBoardView/CnBoardView.vue3.js.map +1 -1
  15. package/dist/esm/components/CnCardGrid/CnCardGrid.vue2.js +9 -1
  16. package/dist/esm/components/CnCardGrid/CnCardGrid.vue2.js.map +1 -1
  17. package/dist/esm/components/CnCardGrid/CnCardGrid.vue3.js.map +1 -1
  18. package/dist/esm/components/CnContextMenu/CnContextMenu.vue2.js +6 -1
  19. package/dist/esm/components/CnContextMenu/CnContextMenu.vue2.js.map +1 -1
  20. package/dist/esm/components/CnContextMenu/CnContextMenu.vue3.js.map +1 -1
  21. package/dist/esm/components/CnDataTable/CnDataTable.vue2.js +116 -15
  22. package/dist/esm/components/CnDataTable/CnDataTable.vue2.js.map +1 -1
  23. package/dist/esm/components/CnDataTable/CnDataTable.vue3.js +27 -14
  24. package/dist/esm/components/CnDataTable/CnDataTable.vue3.js.map +1 -1
  25. package/dist/esm/components/CnDateAxisView/CnDateAxisView.vue2.js +13 -6
  26. package/dist/esm/components/CnDateAxisView/CnDateAxisView.vue2.js.map +1 -1
  27. package/dist/esm/components/CnDateAxisView/CnDateAxisView.vue3.js +2 -0
  28. package/dist/esm/components/CnDateAxisView/CnDateAxisView.vue3.js.map +1 -1
  29. package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js +29 -1
  30. package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js.map +1 -1
  31. package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js.map +1 -1
  32. package/dist/esm/components/CnFeaturesAndRoadmapView/CnFeaturesAndRoadmapView.vue2.js.map +1 -1
  33. package/dist/esm/components/CnFeaturesAndRoadmapView/CnFeaturesAndRoadmapView.vue3.js +1 -2
  34. package/dist/esm/components/CnFeaturesAndRoadmapView/CnFeaturesAndRoadmapView.vue3.js.map +1 -1
  35. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js +3 -1
  36. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js.map +1 -1
  37. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js +17 -17
  38. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js.map +1 -1
  39. package/dist/esm/components/CnFilesWidget/CnFilesWidget.vue2.js +4 -21
  40. package/dist/esm/components/CnFilesWidget/CnFilesWidget.vue2.js.map +1 -1
  41. package/dist/esm/components/CnFilesWidget/CnFilesWidget.vue3.js.map +1 -1
  42. package/dist/esm/components/CnFlowRunsWidget/CnFlowRunsWidget.vue2.js +0 -13
  43. package/dist/esm/components/CnFlowRunsWidget/CnFlowRunsWidget.vue2.js.map +1 -1
  44. package/dist/esm/components/CnFlowRunsWidget/CnFlowRunsWidget.vue3.js +8 -8
  45. package/dist/esm/components/CnFlowRunsWidget/CnFlowRunsWidget.vue3.js.map +1 -1
  46. package/dist/esm/components/CnFlowsPage/CnFlowsPage.vue2.js.map +1 -1
  47. package/dist/esm/components/CnFlowsPage/CnFlowsPage.vue3.js +3 -2
  48. package/dist/esm/components/CnFlowsPage/CnFlowsPage.vue3.js.map +1 -1
  49. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +67 -13
  50. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
  51. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js +15 -8
  52. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
  53. package/dist/esm/components/CnIndexPage/manifestActionDispatch.js +31 -11
  54. package/dist/esm/components/CnIndexPage/manifestActionDispatch.js.map +1 -1
  55. package/dist/esm/components/CnIntegrationWidget/CnIntegrationWidgetEmpty.vue2.js.map +1 -1
  56. package/dist/esm/components/CnIntegrationWidget/CnIntegrationWidgetEmpty.vue3.js +1 -2
  57. package/dist/esm/components/CnIntegrationWidget/CnIntegrationWidgetEmpty.vue3.js.map +1 -1
  58. package/dist/esm/components/CnInteractionFormWidget/CnInteractionFormWidget.vue2.js.map +1 -1
  59. package/dist/esm/components/CnInteractionFormWidget/CnInteractionFormWidget.vue3.js +0 -1
  60. package/dist/esm/components/CnInteractionFormWidget/CnInteractionFormWidget.vue3.js.map +1 -1
  61. package/dist/esm/components/CnLinkButtonWidget/CnLinkButtonWidget.vue2.js +2 -17
  62. package/dist/esm/components/CnLinkButtonWidget/CnLinkButtonWidget.vue2.js.map +1 -1
  63. package/dist/esm/components/CnLinkButtonWidget/CnLinkButtonWidget.vue3.js.map +1 -1
  64. package/dist/esm/components/CnLogsPage/CnLogsPage.vue2.js +35 -11
  65. package/dist/esm/components/CnLogsPage/CnLogsPage.vue2.js.map +1 -1
  66. package/dist/esm/components/CnLogsPage/CnLogsPage.vue3.js +3 -2
  67. package/dist/esm/components/CnLogsPage/CnLogsPage.vue3.js.map +1 -1
  68. package/dist/esm/components/CnObjectCard/CnObjectCard.vue2.js +23 -5
  69. package/dist/esm/components/CnObjectCard/CnObjectCard.vue2.js.map +1 -1
  70. package/dist/esm/components/CnObjectCard/CnObjectCard.vue3.js +1 -1
  71. package/dist/esm/components/CnObjectCard/CnObjectCard.vue3.js.map +1 -1
  72. package/dist/esm/components/CnObjectList/CnObjectList.vue2.js +19 -3
  73. package/dist/esm/components/CnObjectList/CnObjectList.vue2.js.map +1 -1
  74. package/dist/esm/components/CnObjectList/CnObjectList.vue3.js.map +1 -1
  75. package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue2.js +45 -15
  76. package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue2.js.map +1 -1
  77. package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue3.js +4 -2
  78. package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue3.js.map +1 -1
  79. package/dist/esm/components/CnObjectRow/CnObjectRow.vue2.js +24 -6
  80. package/dist/esm/components/CnObjectRow/CnObjectRow.vue2.js.map +1 -1
  81. package/dist/esm/components/CnObjectRow/CnObjectRow.vue3.js +1 -1
  82. package/dist/esm/components/CnObjectRow/CnObjectRow.vue3.js.map +1 -1
  83. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue2.js.map +1 -1
  84. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue3.js +0 -1
  85. package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue3.js.map +1 -1
  86. package/dist/esm/components/CnPageRenderer/CnPageRenderer.vue2.js.map +1 -1
  87. package/dist/esm/components/CnPageRenderer/CnPageRenderer.vue3.js +4 -2
  88. package/dist/esm/components/CnPageRenderer/CnPageRenderer.vue3.js.map +1 -1
  89. package/dist/esm/components/CnRelatedObjectsWidget/CnRelatedObjectsWidget.vue2.js +100 -3
  90. package/dist/esm/components/CnRelatedObjectsWidget/CnRelatedObjectsWidget.vue2.js.map +1 -1
  91. package/dist/esm/components/CnRelatedObjectsWidget/CnRelatedObjectsWidget.vue3.js.map +1 -1
  92. package/dist/esm/components/CnRowActions/CnRowActions.vue2.js +7 -2
  93. package/dist/esm/components/CnRowActions/CnRowActions.vue2.js.map +1 -1
  94. package/dist/esm/components/CnRowActions/CnRowActions.vue3.js.map +1 -1
  95. package/dist/esm/components/CnSpendAnalyticsWidget/CnSpendAnalyticsWidget.vue2.js +5 -3
  96. package/dist/esm/components/CnSpendAnalyticsWidget/CnSpendAnalyticsWidget.vue2.js.map +1 -1
  97. package/dist/esm/components/CnSpendAnalyticsWidget/CnSpendAnalyticsWidget.vue3.js.map +1 -1
  98. package/dist/esm/components/CnTabs/CnTabs.vue2.js.map +1 -1
  99. package/dist/esm/components/CnTabs/CnTabs.vue3.js.map +1 -1
  100. package/dist/esm/components/CnTasksWidget/CnTasksWidget.vue2.js +3 -1
  101. package/dist/esm/components/CnTasksWidget/CnTasksWidget.vue2.js.map +1 -1
  102. package/dist/esm/components/CnTasksWidget/CnTasksWidget.vue3.js +1 -0
  103. package/dist/esm/components/CnTasksWidget/CnTasksWidget.vue3.js.map +1 -1
  104. package/dist/esm/integrations/builtin/analytics/CnAnalyticsCard.vue2.js +3 -1
  105. package/dist/esm/integrations/builtin/analytics/CnAnalyticsCard.vue2.js.map +1 -1
  106. package/dist/esm/integrations/builtin/analytics/CnAnalyticsCard.vue3.js.map +1 -1
  107. package/dist/esm/integrations/builtin/analytics/CnAnalyticsTab.vue2.js +3 -1
  108. package/dist/esm/integrations/builtin/analytics/CnAnalyticsTab.vue2.js.map +1 -1
  109. package/dist/esm/integrations/builtin/analytics/CnAnalyticsTab.vue3.js +2 -4
  110. package/dist/esm/integrations/builtin/analytics/CnAnalyticsTab.vue3.js.map +1 -1
  111. package/dist/esm/integrations/builtin/bookmarks/CnBookmarksCard.vue2.js +6 -0
  112. package/dist/esm/integrations/builtin/bookmarks/CnBookmarksCard.vue2.js.map +1 -1
  113. package/dist/esm/integrations/builtin/bookmarks/CnBookmarksCard.vue3.js +68 -53
  114. package/dist/esm/integrations/builtin/bookmarks/CnBookmarksCard.vue3.js.map +1 -1
  115. package/dist/esm/integrations/builtin/bookmarks/CnBookmarksTab.vue2.js +17 -0
  116. package/dist/esm/integrations/builtin/bookmarks/CnBookmarksTab.vue2.js.map +1 -1
  117. package/dist/esm/integrations/builtin/bookmarks/CnBookmarksTab.vue3.js +21 -19
  118. package/dist/esm/integrations/builtin/bookmarks/CnBookmarksTab.vue3.js.map +1 -1
  119. package/dist/esm/integrations/builtin/collectives/CnCollectivesCard.vue2.js +3 -1
  120. package/dist/esm/integrations/builtin/collectives/CnCollectivesCard.vue2.js.map +1 -1
  121. package/dist/esm/integrations/builtin/collectives/CnCollectivesCard.vue3.js.map +1 -1
  122. package/dist/esm/integrations/builtin/collectives/CnCollectivesTab.vue2.js +3 -1
  123. package/dist/esm/integrations/builtin/collectives/CnCollectivesTab.vue2.js.map +1 -1
  124. package/dist/esm/integrations/builtin/collectives/CnCollectivesTab.vue3.js +2 -4
  125. package/dist/esm/integrations/builtin/collectives/CnCollectivesTab.vue3.js.map +1 -1
  126. package/dist/esm/integrations/builtin/cospend/CnCospendCard.vue2.js +2 -1
  127. package/dist/esm/integrations/builtin/cospend/CnCospendCard.vue2.js.map +1 -1
  128. package/dist/esm/integrations/builtin/cospend/CnCospendCard.vue3.js.map +1 -1
  129. package/dist/esm/integrations/builtin/cospend/CnCospendTab.vue2.js +2 -1
  130. package/dist/esm/integrations/builtin/cospend/CnCospendTab.vue2.js.map +1 -1
  131. package/dist/esm/integrations/builtin/cospend/CnCospendTab.vue3.js +1 -2
  132. package/dist/esm/integrations/builtin/cospend/CnCospendTab.vue3.js.map +1 -1
  133. package/dist/esm/integrations/builtin/deck/CnDeckCard.vue2.js +2 -1
  134. package/dist/esm/integrations/builtin/deck/CnDeckCard.vue2.js.map +1 -1
  135. package/dist/esm/integrations/builtin/deck/CnDeckCard.vue3.js.map +1 -1
  136. package/dist/esm/integrations/builtin/deck/CnDeckTab.vue2.js +2 -1
  137. package/dist/esm/integrations/builtin/deck/CnDeckTab.vue2.js.map +1 -1
  138. package/dist/esm/integrations/builtin/deck/CnDeckTab.vue3.js +1 -2
  139. package/dist/esm/integrations/builtin/deck/CnDeckTab.vue3.js.map +1 -1
  140. package/dist/esm/integrations/builtin/email/CnEmailCard.vue2.js.map +1 -1
  141. package/dist/esm/integrations/builtin/email/CnEmailCard.vue3.js.map +1 -1
  142. package/dist/esm/integrations/builtin/email/CnEmailTab.vue2.js.map +1 -1
  143. package/dist/esm/integrations/builtin/email/CnEmailTab.vue3.js +1 -2
  144. package/dist/esm/integrations/builtin/email/CnEmailTab.vue3.js.map +1 -1
  145. package/dist/esm/integrations/builtin/flow/CnFlowCard.vue2.js +2 -1
  146. package/dist/esm/integrations/builtin/flow/CnFlowCard.vue2.js.map +1 -1
  147. package/dist/esm/integrations/builtin/flow/CnFlowCard.vue3.js.map +1 -1
  148. package/dist/esm/integrations/builtin/flow/CnFlowTab.vue2.js +2 -1
  149. package/dist/esm/integrations/builtin/flow/CnFlowTab.vue2.js.map +1 -1
  150. package/dist/esm/integrations/builtin/flow/CnFlowTab.vue3.js +1 -2
  151. package/dist/esm/integrations/builtin/flow/CnFlowTab.vue3.js.map +1 -1
  152. package/dist/esm/integrations/builtin/forms/CnFormsCard.vue2.js +3 -1
  153. package/dist/esm/integrations/builtin/forms/CnFormsCard.vue2.js.map +1 -1
  154. package/dist/esm/integrations/builtin/forms/CnFormsCard.vue3.js.map +1 -1
  155. package/dist/esm/integrations/builtin/forms/CnFormsTab.vue2.js +3 -1
  156. package/dist/esm/integrations/builtin/forms/CnFormsTab.vue2.js.map +1 -1
  157. package/dist/esm/integrations/builtin/forms/CnFormsTab.vue3.js +2 -4
  158. package/dist/esm/integrations/builtin/forms/CnFormsTab.vue3.js.map +1 -1
  159. package/dist/esm/integrations/builtin/maps/CnMapsCard.vue2.js +3 -1
  160. package/dist/esm/integrations/builtin/maps/CnMapsCard.vue2.js.map +1 -1
  161. package/dist/esm/integrations/builtin/maps/CnMapsCard.vue3.js.map +1 -1
  162. package/dist/esm/integrations/builtin/maps/CnMapsTab.vue2.js +3 -1
  163. package/dist/esm/integrations/builtin/maps/CnMapsTab.vue2.js.map +1 -1
  164. package/dist/esm/integrations/builtin/maps/CnMapsTab.vue3.js +2 -4
  165. package/dist/esm/integrations/builtin/maps/CnMapsTab.vue3.js.map +1 -1
  166. package/dist/esm/integrations/builtin/openproject/CnOpenprojectCard.vue2.js +3 -1
  167. package/dist/esm/integrations/builtin/openproject/CnOpenprojectCard.vue2.js.map +1 -1
  168. package/dist/esm/integrations/builtin/openproject/CnOpenprojectCard.vue3.js.map +1 -1
  169. package/dist/esm/integrations/builtin/openproject/CnOpenprojectTab.vue2.js +3 -1
  170. package/dist/esm/integrations/builtin/openproject/CnOpenprojectTab.vue2.js.map +1 -1
  171. package/dist/esm/integrations/builtin/openproject/CnOpenprojectTab.vue3.js +2 -4
  172. package/dist/esm/integrations/builtin/openproject/CnOpenprojectTab.vue3.js.map +1 -1
  173. package/dist/esm/integrations/builtin/photos/CnPhotosCard.vue2.js +2 -1
  174. package/dist/esm/integrations/builtin/photos/CnPhotosCard.vue2.js.map +1 -1
  175. package/dist/esm/integrations/builtin/photos/CnPhotosCard.vue3.js.map +1 -1
  176. package/dist/esm/integrations/builtin/photos/CnPhotosTab.vue2.js +2 -1
  177. package/dist/esm/integrations/builtin/photos/CnPhotosTab.vue2.js.map +1 -1
  178. package/dist/esm/integrations/builtin/photos/CnPhotosTab.vue3.js +1 -2
  179. package/dist/esm/integrations/builtin/photos/CnPhotosTab.vue3.js.map +1 -1
  180. package/dist/esm/integrations/builtin/polls/CnPollsCard.vue2.js +2 -1
  181. package/dist/esm/integrations/builtin/polls/CnPollsCard.vue2.js.map +1 -1
  182. package/dist/esm/integrations/builtin/polls/CnPollsCard.vue3.js.map +1 -1
  183. package/dist/esm/integrations/builtin/polls/CnPollsTab.vue2.js +2 -1
  184. package/dist/esm/integrations/builtin/polls/CnPollsTab.vue2.js.map +1 -1
  185. package/dist/esm/integrations/builtin/polls/CnPollsTab.vue3.js +1 -2
  186. package/dist/esm/integrations/builtin/polls/CnPollsTab.vue3.js.map +1 -1
  187. package/dist/esm/integrations/builtin/shares/CnSharesTab.vue2.js.map +1 -1
  188. package/dist/esm/integrations/builtin/shares/CnSharesTab.vue3.js +3 -6
  189. package/dist/esm/integrations/builtin/shares/CnSharesTab.vue3.js.map +1 -1
  190. package/dist/esm/integrations/builtin/talk/CnTalkCard.vue2.js +3 -1
  191. package/dist/esm/integrations/builtin/talk/CnTalkCard.vue2.js.map +1 -1
  192. package/dist/esm/integrations/builtin/talk/CnTalkCard.vue3.js.map +1 -1
  193. package/dist/esm/integrations/builtin/talk/CnTalkTab.vue2.js +3 -1
  194. package/dist/esm/integrations/builtin/talk/CnTalkTab.vue2.js.map +1 -1
  195. package/dist/esm/integrations/builtin/talk/CnTalkTab.vue3.js +2 -4
  196. package/dist/esm/integrations/builtin/talk/CnTalkTab.vue3.js.map +1 -1
  197. package/dist/esm/integrations/builtin/time-tracker/CnTimeTrackerCard.vue2.js +2 -1
  198. package/dist/esm/integrations/builtin/time-tracker/CnTimeTrackerCard.vue2.js.map +1 -1
  199. package/dist/esm/integrations/builtin/time-tracker/CnTimeTrackerCard.vue3.js.map +1 -1
  200. package/dist/esm/integrations/builtin/time-tracker/CnTimeTrackerTab.vue2.js +2 -1
  201. package/dist/esm/integrations/builtin/time-tracker/CnTimeTrackerTab.vue2.js.map +1 -1
  202. package/dist/esm/integrations/builtin/time-tracker/CnTimeTrackerTab.vue3.js +1 -2
  203. package/dist/esm/integrations/builtin/time-tracker/CnTimeTrackerTab.vue3.js.map +1 -1
  204. package/dist/esm/integrations/builtin/xwiki/CnXwikiCard.vue2.js +4 -1
  205. package/dist/esm/integrations/builtin/xwiki/CnXwikiCard.vue2.js.map +1 -1
  206. package/dist/esm/integrations/builtin/xwiki/CnXwikiCard.vue3.js.map +1 -1
  207. package/dist/esm/integrations/builtin/xwiki/CnXwikiTab.vue2.js +6 -3
  208. package/dist/esm/integrations/builtin/xwiki/CnXwikiTab.vue2.js.map +1 -1
  209. package/dist/esm/integrations/builtin/xwiki/CnXwikiTab.vue3.js +2 -4
  210. package/dist/esm/integrations/builtin/xwiki/CnXwikiTab.vue3.js.map +1 -1
  211. package/dist/esm/l10n/en.json.js +1 -0
  212. package/dist/esm/l10n/en.json.js.map +1 -1
  213. package/dist/esm/l10n/nl.json.js +1 -0
  214. package/dist/esm/l10n/nl.json.js.map +1 -1
  215. package/dist/esm/nextcloud-vue.css +71 -7
  216. package/dist/esm/utils/actionLink.js +5 -0
  217. package/dist/esm/utils/actionLink.js.map +1 -1
  218. package/dist/esm/utils/actionsDispatcher.js +16 -1
  219. package/dist/esm/utils/actionsDispatcher.js.map +1 -1
  220. package/dist/esm/utils/linkNavigation.js +6 -3
  221. package/dist/esm/utils/linkNavigation.js.map +1 -1
  222. package/dist/esm/utils/rowAuxClick.js +30 -5
  223. package/dist/esm/utils/rowAuxClick.js.map +1 -1
  224. package/dist/esm/utils/safeHref.js +18 -3
  225. package/dist/esm/utils/safeHref.js.map +1 -1
  226. package/dist/nextcloud-vue.cjs.js +909 -386
  227. package/dist/nextcloud-vue.cjs.js.map +2 -2
  228. package/dist/nextcloud-vue.css +71 -7
  229. package/l10n/en.json +1 -0
  230. package/l10n/nl.json +1 -0
  231. package/package.json +1 -1
  232. package/src/components/CnActionsBar/CnActionsBar.vue +14 -5
  233. package/src/components/CnActionsMenu/CnActionsMenu.vue +0 -3
  234. package/src/components/CnAdminSettingsShell/CnAdminSettingsShell.vue +1 -2
  235. package/src/components/CnBoardView/CnBoardView.vue +13 -5
  236. package/src/components/CnCardGrid/CnCardGrid.vue +9 -1
  237. package/src/components/CnContextMenu/CnContextMenu.vue +6 -1
  238. package/src/components/CnDataTable/CnDataTable.md +1 -1
  239. package/src/components/CnDataTable/CnDataTable.vue +131 -17
  240. package/src/components/CnDateAxisView/CnDateAxisView.vue +15 -6
  241. package/src/components/CnDetailPage/CnDetailPage.md +1 -1
  242. package/src/components/CnDetailPage/CnDetailPage.vue +29 -1
  243. package/src/components/CnFeaturesAndRoadmapView/CnFeaturesAndRoadmapView.vue +1 -2
  244. package/src/components/CnFilesBrowser/CnFilesBrowser.vue +5 -3
  245. package/src/components/CnFilesWidget/CnFilesWidget.vue +4 -21
  246. package/src/components/CnFlowRunsWidget/CnFlowRunsWidget.vue +8 -21
  247. package/src/components/CnFlowsPage/CnFlowsPage.vue +2 -1
  248. package/src/components/CnIndexPage/CnIndexPage.vue +75 -14
  249. package/src/components/CnIndexPage/manifestActionDispatch.js +31 -11
  250. package/src/components/CnIntegrationWidget/CnIntegrationWidgetEmpty.vue +1 -2
  251. package/src/components/CnInteractionFormWidget/CnInteractionFormWidget.vue +0 -1
  252. package/src/components/CnLinkButtonWidget/CnLinkButtonWidget.vue +2 -17
  253. package/src/components/CnLogsPage/CnLogsPage.vue +37 -12
  254. package/src/components/CnObjectCard/CnObjectCard.vue +24 -6
  255. package/src/components/CnObjectList/CnObjectList.vue +19 -3
  256. package/src/components/CnObjectListWidget/CnObjectListWidget.vue +47 -15
  257. package/src/components/CnObjectRow/CnObjectRow.vue +25 -7
  258. package/src/components/CnObjectSidebar/CnFilesTab.vue +0 -1
  259. package/src/components/CnPageRenderer/CnPageRenderer.vue +2 -0
  260. package/src/components/CnRelatedObjectsWidget/CnRelatedObjectsWidget.vue +100 -3
  261. package/src/components/CnRowActions/CnRowActions.vue +7 -2
  262. package/src/components/CnSpendAnalyticsWidget/CnSpendAnalyticsWidget.vue +5 -3
  263. package/src/components/CnTabs/CnTabs.vue +7 -3
  264. package/src/components/CnTasksWidget/CnTasksWidget.vue +4 -1
  265. package/src/css/table.css +26 -0
  266. package/src/integrations/builtin/analytics/CnAnalyticsCard.vue +3 -2
  267. package/src/integrations/builtin/analytics/CnAnalyticsTab.vue +5 -6
  268. package/src/integrations/builtin/bookmarks/CnBookmarksCard.vue +12 -1
  269. package/src/integrations/builtin/bookmarks/CnBookmarksTab.vue +23 -6
  270. package/src/integrations/builtin/bookmarks/__tests__/CnBookmarksTab.spec.js +7 -2
  271. package/src/integrations/builtin/collectives/CnCollectivesCard.vue +3 -2
  272. package/src/integrations/builtin/collectives/CnCollectivesTab.vue +5 -6
  273. package/src/integrations/builtin/cospend/CnCospendCard.vue +2 -2
  274. package/src/integrations/builtin/cospend/CnCospendTab.vue +3 -4
  275. package/src/integrations/builtin/deck/CnDeckCard.vue +2 -2
  276. package/src/integrations/builtin/deck/CnDeckTab.vue +3 -4
  277. package/src/integrations/builtin/email/CnEmailCard.vue +6 -2
  278. package/src/integrations/builtin/email/CnEmailTab.vue +7 -4
  279. package/src/integrations/builtin/flow/CnFlowCard.vue +2 -2
  280. package/src/integrations/builtin/flow/CnFlowTab.vue +3 -4
  281. package/src/integrations/builtin/forms/CnFormsCard.vue +3 -2
  282. package/src/integrations/builtin/forms/CnFormsTab.vue +5 -6
  283. package/src/integrations/builtin/maps/CnMapsCard.vue +3 -2
  284. package/src/integrations/builtin/maps/CnMapsTab.vue +5 -6
  285. package/src/integrations/builtin/maps/__tests__/CnMapsTab.spec.js +9 -0
  286. package/src/integrations/builtin/openproject/CnOpenprojectCard.vue +3 -2
  287. package/src/integrations/builtin/openproject/CnOpenprojectTab.vue +5 -6
  288. package/src/integrations/builtin/photos/CnPhotosCard.vue +2 -2
  289. package/src/integrations/builtin/photos/CnPhotosTab.vue +3 -4
  290. package/src/integrations/builtin/polls/CnPollsCard.vue +2 -2
  291. package/src/integrations/builtin/polls/CnPollsTab.vue +3 -4
  292. package/src/integrations/builtin/shares/CnSharesTab.vue +3 -6
  293. package/src/integrations/builtin/talk/CnTalkCard.vue +3 -2
  294. package/src/integrations/builtin/talk/CnTalkTab.vue +5 -6
  295. package/src/integrations/builtin/time-tracker/CnTimeTrackerCard.vue +2 -2
  296. package/src/integrations/builtin/time-tracker/CnTimeTrackerTab.vue +3 -4
  297. package/src/integrations/builtin/xwiki/CnXwikiCard.vue +4 -2
  298. package/src/integrations/builtin/xwiki/CnXwikiTab.vue +7 -7
  299. package/src/integrations/builtin/xwiki/__tests__/CnXwikiTab.spec.js +9 -0
  300. package/src/utils/actionLink.js +5 -0
  301. package/src/utils/actionsDispatcher.js +15 -0
  302. package/src/utils/linkNavigation.js +6 -3
  303. package/src/utils/rowAuxClick.js +29 -4
  304. package/src/utils/safeHref.js +18 -3
@@ -43,6 +43,26 @@ const CORE_TABS = ['files', 'notes', 'tags', 'tasks', 'auditTrail', 'shares'];
43
43
  /** One-time guard so the legacy-path deprecation warning logs only once. */
44
44
  let legacyWarned = false;
45
45
 
46
+ /**
47
+ * Schema titles by numeric schema id, shared by every widget on the page so a
48
+ * schema is asked for once. OpenRegister's `/uses` and `/used` answer
49
+ * `@self.schema` as that id ("120"), which is not a word anyone can read.
50
+ *
51
+ * @type {Map<string, Promise<string>>}
52
+ */
53
+ const schemaTitleCache = new Map();
54
+
55
+ /**
56
+ * Whether a value is a bare number, the way OpenRegister names a schema by id.
57
+ *
58
+ * @param {string|number|undefined|null} value The value.
59
+ * @return {boolean}
60
+ */
61
+ function isNumericId(value) {
62
+ return (typeof value === 'number' && Number.isFinite(value))
63
+ || (typeof value === 'string' && /^\d+$/.test(value.trim()))
64
+ }
65
+
46
66
  /**
47
67
  * Leaf groups surfaced by the aggregated `/relations` endpoint, in tab order.
48
68
  * `responseKey` is the key in the `/relations` payload; `integrationId` is the
@@ -125,6 +145,14 @@ var script = {
125
145
  NcEmptyContent,
126
146
  },
127
147
 
148
+ inject: {
149
+ /**
150
+ * The host app's translator (CnAppRoot provides it), so a schema title
151
+ * reads in the app's language. Without it a title reads as stored.
152
+ */
153
+ cnTranslate: { default: () => (key) => key },
154
+ },
155
+
128
156
  props: {
129
157
  /** Widget title shown in the header. */
130
158
  title: {
@@ -388,6 +416,8 @@ var script = {
388
416
  * @type {HTMLInputElement|null}
389
417
  */
390
418
  fileInputEl: null,
419
+ /** Schema titles by numeric schema id, for object rows. */
420
+ schemaTitles: {},
391
421
  /** Whether any section/tab is currently fetching. */
392
422
  loading: false,
393
423
  /** True once the first fetch has completed (gates the empty state). */
@@ -1080,9 +1110,74 @@ var script = {
1080
1110
  self.name,
1081
1111
  raw.summary,
1082
1112
  raw.description,
1083
- ].find((v) => typeof v === 'string' && v.trim() && !isUuid(v)) || self.schema || String(id);
1084
- const meta = self.schema || raw.schema || '';
1085
- return { id, label, meta: typeof meta === 'string' ? meta : '', raw }
1113
+ ].find((v) => typeof v === 'string' && v.trim() && !isUuid(v))
1114
+ || [raw.givenName, raw.familyName].filter((v) => typeof v === 'string' && v.trim()).join(' ');
1115
+ // OpenRegister names the schema by numeric id: show its title, never the number.
1116
+ const schema = this.schemaName(self.schema || raw.schema);
1117
+ const finalLabel = label || schema || String(id);
1118
+ return { id, label: finalLabel, meta: schema === finalLabel ? '' : schema, raw }
1119
+ },
1120
+
1121
+ /**
1122
+ * How a row names its schema: the translated title for a numeric id
1123
+ * (empty until it is read, or when it cannot be), a slug as it is.
1124
+ *
1125
+ * @param {string|number|undefined|null} schema - `@self.schema` of the related object.
1126
+ * @return {string}
1127
+ */
1128
+ schemaName(schema) {
1129
+ if (isNumericId(schema)) {
1130
+ const title = this.schemaTitles[String(schema).trim()];
1131
+ return title ? this.cnTranslate(title) : ''
1132
+ }
1133
+ return typeof schema === 'string' ? schema : ''
1134
+ },
1135
+
1136
+ /**
1137
+ * Read the titles of the numeric schema ids in these envelopes once,
1138
+ * before the rows are built, so no row shows a number first.
1139
+ *
1140
+ * @param {Array<object|null>} envelopes - The `{ results }` payloads.
1141
+ * @return {Promise<void>}
1142
+ */
1143
+ async resolveSchemaTitles(envelopes) {
1144
+ const ids = new Set();
1145
+ for (const envelope of envelopes) {
1146
+ for (const raw of ((envelope && envelope.results) || [])) {
1147
+ const schema = (raw && (raw['@self'] || {}).schema) ?? (raw && raw.schema);
1148
+ if (isNumericId(schema)) {
1149
+ ids.add(String(schema).trim());
1150
+ }
1151
+ }
1152
+ }
1153
+ const titles = { ...this.schemaTitles };
1154
+ await Promise.all([...ids].filter((id) => !(id in titles)).map(async (id) => {
1155
+ if (!schemaTitleCache.has(id)) {
1156
+ schemaTitleCache.set(id, this.fetchSchemaTitle(id));
1157
+ }
1158
+ titles[id] = await schemaTitleCache.get(id);
1159
+ }));
1160
+ this.schemaTitles = titles;
1161
+ },
1162
+
1163
+ /**
1164
+ * GET one schema's title; '' when it cannot be read.
1165
+ *
1166
+ * @param {string} id - The numeric schema id.
1167
+ * @return {Promise<string>}
1168
+ */
1169
+ async fetchSchemaTitle(id) {
1170
+ try {
1171
+ const response = await fetch(generateUrl('/apps/openregister/api/schemas/{id}', { id }), { method: 'GET', headers: buildHeaders() });
1172
+ if (!response.ok) {
1173
+ return ''
1174
+ }
1175
+ const schema = await response.json();
1176
+ const title = schema && (schema.title || schema.slug);
1177
+ return typeof title === 'string' ? title : ''
1178
+ } catch {
1179
+ return ''
1180
+ }
1086
1181
  },
1087
1182
 
1088
1183
  /**
@@ -1186,6 +1281,7 @@ var script = {
1186
1281
  const groups = [];
1187
1282
 
1188
1283
  if (this.showObjects) {
1284
+ await this.resolveSchemaTitles([uses, used, contracts]);
1189
1285
  const objectItems = this.mergeObjectResults([uses, used, contracts]);
1190
1286
  groups.push({ key: 'objects', label: this.objectsLabel, icon: 'FileTreeOutline', integrationId: '', items: objectItems, total: objectItems.length });
1191
1287
  }
@@ -1311,6 +1407,7 @@ var script = {
1311
1407
  calls.push(store.fetchContracts(type, id));
1312
1408
  }
1313
1409
  const groups = await Promise.all(calls);
1410
+ await this.resolveSchemaTitles(groups.map((results) => ({ results: results || [] })));
1314
1411
  const seen = new Set();
1315
1412
  const merged = [];
1316
1413
  for (const group of groups) {