@fieldia/core 0.24.0 → 0.26.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/README.md +133 -1
- package/package.json +1 -1
- package/schema/page.schema.json +983 -329
- package/src/index.d.mts +6 -2
- package/src/index.d.ts +6 -2
- package/src/index.js +16 -1
- package/src/index.js.map +1 -1
- package/src/index.mjs +7 -2
- package/src/index.mjs.map +1 -1
- package/src/lib/format/actions.d.mts +31 -1
- package/src/lib/format/actions.d.ts +31 -1
- package/src/lib/format/actions.js +1 -0
- package/src/lib/format/actions.js.map +1 -1
- package/src/lib/format/actions.mjs +1 -0
- package/src/lib/format/actions.mjs.map +1 -1
- package/src/lib/format/duplicate-kinds.d.mts +10 -0
- package/src/lib/format/duplicate-kinds.d.ts +10 -0
- package/src/lib/format/duplicate-kinds.js +14 -0
- package/src/lib/format/duplicate-kinds.js.map +1 -0
- package/src/lib/format/duplicate-kinds.mjs +10 -0
- package/src/lib/format/duplicate-kinds.mjs.map +1 -0
- package/src/lib/format/duplicates.d.mts +22 -0
- package/src/lib/format/duplicates.d.ts +22 -0
- package/src/lib/format/duplicates.js +24 -0
- package/src/lib/format/duplicates.js.map +1 -0
- package/src/lib/format/duplicates.mjs +21 -0
- package/src/lib/format/duplicates.mjs.map +1 -0
- package/src/lib/format/field.d.mts +236 -0
- package/src/lib/format/field.d.ts +236 -0
- package/src/lib/format/field.js +4 -3
- package/src/lib/format/field.js.map +1 -1
- package/src/lib/format/field.mjs +2 -1
- package/src/lib/format/field.mjs.map +1 -1
- package/src/lib/format/head-checks.d.mts +3 -1
- package/src/lib/format/head-checks.d.ts +3 -1
- package/src/lib/format/head-checks.js +25 -4
- package/src/lib/format/head-checks.js.map +1 -1
- package/src/lib/format/head-checks.mjs +24 -4
- package/src/lib/format/head-checks.mjs.map +1 -1
- package/src/lib/format/import-fields.d.mts +18 -0
- package/src/lib/format/import-fields.d.ts +18 -0
- package/src/lib/format/import-fields.js +26 -0
- package/src/lib/format/import-fields.js.map +1 -0
- package/src/lib/format/import-fields.mjs +21 -0
- package/src/lib/format/import-fields.mjs.map +1 -0
- package/src/lib/format/layout.d.mts +7391 -3264
- package/src/lib/format/layout.d.ts +7391 -3264
- package/src/lib/format/layout.js +100 -37
- package/src/lib/format/layout.js.map +1 -1
- package/src/lib/format/layout.mjs +99 -36
- package/src/lib/format/layout.mjs.map +1 -1
- package/src/lib/format/layout.types.d.mts +5 -2
- package/src/lib/format/layout.types.d.ts +5 -2
- package/src/lib/format/page.d.mts +1018 -118
- package/src/lib/format/page.d.ts +1018 -118
- package/src/lib/format/page.js +17 -0
- package/src/lib/format/page.js.map +1 -1
- package/src/lib/format/page.mjs +17 -0
- package/src/lib/format/page.mjs.map +1 -1
- package/src/lib/format/records.d.mts +23 -0
- package/src/lib/format/records.d.ts +23 -0
- package/src/lib/format/records.js +28 -0
- package/src/lib/format/records.js.map +1 -0
- package/src/lib/format/records.mjs +25 -0
- package/src/lib/format/records.mjs.map +1 -0
- package/src/lib/format/references.d.mts +31 -0
- package/src/lib/format/references.d.ts +31 -0
- package/src/lib/format/references.js +185 -24
- package/src/lib/format/references.js.map +1 -1
- package/src/lib/format/references.mjs +185 -24
- package/src/lib/format/references.mjs.map +1 -1
- package/src/lib/format/translate.js +12 -6
- package/src/lib/format/translate.js.map +1 -1
- package/src/lib/format/translate.mjs +12 -6
- package/src/lib/format/translate.mjs.map +1 -1
- package/src/lib/format/upgrade.d.mts +8 -3
- package/src/lib/format/upgrade.d.ts +8 -3
- package/src/lib/format/upgrade.js +8 -3
- package/src/lib/format/upgrade.js.map +1 -1
- package/src/lib/format/upgrade.mjs +8 -3
- package/src/lib/format/upgrade.mjs.map +1 -1
- package/src/lib/format/version.d.mts +2 -2
- package/src/lib/format/version.d.ts +2 -2
- package/src/lib/format/version.js +2 -2
- package/src/lib/format/version.js.map +1 -1
- package/src/lib/format/version.mjs +2 -2
- package/src/lib/format/version.mjs.map +1 -1
- package/src/lib/record/check.js +2 -2
- package/src/lib/record/check.js.map +1 -1
- package/src/lib/record/check.mjs +3 -3
- package/src/lib/record/check.mjs.map +1 -1
- package/src/lib/record/data-source.d.mts +121 -0
- package/src/lib/record/data-source.d.ts +121 -0
- package/src/lib/record/data-source.js +16 -0
- package/src/lib/record/data-source.js.map +1 -1
- package/src/lib/record/data-source.mjs +15 -0
- package/src/lib/record/data-source.mjs.map +1 -1
- package/src/lib/record/form.d.mts +51 -3
- package/src/lib/record/form.d.ts +51 -3
- package/src/lib/record/form.js +78 -17
- package/src/lib/record/form.js.map +1 -1
- package/src/lib/record/form.mjs +79 -18
- package/src/lib/record/form.mjs.map +1 -1
- package/src/lib/record/inputs.js +8 -8
- package/src/lib/record/inputs.js.map +1 -1
- package/src/lib/record/inputs.mjs +9 -9
- package/src/lib/record/inputs.mjs.map +1 -1
- package/src/lib/record/limits.js +1 -1
- package/src/lib/record/limits.js.map +1 -1
- package/src/lib/record/limits.mjs +2 -2
- package/src/lib/record/limits.mjs.map +1 -1
- package/src/lib/record/locales/de.js +2 -0
- package/src/lib/record/locales/de.js.map +1 -1
- package/src/lib/record/locales/de.mjs +2 -0
- package/src/lib/record/locales/de.mjs.map +1 -1
- package/src/lib/record/memory-data-source.d.mts +12 -5
- package/src/lib/record/memory-data-source.d.ts +12 -5
- package/src/lib/record/memory-data-source.js +85 -1
- package/src/lib/record/memory-data-source.js.map +1 -1
- package/src/lib/record/memory-data-source.mjs +86 -2
- package/src/lib/record/memory-data-source.mjs.map +1 -1
- package/src/lib/record/memory-duplicates.d.mts +19 -0
- package/src/lib/record/memory-duplicates.d.ts +19 -0
- package/src/lib/record/memory-duplicates.js +78 -0
- package/src/lib/record/memory-duplicates.js.map +1 -0
- package/src/lib/record/memory-duplicates.mjs +74 -0
- package/src/lib/record/memory-duplicates.mjs.map +1 -0
- package/src/lib/record/messages.d.mts +24 -0
- package/src/lib/record/messages.d.ts +24 -0
- package/src/lib/record/messages.js +25 -0
- package/src/lib/record/messages.js.map +1 -1
- package/src/lib/record/messages.mjs +24 -0
- package/src/lib/record/messages.mjs.map +1 -1
- package/src/lib/record/record-words.d.mts +19 -0
- package/src/lib/record/record-words.d.ts +19 -0
- package/src/lib/record/record-words.js +60 -0
- package/src/lib/record/record-words.js.map +1 -0
- package/src/lib/record/record-words.mjs +56 -0
- package/src/lib/record/record-words.mjs.map +1 -0
- package/src/lib/record/rules.js +1 -1
- package/src/lib/record/rules.js.map +1 -1
- package/src/lib/record/rules.mjs +2 -2
- package/src/lib/record/rules.mjs.map +1 -1
- package/src/lib/record/run.d.mts +39 -1
- package/src/lib/record/run.d.ts +39 -1
- package/src/lib/record/run.js +15 -1
- package/src/lib/record/run.js.map +1 -1
- package/src/lib/record/run.mjs +15 -1
- package/src/lib/record/run.mjs.map +1 -1
- package/src/lib/record/search.js +2 -1
- package/src/lib/record/search.js.map +1 -1
- package/src/lib/record/search.mjs +2 -1
- package/src/lib/record/search.mjs.map +1 -1
- package/src/lib/record/structures.js +3 -3
- package/src/lib/record/structures.js.map +1 -1
- package/src/lib/record/structures.mjs +4 -4
- package/src/lib/record/structures.mjs.map +1 -1
- package/src/lib/record/waits.d.mts +32 -0
- package/src/lib/record/waits.d.ts +32 -0
- package/src/lib/record/waits.js +89 -0
- package/src/lib/record/waits.js.map +1 -0
- package/src/lib/record/waits.mjs +85 -0
- package/src/lib/record/waits.mjs.map +1 -0
- package/src/runtime.d.mts +13 -7
- package/src/runtime.d.ts +13 -7
- package/src/runtime.js +13 -3
- package/src/runtime.js.map +1 -1
- package/src/runtime.mjs +4 -1
- package/src/runtime.mjs.map +1 -1
package/src/lib/record/inputs.js
CHANGED
|
@@ -103,9 +103,9 @@ function checkInput(field, node, value, messages) {
|
|
|
103
103
|
const min = typeof options['min'] === 'number' ? options['min'] : (field.min ?? 0);
|
|
104
104
|
const max = typeof options['maxField'] === 'string' ? undefined : typeof options['max'] === 'number' ? options['max'] : (field.max ?? 100);
|
|
105
105
|
if (value < min)
|
|
106
|
-
return (0, messages_1.
|
|
106
|
+
return (0, messages_1.fillMessage)(messages, messages.min, { label, min });
|
|
107
107
|
if (max !== undefined && value > max)
|
|
108
|
-
return (0, messages_1.
|
|
108
|
+
return (0, messages_1.fillMessage)(messages, messages.max, { label, max });
|
|
109
109
|
}
|
|
110
110
|
// Stars or a scale keep to the points they draw: the field's min and max, else a rating's 1 to 5 and a scale's 0 to 10.
|
|
111
111
|
if ((widget === 'rating' || widget === 'scale') && typeof value === 'number' && field.type === 'integer') {
|
|
@@ -113,9 +113,9 @@ function checkInput(field, node, value, messages) {
|
|
|
113
113
|
const min = field.min ?? (widget === 'rating' ? 1 : 0);
|
|
114
114
|
const max = field.max ?? (widget === 'rating' ? 5 : 10);
|
|
115
115
|
if (value < min)
|
|
116
|
-
return (0, messages_1.
|
|
116
|
+
return (0, messages_1.fillMessage)(messages, messages.min, { label, min });
|
|
117
117
|
if (value > max)
|
|
118
|
-
return (0, messages_1.
|
|
118
|
+
return (0, messages_1.fillMessage)(messages, messages.max, { label, max });
|
|
119
119
|
}
|
|
120
120
|
if (field.type !== 'char')
|
|
121
121
|
return (0, structures_1.checkStructure)(field, node, value, messages);
|
|
@@ -139,17 +139,17 @@ function checkInput(field, node, value, messages) {
|
|
|
139
139
|
return messages[widget];
|
|
140
140
|
if (widget === 'time') {
|
|
141
141
|
if (typeof options['min'] === 'string' && text < options['min'])
|
|
142
|
-
return (0, messages_1.
|
|
142
|
+
return (0, messages_1.fillMessage)(messages, messages.before, { label, min: options['min'] });
|
|
143
143
|
if (typeof options['max'] === 'string' && text > options['max'])
|
|
144
|
-
return (0, messages_1.
|
|
144
|
+
return (0, messages_1.fillMessage)(messages, messages.after, { label, max: options['max'] });
|
|
145
145
|
const off = offStep(text, options['step'], options['min']);
|
|
146
146
|
if (off)
|
|
147
|
-
return (0, messages_1.
|
|
147
|
+
return (0, messages_1.fillMessage)(messages, messages.timeStep, { label, step: off.step, example: off.before, next: off.after });
|
|
148
148
|
}
|
|
149
149
|
if (widget === 'tags' && typeof options['max'] === 'number') {
|
|
150
150
|
const count = text.split(typeof options['separator'] === 'string' && options['separator'] ? options['separator'] : ',').filter((t) => t.trim()).length;
|
|
151
151
|
if (count > options['max'])
|
|
152
|
-
return (0, messages_1.
|
|
152
|
+
return (0, messages_1.fillMessage)(messages, messages.atMost, { label, max: options['max'] });
|
|
153
153
|
}
|
|
154
154
|
return undefined;
|
|
155
155
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inputs.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/record/inputs.ts"],"names":[],"mappings":";;;AA0CA,gCAgBC;AAeD,kCAOC;AAGD,gCAEC;AAED,gCA8CC;AAnID,+CAAuD;AACvD,
|
|
1
|
+
{"version":3,"file":"inputs.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/record/inputs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { foldDigits, stripMarks } from './input-rules.mjs';
|
|
2
|
-
import {
|
|
2
|
+
import { fillMessage } from './messages.mjs';
|
|
3
3
|
import { checkStructure } from './structures.mjs';
|
|
4
4
|
/**
|
|
5
5
|
* What a text field's widget asks of its answer, besides the field's own
|
|
@@ -96,9 +96,9 @@ export function checkInput(field, node, value, messages) {
|
|
|
96
96
|
const min = typeof options['min'] === 'number' ? options['min'] : (field.min ?? 0);
|
|
97
97
|
const max = typeof options['maxField'] === 'string' ? undefined : typeof options['max'] === 'number' ? options['max'] : (field.max ?? 100);
|
|
98
98
|
if (value < min)
|
|
99
|
-
return
|
|
99
|
+
return fillMessage(messages, messages.min, { label, min });
|
|
100
100
|
if (max !== undefined && value > max)
|
|
101
|
-
return
|
|
101
|
+
return fillMessage(messages, messages.max, { label, max });
|
|
102
102
|
}
|
|
103
103
|
// Stars or a scale keep to the points they draw: the field's min and max, else a rating's 1 to 5 and a scale's 0 to 10.
|
|
104
104
|
if ((widget === 'rating' || widget === 'scale') && typeof value === 'number' && field.type === 'integer') {
|
|
@@ -106,9 +106,9 @@ export function checkInput(field, node, value, messages) {
|
|
|
106
106
|
const min = field.min ?? (widget === 'rating' ? 1 : 0);
|
|
107
107
|
const max = field.max ?? (widget === 'rating' ? 5 : 10);
|
|
108
108
|
if (value < min)
|
|
109
|
-
return
|
|
109
|
+
return fillMessage(messages, messages.min, { label, min });
|
|
110
110
|
if (value > max)
|
|
111
|
-
return
|
|
111
|
+
return fillMessage(messages, messages.max, { label, max });
|
|
112
112
|
}
|
|
113
113
|
if (field.type !== 'char')
|
|
114
114
|
return checkStructure(field, node, value, messages);
|
|
@@ -132,17 +132,17 @@ export function checkInput(field, node, value, messages) {
|
|
|
132
132
|
return messages[widget];
|
|
133
133
|
if (widget === 'time') {
|
|
134
134
|
if (typeof options['min'] === 'string' && text < options['min'])
|
|
135
|
-
return
|
|
135
|
+
return fillMessage(messages, messages.before, { label, min: options['min'] });
|
|
136
136
|
if (typeof options['max'] === 'string' && text > options['max'])
|
|
137
|
-
return
|
|
137
|
+
return fillMessage(messages, messages.after, { label, max: options['max'] });
|
|
138
138
|
const off = offStep(text, options['step'], options['min']);
|
|
139
139
|
if (off)
|
|
140
|
-
return
|
|
140
|
+
return fillMessage(messages, messages.timeStep, { label, step: off.step, example: off.before, next: off.after });
|
|
141
141
|
}
|
|
142
142
|
if (widget === 'tags' && typeof options['max'] === 'number') {
|
|
143
143
|
const count = text.split(typeof options['separator'] === 'string' && options['separator'] ? options['separator'] : ',').filter((t) => t.trim()).length;
|
|
144
144
|
if (count > options['max'])
|
|
145
|
-
return
|
|
145
|
+
return fillMessage(messages, messages.atMost, { label, max: options['max'] });
|
|
146
146
|
}
|
|
147
147
|
return undefined;
|
|
148
148
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inputs.mjs","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/record/inputs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"inputs.mjs","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/record/inputs.ts"],"names":[],"mappings":"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"}
|
package/src/lib/record/limits.js
CHANGED
|
@@ -28,7 +28,7 @@ function checkDay(field, value, today, messages) {
|
|
|
28
28
|
return undefined;
|
|
29
29
|
// A date and time by the day it falls on in its zone (the page's, written into it), else where the person is.
|
|
30
30
|
const day = field.type === 'date' ? value : (0, zones_1.dayIn)(Date.parse(value), field.timeZone);
|
|
31
|
-
const say = (key, limit) => (0, messages_1.
|
|
31
|
+
const say = (key, limit) => (0, messages_1.fillMessage)(messages, messages[key], { label: field.label, min: limit, max: limit, days: limit });
|
|
32
32
|
const words = (limit) => written({ day: 'numeric', month: 'long', year: 'numeric' }, messages, Date.parse(limit));
|
|
33
33
|
const min = field.min && dayOf(field.min, today);
|
|
34
34
|
const max = field.max && dayOf(field.max, today);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"limits.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/record/limits.ts"],"names":[],"mappings":";;AAcA,sBAKC;AAOD,4BAiBC;AA1CD,uDAAmD;AACnD,mCAAgC;AAChC,
|
|
1
|
+
{"version":3,"file":"limits.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/record/limits.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { localDay } from '../expression/functions.mjs';
|
|
2
2
|
import { dayIn } from './zones.mjs';
|
|
3
|
-
import {
|
|
3
|
+
import { fillMessage } from './messages.mjs';
|
|
4
4
|
/**
|
|
5
5
|
* A date's limits: its earliest and latest day (`min`, `max`), each a day
|
|
6
6
|
* ("2026-03-02") or one counted from the day the form is opened ("today",
|
|
@@ -24,7 +24,7 @@ export function checkDay(field, value, today, messages) {
|
|
|
24
24
|
return undefined;
|
|
25
25
|
// A date and time by the day it falls on in its zone (the page's, written into it), else where the person is.
|
|
26
26
|
const day = field.type === 'date' ? value : dayIn(Date.parse(value), field.timeZone);
|
|
27
|
-
const say = (key, limit) =>
|
|
27
|
+
const say = (key, limit) => fillMessage(messages, messages[key], { label: field.label, min: limit, max: limit, days: limit });
|
|
28
28
|
const words = (limit) => written({ day: 'numeric', month: 'long', year: 'numeric' }, messages, Date.parse(limit));
|
|
29
29
|
const min = field.min && dayOf(field.min, today);
|
|
30
30
|
const max = field.max && dayOf(field.max, today);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"limits.mjs","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/record/limits.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"limits.mjs","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/record/limits.ts"],"names":[],"mappings":"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"}
|
|
@@ -68,6 +68,8 @@ exports.de = {
|
|
|
68
68
|
theirsUnread: 'Die andere Fassung konnte nicht gelesen werden, darum wurde Ihre nicht darüber gespeichert. Versuchen Sie Meine behalten erneut, oder Neu laden.',
|
|
69
69
|
discardChanges: 'Ihre Änderungen verwerfen?',
|
|
70
70
|
recordReplaced: 'Jetzt wird ein anderer Datensatz angezeigt: die übrigen Schritte wurden nicht ausgeführt.',
|
|
71
|
+
archiveConfirmNoun: '{record} wirklich archivieren?',
|
|
72
|
+
deleteConfirmNoun: '{record} wirklich löschen?',
|
|
71
73
|
overBy: '{label} ist {over} Zeichen zu lang: kürzen Sie es auf {max}',
|
|
72
74
|
overByOne: '{label} ist 1 Zeichen zu lang: kürzen Sie es auf {max}',
|
|
73
75
|
postcode: '{label}: Postleitzahl für {country} mit {n} Ziffern, z. B. {example}',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"de.js","sourceRoot":"","sources":["../../../../../../../libs/core/src/lib/record/locales/de.ts"],"names":[],"mappings":";;;AAEA,yCAAyC;AAC5B,QAAA,EAAE,GAAa;IAC1B,QAAQ,EAAE,0BAA0B;IACpC,SAAS,EAAE,qCAAqC;IAChD,OAAO,EAAE,wCAAwC;IACjD,IAAI,EAAE,wBAAwB;IAC9B,MAAM,EAAE,6BAA6B;IACrC,OAAO,EAAE,mCAAmC;IAC5C,GAAG,EAAE,oCAAoC;IACzC,GAAG,EAAE,mCAAmC;IACxC,QAAQ,EAAE,iDAAiD;IAC3D,WAAW,EAAE,4CAA4C;IACzD,WAAW,EAAE,iDAAiD;IAC9D,YAAY,EAAE,iDAAiD;IAC/D,MAAM,EAAE,mCAAmC;IAC3C,WAAW,EAAE,iDAAiD;IAC9D,OAAO,EAAE,gCAAgC;IACzC,UAAU,EAAE,+CAA+C;IAC3D,WAAW,EAAE,yCAAyC;IACtD,cAAc,EAAE,kEAAkE;IAClF,eAAe,EAAE,yCAAyC;IAC1D,MAAM,EAAE,kCAAkC;IAC1C,aAAa,EAAE,6DAA6D;IAC5E,MAAM,EAAE,uCAAuC;IAC/C,SAAS,EAAE,yBAAyB;IACpC,UAAU,EAAE,wCAAwC;IACpD,OAAO,EAAE,2CAA2C;IACpD,MAAM,EAAE,iCAAiC;IACzC,OAAO,EAAE,8CAA8C;IACvD,SAAS,EAAE,qCAAqC;IAChD,IAAI,EAAE,8BAA8B;IACpC,QAAQ,EAAE,+BAA+B;IACzC,QAAQ,EAAE,sCAAsC;IAChD,QAAQ,EAAE,kDAAkD;IAC5D,QAAQ,EAAE,+CAA+C;IACzD,WAAW,EAAE,iEAAiE;IAC9E,eAAe,EAAE,uEAAuE;IACxF,WAAW,EAAE,yCAAyC;IACtD,SAAS,EAAE,6CAA6C;IACxD,QAAQ,EAAE,iCAAiC;IAC3C,OAAO,EAAE,6CAA6C;IACtD,MAAM,EAAE,4CAA4C;IACpD,QAAQ,EAAE,0CAA0C;IACpD,UAAU,EAAE,oCAAoC;IAChD,KAAK,EAAE,8CAA8C;IACrD,QAAQ,EAAE,6DAA6D;IACvE,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,iDAAiD;IACvD,KAAK,EAAE,2DAA2D;IAClE,GAAG,EAAE,kDAAkD;IACvD,KAAK,EAAE,0DAA0D;IACjE,IAAI,EAAE,yCAAyC;IAC/C,MAAM,EAAE,2BAA2B;IACnC,KAAK,EAAE,2BAA2B;IAClC,OAAO,EAAE,4CAA4C;IACrD,QAAQ,EAAE,0CAA0C;IACpD,QAAQ,EAAE,sCAAsC;IAChD,YAAY,EAAE,kFAAkF;IAChG,cAAc,EAAE,oDAAoD;IACpE,aAAa,EAAE,gDAAgD;IAC/D,UAAU,EAAE,uDAAuD;IACnE,aAAa,EAAE,gDAAgD;IAC/D,eAAe,EAAE,gDAAgD;IACjE,YAAY,EAAE,4CAA4C;IAC1D,YAAY,EAAE,kJAAkJ;IAChK,cAAc,EAAE,4BAA4B;IAC5C,cAAc,EAAE,2FAA2F;IAC3G,MAAM,EAAE,6DAA6D;IACrE,SAAS,EAAE,wDAAwD;IACnE,QAAQ,EAAE,sEAAsE;IAChF,SAAS,EAAE,wDAAwD;IACnE,cAAc,EAAE,qCAAqC;IACrD,QAAQ,EAAE,iFAAiF;IAC3F,aAAa,EAAE,gDAAgD;IAC/D,MAAM,EAAE,IAAI;CACb,CAAC"}
|
|
1
|
+
{"version":3,"file":"de.js","sourceRoot":"","sources":["../../../../../../../libs/core/src/lib/record/locales/de.ts"],"names":[],"mappings":";;;AAEA,yCAAyC;AAC5B,QAAA,EAAE,GAAa;IAC1B,QAAQ,EAAE,0BAA0B;IACpC,SAAS,EAAE,qCAAqC;IAChD,OAAO,EAAE,wCAAwC;IACjD,IAAI,EAAE,wBAAwB;IAC9B,MAAM,EAAE,6BAA6B;IACrC,OAAO,EAAE,mCAAmC;IAC5C,GAAG,EAAE,oCAAoC;IACzC,GAAG,EAAE,mCAAmC;IACxC,QAAQ,EAAE,iDAAiD;IAC3D,WAAW,EAAE,4CAA4C;IACzD,WAAW,EAAE,iDAAiD;IAC9D,YAAY,EAAE,iDAAiD;IAC/D,MAAM,EAAE,mCAAmC;IAC3C,WAAW,EAAE,iDAAiD;IAC9D,OAAO,EAAE,gCAAgC;IACzC,UAAU,EAAE,+CAA+C;IAC3D,WAAW,EAAE,yCAAyC;IACtD,cAAc,EAAE,kEAAkE;IAClF,eAAe,EAAE,yCAAyC;IAC1D,MAAM,EAAE,kCAAkC;IAC1C,aAAa,EAAE,6DAA6D;IAC5E,MAAM,EAAE,uCAAuC;IAC/C,SAAS,EAAE,yBAAyB;IACpC,UAAU,EAAE,wCAAwC;IACpD,OAAO,EAAE,2CAA2C;IACpD,MAAM,EAAE,iCAAiC;IACzC,OAAO,EAAE,8CAA8C;IACvD,SAAS,EAAE,qCAAqC;IAChD,IAAI,EAAE,8BAA8B;IACpC,QAAQ,EAAE,+BAA+B;IACzC,QAAQ,EAAE,sCAAsC;IAChD,QAAQ,EAAE,kDAAkD;IAC5D,QAAQ,EAAE,+CAA+C;IACzD,WAAW,EAAE,iEAAiE;IAC9E,eAAe,EAAE,uEAAuE;IACxF,WAAW,EAAE,yCAAyC;IACtD,SAAS,EAAE,6CAA6C;IACxD,QAAQ,EAAE,iCAAiC;IAC3C,OAAO,EAAE,6CAA6C;IACtD,MAAM,EAAE,4CAA4C;IACpD,QAAQ,EAAE,0CAA0C;IACpD,UAAU,EAAE,oCAAoC;IAChD,KAAK,EAAE,8CAA8C;IACrD,QAAQ,EAAE,6DAA6D;IACvE,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,iDAAiD;IACvD,KAAK,EAAE,2DAA2D;IAClE,GAAG,EAAE,kDAAkD;IACvD,KAAK,EAAE,0DAA0D;IACjE,IAAI,EAAE,yCAAyC;IAC/C,MAAM,EAAE,2BAA2B;IACnC,KAAK,EAAE,2BAA2B;IAClC,OAAO,EAAE,4CAA4C;IACrD,QAAQ,EAAE,0CAA0C;IACpD,QAAQ,EAAE,sCAAsC;IAChD,YAAY,EAAE,kFAAkF;IAChG,cAAc,EAAE,oDAAoD;IACpE,aAAa,EAAE,gDAAgD;IAC/D,UAAU,EAAE,uDAAuD;IACnE,aAAa,EAAE,gDAAgD;IAC/D,eAAe,EAAE,gDAAgD;IACjE,YAAY,EAAE,4CAA4C;IAC1D,YAAY,EAAE,kJAAkJ;IAChK,cAAc,EAAE,4BAA4B;IAC5C,cAAc,EAAE,2FAA2F;IAC3G,kBAAkB,EAAE,gCAAgC;IACpD,iBAAiB,EAAE,4BAA4B;IAC/C,MAAM,EAAE,6DAA6D;IACrE,SAAS,EAAE,wDAAwD;IACnE,QAAQ,EAAE,sEAAsE;IAChF,SAAS,EAAE,wDAAwD;IACnE,cAAc,EAAE,qCAAqC;IACrD,QAAQ,EAAE,iFAAiF;IAC3F,aAAa,EAAE,gDAAgD;IAC/D,MAAM,EAAE,IAAI;CACb,CAAC"}
|
|
@@ -65,6 +65,8 @@ export const de = {
|
|
|
65
65
|
theirsUnread: 'Die andere Fassung konnte nicht gelesen werden, darum wurde Ihre nicht darüber gespeichert. Versuchen Sie Meine behalten erneut, oder Neu laden.',
|
|
66
66
|
discardChanges: 'Ihre Änderungen verwerfen?',
|
|
67
67
|
recordReplaced: 'Jetzt wird ein anderer Datensatz angezeigt: die übrigen Schritte wurden nicht ausgeführt.',
|
|
68
|
+
archiveConfirmNoun: '{record} wirklich archivieren?',
|
|
69
|
+
deleteConfirmNoun: '{record} wirklich löschen?',
|
|
68
70
|
overBy: '{label} ist {over} Zeichen zu lang: kürzen Sie es auf {max}',
|
|
69
71
|
overByOne: '{label} ist 1 Zeichen zu lang: kürzen Sie es auf {max}',
|
|
70
72
|
postcode: '{label}: Postleitzahl für {country} mit {n} Ziffern, z. B. {example}',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"de.mjs","sourceRoot":"","sources":["../../../../../../../libs/core/src/lib/record/locales/de.ts"],"names":[],"mappings":"AAEA,yCAAyC;AACzC,MAAM,CAAC,MAAM,EAAE,GAAa;IAC1B,QAAQ,EAAE,0BAA0B;IACpC,SAAS,EAAE,qCAAqC;IAChD,OAAO,EAAE,wCAAwC;IACjD,IAAI,EAAE,wBAAwB;IAC9B,MAAM,EAAE,6BAA6B;IACrC,OAAO,EAAE,mCAAmC;IAC5C,GAAG,EAAE,oCAAoC;IACzC,GAAG,EAAE,mCAAmC;IACxC,QAAQ,EAAE,iDAAiD;IAC3D,WAAW,EAAE,4CAA4C;IACzD,WAAW,EAAE,iDAAiD;IAC9D,YAAY,EAAE,iDAAiD;IAC/D,MAAM,EAAE,mCAAmC;IAC3C,WAAW,EAAE,iDAAiD;IAC9D,OAAO,EAAE,gCAAgC;IACzC,UAAU,EAAE,+CAA+C;IAC3D,WAAW,EAAE,yCAAyC;IACtD,cAAc,EAAE,kEAAkE;IAClF,eAAe,EAAE,yCAAyC;IAC1D,MAAM,EAAE,kCAAkC;IAC1C,aAAa,EAAE,6DAA6D;IAC5E,MAAM,EAAE,uCAAuC;IAC/C,SAAS,EAAE,yBAAyB;IACpC,UAAU,EAAE,wCAAwC;IACpD,OAAO,EAAE,2CAA2C;IACpD,MAAM,EAAE,iCAAiC;IACzC,OAAO,EAAE,8CAA8C;IACvD,SAAS,EAAE,qCAAqC;IAChD,IAAI,EAAE,8BAA8B;IACpC,QAAQ,EAAE,+BAA+B;IACzC,QAAQ,EAAE,sCAAsC;IAChD,QAAQ,EAAE,kDAAkD;IAC5D,QAAQ,EAAE,+CAA+C;IACzD,WAAW,EAAE,iEAAiE;IAC9E,eAAe,EAAE,uEAAuE;IACxF,WAAW,EAAE,yCAAyC;IACtD,SAAS,EAAE,6CAA6C;IACxD,QAAQ,EAAE,iCAAiC;IAC3C,OAAO,EAAE,6CAA6C;IACtD,MAAM,EAAE,4CAA4C;IACpD,QAAQ,EAAE,0CAA0C;IACpD,UAAU,EAAE,oCAAoC;IAChD,KAAK,EAAE,8CAA8C;IACrD,QAAQ,EAAE,6DAA6D;IACvE,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,iDAAiD;IACvD,KAAK,EAAE,2DAA2D;IAClE,GAAG,EAAE,kDAAkD;IACvD,KAAK,EAAE,0DAA0D;IACjE,IAAI,EAAE,yCAAyC;IAC/C,MAAM,EAAE,2BAA2B;IACnC,KAAK,EAAE,2BAA2B;IAClC,OAAO,EAAE,4CAA4C;IACrD,QAAQ,EAAE,0CAA0C;IACpD,QAAQ,EAAE,sCAAsC;IAChD,YAAY,EAAE,kFAAkF;IAChG,cAAc,EAAE,oDAAoD;IACpE,aAAa,EAAE,gDAAgD;IAC/D,UAAU,EAAE,uDAAuD;IACnE,aAAa,EAAE,gDAAgD;IAC/D,eAAe,EAAE,gDAAgD;IACjE,YAAY,EAAE,4CAA4C;IAC1D,YAAY,EAAE,kJAAkJ;IAChK,cAAc,EAAE,4BAA4B;IAC5C,cAAc,EAAE,2FAA2F;IAC3G,MAAM,EAAE,6DAA6D;IACrE,SAAS,EAAE,wDAAwD;IACnE,QAAQ,EAAE,sEAAsE;IAChF,SAAS,EAAE,wDAAwD;IACnE,cAAc,EAAE,qCAAqC;IACrD,QAAQ,EAAE,iFAAiF;IAC3F,aAAa,EAAE,gDAAgD;IAC/D,MAAM,EAAE,IAAI;CACb,CAAC"}
|
|
1
|
+
{"version":3,"file":"de.mjs","sourceRoot":"","sources":["../../../../../../../libs/core/src/lib/record/locales/de.ts"],"names":[],"mappings":"AAEA,yCAAyC;AACzC,MAAM,CAAC,MAAM,EAAE,GAAa;IAC1B,QAAQ,EAAE,0BAA0B;IACpC,SAAS,EAAE,qCAAqC;IAChD,OAAO,EAAE,wCAAwC;IACjD,IAAI,EAAE,wBAAwB;IAC9B,MAAM,EAAE,6BAA6B;IACrC,OAAO,EAAE,mCAAmC;IAC5C,GAAG,EAAE,oCAAoC;IACzC,GAAG,EAAE,mCAAmC;IACxC,QAAQ,EAAE,iDAAiD;IAC3D,WAAW,EAAE,4CAA4C;IACzD,WAAW,EAAE,iDAAiD;IAC9D,YAAY,EAAE,iDAAiD;IAC/D,MAAM,EAAE,mCAAmC;IAC3C,WAAW,EAAE,iDAAiD;IAC9D,OAAO,EAAE,gCAAgC;IACzC,UAAU,EAAE,+CAA+C;IAC3D,WAAW,EAAE,yCAAyC;IACtD,cAAc,EAAE,kEAAkE;IAClF,eAAe,EAAE,yCAAyC;IAC1D,MAAM,EAAE,kCAAkC;IAC1C,aAAa,EAAE,6DAA6D;IAC5E,MAAM,EAAE,uCAAuC;IAC/C,SAAS,EAAE,yBAAyB;IACpC,UAAU,EAAE,wCAAwC;IACpD,OAAO,EAAE,2CAA2C;IACpD,MAAM,EAAE,iCAAiC;IACzC,OAAO,EAAE,8CAA8C;IACvD,SAAS,EAAE,qCAAqC;IAChD,IAAI,EAAE,8BAA8B;IACpC,QAAQ,EAAE,+BAA+B;IACzC,QAAQ,EAAE,sCAAsC;IAChD,QAAQ,EAAE,kDAAkD;IAC5D,QAAQ,EAAE,+CAA+C;IACzD,WAAW,EAAE,iEAAiE;IAC9E,eAAe,EAAE,uEAAuE;IACxF,WAAW,EAAE,yCAAyC;IACtD,SAAS,EAAE,6CAA6C;IACxD,QAAQ,EAAE,iCAAiC;IAC3C,OAAO,EAAE,6CAA6C;IACtD,MAAM,EAAE,4CAA4C;IACpD,QAAQ,EAAE,0CAA0C;IACpD,UAAU,EAAE,oCAAoC;IAChD,KAAK,EAAE,8CAA8C;IACrD,QAAQ,EAAE,6DAA6D;IACvE,EAAE,EAAE,MAAM;IACV,IAAI,EAAE,iDAAiD;IACvD,KAAK,EAAE,2DAA2D;IAClE,GAAG,EAAE,kDAAkD;IACvD,KAAK,EAAE,0DAA0D;IACjE,IAAI,EAAE,yCAAyC;IAC/C,MAAM,EAAE,2BAA2B;IACnC,KAAK,EAAE,2BAA2B;IAClC,OAAO,EAAE,4CAA4C;IACrD,QAAQ,EAAE,0CAA0C;IACpD,QAAQ,EAAE,sCAAsC;IAChD,YAAY,EAAE,kFAAkF;IAChG,cAAc,EAAE,oDAAoD;IACpE,aAAa,EAAE,gDAAgD;IAC/D,UAAU,EAAE,uDAAuD;IACnE,aAAa,EAAE,gDAAgD;IAC/D,eAAe,EAAE,gDAAgD;IACjE,YAAY,EAAE,4CAA4C;IAC1D,YAAY,EAAE,kJAAkJ;IAChK,cAAc,EAAE,4BAA4B;IAC5C,cAAc,EAAE,2FAA2F;IAC3G,kBAAkB,EAAE,gCAAgC;IACpD,iBAAiB,EAAE,4BAA4B;IAC/C,MAAM,EAAE,6DAA6D;IACrE,SAAS,EAAE,wDAAwD;IACnE,QAAQ,EAAE,sEAAsE;IAChF,SAAS,EAAE,wDAAwD;IACnE,cAAc,EAAE,qCAAqC;IACrD,QAAQ,EAAE,iFAAiF;IAC3F,aAAa,EAAE,gDAAgD;IAC/D,MAAM,EAAE,IAAI;CACb,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Option, PropertyDefinition } from '../format/field.mjs';
|
|
2
|
-
import type { DataSource, SubmitRequest, RecordPermissions, RecordVersion, UploadFile, SlotsRequest, SlotsResult } from './data-source.mjs';
|
|
2
|
+
import type { DataSource, SubmitRequest, RecordPermissions, RecordVersion, UploadFile, SlotsRequest, SlotsResult, DuplicatesRequest, DuplicatesResult } from './data-source.mjs';
|
|
3
3
|
import { type Scheduler } from './scheduler.mjs';
|
|
4
4
|
import { type FileValue, type RecordId, type Values } from './values.mjs';
|
|
5
5
|
export interface MemoryDataSourceOptions {
|
|
@@ -81,13 +81,20 @@ export interface MemoryDataSourceOptions {
|
|
|
81
81
|
* schedule would.
|
|
82
82
|
*/
|
|
83
83
|
slots?: (request: SlotsRequest, records: Readonly<Record<string, Record<string, Values>>>) => SlotsResult | Promise<SlotsResult>;
|
|
84
|
+
/**
|
|
85
|
+
* How `duplicates` answers: the records like the one typed, from those the source keeps — `alikeRecords()` finds the
|
|
86
|
+
* same phone, email or id as people write them apart and a name close enough. Without it, `duplicates` finds none.
|
|
87
|
+
* `merge` keeps one record with the values picked and takes the others away, links to them moved to it, either way.
|
|
88
|
+
*/
|
|
89
|
+
duplicates?: (request: DuplicatesRequest, records: Readonly<Record<string, Record<string, Values>>>) => DuplicatesResult | Promise<DuplicatesResult>;
|
|
84
90
|
}
|
|
85
91
|
/**
|
|
86
|
-
* Every member of a data source but `exportRecords`: a
|
|
87
|
-
* export to the browser, as a source
|
|
88
|
-
* or a demo gives it one by setting
|
|
92
|
+
* Every member of a data source but `exportRecords` and `importRecords`: a
|
|
93
|
+
* memory source leaves an export and an import to the browser, as a source
|
|
94
|
+
* without a server of its own does. A test or a demo gives it one by setting
|
|
95
|
+
* it.
|
|
89
96
|
*/
|
|
90
|
-
export interface MemoryDataSource extends Required<Omit<DataSource, 'exportRecords'>>, Pick<DataSource, 'exportRecords'> {
|
|
97
|
+
export interface MemoryDataSource extends Required<Omit<DataSource, 'exportRecords' | 'importRecords'>>, Pick<DataSource, 'exportRecords' | 'importRecords'> {
|
|
91
98
|
readonly records: Record<string, Record<string, Values>>;
|
|
92
99
|
readonly responses: SubmitRequest[];
|
|
93
100
|
readonly calls: {
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { Option, PropertyDefinition } from '../format/field';
|
|
2
|
-
import type { DataSource, SubmitRequest, RecordPermissions, RecordVersion, UploadFile, SlotsRequest, SlotsResult } from './data-source';
|
|
2
|
+
import type { DataSource, SubmitRequest, RecordPermissions, RecordVersion, UploadFile, SlotsRequest, SlotsResult, DuplicatesRequest, DuplicatesResult } from './data-source';
|
|
3
3
|
import { type Scheduler } from './scheduler';
|
|
4
4
|
import { type FileValue, type RecordId, type Values } from './values';
|
|
5
5
|
export interface MemoryDataSourceOptions {
|
|
@@ -81,13 +81,20 @@ export interface MemoryDataSourceOptions {
|
|
|
81
81
|
* schedule would.
|
|
82
82
|
*/
|
|
83
83
|
slots?: (request: SlotsRequest, records: Readonly<Record<string, Record<string, Values>>>) => SlotsResult | Promise<SlotsResult>;
|
|
84
|
+
/**
|
|
85
|
+
* How `duplicates` answers: the records like the one typed, from those the source keeps — `alikeRecords()` finds the
|
|
86
|
+
* same phone, email or id as people write them apart and a name close enough. Without it, `duplicates` finds none.
|
|
87
|
+
* `merge` keeps one record with the values picked and takes the others away, links to them moved to it, either way.
|
|
88
|
+
*/
|
|
89
|
+
duplicates?: (request: DuplicatesRequest, records: Readonly<Record<string, Record<string, Values>>>) => DuplicatesResult | Promise<DuplicatesResult>;
|
|
84
90
|
}
|
|
85
91
|
/**
|
|
86
|
-
* Every member of a data source but `exportRecords`: a
|
|
87
|
-
* export to the browser, as a source
|
|
88
|
-
* or a demo gives it one by setting
|
|
92
|
+
* Every member of a data source but `exportRecords` and `importRecords`: a
|
|
93
|
+
* memory source leaves an export and an import to the browser, as a source
|
|
94
|
+
* without a server of its own does. A test or a demo gives it one by setting
|
|
95
|
+
* it.
|
|
89
96
|
*/
|
|
90
|
-
export interface MemoryDataSource extends Required<Omit<DataSource, 'exportRecords'>>, Pick<DataSource, 'exportRecords'> {
|
|
97
|
+
export interface MemoryDataSource extends Required<Omit<DataSource, 'exportRecords' | 'importRecords'>>, Pick<DataSource, 'exportRecords' | 'importRecords'> {
|
|
91
98
|
readonly records: Record<string, Record<string, Values>>;
|
|
92
99
|
readonly responses: SubmitRequest[];
|
|
93
100
|
readonly calls: {
|
|
@@ -18,7 +18,8 @@ function createMemoryDataSource(options = {}) {
|
|
|
18
18
|
const calls = [];
|
|
19
19
|
/** Properties added in place, by the list and the definitions the app gave for the record they were added to. */
|
|
20
20
|
const addedDefinitions = new Map();
|
|
21
|
-
|
|
21
|
+
// A new line's id comes after every line id of the records given (kept from an earlier visit, say), never one of them.
|
|
22
|
+
let lineIds = Math.max(1000, highestLineId(records));
|
|
22
23
|
let fileIds = 0;
|
|
23
24
|
/** Each file's tries at the store, by its name and size: what `storage.fails` is told. */
|
|
24
25
|
const tries = new Map();
|
|
@@ -213,6 +214,22 @@ function createMemoryDataSource(options = {}) {
|
|
|
213
214
|
}
|
|
214
215
|
return { failed };
|
|
215
216
|
},
|
|
217
|
+
async createMany(request) {
|
|
218
|
+
calls.push({ method: 'createMany', request });
|
|
219
|
+
await pause();
|
|
220
|
+
// Each as a save of a new record would be: made, or refused with why.
|
|
221
|
+
return {
|
|
222
|
+
records: request.records.map((values) => {
|
|
223
|
+
try {
|
|
224
|
+
return { id: write((0, data_source_1.newRecordSave)(request.model, request.fields, values)).id };
|
|
225
|
+
}
|
|
226
|
+
catch (error) {
|
|
227
|
+
const problem = (0, data_source_1.saveProblemOf)(error);
|
|
228
|
+
return { message: Object.values(problem.fields ?? {})[0] ?? problem.message, problem };
|
|
229
|
+
}
|
|
230
|
+
}),
|
|
231
|
+
};
|
|
232
|
+
},
|
|
216
233
|
async onchange(request) {
|
|
217
234
|
calls.push({ method: 'onchange', request });
|
|
218
235
|
await pause();
|
|
@@ -279,6 +296,49 @@ function createMemoryDataSource(options = {}) {
|
|
|
279
296
|
throw new Error(`No schedule "${request.schedule}"`);
|
|
280
297
|
return options.slots(request, records);
|
|
281
298
|
},
|
|
299
|
+
async duplicates(request) {
|
|
300
|
+
calls.push({ method: 'duplicates', request });
|
|
301
|
+
await pause();
|
|
302
|
+
return options.duplicates ? options.duplicates(request, records) : { matches: [] };
|
|
303
|
+
},
|
|
304
|
+
async merge(request) {
|
|
305
|
+
calls.push({ method: 'merge', request });
|
|
306
|
+
await pause();
|
|
307
|
+
const rows = table(request.model);
|
|
308
|
+
const kept = rows[String(request.keepId)];
|
|
309
|
+
if (!kept)
|
|
310
|
+
throw new Error(`No ${request.model} record with id ${request.keepId}`);
|
|
311
|
+
allowed(permissions(request.model, request.keepId), 'edit');
|
|
312
|
+
for (const id of request.mergeIds) {
|
|
313
|
+
if (!rows[String(id)])
|
|
314
|
+
throw new Error(`No ${request.model} record with id ${id}`);
|
|
315
|
+
allowed(permissions(request.model, id), 'delete');
|
|
316
|
+
}
|
|
317
|
+
// Each link to a record merged is a link to the one kept: a link known by its id and its name, which no other model's record of that id shares.
|
|
318
|
+
const gone = new Map(request.mergeIds.map((id) => [String(id), labelOf(request.model, id)]));
|
|
319
|
+
Object.assign(kept, (0, values_1.structuredCopy)(request.values));
|
|
320
|
+
for (const id of request.mergeIds)
|
|
321
|
+
delete rows[String(id)];
|
|
322
|
+
if (options.versions)
|
|
323
|
+
moveOn(request.model, request.keepId, me);
|
|
324
|
+
const to = { id: request.keepId, label: labelOf(request.model, request.keepId) };
|
|
325
|
+
const moved = (value) => {
|
|
326
|
+
if (Array.isArray(value)) {
|
|
327
|
+
const out = value.map(moved);
|
|
328
|
+
// Links to both the kept and a merged record are one link.
|
|
329
|
+
return out.filter((item, at) => !isLink(item) || out.findIndex((other) => isLink(other) && String(other.id) === String(item.id)) === at);
|
|
330
|
+
}
|
|
331
|
+
if (isLink(value))
|
|
332
|
+
return gone.get(String(value.id)) === value.label ? { ...value, ...to } : value;
|
|
333
|
+
if (value && typeof value === 'object' && 'values' in value && 'key' in value)
|
|
334
|
+
return { ...value, values: movedIn(value.values) };
|
|
335
|
+
return value;
|
|
336
|
+
};
|
|
337
|
+
const movedIn = (values) => Object.fromEntries(Object.entries(values).map(([field, value]) => [field, moved(value)]));
|
|
338
|
+
for (const each of Object.values(records))
|
|
339
|
+
for (const [key, values] of Object.entries(each))
|
|
340
|
+
each[key] = movedIn(values);
|
|
341
|
+
},
|
|
282
342
|
async totals(request) {
|
|
283
343
|
calls.push({ method: 'totals', request });
|
|
284
344
|
await pause();
|
|
@@ -410,6 +470,30 @@ function createMemoryDataSource(options = {}) {
|
|
|
410
470
|
},
|
|
411
471
|
};
|
|
412
472
|
}
|
|
473
|
+
/** The highest numeric id of a line among the records given — their tables of lines, and lines inside lines — or 0. */
|
|
474
|
+
function highestLineId(records) {
|
|
475
|
+
let highest = 0;
|
|
476
|
+
const look = (value) => {
|
|
477
|
+
if (!Array.isArray(value))
|
|
478
|
+
return;
|
|
479
|
+
for (const item of value) {
|
|
480
|
+
if (!item || typeof item !== 'object' || !('key' in item) || !('values' in item))
|
|
481
|
+
continue;
|
|
482
|
+
const id = item.id;
|
|
483
|
+
if (typeof id === 'number' && id > highest)
|
|
484
|
+
highest = id;
|
|
485
|
+
for (const inner of Object.values(item.values ?? {}))
|
|
486
|
+
look(inner);
|
|
487
|
+
}
|
|
488
|
+
};
|
|
489
|
+
for (const table of Object.values(records))
|
|
490
|
+
for (const values of Object.values(table))
|
|
491
|
+
for (const value of Object.values(values))
|
|
492
|
+
look(value);
|
|
493
|
+
return highest;
|
|
494
|
+
}
|
|
495
|
+
/** A link: a record's id and its name. */
|
|
496
|
+
const isLink = (value) => !!value && typeof value === 'object' && !Array.isArray(value) && 'id' in value && 'label' in value && !('values' in value);
|
|
413
497
|
/** Words as a search finds them: folded (foldForSearch), and a path's separators — \\ or /, with spaces round them or not — as one. */
|
|
414
498
|
const findable = (text) => (0, input_rules_1.foldForSearch)(text).replace(/\s*[\\/]\s*/g, '\\');
|
|
415
499
|
/** A tree's record's names from the top down: a list of names, or names joined by a backslash; null for anything else. */
|