@conduction/nextcloud-vue 2.101.0 → 2.102.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 +22 -0
- package/dist/esm/components/CnActionsBar/CnActionsBar.vue2.js.map +1 -1
- package/dist/esm/components/CnActionsBar/CnActionsBar.vue3.js +8 -6
- package/dist/esm/components/CnActionsBar/CnActionsBar.vue3.js.map +1 -1
- package/dist/esm/components/CnChartWidget/CnChartWidget.vue.js +1 -1
- package/dist/esm/components/CnChartWidget/CnChartWidget.vue2.js +29 -4
- package/dist/esm/components/CnChartWidget/CnChartWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnChartWidget/CnChartWidget.vue3.js +9 -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 +20 -0
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue2.js.map +1 -1
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js +1 -1
- package/dist/esm/components/CnDashboardPage/CnDashboardPage.vue3.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +70 -4
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js +6 -4
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
- package/dist/esm/components/CnIndexPage/useNamedSource.js +26 -2
- package/dist/esm/components/CnIndexPage/useNamedSource.js.map +1 -1
- package/dist/esm/components/CnMenuWidget/CnMenuWidget.vue.js +1 -1
- package/dist/esm/components/CnMenuWidget/CnMenuWidget.vue2.js +25 -1
- package/dist/esm/components/CnMenuWidget/CnMenuWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnMenuWidget/CnMenuWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnQuickFilterBar/CnQuickFilterBar.vue.js +1 -1
- package/dist/esm/components/CnQuickFilterBar/CnQuickFilterBar.vue2.js +106 -4
- package/dist/esm/components/CnQuickFilterBar/CnQuickFilterBar.vue2.js.map +1 -1
- package/dist/esm/components/CnQuickFilterBar/CnQuickFilterBar.vue3.js +70 -25
- package/dist/esm/components/CnQuickFilterBar/CnQuickFilterBar.vue3.js.map +1 -1
- package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue.js +1 -1
- package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue2.js +2 -23
- 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/indexSources.js +9 -0
- package/dist/esm/composables/indexSources.js.map +1 -1
- package/dist/esm/l10n/en.json.js +5 -1
- package/dist/esm/l10n/en.json.js.map +1 -1
- package/dist/esm/l10n/nl.json.js +5 -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 +232 -187
- package/dist/esm/utils/builtInFormatters.js +24 -4
- package/dist/esm/utils/builtInFormatters.js.map +1 -1
- package/dist/esm/utils/rowClassRules.js +43 -0
- package/dist/esm/utils/rowClassRules.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 +19 -2
- package/dist/esm/utils/visibleWhen.js.map +1 -1
- package/dist/nextcloud-vue.cjs.js +1464 -1053
- package/dist/nextcloud-vue.cjs.js.map +2 -2
- package/dist/nextcloud-vue.css +232 -187
- package/l10n/en.json +5 -1
- package/l10n/nl.json +5 -1
- package/package.json +1 -1
- package/src/components/CnActionsBar/CnActionsBar.md +1 -0
- package/src/components/CnActionsBar/CnActionsBar.vue +31 -4
- package/src/components/CnChartWidget/CnChartWidget.md +3 -2
- package/src/components/CnChartWidget/CnChartWidget.vue +42 -4
- package/src/components/CnDashboardPage/CnDashboardPage.vue +21 -1
- package/src/components/CnIndexPage/CnIndexPage.md +5 -1
- package/src/components/CnIndexPage/CnIndexPage.vue +74 -6
- package/src/components/CnIndexPage/useNamedSource.js +26 -2
- package/src/components/CnMenuWidget/CnMenuWidget.vue +25 -1
- package/src/components/CnQuickFilterBar/CnQuickFilterBar.md +1 -0
- package/src/components/CnQuickFilterBar/CnQuickFilterBar.vue +159 -5
- package/src/components/CnWidgetObjectTable/CnWidgetObjectTable.vue +2 -23
- package/src/composables/indexSources.js +9 -0
- package/src/css/look-board-index.css +10 -0
- package/src/schemas/app-manifest-v2.schema.json +55 -3
- package/src/utils/builtInFormatters.js +24 -4
- package/src/utils/rowClassRules.js +39 -0
- package/src/utils/validateManifestV2.compiled.js +3 -3
- package/src/utils/visibleWhen.js +19 -2
|
@@ -50,6 +50,7 @@ import { resolveFilterMap } from '../../utils/routeFilters.js';
|
|
|
50
50
|
import { DEFAULT_ROW_ACTION_FIELD, withoutViewWhenRowOpensDetail, availableRowActions, refusalReasonFor, undeclaredRowActions } from '../../utils/rowActionAvailability.js';
|
|
51
51
|
import { isRowActionVisible, rowActionPayload } from '../../utils/rowActionItem.js';
|
|
52
52
|
import { isNewTabClick, preventMiddleClickAutoscroll, isRowMiddleClick, isNewTabHandled, markNewTabHandled } from '../../utils/rowAuxClick.js';
|
|
53
|
+
import { compileRowClass } from '../../utils/rowClassRules.js';
|
|
53
54
|
import { DEFAULT_ROW_INDICATOR_CAP } from '../../utils/rowIndicators.js';
|
|
54
55
|
import { viewMatchesScope, extractViewState, buildRouteQueryFromViewState, extractViewStateFromRouteQuery, buildViewCreatePayload, savedViewScope, normalizeSharedWith } from '../../utils/savedViewHelpers.js';
|
|
55
56
|
import { fieldsFromSchema, columnsFromSchema } from '../../utils/schema.js';
|
|
@@ -700,6 +701,17 @@ var script = {
|
|
|
700
701
|
default: '',
|
|
701
702
|
},
|
|
702
703
|
|
|
704
|
+
/**
|
|
705
|
+
* Board look: draw the bulk band before anything is selected too, its
|
|
706
|
+
* buttons disabled until there is a selection (DqZaken, DqWerkbord).
|
|
707
|
+
* Manifest key `config.bulkBandAlways`. Only when the band has an
|
|
708
|
+
* action to offer.
|
|
709
|
+
*/
|
|
710
|
+
bulkBandAlways: {
|
|
711
|
+
type: Boolean,
|
|
712
|
+
default: false,
|
|
713
|
+
},
|
|
714
|
+
|
|
703
715
|
/**
|
|
704
716
|
* Board look: the 13px hint after the bulk band's buttons ("See what
|
|
705
717
|
* changes first, then run it"). Manifest key `config.bulkHint`.
|
|
@@ -881,6 +893,21 @@ var script = {
|
|
|
881
893
|
default: null,
|
|
882
894
|
},
|
|
883
895
|
|
|
896
|
+
/**
|
|
897
|
+
* Where the quick-filter chips sit (manifest `config.quickFilterPlacement`).
|
|
898
|
+
* `''` (the default) as before. `'toolbar'` keeps them on one row with
|
|
899
|
+
* the Filter button and the view switch, in whatever width that row has
|
|
900
|
+
* beside a side panel (DqTeamwachtrij): the chips take the room the
|
|
901
|
+
* buttons leave, and those that do not fit move into the overflow chip.
|
|
902
|
+
*
|
|
903
|
+
* @type {''|'toolbar'}
|
|
904
|
+
*/
|
|
905
|
+
quickFilterPlacement: {
|
|
906
|
+
type: String,
|
|
907
|
+
default: '',
|
|
908
|
+
validator: (v) => ['', 'toolbar'].includes(v),
|
|
909
|
+
},
|
|
910
|
+
|
|
884
911
|
/**
|
|
885
912
|
* How the quick filters render: `'chips'` (pill strip, default) or
|
|
886
913
|
* `'dropdown'` (a single `NcSelect`). Sourced from the manifest as
|
|
@@ -1457,9 +1484,18 @@ var script = {
|
|
|
1457
1484
|
default: 'Loading…',
|
|
1458
1485
|
},
|
|
1459
1486
|
|
|
1460
|
-
/**
|
|
1487
|
+
/**
|
|
1488
|
+
* CSS class(es) for a row: a function `(row) => string`, or (manifest
|
|
1489
|
+
* `config.rowClass`) rules `[{ when: { field, op?, value }, class }]`,
|
|
1490
|
+
* each adding its class to a row whose field compares to the value
|
|
1491
|
+
* (the `visibleWhen` operators, `@today` included). DqTaken marks an
|
|
1492
|
+
* overdue task: `{ when: { field: "dueAt", op: "lt", value: "@today" },
|
|
1493
|
+
* class: "cn-row--overdue" }`.
|
|
1494
|
+
*
|
|
1495
|
+
* @type {((row: object) => string)|Array<{when: {field: string, op?: string, value: unknown}, class: string}>|null}
|
|
1496
|
+
*/
|
|
1461
1497
|
rowClass: {
|
|
1462
|
-
type: Function,
|
|
1498
|
+
type: [Function, Array],
|
|
1463
1499
|
default: null,
|
|
1464
1500
|
},
|
|
1465
1501
|
|
|
@@ -2541,6 +2577,10 @@ var script = {
|
|
|
2541
2577
|
//
|
|
2542
2578
|
// Seeded from the route query so a shared link lands filtered, the
|
|
2543
2579
|
// same way `_order` and a deep-link filter already do for self-fetch.
|
|
2580
|
+
// The page a paging named source shows: page 1 at the source config's
|
|
2581
|
+
// `limit` (20 by default), moved by the pager.
|
|
2582
|
+
const namedPageSize = Number(props.sourceConfig && props.sourceConfig.limit) > 0 ? Number(props.sourceConfig.limit) : 20;
|
|
2583
|
+
const namedPaging = ref({ page: 1, limit: namedPageSize });
|
|
2544
2584
|
const namedActiveFilters = ref(namedFiltersFromRoute(getCurrentInstance(), props));
|
|
2545
2585
|
|
|
2546
2586
|
const {
|
|
@@ -2549,7 +2589,7 @@ var script = {
|
|
|
2549
2589
|
namedRows,
|
|
2550
2590
|
namedLoading,
|
|
2551
2591
|
namedQuickFilters,
|
|
2552
|
-
} = useNamedSource(props, { activeQuickFilterIndex, activeFilters: namedActiveFilters });
|
|
2592
|
+
} = useNamedSource(props, { activeQuickFilterIndex, activeFilters: namedActiveFilters, paging: namedPaging });
|
|
2553
2593
|
|
|
2554
2594
|
return {
|
|
2555
2595
|
isBoard: isBoardLook,
|
|
@@ -2561,6 +2601,7 @@ var script = {
|
|
|
2561
2601
|
namedLoading,
|
|
2562
2602
|
namedQuickFilters,
|
|
2563
2603
|
namedActiveFilters,
|
|
2604
|
+
namedPaging,
|
|
2564
2605
|
contextMenuOpen,
|
|
2565
2606
|
contextMenuRow,
|
|
2566
2607
|
openContextMenu,
|
|
@@ -3523,6 +3564,9 @@ var script = {
|
|
|
3523
3564
|
const loaded = this.effectivePagination || {};
|
|
3524
3565
|
return Number(loaded.page || 1) < Number(loaded.pages || 1)
|
|
3525
3566
|
}
|
|
3567
|
+
if (this.isNamedSource && this.namedSource && this.namedSource.pages === true) {
|
|
3568
|
+
return Number(this.effectivePagination?.pages || 1) > 1
|
|
3569
|
+
}
|
|
3526
3570
|
return Number(this.pagination?.pages || 1) > 1
|
|
3527
3571
|
},
|
|
3528
3572
|
|
|
@@ -4562,7 +4606,13 @@ var script = {
|
|
|
4562
4606
|
// A named source that reports its own total (the search source)
|
|
4563
4607
|
// gives the count line its number.
|
|
4564
4608
|
if (this.isNamedSource && this.namedSource && typeof this.namedSource.total === 'function') {
|
|
4565
|
-
|
|
4609
|
+
const total = this.namedSource.total();
|
|
4610
|
+
// A source with `pages: true` gets the pager the self-fetched lists draw.
|
|
4611
|
+
if (this.namedSource.pages === true) {
|
|
4612
|
+
const { page, limit } = this.namedPaging;
|
|
4613
|
+
return { page, limit, total, pages: Math.max(1, Math.ceil(total / limit)) }
|
|
4614
|
+
}
|
|
4615
|
+
return { ...(this.pagination || {}), total }
|
|
4566
4616
|
}
|
|
4567
4617
|
return this.isSelfFetchMode ? this.list.pagination.value : this.pagination
|
|
4568
4618
|
},
|
|
@@ -4815,6 +4865,16 @@ var script = {
|
|
|
4815
4865
|
return (this.effectiveSchema && this.effectiveSchema.slug) || ''
|
|
4816
4866
|
},
|
|
4817
4867
|
|
|
4868
|
+
/**
|
|
4869
|
+
* The row-class function the table takes: a function as given, or the
|
|
4870
|
+
* manifest's rules compiled.
|
|
4871
|
+
*
|
|
4872
|
+
* @return {?(row: object) => string}
|
|
4873
|
+
*/
|
|
4874
|
+
compiledRowClass() {
|
|
4875
|
+
return compileRowClass(this.rowClass)
|
|
4876
|
+
},
|
|
4877
|
+
|
|
4818
4878
|
/** @return {number} How many leading columns the person pinned (0 while a saved view's columns are applied). */
|
|
4819
4879
|
pinnedColumnCount() {
|
|
4820
4880
|
if (!this.personalColumns || Array.isArray(this.appliedViewColumns) || !this.personalLayout) {
|
|
@@ -7539,6 +7599,9 @@ var script = {
|
|
|
7539
7599
|
if (this.isSelfFetchMode && typeof this.list.onPageChange === 'function') {
|
|
7540
7600
|
this.list.onPageChange(page);
|
|
7541
7601
|
}
|
|
7602
|
+
if (this.isNamedSource && this.namedSource && this.namedSource.pages === true) {
|
|
7603
|
+
this.namedPaging = { ...this.namedPaging, page };
|
|
7604
|
+
}
|
|
7542
7605
|
this.$emit('page-changed', page);
|
|
7543
7606
|
},
|
|
7544
7607
|
|
|
@@ -7554,6 +7617,9 @@ var script = {
|
|
|
7554
7617
|
if (this.isSelfFetchMode && typeof this.list.onPageSizeChange === 'function') {
|
|
7555
7618
|
this.list.onPageSizeChange(size);
|
|
7556
7619
|
}
|
|
7620
|
+
if (this.isNamedSource && this.namedSource && this.namedSource.pages === true) {
|
|
7621
|
+
this.namedPaging = { page: 1, limit: size };
|
|
7622
|
+
}
|
|
7557
7623
|
this.$emit('page-size-changed', size);
|
|
7558
7624
|
},
|
|
7559
7625
|
|