@conduction/nextcloud-vue 2.56.0-beta.37 → 2.56.0-beta.38

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 (287) hide show
  1. package/dist/esm/components/CnAdvancedFormDialog/CnMetadataTab.vue.js +1 -1
  2. package/dist/esm/components/CnAdvancedFormDialog/CnMetadataTab.vue2.js +3 -2
  3. package/dist/esm/components/CnAdvancedFormDialog/CnMetadataTab.vue2.js.map +1 -1
  4. package/dist/esm/components/CnAdvancedFormDialog/CnMetadataTab.vue3.js.map +1 -1
  5. package/dist/esm/components/CnAdvancedFormDialog/CnPropertyValueCell.vue.js +1 -1
  6. package/dist/esm/components/CnAdvancedFormDialog/CnPropertyValueCell.vue2.js +5 -4
  7. package/dist/esm/components/CnAdvancedFormDialog/CnPropertyValueCell.vue2.js.map +1 -1
  8. package/dist/esm/components/CnAdvancedFormDialog/CnPropertyValueCell.vue3.js.map +1 -1
  9. package/dist/esm/components/CnAnalyticsReportPicker/CnAnalyticsReportPicker.vue.js +1 -1
  10. package/dist/esm/components/CnAnalyticsReportPicker/CnAnalyticsReportPicker.vue2.js +2 -1
  11. package/dist/esm/components/CnAnalyticsReportPicker/CnAnalyticsReportPicker.vue2.js.map +1 -1
  12. package/dist/esm/components/CnAnalyticsReportPicker/CnAnalyticsReportPicker.vue3.js.map +1 -1
  13. package/dist/esm/components/CnAuditTrailCard/CnAuditTrailCard.vue.js +1 -1
  14. package/dist/esm/components/CnAuditTrailCard/CnAuditTrailCard.vue2.js +2 -1
  15. package/dist/esm/components/CnAuditTrailCard/CnAuditTrailCard.vue2.js.map +1 -1
  16. package/dist/esm/components/CnAuditTrailCard/CnAuditTrailCard.vue3.js.map +1 -1
  17. package/dist/esm/components/CnBoardView/CnBoardView.vue.js +1 -1
  18. package/dist/esm/components/CnBoardView/CnBoardView.vue2.js +156 -14
  19. package/dist/esm/components/CnBoardView/CnBoardView.vue2.js.map +1 -1
  20. package/dist/esm/components/CnBoardView/CnBoardView.vue3.js +105 -74
  21. package/dist/esm/components/CnBoardView/CnBoardView.vue3.js.map +1 -1
  22. package/dist/esm/components/CnCalendarEventPicker/CnCalendarEventPicker.vue.js +1 -1
  23. package/dist/esm/components/CnCalendarEventPicker/CnCalendarEventPicker.vue2.js +2 -1
  24. package/dist/esm/components/CnCalendarEventPicker/CnCalendarEventPicker.vue2.js.map +1 -1
  25. package/dist/esm/components/CnCalendarEventPicker/CnCalendarEventPicker.vue3.js.map +1 -1
  26. package/dist/esm/components/CnCalendarWidget/CnCalendarWidget.vue.js +1 -1
  27. package/dist/esm/components/CnCalendarWidget/CnCalendarWidget.vue2.js +2 -1
  28. package/dist/esm/components/CnCalendarWidget/CnCalendarWidget.vue2.js.map +1 -1
  29. package/dist/esm/components/CnCalendarWidget/CnCalendarWidget.vue3.js.map +1 -1
  30. package/dist/esm/components/CnChartWidget/CnChartWidget.vue.js +1 -1
  31. package/dist/esm/components/CnChartWidget/CnChartWidget.vue2.js +6 -5
  32. package/dist/esm/components/CnChartWidget/CnChartWidget.vue2.js.map +1 -1
  33. package/dist/esm/components/CnChartWidget/CnChartWidget.vue3.js.map +1 -1
  34. package/dist/esm/components/CnCollectivePagePicker/CnCollectivePagePicker.vue.js +1 -1
  35. package/dist/esm/components/CnCollectivePagePicker/CnCollectivePagePicker.vue2.js +2 -1
  36. package/dist/esm/components/CnCollectivePagePicker/CnCollectivePagePicker.vue2.js.map +1 -1
  37. package/dist/esm/components/CnCollectivePagePicker/CnCollectivePagePicker.vue3.js.map +1 -1
  38. package/dist/esm/components/CnConversationThread/CnConversationThread.vue.js +1 -1
  39. package/dist/esm/components/CnConversationThread/CnConversationThread.vue2.js +2 -1
  40. package/dist/esm/components/CnConversationThread/CnConversationThread.vue2.js.map +1 -1
  41. package/dist/esm/components/CnConversationThread/CnConversationThread.vue3.js.map +1 -1
  42. package/dist/esm/components/CnCountdownWidget/CnCountdownWidget.vue.js +1 -1
  43. package/dist/esm/components/CnCountdownWidget/CnCountdownWidget.vue2.js +2 -1
  44. package/dist/esm/components/CnCountdownWidget/CnCountdownWidget.vue2.js.map +1 -1
  45. package/dist/esm/components/CnCountdownWidget/CnCountdownWidget.vue3.js.map +1 -1
  46. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue.js +1 -1
  47. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js +2 -1
  48. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js.map +1 -1
  49. package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js.map +1 -1
  50. package/dist/esm/components/CnDataMatrix/CnDataMatrix.vue.js +1 -1
  51. package/dist/esm/components/CnDataMatrix/CnDataMatrix.vue2.js +3 -1
  52. package/dist/esm/components/CnDataMatrix/CnDataMatrix.vue2.js.map +1 -1
  53. package/dist/esm/components/CnDataMatrix/CnDataMatrix.vue3.js.map +1 -1
  54. package/dist/esm/components/CnDetailPage/CnDetailHeaderChips.vue2.js +2 -1
  55. package/dist/esm/components/CnDetailPage/CnDetailHeaderChips.vue2.js.map +1 -1
  56. package/dist/esm/components/CnDetailPage/CnDetailHeaderChips.vue3.js.map +1 -1
  57. package/dist/esm/components/CnEmailPicker/CnEmailPicker.vue.js +1 -1
  58. package/dist/esm/components/CnEmailPicker/CnEmailPicker.vue2.js +2 -1
  59. package/dist/esm/components/CnEmailPicker/CnEmailPicker.vue2.js.map +1 -1
  60. package/dist/esm/components/CnEmailPicker/CnEmailPicker.vue3.js.map +1 -1
  61. package/dist/esm/components/CnFederationStatus/CnFederationStatus.vue.js +1 -1
  62. package/dist/esm/components/CnFederationStatus/CnFederationStatus.vue2.js +3 -1
  63. package/dist/esm/components/CnFederationStatus/CnFederationStatus.vue2.js.map +1 -1
  64. package/dist/esm/components/CnFederationStatus/CnFederationStatus.vue3.js.map +1 -1
  65. package/dist/esm/components/CnFileManager/CnFileManager.vue.js +1 -1
  66. package/dist/esm/components/CnFileManager/CnFileManager.vue2.js +3 -1
  67. package/dist/esm/components/CnFileManager/CnFileManager.vue2.js.map +1 -1
  68. package/dist/esm/components/CnFileManager/CnFileManager.vue3.js.map +1 -1
  69. package/dist/esm/components/CnFilePreview/CnFilePreview.vue.js +1 -1
  70. package/dist/esm/components/CnFilePreview/CnFilePreview.vue2.js +2 -1
  71. package/dist/esm/components/CnFilePreview/CnFilePreview.vue2.js.map +1 -1
  72. package/dist/esm/components/CnFilePreview/CnFilePreview.vue3.js.map +1 -1
  73. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue.js +1 -1
  74. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js +49 -1
  75. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js.map +1 -1
  76. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js +3 -3
  77. package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js.map +1 -1
  78. package/dist/esm/components/CnFollowToggle/CnFollowToggle.vue.js +1 -1
  79. package/dist/esm/components/CnFollowToggle/CnFollowToggle.vue2.js +2 -1
  80. package/dist/esm/components/CnFollowToggle/CnFollowToggle.vue2.js.map +1 -1
  81. package/dist/esm/components/CnFollowToggle/CnFollowToggle.vue3.js.map +1 -1
  82. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +28 -5
  83. package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
  84. package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
  85. package/dist/esm/components/CnNotesCard/CnNotesCard.vue.js +1 -1
  86. package/dist/esm/components/CnNotesCard/CnNotesCard.vue2.js +2 -1
  87. package/dist/esm/components/CnNotesCard/CnNotesCard.vue2.js.map +1 -1
  88. package/dist/esm/components/CnNotesCard/CnNotesCard.vue3.js.map +1 -1
  89. package/dist/esm/components/CnObjectCalendar/CnObjectCalendar.vue.js +1 -1
  90. package/dist/esm/components/CnObjectCalendar/CnObjectCalendar.vue2.js +3 -2
  91. package/dist/esm/components/CnObjectCalendar/CnObjectCalendar.vue2.js.map +1 -1
  92. package/dist/esm/components/CnObjectCalendar/CnObjectCalendar.vue3.js.map +1 -1
  93. package/dist/esm/components/CnObjectDataWidget/CnObjectDataWidget.vue.js +1 -1
  94. package/dist/esm/components/CnObjectDataWidget/CnObjectDataWidget.vue2.js +28 -0
  95. package/dist/esm/components/CnObjectDataWidget/CnObjectDataWidget.vue2.js.map +1 -1
  96. package/dist/esm/components/CnObjectDataWidget/CnObjectDataWidget.vue3.js +82 -75
  97. package/dist/esm/components/CnObjectDataWidget/CnObjectDataWidget.vue3.js.map +1 -1
  98. package/dist/esm/components/CnObjectMetadataWidget/CnObjectMetadataWidget.vue.js +1 -1
  99. package/dist/esm/components/CnObjectMetadataWidget/CnObjectMetadataWidget.vue2.js +5 -4
  100. package/dist/esm/components/CnObjectMetadataWidget/CnObjectMetadataWidget.vue2.js.map +1 -1
  101. package/dist/esm/components/CnObjectMetadataWidget/CnObjectMetadataWidget.vue3.js.map +1 -1
  102. package/dist/esm/components/CnObjectSidebar/CnAuditTrailTab.vue.js +1 -1
  103. package/dist/esm/components/CnObjectSidebar/CnAuditTrailTab.vue2.js +2 -1
  104. package/dist/esm/components/CnObjectSidebar/CnAuditTrailTab.vue2.js.map +1 -1
  105. package/dist/esm/components/CnObjectSidebar/CnAuditTrailTab.vue3.js.map +1 -1
  106. package/dist/esm/components/CnObjectSidebar/CnFlowTasksPanel.vue.js +1 -1
  107. package/dist/esm/components/CnObjectSidebar/CnFlowTasksPanel.vue2.js +2 -1
  108. package/dist/esm/components/CnObjectSidebar/CnFlowTasksPanel.vue2.js.map +1 -1
  109. package/dist/esm/components/CnObjectSidebar/CnFlowTasksPanel.vue3.js.map +1 -1
  110. package/dist/esm/components/CnObjectSidebar/CnNotesTab.vue.js +1 -1
  111. package/dist/esm/components/CnObjectSidebar/CnNotesTab.vue2.js +2 -1
  112. package/dist/esm/components/CnObjectSidebar/CnNotesTab.vue2.js.map +1 -1
  113. package/dist/esm/components/CnObjectSidebar/CnNotesTab.vue3.js.map +1 -1
  114. package/dist/esm/components/CnObjectSidebar/CnTasksTab.vue.js +1 -1
  115. package/dist/esm/components/CnObjectSidebar/CnTasksTab.vue2.js +2 -1
  116. package/dist/esm/components/CnObjectSidebar/CnTasksTab.vue2.js.map +1 -1
  117. package/dist/esm/components/CnObjectSidebar/CnTasksTab.vue3.js.map +1 -1
  118. package/dist/esm/components/CnPropertySourceField/CnPropertySourceField.vue.js +1 -1
  119. package/dist/esm/components/CnPropertySourceField/CnPropertySourceField.vue2.js +2 -1
  120. package/dist/esm/components/CnPropertySourceField/CnPropertySourceField.vue2.js.map +1 -1
  121. package/dist/esm/components/CnPropertySourceField/CnPropertySourceField.vue3.js.map +1 -1
  122. package/dist/esm/components/CnRoadmapItem/CnRoadmapItem.vue.js +1 -1
  123. package/dist/esm/components/CnRoadmapItem/CnRoadmapItem.vue2.js +2 -1
  124. package/dist/esm/components/CnRoadmapItem/CnRoadmapItem.vue2.js.map +1 -1
  125. package/dist/esm/components/CnRoadmapItem/CnRoadmapItem.vue3.js.map +1 -1
  126. package/dist/esm/components/CnSchemaFormDialog/CnSchemaFormDialog.vue2.js +2 -0
  127. package/dist/esm/components/CnSchemaFormDialog/CnSchemaFormDialog.vue2.js.map +1 -1
  128. package/dist/esm/components/CnSchemaFormDialog/CnSchemaFormDialog.vue3.js +2 -2
  129. package/dist/esm/components/CnSchemaFormDialog/CnSchemaFormDialog.vue3.js.map +1 -1
  130. package/dist/esm/components/CnStatsBlock/CnStatsBlock.vue.js +1 -1
  131. package/dist/esm/components/CnStatsBlock/CnStatsBlock.vue2.js +2 -1
  132. package/dist/esm/components/CnStatsBlock/CnStatsBlock.vue2.js.map +1 -1
  133. package/dist/esm/components/CnStatsBlock/CnStatsBlock.vue3.js.map +1 -1
  134. package/dist/esm/components/CnSummaryAggregates/CnSummaryAggregates.vue.js +1 -1
  135. package/dist/esm/components/CnSummaryAggregates/CnSummaryAggregates.vue2.js +2 -1
  136. package/dist/esm/components/CnSummaryAggregates/CnSummaryAggregates.vue2.js.map +1 -1
  137. package/dist/esm/components/CnSummaryAggregates/CnSummaryAggregates.vue3.js.map +1 -1
  138. package/dist/esm/components/CnTasksCard/CnTasksCard.vue.js +1 -1
  139. package/dist/esm/components/CnTasksCard/CnTasksCard.vue2.js +2 -1
  140. package/dist/esm/components/CnTasksCard/CnTasksCard.vue2.js.map +1 -1
  141. package/dist/esm/components/CnTasksCard/CnTasksCard.vue3.js.map +1 -1
  142. package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue.js +1 -1
  143. package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue2.js +2 -1
  144. package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue2.js.map +1 -1
  145. package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue3.js.map +1 -1
  146. package/dist/esm/components/CnTranslatedBadge/CnTranslatedBadge.vue.js +1 -1
  147. package/dist/esm/components/CnTranslatedBadge/CnTranslatedBadge.vue2.js +2 -1
  148. package/dist/esm/components/CnTranslatedBadge/CnTranslatedBadge.vue2.js.map +1 -1
  149. package/dist/esm/components/CnVersionHistory/CnVersionHistory.vue.js +1 -1
  150. package/dist/esm/components/CnVersionHistory/CnVersionHistory.vue2.js +2 -1
  151. package/dist/esm/components/CnVersionHistory/CnVersionHistory.vue2.js.map +1 -1
  152. package/dist/esm/components/CnVersionHistory/CnVersionHistory.vue3.js.map +1 -1
  153. package/dist/esm/dialogs/CnNoteHistoryDialog.vue.js +1 -1
  154. package/dist/esm/dialogs/CnNoteHistoryDialog.vue2.js +2 -1
  155. package/dist/esm/dialogs/CnNoteHistoryDialog.vue2.js.map +1 -1
  156. package/dist/esm/dialogs/CnNoteHistoryDialog.vue3.js.map +1 -1
  157. package/dist/esm/integrations/builtin/activity/CnActivityCard.vue.js +1 -1
  158. package/dist/esm/integrations/builtin/activity/CnActivityCard.vue2.js +3 -2
  159. package/dist/esm/integrations/builtin/activity/CnActivityCard.vue2.js.map +1 -1
  160. package/dist/esm/integrations/builtin/activity/CnActivityCard.vue3.js.map +1 -1
  161. package/dist/esm/integrations/builtin/activity/CnActivityTab.vue.js +1 -1
  162. package/dist/esm/integrations/builtin/activity/CnActivityTab.vue2.js +4 -3
  163. package/dist/esm/integrations/builtin/activity/CnActivityTab.vue2.js.map +1 -1
  164. package/dist/esm/integrations/builtin/activity/CnActivityTab.vue3.js.map +1 -1
  165. package/dist/esm/integrations/builtin/analytics/CnAnalyticsTab.vue.js +1 -1
  166. package/dist/esm/integrations/builtin/analytics/CnAnalyticsTab.vue2.js +3 -2
  167. package/dist/esm/integrations/builtin/analytics/CnAnalyticsTab.vue2.js.map +1 -1
  168. package/dist/esm/integrations/builtin/analytics/CnAnalyticsTab.vue3.js.map +1 -1
  169. package/dist/esm/integrations/builtin/calendar/CnCalendarCard.vue.js +1 -1
  170. package/dist/esm/integrations/builtin/calendar/CnCalendarCard.vue2.js +2 -1
  171. package/dist/esm/integrations/builtin/calendar/CnCalendarCard.vue2.js.map +1 -1
  172. package/dist/esm/integrations/builtin/calendar/CnCalendarCard.vue3.js.map +1 -1
  173. package/dist/esm/integrations/builtin/calendar/CnCalendarTab.vue.js +1 -1
  174. package/dist/esm/integrations/builtin/calendar/CnCalendarTab.vue2.js +6 -5
  175. package/dist/esm/integrations/builtin/calendar/CnCalendarTab.vue2.js.map +1 -1
  176. package/dist/esm/integrations/builtin/calendar/CnCalendarTab.vue3.js.map +1 -1
  177. package/dist/esm/integrations/builtin/contactmoment/CnContactmomentCard.vue.js +1 -1
  178. package/dist/esm/integrations/builtin/contactmoment/CnContactmomentCard.vue2.js +2 -1
  179. package/dist/esm/integrations/builtin/contactmoment/CnContactmomentCard.vue2.js.map +1 -1
  180. package/dist/esm/integrations/builtin/contactmoment/CnContactmomentCard.vue3.js.map +1 -1
  181. package/dist/esm/integrations/builtin/cospend/CnCospendTab.vue.js +1 -1
  182. package/dist/esm/integrations/builtin/cospend/CnCospendTab.vue2.js +2 -1
  183. package/dist/esm/integrations/builtin/cospend/CnCospendTab.vue2.js.map +1 -1
  184. package/dist/esm/integrations/builtin/cospend/CnCospendTab.vue3.js.map +1 -1
  185. package/dist/esm/integrations/builtin/deck/CnDeckTab.vue.js +1 -1
  186. package/dist/esm/integrations/builtin/deck/CnDeckTab.vue2.js +2 -1
  187. package/dist/esm/integrations/builtin/deck/CnDeckTab.vue2.js.map +1 -1
  188. package/dist/esm/integrations/builtin/deck/CnDeckTab.vue3.js.map +1 -1
  189. package/dist/esm/integrations/builtin/email/CnEmailCard.vue.js +1 -1
  190. package/dist/esm/integrations/builtin/email/CnEmailCard.vue2.js +2 -1
  191. package/dist/esm/integrations/builtin/email/CnEmailCard.vue2.js.map +1 -1
  192. package/dist/esm/integrations/builtin/email/CnEmailCard.vue3.js.map +1 -1
  193. package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionCard.vue.js +1 -1
  194. package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionCard.vue2.js +2 -1
  195. package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionCard.vue2.js.map +1 -1
  196. package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionCard.vue3.js.map +1 -1
  197. package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionTab.vue.js +1 -1
  198. package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionTab.vue2.js +2 -1
  199. package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionTab.vue2.js.map +1 -1
  200. package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionTab.vue3.js.map +1 -1
  201. package/dist/esm/integrations/builtin/photos/CnPhotosTab.vue.js +1 -1
  202. package/dist/esm/integrations/builtin/photos/CnPhotosTab.vue2.js +2 -1
  203. package/dist/esm/integrations/builtin/photos/CnPhotosTab.vue2.js.map +1 -1
  204. package/dist/esm/integrations/builtin/photos/CnPhotosTab.vue3.js.map +1 -1
  205. package/dist/esm/l10n/en.json.js +35 -2
  206. package/dist/esm/l10n/en.json.js.map +1 -1
  207. package/dist/esm/l10n/nl.json.js +38 -2
  208. package/dist/esm/l10n/nl.json.js.map +1 -1
  209. package/dist/esm/library-style.js +1 -1
  210. package/dist/esm/nextcloud-vue.css +994 -909
  211. package/dist/esm/store/useObjectStore.js +7 -2
  212. package/dist/esm/store/useObjectStore.js.map +1 -1
  213. package/dist/esm/utils/boardColumns.js +50 -1
  214. package/dist/esm/utils/boardColumns.js.map +1 -1
  215. package/dist/esm/utils/boardReferenceColumns.js +55 -3
  216. package/dist/esm/utils/boardReferenceColumns.js.map +1 -1
  217. package/dist/esm/utils/schema.js +5 -4
  218. package/dist/esm/utils/schema.js.map +1 -1
  219. package/dist/esm/utils/userLocale.js +30 -0
  220. package/dist/esm/utils/userLocale.js.map +1 -0
  221. package/dist/esm/utils/validateManifestV2.compiled.js +2 -2
  222. package/dist/esm/utils/validateManifestV2.compiled.js.map +1 -1
  223. package/dist/nextcloud-vue.cjs.js +837 -359
  224. package/dist/nextcloud-vue.cjs.js.map +2 -2
  225. package/dist/nextcloud-vue.css +994 -909
  226. package/l10n/en.json +35 -2
  227. package/l10n/nl.json +38 -2
  228. package/package.json +1 -1
  229. package/src/components/CnAdvancedFormDialog/CnMetadataTab.vue +3 -2
  230. package/src/components/CnAdvancedFormDialog/CnPropertyValueCell.vue +5 -4
  231. package/src/components/CnAnalyticsReportPicker/CnAnalyticsReportPicker.vue +2 -1
  232. package/src/components/CnAuditTrailCard/CnAuditTrailCard.vue +2 -1
  233. package/src/components/CnBoardView/CnBoardView.vue +189 -24
  234. package/src/components/CnCalendarEventPicker/CnCalendarEventPicker.vue +2 -1
  235. package/src/components/CnCalendarWidget/CnCalendarWidget.vue +2 -1
  236. package/src/components/CnChartWidget/CnChartWidget.vue +6 -5
  237. package/src/components/CnCollectivePagePicker/CnCollectivePagePicker.vue +2 -1
  238. package/src/components/CnConversationThread/CnConversationThread.vue +2 -1
  239. package/src/components/CnCountdownWidget/CnCountdownWidget.vue +2 -1
  240. package/src/components/CnDashboardPage/CnDashboardPage.vue +2 -1
  241. package/src/components/CnDataMatrix/CnDataMatrix.vue +2 -1
  242. package/src/components/CnDetailPage/CnDetailHeaderChips.vue +2 -1
  243. package/src/components/CnEmailPicker/CnEmailPicker.vue +2 -1
  244. package/src/components/CnFederationStatus/CnFederationStatus.vue +3 -1
  245. package/src/components/CnFileManager/CnFileManager.vue +2 -1
  246. package/src/components/CnFilePreview/CnFilePreview.vue +2 -1
  247. package/src/components/CnFilesBrowser/CnFilesBrowser.vue +54 -6
  248. package/src/components/CnFollowToggle/CnFollowToggle.vue +2 -1
  249. package/src/components/CnIndexPage/CnIndexPage.vue +28 -4
  250. package/src/components/CnNotesCard/CnNotesCard.vue +2 -1
  251. package/src/components/CnObjectCalendar/CnObjectCalendar.vue +3 -2
  252. package/src/components/CnObjectDataWidget/CnObjectDataWidget.vue +36 -0
  253. package/src/components/CnObjectMetadataWidget/CnObjectMetadataWidget.vue +5 -4
  254. package/src/components/CnObjectSidebar/CnAuditTrailTab.vue +2 -1
  255. package/src/components/CnObjectSidebar/CnFlowTasksPanel.vue +2 -1
  256. package/src/components/CnObjectSidebar/CnNotesTab.vue +2 -1
  257. package/src/components/CnObjectSidebar/CnTasksTab.vue +2 -1
  258. package/src/components/CnPropertySourceField/CnPropertySourceField.vue +2 -1
  259. package/src/components/CnRoadmapItem/CnRoadmapItem.vue +2 -1
  260. package/src/components/CnSchemaFormDialog/CnSchemaFormDialog.vue +4 -2
  261. package/src/components/CnStatsBlock/CnStatsBlock.vue +2 -1
  262. package/src/components/CnSummaryAggregates/CnSummaryAggregates.vue +2 -1
  263. package/src/components/CnTasksCard/CnTasksCard.vue +2 -1
  264. package/src/components/CnTimelineWidget/CnTimelineWidget.vue +2 -1
  265. package/src/components/CnTranslatedBadge/CnTranslatedBadge.vue +2 -1
  266. package/src/components/CnVersionHistory/CnVersionHistory.vue +2 -1
  267. package/src/css/board.css +40 -0
  268. package/src/dialogs/CnNoteHistoryDialog.vue +2 -1
  269. package/src/integrations/builtin/activity/CnActivityCard.vue +3 -2
  270. package/src/integrations/builtin/activity/CnActivityTab.vue +4 -3
  271. package/src/integrations/builtin/analytics/CnAnalyticsTab.vue +3 -2
  272. package/src/integrations/builtin/calendar/CnCalendarCard.vue +2 -1
  273. package/src/integrations/builtin/calendar/CnCalendarTab.vue +6 -5
  274. package/src/integrations/builtin/contactmoment/CnContactmomentCard.vue +2 -1
  275. package/src/integrations/builtin/cospend/CnCospendTab.vue +2 -1
  276. package/src/integrations/builtin/deck/CnDeckTab.vue +2 -1
  277. package/src/integrations/builtin/email/CnEmailCard.vue +2 -1
  278. package/src/integrations/builtin/field-inspection/CnFieldInspectionCard.vue +2 -1
  279. package/src/integrations/builtin/field-inspection/CnFieldInspectionTab.vue +2 -1
  280. package/src/integrations/builtin/photos/CnPhotosTab.vue +2 -1
  281. package/src/schemas/app-manifest-v2.schema.json +2 -1
  282. package/src/store/useObjectStore.js +7 -2
  283. package/src/utils/boardColumns.js +49 -0
  284. package/src/utils/boardReferenceColumns.js +54 -2
  285. package/src/utils/schema.js +5 -4
  286. package/src/utils/userLocale.js +26 -0
  287. package/src/utils/validateManifestV2.compiled.js +2 -2
@@ -2,13 +2,14 @@ import { translate } from '@nextcloud/l10n';
2
2
  import __sfc_main from '../CnStatusBadge/CnStatusBadge.vue.js';
3
3
  import { normalizeLook } from '../../composables/useLook.js';
4
4
  import { isBadgeVariant } from '../../utils/badgeVariants.js';
5
- import { buildBoardColumns, resolveStageColor } from '../../utils/boardColumns.js';
5
+ import { buildBoardColumns, normalizeAllowed, resolveStageColor } from '../../utils/boardColumns.js';
6
6
  import { buildSwimlanes } from '../../utils/boardSwimlanes.js';
7
7
  import { runBoardDrop, DROP_OUTCOMES } from '../../utils/boardTransition.js';
8
8
  import { dueStateForRow } from '../../utils/dueRule.js';
9
9
  import { formatMetricValue } from '../../utils/formatMetric.js';
10
10
  import { readPath } from '../../utils/readPath.js';
11
11
  import { preventMiddleClickAutoscroll, isRowMiddleClick } from '../../utils/rowAuxClick.js';
12
+ import { userLocale } from '../../utils/userLocale.js';
12
13
  import { daysUntil } from '../../utils/dateVariant.js';
13
14
 
14
15
  /**
@@ -248,7 +249,13 @@ var script = {
248
249
  * it is refused without asking the host. Absent, every column is
249
250
  * offered and the host's move decides.
250
251
  *
251
- * @type {((card: object) => Promise<Array<string>|null>)|null}
252
+ * An entry may also be `{ key, allowed, reason }`. With `allowed:
253
+ * false` the column is blocked: the menu shows the reason under its
254
+ * name, the column shows it under its header during a drag, and a
255
+ * drop there is refused with it.
256
+ *
257
+ * @type {((card: object) => Promise<Array<string|{key: string, allowed?: boolean, reason?: string}>|null>)|null}
258
+ * @spec openspec/changes/board-move-block-reasons/specs/board-view/spec.md#requirement-a-move-target-can-be-blocked-with-a-reason
252
259
  * @spec openspec/changes/screens-board-reference-columns/specs/board-view/spec.md#requirement-the-board-shows-where-a-card-can-go
253
260
  */
254
261
  allowedMoves: {
@@ -273,9 +280,9 @@ var script = {
273
280
  expanded: [],
274
281
  /** The card whose menu is open (board look), by card key. */
275
282
  openMenuKey: null,
276
- /** Column keys each card may move to (`allowedMoves`), by card key; absent = not asked yet. */
283
+ /** Where each card may move (`allowedMoves`), as `{ keys, reasons }` by card key; null = everywhere, absent = not asked yet. */
277
284
  allowedByCard: {},
278
- /** The column keys the dragged card may reach, or null for all. */
285
+ /** Where the dragged card may move, as `{ keys, reasons }`, or null for everywhere. */
279
286
  dragAllowed: null,
280
287
  }
281
288
  },
@@ -331,6 +338,21 @@ var script = {
331
338
  return translate('nextcloud-vue', 'not allowed')
332
339
  },
333
340
 
341
+ /** @return {string} The note on a menu target that is full. */
342
+ fullLabel() {
343
+ return translate('nextcloud-vue', 'full')
344
+ },
345
+
346
+ /**
347
+ * Every column's total over all lanes, by key: what a limit is
348
+ * measured against, since a swimlane holds only part of a column.
349
+ *
350
+ * @return {Map<string, number>} The totals.
351
+ */
352
+ columnTotals() {
353
+ return new Map(this.board.columns.map((column) => [String(column.key), column.count]))
354
+ },
355
+
334
356
  /** @return {Array<string>} The selected row keys as strings. */
335
357
  selectedKeys() {
336
358
  return (Array.isArray(this.selectedIds) ? this.selectedIds : []).map(String)
@@ -437,7 +459,7 @@ var script = {
437
459
  * Ask the host where one card may go (`allowedMoves`), once per card.
438
460
  *
439
461
  * @param {object} card The card.
440
- * @return {Promise<Array<string>|null>} The column keys, or null for all.
462
+ * @return {Promise<{keys: Array<string>, reasons: object}|null>} Where it may go, or null for everywhere.
441
463
  * @spec openspec/changes/screens-board-reference-columns/specs/board-view/spec.md#requirement-the-board-shows-where-a-card-can-go
442
464
  */
443
465
  async loadAllowed(card) {
@@ -450,8 +472,7 @@ var script = {
450
472
  }
451
473
  let allowed;
452
474
  try {
453
- const answer = await this.allowedMoves(card);
454
- allowed = Array.isArray(answer) ? answer.map(String) : null;
475
+ allowed = normalizeAllowed(await this.allowedMoves(card));
455
476
  } catch {
456
477
  // Unknown is not "nowhere": the host's move stays the authority.
457
478
  allowed = null;
@@ -469,7 +490,116 @@ var script = {
469
490
  */
470
491
  isMoveAllowed(card, target) {
471
492
  const allowed = this.allowedByCard[this.cardKey(card)];
472
- return !Array.isArray(allowed) || allowed.includes(String(target.key))
493
+ return !allowed || allowed.keys.includes(String(target.key))
494
+ },
495
+
496
+ /**
497
+ * Why the host blocked a card's move to a column, when it said.
498
+ *
499
+ * @param {object} card The card.
500
+ * @param {object} target The column.
501
+ * @return {string} The reason, '' when the move is allowed or no reason was given.
502
+ * @spec openspec/changes/board-move-block-reasons/specs/board-view/spec.md#requirement-a-move-target-can-be-blocked-with-a-reason
503
+ */
504
+ blockReason(card, target) {
505
+ const allowed = this.allowedByCard[this.cardKey(card)];
506
+ if (!allowed || this.isMoveAllowed(card, target)) {
507
+ return ''
508
+ }
509
+ return allowed.reasons[String(target.key)] || ''
510
+ },
511
+
512
+ /**
513
+ * The note beside a menu target the card cannot move to.
514
+ *
515
+ * @param {object} card The card.
516
+ * @param {object} target The column.
517
+ * @return {string} "full" or "not allowed"; '' when a reason is shown instead.
518
+ */
519
+ blockedNote(card, target) {
520
+ if (this.blockReason(card, target) !== '') {
521
+ return ''
522
+ }
523
+ return this.isMoveAllowed(card, target) && this.isFull(target) ? this.fullLabel : this.notAllowedLabel
524
+ },
525
+
526
+ /**
527
+ * Why the dragged card cannot land on a column, shown under its header.
528
+ *
529
+ * @param {object} column The column.
530
+ * @return {string} The host's reason while a drag is on, else ''.
531
+ * @spec openspec/changes/board-move-block-reasons/specs/board-view/spec.md#requirement-a-move-target-can-be-blocked-with-a-reason
532
+ */
533
+ dragReason(column) {
534
+ if (this.dragging === null || !this.dragAllowed || column.key === this.dragging.fromKey) {
535
+ return ''
536
+ }
537
+ const key = String(column.key);
538
+ return this.dragAllowed.keys.includes(key) ? '' : (this.dragAllowed.reasons[key] || '')
539
+ },
540
+
541
+ /**
542
+ * A column's limit.
543
+ *
544
+ * @param {object} column The column.
545
+ * @return {number|null} The limit, or null when it has none.
546
+ * @spec openspec/changes/board-column-capacity/specs/board-view/spec.md#requirement-a-column-can-carry-a-capacity
547
+ */
548
+ capacityOf(column) {
549
+ const capacity = Number(column?.capacity);
550
+ return Number.isFinite(capacity) && capacity > 0 ? capacity : null
551
+ },
552
+
553
+ /**
554
+ * Whether a column holds as many cards as its limit, or more.
555
+ *
556
+ * @param {object} column The column.
557
+ * @return {boolean} True when full; false without a limit.
558
+ * @spec openspec/changes/board-column-capacity/specs/board-view/spec.md#requirement-a-column-can-carry-a-capacity
559
+ */
560
+ isFull(column) {
561
+ const capacity = this.capacityOf(column);
562
+ return capacity !== null && (this.columnTotals.get(String(column.key)) ?? column.count) >= capacity
563
+ },
564
+
565
+ /**
566
+ * "count / capacity" for a column with a limit.
567
+ *
568
+ * @param {object} column The column.
569
+ * @return {string} The text.
570
+ */
571
+ capacityText(column) {
572
+ return translate('nextcloud-vue', '{count} / {capacity}', {
573
+ count: this.columnTotals.get(String(column.key)) ?? column.count,
574
+ capacity: this.capacityOf(column),
575
+ })
576
+ },
577
+
578
+ /**
579
+ * Whether a card may move to a column: the host allows it and the
580
+ * column is not full.
581
+ *
582
+ * @param {object} card The card.
583
+ * @param {object} target The column.
584
+ * @return {boolean} True when the move may be asked for.
585
+ * @spec openspec/changes/board-column-capacity/specs/board-view/spec.md#requirement-a-drop-into-a-full-column-is-refused
586
+ */
587
+ canMoveTo(card, target) {
588
+ return this.isMoveAllowed(card, target) && !this.isFull(target)
589
+ },
590
+
591
+ /**
592
+ * The sentence a drop into a full column is refused with.
593
+ *
594
+ * @param {object} column The column.
595
+ * @return {string} The sentence.
596
+ */
597
+ fullRefusal(column) {
598
+ return translate('nextcloud-vue', '{column} is full: {count} of {capacity}.', {
599
+ column: column.label,
600
+ count: this.columnTotals.get(String(column.key)) ?? column.count,
601
+ capacity: this.capacityOf(column),
602
+ })
473
603
  },
474
604
 
475
605
  /**
@@ -479,10 +609,11 @@ var script = {
479
609
  * @return {boolean} True while a drag is on and the card cannot go there.
480
610
  */
481
611
  isUnreachable(column) {
482
- return this.dragging !== null
483
- && Array.isArray(this.dragAllowed)
484
- && column.key !== this.dragging.fromKey
485
- && !this.dragAllowed.includes(String(column.key))
612
+ if (this.dragging === null || column.key === this.dragging.fromKey) {
613
+ return false
614
+ }
615
+ return this.isFull(column)
616
+ || (this.dragAllowed !== null && !this.dragAllowed.keys.includes(String(column.key)))
486
617
  },
487
618
 
488
619
  /**
@@ -606,7 +737,7 @@ var script = {
606
737
  const date = new Date(value);
607
738
  const shown = Number.isNaN(date.getTime())
608
739
  ? String(value)
609
- : date.toLocaleDateString(undefined, { day: 'numeric', month: 'short' });
740
+ : date.toLocaleDateString(userLocale(), { day: 'numeric', month: 'short' });
610
741
  return days < 0
611
742
  ? translate('nextcloud-vue', 'Overdue {date}', { date: shown })
612
743
  : translate('nextcloud-vue', 'Due {date}', { date: shown })
@@ -956,6 +1087,9 @@ var script = {
956
1087
  * @return {string} The count.
957
1088
  */
958
1089
  countLabel(column) {
1090
+ if (this.capacityOf(column) !== null) {
1091
+ return this.capacityText(column)
1092
+ }
959
1093
  return this.paged
960
1094
  ? translate('nextcloud-vue', '{count} on this page', { count: column.count })
961
1095
  : String(column.count)
@@ -1045,7 +1179,8 @@ var script = {
1045
1179
  this.dragAllowed = null;
1046
1180
  if (column.key !== fromKey && !this.isMoveAllowed(card, column)) {
1047
1181
  const name = this.roleText(card, this.roles.title) || this.cardKey(card);
1048
- this.refusal = translate('nextcloud-vue', '{name} cannot move to {column}.', { name, column: column.label });
1182
+ this.refusal = this.blockReason(card, column)
1183
+ || translate('nextcloud-vue', '{name} cannot move to {column}.', { name, column: column.label });
1049
1184
  this.$emit('refused', { card, message: this.refusal });
1050
1185
  return
1051
1186
  }
@@ -1075,6 +1210,13 @@ var script = {
1075
1210
  async move(card, fromKey, toKey) {
1076
1211
  this.refusal = '';
1077
1212
 
1213
+ const target = this.board.columns.find((column) => String(column.key) === String(toKey));
1214
+ if (target && String(toKey) !== String(fromKey) && this.isFull(target)) {
1215
+ this.refusal = this.fullRefusal(target);
1216
+ this.$emit('refused', { card, message: this.refusal });
1217
+ return
1218
+ }
1219
+
1078
1220
  const result = await runBoardDrop({
1079
1221
  card,
1080
1222
  fromKey,