@conduction/nextcloud-vue 2.65.0 → 2.67.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/CnActionsBar/CnActionsBar.vue2.js +19 -0
- package/dist/esm/components/CnActionsBar/CnActionsBar.vue2.js.map +1 -1
- package/dist/esm/components/CnActionsBar/CnActionsBar.vue3.js +10 -3
- package/dist/esm/components/CnActionsBar/CnActionsBar.vue3.js.map +1 -1
- package/dist/esm/components/CnAppNav/CnAppNav.vue2.js +2 -2
- package/dist/esm/components/CnAppNav/CnAppNav.vue2.js.map +1 -1
- package/dist/esm/components/CnAppNav/CnAppNav.vue3.js.map +1 -1
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js +99 -2
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js.map +1 -1
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js +438 -383
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js.map +1 -1
- package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue2.js +9 -3
- package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue2.js.map +1 -1
- package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue3.js +1 -1
- package/dist/esm/components/CnDataTable/CnColumnFilterPopover.vue3.js.map +1 -1
- package/dist/esm/components/CnDataTable/CnDataTable.vue2.js +4 -4
- package/dist/esm/components/CnDataTable/CnDataTable.vue2.js.map +1 -1
- package/dist/esm/components/CnDataTable/CnDataTable.vue3.js.map +1 -1
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js +78 -21
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js.map +1 -1
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js +129 -96
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js.map +1 -1
- package/dist/esm/components/CnFkResolveCell/CnFkResolveCell.vue2.js +3 -1
- package/dist/esm/components/CnFkResolveCell/CnFkResolveCell.vue2.js.map +1 -1
- package/dist/esm/components/CnFormDialog/CnFormDialog.vue2.js +144 -4
- package/dist/esm/components/CnFormDialog/CnFormDialog.vue2.js.map +1 -1
- package/dist/esm/components/CnFormDialog/CnFormDialog.vue3.js.map +1 -1
- package/dist/esm/components/CnHeaderWidget/CnHeaderWidget.vue2.js +63 -7
- package/dist/esm/components/CnHeaderWidget/CnHeaderWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnHeaderWidget/CnHeaderWidget.vue3.js +2 -1
- package/dist/esm/components/CnHeaderWidget/CnHeaderWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +31 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js +335 -313
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
- package/dist/esm/components/CnSegmentedControl/CnSegmentedControl.vue2.js +11 -0
- package/dist/esm/components/CnSegmentedControl/CnSegmentedControl.vue2.js.map +1 -1
- package/dist/esm/components/CnSegmentedControl/CnSegmentedControl.vue3.js +2 -1
- package/dist/esm/components/CnSegmentedControl/CnSegmentedControl.vue3.js.map +1 -1
- package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue2.js +5 -11
- package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue2.js.map +1 -1
- package/dist/esm/components/CnSetupWizard/CnSetupWizard.vue3.js.map +1 -1
- package/dist/esm/composables/useDependencyCheck.js +44 -1
- package/dist/esm/composables/useDependencyCheck.js.map +1 -1
- package/dist/esm/composables/useListView.js +43 -1
- package/dist/esm/composables/useListView.js.map +1 -1
- package/dist/esm/composables/useSetupStatus.js +26 -3
- package/dist/esm/composables/useSetupStatus.js.map +1 -1
- package/dist/esm/l10n/en.json.js +7 -1
- package/dist/esm/l10n/en.json.js.map +1 -1
- package/dist/esm/l10n/nl.json.js +7 -1
- package/dist/esm/l10n/nl.json.js.map +1 -1
- package/dist/esm/mixins/pageViews.js +400 -0
- package/dist/esm/mixins/pageViews.js.map +1 -0
- package/dist/esm/nextcloud-vue.css +38 -2
- package/dist/esm/store/plugins/liveUpdates.js +19 -9
- package/dist/esm/store/plugins/liveUpdates.js.map +1 -1
- package/dist/esm/store/useObjectStore.js +20 -9
- package/dist/esm/store/useObjectStore.js.map +1 -1
- package/dist/esm/utils/actionsDispatcher.js +11 -2
- package/dist/esm/utils/actionsDispatcher.js.map +1 -1
- package/dist/esm/utils/columnFilters.js +27 -3
- package/dist/esm/utils/columnFilters.js.map +1 -1
- package/dist/esm/utils/schema.js +40 -2
- package/dist/esm/utils/schema.js.map +1 -1
- package/dist/esm/utils/validateManifestV2.compiled.js +2 -2
- package/dist/esm/utils/validateManifestV2.compiled.js.map +1 -1
- package/dist/nextcloud-vue.cjs.js +2377 -1247
- package/dist/nextcloud-vue.cjs.js.map +2 -2
- package/dist/nextcloud-vue.css +38 -2
- package/l10n/en.json +7 -1
- package/l10n/nl.json +7 -1
- package/package.json +1 -1
- package/src/components/CnActionsBar/CnActionsBar.md +2 -1
- package/src/components/CnActionsBar/CnActionsBar.vue +25 -1
- package/src/components/CnAppNav/CnAppNav.vue +2 -2
- package/src/components/CnDashboardPage/CnDashboardPage.vue +165 -8
- package/src/components/CnDataTable/CnColumnFilterPopover.vue +11 -5
- package/src/components/CnDataTable/CnDataTable.md +1 -1
- package/src/components/CnDataTable/CnDataTable.vue +4 -4
- package/src/components/CnDetailPage/CnDetailPage.vue +94 -5
- package/src/components/CnFkResolveCell/CnFkResolveCell.vue +3 -1
- package/src/components/CnFormDialog/CnFormDialog.vue +144 -4
- package/src/components/CnHeaderWidget/CnHeaderWidget.vue +67 -8
- package/src/components/CnIndexPage/CnIndexPage.md +2 -1
- package/src/components/CnIndexPage/CnIndexPage.vue +47 -1
- package/src/components/CnSegmentedControl/CnSegmentedControl.md +1 -1
- package/src/components/CnSegmentedControl/CnSegmentedControl.vue +12 -0
- package/src/components/CnSetupWizard/CnSetupWizard.vue +5 -11
- package/src/composables/useDependencyCheck.js +43 -0
- package/src/composables/useListView.js +43 -1
- package/src/composables/useSetupStatus.js +26 -3
- package/src/css/actions-bar.css +20 -2
- package/src/css/detail-page.css +5 -0
- package/src/mixins/pageViews.js +396 -0
- package/src/schemas/app-manifest-v2.schema.json +31 -3
- package/src/schemas/app-manifest.schema.json +1 -1
- package/src/store/plugins/liveUpdates.js +19 -9
- package/src/store/useObjectStore.js +19 -8
- package/src/utils/actionsDispatcher.js +11 -2
- package/src/utils/columnFilters.js +29 -2
- package/src/utils/schema.js +40 -2
- package/src/utils/validateManifestV2.compiled.js +2 -2
|
@@ -13,6 +13,7 @@ import __sfc_main$b from '../CnBuildiqEditButton/CnBuildiqEditButton.vue.js';
|
|
|
13
13
|
import __sfc_main$4 from '../CnChartWidget/CnChartWidget.vue.js';
|
|
14
14
|
import __sfc_main from '../CnDashboardGrid/CnDashboardGrid.vue.js';
|
|
15
15
|
import __sfc_main$8 from '../CnDateRangePicker/CnDateRangePicker.vue.js';
|
|
16
|
+
import __sfc_main$e from '../CnSegmentedControl/CnSegmentedControl.vue.js';
|
|
16
17
|
import __sfc_main$5 from '../CnStatsBlockWidget/CnStatsBlockWidget.vue.js';
|
|
17
18
|
import __sfc_main$3 from '../CnTileWidget/CnTileWidget.vue.js';
|
|
18
19
|
import __sfc_main$6 from '../CnWidgetRefItem/CnWidgetRefItem.vue.js';
|
|
@@ -20,6 +21,7 @@ import __sfc_main$2 from '../CnWidgetRenderer/CnWidgetRenderer.vue.js';
|
|
|
20
21
|
import __sfc_main$1 from '../CnWidgetWrapper/CnWidgetWrapper.vue.js';
|
|
21
22
|
import { useIntegrationRegistry } from '../../composables/useIntegrationRegistry.js';
|
|
22
23
|
import { readUserPreference, writeUserPreference } from '../../composables/useUserPreferences.js';
|
|
24
|
+
import { pageViews } from '../../mixins/pageViews.js';
|
|
23
25
|
import { mergeUserLayout, dashboardLayoutKey } from '../../store/plugins/dashboardLayouts.js';
|
|
24
26
|
import { isAppInstalled } from '../../utils/appInstalled.js';
|
|
25
27
|
import { readVisibleWhenValue, compareVisibleWhen } from '../../utils/visibleWhen.js';
|
|
@@ -175,8 +177,11 @@ var script = {
|
|
|
175
177
|
CnBuildiqEditButton: __sfc_main$b,
|
|
176
178
|
CnWidgetStyleEditorModal: __sfc_main$c,
|
|
177
179
|
CnLeafMountHost: __sfc_main$d,
|
|
180
|
+
CnSegmentedControl: __sfc_main$e,
|
|
178
181
|
},
|
|
179
182
|
|
|
183
|
+
mixins: [pageViews],
|
|
184
|
+
|
|
180
185
|
inject: {
|
|
181
186
|
/**
|
|
182
187
|
* Buildiq in-app edit state (ADR-041), provided by CnAppRoot as a ref.
|
|
@@ -1179,6 +1184,89 @@ var script = {
|
|
|
1179
1184
|
return this.layout.length > 0 || this.widgetRefItems.length > 0
|
|
1180
1185
|
},
|
|
1181
1186
|
|
|
1187
|
+
/**
|
|
1188
|
+
* Whether the grid sections render at all: not while loading, not
|
|
1189
|
+
* while the widget predicates settle, not on the empty page and not
|
|
1190
|
+
* on a widget-ref content page.
|
|
1191
|
+
*
|
|
1192
|
+
* @return {boolean}
|
|
1193
|
+
* @spec openspec/changes/view-switch-containers/specs/view-switch-containers/spec.md#requirement-a-page-declares-views-that-each-hold-a-widget-grid
|
|
1194
|
+
*/
|
|
1195
|
+
gridSectionsShown() {
|
|
1196
|
+
if (this.loading || (!this.widgetConditionsSettled && !this.gridEditable)) {
|
|
1197
|
+
return false
|
|
1198
|
+
}
|
|
1199
|
+
if (!this.hasWidgets && !this.hasBodyWidgets && !this.hasViews) {
|
|
1200
|
+
return false
|
|
1201
|
+
}
|
|
1202
|
+
return this.widgetRefItems.length === 0
|
|
1203
|
+
},
|
|
1204
|
+
|
|
1205
|
+
/**
|
|
1206
|
+
* The chosen view's layout as the grid draws it: in live mode the
|
|
1207
|
+
* widgets that would draw nothing leave and the rest close up, as
|
|
1208
|
+
* for the page's own layout.
|
|
1209
|
+
*
|
|
1210
|
+
* @return {Array<object>}
|
|
1211
|
+
* @spec openspec/changes/view-switch-containers/specs/view-switch-containers/spec.md#requirement-a-view-with-nothing-to-draw-says-so
|
|
1212
|
+
*/
|
|
1213
|
+
viewDisplayLayout() {
|
|
1214
|
+
const items = this.activeView ? this.activeView.layout : [];
|
|
1215
|
+
if (this.gridEditable) {
|
|
1216
|
+
return items
|
|
1217
|
+
}
|
|
1218
|
+
const visible = items.filter((item) => !this.isCollapsedWidget(item));
|
|
1219
|
+
return visible.length === items.length ? items : this.compactDisplayLayout(visible)
|
|
1220
|
+
},
|
|
1221
|
+
|
|
1222
|
+
/**
|
|
1223
|
+
* Whether the chosen view has nothing to draw.
|
|
1224
|
+
*
|
|
1225
|
+
* @return {boolean}
|
|
1226
|
+
* @spec openspec/changes/view-switch-containers/specs/view-switch-containers/spec.md#requirement-a-view-with-nothing-to-draw-says-so
|
|
1227
|
+
*/
|
|
1228
|
+
viewIsEmpty() {
|
|
1229
|
+
return this.hasViews && this.viewDisplayLayout.length === 0
|
|
1230
|
+
},
|
|
1231
|
+
|
|
1232
|
+
/**
|
|
1233
|
+
* The grids this page draws. Without views: the page's own layout,
|
|
1234
|
+
* as it always was. With views: the page's own layout when it has
|
|
1235
|
+
* items, then the chosen view's layout in the region the switch
|
|
1236
|
+
* controls (left out when the view is empty; the empty state takes
|
|
1237
|
+
* the region then).
|
|
1238
|
+
*
|
|
1239
|
+
* @return {Array<{key: string, view: boolean, layout: Array<object>, editable: boolean, attrs: object}>}
|
|
1240
|
+
* @spec openspec/changes/view-switch-containers/specs/view-switch-containers/spec.md#requirement-a-page-declares-views-that-each-hold-a-widget-grid
|
|
1241
|
+
*/
|
|
1242
|
+
gridSections() {
|
|
1243
|
+
if (!this.gridSectionsShown) {
|
|
1244
|
+
return []
|
|
1245
|
+
}
|
|
1246
|
+
const page = { key: 'page', view: false, layout: this.displayLayout, editable: this.gridEditable, attrs: {} };
|
|
1247
|
+
if (!this.hasViews) {
|
|
1248
|
+
return [page]
|
|
1249
|
+
}
|
|
1250
|
+
const sections = this.displayLayout.length > 0 ? [page] : [];
|
|
1251
|
+
if (!this.viewIsEmpty) {
|
|
1252
|
+
sections.push({
|
|
1253
|
+
key: `view-${this.activeViewId}`,
|
|
1254
|
+
view: true,
|
|
1255
|
+
layout: this.viewDisplayLayout,
|
|
1256
|
+
// A user arrangement covers the page's own layout only.
|
|
1257
|
+
editable: this.gridEditable && !this.userLayout,
|
|
1258
|
+
attrs: {
|
|
1259
|
+
id: this.viewRegionId,
|
|
1260
|
+
role: 'region',
|
|
1261
|
+
'aria-label': this.activeView.label,
|
|
1262
|
+
class: 'cn-page-view-region',
|
|
1263
|
+
'data-testid': 'cn-dashboard-page-view-region',
|
|
1264
|
+
},
|
|
1265
|
+
});
|
|
1266
|
+
}
|
|
1267
|
+
return sections
|
|
1268
|
+
},
|
|
1269
|
+
|
|
1182
1270
|
/**
|
|
1183
1271
|
* The widget settings object handed to CnWidgetStyleEditorModal,
|
|
1184
1272
|
* built from the widget definition currently being configured
|
|
@@ -1309,6 +1397,14 @@ var script = {
|
|
|
1309
1397
|
this.evaluateWidgetConditions();
|
|
1310
1398
|
},
|
|
1311
1399
|
},
|
|
1400
|
+
|
|
1401
|
+
/** A view's widgets carry predicates too. */
|
|
1402
|
+
views: {
|
|
1403
|
+
deep: true,
|
|
1404
|
+
handler() {
|
|
1405
|
+
this.evaluateWidgetConditions();
|
|
1406
|
+
},
|
|
1407
|
+
},
|
|
1312
1408
|
},
|
|
1313
1409
|
|
|
1314
1410
|
created() {
|
|
@@ -2173,7 +2269,8 @@ var script = {
|
|
|
2173
2269
|
* @spec openspec/changes/live-check-follow-ups/specs/live-check-follow-ups/spec.md#requirement-an-attention-card-says-when-it-could-not-check
|
|
2174
2270
|
*/
|
|
2175
2271
|
async evaluateWidgetConditions() {
|
|
2176
|
-
const
|
|
2272
|
+
const defs = [...(this.widgets || []), ...this.normalizedViews.flatMap((view) => view.widgets)];
|
|
2273
|
+
const conditional = defs.filter((def) => def && def.id && def.type
|
|
2177
2274
|
&& this.widgetDisplayConfig(def).visibleWhen);
|
|
2178
2275
|
// Skip when the CONDITIONAL SET is unchanged: the deep `widgets`
|
|
2179
2276
|
// watch fires on any def edit, but only an added/removed/edited
|
|
@@ -2307,7 +2404,7 @@ var script = {
|
|
|
2307
2404
|
*/
|
|
2308
2405
|
getWidgetDef(widgetId) {
|
|
2309
2406
|
const list = Array.isArray(this.widgets) ? this.widgets : [];
|
|
2310
|
-
return list.find((w) => w && w.id === widgetId) ||
|
|
2407
|
+
return list.find((w) => w && w.id === widgetId) || this.findViewWidget(widgetId)
|
|
2311
2408
|
},
|
|
2312
2409
|
|
|
2313
2410
|
/**
|