@conduction/nextcloud-vue 2.68.0 → 2.70.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 +25 -0
- package/dist/esm/components/CnActionsBar/CnActionsBar.vue2.js.map +1 -1
- package/dist/esm/components/CnActionsBar/CnActionsBar.vue3.js +155 -152
- package/dist/esm/components/CnActionsBar/CnActionsBar.vue3.js.map +1 -1
- package/dist/esm/components/CnAppNav/CnAppNav.vue2.js +77 -0
- package/dist/esm/components/CnAppNav/CnAppNav.vue2.js.map +1 -1
- package/dist/esm/components/CnAppNav/CnAppNav.vue3.js +8 -8
- package/dist/esm/components/CnAppNav/CnAppNav.vue3.js.map +1 -1
- package/dist/esm/components/CnBreadcrumbs/CnBreadcrumbs.vue.js +1 -0
- package/dist/esm/components/CnBreadcrumbs/CnBreadcrumbs.vue.js.map +1 -1
- package/dist/esm/components/CnBreadcrumbs/CnBreadcrumbs.vue2.js +28 -0
- package/dist/esm/components/CnBreadcrumbs/CnBreadcrumbs.vue2.js.map +1 -1
- package/dist/esm/components/CnBreadcrumbs/CnBreadcrumbs.vue3.js +4 -2
- package/dist/esm/components/CnBreadcrumbs/CnBreadcrumbs.vue3.js.map +1 -1
- package/dist/esm/components/CnCalendarWidget/CnCalendarWidget.vue2.js +25 -1
- package/dist/esm/components/CnCalendarWidget/CnCalendarWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnCalendarWidget/CnCalendarWidget.vue3.js +32 -17
- package/dist/esm/components/CnCalendarWidget/CnCalendarWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnCapabilityTable/CnCapabilityTable.vue2.js +14 -1
- package/dist/esm/components/CnCapabilityTable/CnCapabilityTable.vue2.js.map +1 -1
- package/dist/esm/components/CnCapabilityTable/CnCapabilityTable.vue3.js.map +1 -1
- package/dist/esm/components/CnDashboardGrid/CnDashboardGrid.vue2.js +43 -2
- package/dist/esm/components/CnDashboardGrid/CnDashboardGrid.vue2.js.map +1 -1
- package/dist/esm/components/CnDashboardGrid/CnDashboardGrid.vue3.js +3 -3
- package/dist/esm/components/CnDashboardGrid/CnDashboardGrid.vue3.js.map +1 -1
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js +45 -35
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js.map +1 -1
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js +19 -1
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js.map +1 -1
- package/dist/esm/components/CnDataTable/CnDataTable.vue2.js +35 -1
- 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 +94 -6
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue2.js.map +1 -1
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js +64 -19
- package/dist/esm/components/CnDetailPage/CnDetailPage.vue3.js.map +1 -1
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js +28 -0
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js.map +1 -1
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js +3 -2
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js.map +1 -1
- package/dist/esm/components/CnFeaturesAndRoadmapPage/CnFeaturesAndRoadmapPage.vue2.js +12 -0
- package/dist/esm/components/CnFeaturesAndRoadmapPage/CnFeaturesAndRoadmapPage.vue2.js.map +1 -1
- package/dist/esm/components/CnFeaturesAndRoadmapView/CnFeaturesAndRoadmapView.vue2.js +9 -0
- 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/CnHeaderWidget/CnHeaderWidget.vue2.js +54 -7
- package/dist/esm/components/CnHeaderWidget/CnHeaderWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnHeaderWidget/CnHeaderWidget.vue3.js +26 -8
- package/dist/esm/components/CnHeaderWidget/CnHeaderWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +143 -0
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js +68 -25
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
- package/dist/esm/components/CnNextStepCard/CnNextStepCard.vue2.js.map +1 -1
- package/dist/esm/components/CnNextStepCard/CnNextStepCard.vue3.js.map +1 -1
- package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue2.js +4 -1
- package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnObjectListWidget/CnObjectListWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnStackedBarWidget/CnStackedBarWidget.vue2.js +17 -3
- package/dist/esm/components/CnStackedBarWidget/CnStackedBarWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnStackedBarWidget/CnStackedBarWidget.vue3.js +25 -24
- package/dist/esm/components/CnStackedBarWidget/CnStackedBarWidget.vue3.js.map +1 -1
- 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 +29 -2
- package/dist/esm/components/CnStatWidget/CnStatWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnStatWidget/CnStatWidget.vue3.js +7 -0
- package/dist/esm/components/CnStatWidget/CnStatWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnStatsBlock/CnStatsBlock.vue2.js +24 -1
- package/dist/esm/components/CnStatsBlock/CnStatsBlock.vue2.js.map +1 -1
- package/dist/esm/components/CnStatsBlock/CnStatsBlock.vue3.js +1 -1
- package/dist/esm/components/CnStatsBlock/CnStatsBlock.vue3.js.map +1 -1
- package/dist/esm/components/CnStatsBlockWidget/CnStatsBlockWidget.vue2.js +81 -1
- package/dist/esm/components/CnStatsBlockWidget/CnStatsBlockWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnStatsBlockWidget/CnStatsBlockWidget.vue3.js +25 -3
- package/dist/esm/components/CnStatsBlockWidget/CnStatsBlockWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnWeekStripWidget/CnWeekStripWidget.vue2.js +15 -2
- package/dist/esm/components/CnWeekStripWidget/CnWeekStripWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnWeekStripWidget/CnWeekStripWidget.vue3.js +31 -32
- package/dist/esm/components/CnWeekStripWidget/CnWeekStripWidget.vue3.js.map +1 -1
- package/dist/esm/l10n/en.json.js +3 -0
- package/dist/esm/l10n/en.json.js.map +1 -1
- package/dist/esm/l10n/nl.json.js +3 -0
- package/dist/esm/l10n/nl.json.js.map +1 -1
- package/dist/esm/mixins/pageViews.js +278 -11
- package/dist/esm/mixins/pageViews.js.map +1 -1
- package/dist/esm/nextcloud-vue.css +145 -0
- package/dist/esm/store/plugins/dashboardLayouts.js +35 -1
- package/dist/esm/store/plugins/dashboardLayouts.js.map +1 -1
- package/dist/esm/utils/capabilityComparison.js +29 -1
- package/dist/esm/utils/capabilityComparison.js.map +1 -1
- package/dist/esm/utils/formatMetric.js +137 -16
- package/dist/esm/utils/formatMetric.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 +2840 -1477
- package/dist/nextcloud-vue.cjs.js.map +2 -2
- package/dist/nextcloud-vue.css +145 -0
- package/l10n/en.json +3 -0
- package/l10n/nl.json +3 -0
- package/package.json +1 -1
- package/src/components/CnActionsBar/CnActionsBar.md +2 -0
- package/src/components/CnActionsBar/CnActionsBar.vue +28 -2
- package/src/components/CnAppNav/CnAppNav.vue +85 -8
- package/src/components/CnBreadcrumbs/CnBreadcrumbs.vue +45 -0
- package/src/components/CnCalendarWidget/CnCalendarWidget.vue +32 -4
- package/src/components/CnCapabilityTable/CnCapabilityTable.vue +14 -0
- package/src/components/CnDashboardGrid/CnDashboardGrid.md +2 -0
- package/src/components/CnDashboardGrid/CnDashboardGrid.vue +54 -2
- package/src/components/CnDashboardPage/CnDashboardPage.md +2 -0
- package/src/components/CnDashboardPage/CnDashboardPage.vue +59 -35
- package/src/components/CnDataTable/CnDataTable.vue +35 -1
- package/src/components/CnDetailPage/CnDetailPage.md +8 -0
- package/src/components/CnDetailPage/CnDetailPage.vue +124 -8
- package/src/components/CnDetailWidgetHost/CnDetailWidgetHost.vue +30 -1
- package/src/components/CnFeaturesAndRoadmapPage/CnFeaturesAndRoadmapPage.vue +12 -0
- package/src/components/CnFeaturesAndRoadmapView/CnFeaturesAndRoadmapView.vue +9 -0
- package/src/components/CnHeaderWidget/CnHeaderWidget.vue +95 -8
- package/src/components/CnIndexPage/CnIndexPage.vue +171 -6
- package/src/components/CnNextStepCard/CnNextStepCard.vue +11 -0
- package/src/components/CnObjectListWidget/CnObjectListWidget.vue +4 -1
- package/src/components/CnStackedBarWidget/CnStackedBarWidget.vue +34 -7
- package/src/components/CnStagesWidget/CnStagesWidget.vue +19 -0
- package/src/components/CnStatWidget/CnStatWidget.vue +38 -2
- package/src/components/CnStatsBlock/CnStatsBlock.md +2 -0
- package/src/components/CnStatsBlock/CnStatsBlock.vue +25 -2
- package/src/components/CnStatsBlockWidget/CnStatsBlockWidget.vue +95 -3
- package/src/components/CnWeekStripWidget/CnWeekStripWidget.vue +24 -3
- package/src/css/detail-page.css +10 -0
- package/src/css/index-page.css +12 -0
- package/src/css/kpi-card.css +15 -0
- package/src/mixins/pageViews.js +277 -10
- package/src/schemas/app-manifest-v2.schema.json +73 -6
- package/src/store/plugins/dashboardLayouts.js +34 -0
- package/src/utils/capabilityComparison.js +28 -0
- package/src/utils/formatMetric.js +143 -15
- package/src/utils/validateManifestV2.compiled.js +2 -2
|
@@ -6,6 +6,7 @@ import Check from 'vue-material-design-icons/Check.vue';
|
|
|
6
6
|
import Cog from 'vue-material-design-icons/Cog.vue';
|
|
7
7
|
import Download from 'vue-material-design-icons/Download.vue';
|
|
8
8
|
import Pencil from 'vue-material-design-icons/Pencil.vue';
|
|
9
|
+
import Restore from 'vue-material-design-icons/Restore.vue';
|
|
9
10
|
import ViewDashboardOutline from 'vue-material-design-icons/ViewDashboardOutline.vue';
|
|
10
11
|
import __sfc_main$c from '../../dialogs/CnWidgetStyleEditorModal.vue.js';
|
|
11
12
|
import __sfc_main$7 from '../CnBodySections/CnBodySections.vue.js';
|
|
@@ -20,9 +21,8 @@ import __sfc_main$6 from '../CnWidgetRefItem/CnWidgetRefItem.vue.js';
|
|
|
20
21
|
import __sfc_main$2 from '../CnWidgetRenderer/CnWidgetRenderer.vue.js';
|
|
21
22
|
import __sfc_main$1 from '../CnWidgetWrapper/CnWidgetWrapper.vue.js';
|
|
22
23
|
import { useIntegrationRegistry } from '../../composables/useIntegrationRegistry.js';
|
|
23
|
-
import { readUserPreference, writeUserPreference } from '../../composables/useUserPreferences.js';
|
|
24
24
|
import { pageViews } from '../../mixins/pageViews.js';
|
|
25
|
-
import { mergeUserLayout,
|
|
25
|
+
import { mergeUserLayout, resolveUserLayoutApi } from '../../store/plugins/dashboardLayouts.js';
|
|
26
26
|
import { isAppInstalled } from '../../utils/appInstalled.js';
|
|
27
27
|
import { readVisibleWhenValue, compareVisibleWhen } from '../../utils/visibleWhen.js';
|
|
28
28
|
import { canonicalWidgetType } from '../../utils/widgetTypeAliases.js';
|
|
@@ -158,6 +158,7 @@ var script = {
|
|
|
158
158
|
NcLoadingIcon,
|
|
159
159
|
NcSelect,
|
|
160
160
|
Pencil,
|
|
161
|
+
Restore,
|
|
161
162
|
Check,
|
|
162
163
|
Cog,
|
|
163
164
|
CalendarRange,
|
|
@@ -269,6 +270,19 @@ var script = {
|
|
|
269
270
|
default: true,
|
|
270
271
|
},
|
|
271
272
|
|
|
273
|
+
/**
|
|
274
|
+
* GridStack's `float` for this dashboard (manifest
|
|
275
|
+
* `config.gridFloat`). True (the default) keeps every widget on its
|
|
276
|
+
* row. False packs widgets upward, so a size-to-content widget that
|
|
277
|
+
* shrinks closes the gap under it instead of leaving an empty band.
|
|
278
|
+
*
|
|
279
|
+
* @spec openspec/changes/zuiddrecht-pixel-gaps-3/specs/zuiddrecht-pixel-gaps-3/spec.md#requirement-a-dashboard-closes-the-gap-a-shrinking-or-hidden-widget-leaves
|
|
280
|
+
*/
|
|
281
|
+
gridFloat: {
|
|
282
|
+
type: Boolean,
|
|
283
|
+
default: true,
|
|
284
|
+
},
|
|
285
|
+
|
|
272
286
|
/**
|
|
273
287
|
* Widget definitions array. Each widget defines metadata for rendering.
|
|
274
288
|
*
|
|
@@ -1211,7 +1225,7 @@ var script = {
|
|
|
1211
1225
|
* @spec openspec/changes/view-switch-containers/specs/view-switch-containers/spec.md#requirement-a-view-with-nothing-to-draw-says-so
|
|
1212
1226
|
*/
|
|
1213
1227
|
viewDisplayLayout() {
|
|
1214
|
-
const items = this.
|
|
1228
|
+
const items = this.activeViewLayout;
|
|
1215
1229
|
if (this.gridEditable) {
|
|
1216
1230
|
return items
|
|
1217
1231
|
}
|
|
@@ -1253,8 +1267,9 @@ var script = {
|
|
|
1253
1267
|
key: `view-${this.activeViewId}`,
|
|
1254
1268
|
view: true,
|
|
1255
1269
|
layout: this.viewDisplayLayout,
|
|
1256
|
-
//
|
|
1257
|
-
|
|
1270
|
+
// With `userLayout` the user arranges the view too; the
|
|
1271
|
+
// arrangement is kept per view (pageViews mixin).
|
|
1272
|
+
editable: this.gridEditable,
|
|
1258
1273
|
attrs: {
|
|
1259
1274
|
id: this.viewRegionId,
|
|
1260
1275
|
role: 'region',
|
|
@@ -1974,6 +1989,7 @@ var script = {
|
|
|
1974
1989
|
// the user's arrangement is finished when they say it is.
|
|
1975
1990
|
if (leaving) {
|
|
1976
1991
|
this.saveUserLayout();
|
|
1992
|
+
this.saveViewUserLayouts();
|
|
1977
1993
|
}
|
|
1978
1994
|
|
|
1979
1995
|
/**
|
|
@@ -2033,6 +2049,17 @@ var script = {
|
|
|
2033
2049
|
}
|
|
2034
2050
|
},
|
|
2035
2051
|
|
|
2052
|
+
/**
|
|
2053
|
+
* The edit-mode reset: the page's own grid and the chosen view return
|
|
2054
|
+
* to the manifest layout. Other views keep this user's arrangement.
|
|
2055
|
+
*
|
|
2056
|
+
* @return {Promise<void>}
|
|
2057
|
+
* @spec openspec/changes/page-view-user-layouts/specs/view-switch-containers/spec.md#requirement-resetting-a-view-restores-its-manifest-layout
|
|
2058
|
+
*/
|
|
2059
|
+
async resetLayout() {
|
|
2060
|
+
await Promise.all([this.resetUserLayout(), this.resetViewUserLayout()]);
|
|
2061
|
+
},
|
|
2062
|
+
|
|
2036
2063
|
/**
|
|
2037
2064
|
* Drop this user's arrangement and return to the manifest.
|
|
2038
2065
|
*
|
|
@@ -2085,35 +2112,7 @@ var script = {
|
|
|
2085
2112
|
* @return {{ load: (appId: string, pageId: string) => Promise<object|null>, save: (appId: string, pageId: string, layout: Array<object>) => Promise<boolean>, reset: (appId: string, pageId: string) => Promise<boolean> }} The api.
|
|
2086
2113
|
*/
|
|
2087
2114
|
userLayoutApi() {
|
|
2088
|
-
|
|
2089
|
-
if (store && typeof store.loadDashboardLayout === 'function') {
|
|
2090
|
-
return {
|
|
2091
|
-
load: (...a) => store.loadDashboardLayout(...a),
|
|
2092
|
-
save: (...a) => store.saveDashboardLayout(...a),
|
|
2093
|
-
reset: (...a) => store.resetDashboardLayout(...a),
|
|
2094
|
-
}
|
|
2095
|
-
}
|
|
2096
|
-
|
|
2097
|
-
return {
|
|
2098
|
-
load: (appId, pageId) => readUserPreference(appId, dashboardLayoutKey(pageId), null),
|
|
2099
|
-
save: (appId, pageId, layout) => writeUserPreference(
|
|
2100
|
-
appId,
|
|
2101
|
-
dashboardLayoutKey(pageId),
|
|
2102
|
-
{ items: (layout || []).map((i) => ({
|
|
2103
|
-
widgetId: i.widgetId,
|
|
2104
|
-
gridX: i.gridX,
|
|
2105
|
-
gridY: i.gridY,
|
|
2106
|
-
gridWidth: i.gridWidth,
|
|
2107
|
-
gridHeight: i.gridHeight,
|
|
2108
|
-
})) },
|
|
2109
|
-
),
|
|
2110
|
-
|
|
2111
|
-
reset: (appId, pageId) => writeUserPreference(
|
|
2112
|
-
appId,
|
|
2113
|
-
dashboardLayoutKey(pageId),
|
|
2114
|
-
{ items: [] },
|
|
2115
|
-
),
|
|
2116
|
-
}
|
|
2115
|
+
return resolveUserLayoutApi(this.userLayoutStore)
|
|
2117
2116
|
},
|
|
2118
2117
|
|
|
2119
2118
|
onLayoutChange(updated) {
|
|
@@ -2856,6 +2855,12 @@ var script = {
|
|
|
2856
2855
|
|
|
2857
2856
|
getWidgetButtons(item) {
|
|
2858
2857
|
const def = this.getWidgetDef(item.widgetId);
|
|
2858
|
+
// `showButtons: false` on the placement or the definition drops
|
|
2859
|
+
// the footer links ("More events"), for a placement whose card
|
|
2860
|
+
// says enough without them (zuiddrecht-pixel-gaps-3).
|
|
2861
|
+
if (item?.showButtons === false || def?.showButtons === false) {
|
|
2862
|
+
return []
|
|
2863
|
+
}
|
|
2859
2864
|
return def?.buttons || []
|
|
2860
2865
|
},
|
|
2861
2866
|
|
|
@@ -3159,11 +3164,16 @@ var script = {
|
|
|
3159
3164
|
// library's own defaults, so a manifest need not set them — but a
|
|
3160
3165
|
// manifest that DOES set them must reach the component, or the
|
|
3161
3166
|
// declaration is a silent no-op that reads like configuration.
|
|
3162
|
-
for (const key of ['countLabel', 'variant', 'showZeroCount', 'horizontal', 'vertical', 'filled', 'route', 'iconClass']) {
|
|
3167
|
+
for (const key of ['countLabel', 'variant', 'showZeroCount', 'horizontal', 'vertical', 'filled', 'route', 'iconClass', 'format', 'layout']) {
|
|
3163
3168
|
if (props[key] !== undefined) {
|
|
3164
3169
|
out[key] = props[key];
|
|
3165
3170
|
}
|
|
3166
3171
|
}
|
|
3172
|
+
// `content.layout: "stacked"`, the key a stat tile takes, works on
|
|
3173
|
+
// a stats block too (zuiddrecht-pixel-gaps-3).
|
|
3174
|
+
if (out.layout === undefined && typeof content.layout === 'string') {
|
|
3175
|
+
out.layout = content.layout;
|
|
3176
|
+
}
|
|
3167
3177
|
// `countLabel` is the unit beside the number ("0 cases", "0 tasks").
|
|
3168
3178
|
// It is manifest-authored prose and was being forwarded raw, so a
|
|
3169
3179
|
// Dutch account read "0 cases" beside a translated widget title.
|