@conduction/nextcloud-vue 2.104.0 → 2.106.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/CnAdminSettingsShell/CnAdminSettingsShell.vue.js +1 -1
- package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue2.js.map +1 -1
- package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue3.js +1 -1
- package/dist/esm/components/CnAdminSettingsShell/CnAdminSettingsShell.vue3.js.map +1 -1
- package/dist/esm/components/CnCardGrid/CnCardGrid.vue.js +1 -1
- package/dist/esm/components/CnCardGrid/CnCardGrid.vue2.js +18 -0
- package/dist/esm/components/CnCardGrid/CnCardGrid.vue2.js.map +1 -1
- package/dist/esm/components/CnCardGrid/CnCardGrid.vue3.js +3 -1
- package/dist/esm/components/CnCardGrid/CnCardGrid.vue3.js.map +1 -1
- package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue.js +1 -1
- package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue2.js +18 -0
- package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue2.js.map +1 -1
- package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue3.js +1 -1
- package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue3.js.map +1 -1
- package/dist/esm/components/CnChartWidget/CnChartWidget.vue.js +1 -1
- package/dist/esm/components/CnChartWidget/CnChartWidget.vue2.js +93 -1
- 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/CnDashboardPage/CnDashboardPage.vue.js +1 -1
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js +6 -3
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js.map +1 -1
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js +3 -3
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js.map +1 -1
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js +112 -5
- 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/CnDetailWidgetHeaderItems.vue.js +9 -0
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHeaderItems.vue.js.map +1 -0
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHeaderItems.vue2.js +24 -0
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHeaderItems.vue2.js.map +1 -0
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHeaderItems.vue3.js +49 -0
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHeaderItems.vue3.js.map +1 -0
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue.js +1 -1
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js +36 -18
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js.map +1 -1
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js +17 -38
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js.map +1 -1
- package/dist/esm/components/CnFactsWidget/CnFactsWidget.vue.js +1 -1
- 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/CnFeaturesAndRoadmapView/CnFeaturesAndRoadmapView.vue.js +1 -1
- package/dist/esm/components/CnFeaturesAndRoadmapView/CnFeaturesAndRoadmapView.vue2.js +1 -1
- package/dist/esm/components/CnFeaturesAndRoadmapView/CnFeaturesAndRoadmapView.vue2.js.map +1 -1
- package/dist/esm/components/CnFeaturesAndRoadmapView/CnFeaturesAndRoadmapView.vue3.js.map +1 -1
- package/dist/esm/components/CnFeaturesBoard/CnFeaturesBoard.vue.js +1 -1
- package/dist/esm/components/CnFeaturesBoard/CnFeaturesBoard.vue2.js +2 -0
- package/dist/esm/components/CnFeaturesBoard/CnFeaturesBoard.vue2.js.map +1 -1
- package/dist/esm/components/CnFeaturesBoard/CnFeaturesBoard.vue3.js +32 -29
- package/dist/esm/components/CnFeaturesBoard/CnFeaturesBoard.vue3.js.map +1 -1
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue.js +1 -1
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js +53 -2
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js.map +1 -1
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js +119 -111
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js.map +1 -1
- package/dist/esm/components/CnFlowRunsWidget/CnFlowRunsWidget.vue.js +1 -1
- package/dist/esm/components/CnFlowRunsWidget/CnFlowRunsWidget.vue2.js +62 -1
- package/dist/esm/components/CnFlowRunsWidget/CnFlowRunsWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnFlowRunsWidget/CnFlowRunsWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnFlowsPage/CnFlowBoard.vue.js +1 -1
- package/dist/esm/components/CnFlowsPage/CnFlowBoard.vue2.js +73 -4
- package/dist/esm/components/CnFlowsPage/CnFlowBoard.vue2.js.map +1 -1
- package/dist/esm/components/CnFlowsPage/CnFlowBoard.vue3.js +74 -27
- package/dist/esm/components/CnFlowsPage/CnFlowBoard.vue3.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +208 -46
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js +121 -98
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue.js +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue2.js +24 -0
- package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue2.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue3.js +20 -4
- package/dist/esm/components/CnIndexPage/CnIndexPageWidgets.vue3.js.map +1 -1
- package/dist/esm/components/CnIndexPage/useSelfFetchList.js +25 -6
- package/dist/esm/components/CnIndexPage/useSelfFetchList.js.map +1 -1
- package/dist/esm/components/CnIndexSidebar/CnIndexSidebar.vue2.js +112 -1
- package/dist/esm/components/CnIndexSidebar/CnIndexSidebar.vue2.js.map +1 -1
- package/dist/esm/components/CnIndexSidebar/CnIndexSidebar.vue3.js +100 -44
- package/dist/esm/components/CnIndexSidebar/CnIndexSidebar.vue3.js.map +1 -1
- package/dist/esm/components/CnNcWidgetWidget/CnNcWidgetWidget.vue.js +1 -1
- package/dist/esm/components/CnNcWidgetWidget/CnNcWidgetWidget.vue2.js +67 -4
- package/dist/esm/components/CnNcWidgetWidget/CnNcWidgetWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnNcWidgetWidget/CnNcWidgetWidget.vue3.js +1 -1
- package/dist/esm/components/CnNcWidgetWidget/CnNcWidgetWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnNoticeWidget/CnNoticeWidget.vue.js +9 -0
- package/dist/esm/components/CnNoticeWidget/CnNoticeWidget.vue.js.map +1 -0
- package/dist/esm/components/CnNoticeWidget/CnNoticeWidget.vue2.js +88 -0
- package/dist/esm/components/CnNoticeWidget/CnNoticeWidget.vue2.js.map +1 -0
- package/dist/esm/components/CnNoticeWidget/CnNoticeWidget.vue3.js +39 -0
- package/dist/esm/components/CnNoticeWidget/CnNoticeWidget.vue3.js.map +1 -0
- package/dist/esm/components/CnObjectCard/CnObjectCard.vue.js +1 -1
- package/dist/esm/components/CnObjectCard/CnObjectCard.vue2.js +295 -12
- package/dist/esm/components/CnObjectCard/CnObjectCard.vue2.js.map +1 -1
- package/dist/esm/components/CnObjectCard/CnObjectCard.vue3.js +267 -144
- package/dist/esm/components/CnObjectCard/CnObjectCard.vue3.js.map +1 -1
- package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue.js +1 -1
- package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue2.js +4 -0
- package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue2.js.map +1 -1
- package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue3.js +3 -1
- package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue3.js.map +1 -1
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue.js +1 -1
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue2.js +93 -1
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue3.js +322 -246
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnRelatedObjectsWidget/CnRelatedObjectsWidget.vue.js +1 -1
- package/dist/esm/components/CnRelatedObjectsWidget/CnRelatedObjectsWidget.vue2.js +122 -7
- package/dist/esm/components/CnRelatedObjectsWidget/CnRelatedObjectsWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnRelatedObjectsWidget/CnRelatedObjectsWidget.vue3.js +189 -93
- package/dist/esm/components/CnRelatedObjectsWidget/CnRelatedObjectsWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnSettingsField/CnSettingsField.vue.js +1 -1
- package/dist/esm/components/CnSettingsField/CnSettingsField.vue2.js.map +1 -1
- package/dist/esm/components/CnSettingsField/CnSettingsField.vue3.js +3 -3
- package/dist/esm/components/CnSettingsField/CnSettingsField.vue3.js.map +1 -1
- package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue.js +1 -1
- package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue2.js.map +1 -1
- package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue3.js +16 -4
- package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue3.js.map +1 -1
- package/dist/esm/components/CnTabs/CnTabs.vue.js +1 -1
- package/dist/esm/components/CnTabs/CnTabs.vue2.js.map +1 -1
- package/dist/esm/components/CnTabs/CnTabs.vue3.js.map +1 -1
- package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue.js +1 -1
- package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue2.js +42 -0
- package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue3.js +38 -19
- package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnTeamWorkloadWidget/CnTeamWorkloadWidget.vue.js +9 -0
- package/dist/esm/components/CnTeamWorkloadWidget/CnTeamWorkloadWidget.vue.js.map +1 -0
- package/dist/esm/components/CnTeamWorkloadWidget/CnTeamWorkloadWidget.vue2.js +258 -0
- package/dist/esm/components/CnTeamWorkloadWidget/CnTeamWorkloadWidget.vue2.js.map +1 -0
- package/dist/esm/components/CnTeamWorkloadWidget/CnTeamWorkloadWidget.vue3.js +69 -0
- package/dist/esm/components/CnTeamWorkloadWidget/CnTeamWorkloadWidget.vue3.js.map +1 -0
- package/dist/esm/components/CnVersionInfoCard/CnVersionInfoCard.vue.js +1 -1
- package/dist/esm/components/CnVersionInfoCard/CnVersionInfoCard.vue2.js +11 -0
- package/dist/esm/components/CnVersionInfoCard/CnVersionInfoCard.vue2.js.map +1 -1
- package/dist/esm/components/CnVersionInfoCard/CnVersionInfoCard.vue3.js +4 -4
- package/dist/esm/components/CnVersionInfoCard/CnVersionInfoCard.vue3.js.map +1 -1
- package/dist/esm/components/CnWidgetGrid/builtInWidgets.js +16 -14
- package/dist/esm/components/CnWidgetGrid/builtInWidgets.js.map +1 -1
- package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js +12 -0
- package/dist/esm/components/CnWidgetGrid/registerDashboardWidgets.js.map +1 -1
- package/dist/esm/index.js +2 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/l10n/en.json.js +24 -1
- package/dist/esm/l10n/en.json.js.map +1 -1
- package/dist/esm/l10n/nl.json.js +24 -1
- package/dist/esm/l10n/nl.json.js.map +1 -1
- package/dist/esm/library-style.js +1 -1
- package/dist/esm/nextcloud-vue.css +1369 -748
- package/dist/esm/utils/dueText.js +18 -3
- package/dist/esm/utils/dueText.js.map +1 -1
- package/dist/esm/utils/libraryWidgetKeys.js +2 -0
- package/dist/esm/utils/libraryWidgetKeys.js.map +1 -1
- package/dist/esm/utils/nextcloudApps.js +45 -0
- package/dist/esm/utils/nextcloudApps.js.map +1 -0
- package/dist/esm/utils/scopeListLayout.js +9 -2
- package/dist/esm/utils/scopeListLayout.js.map +1 -1
- package/dist/esm/utils/sortOrder.js +11 -1
- package/dist/esm/utils/sortOrder.js.map +1 -1
- 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 +12 -4
- package/dist/esm/utils/visibleWhen.js.map +1 -1
- package/dist/nextcloud-vue.cjs.js +8965 -6497
- package/dist/nextcloud-vue.cjs.js.map +2 -2
- package/dist/nextcloud-vue.css +1369 -748
- package/l10n/en.json +24 -1
- package/l10n/nl.json +24 -1
- package/package.json +1 -1
- package/src/components/CnAdminSettingsShell/CnAdminSettingsShell.vue +1 -1
- package/src/components/CnCardGrid/CnCardGrid.md +2 -0
- package/src/components/CnCardGrid/CnCardGrid.vue +20 -0
- package/src/components/CnCellRenderer/CnCellRenderer.vue +19 -1
- package/src/components/CnChartWidget/CnChartWidget.md +2 -0
- package/src/components/CnChartWidget/CnChartWidget.vue +93 -1
- package/src/components/CnDashboardPage/CnDashboardPage.vue +9 -6
- package/src/components/CnDetailPage/CnDetailPage.md +3 -2
- package/src/components/CnDetailPage/CnDetailPage.vue +112 -5
- package/src/components/CnDetailWidgetHost/CnDetailWidgetHeaderItems.vue +60 -0
- package/src/components/CnDetailWidgetHost/CnDetailWidgetHost.vue +36 -29
- package/src/components/CnFactsWidget/CnFactsWidget.vue +4 -0
- package/src/components/CnFeaturesAndRoadmapView/CnFeaturesAndRoadmapView.vue +1 -1
- package/src/components/CnFeaturesBoard/CnFeaturesBoard.vue +4 -1
- package/src/components/CnFilesBrowser/CnFilesBrowser.vue +70 -4
- package/src/components/CnFlowRunsWidget/CnFlowRunsWidget.vue +62 -1
- package/src/components/CnFlowsPage/CnFlowBoard.vue +132 -8
- package/src/components/CnIndexPage/CnIndexPage.md +8 -5
- package/src/components/CnIndexPage/CnIndexPage.vue +236 -54
- package/src/components/CnIndexPage/CnIndexPageWidgets.vue +36 -1
- package/src/components/CnIndexPage/useSelfFetchList.js +25 -6
- package/src/components/CnIndexSidebar/CnIndexSidebar.md +2 -0
- package/src/components/CnIndexSidebar/CnIndexSidebar.vue +148 -1
- package/src/components/CnNcWidgetWidget/CnNcWidgetWidget.vue +68 -5
- package/src/components/CnNoticeWidget/CnNoticeWidget.vue +153 -0
- package/src/components/CnNoticeWidget/index.js +12 -0
- package/src/components/CnObjectCard/CnObjectCard.md +1 -0
- package/src/components/CnObjectCard/CnObjectCard.vue +354 -13
- package/src/components/CnObjectSidebar/CnFilesTab.vue +6 -0
- package/src/components/CnRecordListWidget/CnRecordListWidget.vue +190 -4
- package/src/components/CnRelatedObjectsWidget/CnRelatedObjectsWidget.vue +209 -9
- package/src/components/CnSettingsField/CnSettingsField.vue +4 -1
- package/src/components/CnSetupWizard/CnSetupWizard.vue +9 -1
- package/src/components/CnTabs/CnTabs.vue +11 -0
- package/src/components/CnTabsWidget/CnTabsWidget.vue +91 -18
- package/src/components/CnTeamWorkloadWidget/CnTeamWorkloadWidget.md +11 -0
- package/src/components/CnTeamWorkloadWidget/CnTeamWorkloadWidget.vue +382 -0
- package/src/components/CnTeamWorkloadWidget/index.js +14 -0
- package/src/components/CnVersionInfoCard/CnVersionInfoCard.vue +15 -4
- package/src/components/CnWidgetGrid/builtInWidgets.js +2 -0
- package/src/components/CnWidgetGrid/registerDashboardWidgets.js +12 -0
- package/src/components/index.js +2 -0
- package/src/css/dialog.css +20 -2
- package/src/css/index-page.css +14 -2
- package/src/css/look-board-detail.css +125 -8
- package/src/css/look-board-index.css +100 -4
- package/src/css/look-board.css +122 -14
- package/src/index.js +2 -1
- package/src/schemas/app-manifest-v2.schema.json +110 -8
- package/src/utils/dueText.js +18 -3
- package/src/utils/libraryWidgetKeys.js +2 -0
- package/src/utils/nextcloudApps.js +50 -0
- package/src/utils/scopeListLayout.js +9 -2
- package/src/utils/sortOrder.js +10 -0
- package/src/utils/validateManifestV2.compiled.js +3 -3
- package/src/utils/visibleWhen.js +12 -4
|
@@ -320,6 +320,12 @@ var script = {
|
|
|
320
320
|
},
|
|
321
321
|
},
|
|
322
322
|
|
|
323
|
+
// The open body tab, reported by a `tabs` widget, so a side entry
|
|
324
|
+
// with `tabs` shows only beside those tabs.
|
|
325
|
+
cnDetailReportTab: (id) => {
|
|
326
|
+
this.activeBodyTab = typeof id === 'string' ? id : '';
|
|
327
|
+
},
|
|
328
|
+
|
|
323
329
|
// The records `visibilityContext` names, keyed `@context.<name>`, so a tab's
|
|
324
330
|
// `visibleWhen` reads the case type as a grid widget's does. Null
|
|
325
331
|
// while they are on their way.
|
|
@@ -1242,8 +1248,12 @@ var script = {
|
|
|
1242
1248
|
|
|
1243
1249
|
/**
|
|
1244
1250
|
* The "what now" card (manifest `config.nextStep`):
|
|
1245
|
-
* `{ field?, stages: { <stage>: { title?, checklist, after? } } }`.
|
|
1251
|
+
* `{ field?, stagesFrom?, stages: { <stage>: { title?, checklist, after? } } }`.
|
|
1246
1252
|
* Each checklist item is `{ label, doneField?, doneWhen?, hint? }`.
|
|
1253
|
+
* `stagesFrom` is a field path read like a `visibleWhen` field
|
|
1254
|
+
* (`@context.caseType.nextStep`): when it holds a stages map (or an
|
|
1255
|
+
* object with `stages`), that map replaces `stages` for this record, so
|
|
1256
|
+
* a case type keeps its own stage texts. Otherwise `stages` stays.
|
|
1247
1257
|
* Rendered above the body for a stage that declares a checklist, with
|
|
1248
1258
|
* the primary button inside it. See `CnNextStepCard`.
|
|
1249
1259
|
*
|
|
@@ -1347,13 +1357,31 @@ var script = {
|
|
|
1347
1357
|
default: null,
|
|
1348
1358
|
},
|
|
1349
1359
|
|
|
1360
|
+
/**
|
|
1361
|
+
* A field path whose value picks the tabs of the page's `tabs` widgets
|
|
1362
|
+
* and their order for this record (manifest `config.tabsFrom`), read
|
|
1363
|
+
* like a `visibleWhen` field: `@context.caseType.tabs` reads the list a
|
|
1364
|
+
* case type keeps. A non-empty list of tab ids (a tab's `id`, else its
|
|
1365
|
+
* `widgetId`, or the string entry itself) keeps those tabs in that
|
|
1366
|
+
* order and leaves the rest out. Any other value keeps the declared
|
|
1367
|
+
* tabs. Edit mode shows them all.
|
|
1368
|
+
*
|
|
1369
|
+
* @spec openspec/changes/detail-tabs-from/specs/detail-page/spec.md#requirement-a-record-can-pick-its-tabs-and-their-order
|
|
1370
|
+
*/
|
|
1371
|
+
tabsFrom: {
|
|
1372
|
+
type: String,
|
|
1373
|
+
default: '',
|
|
1374
|
+
},
|
|
1375
|
+
|
|
1350
1376
|
/**
|
|
1351
1377
|
* A column of cards beside the body (manifest `config.sideColumn`),
|
|
1352
1378
|
* for the record's facts: deadline, requester, handler, links. Each
|
|
1353
1379
|
* entry is a widget definition (`{ id?, type, title?, content? }`) or
|
|
1354
1380
|
* the id of a widget declared in `widgets`. The column stacks under
|
|
1355
1381
|
* the body on a narrow page. Empty (the default) leaves the layout as
|
|
1356
|
-
* it is.
|
|
1382
|
+
* it is. An entry with `tabs` (tab ids of the body's `tabs` widget)
|
|
1383
|
+
* shows only while one of those tabs is open (DqZaaktypeVelden: the
|
|
1384
|
+
* option list beside Velden).
|
|
1357
1385
|
*
|
|
1358
1386
|
* @type {Array<string|object>}
|
|
1359
1387
|
*/
|
|
@@ -1666,6 +1694,8 @@ var script = {
|
|
|
1666
1694
|
|
|
1667
1695
|
data() {
|
|
1668
1696
|
return {
|
|
1697
|
+
/** The id of the open body tab a `tabs` widget reported, '' before one did. */
|
|
1698
|
+
activeBodyTab: '',
|
|
1669
1699
|
/**
|
|
1670
1700
|
* The records `visibilityContext` names, keyed `@context.<name>`: the row,
|
|
1671
1701
|
* `null` when it could not be read, absent while it is on its way.
|
|
@@ -2166,6 +2196,25 @@ var script = {
|
|
|
2166
2196
|
return !this.objectNotFound && !this.showLoadingState && !this.error && !this.empty
|
|
2167
2197
|
},
|
|
2168
2198
|
|
|
2199
|
+
/**
|
|
2200
|
+
* `nextStep` with its stages read from the record when `stagesFrom`
|
|
2201
|
+
* names a stages map there (a case type's own texts), else as declared.
|
|
2202
|
+
*
|
|
2203
|
+
* @spec openspec/changes/detail-next-step-from-record/specs/detail-page/spec.md#requirement-the-next-step-stages-can-come-from-the-record
|
|
2204
|
+
* @return {object|null}
|
|
2205
|
+
*/
|
|
2206
|
+
effectiveNextStep() {
|
|
2207
|
+
const config = this.nextStep;
|
|
2208
|
+
if (!config || typeof config !== 'object' || typeof config.stagesFrom !== 'string' || config.stagesFrom === '' || !this.widgetVisibilityData) {
|
|
2209
|
+
return config
|
|
2210
|
+
}
|
|
2211
|
+
const found = readVisibleWhenPath(this.widgetVisibilityData, config.stagesFrom);
|
|
2212
|
+
const stages = found && typeof found === 'object' && !Array.isArray(found)
|
|
2213
|
+
? (found.stages && typeof found.stages === 'object' && !Array.isArray(found.stages) ? found.stages : found)
|
|
2214
|
+
: null;
|
|
2215
|
+
return stages && Object.keys(stages).length > 0 ? { ...config, stages } : config
|
|
2216
|
+
},
|
|
2217
|
+
|
|
2169
2218
|
/**
|
|
2170
2219
|
* The "what now" card for the record's stage, labels translated.
|
|
2171
2220
|
*
|
|
@@ -2173,7 +2222,7 @@ var script = {
|
|
|
2173
2222
|
* @spec openspec/changes/detail-action-model-and-case-surfaces/specs/detail-action-model/spec.md#requirement-next-step-card
|
|
2174
2223
|
*/
|
|
2175
2224
|
nextStepCard() {
|
|
2176
|
-
const card = resolveNextStep(this.
|
|
2225
|
+
const card = resolveNextStep(this.effectiveNextStep, this.currentObject, this.stageField);
|
|
2177
2226
|
if (!card) {
|
|
2178
2227
|
return null
|
|
2179
2228
|
}
|
|
@@ -2288,7 +2337,7 @@ var script = {
|
|
|
2288
2337
|
* @spec openspec/changes/detail-side-visible-when/specs/detail-page/spec.md#requirement-a-side-column-widget-shows-only-while-its-visiblewhen-holds
|
|
2289
2338
|
*/
|
|
2290
2339
|
sideColumnWidgets() {
|
|
2291
|
-
const resolved = this.pickedSideWidgets.filter((widget) => this.sideWidgetVisible(widget));
|
|
2340
|
+
const resolved = this.pickedSideWidgets.filter((widget) => this.sideWidgetOnTab(widget) && this.sideWidgetVisible(widget));
|
|
2292
2341
|
if (!this.isBoard) {
|
|
2293
2342
|
return resolved
|
|
2294
2343
|
}
|
|
@@ -3331,7 +3380,7 @@ var script = {
|
|
|
3331
3380
|
*/
|
|
3332
3381
|
bodyGridWidgets() {
|
|
3333
3382
|
if (this.hasGridLayout) {
|
|
3334
|
-
return this.widgets
|
|
3383
|
+
return this.pickTabs(this.widgets)
|
|
3335
3384
|
}
|
|
3336
3385
|
if (this.shouldRenderAutoBody) {
|
|
3337
3386
|
return this.autoBodyWidgets || []
|
|
@@ -3339,6 +3388,21 @@ var script = {
|
|
|
3339
3388
|
return []
|
|
3340
3389
|
},
|
|
3341
3390
|
|
|
3391
|
+
/**
|
|
3392
|
+
* The tab ids `tabsFrom` reads off this record, or null when it reads
|
|
3393
|
+
* no non-empty list (or the body is being edited).
|
|
3394
|
+
*
|
|
3395
|
+
* @spec openspec/changes/detail-tabs-from/specs/detail-page/spec.md#requirement-a-record-can-pick-its-tabs-and-their-order
|
|
3396
|
+
* @return {Array<string>|null}
|
|
3397
|
+
*/
|
|
3398
|
+
pickedTabIds() {
|
|
3399
|
+
if (!this.tabsFrom || this.editingBody || !this.widgetVisibilityData) {
|
|
3400
|
+
return null
|
|
3401
|
+
}
|
|
3402
|
+
const ids = readVisibleWhenPath(this.widgetVisibilityData, this.tabsFrom);
|
|
3403
|
+
return Array.isArray(ids) && ids.length > 0 ? ids.map((id) => String(id)) : null
|
|
3404
|
+
},
|
|
3405
|
+
|
|
3342
3406
|
/**
|
|
3343
3407
|
* Whether the body renders as an adjustable widget grid (vs. the
|
|
3344
3408
|
* hand-authored default slot). True for explicit grid pages and for the
|
|
@@ -3757,6 +3821,33 @@ var script = {
|
|
|
3757
3821
|
},
|
|
3758
3822
|
|
|
3759
3823
|
methods: {
|
|
3824
|
+
/**
|
|
3825
|
+
* The widget definitions with each `tabs` widget's tabs narrowed and
|
|
3826
|
+
* ordered by `pickedTabIds`; the definitions as given without a pick.
|
|
3827
|
+
* A new definition is returned for a changed widget; the declared one
|
|
3828
|
+
* is never mutated.
|
|
3829
|
+
*
|
|
3830
|
+
* @spec openspec/changes/detail-tabs-from/specs/detail-page/spec.md#requirement-a-record-can-pick-its-tabs-and-their-order
|
|
3831
|
+
* @param {Array<object>} widgets The widget definitions.
|
|
3832
|
+
* @return {Array<object>}
|
|
3833
|
+
*/
|
|
3834
|
+
pickTabs(widgets) {
|
|
3835
|
+
const ids = this.pickedTabIds;
|
|
3836
|
+
if (!ids || !Array.isArray(widgets)) {
|
|
3837
|
+
return widgets
|
|
3838
|
+
}
|
|
3839
|
+
const idOf = (tab) => String(typeof tab === 'string' ? tab : (tab && (tab.id ?? tab.widgetId)) ?? '');
|
|
3840
|
+
return widgets.map((widget) => {
|
|
3841
|
+
if (!widget || widget.type !== 'tabs' || !Array.isArray(widget.content?.tabs)) {
|
|
3842
|
+
return widget
|
|
3843
|
+
}
|
|
3844
|
+
const tabs = ids
|
|
3845
|
+
.map((id) => widget.content.tabs.find((tab) => idOf(tab) === id))
|
|
3846
|
+
.filter(Boolean);
|
|
3847
|
+
return tabs.length > 0 ? { ...widget, content: { ...widget.content, tabs } } : widget
|
|
3848
|
+
})
|
|
3849
|
+
},
|
|
3850
|
+
|
|
3760
3851
|
/**
|
|
3761
3852
|
* The tag after an admin-only entry in the board look ("beheerder",
|
|
3762
3853
|
* DqZaakMeer), or null for any other entry or look. It is drawn by
|
|
@@ -4938,6 +5029,22 @@ var script = {
|
|
|
4938
5029
|
return compactLayoutRows(drawable)
|
|
4939
5030
|
},
|
|
4940
5031
|
|
|
5032
|
+
/**
|
|
5033
|
+
* Whether a side entry belongs beside the open body tab: an entry with
|
|
5034
|
+
* `tabs` (tab ids) shows only while one of them is open; an entry
|
|
5035
|
+
* without shows beside every tab. Edit mode shows them all.
|
|
5036
|
+
*
|
|
5037
|
+
* @spec openspec/changes/detail-side-cards-per-tab/specs/detail-page/spec.md#requirement-a-side-card-can-follow-the-open-tab
|
|
5038
|
+
* @param {object} widget The side entry's definition.
|
|
5039
|
+
* @return {boolean}
|
|
5040
|
+
*/
|
|
5041
|
+
sideWidgetOnTab(widget) {
|
|
5042
|
+
if (this.editingBody || !Array.isArray(widget.tabs) || widget.tabs.length === 0) {
|
|
5043
|
+
return true
|
|
5044
|
+
}
|
|
5045
|
+
return widget.tabs.map((id) => String(id)).includes(this.activeBodyTab)
|
|
5046
|
+
},
|
|
5047
|
+
|
|
4941
5048
|
/**
|
|
4942
5049
|
* Whether a side column widget shows: always in edit mode or without a
|
|
4943
5050
|
* `visibleWhen`, else while it holds for the record and the records
|