@conduction/nextcloud-vue 2.56.0-beta.36 → 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.
- package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue.js +1 -1
- package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue2.js +131 -3
- package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue2.js.map +1 -1
- package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue3.js +54 -18
- package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue3.js.map +1 -1
- package/dist/esm/components/CnAdvancedFormDialog/CnMetadataTab.vue.js +1 -1
- package/dist/esm/components/CnAdvancedFormDialog/CnMetadataTab.vue2.js +3 -2
- package/dist/esm/components/CnAdvancedFormDialog/CnMetadataTab.vue2.js.map +1 -1
- package/dist/esm/components/CnAdvancedFormDialog/CnMetadataTab.vue3.js.map +1 -1
- package/dist/esm/components/CnAdvancedFormDialog/CnPropertyValueCell.vue.js +1 -1
- package/dist/esm/components/CnAdvancedFormDialog/CnPropertyValueCell.vue2.js +5 -4
- package/dist/esm/components/CnAdvancedFormDialog/CnPropertyValueCell.vue2.js.map +1 -1
- package/dist/esm/components/CnAdvancedFormDialog/CnPropertyValueCell.vue3.js.map +1 -1
- package/dist/esm/components/CnAnalyticsReportPicker/CnAnalyticsReportPicker.vue.js +1 -1
- package/dist/esm/components/CnAnalyticsReportPicker/CnAnalyticsReportPicker.vue2.js +2 -1
- package/dist/esm/components/CnAnalyticsReportPicker/CnAnalyticsReportPicker.vue2.js.map +1 -1
- package/dist/esm/components/CnAnalyticsReportPicker/CnAnalyticsReportPicker.vue3.js.map +1 -1
- package/dist/esm/components/CnAuditTrailCard/CnAuditTrailCard.vue.js +1 -1
- package/dist/esm/components/CnAuditTrailCard/CnAuditTrailCard.vue2.js +2 -1
- package/dist/esm/components/CnAuditTrailCard/CnAuditTrailCard.vue2.js.map +1 -1
- package/dist/esm/components/CnAuditTrailCard/CnAuditTrailCard.vue3.js.map +1 -1
- package/dist/esm/components/CnBoardView/CnBoardView.vue.js +1 -1
- package/dist/esm/components/CnBoardView/CnBoardView.vue2.js +376 -6
- package/dist/esm/components/CnBoardView/CnBoardView.vue2.js.map +1 -1
- package/dist/esm/components/CnBoardView/CnBoardView.vue3.js +146 -71
- package/dist/esm/components/CnBoardView/CnBoardView.vue3.js.map +1 -1
- package/dist/esm/components/CnCalendarEventPicker/CnCalendarEventPicker.vue.js +1 -1
- package/dist/esm/components/CnCalendarEventPicker/CnCalendarEventPicker.vue2.js +2 -1
- package/dist/esm/components/CnCalendarEventPicker/CnCalendarEventPicker.vue2.js.map +1 -1
- package/dist/esm/components/CnCalendarEventPicker/CnCalendarEventPicker.vue3.js.map +1 -1
- package/dist/esm/components/CnCalendarWidget/CnCalendarWidget.vue.js +1 -1
- package/dist/esm/components/CnCalendarWidget/CnCalendarWidget.vue2.js +2 -1
- package/dist/esm/components/CnCalendarWidget/CnCalendarWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnCalendarWidget/CnCalendarWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnChartWidget/CnChartWidget.vue.js +1 -1
- package/dist/esm/components/CnChartWidget/CnChartWidget.vue2.js +6 -5
- package/dist/esm/components/CnChartWidget/CnChartWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnChartWidget/CnChartWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnCollectivePagePicker/CnCollectivePagePicker.vue.js +1 -1
- package/dist/esm/components/CnCollectivePagePicker/CnCollectivePagePicker.vue2.js +2 -1
- package/dist/esm/components/CnCollectivePagePicker/CnCollectivePagePicker.vue2.js.map +1 -1
- package/dist/esm/components/CnCollectivePagePicker/CnCollectivePagePicker.vue3.js.map +1 -1
- package/dist/esm/components/CnConversationThread/CnConversationThread.vue.js +1 -1
- package/dist/esm/components/CnConversationThread/CnConversationThread.vue2.js +2 -1
- package/dist/esm/components/CnConversationThread/CnConversationThread.vue2.js.map +1 -1
- package/dist/esm/components/CnConversationThread/CnConversationThread.vue3.js.map +1 -1
- package/dist/esm/components/CnCountdownWidget/CnCountdownWidget.vue.js +1 -1
- package/dist/esm/components/CnCountdownWidget/CnCountdownWidget.vue2.js +2 -1
- package/dist/esm/components/CnCountdownWidget/CnCountdownWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnCountdownWidget/CnCountdownWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue.js +1 -1
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js +47 -1
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js.map +1 -1
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js +22 -12
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js.map +1 -1
- package/dist/esm/components/CnDataMatrix/CnDataMatrix.vue.js +1 -1
- package/dist/esm/components/CnDataMatrix/CnDataMatrix.vue2.js +3 -1
- package/dist/esm/components/CnDataMatrix/CnDataMatrix.vue2.js.map +1 -1
- package/dist/esm/components/CnDataMatrix/CnDataMatrix.vue3.js.map +1 -1
- package/dist/esm/components/CnDetailPage/CnDetailHeaderChips.vue2.js +2 -1
- package/dist/esm/components/CnDetailPage/CnDetailHeaderChips.vue2.js.map +1 -1
- package/dist/esm/components/CnDetailPage/CnDetailHeaderChips.vue3.js.map +1 -1
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js +23 -4
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js.map +1 -1
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js.map +1 -1
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue.js +1 -1
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js +3 -1
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js.map +1 -1
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js.map +1 -1
- package/dist/esm/components/CnEmailPicker/CnEmailPicker.vue.js +1 -1
- package/dist/esm/components/CnEmailPicker/CnEmailPicker.vue2.js +2 -1
- package/dist/esm/components/CnEmailPicker/CnEmailPicker.vue2.js.map +1 -1
- package/dist/esm/components/CnEmailPicker/CnEmailPicker.vue3.js.map +1 -1
- package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue.js +1 -1
- package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue2.js +18 -5
- package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnFederationStatus/CnFederationStatus.vue.js +1 -1
- package/dist/esm/components/CnFederationStatus/CnFederationStatus.vue2.js +3 -1
- package/dist/esm/components/CnFederationStatus/CnFederationStatus.vue2.js.map +1 -1
- package/dist/esm/components/CnFederationStatus/CnFederationStatus.vue3.js.map +1 -1
- package/dist/esm/components/CnFileManager/CnFileManager.vue.js +1 -1
- package/dist/esm/components/CnFileManager/CnFileManager.vue2.js +3 -1
- package/dist/esm/components/CnFileManager/CnFileManager.vue2.js.map +1 -1
- package/dist/esm/components/CnFileManager/CnFileManager.vue3.js.map +1 -1
- package/dist/esm/components/CnFilePreview/CnFilePreview.vue.js +1 -1
- package/dist/esm/components/CnFilePreview/CnFilePreview.vue2.js +2 -1
- package/dist/esm/components/CnFilePreview/CnFilePreview.vue2.js.map +1 -1
- package/dist/esm/components/CnFilePreview/CnFilePreview.vue3.js.map +1 -1
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue.js +1 -1
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js +49 -1
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js.map +1 -1
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js +3 -3
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js.map +1 -1
- package/dist/esm/components/CnFollowToggle/CnFollowToggle.vue.js +1 -1
- package/dist/esm/components/CnFollowToggle/CnFollowToggle.vue2.js +2 -1
- package/dist/esm/components/CnFollowToggle/CnFollowToggle.vue2.js.map +1 -1
- package/dist/esm/components/CnFollowToggle/CnFollowToggle.vue3.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +571 -77
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js +191 -82
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
- package/dist/esm/components/CnIndexPage/useSelfFetchList.js +11 -2
- package/dist/esm/components/CnIndexPage/useSelfFetchList.js.map +1 -1
- package/dist/esm/components/CnNotesCard/CnNotesCard.vue.js +1 -1
- package/dist/esm/components/CnNotesCard/CnNotesCard.vue2.js +2 -1
- package/dist/esm/components/CnNotesCard/CnNotesCard.vue2.js.map +1 -1
- package/dist/esm/components/CnNotesCard/CnNotesCard.vue3.js.map +1 -1
- package/dist/esm/components/CnObjectCalendar/CnObjectCalendar.vue.js +1 -1
- package/dist/esm/components/CnObjectCalendar/CnObjectCalendar.vue2.js +3 -2
- package/dist/esm/components/CnObjectCalendar/CnObjectCalendar.vue2.js.map +1 -1
- package/dist/esm/components/CnObjectCalendar/CnObjectCalendar.vue3.js.map +1 -1
- package/dist/esm/components/CnObjectDataWidget/CnObjectDataWidget.vue.js +1 -1
- package/dist/esm/components/CnObjectDataWidget/CnObjectDataWidget.vue2.js +28 -0
- package/dist/esm/components/CnObjectDataWidget/CnObjectDataWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnObjectDataWidget/CnObjectDataWidget.vue3.js +82 -75
- package/dist/esm/components/CnObjectDataWidget/CnObjectDataWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnObjectMetadataWidget/CnObjectMetadataWidget.vue.js +1 -1
- package/dist/esm/components/CnObjectMetadataWidget/CnObjectMetadataWidget.vue2.js +5 -4
- package/dist/esm/components/CnObjectMetadataWidget/CnObjectMetadataWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnObjectMetadataWidget/CnObjectMetadataWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnObjectSidebar/CnAuditTrailTab.vue.js +1 -1
- package/dist/esm/components/CnObjectSidebar/CnAuditTrailTab.vue2.js +2 -1
- package/dist/esm/components/CnObjectSidebar/CnAuditTrailTab.vue2.js.map +1 -1
- package/dist/esm/components/CnObjectSidebar/CnAuditTrailTab.vue3.js.map +1 -1
- package/dist/esm/components/CnObjectSidebar/CnFlowTasksPanel.vue.js +1 -1
- package/dist/esm/components/CnObjectSidebar/CnFlowTasksPanel.vue2.js +2 -1
- package/dist/esm/components/CnObjectSidebar/CnFlowTasksPanel.vue2.js.map +1 -1
- package/dist/esm/components/CnObjectSidebar/CnFlowTasksPanel.vue3.js.map +1 -1
- package/dist/esm/components/CnObjectSidebar/CnNotesTab.vue.js +1 -1
- package/dist/esm/components/CnObjectSidebar/CnNotesTab.vue2.js +2 -1
- package/dist/esm/components/CnObjectSidebar/CnNotesTab.vue2.js.map +1 -1
- package/dist/esm/components/CnObjectSidebar/CnNotesTab.vue3.js.map +1 -1
- package/dist/esm/components/CnObjectSidebar/CnTasksTab.vue.js +1 -1
- package/dist/esm/components/CnObjectSidebar/CnTasksTab.vue2.js +2 -1
- package/dist/esm/components/CnObjectSidebar/CnTasksTab.vue2.js.map +1 -1
- package/dist/esm/components/CnObjectSidebar/CnTasksTab.vue3.js.map +1 -1
- package/dist/esm/components/CnPropertySourceField/CnPropertySourceField.vue.js +1 -1
- package/dist/esm/components/CnPropertySourceField/CnPropertySourceField.vue2.js +2 -1
- package/dist/esm/components/CnPropertySourceField/CnPropertySourceField.vue2.js.map +1 -1
- package/dist/esm/components/CnPropertySourceField/CnPropertySourceField.vue3.js.map +1 -1
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue.js +1 -1
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue2.js +70 -2
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnRegisterMapping/CnRegisterMapping.vue.js +1 -1
- package/dist/esm/components/CnRegisterMapping/CnRegisterMapping.vue2.js +67 -5
- package/dist/esm/components/CnRegisterMapping/CnRegisterMapping.vue2.js.map +1 -1
- package/dist/esm/components/CnRegisterMapping/CnRegisterMapping.vue3.js +181 -124
- package/dist/esm/components/CnRegisterMapping/CnRegisterMapping.vue3.js.map +1 -1
- package/dist/esm/components/CnRoadmapItem/CnRoadmapItem.vue.js +1 -1
- package/dist/esm/components/CnRoadmapItem/CnRoadmapItem.vue2.js +2 -1
- package/dist/esm/components/CnRoadmapItem/CnRoadmapItem.vue2.js.map +1 -1
- package/dist/esm/components/CnRoadmapItem/CnRoadmapItem.vue3.js.map +1 -1
- package/dist/esm/components/CnSchemaFormDialog/CnSchemaFormDialog.vue2.js +2 -0
- package/dist/esm/components/CnSchemaFormDialog/CnSchemaFormDialog.vue2.js.map +1 -1
- package/dist/esm/components/CnSchemaFormDialog/CnSchemaFormDialog.vue3.js +2 -2
- package/dist/esm/components/CnSchemaFormDialog/CnSchemaFormDialog.vue3.js.map +1 -1
- package/dist/esm/components/CnSettingsPage/CnSettingsPage.vue.js +1 -1
- package/dist/esm/components/CnSettingsPage/CnSettingsPage.vue2.js +5 -1
- package/dist/esm/components/CnSettingsPage/CnSettingsPage.vue2.js.map +1 -1
- package/dist/esm/components/CnSettingsPage/CnSettingsPage.vue3.js.map +1 -1
- package/dist/esm/components/CnStatWidget/CnStatWidget.vue.js +1 -1
- package/dist/esm/components/CnStatWidget/CnStatWidget.vue2.js +134 -10
- package/dist/esm/components/CnStatWidget/CnStatWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnStatWidget/CnStatWidget.vue3.js +6 -2
- package/dist/esm/components/CnStatWidget/CnStatWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnStatsBlock/CnStatsBlock.vue.js +1 -1
- package/dist/esm/components/CnStatsBlock/CnStatsBlock.vue2.js +2 -1
- package/dist/esm/components/CnStatsBlock/CnStatsBlock.vue2.js.map +1 -1
- package/dist/esm/components/CnStatsBlock/CnStatsBlock.vue3.js.map +1 -1
- package/dist/esm/components/CnSummaryAggregates/CnSummaryAggregates.vue.js +1 -1
- package/dist/esm/components/CnSummaryAggregates/CnSummaryAggregates.vue2.js +2 -1
- package/dist/esm/components/CnSummaryAggregates/CnSummaryAggregates.vue2.js.map +1 -1
- package/dist/esm/components/CnSummaryAggregates/CnSummaryAggregates.vue3.js.map +1 -1
- package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue.js +1 -1
- package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue2.js +6 -3
- package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnTasksCard/CnTasksCard.vue.js +1 -1
- package/dist/esm/components/CnTasksCard/CnTasksCard.vue2.js +2 -1
- package/dist/esm/components/CnTasksCard/CnTasksCard.vue2.js.map +1 -1
- package/dist/esm/components/CnTasksCard/CnTasksCard.vue3.js.map +1 -1
- package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue.js +1 -1
- package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue2.js +2 -1
- package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnTimelineWidget/CnTimelineWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnToggleTableWidget/CnToggleTableWidget.vue.js +1 -1
- package/dist/esm/components/CnToggleTableWidget/CnToggleTableWidget.vue2.js +140 -7
- package/dist/esm/components/CnToggleTableWidget/CnToggleTableWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnToggleTableWidget/CnToggleTableWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnTranslatedBadge/CnTranslatedBadge.vue.js +1 -1
- package/dist/esm/components/CnTranslatedBadge/CnTranslatedBadge.vue2.js +2 -1
- package/dist/esm/components/CnTranslatedBadge/CnTranslatedBadge.vue2.js.map +1 -1
- package/dist/esm/components/CnVersionHistory/CnVersionHistory.vue.js +1 -1
- package/dist/esm/components/CnVersionHistory/CnVersionHistory.vue2.js +2 -1
- package/dist/esm/components/CnVersionHistory/CnVersionHistory.vue2.js.map +1 -1
- package/dist/esm/components/CnVersionHistory/CnVersionHistory.vue3.js.map +1 -1
- package/dist/esm/components/CnVersionInfoCard/CnVersionInfoCard.vue.js +1 -1
- package/dist/esm/components/CnVersionInfoCard/CnVersionInfoCard.vue2.js +37 -9
- package/dist/esm/components/CnVersionInfoCard/CnVersionInfoCard.vue2.js.map +1 -1
- package/dist/esm/components/CnVersionInfoCard/CnVersionInfoCard.vue3.js +6 -5
- package/dist/esm/components/CnVersionInfoCard/CnVersionInfoCard.vue3.js.map +1 -1
- package/dist/esm/components/CnWidgetCardGrid/CnWidgetCardGrid.vue2.js +53 -1
- package/dist/esm/components/CnWidgetCardGrid/CnWidgetCardGrid.vue2.js.map +1 -1
- package/dist/esm/components/CnWidgetCardGrid/CnWidgetCardGrid.vue3.js +3 -2
- package/dist/esm/components/CnWidgetCardGrid/CnWidgetCardGrid.vue3.js.map +1 -1
- package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue.js +1 -1
- package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue2.js +135 -0
- package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue2.js.map +1 -1
- package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue3.js.map +1 -1
- package/dist/esm/components/CnWidgetWrapper/CnWidgetWrapper.vue.js +1 -1
- package/dist/esm/components/CnWidgetWrapper/CnWidgetWrapper.vue2.js +19 -0
- package/dist/esm/components/CnWidgetWrapper/CnWidgetWrapper.vue2.js.map +1 -1
- package/dist/esm/components/CnWidgetWrapper/CnWidgetWrapper.vue3.js +37 -19
- package/dist/esm/components/CnWidgetWrapper/CnWidgetWrapper.vue3.js.map +1 -1
- package/dist/esm/composables/useListView.js +21 -0
- package/dist/esm/composables/useListView.js.map +1 -1
- package/dist/esm/dialogs/CnNoteHistoryDialog.vue.js +1 -1
- package/dist/esm/dialogs/CnNoteHistoryDialog.vue2.js +2 -1
- package/dist/esm/dialogs/CnNoteHistoryDialog.vue2.js.map +1 -1
- package/dist/esm/dialogs/CnNoteHistoryDialog.vue3.js.map +1 -1
- package/dist/esm/integrations/builtin/activity/CnActivityCard.vue.js +1 -1
- package/dist/esm/integrations/builtin/activity/CnActivityCard.vue2.js +3 -2
- package/dist/esm/integrations/builtin/activity/CnActivityCard.vue2.js.map +1 -1
- package/dist/esm/integrations/builtin/activity/CnActivityCard.vue3.js.map +1 -1
- package/dist/esm/integrations/builtin/activity/CnActivityTab.vue.js +1 -1
- package/dist/esm/integrations/builtin/activity/CnActivityTab.vue2.js +4 -3
- package/dist/esm/integrations/builtin/activity/CnActivityTab.vue2.js.map +1 -1
- package/dist/esm/integrations/builtin/activity/CnActivityTab.vue3.js.map +1 -1
- package/dist/esm/integrations/builtin/analytics/CnAnalyticsTab.vue.js +1 -1
- package/dist/esm/integrations/builtin/analytics/CnAnalyticsTab.vue2.js +3 -2
- package/dist/esm/integrations/builtin/analytics/CnAnalyticsTab.vue2.js.map +1 -1
- package/dist/esm/integrations/builtin/analytics/CnAnalyticsTab.vue3.js.map +1 -1
- package/dist/esm/integrations/builtin/calendar/CnCalendarCard.vue.js +1 -1
- package/dist/esm/integrations/builtin/calendar/CnCalendarCard.vue2.js +2 -1
- package/dist/esm/integrations/builtin/calendar/CnCalendarCard.vue2.js.map +1 -1
- package/dist/esm/integrations/builtin/calendar/CnCalendarCard.vue3.js.map +1 -1
- package/dist/esm/integrations/builtin/calendar/CnCalendarTab.vue.js +1 -1
- package/dist/esm/integrations/builtin/calendar/CnCalendarTab.vue2.js +6 -5
- package/dist/esm/integrations/builtin/calendar/CnCalendarTab.vue2.js.map +1 -1
- package/dist/esm/integrations/builtin/calendar/CnCalendarTab.vue3.js.map +1 -1
- package/dist/esm/integrations/builtin/contactmoment/CnContactmomentCard.vue.js +1 -1
- package/dist/esm/integrations/builtin/contactmoment/CnContactmomentCard.vue2.js +2 -1
- package/dist/esm/integrations/builtin/contactmoment/CnContactmomentCard.vue2.js.map +1 -1
- package/dist/esm/integrations/builtin/contactmoment/CnContactmomentCard.vue3.js.map +1 -1
- package/dist/esm/integrations/builtin/cospend/CnCospendTab.vue.js +1 -1
- package/dist/esm/integrations/builtin/cospend/CnCospendTab.vue2.js +2 -1
- package/dist/esm/integrations/builtin/cospend/CnCospendTab.vue2.js.map +1 -1
- package/dist/esm/integrations/builtin/cospend/CnCospendTab.vue3.js.map +1 -1
- package/dist/esm/integrations/builtin/deck/CnDeckTab.vue.js +1 -1
- package/dist/esm/integrations/builtin/deck/CnDeckTab.vue2.js +2 -1
- package/dist/esm/integrations/builtin/deck/CnDeckTab.vue2.js.map +1 -1
- package/dist/esm/integrations/builtin/deck/CnDeckTab.vue3.js.map +1 -1
- package/dist/esm/integrations/builtin/email/CnEmailCard.vue.js +1 -1
- package/dist/esm/integrations/builtin/email/CnEmailCard.vue2.js +2 -1
- package/dist/esm/integrations/builtin/email/CnEmailCard.vue2.js.map +1 -1
- package/dist/esm/integrations/builtin/email/CnEmailCard.vue3.js.map +1 -1
- package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionCard.vue.js +1 -1
- package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionCard.vue2.js +2 -1
- package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionCard.vue2.js.map +1 -1
- package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionCard.vue3.js.map +1 -1
- package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionTab.vue.js +1 -1
- package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionTab.vue2.js +2 -1
- package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionTab.vue2.js.map +1 -1
- package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionTab.vue3.js.map +1 -1
- package/dist/esm/integrations/builtin/photos/CnPhotosTab.vue.js +1 -1
- package/dist/esm/integrations/builtin/photos/CnPhotosTab.vue2.js +2 -1
- package/dist/esm/integrations/builtin/photos/CnPhotosTab.vue2.js.map +1 -1
- package/dist/esm/integrations/builtin/photos/CnPhotosTab.vue3.js.map +1 -1
- package/dist/esm/l10n/en.json.js +57 -2
- package/dist/esm/l10n/en.json.js.map +1 -1
- package/dist/esm/l10n/nl.json.js +78 -2
- package/dist/esm/l10n/nl.json.js.map +1 -1
- package/dist/esm/library-style.js +1 -1
- package/dist/esm/nextcloud-vue.css +1541 -1166
- package/dist/esm/store/useObjectStore.js +23 -4
- package/dist/esm/store/useObjectStore.js.map +1 -1
- package/dist/esm/utils/boardColumns.js +58 -2
- package/dist/esm/utils/boardColumns.js.map +1 -1
- package/dist/esm/utils/boardReferenceColumns.js +330 -0
- package/dist/esm/utils/boardReferenceColumns.js.map +1 -0
- package/dist/esm/utils/buildManifest.js +4 -1
- package/dist/esm/utils/buildManifest.js.map +1 -1
- package/dist/esm/utils/schema.js +5 -4
- package/dist/esm/utils/schema.js.map +1 -1
- package/dist/esm/utils/userLocale.js +30 -0
- package/dist/esm/utils/userLocale.js.map +1 -0
- package/dist/esm/utils/validateManifestV2.compiled.js +3 -3
- package/dist/esm/utils/validateManifestV2.compiled.js.map +1 -1
- package/dist/esm/utils/widgetDispatch.js +8 -2
- package/dist/esm/utils/widgetDispatch.js.map +1 -1
- package/dist/nextcloud-vue.cjs.js +30291 -27618
- package/dist/nextcloud-vue.cjs.js.map +2 -2
- package/dist/nextcloud-vue.css +1541 -1166
- package/l10n/en.json +57 -2
- package/l10n/nl.json +78 -2
- package/package.json +1 -1
- package/src/components/CnAdminSettingsShell/CnAdminSettingsShell.vue +160 -8
- package/src/components/CnAdvancedFormDialog/CnMetadataTab.vue +3 -2
- package/src/components/CnAdvancedFormDialog/CnPropertyValueCell.vue +5 -4
- package/src/components/CnAnalyticsReportPicker/CnAnalyticsReportPicker.vue +2 -1
- package/src/components/CnAuditTrailCard/CnAuditTrailCard.vue +2 -1
- package/src/components/CnBoardView/CnBoardView.vue +433 -12
- package/src/components/CnCalendarEventPicker/CnCalendarEventPicker.vue +2 -1
- package/src/components/CnCalendarWidget/CnCalendarWidget.vue +2 -1
- package/src/components/CnChartWidget/CnChartWidget.vue +6 -5
- package/src/components/CnCollectivePagePicker/CnCollectivePagePicker.vue +2 -1
- package/src/components/CnConversationThread/CnConversationThread.vue +2 -1
- package/src/components/CnCountdownWidget/CnCountdownWidget.vue +2 -1
- package/src/components/CnDashboardPage/CnDashboardPage.vue +59 -3
- package/src/components/CnDataMatrix/CnDataMatrix.vue +2 -1
- package/src/components/CnDetailPage/CnDetailHeaderChips.vue +2 -1
- package/src/components/CnDetailPage/CnDetailPage.md +1 -1
- package/src/components/CnDetailPage/CnDetailPage.vue +23 -4
- package/src/components/CnDetailWidgetHost/CnDetailWidgetHost.vue +3 -1
- package/src/components/CnEmailPicker/CnEmailPicker.vue +2 -1
- package/src/components/CnFactsWidget/CnFactsWidget.vue +18 -5
- package/src/components/CnFederationStatus/CnFederationStatus.vue +3 -1
- package/src/components/CnFileManager/CnFileManager.vue +2 -1
- package/src/components/CnFilePreview/CnFilePreview.vue +2 -1
- package/src/components/CnFilesBrowser/CnFilesBrowser.vue +54 -6
- package/src/components/CnFollowToggle/CnFollowToggle.vue +2 -1
- package/src/components/CnIndexPage/CnIndexPage.vue +610 -25
- package/src/components/CnIndexPage/useSelfFetchList.js +10 -1
- package/src/components/CnNotesCard/CnNotesCard.vue +2 -1
- package/src/components/CnObjectCalendar/CnObjectCalendar.vue +3 -2
- package/src/components/CnObjectDataWidget/CnObjectDataWidget.vue +36 -0
- package/src/components/CnObjectMetadataWidget/CnObjectMetadataWidget.vue +5 -4
- package/src/components/CnObjectSidebar/CnAuditTrailTab.vue +2 -1
- package/src/components/CnObjectSidebar/CnFlowTasksPanel.vue +2 -1
- package/src/components/CnObjectSidebar/CnNotesTab.vue +2 -1
- package/src/components/CnObjectSidebar/CnTasksTab.vue +2 -1
- package/src/components/CnPropertySourceField/CnPropertySourceField.vue +2 -1
- package/src/components/CnRecordListWidget/CnRecordListWidget.vue +70 -2
- package/src/components/CnRegisterMapping/CnRegisterMapping.md +5 -0
- package/src/components/CnRegisterMapping/CnRegisterMapping.vue +231 -96
- package/src/components/CnRoadmapItem/CnRoadmapItem.vue +2 -1
- package/src/components/CnSchemaFormDialog/CnSchemaFormDialog.vue +4 -2
- package/src/components/CnSettingsPage/CnSettingsPage.vue +5 -1
- package/src/components/CnStatWidget/CnStatWidget.vue +136 -11
- package/src/components/CnStatsBlock/CnStatsBlock.vue +2 -1
- package/src/components/CnSummaryAggregates/CnSummaryAggregates.vue +2 -1
- package/src/components/CnTabsWidget/CnTabsWidget.vue +6 -3
- package/src/components/CnTasksCard/CnTasksCard.vue +2 -1
- package/src/components/CnTimelineWidget/CnTimelineWidget.vue +2 -1
- package/src/components/CnToggleTableWidget/CnToggleTableWidget.vue +140 -7
- package/src/components/CnTranslatedBadge/CnTranslatedBadge.vue +2 -1
- package/src/components/CnVersionHistory/CnVersionHistory.vue +2 -1
- package/src/components/CnVersionInfoCard/CnVersionInfoCard.md +2 -1
- package/src/components/CnVersionInfoCard/CnVersionInfoCard.vue +42 -13
- package/src/components/CnWidgetCardGrid/CnWidgetCardGrid.vue +55 -2
- package/src/components/CnWidgetObjectTable/CnWidgetObjectTable.vue +135 -0
- package/src/components/CnWidgetWrapper/CnWidgetWrapper.md +10 -0
- package/src/components/CnWidgetWrapper/CnWidgetWrapper.vue +44 -1
- package/src/composables/useListView.js +21 -0
- package/src/css/board.css +105 -4
- package/src/css/dialog.css +4 -2
- package/src/css/index-page.css +49 -0
- package/src/css/look-board.css +77 -7
- package/src/dialogs/CnNoteHistoryDialog.vue +2 -1
- package/src/integrations/builtin/activity/CnActivityCard.vue +3 -2
- package/src/integrations/builtin/activity/CnActivityTab.vue +4 -3
- package/src/integrations/builtin/analytics/CnAnalyticsTab.vue +3 -2
- package/src/integrations/builtin/calendar/CnCalendarCard.vue +2 -1
- package/src/integrations/builtin/calendar/CnCalendarTab.vue +6 -5
- package/src/integrations/builtin/contactmoment/CnContactmomentCard.vue +2 -1
- package/src/integrations/builtin/cospend/CnCospendTab.vue +2 -1
- package/src/integrations/builtin/deck/CnDeckTab.vue +2 -1
- package/src/integrations/builtin/email/CnEmailCard.vue +2 -1
- package/src/integrations/builtin/field-inspection/CnFieldInspectionCard.vue +2 -1
- package/src/integrations/builtin/field-inspection/CnFieldInspectionTab.vue +2 -1
- package/src/integrations/builtin/photos/CnPhotosTab.vue +2 -1
- package/src/schemas/app-manifest-v2.schema.json +116 -5
- package/src/store/useObjectStore.js +23 -4
- package/src/utils/boardColumns.js +57 -1
- package/src/utils/boardReferenceColumns.js +326 -0
- package/src/utils/buildManifest.js +4 -1
- package/src/utils/schema.js +5 -4
- package/src/utils/userLocale.js +26 -0
- package/src/utils/validateManifestV2.compiled.js +3 -3
- package/src/utils/widgetDispatch.js +8 -2
package/src/css/index-page.css
CHANGED
|
@@ -104,6 +104,19 @@
|
|
|
104
104
|
margin-top: 0;
|
|
105
105
|
}
|
|
106
106
|
|
|
107
|
+
/* The board view's footer: how many rows it holds of how many match, and
|
|
108
|
+
"Load more" while the list is not complete. */
|
|
109
|
+
.cn-index-page__board-load {
|
|
110
|
+
display: flex;
|
|
111
|
+
flex-wrap: wrap;
|
|
112
|
+
align-items: center;
|
|
113
|
+
justify-content: space-between;
|
|
114
|
+
gap: 8px 16px;
|
|
115
|
+
padding: 12px 16px;
|
|
116
|
+
color: var(--color-text-maxcontrast);
|
|
117
|
+
font-size: 14px;
|
|
118
|
+
}
|
|
119
|
+
|
|
107
120
|
/* Table view owns both scroll axes. With the page column scrolling instead, the
|
|
108
121
|
table's horizontal scrollbar sat at the bottom of the (taller-than-viewport)
|
|
109
122
|
table, so it only appeared after scrolling down, and the pagination was
|
|
@@ -369,3 +382,39 @@
|
|
|
369
382
|
outline: 2px solid var(--color-primary-element);
|
|
370
383
|
outline-offset: 2px;
|
|
371
384
|
}
|
|
385
|
+
|
|
386
|
+
/*
|
|
387
|
+
* screens-board-reference-columns: the board view's controls after the
|
|
388
|
+
* search (board DqWerkbord): "Case type:" and "Columns:" as a 600 label and a
|
|
389
|
+
* 36px select, then the hint in the secondary text colour.
|
|
390
|
+
*/
|
|
391
|
+
.cn-index-page__board-control {
|
|
392
|
+
display: inline-flex;
|
|
393
|
+
align-items: center;
|
|
394
|
+
gap: 8px;
|
|
395
|
+
font-size: 14px;
|
|
396
|
+
font-weight: 600;
|
|
397
|
+
color: var(--color-main-text);
|
|
398
|
+
}
|
|
399
|
+
|
|
400
|
+
.cn-index-page__board-select {
|
|
401
|
+
height: 36px;
|
|
402
|
+
min-height: 36px;
|
|
403
|
+
margin: 0;
|
|
404
|
+
padding: 0 10px;
|
|
405
|
+
border: 1px solid var(--color-border-maxcontrast);
|
|
406
|
+
border-radius: 8px;
|
|
407
|
+
background-color: var(--color-main-background);
|
|
408
|
+
color: var(--color-main-text);
|
|
409
|
+
font: inherit;
|
|
410
|
+
font-weight: 400;
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
.cn-index-page__board-select--strong {
|
|
414
|
+
font-weight: 500;
|
|
415
|
+
}
|
|
416
|
+
|
|
417
|
+
.cn-index-page__board-hint {
|
|
418
|
+
font-size: 14px;
|
|
419
|
+
color: var(--color-text-maxcontrast);
|
|
420
|
+
}
|
package/src/css/look-board.css
CHANGED
|
@@ -422,6 +422,7 @@
|
|
|
422
422
|
`.cn-look-board.cn-admin-settings-shell` is a shell told `look: "board"`
|
|
423
423
|
itself, on an admin page no CnAppRoot wraps. */
|
|
424
424
|
.cn-look-board .cn-admin-settings-shell:not(.cn-look-nextcloud *) > .cn-admin-settings-shell__header,
|
|
425
|
+
.cn-look-board .cn-admin-settings-shell__panel:not(.cn-look-nextcloud *) > :not(.settings-section):not(.cn-credentials),
|
|
425
426
|
.cn-look-board .cn-admin-settings-shell:not(.cn-look-nextcloud *) > :not(.settings-section):not(.cn-credentials),
|
|
426
427
|
.cn-look-board.cn-admin-settings-shell:not(.cn-look-nextcloud *) > :not(.settings-section):not(.cn-credentials) {
|
|
427
428
|
grid-column: 1 / -1;
|
|
@@ -429,6 +430,7 @@
|
|
|
429
430
|
|
|
430
431
|
.cn-look-board .cn-admin-settings-shell:not(.cn-look-nextcloud *),
|
|
431
432
|
.cn-look-board.cn-admin-settings-shell:not(.cn-look-nextcloud *),
|
|
433
|
+
.cn-look-board .cn-admin-settings-shell__panel:not(.cn-look-nextcloud *),
|
|
432
434
|
.cn-look-board .cn-settings-page__sections:not(.cn-look-nextcloud *) {
|
|
433
435
|
display: grid;
|
|
434
436
|
grid-template-columns: repeat(auto-fit, minmax(420px, 1fr));
|
|
@@ -440,14 +442,17 @@
|
|
|
440
442
|
Settings.vue) takes no box of its own: its sections are grid items and
|
|
441
443
|
cards, as if the shell held them directly. Only an element whose own
|
|
442
444
|
children are sections; anything else keeps spanning the grid. */
|
|
445
|
+
.cn-look-board .cn-admin-settings-shell__panel:not(.cn-look-nextcloud *) > :not(.settings-section):has(> .settings-section),
|
|
443
446
|
.cn-look-board .cn-admin-settings-shell:not(.cn-look-nextcloud *) > :not(.settings-section):has(> .settings-section),
|
|
444
447
|
.cn-look-board.cn-admin-settings-shell:not(.cn-look-nextcloud *) > :not(.settings-section):has(> .settings-section) {
|
|
445
448
|
display: contents;
|
|
446
449
|
}
|
|
447
450
|
|
|
448
|
-
/* The card: a section of the shell (also one inside a wrapping element), or a CnSettingsCard of the page. */
|
|
451
|
+
/* The card: a section of the shell or of one of its tab panels (also one inside a wrapping element), or a CnSettingsCard of the page. */
|
|
452
|
+
.cn-look-board .cn-admin-settings-shell__panel:not(.cn-look-nextcloud *) > .settings-section,
|
|
449
453
|
.cn-look-board .cn-admin-settings-shell:not(.cn-look-nextcloud *) > .settings-section,
|
|
450
454
|
.cn-look-board.cn-admin-settings-shell:not(.cn-look-nextcloud *) > .settings-section,
|
|
455
|
+
.cn-look-board .cn-admin-settings-shell__panel:not(.cn-look-nextcloud *) > :not(.settings-section):has(> .settings-section) > .settings-section,
|
|
451
456
|
.cn-look-board .cn-admin-settings-shell:not(.cn-look-nextcloud *) > :not(.settings-section):has(> .settings-section) > .settings-section,
|
|
452
457
|
.cn-look-board.cn-admin-settings-shell:not(.cn-look-nextcloud *) > :not(.settings-section):has(> .settings-section) > .settings-section,
|
|
453
458
|
.cn-look-board .cn-settings-page__sections:not(.cn-look-nextcloud *) > .cn-settings-card {
|
|
@@ -483,7 +488,7 @@
|
|
|
483
488
|
justify-content: flex-start;
|
|
484
489
|
text-align: start;
|
|
485
490
|
margin: 0;
|
|
486
|
-
font-size:
|
|
491
|
+
font-size: 17px;
|
|
487
492
|
font-weight: 700;
|
|
488
493
|
line-height: 1.3;
|
|
489
494
|
}
|
|
@@ -491,18 +496,83 @@
|
|
|
491
496
|
.cn-look-board .settings-section:not(.cn-look-nextcloud *) .settings-section__desc {
|
|
492
497
|
margin: 4px 0 0;
|
|
493
498
|
font-size: 14px;
|
|
494
|
-
line-height: 1.
|
|
499
|
+
line-height: 1.5;
|
|
495
500
|
color: var(--color-text-maxcontrast);
|
|
496
501
|
}
|
|
497
502
|
|
|
498
|
-
/* Section actions sit at the end of the title row.
|
|
503
|
+
/* Section actions sit at the end of the title row. The row is a grid, so a
|
|
504
|
+
long title wraps beside the buttons instead of running under them, and in a
|
|
505
|
+
narrow card the buttons drop under the title and description. */
|
|
506
|
+
.cn-look-board .settings-section:not(.cn-look-nextcloud *):has(> .cn-settings-section__actions) {
|
|
507
|
+
/* `!important`: the card rules above set `display: flex` at higher specificity for a section in a wrapping element. */
|
|
508
|
+
display: grid !important;
|
|
509
|
+
grid-template-columns: minmax(0, 1fr) auto;
|
|
510
|
+
align-items: start;
|
|
511
|
+
column-gap: 16px;
|
|
512
|
+
container-type: inline-size;
|
|
513
|
+
}
|
|
514
|
+
|
|
515
|
+
.cn-look-board .settings-section:not(.cn-look-nextcloud *):has(> .cn-settings-section__actions) > * {
|
|
516
|
+
grid-column: 1 / -1;
|
|
517
|
+
}
|
|
518
|
+
|
|
519
|
+
.cn-look-board .settings-section:not(.cn-look-nextcloud *):has(> .cn-settings-section__actions) > .settings-section__name {
|
|
520
|
+
grid-row: 1;
|
|
521
|
+
grid-column: 1;
|
|
522
|
+
}
|
|
523
|
+
|
|
499
524
|
.cn-look-board .settings-section:not(.cn-look-nextcloud *) > .cn-settings-section__actions {
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
525
|
+
grid-row: 1;
|
|
526
|
+
grid-column: 2;
|
|
527
|
+
position: static;
|
|
528
|
+
flex-wrap: wrap;
|
|
529
|
+
justify-self: end;
|
|
503
530
|
float: none;
|
|
504
531
|
}
|
|
505
532
|
|
|
533
|
+
@container (max-width: 520px) {
|
|
534
|
+
.cn-look-board .settings-section:not(.cn-look-nextcloud *) > .cn-settings-section__actions {
|
|
535
|
+
grid-row: auto;
|
|
536
|
+
grid-column: 1 / -1;
|
|
537
|
+
justify-self: start;
|
|
538
|
+
justify-content: flex-start;
|
|
539
|
+
}
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
/* An admin settings card as the board draws it (PtBeheerinstellingen,
|
|
543
|
+
KqBeheerAlgemeen, HuInstellingen): 20px 22px padding, and the title and
|
|
544
|
+
description one group, 4px apart, spaced from the rest of the card by the
|
|
545
|
+
card's 14px gap. The description is a sibling of the title in that column,
|
|
546
|
+
so it pulls itself back up to 4px under the title. The gap spaces the
|
|
547
|
+
content, so a note card adds no margin of its own (NcNoteCard draws 16px
|
|
548
|
+
above and below). A CnSettingsPage card keeps 22px 24px. */
|
|
549
|
+
.cn-look-board .cn-admin-settings-shell__panel:not(.cn-look-nextcloud *) > .settings-section,
|
|
550
|
+
.cn-look-board .cn-admin-settings-shell:not(.cn-look-nextcloud *) > .settings-section,
|
|
551
|
+
.cn-look-board.cn-admin-settings-shell:not(.cn-look-nextcloud *) > .settings-section,
|
|
552
|
+
.cn-look-board .cn-admin-settings-shell__panel:not(.cn-look-nextcloud *) > :not(.settings-section):has(> .settings-section) > .settings-section,
|
|
553
|
+
.cn-look-board .cn-admin-settings-shell:not(.cn-look-nextcloud *) > :not(.settings-section):has(> .settings-section) > .settings-section,
|
|
554
|
+
.cn-look-board.cn-admin-settings-shell:not(.cn-look-nextcloud *) > :not(.settings-section):has(> .settings-section) > .settings-section {
|
|
555
|
+
padding: 20px 22px;
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
.cn-look-board .cn-admin-settings-shell__panel:not(.cn-look-nextcloud *) > .settings-section > .settings-section__desc,
|
|
559
|
+
.cn-look-board .cn-admin-settings-shell:not(.cn-look-nextcloud *) > .settings-section > .settings-section__desc,
|
|
560
|
+
.cn-look-board.cn-admin-settings-shell:not(.cn-look-nextcloud *) > .settings-section > .settings-section__desc,
|
|
561
|
+
.cn-look-board .cn-admin-settings-shell__panel:not(.cn-look-nextcloud *) > :not(.settings-section):has(> .settings-section) > .settings-section > .settings-section__desc,
|
|
562
|
+
.cn-look-board .cn-admin-settings-shell:not(.cn-look-nextcloud *) > :not(.settings-section):has(> .settings-section) > .settings-section > .settings-section__desc,
|
|
563
|
+
.cn-look-board.cn-admin-settings-shell:not(.cn-look-nextcloud *) > :not(.settings-section):has(> .settings-section) > .settings-section > .settings-section__desc {
|
|
564
|
+
margin-top: -10px;
|
|
565
|
+
}
|
|
566
|
+
|
|
567
|
+
.cn-look-board .cn-admin-settings-shell__panel:not(.cn-look-nextcloud *) > .settings-section > .notecard,
|
|
568
|
+
.cn-look-board .cn-admin-settings-shell:not(.cn-look-nextcloud *) > .settings-section > .notecard,
|
|
569
|
+
.cn-look-board.cn-admin-settings-shell:not(.cn-look-nextcloud *) > .settings-section > .notecard,
|
|
570
|
+
.cn-look-board .cn-admin-settings-shell__panel:not(.cn-look-nextcloud *) > :not(.settings-section):has(> .settings-section) > .settings-section > .notecard,
|
|
571
|
+
.cn-look-board .cn-admin-settings-shell:not(.cn-look-nextcloud *) > :not(.settings-section):has(> .settings-section) > .settings-section > .notecard,
|
|
572
|
+
.cn-look-board.cn-admin-settings-shell:not(.cn-look-nextcloud *) > :not(.settings-section):has(> .settings-section) > .settings-section > .notecard {
|
|
573
|
+
margin-block: 0;
|
|
574
|
+
}
|
|
575
|
+
|
|
506
576
|
.cn-look-board .settings-section.cn-settings-section--wide:not(.cn-look-nextcloud *),
|
|
507
577
|
.cn-look-board .cn-settings-card:has(.cn-settings-section--wide):not(.cn-look-nextcloud *) {
|
|
508
578
|
grid-column: 1 / -1;
|
|
@@ -78,6 +78,7 @@ import HistoryIcon from 'vue-material-design-icons/History.vue'
|
|
|
78
78
|
import CnDialog from '../components/CnDialog/CnDialog.vue'
|
|
79
79
|
import { dialogBoardMixin } from '../mixins/dialogBoard.js'
|
|
80
80
|
import { buildHeaders, prefixUrl } from '../utils/index.js'
|
|
81
|
+
import { userLocale } from '../utils/userLocale.js'
|
|
81
82
|
|
|
82
83
|
export default {
|
|
83
84
|
name: 'CnNoteHistoryDialog',
|
|
@@ -193,7 +194,7 @@ export default {
|
|
|
193
194
|
return ''
|
|
194
195
|
}
|
|
195
196
|
try {
|
|
196
|
-
return new Date(dateStr).toLocaleString(
|
|
197
|
+
return new Date(dateStr).toLocaleString(userLocale(), {
|
|
197
198
|
year: 'numeric',
|
|
198
199
|
month: 'short',
|
|
199
200
|
day: 'numeric',
|
|
@@ -112,6 +112,7 @@ import Timeline from 'vue-material-design-icons/Timeline.vue'
|
|
|
112
112
|
import CnDetailCard from '../../../components/CnDetailCard/CnDetailCard.vue'
|
|
113
113
|
import CnVisibilityChip from '../../../components/CnVisibilityChip/CnVisibilityChip.vue'
|
|
114
114
|
import { buildHeaders, prefixUrl } from '../../../utils/index.js'
|
|
115
|
+
import { userLocale } from '../../../utils/userLocale.js'
|
|
115
116
|
|
|
116
117
|
const VALID_SURFACES = ['user-dashboard', 'app-dashboard', 'detail-page', 'single-entity']
|
|
117
118
|
const COMPACT_LIMIT = 4
|
|
@@ -297,7 +298,7 @@ export default {
|
|
|
297
298
|
return t('nextcloud-vue', 'Yesterday')
|
|
298
299
|
}
|
|
299
300
|
try {
|
|
300
|
-
return date.toLocaleDateString(
|
|
301
|
+
return date.toLocaleDateString(userLocale(), { weekday: 'short', day: 'numeric', month: 'short' })
|
|
301
302
|
} catch {
|
|
302
303
|
return date.toISOString().split('T')[0]
|
|
303
304
|
}
|
|
@@ -309,7 +310,7 @@ export default {
|
|
|
309
310
|
return ''
|
|
310
311
|
}
|
|
311
312
|
try {
|
|
312
|
-
return ts.toLocaleTimeString(
|
|
313
|
+
return ts.toLocaleTimeString(userLocale(), { hour: '2-digit', minute: '2-digit' })
|
|
313
314
|
} catch {
|
|
314
315
|
return ts.toISOString().split('T')[1].slice(0, 5)
|
|
315
316
|
}
|
|
@@ -319,6 +319,7 @@ import Timeline from 'vue-material-design-icons/Timeline.vue'
|
|
|
319
319
|
import CnVisibilityChip from '../../../components/CnVisibilityChip/CnVisibilityChip.vue'
|
|
320
320
|
import { normalizeLook } from '../../../composables/useLook.js'
|
|
321
321
|
import { buildHeaders, prefixUrl } from '../../../utils/index.js'
|
|
322
|
+
import { userLocale } from '../../../utils/userLocale.js'
|
|
322
323
|
import { ACTIVITY_FEED_KINDS, exportBody, feedPath, feedQuery, isReadRow, parseFeed } from './activityFeedWire.js'
|
|
323
324
|
|
|
324
325
|
const DEFAULT_PAGE_SIZE = 25
|
|
@@ -643,7 +644,7 @@ export default {
|
|
|
643
644
|
return t('nextcloud-vue', 'Yesterday')
|
|
644
645
|
}
|
|
645
646
|
try {
|
|
646
|
-
return date.toLocaleDateString(
|
|
647
|
+
return date.toLocaleDateString(userLocale(), { weekday: 'short', day: 'numeric', month: 'short' })
|
|
647
648
|
} catch {
|
|
648
649
|
return date.toISOString().split('T')[0]
|
|
649
650
|
}
|
|
@@ -655,7 +656,7 @@ export default {
|
|
|
655
656
|
return ''
|
|
656
657
|
}
|
|
657
658
|
try {
|
|
658
|
-
return ts.toLocaleTimeString(
|
|
659
|
+
return ts.toLocaleTimeString(userLocale(), { hour: '2-digit', minute: '2-digit' })
|
|
659
660
|
} catch {
|
|
660
661
|
return ts.toISOString().split('T')[1].slice(0, 5)
|
|
661
662
|
}
|
|
@@ -703,7 +704,7 @@ export default {
|
|
|
703
704
|
let when = ''
|
|
704
705
|
if (ts !== null) {
|
|
705
706
|
try {
|
|
706
|
-
when = ts.toLocaleString(
|
|
707
|
+
when = ts.toLocaleString(userLocale(), { day: 'numeric', month: 'short', hour: '2-digit', minute: '2-digit' })
|
|
707
708
|
} catch {
|
|
708
709
|
when = ts.toISOString().replace('T', ' ').slice(0, 16)
|
|
709
710
|
}
|
|
@@ -177,6 +177,7 @@ import CnAnalyticsReportCreate from '../../../components/CnAnalyticsReportCreate
|
|
|
177
177
|
import CnAnalyticsReportPicker from '../../../components/CnAnalyticsReportPicker/CnAnalyticsReportPicker.vue'
|
|
178
178
|
import CnStatusBadge from '../../../components/CnStatusBadge/CnStatusBadge.vue'
|
|
179
179
|
import { buildHeaders, prefixUrl, safeHref } from '../../../utils/index.js'
|
|
180
|
+
import { userLocale } from '../../../utils/userLocale.js'
|
|
180
181
|
|
|
181
182
|
/**
|
|
182
183
|
* CnAnalyticsTab — bespoke dataset list for the `analytics` integration.
|
|
@@ -394,7 +395,7 @@ export default {
|
|
|
394
395
|
const num = Number(raw)
|
|
395
396
|
if (Number.isFinite(num) && String(raw).trim() !== '') {
|
|
396
397
|
try {
|
|
397
|
-
return num.toLocaleString()
|
|
398
|
+
return num.toLocaleString(userLocale())
|
|
398
399
|
} catch {
|
|
399
400
|
return String(num)
|
|
400
401
|
}
|
|
@@ -436,7 +437,7 @@ export default {
|
|
|
436
437
|
if (Number.isNaN(d.getTime())) {
|
|
437
438
|
return String(value)
|
|
438
439
|
}
|
|
439
|
-
return d.toLocaleDateString(
|
|
440
|
+
return d.toLocaleDateString(userLocale(), { dateStyle: 'medium' })
|
|
440
441
|
} catch {
|
|
441
442
|
return String(value)
|
|
442
443
|
}
|
|
@@ -107,6 +107,7 @@ import CalendarCheck from 'vue-material-design-icons/CalendarCheck.vue'
|
|
|
107
107
|
import CalendarClock from 'vue-material-design-icons/CalendarClock.vue'
|
|
108
108
|
import CnDetailCard from '../../../components/CnDetailCard/CnDetailCard.vue'
|
|
109
109
|
import { buildHeaders, prefixUrl } from '../../../utils/index.js'
|
|
110
|
+
import { userLocale } from '../../../utils/userLocale.js'
|
|
110
111
|
|
|
111
112
|
/**
|
|
112
113
|
* CnCalendarCard — surface-aware compact widget for the calendar
|
|
@@ -323,7 +324,7 @@ export default {
|
|
|
323
324
|
const opts = this.surface === 'single-entity'
|
|
324
325
|
? { dateStyle: 'medium' }
|
|
325
326
|
: { dateStyle: 'medium', timeStyle: 'short' }
|
|
326
|
-
return d.toLocaleString(
|
|
327
|
+
return d.toLocaleString(userLocale(), opts)
|
|
327
328
|
} catch {
|
|
328
329
|
return String(value)
|
|
329
330
|
}
|
|
@@ -240,6 +240,7 @@ import CnCalendarEventCreate from '../../../components/CnCalendarEventCreate/CnC
|
|
|
240
240
|
import CnCalendarEventPicker from '../../../components/CnCalendarEventPicker/CnCalendarEventPicker.vue'
|
|
241
241
|
import CnStatusBadge from '../../../components/CnStatusBadge/CnStatusBadge.vue'
|
|
242
242
|
import { buildHeaders, prefixUrl } from '../../../utils/index.js'
|
|
243
|
+
import { userLocale } from '../../../utils/userLocale.js'
|
|
243
244
|
|
|
244
245
|
const MAX_AVATARS = 3
|
|
245
246
|
|
|
@@ -524,7 +525,7 @@ export default {
|
|
|
524
525
|
if (!d) {
|
|
525
526
|
return '—'
|
|
526
527
|
}
|
|
527
|
-
return d.toLocaleDateString(
|
|
528
|
+
return d.toLocaleDateString(userLocale(), { month: 'short' })
|
|
528
529
|
},
|
|
529
530
|
|
|
530
531
|
dayOf(ev) {
|
|
@@ -541,16 +542,16 @@ export default {
|
|
|
541
542
|
return ev.dtstart ? String(ev.dtstart) : t('nextcloud-vue', 'Time not set')
|
|
542
543
|
}
|
|
543
544
|
const end = this.parseDate(ev.dtend)
|
|
544
|
-
const dateLabel = start.toLocaleDateString(
|
|
545
|
+
const dateLabel = start.toLocaleDateString(userLocale(), { weekday: 'short', day: 'numeric', month: 'short' })
|
|
545
546
|
const timeOpts = { hour: '2-digit', minute: '2-digit' }
|
|
546
|
-
const startTime = start.toLocaleTimeString(
|
|
547
|
+
const startTime = start.toLocaleTimeString(userLocale(), timeOpts)
|
|
547
548
|
if (end) {
|
|
548
549
|
const sameDay = start.toDateString() === end.toDateString()
|
|
549
|
-
const endTime = end.toLocaleTimeString(
|
|
550
|
+
const endTime = end.toLocaleTimeString(userLocale(), timeOpts)
|
|
550
551
|
if (sameDay) {
|
|
551
552
|
return `${dateLabel} · ${startTime} – ${endTime}`
|
|
552
553
|
}
|
|
553
|
-
const endDateLabel = end.toLocaleDateString(
|
|
554
|
+
const endDateLabel = end.toLocaleDateString(userLocale(), { day: 'numeric', month: 'short' })
|
|
554
555
|
return `${dateLabel} ${startTime} – ${endDateLabel} ${endTime}`
|
|
555
556
|
}
|
|
556
557
|
return `${dateLabel} · ${startTime}`
|
|
@@ -61,6 +61,7 @@ import { NcLoadingIcon } from '@nextcloud/vue'
|
|
|
61
61
|
import PhoneOutline from 'vue-material-design-icons/PhoneOutline.vue'
|
|
62
62
|
import CnDetailCard from '../../../components/CnDetailCard/CnDetailCard.vue'
|
|
63
63
|
import { prefixUrl } from '../../../utils/index.js'
|
|
64
|
+
import { userLocale } from '../../../utils/userLocale.js'
|
|
64
65
|
|
|
65
66
|
export default {
|
|
66
67
|
name: 'CnContactmomentCard',
|
|
@@ -182,7 +183,7 @@ export default {
|
|
|
182
183
|
*/
|
|
183
184
|
formatWhen(value) {
|
|
184
185
|
const d = new Date(value)
|
|
185
|
-
return isNaN(d.getTime()) ? value : d.toLocaleString()
|
|
186
|
+
return isNaN(d.getTime()) ? value : d.toLocaleString(userLocale())
|
|
186
187
|
},
|
|
187
188
|
},
|
|
188
189
|
}
|
|
@@ -175,6 +175,7 @@ import CnCospendCreate from '../../../components/CnCospendCreate/CnCospendCreate
|
|
|
175
175
|
import CnCospendPicker from '../../../components/CnCospendPicker/CnCospendPicker.vue'
|
|
176
176
|
import CnStatusBadge from '../../../components/CnStatusBadge/CnStatusBadge.vue'
|
|
177
177
|
import { buildHeaders, prefixUrl, safeHref } from '../../../utils/index.js'
|
|
178
|
+
import { userLocale } from '../../../utils/userLocale.js'
|
|
178
179
|
|
|
179
180
|
/**
|
|
180
181
|
* CnCospendTab — bespoke sidebar tab for the `cospend` integration.
|
|
@@ -495,7 +496,7 @@ export default {
|
|
|
495
496
|
if (Number.isNaN(date.getTime())) {
|
|
496
497
|
return ''
|
|
497
498
|
}
|
|
498
|
-
return date.toLocaleDateString(
|
|
499
|
+
return date.toLocaleDateString(userLocale(), { dateStyle: 'medium' })
|
|
499
500
|
},
|
|
500
501
|
|
|
501
502
|
/**
|
|
@@ -168,6 +168,7 @@ import CnDeckCardCreate from '../../../components/CnDeckCardCreate/CnDeckCardCre
|
|
|
168
168
|
import CnDeckCardPicker from '../../../components/CnDeckCardPicker/CnDeckCardPicker.vue'
|
|
169
169
|
import CnStatusBadge from '../../../components/CnStatusBadge/CnStatusBadge.vue'
|
|
170
170
|
import { buildHeaders, prefixUrl, safeHref } from '../../../utils/index.js'
|
|
171
|
+
import { userLocale } from '../../../utils/userLocale.js'
|
|
171
172
|
|
|
172
173
|
/** Maximum assignee avatars shown before collapsing the rest into a +N overflow badge. */
|
|
173
174
|
const MAX_VISIBLE_ASSIGNEES = 3
|
|
@@ -427,7 +428,7 @@ export default {
|
|
|
427
428
|
if (Number.isNaN(date.getTime())) {
|
|
428
429
|
return ''
|
|
429
430
|
}
|
|
430
|
-
return date.toLocaleDateString(
|
|
431
|
+
return date.toLocaleDateString(userLocale(), { dateStyle: 'medium' })
|
|
431
432
|
},
|
|
432
433
|
|
|
433
434
|
/**
|
|
@@ -68,6 +68,7 @@ import { markRaw } from 'vue'
|
|
|
68
68
|
import Email from 'vue-material-design-icons/Email.vue'
|
|
69
69
|
import CnDetailCard from '../../../components/CnDetailCard/CnDetailCard.vue'
|
|
70
70
|
import { buildHeaders, prefixUrl } from '../../../utils/index.js'
|
|
71
|
+
import { userLocale } from '../../../utils/userLocale.js'
|
|
71
72
|
|
|
72
73
|
/**
|
|
73
74
|
* CnEmailCard — compact widget for the `email` integration leaf.
|
|
@@ -279,7 +280,7 @@ export default {
|
|
|
279
280
|
if (Number.isNaN(d.getTime()) === true) {
|
|
280
281
|
return String(raw)
|
|
281
282
|
}
|
|
282
|
-
return d.toLocaleDateString(
|
|
283
|
+
return d.toLocaleDateString(userLocale(), { year: 'numeric', month: 'short', day: 'numeric' })
|
|
283
284
|
},
|
|
284
285
|
|
|
285
286
|
// Thread deep-link into NC Mail; undefined when the row lacks ids.
|
|
@@ -164,6 +164,7 @@ import { NcButton, NcEmptyContent, NcLoadingIcon } from '@nextcloud/vue'
|
|
|
164
164
|
import ClipboardCheckOutline from 'vue-material-design-icons/ClipboardCheckOutline.vue'
|
|
165
165
|
import CnDetailCard from '../../../components/CnDetailCard/CnDetailCard.vue'
|
|
166
166
|
import CnOfflineQueue from '../../../components/CnOfflineQueue/index.js'
|
|
167
|
+
import { userLocale } from '../../../utils/userLocale.js'
|
|
167
168
|
import { buildChecklistSubmission } from '../../offline/checklistSubmission.js'
|
|
168
169
|
import { checklistProgress, classifyGps, normaliseChecklistTemplate, syncIndicator, validateChecklistAnswers } from '../../offline/fieldCollectionHelpers.js'
|
|
169
170
|
import {
|
|
@@ -379,7 +380,7 @@ export default {
|
|
|
379
380
|
if (!iso) {
|
|
380
381
|
return ''
|
|
381
382
|
}
|
|
382
|
-
return new Date(iso).toLocaleString()
|
|
383
|
+
return new Date(iso).toLocaleString(userLocale())
|
|
383
384
|
},
|
|
384
385
|
|
|
385
386
|
errorFor(questionId) {
|
|
@@ -86,6 +86,7 @@ import { NcButton, NcLoadingIcon } from '@nextcloud/vue'
|
|
|
86
86
|
import ClipboardCheckOutline from 'vue-material-design-icons/ClipboardCheckOutline.vue'
|
|
87
87
|
import Sync from 'vue-material-design-icons/Sync.vue'
|
|
88
88
|
import CnOfflineQueue from '../../../components/CnOfflineQueue/index.js'
|
|
89
|
+
import { userLocale } from '../../../utils/userLocale.js'
|
|
89
90
|
import { syncIndicator } from '../../offline/fieldCollectionHelpers.js'
|
|
90
91
|
import {
|
|
91
92
|
countPending,
|
|
@@ -186,7 +187,7 @@ export default {
|
|
|
186
187
|
return ''
|
|
187
188
|
}
|
|
188
189
|
const moment = new Date(syncedAt)
|
|
189
|
-
return Number.isNaN(moment.getTime()) ? '' : moment.toLocaleString()
|
|
190
|
+
return Number.isNaN(moment.getTime()) ? '' : moment.toLocaleString(userLocale())
|
|
190
191
|
},
|
|
191
192
|
|
|
192
193
|
/**
|
|
@@ -154,6 +154,7 @@ import Plus from 'vue-material-design-icons/Plus.vue'
|
|
|
154
154
|
import CnPhotoAlbumCreate from '../../../components/CnPhotoAlbumCreate/CnPhotoAlbumCreate.vue'
|
|
155
155
|
import CnPhotoAlbumPicker from '../../../components/CnPhotoAlbumPicker/CnPhotoAlbumPicker.vue'
|
|
156
156
|
import { buildHeaders, prefixUrl, safeHref } from '../../../utils/index.js'
|
|
157
|
+
import { userLocale } from '../../../utils/userLocale.js'
|
|
157
158
|
|
|
158
159
|
/**
|
|
159
160
|
* CnPhotosTab — bespoke album grid for the `photos` integration.
|
|
@@ -317,7 +318,7 @@ export default {
|
|
|
317
318
|
if (Number.isNaN(d.getTime())) {
|
|
318
319
|
return String(value)
|
|
319
320
|
}
|
|
320
|
-
return d.toLocaleDateString(
|
|
321
|
+
return d.toLocaleDateString(userLocale(), { dateStyle: 'medium' })
|
|
321
322
|
} catch {
|
|
322
323
|
return String(value)
|
|
323
324
|
}
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
"$id": "https://raw.githubusercontent.com/ConductionNL/nextcloud-vue/main/src/schemas/app-manifest-v2.schema.json",
|
|
4
4
|
"title": "Conduction App Manifest v2",
|
|
5
5
|
"description": "v2 schema for the JSON-driven page and navigation manifest consumed by @conduction/nextcloud-vue. Introduces a uniform widgets[] array on every page type with a per-slot grid coordinate system, a typed actions[] discriminator, and the required $schema field for version detection. v1 manifests continue to validate against app-manifest.schema.json (unchanged).",
|
|
6
|
-
"version": "2.
|
|
6
|
+
"version": "2.100.0",
|
|
7
7
|
"type": "object",
|
|
8
8
|
"required": ["$schema", "version"],
|
|
9
9
|
"allOf": [
|
|
@@ -1116,7 +1116,12 @@
|
|
|
1116
1116
|
"additionalProperties": { "type": "string", "enum": ["default", "primary", "success", "warning", "error", "info", "purple", "teal"] }
|
|
1117
1117
|
},
|
|
1118
1118
|
"due": { "type": "string", "description": "The date field of the footer's due text, marked by `dueRule`." },
|
|
1119
|
-
"owner": { "type": "string", "description": "The field of the owner shown as an avatar (initials) at the footer's end." }
|
|
1119
|
+
"owner": { "type": "string", "description": "The field of the owner shown as an avatar (initials) at the footer's end." },
|
|
1120
|
+
"formatters": {
|
|
1121
|
+
"type": "object",
|
|
1122
|
+
"description": "screens-board-reference-columns (2.97.0): a card field (one of the role fields above) to the id of a formatter in the app's `cnFormatters` registry, the one table columns name in `formatter`. The card shows the formatted text, so a reference reads as its name (`{ \"caseType\": \"caseTypeName\" }`).",
|
|
1123
|
+
"additionalProperties": { "type": "string", "minLength": 1 }
|
|
1124
|
+
}
|
|
1120
1125
|
}
|
|
1121
1126
|
},
|
|
1122
1127
|
"colorField": {
|
|
@@ -1145,6 +1150,96 @@
|
|
|
1145
1150
|
"dueRule": {
|
|
1146
1151
|
"$ref": "#/$defs/dueRule",
|
|
1147
1152
|
"description": "Marks late cards. A card whose date is before today gets an error edge and the label 'Overdue'; one due within `soonDays` gets 'Due soon'. Omitted, no card is marked."
|
|
1153
|
+
},
|
|
1154
|
+
"columnFields": {
|
|
1155
|
+
"type": "array",
|
|
1156
|
+
"minItems": 1,
|
|
1157
|
+
"description": "screens-board-reference-columns (2.97.0): the fields the columns can come from, offered in a \"Columns:\" switch after the search when there are two or more (\"status | type | assignee\"). The entry on `statusField` is the default. An entry with a `source` takes its columns from the rows the field REFERENCES (a case's status pointing at statusType rows), fetched, not from the values on the cards; `kind: \"values\"` (a user id, which references no schema) takes the values present plus a column for no value. Without a `source` or `kind` the field's enum or lifecycle states are read as before. A drop writes the reference: through `moveHandler` when named, else a PATCH of the field on the row.",
|
|
1158
|
+
"items": {
|
|
1159
|
+
"type": "object",
|
|
1160
|
+
"additionalProperties": false,
|
|
1161
|
+
"required": ["field"],
|
|
1162
|
+
"properties": {
|
|
1163
|
+
"field": { "type": "string", "minLength": 1, "description": "The row field the columns come from." },
|
|
1164
|
+
"label": { "type": "string", "description": "Its name in the column switch (an i18n key). Defaults to the field." },
|
|
1165
|
+
"kind": { "type": "string", "enum": ["values"], "description": "`values`: the field references no schema (a Nextcloud user id); the columns are the values present on the rows, by `valueLabels` or the value itself, then one column for no value (`emptyLabel`)." },
|
|
1166
|
+
"valueLabels": { "type": "object", "additionalProperties": { "type": "string" }, "description": "`kind: values`: raw value to the column label." },
|
|
1167
|
+
"emptyLabel": { "type": "string", "description": "`kind: values`: the label of the column for no value (an i18n key). Defaults to \"Nobody\"." },
|
|
1168
|
+
"source": {
|
|
1169
|
+
"type": "object",
|
|
1170
|
+
"additionalProperties": false,
|
|
1171
|
+
"description": "The referenced rows that are the columns: one list request to `register`/`schema` (defaults: the page's register and the property's `$ref`).",
|
|
1172
|
+
"properties": {
|
|
1173
|
+
"register": { "type": "string", "minLength": 1 },
|
|
1174
|
+
"schema": { "type": "string", "minLength": 1 },
|
|
1175
|
+
"labelField": { "type": "string", "description": "The referenced row's field that names a column. Defaults to `name`, then `title`." },
|
|
1176
|
+
"orderField": { "type": "string", "description": "The referenced row's numeric field the columns are ordered by." },
|
|
1177
|
+
"colorField": { "type": "string", "description": "The referenced row's field that holds the column's dot colour (a badge variant or a CSS colour)." },
|
|
1178
|
+
"filter": { "type": "object", "description": "Equality filters on the referenced rows, e.g. `{ \"isFinal\": false }` to leave out end states.", "additionalProperties": { "type": ["string", "number", "boolean"] } },
|
|
1179
|
+
"capacityField": { "type": "string", "minLength": 1, "description": "board-column-capacity (2.100.0): the referenced row's numeric field that holds the column's limit. The header reads \"count / capacity\" and turns full at the limit, and a move into a full row is refused before it is written (the server still guards). A column merged from several rows shows no limit, but each row's own limit still refuses a move into it. A row without a number above 0 has no limit." },
|
|
1180
|
+
"mergeBy": { "type": "string", "description": "Merge referenced rows with the same value of this field into one column (statuses of every case type by `name`). A drop then writes the row of the card's own parent (`narrowBy`), and is refused when that parent has none." },
|
|
1181
|
+
"narrowBy": {
|
|
1182
|
+
"type": "object",
|
|
1183
|
+
"additionalProperties": false,
|
|
1184
|
+
"required": ["field", "rowField"],
|
|
1185
|
+
"description": "The parent link: the referenced row's `field` equals the card's `rowField` (statusType.caseType = case.caseType). While the page filters on `rowField` with one value, the columns are that parent's rows only.",
|
|
1186
|
+
"properties": {
|
|
1187
|
+
"field": { "type": "string", "minLength": 1 },
|
|
1188
|
+
"rowField": { "type": "string", "minLength": 1 }
|
|
1189
|
+
}
|
|
1190
|
+
}
|
|
1191
|
+
}
|
|
1192
|
+
},
|
|
1193
|
+
"readOnly": { "type": "boolean", "default": false, "description": "No drag and no Move to while the columns come from this field." },
|
|
1194
|
+
"moveHandler": { "type": "string", "minLength": 1, "description": "A handler in the app's registry that makes the move: it gets `{ card, toKey, field, value, target }` (value: the referenced id to write; target: its row) and returns a promise; a rejection shows its message as the refusal. Absent, the field is written with a PATCH." },
|
|
1195
|
+
"moveTargetsHandler": { "type": "string", "minLength": 1, "description": "A handler in the app's registry that answers where one card may go: it gets `{ card, field }` and returns the values (referenced ids) it can reach. Columns out of reach fade during a drag, read \"not allowed\" in the card menu, and refuse a drop." }
|
|
1196
|
+
}
|
|
1197
|
+
}
|
|
1198
|
+
},
|
|
1199
|
+
"moveHandler": {
|
|
1200
|
+
"type": "string",
|
|
1201
|
+
"minLength": 1,
|
|
1202
|
+
"description": "screens-board-reference-columns (2.97.0): a handler in the app's registry that moves a card on `statusField` (the app's transition), with the `columnFields[].moveHandler` call shape. Lets a manifest-only page run the host's transition, which the `runTransition` prop could not."
|
|
1203
|
+
},
|
|
1204
|
+
"moveTargetsHandler": {
|
|
1205
|
+
"type": "string",
|
|
1206
|
+
"minLength": 1,
|
|
1207
|
+
"description": "screens-board-reference-columns (2.97.0): where a card on `statusField` may go, with the `columnFields[].moveTargetsHandler` call shape."
|
|
1208
|
+
},
|
|
1209
|
+
"narrow": {
|
|
1210
|
+
"type": "object",
|
|
1211
|
+
"additionalProperties": false,
|
|
1212
|
+
"required": ["field"],
|
|
1213
|
+
"description": "screens-board-reference-columns (2.97.0): a select after the search (\"Case type: All case types | Woo-verzoek | ...\") that sets the page filter on `field`. With a reference column's `narrowBy.rowField` on the same field, the columns narrow to that parent's rows.",
|
|
1214
|
+
"properties": {
|
|
1215
|
+
"field": { "type": "string", "minLength": 1, "description": "The row field the select filters on." },
|
|
1216
|
+
"label": { "type": "string", "description": "The select's label (an i18n key), shown with a colon. Defaults to the property's title." },
|
|
1217
|
+
"allLabel": { "type": "string", "description": "The option for no narrowing (an i18n key). Defaults to \"All\"." },
|
|
1218
|
+
"source": {
|
|
1219
|
+
"type": "object",
|
|
1220
|
+
"additionalProperties": false,
|
|
1221
|
+
"description": "Where the options come from (defaults: the page's register and the property's `$ref`).",
|
|
1222
|
+
"properties": {
|
|
1223
|
+
"register": { "type": "string", "minLength": 1 },
|
|
1224
|
+
"schema": { "type": "string", "minLength": 1 },
|
|
1225
|
+
"labelField": { "type": "string", "description": "The option row's label field. Defaults to `title`." },
|
|
1226
|
+
"filter": { "type": "object", "additionalProperties": { "type": ["string", "number", "boolean"] } }
|
|
1227
|
+
}
|
|
1228
|
+
}
|
|
1229
|
+
}
|
|
1230
|
+
},
|
|
1231
|
+
"columnSwitchLabel": {
|
|
1232
|
+
"type": "string",
|
|
1233
|
+
"description": "screens-board-reference-columns (2.97.0): the column switch's label (an i18n key), shown with a colon. Defaults to \"Columns\"."
|
|
1234
|
+
},
|
|
1235
|
+
"hint": {
|
|
1236
|
+
"type": "string",
|
|
1237
|
+
"description": "screens-board-reference-columns (2.97.0): one sentence after the board's controls, in the secondary colour (an i18n key), e.g. how a move works."
|
|
1238
|
+
},
|
|
1239
|
+
"wrap": {
|
|
1240
|
+
"type": "boolean",
|
|
1241
|
+
"default": false,
|
|
1242
|
+
"description": "screens-board-reference-columns (2.97.0): wrap the columns onto more rows, as many to a row as fit at 240px, instead of one row that scrolls sideways. For a board with more stages than fit."
|
|
1148
1243
|
}
|
|
1149
1244
|
}
|
|
1150
1245
|
},
|
|
@@ -3533,7 +3628,7 @@
|
|
|
3533
3628
|
},
|
|
3534
3629
|
"titleField": {
|
|
3535
3630
|
"type": "string",
|
|
3536
|
-
"description": "type='wiki': property on the article object holding the page title. Defaults to 'title'. Maps to CnWikiPage `titleField` prop."
|
|
3631
|
+
"description": "type='wiki': property on the article object holding the page title. Defaults to 'title'. Maps to CnWikiPage `titleField` prop. type='detail' (detail-title-field): the record field (a dotted path, for example `number`) the header names the record by, as an invoice page names the invoice number instead of the schema title; an empty value falls back to the display name, and the breadcrumb's current crumb and the type eyebrow follow. Maps to CnDetailPage `titleField`."
|
|
3537
3632
|
},
|
|
3538
3633
|
"idParam": {
|
|
3539
3634
|
"type": "string",
|
|
@@ -4177,8 +4272,19 @@
|
|
|
4177
4272
|
"description": "type='index': show the page header (icon, title, description) inline. Default false: the title renders visually hidden and the sidebar names the page. Maps to CnIndexPage `showTitle`."
|
|
4178
4273
|
},
|
|
4179
4274
|
"countSubtitle": {
|
|
4180
|
-
"
|
|
4181
|
-
|
|
4275
|
+
"anyOf": [
|
|
4276
|
+
{ "type": "string" },
|
|
4277
|
+
{
|
|
4278
|
+
"type": "object",
|
|
4279
|
+
"additionalProperties": false,
|
|
4280
|
+
"required": ["singular", "plural"],
|
|
4281
|
+
"properties": {
|
|
4282
|
+
"singular": { "type": "string", "minLength": 1, "description": "i18n key of the line for a total of one, e.g. \"{total} invoice\"." },
|
|
4283
|
+
"plural": { "type": "string", "minLength": 1, "description": "i18n key of the line for any other total, e.g. \"{total} invoices\"." }
|
|
4284
|
+
}
|
|
4285
|
+
}
|
|
4286
|
+
],
|
|
4287
|
+
"description": "type='index': an i18n key for the description line with `{total}` replaced by the collection's total, e.g. \"{total} open cases\" (zuiddrecht-pixel-gaps). Shown in place of `description` once a total is known. `{ singular, plural }` picks the form by the total through the app's plural translation (`translatePlural`), so \"1 factuur\" and \"12 facturen\" each read right (index-count-plural). Maps to CnIndexPage `countSubtitle`."
|
|
4182
4288
|
},
|
|
4183
4289
|
"showTitleIcon": {
|
|
4184
4290
|
"type": "boolean",
|
|
@@ -4531,6 +4637,11 @@
|
|
|
4531
4637
|
}
|
|
4532
4638
|
}
|
|
4533
4639
|
},
|
|
4640
|
+
{
|
|
4641
|
+
"description": "screens-board-reference-columns (2.97.0): config.board on an index page, the block CnPageRenderer hands to CnIndexPage's `board` prop, is typed by boardView like pages[].board.",
|
|
4642
|
+
"if": { "properties": { "type": { "const": "index" } }, "required": ["type"] },
|
|
4643
|
+
"then": { "properties": { "config": { "properties": { "board": { "$ref": "#/$defs/boardView" } } } } }
|
|
4644
|
+
},
|
|
4534
4645
|
{
|
|
4535
4646
|
"description": "index-calendar-view-mode: config.calendar on an index page is typed by calendarView.",
|
|
4536
4647
|
"if": { "properties": { "type": { "const": "index" } }, "required": ["type"] },
|