@fieldia/widgets 0.2.0 → 0.3.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/package.json +2 -2
- package/src/index.d.mts +2 -0
- package/src/index.d.ts +2 -0
- package/src/index.js +2 -0
- package/src/index.js.map +1 -1
- package/src/index.mjs +2 -0
- package/src/index.mjs.map +1 -1
- package/src/lib/display.d.mts +6 -0
- package/src/lib/display.d.ts +6 -0
- package/src/lib/display.js +59 -0
- package/src/lib/display.js.map +1 -0
- package/src/lib/display.mjs +56 -0
- package/src/lib/display.mjs.map +1 -0
- package/src/lib/labels.d.mts +10 -0
- package/src/lib/labels.d.ts +10 -0
- package/src/lib/labels.js +24 -0
- package/src/lib/labels.js.map +1 -1
- package/src/lib/labels.mjs +24 -0
- package/src/lib/labels.mjs.map +1 -1
- package/src/lib/lines.d.mts +5 -0
- package/src/lib/lines.d.ts +5 -0
- package/src/lib/lines.js +91 -36
- package/src/lib/lines.js.map +1 -1
- package/src/lib/lines.mjs +90 -37
- package/src/lib/lines.mjs.map +1 -1
- package/src/lib/preferences.d.mts +14 -0
- package/src/lib/preferences.d.ts +14 -0
- package/src/lib/preferences.js +44 -0
- package/src/lib/preferences.js.map +1 -0
- package/src/lib/preferences.mjs +40 -0
- package/src/lib/preferences.mjs.map +1 -0
- package/src/lib/relations.js +3 -0
- package/src/lib/relations.js.map +1 -1
- package/src/lib/relations.mjs +3 -0
- package/src/lib/relations.mjs.map +1 -1
- package/src/lib/styles.d.mts +1 -1
- package/src/lib/styles.d.ts +1 -1
- package/src/lib/styles.js +9 -3
- package/src/lib/styles.js.map +1 -1
- package/src/lib/styles.mjs +9 -3
- package/src/lib/styles.mjs.map +1 -1
- package/src/lib/widgets.d.mts +3 -0
- package/src/lib/widgets.d.ts +3 -0
- package/src/lib/widgets.js.map +1 -1
- package/src/lib/widgets.mjs.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fieldia/widgets",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.3.0",
|
|
4
4
|
"description": "Fieldia field inputs in plain DOM, with the underline and outlined skins.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://fieldia.dev",
|
|
@@ -21,7 +21,7 @@
|
|
|
21
21
|
"./package.json": "./package.json"
|
|
22
22
|
},
|
|
23
23
|
"dependencies": {
|
|
24
|
-
"@fieldia/core": "0.
|
|
24
|
+
"@fieldia/core": "0.3.0",
|
|
25
25
|
"tslib": "^2.8.1"
|
|
26
26
|
},
|
|
27
27
|
"sideEffects": false,
|
package/src/index.d.mts
CHANGED
package/src/index.d.ts
CHANGED
package/src/index.js
CHANGED
|
@@ -8,4 +8,6 @@ tslib_1.__exportStar(require("./lib/relations"), exports);
|
|
|
8
8
|
tslib_1.__exportStar(require("./lib/lines"), exports);
|
|
9
9
|
tslib_1.__exportStar(require("./lib/files"), exports);
|
|
10
10
|
tslib_1.__exportStar(require("./lib/extras"), exports);
|
|
11
|
+
tslib_1.__exportStar(require("./lib/display"), exports);
|
|
12
|
+
tslib_1.__exportStar(require("./lib/preferences"), exports);
|
|
11
13
|
//# sourceMappingURL=index.js.map
|
package/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/widgets/src/index.ts"],"names":[],"mappings":";;;AAAA,wDAA8B;AAC9B,uDAA6B;AAC7B,uDAA6B;AAC7B,0DAAgC;AAChC,sDAA4B;AAC5B,sDAA4B;AAC5B,uDAA6B"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../libs/widgets/src/index.ts"],"names":[],"mappings":";;;AAAA,wDAA8B;AAC9B,uDAA6B;AAC7B,uDAA6B;AAC7B,0DAAgC;AAChC,sDAA4B;AAC5B,sDAA4B;AAC5B,uDAA6B;AAC7B,wDAA8B;AAC9B,4DAAkC"}
|
package/src/index.mjs
CHANGED
package/src/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../../../libs/widgets/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.mjs","sourceRoot":"","sources":["../../../../libs/widgets/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,cAAc,CAAC;AAC7B,cAAc,iBAAiB,CAAC;AAChC,cAAc,aAAa,CAAC;AAC5B,cAAc,aAAa,CAAC;AAC5B,cAAc,cAAc,CAAC;AAC7B,cAAc,eAAe,CAAC;AAC9B,cAAc,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { LineField, Value } from '@fieldia/core';
|
|
2
|
+
/**
|
|
3
|
+
* A value as a person reads it where it is not being edited: a cell of the
|
|
4
|
+
* lines grid, a totals row. Shared by the plain lines table and @fieldia/grid.
|
|
5
|
+
*/
|
|
6
|
+
export declare function displayValue(def: LineField, value: Value | undefined, values?: Record<string, Value>): string;
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { LineField, Value } from '@fieldia/core';
|
|
2
|
+
/**
|
|
3
|
+
* A value as a person reads it where it is not being edited: a cell of the
|
|
4
|
+
* lines grid, a totals row. Shared by the plain lines table and @fieldia/grid.
|
|
5
|
+
*/
|
|
6
|
+
export declare function displayValue(def: LineField, value: Value | undefined, values?: Record<string, Value>): string;
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.displayValue = displayValue;
|
|
4
|
+
const number = (value, digits) => new Intl.NumberFormat('en-US', { minimumFractionDigits: digits, maximumFractionDigits: digits }).format(value);
|
|
5
|
+
function localDate(text) {
|
|
6
|
+
const match = /^(\d{4})-(\d{2})-(\d{2})(?:[T ](\d{2}):(\d{2}))?/.exec(text);
|
|
7
|
+
if (!match)
|
|
8
|
+
return null;
|
|
9
|
+
const [, y, m, d, hh, mm] = match;
|
|
10
|
+
return new Date(Number(y), Number(m) - 1, Number(d), Number(hh ?? 0), Number(mm ?? 0));
|
|
11
|
+
}
|
|
12
|
+
/**
|
|
13
|
+
* A value as a person reads it where it is not being edited: a cell of the
|
|
14
|
+
* lines grid, a totals row. Shared by the plain lines table and @fieldia/grid.
|
|
15
|
+
*/
|
|
16
|
+
function displayValue(def, value, values = {}) {
|
|
17
|
+
if (value === null || value === undefined || value === '')
|
|
18
|
+
return '';
|
|
19
|
+
switch (def.type) {
|
|
20
|
+
case 'many2one':
|
|
21
|
+
case 'reference':
|
|
22
|
+
return value.label ?? '';
|
|
23
|
+
case 'many2many':
|
|
24
|
+
return (value ?? []).map((r) => r.label).join(', ');
|
|
25
|
+
case 'selection': {
|
|
26
|
+
const label = (v) => def.options.find((o) => o.value === v)?.label ?? String(v);
|
|
27
|
+
return Array.isArray(value) ? value.map(label).join(', ') : label(value);
|
|
28
|
+
}
|
|
29
|
+
case 'integer':
|
|
30
|
+
return number(Number(value), 0);
|
|
31
|
+
case 'float':
|
|
32
|
+
return number(Number(value), def.digits?.[1] ?? 2);
|
|
33
|
+
case 'monetary': {
|
|
34
|
+
const currency = def.currency ?? (def.currencyField ? values[def.currencyField]?.label : undefined);
|
|
35
|
+
const amount = number(Number(value), def.digits?.[1] ?? 2);
|
|
36
|
+
return currency ? `${currency} ${amount}` : amount;
|
|
37
|
+
}
|
|
38
|
+
case 'date': {
|
|
39
|
+
const date = localDate(String(value));
|
|
40
|
+
return date ? new Intl.DateTimeFormat('en-GB', { day: 'numeric', month: 'short', year: 'numeric' }).format(date) : String(value);
|
|
41
|
+
}
|
|
42
|
+
case 'datetime': {
|
|
43
|
+
const date = localDate(String(value));
|
|
44
|
+
return date
|
|
45
|
+
? new Intl.DateTimeFormat('en-GB', { day: 'numeric', month: 'short', year: 'numeric', hour: '2-digit', minute: '2-digit' }).format(date)
|
|
46
|
+
: String(value);
|
|
47
|
+
}
|
|
48
|
+
case 'html':
|
|
49
|
+
return String(value).replace(/<[^>]*>/g, ' ').replace(/\s+/g, ' ').trim();
|
|
50
|
+
case 'binary':
|
|
51
|
+
case 'image':
|
|
52
|
+
return value.name ?? '';
|
|
53
|
+
case 'boolean':
|
|
54
|
+
return value ? '✓' : '';
|
|
55
|
+
default:
|
|
56
|
+
return String(value);
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=display.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"display.js","sourceRoot":"","sources":["../../../../../libs/widgets/src/lib/display.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
const number = (value, digits) => new Intl.NumberFormat('en-US', { minimumFractionDigits: digits, maximumFractionDigits: digits }).format(value);
|
|
2
|
+
function localDate(text) {
|
|
3
|
+
const match = /^(\d{4})-(\d{2})-(\d{2})(?:[T ](\d{2}):(\d{2}))?/.exec(text);
|
|
4
|
+
if (!match)
|
|
5
|
+
return null;
|
|
6
|
+
const [, y, m, d, hh, mm] = match;
|
|
7
|
+
return new Date(Number(y), Number(m) - 1, Number(d), Number(hh ?? 0), Number(mm ?? 0));
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* A value as a person reads it where it is not being edited: a cell of the
|
|
11
|
+
* lines grid, a totals row. Shared by the plain lines table and @fieldia/grid.
|
|
12
|
+
*/
|
|
13
|
+
export function displayValue(def, value, values = {}) {
|
|
14
|
+
if (value === null || value === undefined || value === '')
|
|
15
|
+
return '';
|
|
16
|
+
switch (def.type) {
|
|
17
|
+
case 'many2one':
|
|
18
|
+
case 'reference':
|
|
19
|
+
return value.label ?? '';
|
|
20
|
+
case 'many2many':
|
|
21
|
+
return (value ?? []).map((r) => r.label).join(', ');
|
|
22
|
+
case 'selection': {
|
|
23
|
+
const label = (v) => def.options.find((o) => o.value === v)?.label ?? String(v);
|
|
24
|
+
return Array.isArray(value) ? value.map(label).join(', ') : label(value);
|
|
25
|
+
}
|
|
26
|
+
case 'integer':
|
|
27
|
+
return number(Number(value), 0);
|
|
28
|
+
case 'float':
|
|
29
|
+
return number(Number(value), def.digits?.[1] ?? 2);
|
|
30
|
+
case 'monetary': {
|
|
31
|
+
const currency = def.currency ?? (def.currencyField ? values[def.currencyField]?.label : undefined);
|
|
32
|
+
const amount = number(Number(value), def.digits?.[1] ?? 2);
|
|
33
|
+
return currency ? `${currency} ${amount}` : amount;
|
|
34
|
+
}
|
|
35
|
+
case 'date': {
|
|
36
|
+
const date = localDate(String(value));
|
|
37
|
+
return date ? new Intl.DateTimeFormat('en-GB', { day: 'numeric', month: 'short', year: 'numeric' }).format(date) : String(value);
|
|
38
|
+
}
|
|
39
|
+
case 'datetime': {
|
|
40
|
+
const date = localDate(String(value));
|
|
41
|
+
return date
|
|
42
|
+
? new Intl.DateTimeFormat('en-GB', { day: 'numeric', month: 'short', year: 'numeric', hour: '2-digit', minute: '2-digit' }).format(date)
|
|
43
|
+
: String(value);
|
|
44
|
+
}
|
|
45
|
+
case 'html':
|
|
46
|
+
return String(value).replace(/<[^>]*>/g, ' ').replace(/\s+/g, ' ').trim();
|
|
47
|
+
case 'binary':
|
|
48
|
+
case 'image':
|
|
49
|
+
return value.name ?? '';
|
|
50
|
+
case 'boolean':
|
|
51
|
+
return value ? '✓' : '';
|
|
52
|
+
default:
|
|
53
|
+
return String(value);
|
|
54
|
+
}
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=display.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"display.mjs","sourceRoot":"","sources":["../../../../../libs/widgets/src/lib/display.ts"],"names":[],"mappings":"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"}
|
package/src/lib/labels.d.mts
CHANGED
|
@@ -6,7 +6,17 @@ export interface WidgetLabels {
|
|
|
6
6
|
remove: string;
|
|
7
7
|
clear: string;
|
|
8
8
|
addLine: string;
|
|
9
|
+
addSection: string;
|
|
10
|
+
addNote: string;
|
|
9
11
|
deleteLine: string;
|
|
12
|
+
/** Heads the row that adds up a table's number columns. */
|
|
13
|
+
total: string;
|
|
14
|
+
/** A problem on one line of a table, under the table. `{n}` counts from 1. */
|
|
15
|
+
lineProblem: string;
|
|
16
|
+
/** Problems beyond the first few. */
|
|
17
|
+
moreProblems: string;
|
|
18
|
+
/** The button that lets a person hide or show a table's optional columns. */
|
|
19
|
+
chooseColumns: string;
|
|
10
20
|
upload: string;
|
|
11
21
|
uploadImage: string;
|
|
12
22
|
replace: string;
|
package/src/lib/labels.d.ts
CHANGED
|
@@ -6,7 +6,17 @@ export interface WidgetLabels {
|
|
|
6
6
|
remove: string;
|
|
7
7
|
clear: string;
|
|
8
8
|
addLine: string;
|
|
9
|
+
addSection: string;
|
|
10
|
+
addNote: string;
|
|
9
11
|
deleteLine: string;
|
|
12
|
+
/** Heads the row that adds up a table's number columns. */
|
|
13
|
+
total: string;
|
|
14
|
+
/** A problem on one line of a table, under the table. `{n}` counts from 1. */
|
|
15
|
+
lineProblem: string;
|
|
16
|
+
/** Problems beyond the first few. */
|
|
17
|
+
moreProblems: string;
|
|
18
|
+
/** The button that lets a person hide or show a table's optional columns. */
|
|
19
|
+
chooseColumns: string;
|
|
10
20
|
upload: string;
|
|
11
21
|
uploadImage: string;
|
|
12
22
|
replace: string;
|
package/src/lib/labels.js
CHANGED
|
@@ -8,7 +8,13 @@ exports.WIDGET_LABELS = {
|
|
|
8
8
|
remove: 'Remove {name}',
|
|
9
9
|
clear: 'Clear {label}',
|
|
10
10
|
addLine: 'Add a line',
|
|
11
|
+
addSection: 'Add a section',
|
|
12
|
+
addNote: 'Add a note',
|
|
11
13
|
deleteLine: 'Delete line',
|
|
14
|
+
total: 'Total',
|
|
15
|
+
lineProblem: 'Line {n}: {message}',
|
|
16
|
+
moreProblems: 'and {n} more',
|
|
17
|
+
chooseColumns: 'Choose columns',
|
|
12
18
|
upload: 'Upload a file',
|
|
13
19
|
uploadImage: 'Add a photo',
|
|
14
20
|
replace: 'Replace',
|
|
@@ -22,7 +28,13 @@ exports.WIDGET_LABELS = {
|
|
|
22
28
|
remove: 'إزالة {name}',
|
|
23
29
|
clear: 'مسح {label}',
|
|
24
30
|
addLine: 'إضافة سطر',
|
|
31
|
+
addSection: 'إضافة قسم',
|
|
32
|
+
addNote: 'إضافة ملاحظة',
|
|
25
33
|
deleteLine: 'حذف السطر',
|
|
34
|
+
total: 'الإجمالي',
|
|
35
|
+
lineProblem: 'السطر {n}: {message}',
|
|
36
|
+
moreProblems: 'و{n} أخرى',
|
|
37
|
+
chooseColumns: 'اختيار الأعمدة',
|
|
26
38
|
upload: 'رفع ملف',
|
|
27
39
|
uploadImage: 'إضافة صورة',
|
|
28
40
|
replace: 'استبدال',
|
|
@@ -36,7 +48,13 @@ exports.WIDGET_LABELS = {
|
|
|
36
48
|
remove: '{name} entfernen',
|
|
37
49
|
clear: '{label} leeren',
|
|
38
50
|
addLine: 'Zeile hinzufügen',
|
|
51
|
+
addSection: 'Abschnitt hinzufügen',
|
|
52
|
+
addNote: 'Notiz hinzufügen',
|
|
39
53
|
deleteLine: 'Zeile löschen',
|
|
54
|
+
total: 'Summe',
|
|
55
|
+
lineProblem: 'Zeile {n}: {message}',
|
|
56
|
+
moreProblems: 'und {n} weitere',
|
|
57
|
+
chooseColumns: 'Spalten auswählen',
|
|
40
58
|
upload: 'Datei hochladen',
|
|
41
59
|
uploadImage: 'Foto hinzufügen',
|
|
42
60
|
replace: 'Ersetzen',
|
|
@@ -50,7 +68,13 @@ exports.WIDGET_LABELS = {
|
|
|
50
68
|
remove: 'Retirer {name}',
|
|
51
69
|
clear: 'Effacer {label}',
|
|
52
70
|
addLine: 'Ajouter une ligne',
|
|
71
|
+
addSection: 'Ajouter une section',
|
|
72
|
+
addNote: 'Ajouter une note',
|
|
53
73
|
deleteLine: 'Supprimer la ligne',
|
|
74
|
+
total: 'Total',
|
|
75
|
+
lineProblem: 'Ligne {n} : {message}',
|
|
76
|
+
moreProblems: 'et {n} de plus',
|
|
77
|
+
chooseColumns: 'Choisir les colonnes',
|
|
54
78
|
upload: 'Téléverser un fichier',
|
|
55
79
|
uploadImage: 'Ajouter une photo',
|
|
56
80
|
replace: 'Remplacer',
|
package/src/lib/labels.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"labels.js","sourceRoot":"","sources":["../../../../../libs/widgets/src/lib/labels.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"labels.js","sourceRoot":"","sources":["../../../../../libs/widgets/src/lib/labels.ts"],"names":[],"mappings":";;;AA4Ba,QAAA,aAAa,GAAiC;IACzD,EAAE,EAAE;QACF,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,YAAY;QACvB,MAAM,EAAE,eAAe;QACvB,KAAK,EAAE,eAAe;QACtB,OAAO,EAAE,YAAY;QACrB,UAAU,EAAE,eAAe;QAC3B,OAAO,EAAE,YAAY;QACrB,UAAU,EAAE,aAAa;QACzB,KAAK,EAAE,OAAO;QACd,WAAW,EAAE,qBAAqB;QAClC,YAAY,EAAE,cAAc;QAC5B,aAAa,EAAE,gBAAgB;QAC/B,MAAM,EAAE,eAAe;QACvB,WAAW,EAAE,aAAa;QAC1B,OAAO,EAAE,SAAS;QAClB,UAAU,EAAE,QAAQ;QACpB,QAAQ,EAAE,iBAAiB;QAC3B,WAAW,EAAE,gBAAgB;KAC9B;IACD,EAAE,EAAE;QACF,MAAM,EAAE,MAAM;QACd,SAAS,EAAE,eAAe;QAC1B,MAAM,EAAE,cAAc;QACtB,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,WAAW;QACpB,UAAU,EAAE,WAAW;QACvB,OAAO,EAAE,cAAc;QACvB,UAAU,EAAE,WAAW;QACvB,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,sBAAsB;QACnC,YAAY,EAAE,WAAW;QACzB,aAAa,EAAE,gBAAgB;QAC/B,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,YAAY;QACzB,OAAO,EAAE,SAAS;QAClB,UAAU,EAAE,OAAO;QACnB,QAAQ,EAAE,cAAc;QACxB,WAAW,EAAE,iBAAiB;KAC/B;IACD,EAAE,EAAE;QACF,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,kBAAkB;QAC7B,MAAM,EAAE,kBAAkB;QAC1B,KAAK,EAAE,gBAAgB;QACvB,OAAO,EAAE,kBAAkB;QAC3B,UAAU,EAAE,sBAAsB;QAClC,OAAO,EAAE,kBAAkB;QAC3B,UAAU,EAAE,eAAe;QAC3B,KAAK,EAAE,OAAO;QACd,WAAW,EAAE,sBAAsB;QACnC,YAAY,EAAE,iBAAiB;QAC/B,aAAa,EAAE,mBAAmB;QAClC,MAAM,EAAE,iBAAiB;QACzB,WAAW,EAAE,iBAAiB;QAC9B,OAAO,EAAE,UAAU;QACnB,UAAU,EAAE,WAAW;QACvB,QAAQ,EAAE,mBAAmB;QAC7B,WAAW,EAAE,oBAAoB;KAClC;IACD,EAAE,EAAE;QACF,MAAM,EAAE,aAAa;QACrB,SAAS,EAAE,gBAAgB;QAC3B,MAAM,EAAE,gBAAgB;QACxB,KAAK,EAAE,iBAAiB;QACxB,OAAO,EAAE,mBAAmB;QAC5B,UAAU,EAAE,qBAAqB;QACjC,OAAO,EAAE,kBAAkB;QAC3B,UAAU,EAAE,oBAAoB;QAChC,KAAK,EAAE,OAAO;QACd,WAAW,EAAE,uBAAuB;QACpC,YAAY,EAAE,gBAAgB;QAC9B,aAAa,EAAE,sBAAsB;QACrC,MAAM,EAAE,uBAAuB;QAC/B,WAAW,EAAE,mBAAmB;QAChC,OAAO,EAAE,WAAW;QACpB,UAAU,EAAE,SAAS;QACrB,QAAQ,EAAE,mBAAmB;QAC7B,WAAW,EAAE,eAAe;KAC7B;CACF,CAAC"}
|
package/src/lib/labels.mjs
CHANGED
|
@@ -5,7 +5,13 @@ export const WIDGET_LABELS = {
|
|
|
5
5
|
remove: 'Remove {name}',
|
|
6
6
|
clear: 'Clear {label}',
|
|
7
7
|
addLine: 'Add a line',
|
|
8
|
+
addSection: 'Add a section',
|
|
9
|
+
addNote: 'Add a note',
|
|
8
10
|
deleteLine: 'Delete line',
|
|
11
|
+
total: 'Total',
|
|
12
|
+
lineProblem: 'Line {n}: {message}',
|
|
13
|
+
moreProblems: 'and {n} more',
|
|
14
|
+
chooseColumns: 'Choose columns',
|
|
9
15
|
upload: 'Upload a file',
|
|
10
16
|
uploadImage: 'Add a photo',
|
|
11
17
|
replace: 'Replace',
|
|
@@ -19,7 +25,13 @@ export const WIDGET_LABELS = {
|
|
|
19
25
|
remove: 'إزالة {name}',
|
|
20
26
|
clear: 'مسح {label}',
|
|
21
27
|
addLine: 'إضافة سطر',
|
|
28
|
+
addSection: 'إضافة قسم',
|
|
29
|
+
addNote: 'إضافة ملاحظة',
|
|
22
30
|
deleteLine: 'حذف السطر',
|
|
31
|
+
total: 'الإجمالي',
|
|
32
|
+
lineProblem: 'السطر {n}: {message}',
|
|
33
|
+
moreProblems: 'و{n} أخرى',
|
|
34
|
+
chooseColumns: 'اختيار الأعمدة',
|
|
23
35
|
upload: 'رفع ملف',
|
|
24
36
|
uploadImage: 'إضافة صورة',
|
|
25
37
|
replace: 'استبدال',
|
|
@@ -33,7 +45,13 @@ export const WIDGET_LABELS = {
|
|
|
33
45
|
remove: '{name} entfernen',
|
|
34
46
|
clear: '{label} leeren',
|
|
35
47
|
addLine: 'Zeile hinzufügen',
|
|
48
|
+
addSection: 'Abschnitt hinzufügen',
|
|
49
|
+
addNote: 'Notiz hinzufügen',
|
|
36
50
|
deleteLine: 'Zeile löschen',
|
|
51
|
+
total: 'Summe',
|
|
52
|
+
lineProblem: 'Zeile {n}: {message}',
|
|
53
|
+
moreProblems: 'und {n} weitere',
|
|
54
|
+
chooseColumns: 'Spalten auswählen',
|
|
37
55
|
upload: 'Datei hochladen',
|
|
38
56
|
uploadImage: 'Foto hinzufügen',
|
|
39
57
|
replace: 'Ersetzen',
|
|
@@ -47,7 +65,13 @@ export const WIDGET_LABELS = {
|
|
|
47
65
|
remove: 'Retirer {name}',
|
|
48
66
|
clear: 'Effacer {label}',
|
|
49
67
|
addLine: 'Ajouter une ligne',
|
|
68
|
+
addSection: 'Ajouter une section',
|
|
69
|
+
addNote: 'Ajouter une note',
|
|
50
70
|
deleteLine: 'Supprimer la ligne',
|
|
71
|
+
total: 'Total',
|
|
72
|
+
lineProblem: 'Ligne {n} : {message}',
|
|
73
|
+
moreProblems: 'et {n} de plus',
|
|
74
|
+
chooseColumns: 'Choisir les colonnes',
|
|
51
75
|
upload: 'Téléverser un fichier',
|
|
52
76
|
uploadImage: 'Ajouter une photo',
|
|
53
77
|
replace: 'Remplacer',
|
package/src/lib/labels.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"labels.mjs","sourceRoot":"","sources":["../../../../../libs/widgets/src/lib/labels.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"labels.mjs","sourceRoot":"","sources":["../../../../../libs/widgets/src/lib/labels.ts"],"names":[],"mappings":"AA4BA,MAAM,CAAC,MAAM,aAAa,GAAiC;IACzD,EAAE,EAAE;QACF,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,YAAY;QACvB,MAAM,EAAE,eAAe;QACvB,KAAK,EAAE,eAAe;QACtB,OAAO,EAAE,YAAY;QACrB,UAAU,EAAE,eAAe;QAC3B,OAAO,EAAE,YAAY;QACrB,UAAU,EAAE,aAAa;QACzB,KAAK,EAAE,OAAO;QACd,WAAW,EAAE,qBAAqB;QAClC,YAAY,EAAE,cAAc;QAC5B,aAAa,EAAE,gBAAgB;QAC/B,MAAM,EAAE,eAAe;QACvB,WAAW,EAAE,aAAa;QAC1B,OAAO,EAAE,SAAS;QAClB,UAAU,EAAE,QAAQ;QACpB,QAAQ,EAAE,iBAAiB;QAC3B,WAAW,EAAE,gBAAgB;KAC9B;IACD,EAAE,EAAE;QACF,MAAM,EAAE,MAAM;QACd,SAAS,EAAE,eAAe;QAC1B,MAAM,EAAE,cAAc;QACtB,KAAK,EAAE,aAAa;QACpB,OAAO,EAAE,WAAW;QACpB,UAAU,EAAE,WAAW;QACvB,OAAO,EAAE,cAAc;QACvB,UAAU,EAAE,WAAW;QACvB,KAAK,EAAE,UAAU;QACjB,WAAW,EAAE,sBAAsB;QACnC,YAAY,EAAE,WAAW;QACzB,aAAa,EAAE,gBAAgB;QAC/B,MAAM,EAAE,SAAS;QACjB,WAAW,EAAE,YAAY;QACzB,OAAO,EAAE,SAAS;QAClB,UAAU,EAAE,OAAO;QACnB,QAAQ,EAAE,cAAc;QACxB,WAAW,EAAE,iBAAiB;KAC/B;IACD,EAAE,EAAE;QACF,MAAM,EAAE,SAAS;QACjB,SAAS,EAAE,kBAAkB;QAC7B,MAAM,EAAE,kBAAkB;QAC1B,KAAK,EAAE,gBAAgB;QACvB,OAAO,EAAE,kBAAkB;QAC3B,UAAU,EAAE,sBAAsB;QAClC,OAAO,EAAE,kBAAkB;QAC3B,UAAU,EAAE,eAAe;QAC3B,KAAK,EAAE,OAAO;QACd,WAAW,EAAE,sBAAsB;QACnC,YAAY,EAAE,iBAAiB;QAC/B,aAAa,EAAE,mBAAmB;QAClC,MAAM,EAAE,iBAAiB;QACzB,WAAW,EAAE,iBAAiB;QAC9B,OAAO,EAAE,UAAU;QACnB,UAAU,EAAE,WAAW;QACvB,QAAQ,EAAE,mBAAmB;QAC7B,WAAW,EAAE,oBAAoB;KAClC;IACD,EAAE,EAAE;QACF,MAAM,EAAE,aAAa;QACrB,SAAS,EAAE,gBAAgB;QAC3B,MAAM,EAAE,gBAAgB;QACxB,KAAK,EAAE,iBAAiB;QACxB,OAAO,EAAE,mBAAmB;QAC5B,UAAU,EAAE,qBAAqB;QACjC,OAAO,EAAE,kBAAkB;QAC3B,UAAU,EAAE,oBAAoB;QAChC,KAAK,EAAE,OAAO;QACd,WAAW,EAAE,uBAAuB;QACpC,YAAY,EAAE,gBAAgB;QAC9B,aAAa,EAAE,sBAAsB;QACrC,MAAM,EAAE,uBAAuB;QAC/B,WAAW,EAAE,mBAAmB;QAChC,OAAO,EAAE,WAAW;QACpB,UAAU,EAAE,SAAS;QACrB,QAAQ,EAAE,mBAAmB;QAC7B,WAAW,EAAE,eAAe;KAC7B;CACF,CAAC"}
|
package/src/lib/lines.d.mts
CHANGED
|
@@ -1,2 +1,7 @@
|
|
|
1
|
+
import { type Form, type LineField } from '@fieldia/core';
|
|
1
2
|
import { type WidgetFactory } from './widgets.mjs';
|
|
3
|
+
/** The field a section or note is typed into: one line for a heading, a growing box for a note. */
|
|
4
|
+
export declare function kindTextField(def: LineField, kind: 'section' | 'note'): LineField;
|
|
5
|
+
/** The form a cell sees: the line's values, written back into the line. Shared with @fieldia/grid. */
|
|
6
|
+
export declare function lineForm(form: Form, field: string, key: string): Form;
|
|
2
7
|
export declare const linesWidget: WidgetFactory;
|
package/src/lib/lines.d.ts
CHANGED
|
@@ -1,2 +1,7 @@
|
|
|
1
|
+
import { type Form, type LineField } from '@fieldia/core';
|
|
1
2
|
import { type WidgetFactory } from './widgets';
|
|
3
|
+
/** The field a section or note is typed into: one line for a heading, a growing box for a note. */
|
|
4
|
+
export declare function kindTextField(def: LineField, kind: 'section' | 'note'): LineField;
|
|
5
|
+
/** The form a cell sees: the line's values, written back into the line. Shared with @fieldia/grid. */
|
|
6
|
+
export declare function lineForm(form: Form, field: string, key: string): Form;
|
|
2
7
|
export declare const linesWidget: WidgetFactory;
|
package/src/lib/lines.js
CHANGED
|
@@ -1,9 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.linesWidget = void 0;
|
|
4
|
+
exports.kindTextField = kindTextField;
|
|
5
|
+
exports.lineForm = lineForm;
|
|
6
|
+
const core_1 = require("@fieldia/core");
|
|
7
|
+
const display_1 = require("./display");
|
|
4
8
|
const labels_1 = require("./labels");
|
|
5
9
|
const widgets_1 = require("./widgets");
|
|
6
|
-
/** The
|
|
10
|
+
/** The field a section or note is typed into: one line for a heading, a growing box for a note. */
|
|
11
|
+
function kindTextField(def, kind) {
|
|
12
|
+
return kind === 'section' ? { ...def, type: 'char' } : { ...def, type: 'text' };
|
|
13
|
+
}
|
|
14
|
+
/** The form a cell sees: the line's values, written back into the line. Shared with @fieldia/grid. */
|
|
7
15
|
function lineForm(form, field, key) {
|
|
8
16
|
const values = () => ((form.getState().values[field] ?? []).find((l) => l.key === key)?.values ?? {});
|
|
9
17
|
return {
|
|
@@ -15,7 +23,10 @@ function lineForm(form, field, key) {
|
|
|
15
23
|
}
|
|
16
24
|
const linesWidget = ({ form, name, field, node, id, document, labels = labels_1.WIDGET_LABELS.en }) => {
|
|
17
25
|
const def = field;
|
|
18
|
-
const
|
|
26
|
+
const kinds = def.lineKinds;
|
|
27
|
+
// The fields that say what a line is and keep the lines' order never show as columns.
|
|
28
|
+
// Optional columns the page starts hidden stay out of the plain table.
|
|
29
|
+
const columns = (node.columns ?? Object.keys(def.fields)).filter((column) => def.fields[column] && column !== kinds?.field && column !== def.sequenceField && node.optionalColumns?.[column] !== 'hide');
|
|
19
30
|
const element = document.createElement('div');
|
|
20
31
|
element.className = 'fd-lines';
|
|
21
32
|
element.id = id;
|
|
@@ -38,44 +49,79 @@ const linesWidget = ({ form, name, field, node, id, document, labels = labels_1.
|
|
|
38
49
|
head.append(headRow);
|
|
39
50
|
const body = document.createElement('tbody');
|
|
40
51
|
table.append(head, body);
|
|
52
|
+
// Number columns the page asks to add up, in a row under the lines.
|
|
53
|
+
const totals = (node.totals ?? []).filter((column) => columns.includes(column));
|
|
54
|
+
const sums = new Map();
|
|
55
|
+
if (totals.length) {
|
|
56
|
+
const foot = document.createElement('tfoot');
|
|
57
|
+
const row = document.createElement('tr');
|
|
58
|
+
row.className = 'fd-lines-totals';
|
|
59
|
+
columns.forEach((column, i) => {
|
|
60
|
+
const td = document.createElement('td');
|
|
61
|
+
if (totals.includes(column))
|
|
62
|
+
sums.set(column, td);
|
|
63
|
+
else if (i === 0)
|
|
64
|
+
td.textContent = labels.total;
|
|
65
|
+
row.append(td);
|
|
66
|
+
});
|
|
67
|
+
row.append(document.createElement('td'));
|
|
68
|
+
foot.append(row);
|
|
69
|
+
table.append(foot);
|
|
70
|
+
}
|
|
41
71
|
scroller.append(table);
|
|
42
|
-
const
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
72
|
+
const adds = document.createElement('div');
|
|
73
|
+
adds.className = 'fd-lines-adds';
|
|
74
|
+
const addButton = (text, values, kind) => {
|
|
75
|
+
const button = document.createElement('button');
|
|
76
|
+
button.type = 'button';
|
|
77
|
+
button.className = 'fd-button fd-button-link fd-lines-add';
|
|
78
|
+
button.dataset['add'] = kind;
|
|
79
|
+
button.textContent = `+ ${text}`;
|
|
80
|
+
button.addEventListener('click', () => {
|
|
81
|
+
focusNew = form.addLine(name, values);
|
|
82
|
+
const row = rows.get(focusNew);
|
|
83
|
+
if (row) {
|
|
84
|
+
row.cells[0]?.widget.focus();
|
|
85
|
+
focusNew = null;
|
|
86
|
+
}
|
|
87
|
+
});
|
|
88
|
+
adds.append(button);
|
|
89
|
+
};
|
|
90
|
+
addButton(labels.addLine, {}, 'line');
|
|
91
|
+
if (kinds) {
|
|
92
|
+
addButton(labels.addSection, { [kinds.field]: kinds.section ?? 'section' }, 'section');
|
|
93
|
+
addButton(labels.addNote, { [kinds.field]: kinds.note ?? 'note' }, 'note');
|
|
94
|
+
}
|
|
95
|
+
element.append(scroller, adds);
|
|
47
96
|
const rows = new Map();
|
|
48
97
|
let focusNew = null;
|
|
49
98
|
let readonly = false;
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
const
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
99
|
+
function makeCell(tr, line, column, sub, span = 1) {
|
|
100
|
+
const cellId = `${id}-${line.key}-${column}`;
|
|
101
|
+
const subNode = { type: 'field', id: `${node.id}.${line.key}.${column}`, field: column };
|
|
102
|
+
const widget = (0, widgets_1.createWidget)({ form: lineForm(form, name, line.key), name: column, field: sub, node: subNode, id: cellId, document, labels });
|
|
103
|
+
const td = document.createElement('td');
|
|
104
|
+
td.colSpan = span;
|
|
105
|
+
const label = document.createElement('label');
|
|
106
|
+
label.className = 'fd-sr-only';
|
|
107
|
+
label.htmlFor = cellId;
|
|
108
|
+
label.textContent = sub.label;
|
|
109
|
+
const error = document.createElement('div');
|
|
110
|
+
error.className = 'fd-cell-error';
|
|
111
|
+
error.hidden = true;
|
|
112
|
+
td.append(label, widget.element, error);
|
|
113
|
+
tr.append(td);
|
|
114
|
+
return { name: column, def: sub, widget, error };
|
|
115
|
+
}
|
|
58
116
|
function makeRow(line) {
|
|
59
117
|
const tr = document.createElement('tr');
|
|
60
118
|
tr.dataset['line'] = line.key;
|
|
61
|
-
const
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
const td = document.createElement('td');
|
|
68
|
-
const label = document.createElement('label');
|
|
69
|
-
label.className = 'fd-sr-only';
|
|
70
|
-
label.htmlFor = cellId;
|
|
71
|
-
label.textContent = sub.label;
|
|
72
|
-
const error = document.createElement('div');
|
|
73
|
-
error.className = 'fd-cell-error';
|
|
74
|
-
error.hidden = true;
|
|
75
|
-
td.append(label, widget.element, error);
|
|
76
|
-
tr.append(td);
|
|
77
|
-
return { name: column, def: sub, widget, error };
|
|
78
|
-
});
|
|
119
|
+
const kind = (0, core_1.lineKind)(def, line.values);
|
|
120
|
+
if (kind)
|
|
121
|
+
tr.className = `fd-line-${kind}`;
|
|
122
|
+
const cells = kind && kinds
|
|
123
|
+
? [makeCell(tr, line, kinds.text, kindTextField(def.fields[kinds.text], kind), columns.length)]
|
|
124
|
+
: columns.map((column) => makeCell(tr, line, column, def.fields[column]));
|
|
79
125
|
const tools = document.createElement('td');
|
|
80
126
|
tools.className = 'fd-lines-tools';
|
|
81
127
|
const remove = document.createElement('button');
|
|
@@ -86,14 +132,14 @@ const linesWidget = ({ form, name, field, node, id, document, labels = labels_1.
|
|
|
86
132
|
remove.addEventListener('click', () => form.removeLine(name, line.key));
|
|
87
133
|
tools.append(remove);
|
|
88
134
|
tr.append(tools);
|
|
89
|
-
return { element: tr, cells, remove };
|
|
135
|
+
return { element: tr, kind, cells, remove };
|
|
90
136
|
}
|
|
91
137
|
return {
|
|
92
138
|
element,
|
|
93
|
-
focus: () => (body.querySelector('input, select, textarea') ??
|
|
139
|
+
focus: () => (body.querySelector('input, select, textarea') ?? adds.querySelector('button'))?.focus(),
|
|
94
140
|
update(state) {
|
|
95
141
|
readonly = state.readonly;
|
|
96
|
-
|
|
142
|
+
adds.hidden = readonly;
|
|
97
143
|
const current = state.value ?? [];
|
|
98
144
|
const errors = form.getState().errors;
|
|
99
145
|
const keep = new Set(current.map((line) => line.key));
|
|
@@ -105,6 +151,11 @@ const linesWidget = ({ form, name, field, node, id, document, labels = labels_1.
|
|
|
105
151
|
}
|
|
106
152
|
current.forEach((line, index) => {
|
|
107
153
|
let row = rows.get(line.key);
|
|
154
|
+
// A line that changed kind is drawn afresh.
|
|
155
|
+
if (row && row.kind !== (0, core_1.lineKind)(def, line.values)) {
|
|
156
|
+
row.element.remove();
|
|
157
|
+
row = undefined;
|
|
158
|
+
}
|
|
108
159
|
if (!row) {
|
|
109
160
|
row = makeRow(line);
|
|
110
161
|
rows.set(line.key, row);
|
|
@@ -129,6 +180,10 @@ const linesWidget = ({ form, name, field, node, id, document, labels = labels_1.
|
|
|
129
180
|
});
|
|
130
181
|
}
|
|
131
182
|
});
|
|
183
|
+
for (const [column, td] of sums) {
|
|
184
|
+
const sum = current.filter((line) => !(0, core_1.lineKind)(def, line.values)).reduce((total, line) => total + Number(line.values[column] ?? 0), 0);
|
|
185
|
+
td.textContent = (0, display_1.displayValue)(def.fields[column], sum, current[0]?.values ?? {});
|
|
186
|
+
}
|
|
132
187
|
if (focusNew && rows.has(focusNew)) {
|
|
133
188
|
rows.get(focusNew)?.cells[0]?.widget.focus();
|
|
134
189
|
focusNew = null;
|
package/src/lib/lines.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lines.js","sourceRoot":"","sources":["../../../../../libs/widgets/src/lib/lines.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"lines.js","sourceRoot":"","sources":["../../../../../libs/widgets/src/lib/lines.ts"],"names":[],"mappings":"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"}
|