@conduction/nextcloud-vue 2.79.0 → 2.81.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/components/CnActionButtons/CnActionButtons.vue2.js.map +1 -1
- package/dist/esm/components/CnActionButtons/CnActionButtons.vue3.js +3 -1
- package/dist/esm/components/CnActionButtons/CnActionButtons.vue3.js.map +1 -1
- package/dist/esm/components/CnActionsBar/CnActionsBar.vue2.js +32 -3
- package/dist/esm/components/CnActionsBar/CnActionsBar.vue2.js.map +1 -1
- package/dist/esm/components/CnActionsBar/CnActionsBar.vue3.js +13 -11
- package/dist/esm/components/CnActionsBar/CnActionsBar.vue3.js.map +1 -1
- package/dist/esm/components/CnAppRoot/CnAppRoot.vue2.js +80 -4
- package/dist/esm/components/CnAppRoot/CnAppRoot.vue2.js.map +1 -1
- package/dist/esm/components/CnAppRoot/CnAppRoot.vue3.js +95 -91
- package/dist/esm/components/CnAppRoot/CnAppRoot.vue3.js.map +1 -1
- package/dist/esm/components/CnBannerWidget/CnBannerWidget.vue2.js +179 -13
- package/dist/esm/components/CnBannerWidget/CnBannerWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnBannerWidget/CnBannerWidget.vue3.js +52 -16
- package/dist/esm/components/CnBannerWidget/CnBannerWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue2.js +96 -4
- package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue2.js.map +1 -1
- package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue3.js +158 -110
- package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue3.js.map +1 -1
- package/dist/esm/components/CnChipsFieldWidget/CnChipsFieldWidget.vue.js +10 -0
- package/dist/esm/components/CnChipsFieldWidget/CnChipsFieldWidget.vue.js.map +1 -0
- package/dist/esm/components/CnChipsFieldWidget/CnChipsFieldWidget.vue2.js +252 -0
- package/dist/esm/components/CnChipsFieldWidget/CnChipsFieldWidget.vue2.js.map +1 -0
- package/dist/esm/components/CnChipsFieldWidget/CnChipsFieldWidget.vue3.js +140 -0
- package/dist/esm/components/CnChipsFieldWidget/CnChipsFieldWidget.vue3.js.map +1 -0
- package/dist/esm/components/CnChipsFieldWidget/index.js +26 -0
- package/dist/esm/components/CnChipsFieldWidget/index.js.map +1 -0
- package/dist/esm/components/CnChoicePickerWidget/CnChoicePickerWidget.vue.js +10 -0
- package/dist/esm/components/CnChoicePickerWidget/CnChoicePickerWidget.vue.js.map +1 -0
- package/dist/esm/components/CnChoicePickerWidget/CnChoicePickerWidget.vue2.js +354 -0
- package/dist/esm/components/CnChoicePickerWidget/CnChoicePickerWidget.vue2.js.map +1 -0
- package/dist/esm/components/CnChoicePickerWidget/CnChoicePickerWidget.vue3.js +172 -0
- package/dist/esm/components/CnChoicePickerWidget/CnChoicePickerWidget.vue3.js.map +1 -0
- package/dist/esm/components/CnChoicePickerWidget/index.js +27 -0
- package/dist/esm/components/CnChoicePickerWidget/index.js.map +1 -0
- package/dist/esm/components/CnConversationThread/CnConversationWidget.vue2.js +1 -1
- package/dist/esm/components/CnConversationThread/CnConversationWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnConversationThread/CnConversationWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnDashboardGrid/CnDashboardGrid.vue2.js +2 -2
- package/dist/esm/components/CnDashboardGrid/CnDashboardGrid.vue2.js.map +1 -1
- package/dist/esm/components/CnDashboardGrid/CnDashboardGrid.vue3.js.map +1 -1
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js +65 -5
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js.map +1 -1
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js +2 -1
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js.map +1 -1
- package/dist/esm/components/CnDataTable/CnDataTable.vue2.js +19 -11
- package/dist/esm/components/CnDataTable/CnDataTable.vue2.js.map +1 -1
- package/dist/esm/components/CnDataTable/CnDataTable.vue3.js +4 -2
- package/dist/esm/components/CnDataTable/CnDataTable.vue3.js.map +1 -1
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js +134 -4
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js.map +1 -1
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js +21 -4
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js.map +1 -1
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js +24 -0
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js.map +1 -1
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js +43 -4
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js.map +1 -1
- package/dist/esm/components/CnDocumentReviewList/CnDocumentReviewWidget.vue2.js +1 -1
- package/dist/esm/components/CnDocumentReviewList/CnDocumentReviewWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnDocumentReviewList/CnDocumentReviewWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnFacetSidebar/CnFacetSidebar.vue2.js +7 -7
- package/dist/esm/components/CnFacetSidebar/CnFacetSidebar.vue2.js.map +1 -1
- package/dist/esm/components/CnFacetSidebar/CnFacetSidebar.vue3.js.map +1 -1
- package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue.js +11 -0
- package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue.js.map +1 -0
- package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue2.js +867 -0
- package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue2.js.map +1 -0
- package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue3.js +238 -0
- package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue3.js.map +1 -0
- package/dist/esm/components/CnFactsWidget/index.js +30 -0
- package/dist/esm/components/CnFactsWidget/index.js.map +1 -0
- package/dist/esm/components/CnFieldListWidget/CnFieldListWidget.vue.js +10 -0
- package/dist/esm/components/CnFieldListWidget/CnFieldListWidget.vue.js.map +1 -0
- package/dist/esm/components/CnFieldListWidget/CnFieldListWidget.vue2.js +626 -0
- package/dist/esm/components/CnFieldListWidget/CnFieldListWidget.vue2.js.map +1 -0
- package/dist/esm/components/CnFieldListWidget/CnFieldListWidget.vue3.js +396 -0
- package/dist/esm/components/CnFieldListWidget/CnFieldListWidget.vue3.js.map +1 -0
- package/dist/esm/components/CnFieldListWidget/index.js +29 -0
- package/dist/esm/components/CnFieldListWidget/index.js.map +1 -0
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js +302 -4
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js.map +1 -1
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js +417 -244
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js.map +1 -1
- package/dist/esm/components/CnFilesBrowser/filesBrowser.js +101 -1
- package/dist/esm/components/CnFilesBrowser/filesBrowser.js.map +1 -1
- package/dist/esm/components/CnFilesBrowser/filesBrowserColumns.js +141 -1
- package/dist/esm/components/CnFilesBrowser/filesBrowserColumns.js.map +1 -1
- package/dist/esm/components/CnFormDialog/CnFormDialog.vue2.js +65 -17
- package/dist/esm/components/CnFormDialog/CnFormDialog.vue2.js.map +1 -1
- package/dist/esm/components/CnFormDialog/CnFormDialog.vue3.js +4 -4
- package/dist/esm/components/CnFormDialog/CnFormDialog.vue3.js.map +1 -1
- package/dist/esm/components/CnFormPage/CnFormPage.vue2.js +78 -3
- package/dist/esm/components/CnFormPage/CnFormPage.vue2.js.map +1 -1
- package/dist/esm/components/CnFormPage/CnFormPage.vue3.js +74 -49
- package/dist/esm/components/CnFormPage/CnFormPage.vue3.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +333 -73
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js +79 -17
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue.js +10 -0
- package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue.js.map +1 -0
- package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue2.js +99 -0
- package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue2.js.map +1 -0
- package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue3.js +48 -0
- package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue3.js.map +1 -0
- package/dist/esm/components/CnIndexSidebar/CnIndexSidebar.vue2.js +7 -7
- package/dist/esm/components/CnIndexSidebar/CnIndexSidebar.vue2.js.map +1 -1
- package/dist/esm/components/CnIndexSidebar/CnIndexSidebar.vue3.js.map +1 -1
- package/dist/esm/components/CnNextStepCard/CnNextStepWidget.vue2.js +1 -1
- package/dist/esm/components/CnNextStepCard/CnNextStepWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue2.js +65 -2
- package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue3.js +6 -2
- package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue2.js +63 -1
- package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue2.js.map +1 -1
- package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue3.js +8 -1
- package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue3.js.map +1 -1
- package/dist/esm/components/CnObjectSidebar/CnNotesTab.vue2.js +14 -0
- package/dist/esm/components/CnObjectSidebar/CnNotesTab.vue2.js.map +1 -1
- package/dist/esm/components/CnObjectSidebar/CnNotesTab.vue3.js +5 -1
- package/dist/esm/components/CnObjectSidebar/CnNotesTab.vue3.js.map +1 -1
- package/dist/esm/components/CnPageRenderer/CnPageRenderer.vue2.js +29 -1
- package/dist/esm/components/CnPageRenderer/CnPageRenderer.vue2.js.map +1 -1
- package/dist/esm/components/CnPageRenderer/CnPageRenderer.vue3.js.map +1 -1
- package/dist/esm/components/CnRadioCardsWidget/CnRadioCardsWidget.vue.js +10 -0
- package/dist/esm/components/CnRadioCardsWidget/CnRadioCardsWidget.vue.js.map +1 -0
- package/dist/esm/components/CnRadioCardsWidget/CnRadioCardsWidget.vue2.js +174 -0
- package/dist/esm/components/CnRadioCardsWidget/CnRadioCardsWidget.vue2.js.map +1 -0
- package/dist/esm/components/CnRadioCardsWidget/CnRadioCardsWidget.vue3.js +75 -0
- package/dist/esm/components/CnRadioCardsWidget/CnRadioCardsWidget.vue3.js.map +1 -0
- package/dist/esm/components/CnRadioCardsWidget/index.js +28 -0
- package/dist/esm/components/CnRadioCardsWidget/index.js.map +1 -0
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue.js +10 -0
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue.js.map +1 -0
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue2.js +411 -0
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue2.js.map +1 -0
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue3.js +178 -0
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue3.js.map +1 -0
- package/dist/esm/components/CnRecordListWidget/index.js +31 -0
- package/dist/esm/components/CnRecordListWidget/index.js.map +1 -0
- package/dist/esm/components/CnSavedViewsWidget/CnSavedViewsWidget.vue.js +10 -0
- package/dist/esm/components/CnSavedViewsWidget/CnSavedViewsWidget.vue.js.map +1 -0
- package/dist/esm/components/CnSavedViewsWidget/CnSavedViewsWidget.vue2.js +222 -0
- package/dist/esm/components/CnSavedViewsWidget/CnSavedViewsWidget.vue2.js.map +1 -0
- package/dist/esm/components/CnSavedViewsWidget/CnSavedViewsWidget.vue3.js +64 -0
- package/dist/esm/components/CnSavedViewsWidget/CnSavedViewsWidget.vue3.js.map +1 -0
- package/dist/esm/components/CnSavedViewsWidget/index.js +30 -0
- package/dist/esm/components/CnSavedViewsWidget/index.js.map +1 -0
- package/dist/esm/components/CnSectionsWidget/CnSectionsWidget.vue.js +10 -0
- package/dist/esm/components/CnSectionsWidget/CnSectionsWidget.vue.js.map +1 -0
- package/dist/esm/components/CnSectionsWidget/CnSectionsWidget.vue2.js +351 -0
- package/dist/esm/components/CnSectionsWidget/CnSectionsWidget.vue2.js.map +1 -0
- package/dist/esm/components/CnSectionsWidget/CnSectionsWidget.vue3.js +71 -0
- package/dist/esm/components/CnSectionsWidget/CnSectionsWidget.vue3.js.map +1 -0
- package/dist/esm/components/CnSectionsWidget/index.js +35 -0
- package/dist/esm/components/CnSectionsWidget/index.js.map +1 -0
- package/dist/esm/components/CnSegmentedControl/CnSegmentedControl.vue2.js.map +1 -1
- package/dist/esm/components/CnSegmentedControl/CnSegmentedControl.vue3.js.map +1 -1
- package/dist/esm/components/CnSettingsFormWidget/CnSettingsFormWidget.vue.js +10 -0
- package/dist/esm/components/CnSettingsFormWidget/CnSettingsFormWidget.vue.js.map +1 -0
- package/dist/esm/components/CnSettingsFormWidget/CnSettingsFormWidget.vue2.js +347 -0
- package/dist/esm/components/CnSettingsFormWidget/CnSettingsFormWidget.vue2.js.map +1 -0
- package/dist/esm/components/CnSettingsFormWidget/CnSettingsFormWidget.vue3.js +184 -0
- package/dist/esm/components/CnSettingsFormWidget/CnSettingsFormWidget.vue3.js.map +1 -0
- package/dist/esm/components/CnSettingsFormWidget/index.js +27 -0
- package/dist/esm/components/CnSettingsFormWidget/index.js.map +1 -0
- package/dist/esm/components/CnStagesWidget/CnStagesWidget.vue2.js +81 -2
- package/dist/esm/components/CnStagesWidget/CnStagesWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnStagesWidget/CnStagesWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnStatWidget/CnStatWidget.vue2.js +87 -6
- package/dist/esm/components/CnStatWidget/CnStatWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnStatWidget/CnStatWidget.vue3.js +1 -0
- package/dist/esm/components/CnStatWidget/CnStatWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnStatsBlockWidget/CnStatsBlockWidget.vue2.js +84 -1
- package/dist/esm/components/CnStatsBlockWidget/CnStatsBlockWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnStatsBlockWidget/CnStatsBlockWidget.vue3.js +85 -41
- package/dist/esm/components/CnStatsBlockWidget/CnStatsBlockWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnSwitchRowsWidget/CnSwitchRowsWidget.vue.js +10 -0
- package/dist/esm/components/CnSwitchRowsWidget/CnSwitchRowsWidget.vue.js.map +1 -0
- package/dist/esm/components/CnSwitchRowsWidget/CnSwitchRowsWidget.vue2.js +159 -0
- package/dist/esm/components/CnSwitchRowsWidget/CnSwitchRowsWidget.vue2.js.map +1 -0
- package/dist/esm/components/CnSwitchRowsWidget/CnSwitchRowsWidget.vue3.js +60 -0
- package/dist/esm/components/CnSwitchRowsWidget/CnSwitchRowsWidget.vue3.js.map +1 -0
- package/dist/esm/components/CnSwitchRowsWidget/index.js +26 -0
- package/dist/esm/components/CnSwitchRowsWidget/index.js.map +1 -0
- package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue2.js +168 -7
- package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue3.js +86 -23
- package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnTasksWidget/CnTasksWidget.vue2.js +80 -1
- package/dist/esm/components/CnTasksWidget/CnTasksWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnTasksWidget/CnTasksWidget.vue3.js +75 -32
- package/dist/esm/components/CnTasksWidget/CnTasksWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnToggleTableWidget/CnToggleTableWidget.vue.js +10 -0
- package/dist/esm/components/CnToggleTableWidget/CnToggleTableWidget.vue.js.map +1 -0
- package/dist/esm/components/CnToggleTableWidget/CnToggleTableWidget.vue2.js +269 -0
- package/dist/esm/components/CnToggleTableWidget/CnToggleTableWidget.vue2.js.map +1 -0
- package/dist/esm/components/CnToggleTableWidget/CnToggleTableWidget.vue3.js +106 -0
- package/dist/esm/components/CnToggleTableWidget/CnToggleTableWidget.vue3.js.map +1 -0
- package/dist/esm/components/CnToggleTableWidget/index.js +27 -0
- package/dist/esm/components/CnToggleTableWidget/index.js.map +1 -0
- package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js +11 -0
- package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js.map +1 -1
- package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue2.js +7 -2
- 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/CnWidgetObjectTable/dashboardRegistration.js +5 -0
- package/dist/esm/components/CnWidgetObjectTable/dashboardRegistration.js.map +1 -1
- package/dist/esm/components/CnWorkspaceFilterWidget/CnWorkspaceFilterWidget.vue2.js +301 -6
- package/dist/esm/components/CnWorkspaceFilterWidget/CnWorkspaceFilterWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnWorkspaceFilterWidget/CnWorkspaceFilterWidget.vue3.js +153 -55
- package/dist/esm/components/CnWorkspaceFilterWidget/CnWorkspaceFilterWidget.vue3.js.map +1 -1
- package/dist/esm/composables/useFormDraft.js +140 -9
- package/dist/esm/composables/useFormDraft.js.map +1 -1
- package/dist/esm/composables/useListView.js +4 -4
- package/dist/esm/composables/useListView.js.map +1 -1
- package/dist/esm/index.js +21 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionCard.vue2.js +28 -20
- package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionCard.vue2.js.map +1 -1
- package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionCard.vue3.js +9 -0
- package/dist/esm/integrations/builtin/field-inspection/CnFieldInspectionCard.vue3.js.map +1 -1
- package/dist/esm/integrations/builtin/field-inspection.js +21 -0
- package/dist/esm/integrations/builtin/field-inspection.js.map +1 -1
- package/dist/esm/integrations/offline/checklistSubmission.js +141 -0
- package/dist/esm/integrations/offline/checklistSubmission.js.map +1 -0
- package/dist/esm/integrations/offline/fieldCollectionHelpers.js +70 -5
- package/dist/esm/integrations/offline/fieldCollectionHelpers.js.map +1 -1
- package/dist/esm/integrations/offline/index.js +2 -1
- package/dist/esm/integrations/offline/index.js.map +1 -1
- package/dist/esm/integrations/offline/offlineDb.js +6 -1
- package/dist/esm/integrations/offline/offlineDb.js.map +1 -1
- package/dist/esm/integrations/offline/syncReplayService.js +8 -2
- package/dist/esm/integrations/offline/syncReplayService.js.map +1 -1
- package/dist/esm/l10n/en.json.js +20 -1
- package/dist/esm/l10n/en.json.js.map +1 -1
- package/dist/esm/l10n/nl.json.js +70 -2
- package/dist/esm/l10n/nl.json.js.map +1 -1
- package/dist/esm/nextcloud-vue.css +2192 -222
- package/dist/esm/utils/contentHeaderLink.js +51 -0
- package/dist/esm/utils/contentHeaderLink.js.map +1 -0
- package/dist/esm/utils/detailActionModel.js +60 -3
- package/dist/esm/utils/detailActionModel.js.map +1 -1
- package/dist/esm/utils/facets.js +75 -3
- package/dist/esm/utils/facets.js.map +1 -1
- package/dist/esm/utils/fetchFilterCounts.js +40 -5
- package/dist/esm/utils/fetchFilterCounts.js.map +1 -1
- package/dist/esm/utils/fillTemplate.js +120 -0
- package/dist/esm/utils/fillTemplate.js.map +1 -0
- package/dist/esm/utils/initials.js +32 -0
- package/dist/esm/utils/initials.js.map +1 -0
- package/dist/esm/utils/libraryWidgetKeys.js +11 -0
- package/dist/esm/utils/libraryWidgetKeys.js.map +1 -1
- package/dist/esm/utils/objectWrite.js +59 -0
- package/dist/esm/utils/objectWrite.js.map +1 -0
- package/dist/esm/utils/pageControls.js +81 -0
- package/dist/esm/utils/pageControls.js.map +1 -0
- package/dist/esm/utils/personalLenses.js +40 -3
- package/dist/esm/utils/personalLenses.js.map +1 -1
- package/dist/esm/utils/queryPresets.js +96 -0
- package/dist/esm/utils/queryPresets.js.map +1 -0
- package/dist/esm/utils/resolveFilterTokens.js +12 -1
- package/dist/esm/utils/resolveFilterTokens.js.map +1 -1
- package/dist/esm/utils/resolveManifestTokens.js +2 -0
- package/dist/esm/utils/resolveManifestTokens.js.map +1 -1
- package/dist/esm/utils/schema.js +21 -0
- package/dist/esm/utils/schema.js.map +1 -1
- package/dist/esm/utils/sentinelTokens.js +22 -4
- package/dist/esm/utils/sentinelTokens.js.map +1 -1
- package/dist/esm/utils/userGroupsPeek.js +91 -0
- package/dist/esm/utils/userGroupsPeek.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/visibleWhen.js +57 -5
- package/dist/esm/utils/visibleWhen.js.map +1 -1
- package/dist/esm/utils/widgetDispatch.js +7 -1
- package/dist/esm/utils/widgetDispatch.js.map +1 -1
- package/dist/esm/utils/widgetVisibility.js +4 -57
- package/dist/esm/utils/widgetVisibility.js.map +1 -1
- package/dist/nextcloud-vue.cjs.js +19708 -9301
- package/dist/nextcloud-vue.cjs.js.map +2 -2
- package/dist/nextcloud-vue.css +2192 -222
- package/l10n/en.json +20 -1
- package/l10n/nl.json +70 -2
- package/package.json +2 -1
- package/scripts/check-docs-mdx.mjs +108 -0
- package/src/components/CnActionButtons/CnActionButtons.vue +2 -0
- package/src/components/CnActionsBar/CnActionsBar.md +4 -0
- package/src/components/CnActionsBar/CnActionsBar.vue +48 -11
- package/src/components/CnAppRoot/CnAppRoot.md +4 -2
- package/src/components/CnAppRoot/CnAppRoot.vue +151 -59
- package/src/components/CnBannerWidget/CnBannerWidget.vue +244 -23
- package/src/components/CnCellRenderer/CnCellRenderer.md +2 -0
- package/src/components/CnCellRenderer/CnCellRenderer.vue +235 -5
- package/src/components/CnChipsFieldWidget/CnChipsFieldWidget.vue +433 -0
- package/src/components/CnChipsFieldWidget/index.js +25 -0
- package/src/components/CnChoicePickerWidget/CnChoicePickerWidget.vue +556 -0
- package/src/components/CnChoicePickerWidget/index.js +26 -0
- package/src/components/CnConversationThread/CnConversationWidget.vue +1 -1
- package/src/components/CnDashboardGrid/CnDashboardGrid.vue +2 -2
- package/src/components/CnDashboardPage/CnDashboardPage.vue +78 -5
- package/src/components/CnDataTable/CnDataTable.vue +22 -12
- package/src/components/CnDetailPage/CnDetailPage.md +1 -1
- package/src/components/CnDetailPage/CnDetailPage.vue +152 -6
- package/src/components/CnDetailWidgetHost/CnDetailWidgetHost.vue +66 -0
- package/src/components/CnDocumentReviewList/CnDocumentReviewWidget.vue +1 -1
- package/src/components/CnFacetSidebar/CnFacetSidebar.vue +7 -7
- package/src/components/CnFactsWidget/CnFactsWidget.vue +1190 -0
- package/src/components/CnFactsWidget/index.js +29 -0
- package/src/components/CnFieldListWidget/CnFieldListWidget.vue +1008 -0
- package/src/components/CnFieldListWidget/index.js +28 -0
- package/src/components/CnFilesBrowser/CnFilesBrowser.vue +588 -117
- package/src/components/CnFilesBrowser/filesBrowser.js +100 -0
- package/src/components/CnFilesBrowser/filesBrowserColumns.js +140 -0
- package/src/components/CnFormDialog/CnFormDialog.md +9 -3
- package/src/components/CnFormDialog/CnFormDialog.vue +69 -21
- package/src/components/CnFormPage/CnFormPage.vue +99 -3
- package/src/components/CnIndexPage/CnIndexPage.vue +309 -9
- package/src/components/CnIndexPage/CnIndexPageWidgets.vue +169 -0
- package/src/components/CnIndexSidebar/CnIndexSidebar.vue +7 -7
- package/src/components/CnNextStepCard/CnNextStepWidget.vue +1 -1
- package/src/components/CnObjectListWidget/CnObjectListWidget.vue +69 -2
- package/src/components/CnObjectSidebar/CnFilesTab.vue +70 -1
- package/src/components/CnObjectSidebar/CnNotesTab.vue +16 -0
- package/src/components/CnPageRenderer/CnPageRenderer.vue +29 -1
- package/src/components/CnRadioCardsWidget/CnRadioCardsWidget.vue +313 -0
- package/src/components/CnRadioCardsWidget/index.js +27 -0
- package/src/components/CnRecordListWidget/CnRecordListWidget.vue +652 -0
- package/src/components/CnRecordListWidget/index.js +30 -0
- package/src/components/CnSavedViewsWidget/CnSavedViewsWidget.vue +296 -0
- package/src/components/CnSavedViewsWidget/index.js +29 -0
- package/src/components/CnSectionsWidget/CnSectionsWidget.vue +489 -0
- package/src/components/CnSectionsWidget/index.js +34 -0
- package/src/components/CnSegmentedControl/CnSegmentedControl.vue +13 -0
- package/src/components/CnSettingsFormWidget/CnSettingsFormWidget.vue +555 -0
- package/src/components/CnSettingsFormWidget/index.js +26 -0
- package/src/components/CnStagesWidget/CnStagesWidget.vue +81 -2
- package/src/components/CnStatWidget/CnStatWidget.vue +88 -7
- package/src/components/CnStatsBlockWidget/CnStatsBlockWidget.vue +180 -3
- package/src/components/CnSwitchRowsWidget/CnSwitchRowsWidget.vue +226 -0
- package/src/components/CnSwitchRowsWidget/index.js +25 -0
- package/src/components/CnTabsWidget/CnTabsWidget.vue +263 -8
- package/src/components/CnTasksWidget/CnTasksWidget.vue +175 -15
- package/src/components/CnToggleTableWidget/CnToggleTableWidget.vue +386 -0
- package/src/components/CnToggleTableWidget/index.js +26 -0
- package/src/components/CnWidgetGrid/registerDashboardWidgets.js +11 -0
- package/src/components/CnWidgetObjectTable/CnWidgetObjectTable.vue +7 -2
- package/src/components/CnWidgetObjectTable/dashboardRegistration.js +5 -0
- package/src/components/CnWorkspaceFilterWidget/CnWorkspaceFilterWidget.vue +493 -11
- package/src/components/index.js +19 -0
- package/src/composables/__tests__/useFormDraft.spec.js +69 -0
- package/src/composables/useFormDraft.js +139 -8
- package/src/composables/useListView.js +4 -4
- package/src/css/form-field.css +14 -0
- package/src/css/index-page.css +71 -0
- package/src/css/kpi-card.css +32 -0
- package/src/css/look-board-detail.css +113 -2
- package/src/css/look-board-index.css +90 -8
- package/src/css/look-board.css +109 -2
- package/src/css/table.css +19 -0
- package/src/index.js +19 -0
- package/src/integrations/builtin/field-inspection/CnFieldInspectionCard.vue +35 -20
- package/src/integrations/builtin/field-inspection.js +21 -0
- package/src/integrations/offline/checklistSubmission.js +137 -0
- package/src/integrations/offline/fieldCollectionHelpers.js +69 -4
- package/src/integrations/offline/index.js +3 -0
- package/src/integrations/offline/offlineDb.js +6 -1
- package/src/integrations/offline/syncReplayService.js +8 -2
- package/src/schemas/app-manifest-v2.schema.json +196 -13
- package/src/utils/contentHeaderLink.js +48 -0
- package/src/utils/detailActionModel.js +59 -2
- package/src/utils/facets.js +74 -2
- package/src/utils/fetchFilterCounts.js +39 -4
- package/src/utils/fillTemplate.js +116 -0
- package/src/utils/initials.js +29 -0
- package/src/utils/libraryWidgetKeys.js +11 -0
- package/src/utils/objectWrite.js +55 -0
- package/src/utils/pageControls.js +78 -0
- package/src/utils/personalLenses.js +39 -2
- package/src/utils/queryPresets.js +93 -0
- package/src/utils/resolveFilterTokens.js +14 -1
- package/src/utils/resolveManifestTokens.js +2 -0
- package/src/utils/schema.js +21 -0
- package/src/utils/sentinelTokens.js +22 -4
- package/src/utils/userGroupsPeek.js +87 -0
- package/src/utils/validateManifestV2.compiled.js +3 -3
- package/src/utils/visibleWhen.js +56 -4
- package/src/utils/widgetDispatch.js +7 -1
- package/src/utils/widgetVisibility.js +7 -56
|
@@ -10,12 +10,14 @@ import DotsHorizontal from 'vue-material-design-icons/DotsHorizontal.vue';
|
|
|
10
10
|
import Export from 'vue-material-design-icons/Export.vue';
|
|
11
11
|
import Eye from 'vue-material-design-icons/Eye.vue';
|
|
12
12
|
import FilterOutline from 'vue-material-design-icons/FilterOutline.vue';
|
|
13
|
+
import Tune from 'vue-material-design-icons/Tune.vue';
|
|
13
14
|
import ViewColumnOutline from 'vue-material-design-icons/ViewColumnOutline.vue';
|
|
14
|
-
import __sfc_main$
|
|
15
|
-
import __sfc_main$
|
|
16
|
-
import __sfc_main from '../CnBuildiqEditButton/CnBuildiqEditButton.vue.js';
|
|
17
|
-
import __sfc_main$
|
|
18
|
-
import __sfc_main$
|
|
15
|
+
import __sfc_main$w from '../../dialogs/CnConfirmDialog.vue.js';
|
|
16
|
+
import __sfc_main$x from '../../dialogs/CnQuickEditDialog.vue.js';
|
|
17
|
+
import __sfc_main$1 from '../CnBuildiqEditButton/CnBuildiqEditButton.vue.js';
|
|
18
|
+
import __sfc_main$3 from '../CnEmptyContent/CnEmptyContent.vue.js';
|
|
19
|
+
import __sfc_main$2 from '../CnFollowToggle/CnFollowToggle.vue.js';
|
|
20
|
+
import __sfc_main from './CnIndexPageWidgets.vue.js';
|
|
19
21
|
import { useLook } from '../../composables/useLook.js';
|
|
20
22
|
import { copyKindsOf } from '../../composables/useObjectCopy.js';
|
|
21
23
|
import { createRefLabelResolver } from '../../composables/useRefLabels.js';
|
|
@@ -45,37 +47,37 @@ import { viewMatchesScope, extractViewState, buildRouteQueryFromViewState, extra
|
|
|
45
47
|
import { fieldsFromSchema, columnsFromSchema } from '../../utils/schema.js';
|
|
46
48
|
import { resolveScopeLayout } from '../../utils/scopeListLayout.js';
|
|
47
49
|
import { dispatchObjectCreated } from '../../utils/walkthroughSignals.js';
|
|
48
|
-
import __sfc_main$
|
|
49
|
-
import __sfc_main$
|
|
50
|
+
import __sfc_main$6 from '../CnActionsBar/CnActionsBar.vue.js';
|
|
51
|
+
import __sfc_main$p from '../CnAdvancedFormDialog/CnAdvancedFormDialog.vue.js';
|
|
50
52
|
import '../CnAdvancedFormDialog/CnMetadataTab.vue.js';
|
|
51
53
|
import '../CnAdvancedFormDialog/CnPropertiesTab.vue.js';
|
|
52
54
|
import '../CnAdvancedFormDialog/CnPropertyValueCell.vue.js';
|
|
53
|
-
import __sfc_main$
|
|
54
|
-
import __sfc_main$
|
|
55
|
-
import __sfc_main$
|
|
56
|
-
import __sfc_main$
|
|
57
|
-
import __sfc_main$
|
|
58
|
-
import __sfc_main$
|
|
59
|
-
import __sfc_main$
|
|
60
|
-
import __sfc_main$
|
|
61
|
-
import __sfc_main$
|
|
62
|
-
import __sfc_main$
|
|
63
|
-
import __sfc_main$
|
|
64
|
-
import __sfc_main$
|
|
65
|
-
import __sfc_main$
|
|
66
|
-
import __sfc_main$
|
|
67
|
-
import __sfc_main$
|
|
68
|
-
import __sfc_main$
|
|
69
|
-
import __sfc_main$
|
|
70
|
-
import __sfc_main$
|
|
71
|
-
import __sfc_main$
|
|
72
|
-
import __sfc_main$
|
|
73
|
-
import __sfc_main$
|
|
74
|
-
import __sfc_main$
|
|
75
|
-
import __sfc_main$
|
|
76
|
-
import __sfc_main$
|
|
77
|
-
import __sfc_main$
|
|
78
|
-
import __sfc_main$
|
|
55
|
+
import __sfc_main$a from '../CnBoardView/CnBoardView.vue.js';
|
|
56
|
+
import __sfc_main$9 from '../CnCardGrid/CnCardGrid.vue.js';
|
|
57
|
+
import __sfc_main$q from '../CnContextMenu/CnContextMenu.vue.js';
|
|
58
|
+
import __sfc_main$n from '../CnCopyDialog/CnCopyDialog.vue.js';
|
|
59
|
+
import __sfc_main$8 from '../CnDataTable/CnDataTable.vue.js';
|
|
60
|
+
import __sfc_main$b from '../CnDateAxisView/CnDateAxisView.vue.js';
|
|
61
|
+
import __sfc_main$m from '../CnDeleteDialog/CnDeleteDialog.vue.js';
|
|
62
|
+
import __sfc_main$f from '../CnFolderSidebar/CnFolderSidebar.vue.js';
|
|
63
|
+
import __sfc_main$o from '../CnFormDialog/CnFormDialog.vue.js';
|
|
64
|
+
import __sfc_main$7 from '../CnIcon/CnIcon.vue.js';
|
|
65
|
+
import __sfc_main$r from '../CnIndexSidebar/CnIndexSidebar.vue.js';
|
|
66
|
+
import __sfc_main$d from '../CnMapWidget/CnMapWidget.vue.js';
|
|
67
|
+
import __sfc_main$j from '../CnMassCopyDialog/CnMassCopyDialog.vue.js';
|
|
68
|
+
import __sfc_main$i from '../CnMassDeleteDialog/CnMassDeleteDialog.vue.js';
|
|
69
|
+
import __sfc_main$k from '../CnMassExportDialog/CnMassExportDialog.vue.js';
|
|
70
|
+
import __sfc_main$l from '../CnMassImportDialog/CnMassImportDialog.vue.js';
|
|
71
|
+
import __sfc_main$c from '../CnObjectCalendar/CnObjectCalendar.vue.js';
|
|
72
|
+
import __sfc_main$e from '../CnObjectList/CnObjectList.vue.js';
|
|
73
|
+
import __sfc_main$4 from '../CnPageHeader/CnPageHeader.vue.js';
|
|
74
|
+
import __sfc_main$g from '../CnPagination/CnPagination.vue.js';
|
|
75
|
+
import __sfc_main$5 from '../CnQuickFilterBar/CnQuickFilterBar.vue.js';
|
|
76
|
+
import __sfc_main$h from '../CnRowActions/CnRowActions.vue.js';
|
|
77
|
+
import __sfc_main$t from '../CnSavedViewPresentationDialog/CnSavedViewPresentationDialog.vue.js';
|
|
78
|
+
import __sfc_main$s from '../CnSavedViewsControl/CnSavedViewsControl.vue.js';
|
|
79
|
+
import __sfc_main$u from '../CnSavedViewShareDialog/CnSavedViewShareDialog.vue.js';
|
|
80
|
+
import __sfc_main$v from '../CnSaveViewDialog/CnSaveViewDialog.vue.js';
|
|
79
81
|
import { applyAiContext } from './aiContext.js';
|
|
80
82
|
import { buildDefaultActions } from './defaultActions.js';
|
|
81
83
|
import { dispatchAction } from './manifestActionDispatch.js';
|
|
@@ -303,10 +305,11 @@ var script = {
|
|
|
303
305
|
name: 'CnIndexPage',
|
|
304
306
|
|
|
305
307
|
components: {
|
|
306
|
-
|
|
307
|
-
|
|
308
|
+
CnIndexPageWidgets: __sfc_main,
|
|
309
|
+
CnBuildiqEditButton: __sfc_main$1,
|
|
310
|
+
CnFollowToggle: __sfc_main$2,
|
|
308
311
|
NcLoadingIcon,
|
|
309
|
-
CnEmptyContent: __sfc_main$
|
|
312
|
+
CnEmptyContent: __sfc_main$3,
|
|
310
313
|
NcActions,
|
|
311
314
|
NcActionButton,
|
|
312
315
|
NcActionCaption,
|
|
@@ -318,39 +321,40 @@ var script = {
|
|
|
318
321
|
DatabaseSearch,
|
|
319
322
|
Export,
|
|
320
323
|
FilterOutline,
|
|
324
|
+
Tune,
|
|
321
325
|
ViewColumnOutline,
|
|
322
326
|
NcCheckboxRadioSwitch,
|
|
323
|
-
CnPageHeader: __sfc_main$
|
|
324
|
-
CnQuickFilterBar: __sfc_main$
|
|
325
|
-
CnActionsBar: __sfc_main$
|
|
327
|
+
CnPageHeader: __sfc_main$4,
|
|
328
|
+
CnQuickFilterBar: __sfc_main$5,
|
|
329
|
+
CnActionsBar: __sfc_main$6,
|
|
326
330
|
DotsHorizontal,
|
|
327
|
-
CnIcon: __sfc_main$
|
|
328
|
-
CnDataTable: __sfc_main$
|
|
329
|
-
CnCardGrid: __sfc_main$
|
|
330
|
-
CnBoardView: __sfc_main$
|
|
331
|
-
CnDateAxisView: __sfc_main$
|
|
332
|
-
CnObjectCalendar: __sfc_main$
|
|
333
|
-
CnMapWidget: __sfc_main$
|
|
334
|
-
CnObjectList: __sfc_main$
|
|
335
|
-
CnFolderSidebar: __sfc_main$
|
|
336
|
-
CnPagination: __sfc_main$
|
|
337
|
-
CnRowActions: __sfc_main$
|
|
338
|
-
CnMassDeleteDialog: __sfc_main$
|
|
339
|
-
CnMassCopyDialog: __sfc_main$
|
|
340
|
-
CnMassExportDialog: __sfc_main$
|
|
341
|
-
CnMassImportDialog: __sfc_main$
|
|
342
|
-
CnDeleteDialog: __sfc_main$
|
|
343
|
-
CnCopyDialog: __sfc_main$
|
|
344
|
-
CnFormDialog: __sfc_main$
|
|
345
|
-
CnAdvancedFormDialog: __sfc_main$
|
|
346
|
-
CnContextMenu: __sfc_main$
|
|
347
|
-
CnIndexSidebar: __sfc_main$
|
|
348
|
-
CnSavedViewsControl: __sfc_main$
|
|
349
|
-
CnSavedViewPresentationDialog: __sfc_main$
|
|
350
|
-
CnSavedViewShareDialog: __sfc_main$
|
|
351
|
-
CnSaveViewDialog: __sfc_main$
|
|
352
|
-
CnConfirmDialog: __sfc_main$
|
|
353
|
-
CnQuickEditDialog: __sfc_main$
|
|
331
|
+
CnIcon: __sfc_main$7,
|
|
332
|
+
CnDataTable: __sfc_main$8,
|
|
333
|
+
CnCardGrid: __sfc_main$9,
|
|
334
|
+
CnBoardView: __sfc_main$a,
|
|
335
|
+
CnDateAxisView: __sfc_main$b,
|
|
336
|
+
CnObjectCalendar: __sfc_main$c,
|
|
337
|
+
CnMapWidget: __sfc_main$d,
|
|
338
|
+
CnObjectList: __sfc_main$e,
|
|
339
|
+
CnFolderSidebar: __sfc_main$f,
|
|
340
|
+
CnPagination: __sfc_main$g,
|
|
341
|
+
CnRowActions: __sfc_main$h,
|
|
342
|
+
CnMassDeleteDialog: __sfc_main$i,
|
|
343
|
+
CnMassCopyDialog: __sfc_main$j,
|
|
344
|
+
CnMassExportDialog: __sfc_main$k,
|
|
345
|
+
CnMassImportDialog: __sfc_main$l,
|
|
346
|
+
CnDeleteDialog: __sfc_main$m,
|
|
347
|
+
CnCopyDialog: __sfc_main$n,
|
|
348
|
+
CnFormDialog: __sfc_main$o,
|
|
349
|
+
CnAdvancedFormDialog: __sfc_main$p,
|
|
350
|
+
CnContextMenu: __sfc_main$q,
|
|
351
|
+
CnIndexSidebar: __sfc_main$r,
|
|
352
|
+
CnSavedViewsControl: __sfc_main$s,
|
|
353
|
+
CnSavedViewPresentationDialog: __sfc_main$t,
|
|
354
|
+
CnSavedViewShareDialog: __sfc_main$u,
|
|
355
|
+
CnSaveViewDialog: __sfc_main$v,
|
|
356
|
+
CnConfirmDialog: __sfc_main$w,
|
|
357
|
+
CnQuickEditDialog: __sfc_main$x,
|
|
354
358
|
},
|
|
355
359
|
|
|
356
360
|
/**
|
|
@@ -499,7 +503,6 @@ var script = {
|
|
|
499
503
|
default: true,
|
|
500
504
|
},
|
|
501
505
|
|
|
502
|
-
// eslint-disable-next-line vue/no-unused-properties
|
|
503
506
|
/**
|
|
504
507
|
* Draw this page in the `board` look (or `nextcloud`) whatever the app
|
|
505
508
|
* does. Empty follows the `cnLook` CnAppRoot provides. Manifest key
|
|
@@ -647,7 +650,13 @@ var script = {
|
|
|
647
650
|
* `$route.params` just like the `filter` prop. The first tab with
|
|
648
651
|
* `default:true` (else index 0) is active on mount; changing tabs
|
|
649
652
|
* re-fetches at page 1. Omit (or `null`) → no tab strip, behaviour
|
|
650
|
-
* unchanged.
|
|
653
|
+
* unchanged. Under the board look a tab with `activeLabel` ("Pipeline:
|
|
654
|
+
* Sales") adds a removable chip with that text to the Active line and
|
|
655
|
+
* counts on the Filter badge while it is selected; removing the chip
|
|
656
|
+
* goes back to the default tab. A tab can say `empty: "field"` (or a
|
|
657
|
+
* list of fields) for the rows where the field has no value, and
|
|
658
|
+
* `notEmpty` for the rows where it has one: it reads as the filter
|
|
659
|
+
* `{ field: { isnull: true } }`.
|
|
651
660
|
*/
|
|
652
661
|
quickFilters: {
|
|
653
662
|
type: Array,
|
|
@@ -1018,6 +1027,22 @@ var script = {
|
|
|
1018
1027
|
default: null,
|
|
1019
1028
|
},
|
|
1020
1029
|
|
|
1030
|
+
/**
|
|
1031
|
+
* Board look: the segments the view switch draws, e.g. `['table',
|
|
1032
|
+
* 'cards', 'board', 'map']` as the boards do. A listed mode the page
|
|
1033
|
+
* can open is an ordinary segment; one it cannot (no board columns, no
|
|
1034
|
+
* map configured) is drawn disabled, named "<mode>: not available on
|
|
1035
|
+
* this list". Fed from `pages[].config.viewSwitch`. Ignored without the
|
|
1036
|
+
* board look, and absent the switch is as before.
|
|
1037
|
+
*
|
|
1038
|
+
* @type {Array<'table' | 'cards' | 'board' | 'map'>}
|
|
1039
|
+
* @spec openspec/changes/screens-view-switch-parity/specs/view-switch-board-look/spec.md#requirement-the-manifest-can-draw-segments-the-page-cannot-open
|
|
1040
|
+
*/
|
|
1041
|
+
viewSwitch: {
|
|
1042
|
+
type: Array,
|
|
1043
|
+
default: null,
|
|
1044
|
+
},
|
|
1045
|
+
|
|
1021
1046
|
/**
|
|
1022
1047
|
* The board's configuration, mirroring the manifest `config.board`
|
|
1023
1048
|
* block: `{ statusField, cardFields, swimlaneField }`. The board is
|
|
@@ -1704,6 +1729,35 @@ var script = {
|
|
|
1704
1729
|
default: null,
|
|
1705
1730
|
},
|
|
1706
1731
|
|
|
1732
|
+
/**
|
|
1733
|
+
* KPI tiles above the list (manifest `config.statRow`): dashboard
|
|
1734
|
+
* widget definitions `{ id, type, title?, content }`, usually `stat`,
|
|
1735
|
+
* drawn in an auto-fit row (each at least 200px) in the listed order.
|
|
1736
|
+
* Types resolve like dashboard widgets: the app registry, then the
|
|
1737
|
+
* dashboard catalog. Empty by default.
|
|
1738
|
+
*
|
|
1739
|
+
* @spec openspec/changes/screens-index-stat-row/specs/index-page/spec.md#requirement-an-index-page-can-draw-a-stat-row-above-the-list
|
|
1740
|
+
* @type {Array<object>}
|
|
1741
|
+
*/
|
|
1742
|
+
statRow: {
|
|
1743
|
+
type: Array,
|
|
1744
|
+
default: () => [],
|
|
1745
|
+
},
|
|
1746
|
+
|
|
1747
|
+
/**
|
|
1748
|
+
* Cards beside the list (manifest `config.sidePanel`): dashboard
|
|
1749
|
+
* widget definitions `{ id, type, title?, content, headerLink? }`
|
|
1750
|
+
* drawn in a 300px column right of the toolbar and the list. Empty
|
|
1751
|
+
* by default; below 1024px the column moves above the list.
|
|
1752
|
+
*
|
|
1753
|
+
* @spec openspec/changes/screens-index-stat-row/specs/index-page/spec.md#requirement-an-index-page-can-draw-a-side-panel-beside-the-list
|
|
1754
|
+
* @type {Array<object>}
|
|
1755
|
+
*/
|
|
1756
|
+
sidePanel: {
|
|
1757
|
+
type: Array,
|
|
1758
|
+
default: () => [],
|
|
1759
|
+
},
|
|
1760
|
+
|
|
1707
1761
|
/**
|
|
1708
1762
|
* Where a row carries the actions the server says this caller may run
|
|
1709
1763
|
* on it: a dotted path, read off the rows the list already fetched, so
|
|
@@ -1887,6 +1941,8 @@ var script = {
|
|
|
1887
1941
|
* Show a filter menu (funnel button) in the table header, above the
|
|
1888
1942
|
* row-actions column. Its menu lists every enum/badge column's values as
|
|
1889
1943
|
* toggleable facet filters — a compact alternative to the facet sidebar.
|
|
1944
|
+
* Under the board look, on a page with no filter sidebar, it is the
|
|
1945
|
+
* toolbar's labelled Filter button instead (row 1, before the view switch).
|
|
1890
1946
|
* Fed from the manifest as `pages[].config.filterMenu`.
|
|
1891
1947
|
*/
|
|
1892
1948
|
filterMenu: {
|
|
@@ -2383,6 +2439,16 @@ var script = {
|
|
|
2383
2439
|
},
|
|
2384
2440
|
|
|
2385
2441
|
computed: {
|
|
2442
|
+
/**
|
|
2443
|
+
* Whether the page draws cards beside its list (`sidePanel`).
|
|
2444
|
+
*
|
|
2445
|
+
* @spec openspec/changes/screens-index-stat-row/specs/index-page/spec.md#requirement-an-index-page-can-draw-a-side-panel-beside-the-list
|
|
2446
|
+
* @return {boolean}
|
|
2447
|
+
*/
|
|
2448
|
+
hasSidePanel() {
|
|
2449
|
+
return Array.isArray(this.sidePanel) && this.sidePanel.length > 0
|
|
2450
|
+
},
|
|
2451
|
+
|
|
2386
2452
|
/**
|
|
2387
2453
|
* The empty-state copy run through the host translate function
|
|
2388
2454
|
* (the injected `cnTranslate`, identity by default). Only this
|
|
@@ -2755,6 +2821,21 @@ var script = {
|
|
|
2755
2821
|
return Object.keys(this.mapConfig || {}).length > 0
|
|
2756
2822
|
},
|
|
2757
2823
|
|
|
2824
|
+
/**
|
|
2825
|
+
* Board look: the modes `viewSwitch` lists that this page cannot open,
|
|
2826
|
+
* drawn as disabled segments.
|
|
2827
|
+
*
|
|
2828
|
+
* @return {Array<string>} The disabled modes.
|
|
2829
|
+
* @spec openspec/changes/screens-view-switch-parity/specs/view-switch-board-look/spec.md#requirement-the-manifest-can-draw-segments-the-page-cannot-open
|
|
2830
|
+
*/
|
|
2831
|
+
viewSwitchDisabledModes() {
|
|
2832
|
+
if (!this.isBoardLook || !Array.isArray(this.viewSwitch)) {
|
|
2833
|
+
return []
|
|
2834
|
+
}
|
|
2835
|
+
const offered = [...this.effectiveToggleModes, ...(this.showMapSegment ? ['map'] : [])];
|
|
2836
|
+
return this.viewSwitch.filter((mode) => ['table', 'cards', 'board', 'map'].includes(mode) && !offered.includes(mode))
|
|
2837
|
+
},
|
|
2838
|
+
|
|
2758
2839
|
/**
|
|
2759
2840
|
* The base view-toggle segments (cards/table/list) passed to CnActionsBar.
|
|
2760
2841
|
* Beta's explicit `viewModes` whitelist wins when set; otherwise the
|
|
@@ -4324,11 +4405,11 @@ var script = {
|
|
|
4324
4405
|
return []
|
|
4325
4406
|
}
|
|
4326
4407
|
const props = this.effectiveSchema?.properties || {};
|
|
4327
|
-
const chips = [];
|
|
4408
|
+
const chips = [...this.quickFilterActiveChips];
|
|
4328
4409
|
for (const [key, raw] of Object.entries(this.effectiveActiveFilters || {})) {
|
|
4329
4410
|
const values = (Array.isArray(raw) ? raw : [raw])
|
|
4330
4411
|
.filter((value) => value !== null && value !== undefined && value !== '')
|
|
4331
|
-
.map((value) =>
|
|
4412
|
+
.map((value) => this.activeFilterValueLabel(key, value));
|
|
4332
4413
|
if (values.length === 0) {
|
|
4333
4414
|
continue
|
|
4334
4415
|
}
|
|
@@ -4338,6 +4419,87 @@ var script = {
|
|
|
4338
4419
|
return chips
|
|
4339
4420
|
},
|
|
4340
4421
|
|
|
4422
|
+
/**
|
|
4423
|
+
* The Active line's chips for the selected quick filters: one per
|
|
4424
|
+
* selected tab that declares an `activeLabel` ("Pipeline: Sales"), run
|
|
4425
|
+
* through the app's translate. A tab without one (an "All" tab) adds no
|
|
4426
|
+
* chip. The chip carries the tab's index so removing it can deselect it.
|
|
4427
|
+
*
|
|
4428
|
+
* @spec openspec/changes/screens-active-filter-line-parity/specs/active-filter-line-board-look/spec.md#requirement-a-quick-filter-with-an-active-label-joins-the-active-line
|
|
4429
|
+
* @return {Array<{key: string, label: string, quickFilterIndex: number}>}
|
|
4430
|
+
*/
|
|
4431
|
+
quickFilterActiveChips() {
|
|
4432
|
+
const tabs = this.tabStripEntries || [];
|
|
4433
|
+
if (tabs.length === 0) {
|
|
4434
|
+
return []
|
|
4435
|
+
}
|
|
4436
|
+
const indices = this.quickFilterMultiple
|
|
4437
|
+
? (this.selectedQuickFilterIndices || [])
|
|
4438
|
+
: [this.activeQuickFilterIndex];
|
|
4439
|
+
return indices
|
|
4440
|
+
.filter((index) => typeof index === 'number' && tabs[index] && typeof tabs[index].activeLabel === 'string' && tabs[index].activeLabel !== '')
|
|
4441
|
+
.map((index) => ({ key: `quick-filter:${index}`, label: this.cnTranslate(tabs[index].activeLabel), quickFilterIndex: index }))
|
|
4442
|
+
},
|
|
4443
|
+
|
|
4444
|
+
/**
|
|
4445
|
+
* Filter keys over a reference property that the Active line must name,
|
|
4446
|
+
* and that no reference column resolves already: one spec each, with the
|
|
4447
|
+
* referenced register and schema off the page schema's `$ref`.
|
|
4448
|
+
*
|
|
4449
|
+
* @spec openspec/changes/screens-active-filter-line-parity/specs/active-filter-line-board-look/spec.md#requirement-an-active-chip-names-the-value-not-its-id
|
|
4450
|
+
* @return {Array<{key: string, labelField: string, register: string, schema: string}>}
|
|
4451
|
+
*/
|
|
4452
|
+
activeFilterRefSpecs() {
|
|
4453
|
+
if (!this.isBoardLook || !this.effectiveSchema) {
|
|
4454
|
+
return []
|
|
4455
|
+
}
|
|
4456
|
+
const keys = Object.keys(this.effectiveActiveFilters || {});
|
|
4457
|
+
if (keys.length === 0) {
|
|
4458
|
+
return []
|
|
4459
|
+
}
|
|
4460
|
+
const covered = new Set(this.refLabelSpecs.map((spec) => spec.key));
|
|
4461
|
+
const fields = fieldsFromSchema(this.effectiveSchema, { includeReadOnly: true });
|
|
4462
|
+
const specs = [];
|
|
4463
|
+
for (const key of keys) {
|
|
4464
|
+
if (covered.has(key)) {
|
|
4465
|
+
continue
|
|
4466
|
+
}
|
|
4467
|
+
const field = fields.find((f) => f.key === key);
|
|
4468
|
+
const ref = field && field.reference;
|
|
4469
|
+
if (!ref || ref.schema === undefined || ref.schema === null) {
|
|
4470
|
+
continue
|
|
4471
|
+
}
|
|
4472
|
+
specs.push({
|
|
4473
|
+
key,
|
|
4474
|
+
labelField: '',
|
|
4475
|
+
register: ref.register || (typeof this.register === 'string' ? this.register : ''),
|
|
4476
|
+
schema: String(ref.schema),
|
|
4477
|
+
});
|
|
4478
|
+
}
|
|
4479
|
+
return specs
|
|
4480
|
+
},
|
|
4481
|
+
|
|
4482
|
+
/**
|
|
4483
|
+
* The ids each active reference filter holds, per filter key, for the
|
|
4484
|
+
* label lookup of the Active line.
|
|
4485
|
+
*
|
|
4486
|
+
* @return {{[key: string]: string[]}} Distinct ids per filter key.
|
|
4487
|
+
*/
|
|
4488
|
+
activeFilterRefIds() {
|
|
4489
|
+
const out = {};
|
|
4490
|
+
const keys = new Set([...this.refLabelSpecs, ...this.activeFilterRefSpecs].map((spec) => spec.key));
|
|
4491
|
+
for (const [key, raw] of Object.entries(this.effectiveActiveFilters || {})) {
|
|
4492
|
+
if (!keys.has(key)) {
|
|
4493
|
+
continue
|
|
4494
|
+
}
|
|
4495
|
+
out[key] = (Array.isArray(raw) ? raw : [raw])
|
|
4496
|
+
.filter((id) => id !== null && id !== undefined && id !== '' && typeof id !== 'object')
|
|
4497
|
+
.map((id) => String(id))
|
|
4498
|
+
.sort();
|
|
4499
|
+
}
|
|
4500
|
+
return out
|
|
4501
|
+
},
|
|
4502
|
+
|
|
4341
4503
|
/**
|
|
4342
4504
|
* The plural the board bulk band names: "With the selected cases".
|
|
4343
4505
|
* The schema's `titlePlural` (or `plural`), else the lower-cased
|
|
@@ -4495,6 +4657,27 @@ var script = {
|
|
|
4495
4657
|
return !!this.resolvedSidebar.enabled && this.resolvedSidebar.show !== false
|
|
4496
4658
|
},
|
|
4497
4659
|
|
|
4660
|
+
/**
|
|
4661
|
+
* Whether the board toolbar draws the Filter button as a menu: the
|
|
4662
|
+
* board look, `filterMenu` on, something to filter by, and no filter
|
|
4663
|
+
* sidebar (whose toggle is that button otherwise).
|
|
4664
|
+
*
|
|
4665
|
+
* @return {boolean}
|
|
4666
|
+
*/
|
|
4667
|
+
boardFilterMenu() {
|
|
4668
|
+
return this.isBoardLook && this.filterMenu && !this.hasSidebar && this.filterableFields.length > 0
|
|
4669
|
+
},
|
|
4670
|
+
|
|
4671
|
+
/**
|
|
4672
|
+
* Whether the funnel menu sits in the table header: `filterMenu` with
|
|
4673
|
+
* values to offer, unless the toolbar's Filter button is that menu.
|
|
4674
|
+
*
|
|
4675
|
+
* @return {boolean}
|
|
4676
|
+
*/
|
|
4677
|
+
showHeaderFilterMenu() {
|
|
4678
|
+
return this.filterMenu && this.filterableFields.length > 0 && !this.boardFilterMenu
|
|
4679
|
+
},
|
|
4680
|
+
|
|
4498
4681
|
/** Search props forwarded to the embedded CnIndexSidebar (defaults applied per CnIndexSidebar). */
|
|
4499
4682
|
sidebarSearchProps() {
|
|
4500
4683
|
return (this.sidebar && this.sidebar.search) || {}
|
|
@@ -4618,6 +4801,14 @@ var script = {
|
|
|
4618
4801
|
},
|
|
4619
4802
|
},
|
|
4620
4803
|
|
|
4804
|
+
// The Active line names a referenced value, not its id.
|
|
4805
|
+
activeFilterRefIds: {
|
|
4806
|
+
deep: true,
|
|
4807
|
+
handler() {
|
|
4808
|
+
this.loadRefLabels();
|
|
4809
|
+
},
|
|
4810
|
+
},
|
|
4811
|
+
|
|
4621
4812
|
countRequestKey: {
|
|
4622
4813
|
immediate: true,
|
|
4623
4814
|
/** @spec openspec/changes/workplace-dashboard-primitives/specs/workplace-dashboard-primitives/spec.md#requirement-counts-on-filters-and-views */
|
|
@@ -4886,7 +5077,7 @@ var script = {
|
|
|
4886
5077
|
* @spec openspec/changes/index-ref-column-labels/tasks.md#task-2
|
|
4887
5078
|
*/
|
|
4888
5079
|
async loadRefLabels() {
|
|
4889
|
-
const specs = this.refLabelSpecs;
|
|
5080
|
+
const specs = [...this.refLabelSpecs, ...this.activeFilterRefSpecs];
|
|
4890
5081
|
if (specs.length === 0) {
|
|
4891
5082
|
return
|
|
4892
5083
|
}
|
|
@@ -4901,7 +5092,8 @@ var script = {
|
|
|
4901
5092
|
}
|
|
4902
5093
|
await Promise.all(specs.map(async (spec) => {
|
|
4903
5094
|
const known = this.refLabels[spec.key] || {};
|
|
4904
|
-
const
|
|
5095
|
+
const wanted = new Set([...(this.refLabelIds[spec.key] || []), ...(this.activeFilterRefIds[spec.key] || [])]);
|
|
5096
|
+
const ids = [...wanted].filter((id) => !Object.hasOwn(known, id));
|
|
4905
5097
|
if (ids.length === 0) {
|
|
4906
5098
|
return
|
|
4907
5099
|
}
|
|
@@ -5585,6 +5777,11 @@ var script = {
|
|
|
5585
5777
|
* @return {void}
|
|
5586
5778
|
*/
|
|
5587
5779
|
onClearFilters() {
|
|
5780
|
+
// "Clear all" on the Active line also undoes the quick filters it
|
|
5781
|
+
// listed (a tab without an `activeLabel` is not a filter there).
|
|
5782
|
+
for (const chip of this.quickFilterActiveChips) {
|
|
5783
|
+
this.deselectQuickFilterChip(chip.quickFilterIndex);
|
|
5784
|
+
}
|
|
5588
5785
|
// Clearing the view brings the person's own columns back.
|
|
5589
5786
|
this.appliedViewColumns = null;
|
|
5590
5787
|
this.appliedSavedViewId = '';
|
|
@@ -5675,11 +5872,74 @@ var script = {
|
|
|
5675
5872
|
* @spec openspec/changes/screens-index-list-parity/specs/index-list-board-look/spec.md#requirement-the-toolbar-sits-on-the-ground-in-two-rows
|
|
5676
5873
|
*/
|
|
5677
5874
|
onRemoveActiveFilter(chip) {
|
|
5875
|
+
if (chip && typeof chip.quickFilterIndex === 'number') {
|
|
5876
|
+
this.deselectQuickFilterChip(chip.quickFilterIndex);
|
|
5877
|
+
return
|
|
5878
|
+
}
|
|
5678
5879
|
if (chip && typeof chip.key === 'string') {
|
|
5679
5880
|
this.onFilterEvent({ key: chip.key, values: [] });
|
|
5680
5881
|
}
|
|
5681
5882
|
},
|
|
5682
5883
|
|
|
5884
|
+
/**
|
|
5885
|
+
* Undo a quick filter from the Active line. With several tabs selectable
|
|
5886
|
+
* the tab leaves the selection; with one, the page goes back to its
|
|
5887
|
+
* default tab when that tab names no active filter itself, and else to no
|
|
5888
|
+
* tab at all, so the chip does not come straight back.
|
|
5889
|
+
*
|
|
5890
|
+
* @param {number} index The tab index the chip stands for.
|
|
5891
|
+
* @return {void}
|
|
5892
|
+
* @spec openspec/changes/screens-active-filter-line-parity/specs/active-filter-line-board-look/spec.md#requirement-a-quick-filter-with-an-active-label-joins-the-active-line
|
|
5893
|
+
*/
|
|
5894
|
+
deselectQuickFilterChip(index) {
|
|
5895
|
+
if (this.quickFilterMultiple) {
|
|
5896
|
+
this.onQuickFilterMultiChange((this.selectedQuickFilterIndices || []).filter((i) => i !== index));
|
|
5897
|
+
return
|
|
5898
|
+
}
|
|
5899
|
+
if (this.activeQuickFilterIndex !== index) {
|
|
5900
|
+
return
|
|
5901
|
+
}
|
|
5902
|
+
const tabs = this.tabStripEntries || [];
|
|
5903
|
+
let fallback = tabs.findIndex((tab) => tab && tab.default === true);
|
|
5904
|
+
if (fallback < 0 && tabs.length > 0) {
|
|
5905
|
+
fallback = 0;
|
|
5906
|
+
}
|
|
5907
|
+
const fallbackNamed = fallback >= 0 && typeof tabs[fallback].activeLabel === 'string' && tabs[fallback].activeLabel !== '';
|
|
5908
|
+
this.onQuickFilterChange(fallback >= 0 && fallback !== index && !fallbackNamed ? fallback : null);
|
|
5909
|
+
},
|
|
5910
|
+
|
|
5911
|
+
/**
|
|
5912
|
+
* The text an Active chip shows for one filter value: the referenced
|
|
5913
|
+
* object's label, the facet bucket's label, the schema's `oneOf` title,
|
|
5914
|
+
* else the value itself.
|
|
5915
|
+
*
|
|
5916
|
+
* @param {string} key The filter key.
|
|
5917
|
+
* @param {unknown} value One value of that filter.
|
|
5918
|
+
* @return {string} The label.
|
|
5919
|
+
* @spec openspec/changes/screens-active-filter-line-parity/specs/active-filter-line-board-look/spec.md#requirement-an-active-chip-names-the-value-not-its-id
|
|
5920
|
+
*/
|
|
5921
|
+
activeFilterValueLabel(key, value) {
|
|
5922
|
+
const id = String(value);
|
|
5923
|
+
const refs = this.refLabels[key];
|
|
5924
|
+
if (refs && typeof refs[id] === 'string' && refs[id] !== '') {
|
|
5925
|
+
return refs[id]
|
|
5926
|
+
}
|
|
5927
|
+
const facet = this.effectiveFacetData && this.effectiveFacetData[key];
|
|
5928
|
+
const bucket = facet && Array.isArray(facet.values)
|
|
5929
|
+
? facet.values.find((fv) => fv && typeof fv === 'object' && String(fv.value) === id)
|
|
5930
|
+
: null;
|
|
5931
|
+
if (bucket && typeof bucket.label === 'string' && bucket.label !== '') {
|
|
5932
|
+
return this.cnTranslate(bucket.label)
|
|
5933
|
+
}
|
|
5934
|
+
const prop = this.effectiveSchema?.properties?.[key];
|
|
5935
|
+
const options = prop && Array.isArray(prop.oneOf) ? prop.oneOf : [];
|
|
5936
|
+
const option = options.find((o) => o && String(o.const) === id && typeof o.title === 'string');
|
|
5937
|
+
if (option) {
|
|
5938
|
+
return this.cnTranslate(option.title)
|
|
5939
|
+
}
|
|
5940
|
+
return id
|
|
5941
|
+
},
|
|
5942
|
+
|
|
5683
5943
|
/**
|
|
5684
5944
|
* A header filter was applied or cleared. One column can own several
|
|
5685
5945
|
* query parameters (a range is `key[gte]` and `key[lte]`), so they are
|
|
@@ -6374,7 +6634,7 @@ var script = {
|
|
|
6374
6634
|
this.cnIndexSidebarConfig.value = {
|
|
6375
6635
|
// markRaw: the holder is CnAppRoot `data()`, so it is deeply
|
|
6376
6636
|
// reactive and would proxy the component definition itself.
|
|
6377
|
-
component: markRaw(__sfc_main$
|
|
6637
|
+
component: markRaw(__sfc_main$r),
|
|
6378
6638
|
props: this.hoistedSidebarProps,
|
|
6379
6639
|
listeners: {
|
|
6380
6640
|
'update:open': (val) => {
|