@conduction/nextcloud-vue 2.144.0 → 2.145.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/CnActionDialog/CnActionDialog.vue.js +1 -1
- package/dist/esm/components/CnActionDialog/CnActionDialog.vue2.js.map +1 -1
- package/dist/esm/components/CnActionDialog/CnActionDialog.vue3.js +1 -0
- package/dist/esm/components/CnActionDialog/CnActionDialog.vue3.js.map +1 -1
- package/dist/esm/components/CnAuditTrailCard/CnAuditTrailCard.vue.js +1 -1
- package/dist/esm/components/CnAuditTrailCard/CnAuditTrailCard.vue2.js +55 -2
- package/dist/esm/components/CnAuditTrailCard/CnAuditTrailCard.vue2.js.map +1 -1
- package/dist/esm/components/CnAuditTrailCard/CnAuditTrailCard.vue3.js.map +1 -1
- package/dist/esm/components/CnAuditTrailWidget/CnAuditTrailWidget.vue.js +1 -1
- package/dist/esm/components/CnAuditTrailWidget/CnAuditTrailWidget.vue2.js +16 -0
- package/dist/esm/components/CnAuditTrailWidget/CnAuditTrailWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnAuditTrailWidget/CnAuditTrailWidget.vue3.js +3 -1
- package/dist/esm/components/CnAuditTrailWidget/CnAuditTrailWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHeaderItems.vue.js +1 -1
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHeaderItems.vue2.js +1 -1
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHeaderItems.vue2.js.map +1 -1
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHeaderItems.vue3.js +3 -3
- package/dist/esm/components/CnDetailWidgetHost/CnDetailWidgetHeaderItems.vue3.js.map +1 -1
- package/dist/esm/components/CnFieldListWidget/CnFieldListWidget.vue.js +1 -1
- package/dist/esm/components/CnFieldListWidget/CnFieldListWidget.vue2.js +2 -2
- package/dist/esm/components/CnFieldListWidget/CnFieldListWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnFieldListWidget/CnFieldListWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js +6 -3
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue2.js.map +1 -1
- package/dist/esm/components/CnIndexPage/CnIndexPage.vue3.js.map +1 -1
- package/dist/esm/components/CnMailTab/CnMailTab.vue.js +1 -1
- package/dist/esm/components/CnMailTab/CnMailTab.vue2.js.map +1 -1
- package/dist/esm/components/CnMailTab/CnMailTab.vue3.js +2 -2
- package/dist/esm/components/CnMailTab/CnMailTab.vue3.js.map +1 -1
- package/dist/esm/components/CnNotificationMatrix/CnNotificationMatrix.vue.js +1 -1
- package/dist/esm/components/CnNotificationMatrix/CnNotificationMatrix.vue2.js.map +1 -1
- package/dist/esm/components/CnNotificationMatrix/CnNotificationMatrix.vue3.js.map +1 -1
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue.js +1 -1
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue2.js +73 -12
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue3.js +165 -126
- package/dist/esm/components/CnRecordListWidget/CnRecordListWidget.vue3.js.map +1 -1
- package/dist/esm/components/CnSettingsField/CnSettingsField.vue.js +1 -1
- package/dist/esm/components/CnSettingsField/CnSettingsField.vue2.js +14 -0
- package/dist/esm/components/CnSettingsField/CnSettingsField.vue2.js.map +1 -1
- package/dist/esm/components/CnSettingsField/CnSettingsField.vue3.js +2 -1
- package/dist/esm/components/CnSettingsField/CnSettingsField.vue3.js.map +1 -1
- package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue.js +1 -1
- package/dist/esm/components/CnWidgetObjectTable/CnWidgetObjectTable.vue2.js +13 -8
- 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/components/CnWorkspaceFilterWidget/CnWorkspaceFilterWidget.vue.js +1 -1
- package/dist/esm/components/CnWorkspaceFilterWidget/CnWorkspaceFilterWidget.vue2.js +10 -2
- package/dist/esm/components/CnWorkspaceFilterWidget/CnWorkspaceFilterWidget.vue2.js.map +1 -1
- package/dist/esm/components/CnWorkspaceFilterWidget/CnWorkspaceFilterWidget.vue3.js.map +1 -1
- package/dist/esm/composables/indexSources.js +35 -9
- package/dist/esm/composables/indexSources.js.map +1 -1
- package/dist/esm/l10n/nl.json.js +2 -0
- package/dist/esm/l10n/nl.json.js.map +1 -1
- package/dist/esm/library-style.js +1 -1
- package/dist/esm/nextcloud-vue.css +742 -326
- package/dist/esm/utils/builtInFormatters.js +18 -1
- package/dist/esm/utils/builtInFormatters.js.map +1 -1
- package/dist/esm/utils/localHeaderRows.js +95 -0
- package/dist/esm/utils/localHeaderRows.js.map +1 -0
- package/dist/nextcloud-vue.cjs.js +514 -179
- package/dist/nextcloud-vue.cjs.js.map +2 -2
- package/dist/nextcloud-vue.css +742 -326
- package/l10n/nl.json +2 -0
- package/package.json +1 -1
- package/src/components/CnActionDialog/CnActionDialog.vue +8 -1
- package/src/components/CnAuditTrailCard/CnAuditTrailCard.vue +55 -2
- package/src/components/CnAuditTrailWidget/CnAuditTrailWidget.vue +18 -0
- package/src/components/CnDetailWidgetHost/CnDetailWidgetHeaderItems.vue +2 -1
- package/src/components/CnFieldListWidget/CnFieldListWidget.vue +2 -2
- package/src/components/CnIndexPage/CnIndexPage.vue +6 -3
- package/src/components/CnMailTab/CnMailTab.vue +6 -4
- package/src/components/CnNotificationMatrix/CnNotificationMatrix.vue +4 -1
- package/src/components/CnRecordListWidget/CnRecordListWidget.vue +131 -20
- package/src/components/CnSettingsField/CnSettingsField.vue +15 -0
- package/src/components/CnWidgetObjectTable/CnWidgetObjectTable.vue +13 -8
- package/src/components/CnWorkspaceFilterWidget/CnWorkspaceFilterWidget.vue +10 -2
- package/src/composables/indexSources.js +35 -9
- package/src/css/dialog.css +18 -9
- package/src/css/look-board-detail.css +219 -23
- package/src/css/look-board-index.css +38 -4
- package/src/css/look-board.css +138 -8
- package/src/css/table.css +8 -1
- package/src/utils/builtInFormatters.js +17 -0
- package/src/utils/localHeaderRows.js +91 -0
|
@@ -5949,6 +5949,8 @@ var translations$c = {
|
|
|
5949
5949
|
"Absent today": "Vandaag afwezig",
|
|
5950
5950
|
"{message} until {time}": "{message} tot {time}",
|
|
5951
5951
|
Away: "Afwezig",
|
|
5952
|
+
Present: "Aanwezig",
|
|
5953
|
+
"Absent until {date}": "Afwezig tot {date}",
|
|
5952
5954
|
Busy: "Bezet",
|
|
5953
5955
|
"No one in the team": "Niemand in het team",
|
|
5954
5956
|
"Also replace the criteria with the current filters": "Vervang ook de criteria door de huidige filters",
|
|
@@ -98788,6 +98790,17 @@ const analyticsIntegration = {
|
|
|
98788
98790
|
defaultSize: { w: 4, h: 3 },
|
|
98789
98791
|
};
|
|
98790
98792
|
|
|
98793
|
+
/**
|
|
98794
|
+
* A changed value as an entry records it: OpenRegister writes `{ old, new }`,
|
|
98795
|
+
* other sources the value itself.
|
|
98796
|
+
*
|
|
98797
|
+
* @param {unknown} value The recorded change.
|
|
98798
|
+
* @return {unknown} The value it changed to.
|
|
98799
|
+
*/
|
|
98800
|
+
function newValueOf(value) {
|
|
98801
|
+
return value !== null && typeof value === 'object' && Object.hasOwn(value, 'new') ? value.new : value
|
|
98802
|
+
}
|
|
98803
|
+
|
|
98791
98804
|
/**
|
|
98792
98805
|
* @param {object} entry An audit entry.
|
|
98793
98806
|
* @return {number} When it happened, in ms; 0 when unreadable.
|
|
@@ -98918,6 +98931,18 @@ var script$7D = {
|
|
|
98918
98931
|
* @type {{[key: string]: {[value: string]: string}}|null}
|
|
98919
98932
|
*/
|
|
98920
98933
|
valueLabels: { type: Object, default: null },
|
|
98934
|
+
/**
|
|
98935
|
+
* What happened, in words, by the field an entry changed: rules
|
|
98936
|
+
* `[{ action?, field, to?, label }]`, the first whose `field` the entry
|
|
98937
|
+
* changed (to `to`, when given) wins over `actionLabels`. A label fills
|
|
98938
|
+
* the same tokens, plus `{object.<path>}` from `object`
|
|
98939
|
+
* ("Version {object.version} published" for `isDraft` set to false).
|
|
98940
|
+
*
|
|
98941
|
+
* @type {Array<{action?: string, field: string, to?: unknown, label: string}>}
|
|
98942
|
+
*/
|
|
98943
|
+
changeLabels: { type: Array, default: () => [] },
|
|
98944
|
+
/** The audited record, for `{object.<path>}` in a label; null without one. */
|
|
98945
|
+
object: { type: Object, default: null },
|
|
98921
98946
|
/**
|
|
98922
98947
|
* Records beside the object whose events belong in its history:
|
|
98923
98948
|
* `[{ as, register, schema, filter, limit? }]`. The card lists the
|
|
@@ -99110,12 +99135,16 @@ var script$7D = {
|
|
|
99110
99135
|
* @return {string} The line.
|
|
99111
99136
|
*/
|
|
99112
99137
|
formatAction(entry) {
|
|
99113
|
-
const label = this.labelFor(entry);
|
|
99138
|
+
const label = this.changeLabelFor(entry) ?? this.labelFor(entry);
|
|
99114
99139
|
if (label !== null) {
|
|
99115
99140
|
return label
|
|
99116
99141
|
.replace('{actor}', this.actorName(entry))
|
|
99117
99142
|
.replace('{state}', entry.stateAfter || '')
|
|
99118
99143
|
.replace(/\{changed\.([\w-]+)\}/g, (match, key) => this.changedValue(entry, key))
|
|
99144
|
+
.replace(/\{object\.([\w.-]+)\}/g, (match, path) => {
|
|
99145
|
+
const value = this.object ? readPath$8(this.object, path) : undefined;
|
|
99146
|
+
return value === null || value === undefined || typeof value === 'object' ? '' : String(value)
|
|
99147
|
+
})
|
|
99119
99148
|
}
|
|
99120
99149
|
const action = entry.action || entry.event || this.actionLabel;
|
|
99121
99150
|
return entry.stateAfter ? `${action} (${entry.stateAfter})` : action
|
|
@@ -99132,7 +99161,7 @@ var script$7D = {
|
|
|
99132
99161
|
*/
|
|
99133
99162
|
changedValue(entry, key) {
|
|
99134
99163
|
const changed = entry && typeof entry.changed === 'object' && entry.changed !== null ? entry.changed : {};
|
|
99135
|
-
const value = changed[key];
|
|
99164
|
+
const value = newValueOf(changed[key]);
|
|
99136
99165
|
if (value === null || value === undefined || typeof value === 'object') {
|
|
99137
99166
|
return ''
|
|
99138
99167
|
}
|
|
@@ -99140,6 +99169,31 @@ var script$7D = {
|
|
|
99140
99169
|
return words && typeof words[value] === 'string' ? words[value] : String(value)
|
|
99141
99170
|
},
|
|
99142
99171
|
|
|
99172
|
+
/**
|
|
99173
|
+
* The `changeLabels` rule an entry matches: the first whose field the
|
|
99174
|
+
* entry changed, for its action and to its value when the rule names them.
|
|
99175
|
+
*
|
|
99176
|
+
* @param {object} entry The entry.
|
|
99177
|
+
* @return {string|null} The label, or null when no rule matches.
|
|
99178
|
+
*/
|
|
99179
|
+
changeLabelFor(entry) {
|
|
99180
|
+
const changed = entry && typeof entry.changed === 'object' && entry.changed !== null ? entry.changed : {};
|
|
99181
|
+
const action = entry.action || entry.event || '';
|
|
99182
|
+
for (const rule of Array.isArray(this.changeLabels) ? this.changeLabels : []) {
|
|
99183
|
+
if (!rule || typeof rule.label !== 'string' || rule.label === '' || typeof rule.field !== 'string' || !Object.hasOwn(changed, rule.field)) {
|
|
99184
|
+
continue
|
|
99185
|
+
}
|
|
99186
|
+
if (rule.action && rule.action !== action) {
|
|
99187
|
+
continue
|
|
99188
|
+
}
|
|
99189
|
+
if (Object.hasOwn(rule, 'to') && String(newValueOf(changed[rule.field])) !== String(rule.to)) {
|
|
99190
|
+
continue
|
|
99191
|
+
}
|
|
99192
|
+
return rule.label
|
|
99193
|
+
}
|
|
99194
|
+
return null
|
|
99195
|
+
},
|
|
99196
|
+
|
|
99143
99197
|
/**
|
|
99144
99198
|
* The `actionLabels` entry for an entry: by action and state first,
|
|
99145
99199
|
* then by action.
|
|
@@ -99332,7 +99386,7 @@ function render$7C(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
99332
99386
|
}
|
|
99333
99387
|
|
|
99334
99388
|
script$7D.render = render$7C;
|
|
99335
|
-
script$7D.__scopeId = "data-v-
|
|
99389
|
+
script$7D.__scopeId = "data-v-7e58faa4";
|
|
99336
99390
|
const __sfc_main$7x = script$7D;
|
|
99337
99391
|
|
|
99338
99392
|
// SPDX-FileCopyrightText: 2026 Conduction B.V.
|
|
@@ -143215,7 +143269,9 @@ function fillRowTemplate(template, row) {
|
|
|
143215
143269
|
* template, "{case.title}") or `linkedField` (a path) fills the "Linked"
|
|
143216
143270
|
* column, drawn when a kind declares one; `sourceConfig.linkedLabel` names it.
|
|
143217
143271
|
* `subtitleTemplate` ("Case {identifier}", translated) fills the line under a
|
|
143218
|
-
* result, else `subtitleField
|
|
143272
|
+
* result, else `subtitleField`; `subtitleResolve` (`{ field, schema, labelField,
|
|
143273
|
+
* as }`) names a referenced object for it as `{as}`. `sourceConfig.titleWrap`
|
|
143274
|
+
* wraps a long result title instead of cutting it.
|
|
143219
143275
|
* `linkedUser: true` reads that value as a user id and shows the user's
|
|
143220
143276
|
* display name. `sourceConfig.columnWidths` sets a width per column key.
|
|
143221
143277
|
* The page's title and count line can name the term as `{term}`, and the
|
|
@@ -143332,9 +143388,32 @@ function searchSource(config = {}, context = {}) {
|
|
|
143332
143388
|
return ''
|
|
143333
143389
|
};
|
|
143334
143390
|
|
|
143335
|
-
|
|
143391
|
+
// `subtitleResolve`: `{ field, schema, register?, labelField?, as }` names
|
|
143392
|
+
// the object a reference points at, for the subtitle template as `{as}`.
|
|
143393
|
+
const subtitleLabels = async (kind) => {
|
|
143394
|
+
const resolve = kind.subtitleResolve;
|
|
143395
|
+
if (!resolve || !resolve.schema || !resolve.field) {
|
|
143396
|
+
return null
|
|
143397
|
+
}
|
|
143398
|
+
const objects = await fetchReferenceObjects({ register: resolve.register || kind.register, schema: resolve.schema }).catch(() => []);
|
|
143399
|
+
const labels = new Map();
|
|
143400
|
+
for (const object of objects) {
|
|
143401
|
+
const id = object.id || object.uuid || (object['@self'] && object['@self'].id);
|
|
143402
|
+
const label = readPath$8(object, resolve.labelField || 'title') ?? object.name;
|
|
143403
|
+
if (id !== undefined && label !== undefined && label !== null) {
|
|
143404
|
+
labels.set(String(id), String(label));
|
|
143405
|
+
}
|
|
143406
|
+
}
|
|
143407
|
+
return labels
|
|
143408
|
+
};
|
|
143409
|
+
|
|
143410
|
+
const subtitleOf = (kind, object, labels = null) => {
|
|
143336
143411
|
if (kind.subtitleTemplate) {
|
|
143337
|
-
|
|
143412
|
+
const resolve = kind.subtitleResolve;
|
|
143413
|
+
const data = labels && resolve
|
|
143414
|
+
? { ...object, [resolve.as || resolve.field]: labels.get(String(readPath$8(object, resolve.field) ?? '')) ?? '' }
|
|
143415
|
+
: object;
|
|
143416
|
+
return fillTemplate(translate(kind.subtitleTemplate), data)
|
|
143338
143417
|
}
|
|
143339
143418
|
return kind.subtitleField ? String(readPath$8(object, kind.subtitleField) ?? '') : ''
|
|
143340
143419
|
};
|
|
@@ -143353,6 +143432,7 @@ function searchSource(config = {}, context = {}) {
|
|
|
143353
143432
|
const results = Array.isArray(body.results) ? body.results : (Array.isArray(body) ? body : []);
|
|
143354
143433
|
const labels = kind.statusResolve && kind.statusField ? await statusLabels(kind) : null;
|
|
143355
143434
|
const userNames = kind.linkedUser === true ? await linkedUserNames(kind, results) : null;
|
|
143435
|
+
const subtitleNames = await subtitleLabels(kind);
|
|
143356
143436
|
return {
|
|
143357
143437
|
total: typeof body.total === 'number' ? body.total : results.length,
|
|
143358
143438
|
rows: results.map((object) => {
|
|
@@ -143367,7 +143447,7 @@ function searchSource(config = {}, context = {}) {
|
|
|
143367
143447
|
kindLabel: kind.label,
|
|
143368
143448
|
kindText: kindTextOf(kind, object),
|
|
143369
143449
|
title: String(readPath$8(object, kind.titleField || 'title') ?? object.name ?? id ?? ''),
|
|
143370
|
-
subtitle: subtitleOf(kind, object),
|
|
143450
|
+
subtitle: subtitleOf(kind, object, subtitleNames),
|
|
143371
143451
|
status,
|
|
143372
143452
|
linked: userNames ? (userNames.get(linkedOf(kind, object)) || linkedOf(kind, object)) : linkedOf(kind, object),
|
|
143373
143453
|
href: kind.href ? router.generateUrl(fillRowTemplate(kind.href, { ...object, id })) : '',
|
|
@@ -143478,7 +143558,7 @@ function searchSource(config = {}, context = {}) {
|
|
|
143478
143558
|
loading: () => state.loading,
|
|
143479
143559
|
|
|
143480
143560
|
columns: withColumnWidths([
|
|
143481
|
-
{ key: 'title', label: l10n.translate('nextcloud-vue', 'Result'), secondary: 'subtitle', sortable: true },
|
|
143561
|
+
{ key: 'title', label: l10n.translate('nextcloud-vue', 'Result'), secondary: 'subtitle', sortable: true, ...(config && config.titleWrap === true ? { cellClass: 'cn-cell--wrap' } : {}) },
|
|
143482
143562
|
// `kindAsText`: what one row is, as plain text ("Zaak", "Lantaarnpaal",
|
|
143483
143563
|
// DqZoekresultaten), instead of the plural kind as a pill.
|
|
143484
143564
|
config && config.kindAsText === true
|
|
@@ -143725,10 +143805,10 @@ function usersSource() {
|
|
|
143725
143805
|
loading: () => state.loading,
|
|
143726
143806
|
|
|
143727
143807
|
columns: [
|
|
143728
|
-
{ key: 'displayname', label: l10n.translate('nextcloud-vue', 'Employee'), secondary: 'function' },
|
|
143729
|
-
{ key: 'roles', label: l10n.translate('nextcloud-vue', 'Roles') },
|
|
143730
|
-
{ key: 'email', label: l10n.translate('nextcloud-vue', 'E-mail') },
|
|
143731
|
-
{ key: 'today', label: l10n.translate('nextcloud-vue', 'Today'), widget: 'badge', widgetProps: { colorMap: presenceColors, variant: 'warning' } },
|
|
143808
|
+
{ key: 'displayname', label: l10n.translate('nextcloud-vue', 'Employee'), secondary: 'function', sortable: true, cellClass: 'cn-cell--lead' },
|
|
143809
|
+
{ key: 'roles', label: l10n.translate('nextcloud-vue', 'Roles'), sortable: true },
|
|
143810
|
+
{ key: 'email', label: l10n.translate('nextcloud-vue', 'E-mail'), sortable: true },
|
|
143811
|
+
{ key: 'today', label: l10n.translate('nextcloud-vue', 'Today'), widget: 'badge', widgetProps: { colorMap: presenceColors, variant: 'warning' }, sortable: true },
|
|
143732
143812
|
],
|
|
143733
143813
|
|
|
143734
143814
|
searchFields: {
|
|
@@ -184972,7 +185052,7 @@ var script$5G = {
|
|
|
184972
185052
|
components: { CnIcon: __sfc_main$8o, CnStatusBadge: __sfc_main$8g, NcButton: vue.NcButton },
|
|
184973
185053
|
|
|
184974
185054
|
props: {
|
|
184975
|
-
/** The reported header: `{ pill, note, actions: [{ label, icon?, variant?, run }] }
|
|
185055
|
+
/** The reported header: `{ pill, note, actions: [{ label, icon?, variant?, add?, run }] }`; `add: true` marks a list's Add. */
|
|
184976
185056
|
header: {
|
|
184977
185057
|
type: Object,
|
|
184978
185058
|
required: true,
|
|
@@ -185038,7 +185118,7 @@ function render$5F(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
185038
185118
|
: (vue$1.openBlock(), vue$1.createElementBlock("button", {
|
|
185039
185119
|
key: 1,
|
|
185040
185120
|
type: "button",
|
|
185041
|
-
class: "cn-detail-page__catalog-action",
|
|
185121
|
+
class: vue$1.normalizeClass(["cn-detail-page__catalog-action", { 'cn-detail-page__catalog-action--add': action.add === true }]),
|
|
185042
185122
|
"data-testid": "cn-detail-widget-header-action",
|
|
185043
185123
|
onClick: $event => (action.run())
|
|
185044
185124
|
}, [
|
|
@@ -185050,14 +185130,14 @@ function render$5F(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
185050
185130
|
}, null, 8 /* PROPS */, ["name"]))
|
|
185051
185131
|
: vue$1.createCommentVNode("v-if", true),
|
|
185052
185132
|
vue$1.createTextVNode(" " + vue$1.toDisplayString(action.label), 1 /* TEXT */)
|
|
185053
|
-
],
|
|
185133
|
+
], 10 /* CLASS, PROPS */, _hoisted_3$4Q))
|
|
185054
185134
|
], 64 /* STABLE_FRAGMENT */))
|
|
185055
185135
|
}), 128 /* KEYED_FRAGMENT */))
|
|
185056
185136
|
]))
|
|
185057
185137
|
}
|
|
185058
185138
|
|
|
185059
185139
|
script$5G.render = render$5F;
|
|
185060
|
-
script$5G.__scopeId = "data-v-
|
|
185140
|
+
script$5G.__scopeId = "data-v-7186a696";
|
|
185061
185141
|
const __sfc_main$5A = script$5G;
|
|
185062
185142
|
|
|
185063
185143
|
// SPDX-FileCopyrightText: 2026 Conduction B.V.
|
|
@@ -185443,6 +185523,22 @@ var script$5F = {
|
|
|
185443
185523
|
.map(([key, text]) => [key, translate(text)]))
|
|
185444
185524
|
},
|
|
185445
185525
|
|
|
185526
|
+
/**
|
|
185527
|
+
* `content.changeLabels`, each rule's label through the app's translate.
|
|
185528
|
+
*
|
|
185529
|
+
* @return {Array<object>}
|
|
185530
|
+
*/
|
|
185531
|
+
changeLabels() {
|
|
185532
|
+
const rules = this.content.changeLabels;
|
|
185533
|
+
if (!Array.isArray(rules)) {
|
|
185534
|
+
return []
|
|
185535
|
+
}
|
|
185536
|
+
const translate = typeof this.cnTranslate === 'function' ? this.cnTranslate : (text) => text;
|
|
185537
|
+
return rules
|
|
185538
|
+
.filter((rule) => rule && typeof rule.label === 'string' && rule.label !== '')
|
|
185539
|
+
.map((rule) => ({ ...rule, label: translate(rule.label) }))
|
|
185540
|
+
},
|
|
185541
|
+
|
|
185446
185542
|
/**
|
|
185447
185543
|
* `content.footnote`, a muted line under the trail with the record's
|
|
185448
185544
|
* fields filled in ("Reference {identifier}"); '' when a field is empty.
|
|
@@ -185553,15 +185649,17 @@ function render$5E(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
185553
185649
|
excludeActions: $options.resolvedExcludeActions,
|
|
185554
185650
|
actionLabels: $options.actionLabels,
|
|
185555
185651
|
valueLabels: $options.valueLabels,
|
|
185652
|
+
changeLabels: $options.changeLabels,
|
|
185653
|
+
object: $options.ctx.object || $options.ctx.objectData || null,
|
|
185556
185654
|
relatedSources: $options.relatedSources,
|
|
185557
185655
|
footnote: $options.footnote
|
|
185558
|
-
}, $options.emptyText ? { noEntriesLabel: $options.emptyText } : {}), null, 16 /* FULL_PROPS */, ["source", "endpoint", "register", "schema", "objectId", "scope", "title", "maxDisplay", "layout", "excludeActions", "actionLabels", "valueLabels", "relatedSources", "footnote"])
|
|
185656
|
+
}, $options.emptyText ? { noEntriesLabel: $options.emptyText } : {}), null, 16 /* FULL_PROPS */, ["source", "endpoint", "register", "schema", "objectId", "scope", "title", "maxDisplay", "layout", "excludeActions", "actionLabels", "valueLabels", "changeLabels", "object", "relatedSources", "footnote"])
|
|
185559
185657
|
]))
|
|
185560
185658
|
: vue$1.createCommentVNode("v-if", true)
|
|
185561
185659
|
}
|
|
185562
185660
|
|
|
185563
185661
|
script$5F.render = render$5E;
|
|
185564
|
-
script$5F.__scopeId = "data-v-
|
|
185662
|
+
script$5F.__scopeId = "data-v-87ba40b4";
|
|
185565
185663
|
const __sfc_main$5z = script$5F;
|
|
185566
185664
|
|
|
185567
185665
|
/** Variants understood by NcNoteCard. */
|
|
@@ -198362,6 +198460,97 @@ function render$5f(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
198362
198460
|
script$5g.render = render$5f;
|
|
198363
198461
|
const __sfc_main$5a = script$5g;
|
|
198364
198462
|
|
|
198463
|
+
/**
|
|
198464
|
+
* SPDX-FileCopyrightText: 2026 Conduction B.V.
|
|
198465
|
+
* SPDX-License-Identifier: EUPL-1.2
|
|
198466
|
+
*
|
|
198467
|
+
* Header sort and filter applied to rows the table already holds (an
|
|
198468
|
+
* `endpointSource` table): the same `{ field, dir }` sort and
|
|
198469
|
+
* `{ paramKey: values[] }` filter map a self-fetching table sends to the
|
|
198470
|
+
* server, read here in the browser.
|
|
198471
|
+
*
|
|
198472
|
+
* @module utils/localHeaderRows
|
|
198473
|
+
*/
|
|
198474
|
+
|
|
198475
|
+
|
|
198476
|
+
/**
|
|
198477
|
+
* A row value as one comparable scalar: an array counts as its joined items.
|
|
198478
|
+
*
|
|
198479
|
+
* @param {unknown} value The raw value.
|
|
198480
|
+
* @return {string|number|null} The value to compare.
|
|
198481
|
+
*/
|
|
198482
|
+
function scalar(value) {
|
|
198483
|
+
if (value === null || value === undefined) {
|
|
198484
|
+
return null
|
|
198485
|
+
}
|
|
198486
|
+
if (Array.isArray(value)) {
|
|
198487
|
+
return value.map((item) => (item && typeof item === 'object' ? (item.title || item.name || '') : String(item))).join(', ')
|
|
198488
|
+
}
|
|
198489
|
+
if (typeof value === 'number' || typeof value === 'boolean') {
|
|
198490
|
+
return typeof value === 'boolean' ? String(value) : value
|
|
198491
|
+
}
|
|
198492
|
+
return typeof value === 'object' ? (value.title || value.name || '') : String(value)
|
|
198493
|
+
}
|
|
198494
|
+
|
|
198495
|
+
/**
|
|
198496
|
+
* Whether a row holds a value the filter entry asks for.
|
|
198497
|
+
*
|
|
198498
|
+
* @param {object} row The row.
|
|
198499
|
+
* @param {string} param The filter key (`field`, `field[like]`, `field[gte]`, `field[lte]`).
|
|
198500
|
+
* @param {Array<string>} values The chosen values.
|
|
198501
|
+
* @return {boolean} True when the row passes.
|
|
198502
|
+
*/
|
|
198503
|
+
function passes$1(row, param, values) {
|
|
198504
|
+
const match = /^(.+)\[(\w+)\]$/.exec(param);
|
|
198505
|
+
const field = match ? match[1] : param;
|
|
198506
|
+
const op = match ? match[2] : '';
|
|
198507
|
+
const value = scalar(row[field]);
|
|
198508
|
+
if (op === CONTAINS_OPERATOR) {
|
|
198509
|
+
const term = String(values[0]).toLowerCase();
|
|
198510
|
+
return value !== null && String(value).toLowerCase().includes(term)
|
|
198511
|
+
}
|
|
198512
|
+
if (op === 'gte' || op === 'lte') {
|
|
198513
|
+
if (value === null) {
|
|
198514
|
+
return false
|
|
198515
|
+
}
|
|
198516
|
+
const left = typeof value === 'number' ? value : String(value);
|
|
198517
|
+
const right = typeof value === 'number' ? Number(values[0]) : String(values[0]);
|
|
198518
|
+
return op === 'gte' ? left >= right : left <= right
|
|
198519
|
+
}
|
|
198520
|
+
return value !== null && values.map(String).includes(String(value))
|
|
198521
|
+
}
|
|
198522
|
+
|
|
198523
|
+
/**
|
|
198524
|
+
* The rows that pass every active header filter, in the header sort's order.
|
|
198525
|
+
*
|
|
198526
|
+
* @param {Array<object>} rows The rows.
|
|
198527
|
+
* @param {{field: string, dir: string}|null} sort The header sort.
|
|
198528
|
+
* @param {object} filters The header filters, `{ paramKey: values[] }`.
|
|
198529
|
+
* @return {Array<object>} The rows to show (the same array when nothing applies).
|
|
198530
|
+
*/
|
|
198531
|
+
function localHeaderRows(rows, sort, filters) {
|
|
198532
|
+
if (!Array.isArray(rows)) {
|
|
198533
|
+
return []
|
|
198534
|
+
}
|
|
198535
|
+
const active = Object.entries(filters || {}).filter(([, values]) => Array.isArray(values) && values.length > 0);
|
|
198536
|
+
let out = active.length > 0 ? rows.filter((row) => row && active.every(([param, values]) => passes$1(row, param, values))) : rows;
|
|
198537
|
+
if (sort && sort.field) {
|
|
198538
|
+
const sign = sort.dir === 'desc' ? -1 : 1;
|
|
198539
|
+
out = [...out].sort((a, b) => {
|
|
198540
|
+
const left = scalar(a && a[sort.field]);
|
|
198541
|
+
const right = scalar(b && b[sort.field]);
|
|
198542
|
+
if (left === null || right === null) {
|
|
198543
|
+
return left === right ? 0 : (left === null ? 1 : -1)
|
|
198544
|
+
}
|
|
198545
|
+
if (typeof left === 'number' && typeof right === 'number') {
|
|
198546
|
+
return sign * (left - right)
|
|
198547
|
+
}
|
|
198548
|
+
return sign * String(left).localeCompare(String(right), undefined, { numeric: true, sensitivity: 'base' })
|
|
198549
|
+
});
|
|
198550
|
+
}
|
|
198551
|
+
return out
|
|
198552
|
+
}
|
|
198553
|
+
|
|
198365
198554
|
/**
|
|
198366
198555
|
* SPDX-FileCopyrightText: 2026 Conduction B.V.
|
|
198367
198556
|
* SPDX-License-Identifier: EUPL-1.2
|
|
@@ -199342,9 +199531,9 @@ var script$5f = {
|
|
|
199342
199531
|
if (this.endpointActive && this.columns.some((col) => col && typeof col === 'object' && col.labelPath)) {
|
|
199343
199532
|
inner.columns = this.labelledColumns(inner.columns || this.columns);
|
|
199344
199533
|
}
|
|
199345
|
-
// Header sort and filter (`sortable`, `filterable`)
|
|
199346
|
-
//
|
|
199347
|
-
if (this.selfFetchActive && (this.sortable !== false || this.filterable)) {
|
|
199534
|
+
// Header sort and filter (`sortable`, `filterable`): the server sorts
|
|
199535
|
+
// and filters a self-fetch; endpoint rows are sorted and filtered here.
|
|
199536
|
+
if ((this.selfFetchActive || this.endpointActive) && (this.sortable !== false || this.filterable)) {
|
|
199348
199537
|
inner.columns = withSortableColumns(inner.columns || this.columns, this.sortable);
|
|
199349
199538
|
inner.filterable = this.filterable;
|
|
199350
199539
|
inner.activeFilters = this.headerFilters;
|
|
@@ -199362,7 +199551,7 @@ var script$5f = {
|
|
|
199362
199551
|
}
|
|
199363
199552
|
}
|
|
199364
199553
|
if (this.endpointActive) {
|
|
199365
|
-
inner.rows = this.endpointRows;
|
|
199554
|
+
inner.rows = localHeaderRows(this.endpointRows, this.headerSort, this.headerFilters);
|
|
199366
199555
|
inner.loading = this.epLoading || this.loading;
|
|
199367
199556
|
}
|
|
199368
199557
|
if (this.rowRoute) {
|
|
@@ -199632,9 +199821,13 @@ var script$5f = {
|
|
|
199632
199821
|
return { ok: false, error: '' }
|
|
199633
199822
|
}
|
|
199634
199823
|
if (action.type !== 'object-op') {
|
|
199635
|
-
|
|
199636
|
-
|
|
199637
|
-
: action;
|
|
199824
|
+
let wrapped = action;
|
|
199825
|
+
if (!action.type || action.type === 'handler') {
|
|
199826
|
+
wrapped = { ...action, args: [...(action.args || []), row] };
|
|
199827
|
+
} else if (action.type === 'navigate' && row) {
|
|
199828
|
+
// A row's navigate reads that row: `{objectId}` / `@objectId` is its id, `@object.<field>` its fields.
|
|
199829
|
+
wrapped = { ...action, target: interpolateActionTarget(action.target, { objectId: row.id, object: row }) };
|
|
199830
|
+
}
|
|
199638
199831
|
if (typeof this.cnDispatchAction === 'function') {
|
|
199639
199832
|
this.cnDispatchAction(wrapped);
|
|
199640
199833
|
} else {
|
|
@@ -199923,7 +200116,7 @@ function render$5e(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
199923
200116
|
}
|
|
199924
200117
|
|
|
199925
200118
|
script$5f.render = render$5e;
|
|
199926
|
-
script$5f.__scopeId = "data-v-
|
|
200119
|
+
script$5f.__scopeId = "data-v-7115cd32";
|
|
199927
200120
|
const __sfc_main$59 = script$5f;
|
|
199928
200121
|
|
|
199929
200122
|
/**
|
|
@@ -243931,7 +244124,7 @@ function render$40(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
243931
244124
|
? (vue$1.openBlock(), vue$1.createElementBlock("h3", _hoisted_4$37, vue$1.toDisplayString($options.heading), 1 /* TEXT */))
|
|
243932
244125
|
: vue$1.createCommentVNode("v-if", true),
|
|
243933
244126
|
($options.description)
|
|
243934
|
-
? (vue$1.openBlock(), vue$1.createElementBlock("
|
|
244127
|
+
? (vue$1.openBlock(), vue$1.createElementBlock("div", _hoisted_5$2K, vue$1.toDisplayString($options.description), 1 /* TEXT */))
|
|
243935
244128
|
: vue$1.createCommentVNode("v-if", true)
|
|
243936
244129
|
]),
|
|
243937
244130
|
($options.hasHeaderActions)
|
|
@@ -244021,7 +244214,7 @@ function render$40(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
244021
244214
|
]))
|
|
244022
244215
|
: vue$1.createCommentVNode("v-if", true),
|
|
244023
244216
|
($options.hint)
|
|
244024
|
-
? (vue$1.openBlock(), vue$1.createElementBlock("
|
|
244217
|
+
? (vue$1.openBlock(), vue$1.createElementBlock("div", _hoisted_8$22, vue$1.toDisplayString($options.hint), 1 /* TEXT */))
|
|
244025
244218
|
: vue$1.createCommentVNode("v-if", true),
|
|
244026
244219
|
($data.error)
|
|
244027
244220
|
? (vue$1.openBlock(), vue$1.createBlock(_component_NcNoteCard, {
|
|
@@ -244072,7 +244265,7 @@ function render$40(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
244072
244265
|
}
|
|
244073
244266
|
|
|
244074
244267
|
script$41.render = render$40;
|
|
244075
|
-
script$41.__scopeId = "data-v-
|
|
244268
|
+
script$41.__scopeId = "data-v-0fa12b0e";
|
|
244076
244269
|
const __sfc_main$41 = script$41;
|
|
244077
244270
|
|
|
244078
244271
|
/**
|
|
@@ -245764,7 +245957,7 @@ var script$3_ = {
|
|
|
245764
245957
|
/**
|
|
245765
245958
|
* The card title row's actions: the add button with `add.placement: "title"`.
|
|
245766
245959
|
*
|
|
245767
|
-
* @return {Array<{label: string, icon: string, run: () => void}>} The actions.
|
|
245960
|
+
* @return {Array<{label: string, icon: string, add: boolean, run: () => void}>} The actions.
|
|
245768
245961
|
*/
|
|
245769
245962
|
titleActions() {
|
|
245770
245963
|
if (!(this.canAdd && this.addTrigger && this.addPlacement === 'title')) {
|
|
@@ -245773,7 +245966,7 @@ var script$3_ = {
|
|
|
245773
245966
|
const run = () => {
|
|
245774
245967
|
this.adding = !this.adding;
|
|
245775
245968
|
};
|
|
245776
|
-
return [{ label: this.addLabel, icon: 'Plus', run }]
|
|
245969
|
+
return [{ label: this.addLabel, icon: 'Plus', add: true, run }]
|
|
245777
245970
|
},
|
|
245778
245971
|
|
|
245779
245972
|
addLabel() {
|
|
@@ -247094,7 +247287,7 @@ function render$3Z(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
247094
247287
|
}
|
|
247095
247288
|
|
|
247096
247289
|
script$3_.render = render$3Z;
|
|
247097
|
-
script$3_.__scopeId = "data-v-
|
|
247290
|
+
script$3_.__scopeId = "data-v-785b1f94";
|
|
247098
247291
|
const __sfc_main$3_ = script$3_;
|
|
247099
247292
|
|
|
247100
247293
|
/**
|
|
@@ -252222,7 +252415,7 @@ function unwrap$1(value) {
|
|
|
252222
252415
|
var script$3Q = {
|
|
252223
252416
|
name: 'CnRecordListWidget',
|
|
252224
252417
|
|
|
252225
|
-
components: { Check, ChevronRight, CnIcon: __sfc_main$8o, CnRecordNoteRows: __sfc_main$3R, CnStatusBadge: __sfc_main$8g, NcActionButton: vue.NcActionButton, NcActionLink: vue.NcActionLink, NcActions: vue.NcActions, NcButton: vue.NcButton, NcLoadingIcon: vue.NcLoadingIcon },
|
|
252418
|
+
components: { Check, ChevronRight, CnIcon: __sfc_main$8o, CnRecordNoteRows: __sfc_main$3R, CnStatusBadge: __sfc_main$8g, FilterOutline, NcActionButton: vue.NcActionButton, NcActionCheckbox: vue.NcActionCheckbox, NcActionLink: vue.NcActionLink, NcActions: vue.NcActions, NcButton: vue.NcButton, NcLoadingIcon: vue.NcLoadingIcon },
|
|
252226
252419
|
|
|
252227
252420
|
inject: {
|
|
252228
252421
|
/** Detail-page object context (`{ objectId, object, register, schema }`). */
|
|
@@ -252287,6 +252480,8 @@ var script$3Q = {
|
|
|
252287
252480
|
* without a value.
|
|
252288
252481
|
* `density: "compact"` draws the rows 10px above and below, at least
|
|
252289
252482
|
* 56px tall, with the title at 500 (DqProcesanalyse).
|
|
252483
|
+
* On `cards` it draws the small framed card: 12px 14px in, the title
|
|
252484
|
+
* 15px/700 with the pill at its end (DqInspectie).
|
|
252290
252485
|
* `density: "stacked"` stands the rows 10px apart with no rule and no
|
|
252291
252486
|
* row padding (DqDagAfsluiten "Morgen eerst").
|
|
252292
252487
|
* In `rows`, `text` is a line under the meta line ("12 dagen stil"),
|
|
@@ -252382,6 +252577,8 @@ var script$3Q = {
|
|
|
252382
252577
|
return {
|
|
252383
252578
|
/** The reader's sort of a `table`: the column key and `ascending` or `descending`. */
|
|
252384
252579
|
tableSort: { key: '', dir: '' },
|
|
252580
|
+
/** The reader's head filters of a `table`: `{ [columnKey]: cellTexts[] }`. */
|
|
252581
|
+
tableFilters: {},
|
|
252385
252582
|
rows: [],
|
|
252386
252583
|
/** The `aggregates` figures per row id: `{ [rowId]: { [key]: value } }`. */
|
|
252387
252584
|
aggregateValues: {},
|
|
@@ -252756,7 +252953,16 @@ var script$3Q = {
|
|
|
252756
252953
|
const isTemplate = (value) => typeof value === 'string' || (Array.isArray(value) && value.length > 0 && value.every((entry) => typeof entry === 'string'));
|
|
252757
252954
|
return columns
|
|
252758
252955
|
.filter((col) => col && typeof col === 'object' && isTemplate(col.value))
|
|
252759
|
-
.map((col, index) => ({ ...col, key: `col-${index}`, label: typeof col.label === 'string' ? this.translate(col.label) : '' }))
|
|
252956
|
+
.map((col, index) => ({ ...col, key: `col-${index}`, label: typeof col.label === 'string' ? this.translate(col.label) : '', sortable: col.sortable === true || this.content?.sortable === true }))
|
|
252957
|
+
},
|
|
252958
|
+
|
|
252959
|
+
/**
|
|
252960
|
+
* Whether the `table` heads filter (`content.filterable`).
|
|
252961
|
+
*
|
|
252962
|
+
* @return {boolean}
|
|
252963
|
+
*/
|
|
252964
|
+
tableFilterable() {
|
|
252965
|
+
return this.content?.filterable === true
|
|
252760
252966
|
},
|
|
252761
252967
|
|
|
252762
252968
|
/**
|
|
@@ -252766,8 +252972,27 @@ var script$3Q = {
|
|
|
252766
252972
|
* @spec openspec/changes/record-list-table/specs/record-list-table/spec.md#requirement-a-record-list-can-draw-its-rows-as-a-small-table
|
|
252767
252973
|
*/
|
|
252768
252974
|
tableRows() {
|
|
252975
|
+
const rows = this.tableAllRows.filter((row) => Object.entries(this.tableFilters).every(([key, values]) => {
|
|
252976
|
+
const index = this.tableColumns.findIndex((col) => col.key === key);
|
|
252977
|
+
return values.length === 0 || index < 0 || values.includes(row.cells[index].text)
|
|
252978
|
+
}));
|
|
252979
|
+
const { key, dir } = this.tableSort;
|
|
252980
|
+
const index = this.tableColumns.findIndex((col) => col.key === key);
|
|
252981
|
+
if (index < 0 || !dir) {
|
|
252982
|
+
return rows
|
|
252983
|
+
}
|
|
252984
|
+
const sign = dir === 'descending' ? -1 : 1;
|
|
252985
|
+
return [...rows].sort((a, b) => sign * compareCells(a.cells[index].text, b.cells[index].text))
|
|
252986
|
+
},
|
|
252987
|
+
|
|
252988
|
+
/**
|
|
252989
|
+
* Every `table` row, before the reader's head filters and sort.
|
|
252990
|
+
*
|
|
252991
|
+
* @return {Array<object>} `{ key, cells: [{ key, text, align, alert }] }`.
|
|
252992
|
+
*/
|
|
252993
|
+
tableAllRows() {
|
|
252769
252994
|
const indentPath = this.content?.indentPath;
|
|
252770
|
-
|
|
252995
|
+
return this.items.map((item) => ({
|
|
252771
252996
|
key: item.key,
|
|
252772
252997
|
row: item.row,
|
|
252773
252998
|
rowActions: this.rowActions.length > 0 ? this.rowActionsOf(item.row) : [],
|
|
@@ -252787,14 +253012,7 @@ var script$3Q = {
|
|
|
252787
253012
|
tone: text === '' ? '' : this.cellToneOf(col, item.row, text),
|
|
252788
253013
|
}
|
|
252789
253014
|
}),
|
|
252790
|
-
}))
|
|
252791
|
-
const { key, dir } = this.tableSort;
|
|
252792
|
-
const index = this.tableColumns.findIndex((col) => col.key === key);
|
|
252793
|
-
if (index < 0 || !dir) {
|
|
252794
|
-
return rows
|
|
252795
|
-
}
|
|
252796
|
-
const sign = dir === 'descending' ? -1 : 1;
|
|
252797
|
-
return [...rows].sort((a, b) => sign * compareCells(a.cells[index].text, b.cells[index].text))
|
|
253015
|
+
}))
|
|
252798
253016
|
},
|
|
252799
253017
|
|
|
252800
253018
|
/**
|
|
@@ -253819,6 +254037,41 @@ var script$3Q = {
|
|
|
253819
254037
|
this.tableSort = { key, dir };
|
|
253820
254038
|
},
|
|
253821
254039
|
|
|
254040
|
+
/**
|
|
254041
|
+
* The values a `table` column's head filter offers: each text the column holds, once.
|
|
254042
|
+
*
|
|
254043
|
+
* @param {string} key The column key.
|
|
254044
|
+
* @return {Array<string>} The texts, in row order.
|
|
254045
|
+
*/
|
|
254046
|
+
tableFilterOptions(key) {
|
|
254047
|
+
const index = this.tableColumns.findIndex((col) => col.key === key);
|
|
254048
|
+
if (index < 0) {
|
|
254049
|
+
return []
|
|
254050
|
+
}
|
|
254051
|
+
return [...new Set(this.tableAllRows.map((row) => row.cells[index].text).filter((text) => text !== ''))]
|
|
254052
|
+
},
|
|
254053
|
+
|
|
254054
|
+
/**
|
|
254055
|
+
* Keep or drop one value of a `table` column's head filter.
|
|
254056
|
+
*
|
|
254057
|
+
* @param {string} key The column key.
|
|
254058
|
+
* @param {string} value The cell text.
|
|
254059
|
+
*/
|
|
254060
|
+
toggleTableFilter(key, value) {
|
|
254061
|
+
const current = this.tableFilters[key] || [];
|
|
254062
|
+
this.tableFilters = { ...this.tableFilters, [key]: current.includes(value) ? current.filter((v) => v !== value) : [...current, value] };
|
|
254063
|
+
},
|
|
254064
|
+
|
|
254065
|
+
/**
|
|
254066
|
+
* The accessible name of a column's head filter.
|
|
254067
|
+
*
|
|
254068
|
+
* @param {string} label The column label.
|
|
254069
|
+
* @return {string}
|
|
254070
|
+
*/
|
|
254071
|
+
filterLabelOf(label) {
|
|
254072
|
+
return l10n.translate('nextcloud-vue', 'Filter by {column}', { column: label })
|
|
254073
|
+
},
|
|
254074
|
+
|
|
253822
254075
|
/**
|
|
253823
254076
|
* The rows of a read with `flattenPath` set: each entry of the list at
|
|
253824
254077
|
* that path on a record becomes a row, with the record at `@parent`.
|
|
@@ -254449,211 +254702,217 @@ const _hoisted_7$24 = {
|
|
|
254449
254702
|
"data-testid": "cn-record-list-table"
|
|
254450
254703
|
};
|
|
254451
254704
|
const _hoisted_8$1T = ["aria-sort"];
|
|
254452
|
-
const _hoisted_9$1I =
|
|
254453
|
-
|
|
254705
|
+
const _hoisted_9$1I = {
|
|
254706
|
+
key: 0,
|
|
254707
|
+
class: "cn-record-list__head"
|
|
254708
|
+
};
|
|
254709
|
+
const _hoisted_10$1x = ["data-testid", "onClick"];
|
|
254710
|
+
const _hoisted_11$1l = {
|
|
254454
254711
|
class: "cn-record-list__sort-mark",
|
|
254455
254712
|
"aria-hidden": "true"
|
|
254456
254713
|
};
|
|
254457
|
-
const
|
|
254714
|
+
const _hoisted_12$1a = {
|
|
254458
254715
|
key: 0,
|
|
254459
254716
|
scope: "col",
|
|
254460
254717
|
class: "cn-record-list__cell--actions"
|
|
254461
254718
|
};
|
|
254462
|
-
const
|
|
254719
|
+
const _hoisted_13$$ = {
|
|
254463
254720
|
key: 2,
|
|
254464
254721
|
class: "cn-record-list__cell-text"
|
|
254465
254722
|
};
|
|
254466
|
-
const
|
|
254723
|
+
const _hoisted_14$Z = {
|
|
254467
254724
|
key: 3,
|
|
254468
254725
|
class: "cn-record-list__cell-sub"
|
|
254469
254726
|
};
|
|
254470
|
-
const
|
|
254727
|
+
const _hoisted_15$V = {
|
|
254471
254728
|
key: 0,
|
|
254472
254729
|
class: "cn-record-list__cell--actions"
|
|
254473
254730
|
};
|
|
254474
|
-
const
|
|
254731
|
+
const _hoisted_16$Q = {
|
|
254475
254732
|
key: 7,
|
|
254476
254733
|
class: "cn-record-list__checklist-wrap"
|
|
254477
254734
|
};
|
|
254478
|
-
const
|
|
254479
|
-
const
|
|
254735
|
+
const _hoisted_17$M = ["aria-valuenow", "aria-valuemax", "aria-label"];
|
|
254736
|
+
const _hoisted_18$F = {
|
|
254480
254737
|
class: "cn-record-list__check-mark",
|
|
254481
254738
|
"aria-hidden": "true"
|
|
254482
254739
|
};
|
|
254483
|
-
const
|
|
254484
|
-
const
|
|
254485
|
-
const
|
|
254740
|
+
const _hoisted_19$D = { class: "cn-record-list__check-title" };
|
|
254741
|
+
const _hoisted_20$y = { class: "hidden-visually" };
|
|
254742
|
+
const _hoisted_21$x = {
|
|
254486
254743
|
key: 0,
|
|
254487
254744
|
class: "cn-record-list__group-head",
|
|
254488
254745
|
"data-testid": "cn-record-list-group-head"
|
|
254489
254746
|
};
|
|
254490
|
-
const _hoisted_21$x = ["id"];
|
|
254491
254747
|
const _hoisted_22$x = ["id"];
|
|
254492
|
-
const _hoisted_23$u = ["
|
|
254493
|
-
const _hoisted_24$s =
|
|
254748
|
+
const _hoisted_23$u = ["id"];
|
|
254749
|
+
const _hoisted_24$s = ["aria-labelledby", "data-testid"];
|
|
254750
|
+
const _hoisted_25$o = {
|
|
254494
254751
|
key: 0,
|
|
254495
254752
|
class: "cn-record-list__row cn-record-list__row--action"
|
|
254496
254753
|
};
|
|
254497
|
-
const
|
|
254754
|
+
const _hoisted_26$m = {
|
|
254498
254755
|
key: 0,
|
|
254499
254756
|
class: "cn-record-list__leading",
|
|
254500
254757
|
"data-testid": "cn-record-list-leading"
|
|
254501
254758
|
};
|
|
254502
|
-
const
|
|
254759
|
+
const _hoisted_27$i = {
|
|
254503
254760
|
key: 1,
|
|
254504
254761
|
class: "cn-record-list__avatar",
|
|
254505
254762
|
"aria-hidden": "true",
|
|
254506
254763
|
"data-testid": "cn-record-list-avatar"
|
|
254507
254764
|
};
|
|
254508
|
-
const
|
|
254509
|
-
const
|
|
254765
|
+
const _hoisted_28$h = { class: "cn-record-list__main" };
|
|
254766
|
+
const _hoisted_29$g = {
|
|
254510
254767
|
key: 1,
|
|
254511
254768
|
class: "cn-record-list__meta"
|
|
254512
254769
|
};
|
|
254513
|
-
const
|
|
254770
|
+
const _hoisted_30$g = {
|
|
254514
254771
|
key: 3,
|
|
254515
254772
|
class: "cn-record-list__flag",
|
|
254516
254773
|
"data-testid": "cn-record-list-flag"
|
|
254517
254774
|
};
|
|
254518
|
-
const
|
|
254775
|
+
const _hoisted_31$f = {
|
|
254519
254776
|
key: 4,
|
|
254520
254777
|
class: "cn-record-list__pills"
|
|
254521
254778
|
};
|
|
254522
|
-
const
|
|
254779
|
+
const _hoisted_32$f = {
|
|
254523
254780
|
key: 6,
|
|
254524
254781
|
class: "cn-record-list__trailing"
|
|
254525
254782
|
};
|
|
254526
|
-
const
|
|
254783
|
+
const _hoisted_33$d = {
|
|
254527
254784
|
key: 0,
|
|
254528
254785
|
class: "cn-record-list__leading",
|
|
254529
254786
|
"data-testid": "cn-record-list-leading"
|
|
254530
254787
|
};
|
|
254531
|
-
const
|
|
254788
|
+
const _hoisted_34$d = {
|
|
254532
254789
|
key: 1,
|
|
254533
254790
|
class: "cn-record-list__pill-start"
|
|
254534
254791
|
};
|
|
254535
|
-
const
|
|
254792
|
+
const _hoisted_35$c = {
|
|
254536
254793
|
key: 2,
|
|
254537
254794
|
class: "cn-record-list__avatar",
|
|
254538
254795
|
"aria-hidden": "true",
|
|
254539
254796
|
"data-testid": "cn-record-list-avatar"
|
|
254540
254797
|
};
|
|
254541
|
-
const
|
|
254542
|
-
const
|
|
254798
|
+
const _hoisted_36$c = { class: "cn-record-list__main" };
|
|
254799
|
+
const _hoisted_37$b = {
|
|
254543
254800
|
key: 0,
|
|
254544
254801
|
class: "cn-record-list__title"
|
|
254545
254802
|
};
|
|
254546
|
-
const
|
|
254803
|
+
const _hoisted_38$b = {
|
|
254547
254804
|
key: 1,
|
|
254548
254805
|
class: "cn-record-list__meta"
|
|
254549
254806
|
};
|
|
254550
|
-
const
|
|
254807
|
+
const _hoisted_39$9 = {
|
|
254551
254808
|
key: 2,
|
|
254552
254809
|
class: "cn-record-list__meta",
|
|
254553
254810
|
"data-testid": "cn-record-list-text"
|
|
254554
254811
|
};
|
|
254555
|
-
const
|
|
254812
|
+
const _hoisted_40$7 = {
|
|
254556
254813
|
key: 4,
|
|
254557
254814
|
class: "cn-record-list__meta",
|
|
254558
254815
|
"data-testid": "cn-record-list-links"
|
|
254559
254816
|
};
|
|
254560
|
-
const
|
|
254561
|
-
const
|
|
254562
|
-
const
|
|
254817
|
+
const _hoisted_41$5 = { key: 1 };
|
|
254818
|
+
const _hoisted_42$5 = { key: 2 };
|
|
254819
|
+
const _hoisted_43$5 = {
|
|
254563
254820
|
key: 4,
|
|
254564
254821
|
class: "cn-record-list__aside"
|
|
254565
254822
|
};
|
|
254566
|
-
const
|
|
254823
|
+
const _hoisted_44$5 = {
|
|
254567
254824
|
key: 0,
|
|
254568
254825
|
class: "cn-record-list__flag",
|
|
254569
254826
|
"data-testid": "cn-record-list-flag"
|
|
254570
254827
|
};
|
|
254571
|
-
const
|
|
254828
|
+
const _hoisted_45$4 = {
|
|
254572
254829
|
key: 3,
|
|
254573
254830
|
class: "cn-record-list__trailing"
|
|
254574
254831
|
};
|
|
254575
|
-
const
|
|
254576
|
-
const
|
|
254577
|
-
const
|
|
254832
|
+
const _hoisted_46$4 = { class: "cn-record-list__card-head" };
|
|
254833
|
+
const _hoisted_47$4 = { class: "cn-record-list__card-title" };
|
|
254834
|
+
const _hoisted_48$3 = {
|
|
254578
254835
|
key: 1,
|
|
254579
254836
|
class: "cn-record-list__title"
|
|
254580
254837
|
};
|
|
254581
|
-
const
|
|
254838
|
+
const _hoisted_49$3 = {
|
|
254582
254839
|
key: 0,
|
|
254583
254840
|
class: "cn-record-list__card-pills"
|
|
254584
254841
|
};
|
|
254585
|
-
const
|
|
254842
|
+
const _hoisted_50$3 = {
|
|
254586
254843
|
key: 0,
|
|
254587
254844
|
class: "cn-record-list__meta"
|
|
254588
254845
|
};
|
|
254589
|
-
const
|
|
254846
|
+
const _hoisted_51$2 = {
|
|
254590
254847
|
key: 1,
|
|
254591
254848
|
class: "cn-record-list__card-value",
|
|
254592
254849
|
"data-testid": "cn-record-list-card-value"
|
|
254593
254850
|
};
|
|
254594
|
-
const
|
|
254851
|
+
const _hoisted_52$2 = {
|
|
254595
254852
|
key: 3,
|
|
254596
254853
|
class: "cn-record-list__feed-row"
|
|
254597
254854
|
};
|
|
254598
|
-
const
|
|
254855
|
+
const _hoisted_53$2 = {
|
|
254599
254856
|
class: "cn-record-list__feed-icon",
|
|
254600
254857
|
"aria-hidden": "true"
|
|
254601
254858
|
};
|
|
254602
|
-
const
|
|
254859
|
+
const _hoisted_54$2 = {
|
|
254603
254860
|
key: 0,
|
|
254604
254861
|
class: "cn-record-list__meta"
|
|
254605
254862
|
};
|
|
254606
|
-
const
|
|
254863
|
+
const _hoisted_55$2 = {
|
|
254607
254864
|
key: 1,
|
|
254608
254865
|
class: "cn-record-list__text"
|
|
254609
254866
|
};
|
|
254610
|
-
const
|
|
254867
|
+
const _hoisted_56$2 = {
|
|
254611
254868
|
key: 4,
|
|
254612
254869
|
class: "cn-record-list__inline-row"
|
|
254613
254870
|
};
|
|
254614
|
-
const
|
|
254871
|
+
const _hoisted_57$2 = {
|
|
254615
254872
|
key: 0,
|
|
254616
254873
|
class: "cn-record-list__label"
|
|
254617
254874
|
};
|
|
254618
|
-
const
|
|
254619
|
-
const
|
|
254875
|
+
const _hoisted_58$2 = ["aria-label", "aria-valuenow", "aria-valuemax"];
|
|
254876
|
+
const _hoisted_59$2 = {
|
|
254620
254877
|
key: 10,
|
|
254621
254878
|
class: "cn-record-list__error",
|
|
254622
254879
|
role: "alert",
|
|
254623
254880
|
"data-testid": "cn-record-list-action-error"
|
|
254624
254881
|
};
|
|
254625
|
-
const
|
|
254626
|
-
const
|
|
254882
|
+
const _hoisted_60$2 = { class: "cn-record-list__notice-text" };
|
|
254883
|
+
const _hoisted_61$2 = {
|
|
254627
254884
|
key: 12,
|
|
254628
254885
|
class: "cn-record-list__footnote",
|
|
254629
254886
|
"data-testid": "cn-record-list-footnote"
|
|
254630
254887
|
};
|
|
254631
|
-
const
|
|
254632
|
-
const
|
|
254888
|
+
const _hoisted_62$1 = ["href"];
|
|
254889
|
+
const _hoisted_63$1 = {
|
|
254633
254890
|
key: 15,
|
|
254634
254891
|
class: "cn-record-list__group-head",
|
|
254635
254892
|
"data-testid": "cn-record-list-group-head"
|
|
254636
254893
|
};
|
|
254637
|
-
const
|
|
254894
|
+
const _hoisted_64$1 = {
|
|
254638
254895
|
class: "cn-record-list__group-heading",
|
|
254639
254896
|
"data-testid": "cn-record-list-group-heading"
|
|
254640
254897
|
};
|
|
254641
|
-
const
|
|
254642
|
-
const
|
|
254898
|
+
const _hoisted_65$1 = ["id"];
|
|
254899
|
+
const _hoisted_66$1 = {
|
|
254643
254900
|
key: 0,
|
|
254644
254901
|
class: "cn-record-list__footer-note",
|
|
254645
254902
|
"data-testid": "cn-record-list-footer-note"
|
|
254646
254903
|
};
|
|
254647
|
-
const
|
|
254904
|
+
const _hoisted_67$1 = ["id"];
|
|
254648
254905
|
|
|
254649
254906
|
function render$3P(_ctx, _cache, $props, $setup, $data, $options) {
|
|
254650
254907
|
const _component_NcLoadingIcon = vue$1.resolveComponent("NcLoadingIcon");
|
|
254651
254908
|
const _component_CnIcon = vue$1.resolveComponent("CnIcon");
|
|
254909
|
+
const _component_FilterOutline = vue$1.resolveComponent("FilterOutline");
|
|
254910
|
+
const _component_NcActionCheckbox = vue$1.resolveComponent("NcActionCheckbox");
|
|
254911
|
+
const _component_NcActions = vue$1.resolveComponent("NcActions");
|
|
254652
254912
|
const _component_CnStatusBadge = vue$1.resolveComponent("CnStatusBadge");
|
|
254653
254913
|
const _component_router_link = vue$1.resolveComponent("router-link");
|
|
254654
254914
|
const _component_NcActionLink = vue$1.resolveComponent("NcActionLink");
|
|
254655
254915
|
const _component_NcActionButton = vue$1.resolveComponent("NcActionButton");
|
|
254656
|
-
const _component_NcActions = vue$1.resolveComponent("NcActions");
|
|
254657
254916
|
const _component_Check = vue$1.resolveComponent("Check");
|
|
254658
254917
|
const _component_CnRecordNoteRows = vue$1.resolveComponent("CnRecordNoteRows");
|
|
254659
254918
|
const _component_NcButton = vue$1.resolveComponent("NcButton");
|
|
@@ -254709,24 +254968,57 @@ function render$3P(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
254709
254968
|
"aria-sort": col.sortable ? $options.sortStateOf(col.key) : undefined,
|
|
254710
254969
|
class: vue$1.normalizeClass({ 'cn-record-list__cell--end': col.align === 'end' })
|
|
254711
254970
|
}, [
|
|
254712
|
-
(col.sortable)
|
|
254713
|
-
? (vue$1.openBlock(), vue$1.createElementBlock("
|
|
254714
|
-
|
|
254715
|
-
|
|
254716
|
-
|
|
254717
|
-
|
|
254718
|
-
|
|
254719
|
-
|
|
254720
|
-
|
|
254721
|
-
|
|
254722
|
-
|
|
254971
|
+
(col.sortable || $options.tableFilterable)
|
|
254972
|
+
? (vue$1.openBlock(), vue$1.createElementBlock("span", _hoisted_9$1I, [
|
|
254973
|
+
(col.sortable)
|
|
254974
|
+
? (vue$1.openBlock(), vue$1.createElementBlock("button", {
|
|
254975
|
+
key: 0,
|
|
254976
|
+
type: "button",
|
|
254977
|
+
class: "cn-record-list__sort",
|
|
254978
|
+
"data-testid": `cn-record-list-sort-${col.key}`,
|
|
254979
|
+
onClick: $event => ($options.toggleTableSort(col.key))
|
|
254980
|
+
}, [
|
|
254981
|
+
vue$1.createTextVNode(vue$1.toDisplayString(col.label) + " ", 1 /* TEXT */),
|
|
254982
|
+
vue$1.createElementVNode("span", _hoisted_11$1l, vue$1.toDisplayString($options.sortMarkOf(col.key)), 1 /* TEXT */)
|
|
254983
|
+
], 8 /* PROPS */, _hoisted_10$1x))
|
|
254984
|
+
: (vue$1.openBlock(), vue$1.createElementBlock(vue$1.Fragment, { key: 1 }, [
|
|
254985
|
+
vue$1.createTextVNode(vue$1.toDisplayString(col.label), 1 /* TEXT */)
|
|
254986
|
+
], 64 /* STABLE_FRAGMENT */)),
|
|
254987
|
+
($options.tableFilterable)
|
|
254988
|
+
? (vue$1.openBlock(), vue$1.createBlock(_component_NcActions, {
|
|
254989
|
+
key: 2,
|
|
254990
|
+
class: "cn-record-list__head-filter",
|
|
254991
|
+
"aria-label": $options.filterLabelOf(col.label),
|
|
254992
|
+
"data-testid": `cn-record-list-filter-${col.key}`
|
|
254993
|
+
}, {
|
|
254994
|
+
icon: vue$1.withCtx(() => [
|
|
254995
|
+
vue$1.createVNode(_component_FilterOutline, { size: 14 })
|
|
254996
|
+
]),
|
|
254997
|
+
default: vue$1.withCtx(() => [
|
|
254998
|
+
(vue$1.openBlock(true), vue$1.createElementBlock(vue$1.Fragment, null, vue$1.renderList($options.tableFilterOptions(col.key), (option) => {
|
|
254999
|
+
return (vue$1.openBlock(), vue$1.createBlock(_component_NcActionCheckbox, {
|
|
255000
|
+
key: option,
|
|
255001
|
+
modelValue: ($data.tableFilters[col.key] || []).includes(option),
|
|
255002
|
+
"onUpdate:modelValue": $event => ($options.toggleTableFilter(col.key, option))
|
|
255003
|
+
}, {
|
|
255004
|
+
default: vue$1.withCtx(() => [
|
|
255005
|
+
vue$1.createTextVNode(vue$1.toDisplayString(option), 1 /* TEXT */)
|
|
255006
|
+
]),
|
|
255007
|
+
_: 2 /* DYNAMIC */
|
|
255008
|
+
}, 1032 /* PROPS, DYNAMIC_SLOTS */, ["modelValue", "onUpdate:modelValue"]))
|
|
255009
|
+
}), 128 /* KEYED_FRAGMENT */))
|
|
255010
|
+
]),
|
|
255011
|
+
_: 2 /* DYNAMIC */
|
|
255012
|
+
}, 1032 /* PROPS, DYNAMIC_SLOTS */, ["aria-label", "data-testid"]))
|
|
255013
|
+
: vue$1.createCommentVNode("v-if", true)
|
|
255014
|
+
]))
|
|
254723
255015
|
: (vue$1.openBlock(), vue$1.createElementBlock(vue$1.Fragment, { key: 1 }, [
|
|
254724
255016
|
vue$1.createTextVNode(vue$1.toDisplayString(col.label), 1 /* TEXT */)
|
|
254725
255017
|
], 64 /* STABLE_FRAGMENT */))
|
|
254726
255018
|
], 10 /* CLASS, PROPS */, _hoisted_8$1T))
|
|
254727
255019
|
}), 128 /* KEYED_FRAGMENT */)),
|
|
254728
255020
|
($options.rowActions.length > 0)
|
|
254729
|
-
? (vue$1.openBlock(), vue$1.createElementBlock("th",
|
|
255021
|
+
? (vue$1.openBlock(), vue$1.createElementBlock("th", _hoisted_12$1a, vue$1.toDisplayString($options.rowActionsHeader), 1 /* TEXT */))
|
|
254730
255022
|
: vue$1.createCommentVNode("v-if", true)
|
|
254731
255023
|
])
|
|
254732
255024
|
]),
|
|
@@ -254760,14 +255052,14 @@ function render$3P(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
254760
255052
|
]),
|
|
254761
255053
|
_: 2 /* DYNAMIC */
|
|
254762
255054
|
}, 1032 /* PROPS, DYNAMIC_SLOTS */, ["to"]))
|
|
254763
|
-
: (vue$1.openBlock(), vue$1.createElementBlock("span",
|
|
255055
|
+
: (vue$1.openBlock(), vue$1.createElementBlock("span", _hoisted_13$$, vue$1.toDisplayString(cell.text), 1 /* TEXT */)),
|
|
254764
255056
|
(cell.sub)
|
|
254765
|
-
? (vue$1.openBlock(), vue$1.createElementBlock("span",
|
|
255057
|
+
? (vue$1.openBlock(), vue$1.createElementBlock("span", _hoisted_14$Z, vue$1.toDisplayString(cell.sub), 1 /* TEXT */))
|
|
254766
255058
|
: vue$1.createCommentVNode("v-if", true)
|
|
254767
255059
|
], 6 /* CLASS, STYLE */))
|
|
254768
255060
|
}), 128 /* KEYED_FRAGMENT */)),
|
|
254769
255061
|
($options.rowActions.length > 0)
|
|
254770
|
-
? (vue$1.openBlock(), vue$1.createElementBlock("td",
|
|
255062
|
+
? (vue$1.openBlock(), vue$1.createElementBlock("td", _hoisted_15$V, [
|
|
254771
255063
|
(item.rowActions.length > 0)
|
|
254772
255064
|
? (vue$1.openBlock(), vue$1.createBlock(_component_NcActions, {
|
|
254773
255065
|
key: 0,
|
|
@@ -254815,7 +255107,7 @@ function render$3P(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
254815
255107
|
])
|
|
254816
255108
|
]))
|
|
254817
255109
|
: ($options.presentation === 'checklist')
|
|
254818
|
-
? (vue$1.openBlock(), vue$1.createElementBlock("div",
|
|
255110
|
+
? (vue$1.openBlock(), vue$1.createElementBlock("div", _hoisted_16$Q, [
|
|
254819
255111
|
($props.content.progress)
|
|
254820
255112
|
? (vue$1.openBlock(), vue$1.createElementBlock("div", {
|
|
254821
255113
|
key: 0,
|
|
@@ -254831,7 +255123,7 @@ function render$3P(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
254831
255123
|
class: "cn-record-list__checklist-fill",
|
|
254832
255124
|
style: vue$1.normalizeStyle({ width: `${$options.checklistPercent}%` })
|
|
254833
255125
|
}, null, 4 /* STYLE */)
|
|
254834
|
-
], 8 /* PROPS */,
|
|
255126
|
+
], 8 /* PROPS */, _hoisted_17$M))
|
|
254835
255127
|
: vue$1.createCommentVNode("v-if", true),
|
|
254836
255128
|
vue$1.createElementVNode("ul", {
|
|
254837
255129
|
class: "cn-record-list__checklist",
|
|
@@ -254844,7 +255136,7 @@ function render$3P(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
254844
255136
|
class: vue$1.normalizeClass(["cn-record-list__check", { 'cn-record-list__check--done': $options.isChecked(item.row) }]),
|
|
254845
255137
|
"data-testid": "cn-record-list-check"
|
|
254846
255138
|
}, [
|
|
254847
|
-
vue$1.createElementVNode("span",
|
|
255139
|
+
vue$1.createElementVNode("span", _hoisted_18$F, [
|
|
254848
255140
|
($options.isChecked(item.row))
|
|
254849
255141
|
? (vue$1.openBlock(), vue$1.createBlock(_component_Check, {
|
|
254850
255142
|
key: 0,
|
|
@@ -254852,8 +255144,8 @@ function render$3P(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
254852
255144
|
}))
|
|
254853
255145
|
: vue$1.createCommentVNode("v-if", true)
|
|
254854
255146
|
]),
|
|
254855
|
-
vue$1.createElementVNode("span",
|
|
254856
|
-
vue$1.createElementVNode("span",
|
|
255147
|
+
vue$1.createElementVNode("span", _hoisted_19$D, vue$1.toDisplayString(item.title), 1 /* TEXT */),
|
|
255148
|
+
vue$1.createElementVNode("span", _hoisted_20$y, vue$1.toDisplayString($options.isChecked(item.row) ? $options.doneLabel : $options.openLabel), 1 /* TEXT */)
|
|
254857
255149
|
], 2 /* CLASS */))
|
|
254858
255150
|
}), 128 /* KEYED_FRAGMENT */))
|
|
254859
255151
|
], 4 /* STYLE */)
|
|
@@ -254871,12 +255163,12 @@ function render$3P(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
254871
255163
|
key: group.key
|
|
254872
255164
|
}, [
|
|
254873
255165
|
(group.label && $options.footerGroup !== '' && group.value === $options.footerGroup)
|
|
254874
|
-
? (vue$1.openBlock(), vue$1.createElementBlock("div",
|
|
255166
|
+
? (vue$1.openBlock(), vue$1.createElementBlock("div", _hoisted_21$x, [
|
|
254875
255167
|
vue$1.createElementVNode("h3", {
|
|
254876
255168
|
id: group.headingId,
|
|
254877
255169
|
class: "cn-record-list__group-heading",
|
|
254878
255170
|
"data-testid": "cn-record-list-group-heading"
|
|
254879
|
-
}, vue$1.toDisplayString(group.label), 9 /* TEXT, PROPS */,
|
|
255171
|
+
}, vue$1.toDisplayString(group.label), 9 /* TEXT, PROPS */, _hoisted_22$x),
|
|
254880
255172
|
vue$1.createVNode(_component_NcButton, {
|
|
254881
255173
|
variant: "secondary",
|
|
254882
255174
|
class: vue$1.normalizeClass({ 'cn-record-list__action--tonal': $options.footerTonal }),
|
|
@@ -254910,7 +255202,7 @@ function render$3P(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
254910
255202
|
id: group.headingId,
|
|
254911
255203
|
class: "cn-record-list__group-heading",
|
|
254912
255204
|
"data-testid": "cn-record-list-group-heading"
|
|
254913
|
-
}, vue$1.toDisplayString(group.label), 9 /* TEXT, PROPS */,
|
|
255205
|
+
}, vue$1.toDisplayString(group.label), 9 /* TEXT, PROPS */, _hoisted_23$u))
|
|
254914
255206
|
: vue$1.createCommentVNode("v-if", true),
|
|
254915
255207
|
(group.items.length > 0)
|
|
254916
255208
|
? (vue$1.openBlock(), vue$1.createElementBlock("ul", {
|
|
@@ -254926,12 +255218,12 @@ function render$3P(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
254926
255218
|
"data-testid": "cn-record-list-item"
|
|
254927
255219
|
}, [
|
|
254928
255220
|
($options.presentation === 'rows' && item.action)
|
|
254929
|
-
? (vue$1.openBlock(), vue$1.createElementBlock("div",
|
|
255221
|
+
? (vue$1.openBlock(), vue$1.createElementBlock("div", _hoisted_25$o, [
|
|
254930
255222
|
(item.leading)
|
|
254931
|
-
? (vue$1.openBlock(), vue$1.createElementBlock("span",
|
|
255223
|
+
? (vue$1.openBlock(), vue$1.createElementBlock("span", _hoisted_26$m, vue$1.toDisplayString(item.leading), 1 /* TEXT */))
|
|
254932
255224
|
: vue$1.createCommentVNode("v-if", true),
|
|
254933
255225
|
(item.initials)
|
|
254934
|
-
? (vue$1.openBlock(), vue$1.createElementBlock("span",
|
|
255226
|
+
? (vue$1.openBlock(), vue$1.createElementBlock("span", _hoisted_27$i, vue$1.toDisplayString(item.initials), 1 /* TEXT */))
|
|
254935
255227
|
: vue$1.createCommentVNode("v-if", true),
|
|
254936
255228
|
(item.dot)
|
|
254937
255229
|
? (vue$1.openBlock(), vue$1.createElementBlock("span", {
|
|
@@ -254942,7 +255234,7 @@ function render$3P(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
254942
255234
|
"data-testid": "cn-record-list-dot"
|
|
254943
255235
|
}, null, 4 /* STYLE */))
|
|
254944
255236
|
: vue$1.createCommentVNode("v-if", true),
|
|
254945
|
-
vue$1.createElementVNode("span",
|
|
255237
|
+
vue$1.createElementVNode("span", _hoisted_28$h, [
|
|
254946
255238
|
(item.title)
|
|
254947
255239
|
? (vue$1.openBlock(), vue$1.createBlock(vue$1.resolveDynamicComponent(item.tag), vue$1.mergeProps({
|
|
254948
255240
|
key: 0,
|
|
@@ -254955,14 +255247,14 @@ function render$3P(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
254955
255247
|
}, 1040 /* FULL_PROPS, DYNAMIC_SLOTS */, ["class"]))
|
|
254956
255248
|
: vue$1.createCommentVNode("v-if", true),
|
|
254957
255249
|
(item.meta)
|
|
254958
|
-
? (vue$1.openBlock(), vue$1.createElementBlock("span",
|
|
255250
|
+
? (vue$1.openBlock(), vue$1.createElementBlock("span", _hoisted_29$g, vue$1.toDisplayString(item.meta), 1 /* TEXT */))
|
|
254959
255251
|
: vue$1.createCommentVNode("v-if", true)
|
|
254960
255252
|
]),
|
|
254961
255253
|
(item.flag)
|
|
254962
|
-
? (vue$1.openBlock(), vue$1.createElementBlock("span",
|
|
255254
|
+
? (vue$1.openBlock(), vue$1.createElementBlock("span", _hoisted_30$g, vue$1.toDisplayString(item.flag), 1 /* TEXT */))
|
|
254963
255255
|
: vue$1.createCommentVNode("v-if", true),
|
|
254964
255256
|
(item.pill || item.badges.length > 0)
|
|
254965
|
-
? (vue$1.openBlock(), vue$1.createElementBlock("span",
|
|
255257
|
+
? (vue$1.openBlock(), vue$1.createElementBlock("span", _hoisted_31$f, [
|
|
254966
255258
|
(item.pill)
|
|
254967
255259
|
? (vue$1.openBlock(), vue$1.createBlock(_component_CnStatusBadge, {
|
|
254968
255260
|
key: 0,
|
|
@@ -254990,7 +255282,7 @@ function render$3P(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
254990
255282
|
}, vue$1.toDisplayString(item.due.text), 3 /* TEXT, CLASS */))
|
|
254991
255283
|
: vue$1.createCommentVNode("v-if", true),
|
|
254992
255284
|
(item.trailing)
|
|
254993
|
-
? (vue$1.openBlock(), vue$1.createElementBlock("span",
|
|
255285
|
+
? (vue$1.openBlock(), vue$1.createElementBlock("span", _hoisted_32$f, vue$1.toDisplayString(item.trailing), 1 /* TEXT */))
|
|
254994
255286
|
: vue$1.createCommentVNode("v-if", true),
|
|
254995
255287
|
(vue$1.openBlock(), vue$1.createBlock(vue$1.resolveDynamicComponent(item.action.tag), vue$1.mergeProps({
|
|
254996
255288
|
class: ["cn-record-list__action", { 'cn-record-list__action--outlined': $options.rowActionOutlined }]
|
|
@@ -255008,10 +255300,10 @@ function render$3P(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
255008
255300
|
}, { ref_for: true }, item.attrs), {
|
|
255009
255301
|
default: vue$1.withCtx(() => [
|
|
255010
255302
|
(item.leading)
|
|
255011
|
-
? (vue$1.openBlock(), vue$1.createElementBlock("span",
|
|
255303
|
+
? (vue$1.openBlock(), vue$1.createElementBlock("span", _hoisted_33$d, vue$1.toDisplayString(item.leading), 1 /* TEXT */))
|
|
255012
255304
|
: vue$1.createCommentVNode("v-if", true),
|
|
255013
255305
|
($options.pillFirst && item.pill)
|
|
255014
|
-
? (vue$1.openBlock(), vue$1.createElementBlock("span",
|
|
255306
|
+
? (vue$1.openBlock(), vue$1.createElementBlock("span", _hoisted_34$d, [
|
|
255015
255307
|
vue$1.createVNode(_component_CnStatusBadge, {
|
|
255016
255308
|
label: item.pill.label,
|
|
255017
255309
|
variant: item.pill.variant,
|
|
@@ -255020,7 +255312,7 @@ function render$3P(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
255020
255312
|
]))
|
|
255021
255313
|
: vue$1.createCommentVNode("v-if", true),
|
|
255022
255314
|
(item.initials)
|
|
255023
|
-
? (vue$1.openBlock(), vue$1.createElementBlock("span",
|
|
255315
|
+
? (vue$1.openBlock(), vue$1.createElementBlock("span", _hoisted_35$c, vue$1.toDisplayString(item.initials), 1 /* TEXT */))
|
|
255024
255316
|
: vue$1.createCommentVNode("v-if", true),
|
|
255025
255317
|
(item.dot)
|
|
255026
255318
|
? (vue$1.openBlock(), vue$1.createElementBlock("span", {
|
|
@@ -255031,15 +255323,15 @@ function render$3P(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
255031
255323
|
"data-testid": "cn-record-list-dot"
|
|
255032
255324
|
}, null, 4 /* STYLE */))
|
|
255033
255325
|
: vue$1.createCommentVNode("v-if", true),
|
|
255034
|
-
vue$1.createElementVNode("span",
|
|
255326
|
+
vue$1.createElementVNode("span", _hoisted_36$c, [
|
|
255035
255327
|
(item.title)
|
|
255036
|
-
? (vue$1.openBlock(), vue$1.createElementBlock("span",
|
|
255328
|
+
? (vue$1.openBlock(), vue$1.createElementBlock("span", _hoisted_37$b, vue$1.toDisplayString(item.title), 1 /* TEXT */))
|
|
255037
255329
|
: vue$1.createCommentVNode("v-if", true),
|
|
255038
255330
|
(item.meta)
|
|
255039
|
-
? (vue$1.openBlock(), vue$1.createElementBlock("span",
|
|
255331
|
+
? (vue$1.openBlock(), vue$1.createElementBlock("span", _hoisted_38$b, vue$1.toDisplayString(item.meta), 1 /* TEXT */))
|
|
255040
255332
|
: vue$1.createCommentVNode("v-if", true),
|
|
255041
255333
|
(item.text)
|
|
255042
|
-
? (vue$1.openBlock(), vue$1.createElementBlock("span",
|
|
255334
|
+
? (vue$1.openBlock(), vue$1.createElementBlock("span", _hoisted_39$9, vue$1.toDisplayString(item.text), 1 /* TEXT */))
|
|
255043
255335
|
: vue$1.createCommentVNode("v-if", true),
|
|
255044
255336
|
(item.due && $options.dueBelow)
|
|
255045
255337
|
? (vue$1.openBlock(), vue$1.createElementBlock("span", {
|
|
@@ -255049,7 +255341,7 @@ function render$3P(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
255049
255341
|
}, vue$1.toDisplayString(item.due.text), 3 /* TEXT, CLASS */))
|
|
255050
255342
|
: vue$1.createCommentVNode("v-if", true),
|
|
255051
255343
|
(item.links.length > 0)
|
|
255052
|
-
? (vue$1.openBlock(), vue$1.createElementBlock("span",
|
|
255344
|
+
? (vue$1.openBlock(), vue$1.createElementBlock("span", _hoisted_40$7, [
|
|
255053
255345
|
vue$1.createTextVNode(vue$1.toDisplayString($options.linksLabel) + " ", 1 /* TEXT */),
|
|
255054
255346
|
(vue$1.openBlock(true), vue$1.createElementBlock(vue$1.Fragment, null, vue$1.renderList(item.links, (link, linkIndex) => {
|
|
255055
255347
|
return (vue$1.openBlock(), vue$1.createElementBlock(vue$1.Fragment, {
|
|
@@ -255065,9 +255357,9 @@ function render$3P(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
255065
255357
|
]),
|
|
255066
255358
|
_: 2 /* DYNAMIC */
|
|
255067
255359
|
}, 1032 /* PROPS, DYNAMIC_SLOTS */, ["to"]))
|
|
255068
|
-
: (vue$1.openBlock(), vue$1.createElementBlock("span",
|
|
255360
|
+
: (vue$1.openBlock(), vue$1.createElementBlock("span", _hoisted_41$5, vue$1.toDisplayString(link.label), 1 /* TEXT */)),
|
|
255069
255361
|
(linkIndex < item.links.length - 1)
|
|
255070
|
-
? (vue$1.openBlock(), vue$1.createElementBlock("span",
|
|
255362
|
+
? (vue$1.openBlock(), vue$1.createElementBlock("span", _hoisted_42$5, ", "))
|
|
255071
255363
|
: vue$1.createCommentVNode("v-if", true)
|
|
255072
255364
|
], 64 /* STABLE_FRAGMENT */))
|
|
255073
255365
|
}), 128 /* KEYED_FRAGMENT */))
|
|
@@ -255075,9 +255367,9 @@ function render$3P(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
255075
255367
|
: vue$1.createCommentVNode("v-if", true)
|
|
255076
255368
|
]),
|
|
255077
255369
|
((item.pill && !$options.pillFirst) || item.badges.length > 0 || (item.due && !$options.dueBelow) || item.trailing || item.flag)
|
|
255078
|
-
? (vue$1.openBlock(), vue$1.createElementBlock("span",
|
|
255370
|
+
? (vue$1.openBlock(), vue$1.createElementBlock("span", _hoisted_43$5, [
|
|
255079
255371
|
(item.flag)
|
|
255080
|
-
? (vue$1.openBlock(), vue$1.createElementBlock("span",
|
|
255372
|
+
? (vue$1.openBlock(), vue$1.createElementBlock("span", _hoisted_44$5, vue$1.toDisplayString(item.flag), 1 /* TEXT */))
|
|
255081
255373
|
: vue$1.createCommentVNode("v-if", true),
|
|
255082
255374
|
(item.pill && !$options.pillFirst)
|
|
255083
255375
|
? (vue$1.openBlock(), vue$1.createBlock(_component_CnStatusBadge, {
|
|
@@ -255104,7 +255396,7 @@ function render$3P(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
255104
255396
|
}, vue$1.toDisplayString(item.due.text), 3 /* TEXT, CLASS */))
|
|
255105
255397
|
: vue$1.createCommentVNode("v-if", true),
|
|
255106
255398
|
(item.trailing)
|
|
255107
|
-
? (vue$1.openBlock(), vue$1.createElementBlock("span",
|
|
255399
|
+
? (vue$1.openBlock(), vue$1.createElementBlock("span", _hoisted_45$4, vue$1.toDisplayString(item.trailing), 1 /* TEXT */))
|
|
255108
255400
|
: vue$1.createCommentVNode("v-if", true)
|
|
255109
255401
|
]))
|
|
255110
255402
|
: vue$1.createCommentVNode("v-if", true),
|
|
@@ -255195,8 +255487,8 @@ function render$3P(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
255195
255487
|
class: ["cn-record-list__card", { 'cn-record-list__card--link': item.tag !== 'div' }]
|
|
255196
255488
|
}, { ref_for: true }, item.attrs, { "data-testid": "cn-record-list-card" }), {
|
|
255197
255489
|
default: vue$1.withCtx(() => [
|
|
255198
|
-
vue$1.createElementVNode("span",
|
|
255199
|
-
vue$1.createElementVNode("span",
|
|
255490
|
+
vue$1.createElementVNode("span", _hoisted_46$4, [
|
|
255491
|
+
vue$1.createElementVNode("span", _hoisted_47$4, [
|
|
255200
255492
|
($options.cardIcons)
|
|
255201
255493
|
? (vue$1.openBlock(), vue$1.createBlock(_component_CnIcon, {
|
|
255202
255494
|
key: 0,
|
|
@@ -255206,11 +255498,11 @@ function render$3P(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
255206
255498
|
}, null, 8 /* PROPS */, ["name"]))
|
|
255207
255499
|
: vue$1.createCommentVNode("v-if", true),
|
|
255208
255500
|
(item.title)
|
|
255209
|
-
? (vue$1.openBlock(), vue$1.createElementBlock("span",
|
|
255501
|
+
? (vue$1.openBlock(), vue$1.createElementBlock("span", _hoisted_48$3, vue$1.toDisplayString(item.title), 1 /* TEXT */))
|
|
255210
255502
|
: vue$1.createCommentVNode("v-if", true)
|
|
255211
255503
|
]),
|
|
255212
255504
|
(item.pill || item.badges.length > 0)
|
|
255213
|
-
? (vue$1.openBlock(), vue$1.createElementBlock("span",
|
|
255505
|
+
? (vue$1.openBlock(), vue$1.createElementBlock("span", _hoisted_49$3, [
|
|
255214
255506
|
(item.pill)
|
|
255215
255507
|
? (vue$1.openBlock(), vue$1.createBlock(_component_CnStatusBadge, {
|
|
255216
255508
|
key: 0,
|
|
@@ -255232,17 +255524,17 @@ function render$3P(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
255232
255524
|
: vue$1.createCommentVNode("v-if", true)
|
|
255233
255525
|
]),
|
|
255234
255526
|
(item.meta)
|
|
255235
|
-
? (vue$1.openBlock(), vue$1.createElementBlock("span",
|
|
255527
|
+
? (vue$1.openBlock(), vue$1.createElementBlock("span", _hoisted_50$3, vue$1.toDisplayString(item.meta), 1 /* TEXT */))
|
|
255236
255528
|
: vue$1.createCommentVNode("v-if", true),
|
|
255237
255529
|
(item.trailing)
|
|
255238
|
-
? (vue$1.openBlock(), vue$1.createElementBlock("span",
|
|
255530
|
+
? (vue$1.openBlock(), vue$1.createElementBlock("span", _hoisted_51$2, vue$1.toDisplayString(item.trailing), 1 /* TEXT */))
|
|
255239
255531
|
: vue$1.createCommentVNode("v-if", true)
|
|
255240
255532
|
]),
|
|
255241
255533
|
_: 2 /* DYNAMIC */
|
|
255242
255534
|
}, 1040 /* FULL_PROPS, DYNAMIC_SLOTS */, ["class"]))
|
|
255243
255535
|
: ($options.presentation === 'feed')
|
|
255244
|
-
? (vue$1.openBlock(), vue$1.createElementBlock("div",
|
|
255245
|
-
vue$1.createElementVNode("span",
|
|
255536
|
+
? (vue$1.openBlock(), vue$1.createElementBlock("div", _hoisted_52$2, [
|
|
255537
|
+
vue$1.createElementVNode("span", _hoisted_53$2, [
|
|
255246
255538
|
vue$1.createVNode(_component_CnIcon, {
|
|
255247
255539
|
name: item.icon,
|
|
255248
255540
|
size: 18
|
|
@@ -255251,18 +255543,18 @@ function render$3P(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
255251
255543
|
(vue$1.openBlock(), vue$1.createBlock(vue$1.resolveDynamicComponent(item.tag), vue$1.mergeProps({ class: "cn-record-list__main" }, { ref_for: true }, item.attrs), {
|
|
255252
255544
|
default: vue$1.withCtx(() => [
|
|
255253
255545
|
(item.meta)
|
|
255254
|
-
? (vue$1.openBlock(), vue$1.createElementBlock("span",
|
|
255546
|
+
? (vue$1.openBlock(), vue$1.createElementBlock("span", _hoisted_54$2, vue$1.toDisplayString(item.meta), 1 /* TEXT */))
|
|
255255
255547
|
: vue$1.createCommentVNode("v-if", true),
|
|
255256
255548
|
(item.text)
|
|
255257
|
-
? (vue$1.openBlock(), vue$1.createElementBlock("span",
|
|
255549
|
+
? (vue$1.openBlock(), vue$1.createElementBlock("span", _hoisted_55$2, vue$1.toDisplayString(item.text), 1 /* TEXT */))
|
|
255258
255550
|
: vue$1.createCommentVNode("v-if", true)
|
|
255259
255551
|
]),
|
|
255260
255552
|
_: 2 /* DYNAMIC */
|
|
255261
255553
|
}, 1040 /* FULL_PROPS, DYNAMIC_SLOTS */))
|
|
255262
255554
|
]))
|
|
255263
|
-
: (vue$1.openBlock(), vue$1.createElementBlock("div",
|
|
255555
|
+
: (vue$1.openBlock(), vue$1.createElementBlock("div", _hoisted_56$2, [
|
|
255264
255556
|
(item.label)
|
|
255265
|
-
? (vue$1.openBlock(), vue$1.createElementBlock("span",
|
|
255557
|
+
? (vue$1.openBlock(), vue$1.createElementBlock("span", _hoisted_57$2, vue$1.toDisplayString(item.label), 1 /* TEXT */))
|
|
255266
255558
|
: vue$1.createCommentVNode("v-if", true),
|
|
255267
255559
|
(vue$1.openBlock(), vue$1.createBlock(vue$1.resolveDynamicComponent(item.tag), vue$1.mergeProps({ class: "cn-record-list__inline-title" }, { ref_for: true }, item.attrs), {
|
|
255268
255560
|
default: vue$1.withCtx(() => [
|
|
@@ -255286,16 +255578,16 @@ function render$3P(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
255286
255578
|
class: "cn-record-list__bar-fill",
|
|
255287
255579
|
style: vue$1.normalizeStyle({ width: `${item.bar.share}%` })
|
|
255288
255580
|
}, null, 4 /* STYLE */)
|
|
255289
|
-
], 10 /* CLASS, PROPS */,
|
|
255581
|
+
], 10 /* CLASS, PROPS */, _hoisted_58$2))
|
|
255290
255582
|
: vue$1.createCommentVNode("v-if", true)
|
|
255291
255583
|
]))
|
|
255292
255584
|
}), 128 /* KEYED_FRAGMENT */))
|
|
255293
|
-
], 10 /* CLASS, PROPS */,
|
|
255585
|
+
], 10 /* CLASS, PROPS */, _hoisted_24$s))
|
|
255294
255586
|
: vue$1.createCommentVNode("v-if", true)
|
|
255295
255587
|
], 64 /* STABLE_FRAGMENT */))
|
|
255296
255588
|
}), 128 /* KEYED_FRAGMENT */)),
|
|
255297
255589
|
($data.actionError)
|
|
255298
|
-
? (vue$1.openBlock(), vue$1.createElementBlock("p",
|
|
255590
|
+
? (vue$1.openBlock(), vue$1.createElementBlock("p", _hoisted_59$2, vue$1.toDisplayString($data.actionError), 1 /* TEXT */))
|
|
255299
255591
|
: vue$1.createCommentVNode("v-if", true),
|
|
255300
255592
|
($options.footnoteTone && $options.footnote && !$data.error && !$options.absent && ($data.rows.length > 0 || $options.footnoteFromAnswer))
|
|
255301
255593
|
? (vue$1.openBlock(), vue$1.createElementBlock("div", {
|
|
@@ -255309,10 +255601,10 @@ function render$3P(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
255309
255601
|
class: "cn-record-list__notice-icon",
|
|
255310
255602
|
"aria-hidden": "true"
|
|
255311
255603
|
}, null, 8 /* PROPS */, ["name"]),
|
|
255312
|
-
vue$1.createElementVNode("p",
|
|
255604
|
+
vue$1.createElementVNode("p", _hoisted_60$2, vue$1.toDisplayString($options.footnote), 1 /* TEXT */)
|
|
255313
255605
|
], 2 /* CLASS */))
|
|
255314
255606
|
: ($options.footnote && !$data.error && !$options.absent && ($data.rows.length > 0 || $options.footnoteFromAnswer))
|
|
255315
|
-
? (vue$1.openBlock(), vue$1.createElementBlock("p",
|
|
255607
|
+
? (vue$1.openBlock(), vue$1.createElementBlock("p", _hoisted_61$2, vue$1.toDisplayString($options.footnote), 1 /* TEXT */))
|
|
255316
255608
|
: vue$1.createCommentVNode("v-if", true),
|
|
255317
255609
|
($options.footerLink && $options.footerLink.to)
|
|
255318
255610
|
? (vue$1.openBlock(), vue$1.createBlock(_component_router_link, {
|
|
@@ -255332,11 +255624,11 @@ function render$3P(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
255332
255624
|
class: "cn-record-list__footer-link",
|
|
255333
255625
|
href: $options.footerLink.href,
|
|
255334
255626
|
"data-testid": "cn-record-list-footer-link"
|
|
255335
|
-
}, vue$1.toDisplayString($options.footerLink.label), 9 /* TEXT, PROPS */,
|
|
255627
|
+
}, vue$1.toDisplayString($options.footerLink.label), 9 /* TEXT, PROPS */, _hoisted_62$1))
|
|
255336
255628
|
: vue$1.createCommentVNode("v-if", true),
|
|
255337
255629
|
($options.footerGroupHead && $data.rows.length === 0 && !$data.error && !$data.loading)
|
|
255338
|
-
? (vue$1.openBlock(), vue$1.createElementBlock("div",
|
|
255339
|
-
vue$1.createElementVNode("h3",
|
|
255630
|
+
? (vue$1.openBlock(), vue$1.createElementBlock("div", _hoisted_63$1, [
|
|
255631
|
+
vue$1.createElementVNode("h3", _hoisted_64$1, vue$1.toDisplayString($options.footerGroupHead), 1 /* TEXT */),
|
|
255340
255632
|
vue$1.createVNode(_component_NcButton, {
|
|
255341
255633
|
variant: "secondary",
|
|
255342
255634
|
class: vue$1.normalizeClass({ 'cn-record-list__action--tonal': $options.footerTonal }),
|
|
@@ -255371,7 +255663,7 @@ function render$3P(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
255371
255663
|
id: $data.footerReasonId,
|
|
255372
255664
|
class: "cn-record-list__footer-reason",
|
|
255373
255665
|
"data-testid": "cn-record-list-footer-reason"
|
|
255374
|
-
}, vue$1.toDisplayString($options.footerAction.reason), 9 /* TEXT, PROPS */,
|
|
255666
|
+
}, vue$1.toDisplayString($options.footerAction.reason), 9 /* TEXT, PROPS */, _hoisted_65$1))
|
|
255375
255667
|
: vue$1.createCommentVNode("v-if", true),
|
|
255376
255668
|
($options.footerAction && $options.footerGroup === '' && !$data.error)
|
|
255377
255669
|
? (vue$1.openBlock(), vue$1.createElementBlock("div", {
|
|
@@ -255380,7 +255672,7 @@ function render$3P(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
255380
255672
|
"data-testid": "cn-record-list-footer"
|
|
255381
255673
|
}, [
|
|
255382
255674
|
($options.footerAction.note)
|
|
255383
|
-
? (vue$1.openBlock(), vue$1.createElementBlock("p",
|
|
255675
|
+
? (vue$1.openBlock(), vue$1.createElementBlock("p", _hoisted_66$1, vue$1.toDisplayString($options.footerAction.note), 1 /* TEXT */))
|
|
255384
255676
|
: vue$1.createCommentVNode("v-if", true),
|
|
255385
255677
|
vue$1.createVNode(_component_NcButton, {
|
|
255386
255678
|
variant: "secondary",
|
|
@@ -255415,7 +255707,7 @@ function render$3P(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
255415
255707
|
id: $data.footerReasonId,
|
|
255416
255708
|
class: "cn-record-list__footer-reason",
|
|
255417
255709
|
"data-testid": "cn-record-list-footer-reason"
|
|
255418
|
-
}, vue$1.toDisplayString($options.footerAction.reason), 9 /* TEXT, PROPS */,
|
|
255710
|
+
}, vue$1.toDisplayString($options.footerAction.reason), 9 /* TEXT, PROPS */, _hoisted_67$1))
|
|
255419
255711
|
: vue$1.createCommentVNode("v-if", true)
|
|
255420
255712
|
], 2 /* CLASS */))
|
|
255421
255713
|
: vue$1.createCommentVNode("v-if", true)
|
|
@@ -255423,7 +255715,7 @@ function render$3P(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
255423
255715
|
}
|
|
255424
255716
|
|
|
255425
255717
|
script$3Q.render = render$3P;
|
|
255426
|
-
script$3Q.__scopeId = "data-v-
|
|
255718
|
+
script$3Q.__scopeId = "data-v-8b7be6f2";
|
|
255427
255719
|
const __sfc_main$3Q = script$3Q;
|
|
255428
255720
|
|
|
255429
255721
|
/**
|
|
@@ -263404,15 +263696,23 @@ var script$3A = {
|
|
|
263404
263696
|
*/
|
|
263405
263697
|
/**
|
|
263406
263698
|
* The value an input starts with: `content.default`, else the current
|
|
263407
|
-
* quarter or year for those types, else empty.
|
|
263699
|
+
* quarter or year for those types, else empty. For a quarter or year
|
|
263700
|
+
* input, `default: "previous"` is the last complete one (DqTermijnen
|
|
263701
|
+
* opens on the last complete quarter).
|
|
263408
263702
|
*
|
|
263409
263703
|
* @return {string}
|
|
263410
263704
|
*/
|
|
263411
263705
|
inputDefault() {
|
|
263706
|
+
const today = new Date();
|
|
263707
|
+
if (this.content.default === 'previous' && this.inputType === 'quarter') {
|
|
263708
|
+
return quarterKey(new Date(today.getFullYear(), today.getMonth() - 3, 1))
|
|
263709
|
+
}
|
|
263710
|
+
if (this.content.default === 'previous' && this.inputType === 'year') {
|
|
263711
|
+
return String(today.getFullYear() - 1)
|
|
263712
|
+
}
|
|
263412
263713
|
if (this.content.default !== undefined && this.content.default !== null) {
|
|
263413
263714
|
return String(this.content.default)
|
|
263414
263715
|
}
|
|
263415
|
-
const today = new Date();
|
|
263416
263716
|
if (this.inputType === 'quarter') {
|
|
263417
263717
|
return quarterKey(today)
|
|
263418
263718
|
}
|
|
@@ -263748,7 +264048,7 @@ function render$3z(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
263748
264048
|
}
|
|
263749
264049
|
|
|
263750
264050
|
script$3A.render = render$3z;
|
|
263751
|
-
script$3A.__scopeId = "data-v-
|
|
264051
|
+
script$3A.__scopeId = "data-v-476982f2";
|
|
263752
264052
|
const __sfc_main$3A = script$3A;
|
|
263753
264053
|
|
|
263754
264054
|
/**
|
|
@@ -268569,6 +268869,20 @@ var script$3p = {
|
|
|
268569
268869
|
return INPUT_TYPES.includes(this.kind) ? this.kind : 'text'
|
|
268570
268870
|
},
|
|
268571
268871
|
|
|
268872
|
+
/**
|
|
268873
|
+
* The number input's step: the field's own, 1 for a whole number, else
|
|
268874
|
+
* any, so a decimal value (0.8) is not invalid to the browser.
|
|
268875
|
+
*
|
|
268876
|
+
* @return {string}
|
|
268877
|
+
* @spec openspec/changes/settings-number-decimal-step/specs/settings-fields/spec.md#requirement-a-number-setting-steps-as-it-is-declared
|
|
268878
|
+
*/
|
|
268879
|
+
numberStep() {
|
|
268880
|
+
if (typeof this.field.step === 'number' || (typeof this.field.step === 'string' && this.field.step !== '')) {
|
|
268881
|
+
return String(this.field.step)
|
|
268882
|
+
}
|
|
268883
|
+
return this.field.integer ? '1' : 'any'
|
|
268884
|
+
},
|
|
268885
|
+
|
|
268572
268886
|
/** @return {string} The label. */
|
|
268573
268887
|
label() {
|
|
268574
268888
|
return String(this.field.label || this.field.key || '')
|
|
@@ -269413,12 +269727,13 @@ function render$3o(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
269413
269727
|
type: "number",
|
|
269414
269728
|
min: $props.field.min,
|
|
269415
269729
|
max: $props.field.max,
|
|
269730
|
+
step: $options.numberStep,
|
|
269416
269731
|
modelValue: $options.stringValue,
|
|
269417
269732
|
readonly: $props.field.readOnly,
|
|
269418
269733
|
error: !!$props.error,
|
|
269419
269734
|
"aria-describedby": $options.describedBy,
|
|
269420
269735
|
"onUpdate:modelValue": _cache[6] || (_cache[6] = $event => ($options.emitValue($event === '' ? null : Number($event))))
|
|
269421
|
-
}, null, 8 /* PROPS */, ["id", "label", "min", "max", "modelValue", "readonly", "error", "aria-describedby"]))
|
|
269736
|
+
}, null, 8 /* PROPS */, ["id", "label", "min", "max", "step", "modelValue", "readonly", "error", "aria-describedby"]))
|
|
269422
269737
|
: (vue$1.openBlock(), vue$1.createBlock(_component_NcTextField, {
|
|
269423
269738
|
key: 14,
|
|
269424
269739
|
id: $options.inputId,
|
|
@@ -269449,7 +269764,7 @@ function render$3o(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
269449
269764
|
}
|
|
269450
269765
|
|
|
269451
269766
|
script$3p.render = render$3o;
|
|
269452
|
-
script$3p.__scopeId = "data-v-
|
|
269767
|
+
script$3p.__scopeId = "data-v-d11dd994";
|
|
269453
269768
|
const __sfc_main$3p = script$3p;
|
|
269454
269769
|
|
|
269455
269770
|
/**
|
|
@@ -322371,6 +322686,21 @@ function formatIsoDuration(value) {
|
|
|
322371
322686
|
return words[period.unit] ? words[period.unit]() : String(value)
|
|
322372
322687
|
}
|
|
322373
322688
|
|
|
322689
|
+
/**
|
|
322690
|
+
* A Nextcloud user id as its display name (`userName` registry key): the id
|
|
322691
|
+
* while the name is looked up, and for a user nobody answers for.
|
|
322692
|
+
*
|
|
322693
|
+
* @spec openspec/changes/user-name-formatter/specs/user-name-formatter/spec.md#requirement-a-user-id-can-read-as-its-display-name
|
|
322694
|
+
* @param {unknown} value The user id.
|
|
322695
|
+
* @return {string} The display name, the id, or ''.
|
|
322696
|
+
*/
|
|
322697
|
+
function formatUserName(value) {
|
|
322698
|
+
if (value === null || value === undefined || value === '' || typeof value === 'object') {
|
|
322699
|
+
return ''
|
|
322700
|
+
}
|
|
322701
|
+
return userDisplayName(value) || String(value)
|
|
322702
|
+
}
|
|
322703
|
+
|
|
322374
322704
|
const BUILT_IN_FORMATTERS = {
|
|
322375
322705
|
date: formatDate,
|
|
322376
322706
|
datetime: formatDateTime,
|
|
@@ -322386,6 +322716,7 @@ const BUILT_IN_FORMATTERS = {
|
|
|
322386
322716
|
masked: formatMasked,
|
|
322387
322717
|
isoDuration: formatIsoDuration,
|
|
322388
322718
|
valueMap: formatValueMap,
|
|
322719
|
+
userName: formatUserName,
|
|
322389
322720
|
};
|
|
322390
322721
|
|
|
322391
322722
|
/**
|
|
@@ -360510,7 +360841,7 @@ var script$20 = {
|
|
|
360510
360841
|
// through the app's label lookup.
|
|
360511
360842
|
const countText = this.presentedCountText;
|
|
360512
360843
|
// The note after the breadcrumb already says how many there are.
|
|
360513
|
-
if (!countText && !this.countSubtitle && this.headerMetaCarriesCount) {
|
|
360844
|
+
if (!countText && !this.countSubtitle && (this.headerMetaCarriesCount || this.showCount === false)) {
|
|
360514
360845
|
return this.description
|
|
360515
360846
|
}
|
|
360516
360847
|
if (!countText && !this.countSubtitle) {
|
|
@@ -361447,9 +361778,12 @@ var script$20 = {
|
|
|
361447
361778
|
}
|
|
361448
361779
|
const sorted = [...groups].sort((a, b) => b.count - a.count);
|
|
361449
361780
|
const total = sorted.reduce((sum, g) => sum + g.count, 0);
|
|
361781
|
+
// Each tab asks to be counted as the list counts it (within the
|
|
361782
|
+
// active filters, through the list endpoint); the grouped number,
|
|
361783
|
+
// over the page filter only, stands until that count arrives.
|
|
361450
361784
|
this.generatedQuickFilters = [
|
|
361451
|
-
{ label: from.allLabel || l10n.translate('nextcloud-vue', 'All'), filter: {}, default: true, count: total },
|
|
361452
|
-
...sorted.map((g) => ({ label: (labels && labels[g.key]) || g.key, filter: { [from.field]: g.key }, count: g.count })),
|
|
361785
|
+
{ label: from.allLabel || l10n.translate('nextcloud-vue', 'All'), filter: {}, default: true, count: total, showCount: true },
|
|
361786
|
+
...sorted.map((g) => ({ label: (labels && labels[g.key]) || g.key, filter: { [from.field]: g.key }, count: g.count, showCount: true })),
|
|
361453
361787
|
];
|
|
361454
361788
|
},
|
|
361455
361789
|
|
|
@@ -378385,6 +378719,7 @@ function render$1L(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
378385
378719
|
name: "icon",
|
|
378386
378720
|
fn: vue$1.withCtx(() => [
|
|
378387
378721
|
vue$1.createVNode(_component_CnIcon, {
|
|
378722
|
+
class: "cn-action-dialog__note-icon",
|
|
378388
378723
|
name: $props.config.note.icon,
|
|
378389
378724
|
size: 20
|
|
378390
378725
|
}, null, 8 /* PROPS */, ["name"])
|
|
@@ -378405,7 +378740,7 @@ function render$1L(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
378405
378740
|
}
|
|
378406
378741
|
|
|
378407
378742
|
script$1M.render = render$1L;
|
|
378408
|
-
script$1M.__scopeId = "data-v-
|
|
378743
|
+
script$1M.__scopeId = "data-v-105a37b4";
|
|
378409
378744
|
const __sfc_main$1M = script$1M;
|
|
378410
378745
|
|
|
378411
378746
|
var CnActionDialog = /*#__PURE__*/Object.freeze({
|
|
@@ -443772,7 +444107,7 @@ function render$d(_ctx, _cache, $props, $setup, $data, $options) {
|
|
|
443772
444107
|
}
|
|
443773
444108
|
|
|
443774
444109
|
script$d.render = render$d;
|
|
443775
|
-
script$d.__scopeId = "data-v-
|
|
444110
|
+
script$d.__scopeId = "data-v-93dc585a";
|
|
443776
444111
|
const __sfc_main$d = script$d;
|
|
443777
444112
|
|
|
443778
444113
|
let titleIdCounter = 0;
|