@fieldia/widgets 0.10.0 → 0.12.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 (228) hide show
  1. package/README.md +2 -1
  2. package/package.json +2 -2
  3. package/src/index.d.mts +2 -0
  4. package/src/index.d.ts +2 -0
  5. package/src/index.js +6 -1
  6. package/src/index.js.map +1 -1
  7. package/src/index.mjs +2 -0
  8. package/src/index.mjs.map +1 -1
  9. package/src/lib/badge.d.mts +8 -0
  10. package/src/lib/badge.d.ts +8 -0
  11. package/src/lib/badge.js +37 -0
  12. package/src/lib/badge.js.map +1 -0
  13. package/src/lib/badge.mjs +33 -0
  14. package/src/lib/badge.mjs.map +1 -0
  15. package/src/lib/calendar.d.mts +3 -1
  16. package/src/lib/calendar.d.ts +3 -1
  17. package/src/lib/calendar.js +17 -1
  18. package/src/lib/calendar.js.map +1 -1
  19. package/src/lib/calendar.mjs +17 -1
  20. package/src/lib/calendar.mjs.map +1 -1
  21. package/src/lib/cards.js +12 -4
  22. package/src/lib/cards.js.map +1 -1
  23. package/src/lib/cards.mjs +13 -5
  24. package/src/lib/cards.mjs.map +1 -1
  25. package/src/lib/choice-images.js +1 -1
  26. package/src/lib/choice-images.js.map +1 -1
  27. package/src/lib/choice-images.mjs +1 -1
  28. package/src/lib/choice-images.mjs.map +1 -1
  29. package/src/lib/choice-tags.js +2 -2
  30. package/src/lib/choice-tags.js.map +1 -1
  31. package/src/lib/choice-tags.mjs +2 -2
  32. package/src/lib/choice-tags.mjs.map +1 -1
  33. package/src/lib/colour.d.mts +11 -0
  34. package/src/lib/colour.d.ts +11 -0
  35. package/src/lib/colour.js +114 -0
  36. package/src/lib/colour.js.map +1 -0
  37. package/src/lib/colour.mjs +110 -0
  38. package/src/lib/colour.mjs.map +1 -0
  39. package/src/lib/copy.d.mts +8 -0
  40. package/src/lib/copy.d.ts +8 -0
  41. package/src/lib/copy.js +58 -0
  42. package/src/lib/copy.js.map +1 -0
  43. package/src/lib/copy.mjs +54 -0
  44. package/src/lib/copy.mjs.map +1 -0
  45. package/src/lib/date-range.d.mts +2 -0
  46. package/src/lib/date-range.d.ts +2 -0
  47. package/src/lib/date-range.js +220 -0
  48. package/src/lib/date-range.js.map +1 -0
  49. package/src/lib/date-range.mjs +216 -0
  50. package/src/lib/date-range.mjs.map +1 -0
  51. package/src/lib/display.d.mts +25 -1
  52. package/src/lib/display.d.ts +25 -1
  53. package/src/lib/display.js +42 -2
  54. package/src/lib/display.js.map +1 -1
  55. package/src/lib/display.mjs +39 -2
  56. package/src/lib/display.mjs.map +1 -1
  57. package/src/lib/distribution.d.mts +13 -0
  58. package/src/lib/distribution.d.ts +13 -0
  59. package/src/lib/distribution.js +159 -0
  60. package/src/lib/distribution.js.map +1 -0
  61. package/src/lib/distribution.mjs +152 -0
  62. package/src/lib/distribution.mjs.map +1 -0
  63. package/src/lib/duration.d.mts +18 -0
  64. package/src/lib/duration.d.ts +18 -0
  65. package/src/lib/duration.js +137 -0
  66. package/src/lib/duration.js.map +1 -0
  67. package/src/lib/duration.mjs +128 -0
  68. package/src/lib/duration.mjs.map +1 -0
  69. package/src/lib/embed.d.mts +3 -0
  70. package/src/lib/embed.d.ts +3 -0
  71. package/src/lib/embed.js +97 -0
  72. package/src/lib/embed.js.map +1 -0
  73. package/src/lib/embed.mjs +92 -0
  74. package/src/lib/embed.mjs.map +1 -0
  75. package/src/lib/extras.js +6 -0
  76. package/src/lib/extras.js.map +1 -1
  77. package/src/lib/extras.mjs +6 -0
  78. package/src/lib/extras.mjs.map +1 -1
  79. package/src/lib/files.d.mts +11 -0
  80. package/src/lib/files.d.ts +11 -0
  81. package/src/lib/files.js +86 -9
  82. package/src/lib/files.js.map +1 -1
  83. package/src/lib/files.mjs +85 -9
  84. package/src/lib/files.mjs.map +1 -1
  85. package/src/lib/kind-parts.d.mts +4 -3
  86. package/src/lib/kind-parts.d.ts +4 -3
  87. package/src/lib/kind-parts.js +5 -3
  88. package/src/lib/kind-parts.js.map +1 -1
  89. package/src/lib/kind-parts.mjs +5 -3
  90. package/src/lib/kind-parts.mjs.map +1 -1
  91. package/src/lib/labels.d.mts +42 -0
  92. package/src/lib/labels.d.ts +42 -0
  93. package/src/lib/labels.js +32 -0
  94. package/src/lib/labels.js.map +1 -1
  95. package/src/lib/labels.mjs +32 -0
  96. package/src/lib/labels.mjs.map +1 -1
  97. package/src/lib/layout-styles.d.mts +1 -1
  98. package/src/lib/layout-styles.d.ts +1 -1
  99. package/src/lib/layout-styles.js +2 -0
  100. package/src/lib/layout-styles.js.map +1 -1
  101. package/src/lib/layout-styles.mjs +2 -0
  102. package/src/lib/layout-styles.mjs.map +1 -1
  103. package/src/lib/lines.d.mts +12 -2
  104. package/src/lib/lines.d.ts +12 -2
  105. package/src/lib/lines.js +251 -15
  106. package/src/lib/lines.js.map +1 -1
  107. package/src/lib/lines.mjs +250 -16
  108. package/src/lib/lines.mjs.map +1 -1
  109. package/src/lib/links-table.d.mts +11 -0
  110. package/src/lib/links-table.d.ts +11 -0
  111. package/src/lib/links-table.js +116 -0
  112. package/src/lib/links-table.js.map +1 -0
  113. package/src/lib/links-table.mjs +112 -0
  114. package/src/lib/links-table.mjs.map +1 -0
  115. package/src/lib/locales/ar.js +32 -0
  116. package/src/lib/locales/ar.js.map +1 -1
  117. package/src/lib/locales/ar.mjs +32 -0
  118. package/src/lib/locales/ar.mjs.map +1 -1
  119. package/src/lib/locales/de.js +32 -0
  120. package/src/lib/locales/de.js.map +1 -1
  121. package/src/lib/locales/de.mjs +32 -0
  122. package/src/lib/locales/de.mjs.map +1 -1
  123. package/src/lib/locales/fr.js +32 -0
  124. package/src/lib/locales/fr.js.map +1 -1
  125. package/src/lib/locales/fr.mjs +32 -0
  126. package/src/lib/locales/fr.mjs.map +1 -1
  127. package/src/lib/payments.d.mts +2 -0
  128. package/src/lib/payments.d.ts +2 -0
  129. package/src/lib/payments.js +94 -0
  130. package/src/lib/payments.js.map +1 -0
  131. package/src/lib/payments.mjs +90 -0
  132. package/src/lib/payments.mjs.map +1 -0
  133. package/src/lib/popup.d.mts +11 -0
  134. package/src/lib/popup.d.ts +11 -0
  135. package/src/lib/popup.js +48 -0
  136. package/src/lib/popup.js.map +1 -0
  137. package/src/lib/popup.mjs +45 -0
  138. package/src/lib/popup.mjs.map +1 -0
  139. package/src/lib/priority.d.mts +10 -0
  140. package/src/lib/priority.d.ts +10 -0
  141. package/src/lib/priority.js +59 -0
  142. package/src/lib/priority.js.map +1 -0
  143. package/src/lib/priority.mjs +55 -0
  144. package/src/lib/priority.mjs.map +1 -0
  145. package/src/lib/progress.js +3 -0
  146. package/src/lib/progress.js.map +1 -1
  147. package/src/lib/progress.mjs +3 -0
  148. package/src/lib/progress.mjs.map +1 -1
  149. package/src/lib/properties.js +100 -9
  150. package/src/lib/properties.js.map +1 -1
  151. package/src/lib/properties.mjs +100 -9
  152. package/src/lib/properties.mjs.map +1 -1
  153. package/src/lib/read-text.d.mts +25 -0
  154. package/src/lib/read-text.d.ts +25 -0
  155. package/src/lib/read-text.js +102 -0
  156. package/src/lib/read-text.js.map +1 -0
  157. package/src/lib/read-text.mjs +98 -0
  158. package/src/lib/read-text.mjs.map +1 -0
  159. package/src/lib/relations.d.mts +12 -0
  160. package/src/lib/relations.d.ts +12 -0
  161. package/src/lib/relations.js +99 -8
  162. package/src/lib/relations.js.map +1 -1
  163. package/src/lib/relations.mjs +97 -8
  164. package/src/lib/relations.mjs.map +1 -1
  165. package/src/lib/slider.js +1 -1
  166. package/src/lib/slider.js.map +1 -1
  167. package/src/lib/slider.mjs +1 -1
  168. package/src/lib/slider.mjs.map +1 -1
  169. package/src/lib/state-dot.d.mts +2 -0
  170. package/src/lib/state-dot.d.ts +2 -0
  171. package/src/lib/state-dot.js +107 -0
  172. package/src/lib/state-dot.js.map +1 -0
  173. package/src/lib/state-dot.mjs +103 -0
  174. package/src/lib/state-dot.mjs.map +1 -0
  175. package/src/lib/statusbar.js +151 -14
  176. package/src/lib/statusbar.js.map +1 -1
  177. package/src/lib/statusbar.mjs +151 -14
  178. package/src/lib/statusbar.mjs.map +1 -1
  179. package/src/lib/styles-business.d.mts +8 -0
  180. package/src/lib/styles-business.d.ts +8 -0
  181. package/src/lib/styles-business.js +120 -0
  182. package/src/lib/styles-business.js.map +1 -0
  183. package/src/lib/styles-business.mjs +117 -0
  184. package/src/lib/styles-business.mjs.map +1 -0
  185. package/src/lib/styles-kinds.d.mts +1 -1
  186. package/src/lib/styles-kinds.d.ts +1 -1
  187. package/src/lib/styles-kinds.js +1 -1
  188. package/src/lib/styles-kinds.mjs +1 -1
  189. package/src/lib/styles-parts.d.mts +16 -0
  190. package/src/lib/styles-parts.d.ts +16 -0
  191. package/src/lib/styles-parts.js +69 -0
  192. package/src/lib/styles-parts.js.map +1 -0
  193. package/src/lib/styles-parts.mjs +66 -0
  194. package/src/lib/styles-parts.mjs.map +1 -0
  195. package/src/lib/styles-sheet.d.mts +6 -0
  196. package/src/lib/styles-sheet.d.ts +6 -0
  197. package/src/lib/styles-sheet.js +123 -0
  198. package/src/lib/styles-sheet.js.map +1 -0
  199. package/src/lib/styles-sheet.mjs +120 -0
  200. package/src/lib/styles-sheet.mjs.map +1 -0
  201. package/src/lib/styles.d.mts +10 -0
  202. package/src/lib/styles.d.ts +10 -0
  203. package/src/lib/styles.js +234 -19
  204. package/src/lib/styles.js.map +1 -1
  205. package/src/lib/styles.mjs +233 -18
  206. package/src/lib/styles.mjs.map +1 -1
  207. package/src/lib/tax-totals.d.mts +2 -0
  208. package/src/lib/tax-totals.d.ts +2 -0
  209. package/src/lib/tax-totals.js +92 -0
  210. package/src/lib/tax-totals.js.map +1 -0
  211. package/src/lib/tax-totals.mjs +88 -0
  212. package/src/lib/tax-totals.mjs.map +1 -0
  213. package/src/lib/timer.d.mts +4 -0
  214. package/src/lib/timer.d.ts +4 -0
  215. package/src/lib/timer.js +62 -0
  216. package/src/lib/timer.js.map +1 -0
  217. package/src/lib/timer.mjs +57 -0
  218. package/src/lib/timer.mjs.map +1 -0
  219. package/src/lib/widgets.d.mts +18 -3
  220. package/src/lib/widgets.d.ts +18 -3
  221. package/src/lib/widgets.js +63 -5
  222. package/src/lib/widgets.js.map +1 -1
  223. package/src/lib/widgets.mjs +63 -5
  224. package/src/lib/widgets.mjs.map +1 -1
  225. package/src/lib/yes-no.js +1 -1
  226. package/src/lib/yes-no.js.map +1 -1
  227. package/src/lib/yes-no.mjs +1 -1
  228. package/src/lib/yes-no.mjs.map +1 -1
package/src/lib/lines.mjs CHANGED
@@ -1,5 +1,6 @@
1
1
  import { isEmpty, lineKind } from '@fieldia/core';
2
- import { displayValue } from './display.mjs';
2
+ import { cellText, currencyOf } from './display.mjs';
3
+ import { drawIcon } from './icons.mjs';
3
4
  import { askFirst, fillIn, maker } from './kind-parts.mjs';
4
5
  import { WIDGET_LABELS } from './labels.mjs';
5
6
  import { moveLineTo } from './line-moves.mjs';
@@ -16,11 +17,57 @@ export function lineForm(form, field, key) {
16
17
  ...form,
17
18
  getState: () => ({ ...form.getState(), values: values() }),
18
19
  setValue: (name, value) => form.updateLine(field, key, name, value),
19
- search: (name, query, limit) => form.searchLine(field, key, name, query, limit),
20
+ search: (name, query, limit, options) => form.searchLine(field, key, name, query, limit, options),
20
21
  canCreate: (name) => form.canCreateLine(field, name),
21
- quickCreate: (name, text) => form.quickCreateLine(field, name, text),
22
+ quickCreate: (name, text) => form.quickCreateLine(field, name, text, key),
23
+ createValues: (name) => form.createValues(name, { lines: field, key }),
22
24
  };
23
25
  }
26
+ /** A line's money in its record's currency (`parent.…`), as a field of its own: in that currency, fixed — for a dialog with no record round it. */
27
+ export function ownCurrency(sub, parent) {
28
+ if (sub.type !== 'monetary' || !sub.currencyField?.startsWith('parent.'))
29
+ return sub;
30
+ const { currencyField: _, ...rest } = sub;
31
+ const code = currencyOf(sub, {}, parent);
32
+ return code && /^[A-Z]{3}$/.test(code) ? { ...rest, currency: code } : rest;
33
+ }
34
+ /**
35
+ * A line opened in a dialog: with `lineOpens: "record"`, a saved line's own
36
+ * record by the table's model — what its page saved is written back to the
37
+ * line's fields of the same names — else, or for a line not saved yet, every
38
+ * one of its fields, recalculated as they change and written back on Save &
39
+ * Close. Shared with @fieldia/grid.
40
+ */
41
+ export async function openLineDialog(form, name, node, line, dialogs, readonly) {
42
+ const def = form.page.fields[name];
43
+ const lines = () => form.getState().values[name] ?? [];
44
+ const write = (values) => form.setValue(name, lines().map((l) => (l.key === line.key ? { ...l, values: { ...l.values, ...values } } : l)));
45
+ if (node.lineOpens === 'record' && line.id !== undefined && dialogs.canOpen(def.relation)) {
46
+ const saved = await dialogs.openRecord(def.relation, { recordId: line.id, title: def.label, withValues: true });
47
+ const back = Object.fromEntries(Object.entries(saved?.values ?? {}).filter(([key]) => key in def.fields && key !== def.sequenceField));
48
+ if (Object.keys(back).length)
49
+ write(back);
50
+ return;
51
+ }
52
+ const fields = Object.fromEntries(Object.entries(def.fields)
53
+ .filter(([key]) => key !== def.lineKinds?.field && key !== def.sequenceField)
54
+ .map(([key, sub]) => [key, ownCurrency(sub, form.getState().values)]));
55
+ // The dialog shows what the onchange makes of the line as it is edited; the line itself waits for Save & Close.
56
+ // Laid out by the table's lineForm when it has one, its conditions reading the line, its record as parent.
57
+ const state = form.getState();
58
+ const values = await dialogs.editValues({
59
+ title: def.label,
60
+ fields,
61
+ values: line.values,
62
+ readonly,
63
+ recompute: (edited) => form.previewLine(name, line.key, edited),
64
+ parent: { values: state.values, fields: form.page.fields, id: state.recordId },
65
+ ...(node.lineForm ? { layout: node.lineForm.children } : {}),
66
+ });
67
+ // Written in one go, so the form recalculates once.
68
+ if (values)
69
+ write(values);
70
+ }
24
71
  export const linesWidget = ({ form, name, field, node, id, document, labels = WIDGET_LABELS.en, locale, dialogs }) => {
25
72
  const def = field;
26
73
  const kinds = def.lineKinds;
@@ -31,10 +78,20 @@ export const linesWidget = ({ form, name, field, node, id, document, labels = WI
31
78
  const words = (key) => (typeof options[key] === 'string' && options[key].trim() ? options[key] : null);
32
79
  // The fields that say what a line is and keep the lines' order never show as columns.
33
80
  // Optional columns the page starts hidden stay out of the plain table.
34
- const columns = (node.columns ?? Object.keys(def.fields)).filter((column) => def.fields[column] && column !== kinds?.field && column !== def.sequenceField && node.optionalColumns?.[column] !== 'hide');
81
+ const heads = new Map();
82
+ // The table's own rules, read by the form line by line; a table with none asks nothing.
83
+ const ruled = !!(node.cells || node.rowTones || node.rowBold !== undefined || node.rowButtons || node.lineDelete !== undefined);
84
+ const columns = (node.columns ?? Object.keys(def.fields)).filter(
85
+ // Lines a line holds are edited in its form, never drawn in its row.
86
+ (column) => def.fields[column] && def.fields[column].type !== 'one2many' && column !== kinds?.field && column !== def.sequenceField && node.optionalColumns?.[column] !== 'hide');
35
87
  const element = document.createElement('div');
36
88
  element.className = 'fd-lines';
37
89
  element.id = id;
90
+ // Lines as cards on a narrow form, or always; columns as wide as they hold: the stylesheet draws them so.
91
+ if (node.cards)
92
+ element.dataset['cards'] = node.cards;
93
+ if (node.fit)
94
+ element.dataset['fit'] = node.fit;
38
95
  element.setAttribute('role', 'group');
39
96
  const scroller = document.createElement('div');
40
97
  scroller.className = 'fd-lines-scroll';
@@ -42,11 +99,20 @@ export const linesWidget = ({ form, name, field, node, id, document, labels = WI
42
99
  table.className = 'fd-lines-table';
43
100
  const head = document.createElement('thead');
44
101
  const headRow = document.createElement('tr');
45
- headRow.append(make('th', { class: 'fd-lines-grip' }));
102
+ // Lines chosen for the table's buttons for them: a tick on each line, one in the head for every line, and a bar over the table.
103
+ const choosing = !!node.selectedButtons?.length;
104
+ const chosen = new Set();
105
+ const pickAll = choosing ? make('input', { type: 'checkbox', class: 'fd-checkbox fd-line-pick fd-line-pick-all', 'aria-label': labels.chooseAllLines }) : null;
106
+ headRow.append(make('th', { class: 'fd-lines-grip' }, ...(pickAll ? [pickAll] : [])));
46
107
  for (const column of columns) {
47
108
  const th = document.createElement('th');
48
109
  th.scope = 'col';
110
+ th.dataset['column'] = column;
49
111
  th.textContent = def.fields[column].label;
112
+ const width = node.cells?.[column]?.width;
113
+ if (width)
114
+ th.style.width = `${width}ch`;
115
+ heads.set(column, th);
50
116
  headRow.append(th);
51
117
  }
52
118
  const lastTh = document.createElement('th');
@@ -58,6 +124,7 @@ export const linesWidget = ({ form, name, field, node, id, document, labels = WI
58
124
  // Number columns the page asks to add up, in a row under the lines.
59
125
  const totals = (node.totals ?? []).filter((column) => columns.includes(column));
60
126
  const sums = new Map();
127
+ const footCells = new Map();
61
128
  if (totals.length) {
62
129
  const foot = document.createElement('tfoot');
63
130
  const row = document.createElement('tr');
@@ -65,6 +132,8 @@ export const linesWidget = ({ form, name, field, node, id, document, labels = WI
65
132
  row.append(document.createElement('td'));
66
133
  columns.forEach((column, i) => {
67
134
  const td = document.createElement('td');
135
+ td.dataset['column'] = column;
136
+ footCells.set(column, td);
68
137
  if (totals.includes(column))
69
138
  sums.set(column, td);
70
139
  else if (i === 0)
@@ -96,16 +165,77 @@ export const linesWidget = ({ form, name, field, node, id, document, labels = WI
96
165
  };
97
166
  addButton(words('addLabel') ?? labels.addLine, {}, 'line');
98
167
  if (kinds) {
99
- addButton(labels.addSection, { [kinds.field]: kinds.section ?? 'section' }, 'section');
100
- addButton(labels.addNote, { [kinds.field]: kinds.note ?? 'note' }, 'note');
168
+ addButton(words('addSectionLabel') ?? labels.addSection, { [kinds.field]: kinds.section ?? 'section' }, 'section');
169
+ addButton(words('addNoteLabel') ?? labels.addNote, { [kinds.field]: kinds.note ?? 'note' }, 'note');
101
170
  }
171
+ // Buttons in the control row, beside the add buttons: the record's, shown by a condition on it (Flectra's <control>).
172
+ const controls = (node.controlButtons ?? []).map((own) => {
173
+ const icon = drawIcon(document, own.icon);
174
+ const button = make('button', { type: 'button', class: 'fd-button fd-button-link fd-lines-add fd-lines-control', 'data-node': own.id }, ...(icon ? [icon] : []), own.label);
175
+ button.addEventListener('click', () => void pressed(button, () => form.runAction(own.id)));
176
+ adds.append(button);
177
+ return { id: own.id, button };
178
+ });
179
+ // The bar of buttons for the lines chosen, over the table while any is.
180
+ const chosenCount = make('span', { class: 'fd-lines-chosen-count', role: 'status' });
181
+ const chosenButtons = (node.selectedButtons ?? []).map((own) => {
182
+ const icon = drawIcon(document, own.icon);
183
+ const button = make('button', { type: 'button', class: `fd-button fd-button-${own.style ?? 'secondary'} fd-lines-chosen-button`, 'data-node': own.id }, ...(icon ? [icon] : []), own.label);
184
+ // In the table's order, whatever order they were ticked in.
185
+ button.addEventListener('click', () => void pressed(button, () => form.runLinesAction(node.id, own.id, current().filter((line) => chosen.has(line.key)).map((line) => line.key))));
186
+ return { id: own.id, button };
187
+ });
188
+ const bar = choosing ? make('div', { class: 'fd-lines-chosen', hidden: '' }, chosenCount, ...chosenButtons.map((b) => b.button)) : null;
102
189
  const emptyWords = words('emptyLabel');
103
190
  const empty = emptyWords ? make('div', { class: 'fd-help fd-lines-empty' }, emptyWords) : null;
104
191
  // Removing a line with something in it asks first, in place: "Remove line 2? Remove · Keep".
105
192
  const confirm = askFirst(make, labels);
106
193
  // Where a line went, said politely; not the page's own announcer, which a page looks for by its class.
107
194
  const voice = make('div', { class: 'fd-sr-only', role: 'status' });
108
- element.append(scroller, ...(empty ? [empty] : []), adds, confirm.element, voice);
195
+ element.append(...(bar ? [bar] : []), scroller, ...(empty ? [empty] : []), adds, confirm.element, voice);
196
+ /** A press that waits for its run, and is not pressed again meanwhile. */
197
+ async function pressed(button, run) {
198
+ if (button.hasAttribute('aria-busy'))
199
+ return;
200
+ button.setAttribute('aria-busy', 'true');
201
+ try {
202
+ await run();
203
+ }
204
+ finally {
205
+ button.removeAttribute('aria-busy');
206
+ }
207
+ }
208
+ /** The bar and the head's tick, as the lines chosen are now. */
209
+ function showChosen() {
210
+ if (!bar || !pickAll)
211
+ return;
212
+ const items = current().filter((line) => !lineKind(def, line.values));
213
+ for (const key of [...chosen])
214
+ if (!items.some((line) => line.key === key))
215
+ chosen.delete(key);
216
+ bar.hidden = readonly || chosen.size === 0;
217
+ chosenCount.textContent = fillIn(labels.linesChosen, { n: chosen.size });
218
+ for (const { id, button } of chosenButtons)
219
+ button.hidden = form.node(id).invisible;
220
+ pickAll.checked = items.length > 0 && chosen.size === items.length;
221
+ pickAll.indeterminate = chosen.size > 0 && chosen.size < items.length;
222
+ pickAll.disabled = readonly || !items.length;
223
+ for (const [key, row] of rows) {
224
+ if (!row.pick)
225
+ continue;
226
+ row.pick.checked = chosen.has(key);
227
+ row.pick.disabled = readonly;
228
+ }
229
+ }
230
+ pickAll?.addEventListener('change', () => {
231
+ const items = current().filter((line) => !lineKind(def, line.values));
232
+ if (pickAll.checked)
233
+ for (const line of items)
234
+ chosen.add(line.key);
235
+ else
236
+ chosen.clear();
237
+ showChosen();
238
+ });
109
239
  const rows = new Map();
110
240
  let focusNew = null;
111
241
  let readonly = false;
@@ -135,10 +265,17 @@ export const linesWidget = ({ form, name, field, node, id, document, labels = WI
135
265
  });
136
266
  function makeCell(tr, line, column, sub, span = 1) {
137
267
  const cellId = `${id}-${line.key}-${column}`;
138
- const subNode = { type: 'field', id: `${node.id}.${line.key}.${column}`, field: column };
268
+ // A cell the page draws as a pill in its tone (Flectra's widget="badge"), never edited, or with a widget of its own.
269
+ const rules = lineKind(def, line.values) ? undefined : node.cells?.[column];
270
+ // Its settings reach its widget even without a widget named: a calendar's week numbers.
271
+ const look = rules?.badge ? { widget: 'badge' } : rules?.widget ? { widget: rules.widget, ...(rules.options ? { options: rules.options } : {}) } : rules?.options ? { options: rules.options } : {};
272
+ const subNode = { type: 'field', id: `${node.id}.${line.key}.${column}`, field: column, ...look };
139
273
  const widget = createWidget({ form: lineForm(form, name, line.key), name: column, field: sub, node: subNode, id: cellId, document, labels, locale, dialogs });
140
274
  const td = document.createElement('td');
141
275
  td.colSpan = span;
276
+ td.dataset['column'] = column;
277
+ // Its column's label, which a card shows before its value.
278
+ td.dataset['label'] = sub.label;
142
279
  const label = document.createElement('label');
143
280
  label.className = 'fd-sr-only';
144
281
  label.htmlFor = cellId;
@@ -148,7 +285,7 @@ export const linesWidget = ({ form, name, field, node, id, document, labels = WI
148
285
  error.hidden = true;
149
286
  td.append(label, widget.element, error);
150
287
  tr.append(td);
151
- return { name: column, def: sub, widget, error };
288
+ return { name: column, def: sub, widget, error, td };
152
289
  }
153
290
  function makeRow(line) {
154
291
  const tr = document.createElement('tr');
@@ -174,7 +311,16 @@ export const linesWidget = ({ form, name, field, node, id, document, labels = WI
174
311
  });
175
312
  for (const end of ['pointerup', 'pointercancel'])
176
313
  grip.addEventListener(end, () => (dragging = false));
177
- tr.append(make('td', { class: 'fd-lines-grip' }, grip));
314
+ // Its tick for the table's buttons for chosen lines, before the grip.
315
+ const pick = choosing && !kind ? make('input', { type: 'checkbox', class: 'fd-checkbox fd-line-pick' }) : null;
316
+ pick?.addEventListener('change', () => {
317
+ if (pick.checked)
318
+ chosen.add(line.key);
319
+ else
320
+ chosen.delete(line.key);
321
+ showChosen();
322
+ });
323
+ tr.append(make('td', { class: 'fd-lines-grip' }, ...(pick ? [make('span', { class: 'fd-line-lead' }, pick, grip)] : [grip])));
178
324
  const cells = kind && kinds
179
325
  ? [makeCell(tr, line, kinds.text, kindTextField(def.fields[kinds.text], kind), columns.length)]
180
326
  : columns.map((column) => makeCell(tr, line, column, def.fields[column]));
@@ -199,9 +345,55 @@ export const linesWidget = ({ form, name, field, node, id, document, labels = WI
199
345
  (next ? rows.get(next.key)?.remove : adds.querySelector('button'))?.focus();
200
346
  });
201
347
  });
348
+ // The line's own buttons, each shown by its condition on the line; a press runs with the line.
349
+ const buttons = new Map();
350
+ for (const own of kind ? [] : (node.rowButtons ?? [])) {
351
+ const icon = drawIcon(document, own.icon);
352
+ const button = make('button', { type: 'button', class: `fd-button fd-button-link fd-line-button${icon ? ' fd-line-button-icon' : ''}`, 'data-row-button': own.id, 'aria-label': own.label, title: own.label });
353
+ button.append(icon ?? own.label);
354
+ button.addEventListener('click', async () => {
355
+ if (button.hasAttribute('aria-busy'))
356
+ return;
357
+ button.setAttribute('aria-busy', 'true');
358
+ try {
359
+ await form.runRowAction(node.id, own.id, line.key);
360
+ }
361
+ finally {
362
+ button.removeAttribute('aria-busy');
363
+ }
364
+ });
365
+ buttons.set(own.id, button);
366
+ tools.append(button);
367
+ }
368
+ // A copy of the line, its values too, right after it: never its saved id or its place in the order.
369
+ const copy = options['copy'] === true && !kind ? make('button', { type: 'button', class: 'fd-line-copy' }, '⧉') : null;
370
+ copy?.addEventListener('click', () => {
371
+ const all = current();
372
+ const at = all.findIndex((l) => l.key === line.key);
373
+ if (readonly || at < 0 || all.length >= max)
374
+ return;
375
+ const values = { ...all[at].values };
376
+ if (def.sequenceField)
377
+ delete values[def.sequenceField];
378
+ const made = form.addLine(name, values);
379
+ moveLineTo(form, name, def, made, at + 1);
380
+ rows.get(made)?.cells[0]?.widget.focus();
381
+ });
382
+ if (copy)
383
+ tools.append(copy);
384
+ // Its own page, its own form (lineForm), or its every field, in a dialog (lineOpens).
385
+ if ((node.lineOpens || node.lineForm) && dialogs && !kind) {
386
+ const open = make('button', { type: 'button', class: 'fd-line-open', 'aria-label': labels.openLine, title: labels.openLine }, '↗');
387
+ open.addEventListener('click', () => {
388
+ const now = current().find((l) => l.key === line.key);
389
+ if (now)
390
+ void openLineDialog(form, name, node, now, dialogs, readonly);
391
+ });
392
+ tools.append(open);
393
+ }
202
394
  tools.append(remove);
203
395
  tr.append(tools);
204
- return { element: tr, kind, cells, remove, grip };
396
+ return { element: tr, kind, cells, remove, grip, buttons, pick, copy };
205
397
  }
206
398
  return {
207
399
  element,
@@ -215,6 +407,12 @@ export const linesWidget = ({ form, name, field, node, id, document, labels = WI
215
407
  if (empty)
216
408
  empty.hidden = current.length > 0;
217
409
  const errors = form.getState().errors;
410
+ // Columns the record hides now: their head, cells and total go with them.
411
+ const gone = new Set(ruled ? columns.filter((column) => form.columnHidden(node.id, column)) : []);
412
+ for (const [column, th] of heads)
413
+ th.hidden = gone.has(column);
414
+ for (const [column, td] of footCells)
415
+ td.hidden = gone.has(column);
218
416
  const keep = new Set(current.map((line) => line.key));
219
417
  for (const [key, row] of rows) {
220
418
  if (!keep.has(key)) {
@@ -235,30 +433,59 @@ export const linesWidget = ({ form, name, field, node, id, document, labels = WI
235
433
  }
236
434
  if (body.children[index] !== row.element)
237
435
  body.insertBefore(row.element, body.children[index] ?? null);
238
- row.remove.hidden = readonly || current.length <= min;
436
+ const now = ruled ? form.lineState(node.id, line.key) : null;
437
+ // A line the table keeps (lineDelete) shows no ×.
438
+ row.remove.hidden = readonly || current.length <= min || now?.deletable === false;
239
439
  row.grip.hidden = readonly;
440
+ // Named by where it is now: it moves.
441
+ const lineName = fillIn(labels.lineN, { n: index + 1 });
442
+ row.pick?.setAttribute('aria-label', fillIn(labels.chooseLine, { name: lineName }));
443
+ if (row.copy) {
444
+ row.copy.setAttribute('aria-label', fillIn(labels.copy, { name: lineName }));
445
+ row.copy.title = row.copy.getAttribute('aria-label');
446
+ row.copy.hidden = readonly || current.length >= max;
447
+ }
240
448
  if (readonly)
241
449
  row.remove.remove();
242
450
  else if (!row.remove.isConnected)
243
451
  row.element.lastElementChild?.append(row.remove);
452
+ setData(row.element, 'tone', now?.tone);
453
+ row.element.classList.toggle('fd-line-bold', !!now?.bold);
454
+ // A line's buttons act on the saved line, so a read-only table keeps them, as the grid and Flectra's lists do.
455
+ for (const [id, button] of row.buttons)
456
+ button.hidden = !now?.buttons[id];
457
+ // A section's or note's one cell spans the columns shown.
458
+ if (row.kind)
459
+ row.cells[0].td.colSpan = columns.length - gone.size;
244
460
  for (const cell of row.cells) {
245
461
  const message = errors[`${name}.${line.key}.${cell.name}`];
462
+ const rules = row.kind ? undefined : now?.cells[cell.name];
463
+ if (!row.kind)
464
+ cell.td.hidden = gone.has(cell.name);
465
+ // Hidden by its line, the cell stays, empty, so the column lines up.
466
+ cell.widget.element.hidden = !!rules?.invisible;
467
+ setData(cell.td, 'tone', rules?.tone);
468
+ cell.td.classList.toggle('fd-cell-bold', !!rules?.bold);
246
469
  cell.error.hidden = !message;
247
470
  cell.error.textContent = message ?? '';
248
471
  cell.widget.update({
249
472
  value: line.values[cell.name],
250
473
  values: line.values,
474
+ parent: state.values,
251
475
  // A value worked out from the line's others is shown, never typed.
252
- readonly: readonly || cell.def.readonly === true || cell.def.compute !== undefined,
253
- required: cell.def.required === true,
476
+ readonly: readonly || cell.def.readonly === true || cell.def.compute !== undefined || !!rules?.readonly,
477
+ required: cell.def.required === true || !!rules?.required,
254
478
  invalid: !!message,
255
479
  });
256
480
  }
257
481
  });
258
482
  for (const [column, td] of sums) {
259
483
  const sum = current.filter((line) => !lineKind(def, line.values)).reduce((total, line) => total + Number(line.values[column] ?? 0), 0);
260
- td.textContent = displayValue(def.fields[column], sum, current[0]?.values ?? {}, locale);
484
+ td.textContent = cellText(def.fields[column], sum, current[0]?.values ?? {}, locale, state.values, node.cells?.[column]);
261
485
  }
486
+ for (const { id, button } of controls)
487
+ button.hidden = form.node(id).invisible;
488
+ showChosen();
262
489
  if (focusNew && rows.has(focusNew)) {
263
490
  rows.get(focusNew)?.cells[0]?.widget.focus();
264
491
  focusNew = null;
@@ -266,4 +493,11 @@ export const linesWidget = ({ form, name, field, node, id, document, labels = WI
266
493
  },
267
494
  };
268
495
  };
496
+ /** A data attribute set, or taken away when there is nothing to say. */
497
+ function setData(element, key, value) {
498
+ if (value)
499
+ element.dataset[key] = value;
500
+ else
501
+ delete element.dataset[key];
502
+ }
269
503
  //# sourceMappingURL=lines.mjs.map
@@ -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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"}
@@ -0,0 +1,11 @@
1
+ import type { WidgetFactory } from './widgets.mjs';
2
+ /**
3
+ * A many2many as a table of the records it links to, as Flectra's list of
4
+ * them: a row for each, its `columns` — fields of those records, named in the
5
+ * many2many's `fields` — read from the data source by their ids. Add a line
6
+ * finds one more record by searching (the dialog's Search more…); × takes a
7
+ * record away, never deleting it; ↗ opens a record's own page, when the app
8
+ * gives one for the model. The node's `options.addLabel` and
9
+ * `options.emptyLabel` word its button and its sentence while empty.
10
+ */
11
+ export declare const linksTableWidget: WidgetFactory;
@@ -0,0 +1,11 @@
1
+ import type { WidgetFactory } from './widgets';
2
+ /**
3
+ * A many2many as a table of the records it links to, as Flectra's list of
4
+ * them: a row for each, its `columns` — fields of those records, named in the
5
+ * many2many's `fields` — read from the data source by their ids. Add a line
6
+ * finds one more record by searching (the dialog's Search more…); × takes a
7
+ * record away, never deleting it; ↗ opens a record's own page, when the app
8
+ * gives one for the model. The node's `options.addLabel` and
9
+ * `options.emptyLabel` word its button and its sentence while empty.
10
+ */
11
+ export declare const linksTableWidget: WidgetFactory;