@conduction/nextcloud-vue 2.77.0 → 2.79.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/bundled-packages.json +0 -2
- package/dist/esm/bundled-packages.json +0 -2
- package/dist/esm/components/CnActionsBar/CnActionsBar.vue2.js.map +1 -1
- package/dist/esm/components/CnActionsBar/CnActionsBar.vue3.js +113 -104
- package/dist/esm/components/CnActionsBar/CnActionsBar.vue3.js.map +1 -1
- package/dist/esm/components/CnAiCompanion/CnAiCompanion.vue2.js +23 -0
- package/dist/esm/components/CnAiCompanion/CnAiCompanion.vue2.js.map +1 -1
- package/dist/esm/components/CnAiCompanion/CnAiCompanion.vue3.js.map +1 -1
- package/dist/esm/components/CnAppRoot/CnAppRoot.vue2.js +12 -2
- package/dist/esm/components/CnAppRoot/CnAppRoot.vue2.js.map +1 -1
- package/dist/esm/components/CnAppRoot/CnAppRoot.vue3.js.map +1 -1
- package/dist/esm/components/CnBoardView/CnBoardView.vue2.js +2 -1
- package/dist/esm/components/CnBoardView/CnBoardView.vue2.js.map +1 -1
- package/dist/esm/components/CnBoardView/CnBoardView.vue3.js.map +1 -1
- package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue2.js +117 -0
- package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue2.js.map +1 -1
- package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue3.js +122 -97
- package/dist/esm/components/CnCellRenderer/CnCellRenderer.vue3.js.map +1 -1
- package/dist/esm/components/CnChartWidget/CnChartWidget.vue2.js +37 -0
- package/dist/esm/components/CnChartWidget/CnChartWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnChartWidget/CnChartWidget.vue3.js +2 -2
- package/dist/esm/components/CnChartWidget/CnChartWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js +168 -5
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js.map +1 -1
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js +140 -92
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js.map +1 -1
- package/dist/esm/components/CnDataTable/CnDataTable.vue2.js +84 -2
- 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/CnDateRangePicker/CnDateRangePicker.vue.js +1 -1
- package/dist/esm/components/CnDateRangePicker/CnDateRangePicker.vue2.js +45 -2
- package/dist/esm/components/CnDateRangePicker/CnDateRangePicker.vue2.js.map +1 -1
- package/dist/esm/components/CnDateRangePicker/CnDateRangePicker.vue3.js.map +1 -1
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js +61 -1
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue2.js.map +1 -1
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHost.vue3.js.map +1 -1
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js +173 -5
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue2.js.map +1 -1
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js +181 -99
- package/dist/esm/components/CnFilesBrowser/CnFilesBrowser.vue3.js.map +1 -1
- package/dist/esm/components/CnFilesBrowser/filesBrowser.js +29 -11
- package/dist/esm/components/CnFilesBrowser/filesBrowser.js.map +1 -1
- package/dist/esm/components/CnFilesBrowser/openRegisterSource.js +252 -0
- package/dist/esm/components/CnFilesBrowser/openRegisterSource.js.map +1 -0
- package/dist/esm/components/CnFormDialog/CnFormDialog.vue2.js +8 -2
- 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/CnFormPage/CnFormPage.vue2.js +4 -1
- package/dist/esm/components/CnFormPage/CnFormPage.vue2.js.map +1 -1
- package/dist/esm/components/CnFormPage/CnFormPage.vue3.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +31 -2
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js +3 -2
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
- package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue2.js +100 -3
- package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue2.js.map +1 -1
- package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue3.js +4 -2
- package/dist/esm/components/CnObjectSidebar/CnFilesTab.vue3.js.map +1 -1
- package/dist/esm/components/CnQuickFilterBar/CnQuickFilterBar.vue2.js +3 -2
- package/dist/esm/components/CnQuickFilterBar/CnQuickFilterBar.vue2.js.map +1 -1
- package/dist/esm/components/CnQuickFilterBar/CnQuickFilterBar.vue3.js.map +1 -1
- package/dist/esm/components/CnSavedViewsControl/CnSavedViewsControl.vue2.js.map +1 -1
- package/dist/esm/components/CnSavedViewsControl/CnSavedViewsControl.vue3.js +1 -1
- package/dist/esm/components/CnSavedViewsControl/CnSavedViewsControl.vue3.js.map +1 -1
- package/dist/esm/components/CnStatWidget/CnStatWidget.vue2.js +36 -0
- package/dist/esm/components/CnStatWidget/CnStatWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnStatWidget/CnStatWidget.vue3.js +35 -23
- package/dist/esm/components/CnStatWidget/CnStatWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnStatusBadge/CnStatusBadge.vue2.js +6 -2
- package/dist/esm/components/CnStatusBadge/CnStatusBadge.vue2.js.map +1 -1
- package/dist/esm/components/CnStatusBadge/CnStatusBadge.vue3.js.map +1 -1
- package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue2.js +30 -1
- package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnTabsWidget/CnTabsWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue2.js +13 -0
- package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue2.js.map +1 -1
- package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue3.js.map +1 -1
- package/dist/esm/composables/useAppManifest.js +8 -3
- package/dist/esm/composables/useAppManifest.js.map +1 -1
- package/dist/esm/composables/useFormDraft.js +11 -1
- package/dist/esm/composables/useFormDraft.js.map +1 -1
- package/dist/esm/composables/useObjectPresence.js +15 -4
- package/dist/esm/composables/useObjectPresence.js.map +1 -1
- package/dist/esm/index.js +1 -0
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/l10n/en.json.js +68 -1
- package/dist/esm/l10n/en.json.js.map +1 -1
- package/dist/esm/l10n/nl.json.js +113 -2
- package/dist/esm/l10n/nl.json.js.map +1 -1
- package/dist/esm/nextcloud-vue.css +526 -16
- package/dist/esm/utils/badgeVariants.js +32 -0
- package/dist/esm/utils/badgeVariants.js.map +1 -0
- package/dist/esm/utils/boardDate.js +193 -0
- package/dist/esm/utils/boardDate.js.map +1 -0
- package/dist/esm/utils/dynamicProperties.js +5 -1
- package/dist/esm/utils/dynamicProperties.js.map +1 -1
- package/dist/esm/utils/validateManifestV2.compiled.js +57 -6
- package/dist/esm/utils/validateManifestV2.compiled.js.map +1 -1
- package/dist/nextcloud-vue.cjs.js +2569 -811
- package/dist/nextcloud-vue.cjs.js.map +2 -2
- package/dist/nextcloud-vue.css +526 -16
- package/l10n/en.json +68 -1
- package/l10n/nl.json +113 -2
- package/package.json +1 -1
- package/scripts/build-validators.js +26 -0
- package/src/components/CnActionsBar/CnActionsBar.vue +48 -39
- package/src/components/CnAiCompanion/CnAiCompanion.vue +23 -0
- package/src/components/CnAppRoot/CnAppRoot.vue +12 -2
- package/src/components/CnBoardView/CnBoardView.vue +2 -1
- package/src/components/CnCellRenderer/CnCellRenderer.md +1 -0
- package/src/components/CnCellRenderer/CnCellRenderer.vue +169 -10
- package/src/components/CnChartWidget/CnChartWidget.vue +39 -2
- package/src/components/CnDashboardPage/CnDashboardPage.vue +248 -8
- package/src/components/CnDataTable/CnDataTable.md +2 -0
- package/src/components/CnDataTable/CnDataTable.vue +88 -4
- package/src/components/CnDateRangePicker/CnDateRangePicker.vue +44 -1
- package/src/components/CnDetailWidgetHost/CnDetailWidgetHost.vue +61 -1
- package/src/components/CnFilesBrowser/CnFilesBrowser.vue +232 -11
- package/src/components/CnFilesBrowser/filesBrowser.js +43 -2
- package/src/components/CnFilesBrowser/index.js +1 -0
- package/src/components/CnFilesBrowser/openRegisterSource.js +248 -0
- package/src/components/CnFormDialog/CnFormDialog.vue +8 -2
- package/src/components/CnFormPage/CnFormPage.vue +4 -1
- package/src/components/CnIndexPage/CnIndexPage.vue +33 -3
- package/src/components/CnObjectSidebar/CnFilesTab.vue +103 -4
- package/src/components/CnQuickFilterBar/CnQuickFilterBar.vue +3 -2
- package/src/components/CnSavedViewsControl/CnSavedViewsControl.vue +1 -1
- package/src/components/CnStatWidget/CnStatWidget.vue +52 -2
- package/src/components/CnStatusBadge/CnStatusBadge.vue +6 -2
- package/src/components/CnTabsWidget/CnTabsWidget.vue +30 -1
- package/src/components/CnWidgetObjectTable/CnWidgetObjectTable.vue +13 -0
- package/src/components/index.js +1 -1
- package/src/composables/__tests__/useObjectPresence.spec.js +24 -0
- package/src/composables/useAppManifest.js +8 -3
- package/src/composables/useFormDraft.js +11 -1
- package/src/composables/useObjectPresence.js +15 -4
- package/src/css/badge.css +31 -0
- package/src/css/kpi-card.css +51 -0
- package/src/css/look-board-detail.css +10 -0
- package/src/css/look-board-index.css +128 -14
- package/src/css/look-board.css +85 -0
- package/src/css/table.css +37 -0
- package/src/index.js +4 -0
- package/src/schemas/app-manifest-v2.schema.json +50 -5
- package/src/utils/badgeVariants.js +29 -0
- package/src/utils/boardDate.js +189 -0
- package/src/utils/dynamicProperties.js +5 -1
- package/src/utils/validateManifestV2.compiled.js +57 -2
- package/dist/esm/_virtual/equal.js +0 -4
- package/dist/esm/_virtual/equal.js.map +0 -1
- package/dist/esm/_virtual/ucs2length.js +0 -4
- package/dist/esm/_virtual/ucs2length.js.map +0 -1
- package/dist/esm/node_modules/ajv/dist/runtime/equal.js +0 -9
- package/dist/esm/node_modules/ajv/dist/runtime/equal.js.map +0 -1
- package/dist/esm/node_modules/ajv/dist/runtime/ucs2length.js +0 -25
- package/dist/esm/node_modules/ajv/dist/runtime/ucs2length.js.map +0 -1
- package/dist/esm/node_modules/fast-deep-equal/index.js +0 -47
- package/dist/esm/node_modules/fast-deep-equal/index.js.map +0 -1
|
@@ -103,6 +103,16 @@ function fillSecondaryTemplate(template, valueOf) {
|
|
|
103
103
|
* </CnDataTable>
|
|
104
104
|
* ```
|
|
105
105
|
*/
|
|
106
|
+
|
|
107
|
+
/**
|
|
108
|
+
* Column keys that name an object's system dates in OpenRegister's `@self`
|
|
109
|
+
* block. A column may declare one as its key (`@self.created`); it renders as
|
|
110
|
+
* a date-time although the schema has no property behind it.
|
|
111
|
+
*
|
|
112
|
+
* @type {string[]}
|
|
113
|
+
*/
|
|
114
|
+
const SYSTEM_DATE_KEYS = ['@self.created', '@self.updated', '@self.published', '@self.depublished'];
|
|
115
|
+
|
|
106
116
|
var script = {
|
|
107
117
|
name: 'CnDataTable',
|
|
108
118
|
|
|
@@ -365,6 +375,21 @@ var script = {
|
|
|
365
375
|
default: '',
|
|
366
376
|
},
|
|
367
377
|
|
|
378
|
+
/**
|
|
379
|
+
* How the board look draws the title column: `link` (the default) is
|
|
380
|
+
* the 15px weight 600 underlined title of the DqZaken board; `plain` is
|
|
381
|
+
* the 15px bold title without an underline and a 13px muted secondary
|
|
382
|
+
* line, as the PqTickets and OcPublicaties boards draw it. The row stays
|
|
383
|
+
* clickable either way. The Nextcloud look ignores it.
|
|
384
|
+
*
|
|
385
|
+
* @spec openspec/changes/screens-table-rows-parity/specs/index-list-board-look/spec.md#requirement-a-row-title-can-be-plain-text
|
|
386
|
+
*/
|
|
387
|
+
rowTitle: {
|
|
388
|
+
type: String,
|
|
389
|
+
default: 'link',
|
|
390
|
+
validator: (value) => ['link', 'plain'].includes(value),
|
|
391
|
+
},
|
|
392
|
+
|
|
368
393
|
/**
|
|
369
394
|
* Drop the container's card chrome (border, radius, shadow) so the table
|
|
370
395
|
* sits flush inside a parent that already provides a card (e.g. a
|
|
@@ -424,6 +449,23 @@ var script = {
|
|
|
424
449
|
default: false,
|
|
425
450
|
},
|
|
426
451
|
|
|
452
|
+
/**
|
|
453
|
+
* Fit the table to its container instead of letting it grow past it.
|
|
454
|
+
* One column takes the room that is left and cuts its text with an
|
|
455
|
+
* ellipsis (the full value stays in the tooltip); every other column
|
|
456
|
+
* keeps its content on one line at its own width, so trailing columns
|
|
457
|
+
* such as a date stay visible in a narrow tile. The column that grows
|
|
458
|
+
* is the first with `grow: true`, else the one keyed `title` or `name`,
|
|
459
|
+
* else the first column. CnWidgetObjectTable turns this on.
|
|
460
|
+
*
|
|
461
|
+
* @type {boolean}
|
|
462
|
+
* @spec openspec/changes/narrow-object-table-widgets/specs/narrow-object-table-widgets/spec.md#requirement-a-narrow-object-table-keeps-its-trailing-columns-in-view
|
|
463
|
+
*/
|
|
464
|
+
fitWidth: {
|
|
465
|
+
type: Boolean,
|
|
466
|
+
default: false,
|
|
467
|
+
},
|
|
468
|
+
|
|
427
469
|
/**
|
|
428
470
|
* Max number of rows to display. When the total exceeds it, only the first
|
|
429
471
|
* `limit` render and the "View all" footer appears (with `viewAllRoute`).
|
|
@@ -629,6 +671,25 @@ var script = {
|
|
|
629
671
|
},
|
|
630
672
|
|
|
631
673
|
/** @return {number} Leading cells before the data columns (selection, icon). */
|
|
674
|
+
/**
|
|
675
|
+
* The key of the column that takes the spare width under `fitWidth`:
|
|
676
|
+
* the first with `grow: true`, else `title` or `name`, else the first.
|
|
677
|
+
*
|
|
678
|
+
* @return {string|null} The column key, or null when not fitting.
|
|
679
|
+
* @spec openspec/changes/narrow-object-table-widgets/specs/narrow-object-table-widgets/spec.md#requirement-a-narrow-object-table-keeps-its-trailing-columns-in-view
|
|
680
|
+
*/
|
|
681
|
+
growColumnKey() {
|
|
682
|
+
if (!this.fitWidth || this.effectiveColumns.length === 0) {
|
|
683
|
+
return null
|
|
684
|
+
}
|
|
685
|
+
const cols = this.effectiveColumns;
|
|
686
|
+
const chosen = cols.find((c) => c && c.grow === true)
|
|
687
|
+
|| cols.find((c) => c && c.key === 'title')
|
|
688
|
+
|| cols.find((c) => c && c.key === 'name')
|
|
689
|
+
|| cols[0];
|
|
690
|
+
return chosen ? chosen.key : null
|
|
691
|
+
},
|
|
692
|
+
|
|
632
693
|
leadingCount() {
|
|
633
694
|
return (this.selectable ? 1 : 0) + (this.rowIcon ? 1 : 0)
|
|
634
695
|
},
|
|
@@ -925,6 +986,16 @@ var script = {
|
|
|
925
986
|
},
|
|
926
987
|
|
|
927
988
|
methods: {
|
|
989
|
+
/**
|
|
990
|
+
* Whether a column is the one that takes the spare width (`fitWidth`).
|
|
991
|
+
*
|
|
992
|
+
* @param {object} col The column.
|
|
993
|
+
* @return {boolean}
|
|
994
|
+
*/
|
|
995
|
+
isGrowColumn(col) {
|
|
996
|
+
return this.growColumnKey !== null && !!col && col.key === this.growColumnKey
|
|
997
|
+
},
|
|
998
|
+
|
|
928
999
|
/**
|
|
929
1000
|
* Whether a row's record changed since the user last looked
|
|
930
1001
|
* (`@self.unread`). A row without the marker renders as it always did.
|
|
@@ -1250,19 +1321,30 @@ var script = {
|
|
|
1250
1321
|
* handed a `:schema` for at all) still get type-aware rendering.
|
|
1251
1322
|
* `enumLabels` rides with `enum` rather than getting its own `if`
|
|
1252
1323
|
* branch: a column can't usefully declare labels without also
|
|
1253
|
-
* declaring the codes they label.
|
|
1324
|
+
* declaring the codes they label. A column `colorMap` (raw value to
|
|
1325
|
+
* badge variant) colours the enum pill from the manifest and wins over
|
|
1326
|
+
* the schema property's own `colorMap` / `x-color-map`.
|
|
1254
1327
|
*
|
|
1255
1328
|
* @param {object} col Column definition.
|
|
1329
|
+
* @spec openspec/changes/screens-table-footer-and-system-dates-parity/specs/index-list-board-look/spec.md#requirement-a-system-date-can-be-a-column
|
|
1256
1330
|
* @return {object} Property definition for CnCellRenderer.
|
|
1331
|
+
* @spec openspec/changes/screens-cell-pill-parity/specs/cell-pill-tones/spec.md#requirement-a-manifest-column-colours-its-enum-pills
|
|
1257
1332
|
*/
|
|
1258
1333
|
columnProperty(col) {
|
|
1259
1334
|
const base = this.getSchemaProperty(col.key);
|
|
1260
|
-
|
|
1335
|
+
// A system date (`@self.created`, `@self.updated`, ...) has no
|
|
1336
|
+
// schema property behind it; it renders as a date-time.
|
|
1337
|
+
if (Object.keys(base).length === 0 && SYSTEM_DATE_KEYS.includes(col.key) && !col.type && !col.format) {
|
|
1338
|
+
return { type: 'string', format: 'date-time' }
|
|
1339
|
+
}
|
|
1340
|
+
const colorMap = col && col.colorMap && typeof col.colorMap === 'object' && !Array.isArray(col.colorMap) ? col.colorMap : null;
|
|
1341
|
+
if (col && (col.format || col.type || col.enum || colorMap)) {
|
|
1261
1342
|
return {
|
|
1262
1343
|
...base,
|
|
1263
1344
|
...(col.type ? { type: col.type } : {}),
|
|
1264
1345
|
...(col.format ? { format: col.format } : {}),
|
|
1265
1346
|
...(col.enum ? { enum: col.enum, enumLabels: col.enumLabels || base.enumLabels } : {}),
|
|
1347
|
+
...(colorMap ? { colorMap } : {}),
|
|
1266
1348
|
}
|
|
1267
1349
|
}
|
|
1268
1350
|
return base
|