@fieldia/widgets 0.2.0 → 0.4.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.
Files changed (91) hide show
  1. package/package.json +2 -2
  2. package/src/index.d.mts +8 -0
  3. package/src/index.d.ts +8 -0
  4. package/src/index.js +8 -0
  5. package/src/index.js.map +1 -1
  6. package/src/index.mjs +8 -0
  7. package/src/index.mjs.map +1 -1
  8. package/src/lib/calendar.d.mts +11 -0
  9. package/src/lib/calendar.d.ts +11 -0
  10. package/src/lib/calendar.js +242 -0
  11. package/src/lib/calendar.js.map +1 -0
  12. package/src/lib/calendar.mjs +238 -0
  13. package/src/lib/calendar.mjs.map +1 -0
  14. package/src/lib/display.d.mts +6 -0
  15. package/src/lib/display.d.ts +6 -0
  16. package/src/lib/display.js +60 -0
  17. package/src/lib/display.js.map +1 -0
  18. package/src/lib/display.mjs +57 -0
  19. package/src/lib/display.mjs.map +1 -0
  20. package/src/lib/extras.d.mts +3 -1
  21. package/src/lib/extras.d.ts +3 -1
  22. package/src/lib/extras.js +187 -5
  23. package/src/lib/extras.js.map +1 -1
  24. package/src/lib/extras.mjs +186 -5
  25. package/src/lib/extras.mjs.map +1 -1
  26. package/src/lib/label.d.mts +2 -0
  27. package/src/lib/label.d.ts +2 -0
  28. package/src/lib/label.js +47 -0
  29. package/src/lib/label.js.map +1 -0
  30. package/src/lib/label.mjs +43 -0
  31. package/src/lib/label.mjs.map +1 -0
  32. package/src/lib/labels.d.mts +37 -0
  33. package/src/lib/labels.d.ts +37 -0
  34. package/src/lib/labels.js +116 -0
  35. package/src/lib/labels.js.map +1 -1
  36. package/src/lib/labels.mjs +116 -0
  37. package/src/lib/labels.mjs.map +1 -1
  38. package/src/lib/lines.d.mts +5 -0
  39. package/src/lib/lines.d.ts +5 -0
  40. package/src/lib/lines.js +94 -37
  41. package/src/lib/lines.js.map +1 -1
  42. package/src/lib/lines.mjs +93 -38
  43. package/src/lib/lines.mjs.map +1 -1
  44. package/src/lib/numbers.d.mts +8 -0
  45. package/src/lib/numbers.d.ts +8 -0
  46. package/src/lib/numbers.js +47 -0
  47. package/src/lib/numbers.js.map +1 -0
  48. package/src/lib/numbers.mjs +43 -0
  49. package/src/lib/numbers.mjs.map +1 -0
  50. package/src/lib/preferences.d.mts +14 -0
  51. package/src/lib/preferences.d.ts +14 -0
  52. package/src/lib/preferences.js +44 -0
  53. package/src/lib/preferences.js.map +1 -0
  54. package/src/lib/preferences.mjs +40 -0
  55. package/src/lib/preferences.mjs.map +1 -0
  56. package/src/lib/progress.d.mts +2 -0
  57. package/src/lib/progress.d.ts +2 -0
  58. package/src/lib/progress.js +73 -0
  59. package/src/lib/progress.js.map +1 -0
  60. package/src/lib/progress.mjs +69 -0
  61. package/src/lib/progress.mjs.map +1 -0
  62. package/src/lib/properties.d.mts +2 -0
  63. package/src/lib/properties.d.ts +2 -0
  64. package/src/lib/properties.js +86 -0
  65. package/src/lib/properties.js.map +1 -0
  66. package/src/lib/properties.mjs +82 -0
  67. package/src/lib/properties.mjs.map +1 -0
  68. package/src/lib/relations.d.mts +7 -0
  69. package/src/lib/relations.d.ts +7 -0
  70. package/src/lib/relations.js +142 -22
  71. package/src/lib/relations.js.map +1 -1
  72. package/src/lib/relations.mjs +140 -21
  73. package/src/lib/relations.mjs.map +1 -1
  74. package/src/lib/statusbar.d.mts +2 -0
  75. package/src/lib/statusbar.d.ts +2 -0
  76. package/src/lib/statusbar.js +61 -0
  77. package/src/lib/statusbar.js.map +1 -0
  78. package/src/lib/statusbar.mjs +57 -0
  79. package/src/lib/statusbar.mjs.map +1 -0
  80. package/src/lib/styles.d.mts +1 -1
  81. package/src/lib/styles.d.ts +1 -1
  82. package/src/lib/styles.js +81 -3
  83. package/src/lib/styles.js.map +1 -1
  84. package/src/lib/styles.mjs +81 -3
  85. package/src/lib/styles.mjs.map +1 -1
  86. package/src/lib/widgets.d.mts +6 -1
  87. package/src/lib/widgets.d.ts +6 -1
  88. package/src/lib/widgets.js +57 -12
  89. package/src/lib/widgets.js.map +1 -1
  90. package/src/lib/widgets.mjs +58 -13
  91. package/src/lib/widgets.mjs.map +1 -1
@@ -5,7 +5,36 @@ 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',
15
+ createNamed: 'Create “{name}”',
16
+ chooseDate: 'Choose a date',
17
+ previousMonth: 'Previous month',
18
+ nextMonth: 'Next month',
19
+ weekShort: 'Wk',
20
+ week: 'Week',
21
+ formatting: 'Formatting',
22
+ bold: 'Bold',
23
+ italic: 'Italic',
24
+ underline: 'Underline',
25
+ textStyle: 'Text style',
26
+ paragraph: 'Paragraph',
27
+ heading: 'Heading',
28
+ subheading: 'Subheading',
29
+ bulletList: 'Bulleted list',
30
+ numberList: 'Numbered list',
31
+ alignLeft: 'Align left',
32
+ alignCenter: 'Align centre',
33
+ alignRight: 'Align right',
34
+ link: 'Link',
35
+ linkAddress: 'Link address',
36
+ applyLink: 'Apply',
37
+ removeLink: 'Remove link',
9
38
  upload: 'Upload a file',
10
39
  uploadImage: 'Add a photo',
11
40
  replace: 'Replace',
@@ -19,7 +48,36 @@ export const WIDGET_LABELS = {
19
48
  remove: 'إزالة {name}',
20
49
  clear: 'مسح {label}',
21
50
  addLine: 'إضافة سطر',
51
+ addSection: 'إضافة قسم',
52
+ addNote: 'إضافة ملاحظة',
22
53
  deleteLine: 'حذف السطر',
54
+ total: 'الإجمالي',
55
+ lineProblem: 'السطر {n}: {message}',
56
+ moreProblems: 'و{n} أخرى',
57
+ chooseColumns: 'اختيار الأعمدة',
58
+ createNamed: 'إنشاء «{name}»',
59
+ chooseDate: 'اختيار تاريخ',
60
+ previousMonth: 'الشهر السابق',
61
+ nextMonth: 'الشهر التالي',
62
+ weekShort: 'أسبوع',
63
+ week: 'الأسبوع',
64
+ formatting: 'التنسيق',
65
+ bold: 'غامق',
66
+ italic: 'مائل',
67
+ underline: 'تسطير',
68
+ textStyle: 'نمط النص',
69
+ paragraph: 'فقرة',
70
+ heading: 'عنوان',
71
+ subheading: 'عنوان فرعي',
72
+ bulletList: 'قائمة نقطية',
73
+ numberList: 'قائمة مرقمة',
74
+ alignLeft: 'محاذاة لليسار',
75
+ alignCenter: 'توسيط',
76
+ alignRight: 'محاذاة لليمين',
77
+ link: 'رابط',
78
+ linkAddress: 'عنوان الرابط',
79
+ applyLink: 'تطبيق',
80
+ removeLink: 'إزالة الرابط',
23
81
  upload: 'رفع ملف',
24
82
  uploadImage: 'إضافة صورة',
25
83
  replace: 'استبدال',
@@ -33,7 +91,36 @@ export const WIDGET_LABELS = {
33
91
  remove: '{name} entfernen',
34
92
  clear: '{label} leeren',
35
93
  addLine: 'Zeile hinzufügen',
94
+ addSection: 'Abschnitt hinzufügen',
95
+ addNote: 'Notiz hinzufügen',
36
96
  deleteLine: 'Zeile löschen',
97
+ total: 'Summe',
98
+ lineProblem: 'Zeile {n}: {message}',
99
+ moreProblems: 'und {n} weitere',
100
+ chooseColumns: 'Spalten auswählen',
101
+ createNamed: '„{name}“ anlegen',
102
+ chooseDate: 'Datum auswählen',
103
+ previousMonth: 'Vorheriger Monat',
104
+ nextMonth: 'Nächster Monat',
105
+ weekShort: 'KW',
106
+ week: 'Kalenderwoche',
107
+ formatting: 'Formatierung',
108
+ bold: 'Fett',
109
+ italic: 'Kursiv',
110
+ underline: 'Unterstrichen',
111
+ textStyle: 'Textstil',
112
+ paragraph: 'Absatz',
113
+ heading: 'Überschrift',
114
+ subheading: 'Unterüberschrift',
115
+ bulletList: 'Aufzählung',
116
+ numberList: 'Nummerierte Liste',
117
+ alignLeft: 'Linksbündig',
118
+ alignCenter: 'Zentriert',
119
+ alignRight: 'Rechtsbündig',
120
+ link: 'Link',
121
+ linkAddress: 'Linkadresse',
122
+ applyLink: 'Übernehmen',
123
+ removeLink: 'Link entfernen',
37
124
  upload: 'Datei hochladen',
38
125
  uploadImage: 'Foto hinzufügen',
39
126
  replace: 'Ersetzen',
@@ -47,7 +134,36 @@ export const WIDGET_LABELS = {
47
134
  remove: 'Retirer {name}',
48
135
  clear: 'Effacer {label}',
49
136
  addLine: 'Ajouter une ligne',
137
+ addSection: 'Ajouter une section',
138
+ addNote: 'Ajouter une note',
50
139
  deleteLine: 'Supprimer la ligne',
140
+ total: 'Total',
141
+ lineProblem: 'Ligne {n} : {message}',
142
+ moreProblems: 'et {n} de plus',
143
+ chooseColumns: 'Choisir les colonnes',
144
+ createNamed: 'Créer « {name} »',
145
+ chooseDate: 'Choisir une date',
146
+ previousMonth: 'Mois précédent',
147
+ nextMonth: 'Mois suivant',
148
+ weekShort: 'Sem.',
149
+ week: 'Semaine',
150
+ formatting: 'Mise en forme',
151
+ bold: 'Gras',
152
+ italic: 'Italique',
153
+ underline: 'Souligné',
154
+ textStyle: 'Style du texte',
155
+ paragraph: 'Paragraphe',
156
+ heading: 'Titre',
157
+ subheading: 'Sous-titre',
158
+ bulletList: 'Liste à puces',
159
+ numberList: 'Liste numérotée',
160
+ alignLeft: 'Aligner à gauche',
161
+ alignCenter: 'Centrer',
162
+ alignRight: 'Aligner à droite',
163
+ link: 'Lien',
164
+ linkAddress: 'Adresse du lien',
165
+ applyLink: 'Appliquer',
166
+ removeLink: 'Supprimer le lien',
51
167
  upload: 'Téléverser un fichier',
52
168
  uploadImage: 'Ajouter une photo',
53
169
  replace: 'Remplacer',
@@ -1 +1 @@
1
- {"version":3,"file":"labels.mjs","sourceRoot":"","sources":["../../../../../libs/widgets/src/lib/labels.ts"],"names":[],"mappings":"AAkBA,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,aAAa;QACzB,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,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,eAAe;QAC3B,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,oBAAoB;QAChC,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"}
1
+ {"version":3,"file":"labels.mjs","sourceRoot":"","sources":["../../../../../libs/widgets/src/lib/labels.ts"],"names":[],"mappings":"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"}
@@ -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;
@@ -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 form a cell sees: the line's values, written back into the line. */
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 {
@@ -11,11 +19,16 @@ function lineForm(form, field, key) {
11
19
  getState: () => ({ ...form.getState(), values: values() }),
12
20
  setValue: (name, value) => form.updateLine(field, key, name, value),
13
21
  search: (name, query, limit) => form.searchLine(field, key, name, query, limit),
22
+ canCreate: (name) => form.canCreateLine(field, name),
23
+ quickCreate: (name, text) => form.quickCreateLine(field, name, text),
14
24
  };
15
25
  }
16
- const linesWidget = ({ form, name, field, node, id, document, labels = labels_1.WIDGET_LABELS.en }) => {
26
+ const linesWidget = ({ form, name, field, node, id, document, labels = labels_1.WIDGET_LABELS.en, locale }) => {
17
27
  const def = field;
18
- const columns = (node.columns ?? Object.keys(def.fields)).filter((column) => def.fields[column]);
28
+ const kinds = def.lineKinds;
29
+ // The fields that say what a line is and keep the lines' order never show as columns.
30
+ // Optional columns the page starts hidden stay out of the plain table.
31
+ const columns = (node.columns ?? Object.keys(def.fields)).filter((column) => def.fields[column] && column !== kinds?.field && column !== def.sequenceField && node.optionalColumns?.[column] !== 'hide');
19
32
  const element = document.createElement('div');
20
33
  element.className = 'fd-lines';
21
34
  element.id = id;
@@ -38,44 +51,79 @@ const linesWidget = ({ form, name, field, node, id, document, labels = labels_1.
38
51
  head.append(headRow);
39
52
  const body = document.createElement('tbody');
40
53
  table.append(head, body);
54
+ // Number columns the page asks to add up, in a row under the lines.
55
+ const totals = (node.totals ?? []).filter((column) => columns.includes(column));
56
+ const sums = new Map();
57
+ if (totals.length) {
58
+ const foot = document.createElement('tfoot');
59
+ const row = document.createElement('tr');
60
+ row.className = 'fd-lines-totals';
61
+ columns.forEach((column, i) => {
62
+ const td = document.createElement('td');
63
+ if (totals.includes(column))
64
+ sums.set(column, td);
65
+ else if (i === 0)
66
+ td.textContent = labels.total;
67
+ row.append(td);
68
+ });
69
+ row.append(document.createElement('td'));
70
+ foot.append(row);
71
+ table.append(foot);
72
+ }
41
73
  scroller.append(table);
42
- const add = document.createElement('button');
43
- add.type = 'button';
44
- add.className = 'fd-button fd-button-link fd-lines-add';
45
- add.textContent = `+ ${labels.addLine}`;
46
- element.append(scroller, add);
74
+ const adds = document.createElement('div');
75
+ adds.className = 'fd-lines-adds';
76
+ const addButton = (text, values, kind) => {
77
+ const button = document.createElement('button');
78
+ button.type = 'button';
79
+ button.className = 'fd-button fd-button-link fd-lines-add';
80
+ button.dataset['add'] = kind;
81
+ button.textContent = `+ ${text}`;
82
+ button.addEventListener('click', () => {
83
+ focusNew = form.addLine(name, values);
84
+ const row = rows.get(focusNew);
85
+ if (row) {
86
+ row.cells[0]?.widget.focus();
87
+ focusNew = null;
88
+ }
89
+ });
90
+ adds.append(button);
91
+ };
92
+ addButton(labels.addLine, {}, 'line');
93
+ if (kinds) {
94
+ addButton(labels.addSection, { [kinds.field]: kinds.section ?? 'section' }, 'section');
95
+ addButton(labels.addNote, { [kinds.field]: kinds.note ?? 'note' }, 'note');
96
+ }
97
+ element.append(scroller, adds);
47
98
  const rows = new Map();
48
99
  let focusNew = null;
49
100
  let readonly = false;
50
- add.addEventListener('click', () => {
51
- focusNew = form.addLine(name);
52
- const row = rows.get(focusNew);
53
- if (row) {
54
- row.cells[0]?.widget.focus();
55
- focusNew = null;
56
- }
57
- });
101
+ function makeCell(tr, line, column, sub, span = 1) {
102
+ const cellId = `${id}-${line.key}-${column}`;
103
+ const subNode = { type: 'field', id: `${node.id}.${line.key}.${column}`, field: column };
104
+ const widget = (0, widgets_1.createWidget)({ form: lineForm(form, name, line.key), name: column, field: sub, node: subNode, id: cellId, document, labels, locale });
105
+ const td = document.createElement('td');
106
+ td.colSpan = span;
107
+ const label = document.createElement('label');
108
+ label.className = 'fd-sr-only';
109
+ label.htmlFor = cellId;
110
+ label.textContent = sub.label;
111
+ const error = document.createElement('div');
112
+ error.className = 'fd-cell-error';
113
+ error.hidden = true;
114
+ td.append(label, widget.element, error);
115
+ tr.append(td);
116
+ return { name: column, def: sub, widget, error };
117
+ }
58
118
  function makeRow(line) {
59
119
  const tr = document.createElement('tr');
60
120
  tr.dataset['line'] = line.key;
61
- const adapter = lineForm(form, name, line.key);
62
- const cells = columns.map((column) => {
63
- const sub = def.fields[column];
64
- const cellId = `${id}-${line.key}-${column}`;
65
- const subNode = { type: 'field', id: `${node.id}.${line.key}.${column}`, field: column };
66
- const widget = (0, widgets_1.createWidget)({ form: adapter, name: column, field: sub, node: subNode, id: cellId, document, labels });
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
- });
121
+ const kind = (0, core_1.lineKind)(def, line.values);
122
+ if (kind)
123
+ tr.className = `fd-line-${kind}`;
124
+ const cells = kind && kinds
125
+ ? [makeCell(tr, line, kinds.text, kindTextField(def.fields[kinds.text], kind), columns.length)]
126
+ : columns.map((column) => makeCell(tr, line, column, def.fields[column]));
79
127
  const tools = document.createElement('td');
80
128
  tools.className = 'fd-lines-tools';
81
129
  const remove = document.createElement('button');
@@ -86,14 +134,14 @@ const linesWidget = ({ form, name, field, node, id, document, labels = labels_1.
86
134
  remove.addEventListener('click', () => form.removeLine(name, line.key));
87
135
  tools.append(remove);
88
136
  tr.append(tools);
89
- return { element: tr, cells, remove };
137
+ return { element: tr, kind, cells, remove };
90
138
  }
91
139
  return {
92
140
  element,
93
- focus: () => (body.querySelector('input, select, textarea') ?? add).focus(),
141
+ focus: () => (body.querySelector('input, select, textarea') ?? adds.querySelector('button'))?.focus(),
94
142
  update(state) {
95
143
  readonly = state.readonly;
96
- add.hidden = readonly;
144
+ adds.hidden = readonly;
97
145
  const current = state.value ?? [];
98
146
  const errors = form.getState().errors;
99
147
  const keep = new Set(current.map((line) => line.key));
@@ -105,6 +153,11 @@ const linesWidget = ({ form, name, field, node, id, document, labels = labels_1.
105
153
  }
106
154
  current.forEach((line, index) => {
107
155
  let row = rows.get(line.key);
156
+ // A line that changed kind is drawn afresh.
157
+ if (row && row.kind !== (0, core_1.lineKind)(def, line.values)) {
158
+ row.element.remove();
159
+ row = undefined;
160
+ }
108
161
  if (!row) {
109
162
  row = makeRow(line);
110
163
  rows.set(line.key, row);
@@ -129,6 +182,10 @@ const linesWidget = ({ form, name, field, node, id, document, labels = labels_1.
129
182
  });
130
183
  }
131
184
  });
185
+ for (const [column, td] of sums) {
186
+ const sum = current.filter((line) => !(0, core_1.lineKind)(def, line.values)).reduce((total, line) => total + Number(line.values[column] ?? 0), 0);
187
+ td.textContent = (0, display_1.displayValue)(def.fields[column], sum, current[0]?.values ?? {}, locale);
188
+ }
132
189
  if (focusNew && rows.has(focusNew)) {
133
190
  rows.get(focusNew)?.cells[0]?.widget.focus();
134
191
  focusNew = null;
@@ -1 +1 @@
1
- {"version":3,"file":"lines.js","sourceRoot":"","sources":["../../../../../libs/widgets/src/lib/lines.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lines.js","sourceRoot":"","sources":["../../../../../libs/widgets/src/lib/lines.ts"],"names":[],"mappings":"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"}
package/src/lib/lines.mjs CHANGED
@@ -1,18 +1,29 @@
1
+ import { lineKind } from '@fieldia/core';
2
+ import { displayValue } from './display.mjs';
1
3
  import { WIDGET_LABELS } from './labels.mjs';
2
4
  import { createWidget } from './widgets.mjs';
3
- /** The form a cell sees: the line's values, written back into the line. */
4
- function lineForm(form, field, key) {
5
+ /** The field a section or note is typed into: one line for a heading, a growing box for a note. */
6
+ export function kindTextField(def, kind) {
7
+ return kind === 'section' ? { ...def, type: 'char' } : { ...def, type: 'text' };
8
+ }
9
+ /** The form a cell sees: the line's values, written back into the line. Shared with @fieldia/grid. */
10
+ export function lineForm(form, field, key) {
5
11
  const values = () => ((form.getState().values[field] ?? []).find((l) => l.key === key)?.values ?? {});
6
12
  return {
7
13
  ...form,
8
14
  getState: () => ({ ...form.getState(), values: values() }),
9
15
  setValue: (name, value) => form.updateLine(field, key, name, value),
10
16
  search: (name, query, limit) => form.searchLine(field, key, name, query, limit),
17
+ canCreate: (name) => form.canCreateLine(field, name),
18
+ quickCreate: (name, text) => form.quickCreateLine(field, name, text),
11
19
  };
12
20
  }
13
- export const linesWidget = ({ form, name, field, node, id, document, labels = WIDGET_LABELS.en }) => {
21
+ export const linesWidget = ({ form, name, field, node, id, document, labels = WIDGET_LABELS.en, locale }) => {
14
22
  const def = field;
15
- const columns = (node.columns ?? Object.keys(def.fields)).filter((column) => def.fields[column]);
23
+ const kinds = def.lineKinds;
24
+ // The fields that say what a line is and keep the lines' order never show as columns.
25
+ // Optional columns the page starts hidden stay out of the plain table.
26
+ const columns = (node.columns ?? Object.keys(def.fields)).filter((column) => def.fields[column] && column !== kinds?.field && column !== def.sequenceField && node.optionalColumns?.[column] !== 'hide');
16
27
  const element = document.createElement('div');
17
28
  element.className = 'fd-lines';
18
29
  element.id = id;
@@ -35,44 +46,79 @@ export const linesWidget = ({ form, name, field, node, id, document, labels = WI
35
46
  head.append(headRow);
36
47
  const body = document.createElement('tbody');
37
48
  table.append(head, body);
49
+ // Number columns the page asks to add up, in a row under the lines.
50
+ const totals = (node.totals ?? []).filter((column) => columns.includes(column));
51
+ const sums = new Map();
52
+ if (totals.length) {
53
+ const foot = document.createElement('tfoot');
54
+ const row = document.createElement('tr');
55
+ row.className = 'fd-lines-totals';
56
+ columns.forEach((column, i) => {
57
+ const td = document.createElement('td');
58
+ if (totals.includes(column))
59
+ sums.set(column, td);
60
+ else if (i === 0)
61
+ td.textContent = labels.total;
62
+ row.append(td);
63
+ });
64
+ row.append(document.createElement('td'));
65
+ foot.append(row);
66
+ table.append(foot);
67
+ }
38
68
  scroller.append(table);
39
- const add = document.createElement('button');
40
- add.type = 'button';
41
- add.className = 'fd-button fd-button-link fd-lines-add';
42
- add.textContent = `+ ${labels.addLine}`;
43
- element.append(scroller, add);
69
+ const adds = document.createElement('div');
70
+ adds.className = 'fd-lines-adds';
71
+ const addButton = (text, values, kind) => {
72
+ const button = document.createElement('button');
73
+ button.type = 'button';
74
+ button.className = 'fd-button fd-button-link fd-lines-add';
75
+ button.dataset['add'] = kind;
76
+ button.textContent = `+ ${text}`;
77
+ button.addEventListener('click', () => {
78
+ focusNew = form.addLine(name, values);
79
+ const row = rows.get(focusNew);
80
+ if (row) {
81
+ row.cells[0]?.widget.focus();
82
+ focusNew = null;
83
+ }
84
+ });
85
+ adds.append(button);
86
+ };
87
+ addButton(labels.addLine, {}, 'line');
88
+ if (kinds) {
89
+ addButton(labels.addSection, { [kinds.field]: kinds.section ?? 'section' }, 'section');
90
+ addButton(labels.addNote, { [kinds.field]: kinds.note ?? 'note' }, 'note');
91
+ }
92
+ element.append(scroller, adds);
44
93
  const rows = new Map();
45
94
  let focusNew = null;
46
95
  let readonly = false;
47
- add.addEventListener('click', () => {
48
- focusNew = form.addLine(name);
49
- const row = rows.get(focusNew);
50
- if (row) {
51
- row.cells[0]?.widget.focus();
52
- focusNew = null;
53
- }
54
- });
96
+ function makeCell(tr, line, column, sub, span = 1) {
97
+ const cellId = `${id}-${line.key}-${column}`;
98
+ const subNode = { type: 'field', id: `${node.id}.${line.key}.${column}`, field: column };
99
+ const widget = createWidget({ form: lineForm(form, name, line.key), name: column, field: sub, node: subNode, id: cellId, document, labels, locale });
100
+ const td = document.createElement('td');
101
+ td.colSpan = span;
102
+ const label = document.createElement('label');
103
+ label.className = 'fd-sr-only';
104
+ label.htmlFor = cellId;
105
+ label.textContent = sub.label;
106
+ const error = document.createElement('div');
107
+ error.className = 'fd-cell-error';
108
+ error.hidden = true;
109
+ td.append(label, widget.element, error);
110
+ tr.append(td);
111
+ return { name: column, def: sub, widget, error };
112
+ }
55
113
  function makeRow(line) {
56
114
  const tr = document.createElement('tr');
57
115
  tr.dataset['line'] = line.key;
58
- const adapter = lineForm(form, name, line.key);
59
- const cells = columns.map((column) => {
60
- const sub = def.fields[column];
61
- const cellId = `${id}-${line.key}-${column}`;
62
- const subNode = { type: 'field', id: `${node.id}.${line.key}.${column}`, field: column };
63
- const widget = createWidget({ form: adapter, name: column, field: sub, node: subNode, id: cellId, document, labels });
64
- const td = document.createElement('td');
65
- const label = document.createElement('label');
66
- label.className = 'fd-sr-only';
67
- label.htmlFor = cellId;
68
- label.textContent = sub.label;
69
- const error = document.createElement('div');
70
- error.className = 'fd-cell-error';
71
- error.hidden = true;
72
- td.append(label, widget.element, error);
73
- tr.append(td);
74
- return { name: column, def: sub, widget, error };
75
- });
116
+ const kind = lineKind(def, line.values);
117
+ if (kind)
118
+ tr.className = `fd-line-${kind}`;
119
+ const cells = kind && kinds
120
+ ? [makeCell(tr, line, kinds.text, kindTextField(def.fields[kinds.text], kind), columns.length)]
121
+ : columns.map((column) => makeCell(tr, line, column, def.fields[column]));
76
122
  const tools = document.createElement('td');
77
123
  tools.className = 'fd-lines-tools';
78
124
  const remove = document.createElement('button');
@@ -83,14 +129,14 @@ export const linesWidget = ({ form, name, field, node, id, document, labels = WI
83
129
  remove.addEventListener('click', () => form.removeLine(name, line.key));
84
130
  tools.append(remove);
85
131
  tr.append(tools);
86
- return { element: tr, cells, remove };
132
+ return { element: tr, kind, cells, remove };
87
133
  }
88
134
  return {
89
135
  element,
90
- focus: () => (body.querySelector('input, select, textarea') ?? add).focus(),
136
+ focus: () => (body.querySelector('input, select, textarea') ?? adds.querySelector('button'))?.focus(),
91
137
  update(state) {
92
138
  readonly = state.readonly;
93
- add.hidden = readonly;
139
+ adds.hidden = readonly;
94
140
  const current = state.value ?? [];
95
141
  const errors = form.getState().errors;
96
142
  const keep = new Set(current.map((line) => line.key));
@@ -102,6 +148,11 @@ export const linesWidget = ({ form, name, field, node, id, document, labels = WI
102
148
  }
103
149
  current.forEach((line, index) => {
104
150
  let row = rows.get(line.key);
151
+ // A line that changed kind is drawn afresh.
152
+ if (row && row.kind !== lineKind(def, line.values)) {
153
+ row.element.remove();
154
+ row = undefined;
155
+ }
105
156
  if (!row) {
106
157
  row = makeRow(line);
107
158
  rows.set(line.key, row);
@@ -126,6 +177,10 @@ export const linesWidget = ({ form, name, field, node, id, document, labels = WI
126
177
  });
127
178
  }
128
179
  });
180
+ for (const [column, td] of sums) {
181
+ const sum = current.filter((line) => !lineKind(def, line.values)).reduce((total, line) => total + Number(line.values[column] ?? 0), 0);
182
+ td.textContent = displayValue(def.fields[column], sum, current[0]?.values ?? {}, locale);
183
+ }
129
184
  if (focusNew && rows.has(focusNew)) {
130
185
  rows.get(focusNew)?.cells[0]?.widget.focus();
131
186
  focusNew = null;
@@ -1 +1 @@
1
- {"version":3,"file":"lines.mjs","sourceRoot":"","sources":["../../../../../libs/widgets/src/lib/lines.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"lines.mjs","sourceRoot":"","sources":["../../../../../libs/widgets/src/lib/lines.ts"],"names":[],"mappings":"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"}