@fieldia/designer 0.19.1 → 0.21.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 (305) hide show
  1. package/package.json +4 -4
  2. package/src/lib/canvas-head.d.mts +22 -0
  3. package/src/lib/canvas-head.d.ts +22 -0
  4. package/src/lib/canvas-head.js +121 -0
  5. package/src/lib/canvas-head.js.map +1 -0
  6. package/src/lib/canvas-head.mjs +118 -0
  7. package/src/lib/canvas-head.mjs.map +1 -0
  8. package/src/lib/canvas-header.js +7 -1
  9. package/src/lib/canvas-header.js.map +1 -1
  10. package/src/lib/canvas-header.mjs +7 -1
  11. package/src/lib/canvas-header.mjs.map +1 -1
  12. package/src/lib/choice-commands.d.mts +2 -1
  13. package/src/lib/choice-commands.d.ts +2 -1
  14. package/src/lib/choice-commands.js +3 -0
  15. package/src/lib/choice-commands.js.map +1 -1
  16. package/src/lib/choice-commands.mjs +3 -0
  17. package/src/lib/choice-commands.mjs.map +1 -1
  18. package/src/lib/chrome.js +11 -0
  19. package/src/lib/chrome.js.map +1 -1
  20. package/src/lib/chrome.mjs +11 -0
  21. package/src/lib/chrome.mjs.map +1 -1
  22. package/src/lib/date-setting.d.mts +49 -0
  23. package/src/lib/date-setting.d.ts +49 -0
  24. package/src/lib/date-setting.js +125 -0
  25. package/src/lib/date-setting.js.map +1 -0
  26. package/src/lib/date-setting.mjs +122 -0
  27. package/src/lib/date-setting.mjs.map +1 -0
  28. package/src/lib/designer.d.mts +16 -4
  29. package/src/lib/designer.d.ts +16 -4
  30. package/src/lib/designer.js +25 -2
  31. package/src/lib/designer.js.map +1 -1
  32. package/src/lib/designer.mjs +25 -2
  33. package/src/lib/designer.mjs.map +1 -1
  34. package/src/lib/group-fold.js +2 -0
  35. package/src/lib/group-fold.js.map +1 -1
  36. package/src/lib/group-fold.mjs +2 -0
  37. package/src/lib/group-fold.mjs.map +1 -1
  38. package/src/lib/head-commands.d.mts +116 -0
  39. package/src/lib/head-commands.d.ts +116 -0
  40. package/src/lib/head-commands.js +504 -0
  41. package/src/lib/head-commands.js.map +1 -0
  42. package/src/lib/head-commands.mjs +497 -0
  43. package/src/lib/head-commands.mjs.map +1 -0
  44. package/src/lib/head-parts.d.mts +15 -0
  45. package/src/lib/head-parts.d.ts +15 -0
  46. package/src/lib/head-parts.js +69 -0
  47. package/src/lib/head-parts.js.map +1 -0
  48. package/src/lib/head-parts.mjs +64 -0
  49. package/src/lib/head-parts.mjs.map +1 -0
  50. package/src/lib/head-properties.d.mts +25 -0
  51. package/src/lib/head-properties.d.ts +25 -0
  52. package/src/lib/head-properties.js +383 -0
  53. package/src/lib/head-properties.js.map +1 -0
  54. package/src/lib/head-properties.mjs +376 -0
  55. package/src/lib/head-properties.mjs.map +1 -0
  56. package/src/lib/header-commands.js +7 -0
  57. package/src/lib/header-commands.js.map +1 -1
  58. package/src/lib/header-commands.mjs +7 -0
  59. package/src/lib/header-commands.mjs.map +1 -1
  60. package/src/lib/header-properties.js +5 -1
  61. package/src/lib/header-properties.js.map +1 -1
  62. package/src/lib/header-properties.mjs +5 -1
  63. package/src/lib/header-properties.mjs.map +1 -1
  64. package/src/lib/inline-settings.js +19 -11
  65. package/src/lib/inline-settings.js.map +1 -1
  66. package/src/lib/inline-settings.mjs +19 -11
  67. package/src/lib/inline-settings.mjs.map +1 -1
  68. package/src/lib/input-commands.js +3 -2
  69. package/src/lib/input-commands.js.map +1 -1
  70. package/src/lib/input-commands.mjs +3 -2
  71. package/src/lib/input-commands.mjs.map +1 -1
  72. package/src/lib/kind-settings-choices.js +16 -7
  73. package/src/lib/kind-settings-choices.js.map +1 -1
  74. package/src/lib/kind-settings-choices.mjs +16 -7
  75. package/src/lib/kind-settings-choices.mjs.map +1 -1
  76. package/src/lib/kind-settings-inputs.js +116 -58
  77. package/src/lib/kind-settings-inputs.js.map +1 -1
  78. package/src/lib/kind-settings-inputs.mjs +116 -58
  79. package/src/lib/kind-settings-inputs.mjs.map +1 -1
  80. package/src/lib/kind-settings-picker.d.mts +4 -0
  81. package/src/lib/kind-settings-picker.d.ts +4 -0
  82. package/src/lib/kind-settings-picker.js +115 -0
  83. package/src/lib/kind-settings-picker.js.map +1 -0
  84. package/src/lib/kind-settings-picker.mjs +112 -0
  85. package/src/lib/kind-settings-picker.mjs.map +1 -0
  86. package/src/lib/kind-settings-structures.js +35 -16
  87. package/src/lib/kind-settings-structures.js.map +1 -1
  88. package/src/lib/kind-settings-structures.mjs +36 -17
  89. package/src/lib/kind-settings-structures.mjs.map +1 -1
  90. package/src/lib/kind-settings.js +47 -43
  91. package/src/lib/kind-settings.js.map +1 -1
  92. package/src/lib/kind-settings.mjs +47 -43
  93. package/src/lib/kind-settings.mjs.map +1 -1
  94. package/src/lib/layout-settings.d.mts +7 -0
  95. package/src/lib/layout-settings.d.ts +7 -0
  96. package/src/lib/layout-settings.js +15 -2
  97. package/src/lib/layout-settings.js.map +1 -1
  98. package/src/lib/layout-settings.mjs +15 -2
  99. package/src/lib/layout-settings.mjs.map +1 -1
  100. package/src/lib/list-canvas.js +18 -7
  101. package/src/lib/list-canvas.js.map +1 -1
  102. package/src/lib/list-canvas.mjs +18 -7
  103. package/src/lib/list-canvas.mjs.map +1 -1
  104. package/src/lib/list-commands.d.mts +24 -1
  105. package/src/lib/list-commands.d.ts +24 -1
  106. package/src/lib/list-commands.js +105 -2
  107. package/src/lib/list-commands.js.map +1 -1
  108. package/src/lib/list-commands.mjs +102 -1
  109. package/src/lib/list-commands.mjs.map +1 -1
  110. package/src/lib/list-properties.js +248 -28
  111. package/src/lib/list-properties.js.map +1 -1
  112. package/src/lib/list-properties.mjs +248 -28
  113. package/src/lib/list-properties.mjs.map +1 -1
  114. package/src/lib/locales/ar/head.d.mts +2 -0
  115. package/src/lib/locales/ar/head.d.ts +2 -0
  116. package/src/lib/locales/ar/head.js +97 -0
  117. package/src/lib/locales/ar/head.js.map +1 -0
  118. package/src/lib/locales/ar/head.mjs +94 -0
  119. package/src/lib/locales/ar/head.mjs.map +1 -0
  120. package/src/lib/locales/ar/index.js +4 -1
  121. package/src/lib/locales/ar/index.js.map +1 -1
  122. package/src/lib/locales/ar/index.mjs +4 -1
  123. package/src/lib/locales/ar/index.mjs.map +1 -1
  124. package/src/lib/locales/ar/inputs.d.mts +2 -0
  125. package/src/lib/locales/ar/inputs.d.ts +2 -0
  126. package/src/lib/locales/ar/inputs.js +20 -0
  127. package/src/lib/locales/ar/inputs.js.map +1 -0
  128. package/src/lib/locales/ar/inputs.mjs +17 -0
  129. package/src/lib/locales/ar/inputs.mjs.map +1 -0
  130. package/src/lib/locales/ar/list.js +31 -0
  131. package/src/lib/locales/ar/list.js.map +1 -1
  132. package/src/lib/locales/ar/list.mjs +31 -0
  133. package/src/lib/locales/ar/list.mjs.map +1 -1
  134. package/src/lib/locales/ar/panel.js +38 -0
  135. package/src/lib/locales/ar/panel.js.map +1 -1
  136. package/src/lib/locales/ar/panel.mjs +38 -0
  137. package/src/lib/locales/ar/panel.mjs.map +1 -1
  138. package/src/lib/locales/ar/questions.js +8 -0
  139. package/src/lib/locales/ar/questions.js.map +1 -1
  140. package/src/lib/locales/ar/questions.mjs +8 -0
  141. package/src/lib/locales/ar/questions.mjs.map +1 -1
  142. package/src/lib/locales/ar/refusals.js +11 -0
  143. package/src/lib/locales/ar/refusals.js.map +1 -1
  144. package/src/lib/locales/ar/refusals.mjs +11 -0
  145. package/src/lib/locales/ar/refusals.mjs.map +1 -1
  146. package/src/lib/locales/ar/work-text.d.mts +3 -0
  147. package/src/lib/locales/ar/work-text.d.ts +3 -0
  148. package/src/lib/locales/ar/work-text.js +58 -0
  149. package/src/lib/locales/ar/work-text.js.map +1 -0
  150. package/src/lib/locales/ar/work-text.mjs +55 -0
  151. package/src/lib/locales/ar/work-text.mjs.map +1 -0
  152. package/src/lib/locales/en/head.d.mts +101 -0
  153. package/src/lib/locales/en/head.d.ts +101 -0
  154. package/src/lib/locales/en/head.js +106 -0
  155. package/src/lib/locales/en/head.js.map +1 -0
  156. package/src/lib/locales/en/head.mjs +103 -0
  157. package/src/lib/locales/en/head.mjs.map +1 -0
  158. package/src/lib/locales/en/index.d.mts +237 -0
  159. package/src/lib/locales/en/index.d.ts +237 -0
  160. package/src/lib/locales/en/index.js +4 -1
  161. package/src/lib/locales/en/index.js.map +1 -1
  162. package/src/lib/locales/en/index.mjs +4 -1
  163. package/src/lib/locales/en/index.mjs.map +1 -1
  164. package/src/lib/locales/en/inputs.d.mts +26 -0
  165. package/src/lib/locales/en/inputs.d.ts +26 -0
  166. package/src/lib/locales/en/inputs.js +30 -0
  167. package/src/lib/locales/en/inputs.js.map +1 -0
  168. package/src/lib/locales/en/inputs.mjs +27 -0
  169. package/src/lib/locales/en/inputs.mjs.map +1 -0
  170. package/src/lib/locales/en/list.d.mts +48 -0
  171. package/src/lib/locales/en/list.d.ts +48 -0
  172. package/src/lib/locales/en/list.js +33 -0
  173. package/src/lib/locales/en/list.js.map +1 -1
  174. package/src/lib/locales/en/list.mjs +33 -0
  175. package/src/lib/locales/en/list.mjs.map +1 -1
  176. package/src/lib/locales/en/panel.d.mts +6 -0
  177. package/src/lib/locales/en/panel.d.ts +6 -0
  178. package/src/lib/locales/en/panel.js +3 -0
  179. package/src/lib/locales/en/panel.js.map +1 -1
  180. package/src/lib/locales/en/panel.mjs +3 -0
  181. package/src/lib/locales/en/panel.mjs.map +1 -1
  182. package/src/lib/locales/en/questions.d.mts +8 -0
  183. package/src/lib/locales/en/questions.d.ts +8 -0
  184. package/src/lib/locales/en/questions.js +9 -0
  185. package/src/lib/locales/en/questions.js.map +1 -1
  186. package/src/lib/locales/en/questions.mjs +9 -0
  187. package/src/lib/locales/en/questions.mjs.map +1 -1
  188. package/src/lib/locales/en/refusals.d.mts +11 -0
  189. package/src/lib/locales/en/refusals.d.ts +11 -0
  190. package/src/lib/locales/en/refusals.js +11 -0
  191. package/src/lib/locales/en/refusals.js.map +1 -1
  192. package/src/lib/locales/en/refusals.mjs +11 -0
  193. package/src/lib/locales/en/refusals.mjs.map +1 -1
  194. package/src/lib/locales/en/work-text.d.mts +58 -0
  195. package/src/lib/locales/en/work-text.d.ts +58 -0
  196. package/src/lib/locales/en/work-text.js +67 -0
  197. package/src/lib/locales/en/work-text.js.map +1 -0
  198. package/src/lib/locales/en/work-text.mjs +64 -0
  199. package/src/lib/locales/en/work-text.mjs.map +1 -0
  200. package/src/lib/number-box.d.mts +66 -0
  201. package/src/lib/number-box.d.ts +66 -0
  202. package/src/lib/number-box.js +153 -0
  203. package/src/lib/number-box.js.map +1 -0
  204. package/src/lib/number-box.mjs +149 -0
  205. package/src/lib/number-box.mjs.map +1 -0
  206. package/src/lib/page-json.d.mts +3 -1
  207. package/src/lib/page-json.d.ts +3 -1
  208. package/src/lib/page-json.js +5 -3
  209. package/src/lib/page-json.js.map +1 -1
  210. package/src/lib/page-json.mjs +5 -3
  211. package/src/lib/page-json.mjs.map +1 -1
  212. package/src/lib/page-tree.js +11 -1
  213. package/src/lib/page-tree.js.map +1 -1
  214. package/src/lib/page-tree.mjs +11 -1
  215. package/src/lib/page-tree.mjs.map +1 -1
  216. package/src/lib/panel-block.js +22 -6
  217. package/src/lib/panel-block.js.map +1 -1
  218. package/src/lib/panel-block.mjs +22 -6
  219. package/src/lib/panel-block.mjs.map +1 -1
  220. package/src/lib/panel-field.js +5 -1
  221. package/src/lib/panel-field.js.map +1 -1
  222. package/src/lib/panel-field.mjs +5 -1
  223. package/src/lib/panel-field.mjs.map +1 -1
  224. package/src/lib/panel-group.js +7 -3
  225. package/src/lib/panel-group.js.map +1 -1
  226. package/src/lib/panel-group.mjs +7 -3
  227. package/src/lib/panel-group.mjs.map +1 -1
  228. package/src/lib/panel-layout.js +20 -15
  229. package/src/lib/panel-layout.js.map +1 -1
  230. package/src/lib/panel-layout.mjs +20 -15
  231. package/src/lib/panel-layout.mjs.map +1 -1
  232. package/src/lib/panel-look.js +28 -14
  233. package/src/lib/panel-look.js.map +1 -1
  234. package/src/lib/panel-look.mjs +28 -14
  235. package/src/lib/panel-look.mjs.map +1 -1
  236. package/src/lib/panel-map.js +53 -20
  237. package/src/lib/panel-map.js.map +1 -1
  238. package/src/lib/panel-map.mjs +53 -20
  239. package/src/lib/panel-map.mjs.map +1 -1
  240. package/src/lib/panel-page.js +5 -1
  241. package/src/lib/panel-page.js.map +1 -1
  242. package/src/lib/panel-page.mjs +5 -1
  243. package/src/lib/panel-page.mjs.map +1 -1
  244. package/src/lib/panel-parts.js +5 -1
  245. package/src/lib/panel-parts.js.map +1 -1
  246. package/src/lib/panel-parts.mjs +5 -1
  247. package/src/lib/panel-parts.mjs.map +1 -1
  248. package/src/lib/picker-commands.d.mts +16 -0
  249. package/src/lib/picker-commands.d.ts +16 -0
  250. package/src/lib/picker-commands.js +61 -0
  251. package/src/lib/picker-commands.js.map +1 -0
  252. package/src/lib/picker-commands.mjs +58 -0
  253. package/src/lib/picker-commands.mjs.map +1 -0
  254. package/src/lib/rules-answers.d.mts +1 -1
  255. package/src/lib/rules-answers.d.ts +1 -1
  256. package/src/lib/rules-answers.js +45 -21
  257. package/src/lib/rules-answers.js.map +1 -1
  258. package/src/lib/rules-answers.mjs +45 -21
  259. package/src/lib/rules-answers.mjs.map +1 -1
  260. package/src/lib/rules-formula-box.d.mts +7 -3
  261. package/src/lib/rules-formula-box.d.ts +7 -3
  262. package/src/lib/rules-formula-box.js +26 -6
  263. package/src/lib/rules-formula-box.js.map +1 -1
  264. package/src/lib/rules-formula-box.mjs +26 -6
  265. package/src/lib/rules-formula-box.mjs.map +1 -1
  266. package/src/lib/rules-formula.js +7 -5
  267. package/src/lib/rules-formula.js.map +1 -1
  268. package/src/lib/rules-formula.mjs +8 -6
  269. package/src/lib/rules-formula.mjs.map +1 -1
  270. package/src/lib/rules-worked-out.js +66 -12
  271. package/src/lib/rules-worked-out.js.map +1 -1
  272. package/src/lib/rules-worked-out.mjs +66 -12
  273. package/src/lib/rules-worked-out.mjs.map +1 -1
  274. package/src/lib/screen-properties.js +9 -2
  275. package/src/lib/screen-properties.js.map +1 -1
  276. package/src/lib/screen-properties.mjs +9 -2
  277. package/src/lib/screen-properties.mjs.map +1 -1
  278. package/src/lib/setting-refusals.d.mts +3 -0
  279. package/src/lib/setting-refusals.d.ts +3 -0
  280. package/src/lib/setting-refusals.js +25 -0
  281. package/src/lib/setting-refusals.js.map +1 -0
  282. package/src/lib/setting-refusals.mjs +22 -0
  283. package/src/lib/setting-refusals.mjs.map +1 -0
  284. package/src/lib/styles-head.d.mts +7 -0
  285. package/src/lib/styles-head.d.ts +7 -0
  286. package/src/lib/styles-head.js +28 -0
  287. package/src/lib/styles-head.js.map +1 -0
  288. package/src/lib/styles-head.mjs +25 -0
  289. package/src/lib/styles-head.mjs.map +1 -0
  290. package/src/lib/styles.d.mts +1 -1
  291. package/src/lib/styles.d.ts +1 -1
  292. package/src/lib/styles.js +9 -2
  293. package/src/lib/styles.js.map +1 -1
  294. package/src/lib/styles.mjs +9 -2
  295. package/src/lib/styles.mjs.map +1 -1
  296. package/src/lib/table-panel.js +16 -5
  297. package/src/lib/table-panel.js.map +1 -1
  298. package/src/lib/table-panel.mjs +16 -5
  299. package/src/lib/table-panel.mjs.map +1 -1
  300. package/src/lib/work-text.d.mts +43 -0
  301. package/src/lib/work-text.d.ts +43 -0
  302. package/src/lib/work-text.js +235 -0
  303. package/src/lib/work-text.js.map +1 -0
  304. package/src/lib/work-text.mjs +227 -0
  305. package/src/lib/work-text.mjs.map +1 -0
@@ -0,0 +1,153 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.plainNumber = plainNumber;
4
+ exports.settingNumber = settingNumber;
5
+ const core_1 = require("@fieldia/core");
6
+ const widgets_1 = require("@fieldia/widgets");
7
+ /** A number as a setting's box writes it: plain, in Latin digits, all its places, never in exponent form. */
8
+ function plainNumber(value, locale = 'en') {
9
+ return (0, widgets_1.formatPlain)(value, Math.min((0, core_1.placesOf)(value), 20), locale);
10
+ }
11
+ function settingNumber(el, host, options) {
12
+ const locale = host.locale ?? 'en';
13
+ const w = host.words.inputs;
14
+ // Read as they are now each time: a box may change its name, or whether it takes whole numbers, with its field.
15
+ const least = () => options.min ?? options.above;
16
+ const limits = () => ({ integer: !!options.integer, ...(least() !== undefined ? { min: least() } : {}) });
17
+ const input = el('input', { type: 'text', class: 'fd-input', autocomplete: 'off', 'aria-label': options.label, inputmode: (0, widgets_1.numberKeyboard)(limits()), ...options.attrs });
18
+ const hint = (0, widgets_1.refusalHint)(input);
19
+ const box = {
20
+ get label() {
21
+ return options.label;
22
+ },
23
+ locale,
24
+ labels: widgets_1.WIDGET_LABELS[locale] ?? widgets_1.WIDGET_LABELS.en,
25
+ messages: core_1.MESSAGES[locale] ?? core_1.MESSAGES.en,
26
+ limits,
27
+ };
28
+ const checks = (0, widgets_1.guard)(input, (0, widgets_1.numberRules)(box), hint);
29
+ const focused = () => input.ownerDocument.activeElement === input;
30
+ const shown = (value) => (typeof value === 'number' && Number.isFinite(value) ? plainNumber(value, locale) : '');
31
+ const said = (value) => plainNumber(value, locale);
32
+ /** What fits, in words: its range, or that it needs a number. */
33
+ const fits = () => {
34
+ const { label, integer, min, max, above } = options;
35
+ if (above !== undefined)
36
+ return w.settingMoreThan(label, said(above));
37
+ if (min !== undefined && max !== undefined)
38
+ return integer ? w.settingRange(label, said(min), said(max)) : w.settingNumberRange(label, said(min), said(max));
39
+ if (min !== undefined && integer)
40
+ return w.settingAtLeast(label, said(min));
41
+ if (integer)
42
+ return (0, core_1.fill)((core_1.MESSAGES[locale] ?? core_1.MESSAGES.en).integer, { label });
43
+ return w.settingNeedsNumber(label);
44
+ };
45
+ /** Why a number read does not fit, or null. */
46
+ const misfit = (value) => {
47
+ const { integer, min, max, above } = options;
48
+ if ((integer && !Number.isInteger(value)) || (min !== undefined && value < min) || (max !== undefined && value > max) || (above !== undefined && value <= above))
49
+ return fits();
50
+ return options.check?.(value) ?? null;
51
+ };
52
+ /**
53
+ * The text the box was last left with, and what was said of it: a browser says change and then blur as a box is
54
+ * left, and Enter says change too; the second is the same leaving, and says again what the first said (a blur
55
+ * takes the hint away).
56
+ */
57
+ let left = null;
58
+ /** What the setting held as the box was entered: a live preview's keys, which kept what read on the way, go back to it. */
59
+ let entered;
60
+ input.addEventListener('focus', () => {
61
+ entered = options.saved();
62
+ left = null;
63
+ });
64
+ /** The box back to what was saved before it was typed in, and why, said under it. */
65
+ const keep = (why) => {
66
+ let saved = options.saved();
67
+ // "600" passed by 60 on its way: the preview's 60 was never what was meant.
68
+ if (options.live && entered !== undefined && saved !== entered && options.commit(entered ?? null) !== false)
69
+ saved = entered;
70
+ input.value = shown(saved);
71
+ checks.accept();
72
+ const words = typeof saved === 'number' ? `${why.replace(/[.。]$/, '')}. ${w.settingStays(said(saved))}` : why;
73
+ hint.show(words);
74
+ left = { text: input.value, said: words };
75
+ };
76
+ /** A number (or none) kept, and shown as the box writes it; refused by the designer, what is saved comes back, with why under the box. */
77
+ const kept = (value) => {
78
+ const done = value === (options.saved() ?? null) || options.commit(value) !== false;
79
+ if (!done)
80
+ return keep(host.getState?.().issues[0] ?? fits());
81
+ input.value = shown(value);
82
+ checks.accept();
83
+ left = { text: input.value, said: null };
84
+ };
85
+ /** The box left: what it holds kept when it reads and fits, else the setting as it was, and why. */
86
+ function leave() {
87
+ if (left && left.text === input.value) {
88
+ if (left.said)
89
+ hint.show(left.said);
90
+ return;
91
+ }
92
+ // Keys held after a refused one ("2٫5" in a whole number, where the box shows "2"): what was typed does not fit.
93
+ if (checks.held())
94
+ return keep(fits());
95
+ const read = (0, core_1.readNumber)(input.value, locale);
96
+ if (read.ok && read.value === null)
97
+ return options.optional ? kept(null) : keep(w.settingNeedsNumber(options.label));
98
+ if (!read.ok || read.value === null)
99
+ return keep(fits());
100
+ const wrong = misfit(read.value);
101
+ if (wrong)
102
+ return keep(wrong);
103
+ kept(read.value);
104
+ }
105
+ input.addEventListener('input', () => {
106
+ left = null;
107
+ if (!options.live)
108
+ return;
109
+ const read = (0, core_1.readNumber)(input.value, locale);
110
+ if (read.ok && read.value !== null && read.value !== options.saved() && !misfit(read.value))
111
+ options.commit(read.value);
112
+ });
113
+ // Left by Tab or a click elsewhere, or Enter pressed: what is typed is taken, or said not to fit.
114
+ input.addEventListener('change', leave);
115
+ input.addEventListener('blur', leave);
116
+ input.addEventListener('keydown', (event) => {
117
+ if (event.isComposing || event.altKey || event.ctrlKey || event.metaKey)
118
+ return;
119
+ if (event.key === 'Enter')
120
+ return leave();
121
+ if (event.key !== 'ArrowUp' && event.key !== 'ArrowDown')
122
+ return;
123
+ // ↑ and ↓ step the number, as the browser's box did; at the end of its range, they say the range.
124
+ const read = (0, core_1.readNumber)(input.value, locale);
125
+ const from = read.ok ? (read.value ?? options.saved() ?? least() ?? 0) : null;
126
+ if (from === null)
127
+ return;
128
+ event.preventDefault();
129
+ const step = options.step ?? 1;
130
+ const next = Math.round((from + (event.key === 'ArrowUp' ? step : -step)) * 1e9) / 1e9;
131
+ if (misfit(next))
132
+ return hint.show(fits());
133
+ input.value = shown(next);
134
+ checks.accept();
135
+ hint.hide();
136
+ input.dispatchEvent(new Event('input', { bubbles: true }));
137
+ });
138
+ return {
139
+ input,
140
+ refresh: () => {
141
+ input.inputMode = (0, widgets_1.numberKeyboard)(limits());
142
+ if (focused())
143
+ return;
144
+ const text = shown(options.saved());
145
+ if (input.value !== text) {
146
+ input.value = text;
147
+ checks.accept();
148
+ }
149
+ },
150
+ destroy: () => checks.destroy(),
151
+ };
152
+ }
153
+ //# sourceMappingURL=number-box.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number-box.js","sourceRoot":"","sources":["../../../../../libs/designer/src/lib/number-box.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,149 @@
1
+ import { fill, MESSAGES, placesOf, readNumber } from '@fieldia/core';
2
+ import { formatPlain, guard, numberKeyboard, numberRules, refusalHint, WIDGET_LABELS } from '@fieldia/widgets';
3
+ /** A number as a setting's box writes it: plain, in Latin digits, all its places, never in exponent form. */
4
+ export function plainNumber(value, locale = 'en') {
5
+ return formatPlain(value, Math.min(placesOf(value), 20), locale);
6
+ }
7
+ export function settingNumber(el, host, options) {
8
+ const locale = host.locale ?? 'en';
9
+ const w = host.words.inputs;
10
+ // Read as they are now each time: a box may change its name, or whether it takes whole numbers, with its field.
11
+ const least = () => options.min ?? options.above;
12
+ const limits = () => ({ integer: !!options.integer, ...(least() !== undefined ? { min: least() } : {}) });
13
+ const input = el('input', { type: 'text', class: 'fd-input', autocomplete: 'off', 'aria-label': options.label, inputmode: numberKeyboard(limits()), ...options.attrs });
14
+ const hint = refusalHint(input);
15
+ const box = {
16
+ get label() {
17
+ return options.label;
18
+ },
19
+ locale,
20
+ labels: WIDGET_LABELS[locale] ?? WIDGET_LABELS.en,
21
+ messages: MESSAGES[locale] ?? MESSAGES.en,
22
+ limits,
23
+ };
24
+ const checks = guard(input, numberRules(box), hint);
25
+ const focused = () => input.ownerDocument.activeElement === input;
26
+ const shown = (value) => (typeof value === 'number' && Number.isFinite(value) ? plainNumber(value, locale) : '');
27
+ const said = (value) => plainNumber(value, locale);
28
+ /** What fits, in words: its range, or that it needs a number. */
29
+ const fits = () => {
30
+ const { label, integer, min, max, above } = options;
31
+ if (above !== undefined)
32
+ return w.settingMoreThan(label, said(above));
33
+ if (min !== undefined && max !== undefined)
34
+ return integer ? w.settingRange(label, said(min), said(max)) : w.settingNumberRange(label, said(min), said(max));
35
+ if (min !== undefined && integer)
36
+ return w.settingAtLeast(label, said(min));
37
+ if (integer)
38
+ return fill((MESSAGES[locale] ?? MESSAGES.en).integer, { label });
39
+ return w.settingNeedsNumber(label);
40
+ };
41
+ /** Why a number read does not fit, or null. */
42
+ const misfit = (value) => {
43
+ const { integer, min, max, above } = options;
44
+ if ((integer && !Number.isInteger(value)) || (min !== undefined && value < min) || (max !== undefined && value > max) || (above !== undefined && value <= above))
45
+ return fits();
46
+ return options.check?.(value) ?? null;
47
+ };
48
+ /**
49
+ * The text the box was last left with, and what was said of it: a browser says change and then blur as a box is
50
+ * left, and Enter says change too; the second is the same leaving, and says again what the first said (a blur
51
+ * takes the hint away).
52
+ */
53
+ let left = null;
54
+ /** What the setting held as the box was entered: a live preview's keys, which kept what read on the way, go back to it. */
55
+ let entered;
56
+ input.addEventListener('focus', () => {
57
+ entered = options.saved();
58
+ left = null;
59
+ });
60
+ /** The box back to what was saved before it was typed in, and why, said under it. */
61
+ const keep = (why) => {
62
+ let saved = options.saved();
63
+ // "600" passed by 60 on its way: the preview's 60 was never what was meant.
64
+ if (options.live && entered !== undefined && saved !== entered && options.commit(entered ?? null) !== false)
65
+ saved = entered;
66
+ input.value = shown(saved);
67
+ checks.accept();
68
+ const words = typeof saved === 'number' ? `${why.replace(/[.。]$/, '')}. ${w.settingStays(said(saved))}` : why;
69
+ hint.show(words);
70
+ left = { text: input.value, said: words };
71
+ };
72
+ /** A number (or none) kept, and shown as the box writes it; refused by the designer, what is saved comes back, with why under the box. */
73
+ const kept = (value) => {
74
+ const done = value === (options.saved() ?? null) || options.commit(value) !== false;
75
+ if (!done)
76
+ return keep(host.getState?.().issues[0] ?? fits());
77
+ input.value = shown(value);
78
+ checks.accept();
79
+ left = { text: input.value, said: null };
80
+ };
81
+ /** The box left: what it holds kept when it reads and fits, else the setting as it was, and why. */
82
+ function leave() {
83
+ if (left && left.text === input.value) {
84
+ if (left.said)
85
+ hint.show(left.said);
86
+ return;
87
+ }
88
+ // Keys held after a refused one ("2٫5" in a whole number, where the box shows "2"): what was typed does not fit.
89
+ if (checks.held())
90
+ return keep(fits());
91
+ const read = readNumber(input.value, locale);
92
+ if (read.ok && read.value === null)
93
+ return options.optional ? kept(null) : keep(w.settingNeedsNumber(options.label));
94
+ if (!read.ok || read.value === null)
95
+ return keep(fits());
96
+ const wrong = misfit(read.value);
97
+ if (wrong)
98
+ return keep(wrong);
99
+ kept(read.value);
100
+ }
101
+ input.addEventListener('input', () => {
102
+ left = null;
103
+ if (!options.live)
104
+ return;
105
+ const read = readNumber(input.value, locale);
106
+ if (read.ok && read.value !== null && read.value !== options.saved() && !misfit(read.value))
107
+ options.commit(read.value);
108
+ });
109
+ // Left by Tab or a click elsewhere, or Enter pressed: what is typed is taken, or said not to fit.
110
+ input.addEventListener('change', leave);
111
+ input.addEventListener('blur', leave);
112
+ input.addEventListener('keydown', (event) => {
113
+ if (event.isComposing || event.altKey || event.ctrlKey || event.metaKey)
114
+ return;
115
+ if (event.key === 'Enter')
116
+ return leave();
117
+ if (event.key !== 'ArrowUp' && event.key !== 'ArrowDown')
118
+ return;
119
+ // ↑ and ↓ step the number, as the browser's box did; at the end of its range, they say the range.
120
+ const read = readNumber(input.value, locale);
121
+ const from = read.ok ? (read.value ?? options.saved() ?? least() ?? 0) : null;
122
+ if (from === null)
123
+ return;
124
+ event.preventDefault();
125
+ const step = options.step ?? 1;
126
+ const next = Math.round((from + (event.key === 'ArrowUp' ? step : -step)) * 1e9) / 1e9;
127
+ if (misfit(next))
128
+ return hint.show(fits());
129
+ input.value = shown(next);
130
+ checks.accept();
131
+ hint.hide();
132
+ input.dispatchEvent(new Event('input', { bubbles: true }));
133
+ });
134
+ return {
135
+ input,
136
+ refresh: () => {
137
+ input.inputMode = numberKeyboard(limits());
138
+ if (focused())
139
+ return;
140
+ const text = shown(options.saved());
141
+ if (input.value !== text) {
142
+ input.value = text;
143
+ checks.accept();
144
+ }
145
+ },
146
+ destroy: () => checks.destroy(),
147
+ };
148
+ }
149
+ //# sourceMappingURL=number-box.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"number-box.mjs","sourceRoot":"","sources":["../../../../../libs/designer/src/lib/number-box.ts"],"names":[],"mappings":"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"}
@@ -38,5 +38,7 @@ export interface PageJsonCommands {
38
38
  export interface PageJsonDeps {
39
39
  getPage(): Page;
40
40
  apply(edit: (draft: Page) => void): boolean;
41
+ /** The designer's words, for the problems it says. */
42
+ words?: DesignerWords;
41
43
  }
42
- export declare function pageJsonCommands({ getPage, apply }: PageJsonDeps): PageJsonCommands;
44
+ export declare function pageJsonCommands({ getPage, apply, words }: PageJsonDeps): PageJsonCommands;
@@ -38,5 +38,7 @@ export interface PageJsonCommands {
38
38
  export interface PageJsonDeps {
39
39
  getPage(): Page;
40
40
  apply(edit: (draft: Page) => void): boolean;
41
+ /** The designer's words, for the problems it says. */
42
+ words?: DesignerWords;
41
43
  }
42
- export declare function pageJsonCommands({ getPage, apply }: PageJsonDeps): PageJsonCommands;
44
+ export declare function pageJsonCommands({ getPage, apply, words }: PageJsonDeps): PageJsonCommands;
@@ -6,6 +6,7 @@ exports.pageJsonCommands = pageJsonCommands;
6
6
  const core_1 = require("@fieldia/core");
7
7
  const json_text_1 = require("./json-text");
8
8
  const en_1 = require("./locales/en");
9
+ const setting_refusals_1 = require("./setting-refusals");
9
10
  /** The page as JSON: two spaces deep, its keys in the order the page keeps them. */
10
11
  function pageToJson(page) {
11
12
  return JSON.stringify(page, null, 2);
@@ -18,16 +19,17 @@ function readPage(text, words = en_1.en) {
18
19
  const checked = (0, core_1.validatePage)(read.value);
19
20
  if (checked.ok)
20
21
  return { value: read.value, tree: read.tree, page: checked.page, problems: [] };
21
- const problems = checked.issues.map((issue) => ({ ...(0, json_text_1.placeOf)(text, read.tree, issue.path), path: issue.path, message: issue.message }));
22
+ // A number setting's problem in its own words: "Minutes is a whole number from 1 to 120", not the format's English.
23
+ const problems = checked.issues.map((issue) => ({ ...(0, json_text_1.placeOf)(text, read.tree, issue.path), path: issue.path, message: (0, setting_refusals_1.settingRefusal)(issue.path, words) ?? issue.message }));
22
24
  // In reading order, as the person meets them going down the text.
23
25
  problems.sort((a, b) => a.line - b.line || a.column - b.column);
24
26
  return { value: read.value, tree: read.tree, page: null, problems };
25
27
  }
26
- function pageJsonCommands({ getPage, apply }) {
28
+ function pageJsonCommands({ getPage, apply, words = en_1.en }) {
27
29
  return {
28
30
  pageJson: () => pageToJson(getPage()),
29
31
  setPageJson(text) {
30
- const { page, problems } = readPage(text);
32
+ const { page, problems } = readPage(text, words);
31
33
  if (!page)
32
34
  return { ok: false, problems };
33
35
  // The page as it is already: nothing to undo.
@@ -1 +1 @@
1
- {"version":3,"file":"page-json.js","sourceRoot":"","sources":["../../../../../libs/designer/src/lib/page-json.ts"],"names":[],"mappings":";;AA8BA,gCAEC;AAGD,4BASC;AAaD,4CAgBC;AAzED,wCAAwD;AAExD,2CAAuE;AACvE,qCAAkC;AA0BlC,oFAAoF;AACpF,SAAgB,UAAU,CAAC,IAAU;IACnC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,4EAA4E;AAC5E,SAAgB,QAAQ,CAAC,IAAY,EAAE,QAAuB,OAAE;IAC9D,MAAM,IAAI,GAAG,IAAA,oBAAQ,EAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACnC,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5F,MAAM,OAAO,GAAG,IAAA,mBAAY,EAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,OAAO,CAAC,EAAE;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAChG,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,IAAA,mBAAO,EAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACxI,kEAAkE;IAClE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IAChE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AACtE,CAAC;AAaD,SAAgB,gBAAgB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAgB;IAC/D,OAAO;QACL,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QACrC,WAAW,CAAC,IAAI;YACd,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,CAAC,IAAI;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;YAC1C,8CAA8C;YAC9C,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC,OAAO,EAAE,CAAC;gBAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;YACpE,2EAA2E;YAC3E,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACd,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;oBAAE,OAAQ,KAA4C,CAAC,GAAG,CAAC,CAAC;gBAChG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACzD,CAAC,CAAC,CAAC;YACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACtB,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"page-json.js","sourceRoot":"","sources":["../../../../../libs/designer/src/lib/page-json.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import { validatePage } from '@fieldia/core';
2
2
  import { placeOf, readJson } from './json-text.mjs';
3
3
  import { en } from './locales/en/index.mjs';
4
+ import { settingRefusal } from './setting-refusals.mjs';
4
5
  /** The page as JSON: two spaces deep, its keys in the order the page keeps them. */
5
6
  export function pageToJson(page) {
6
7
  return JSON.stringify(page, null, 2);
@@ -13,16 +14,17 @@ export function readPage(text, words = en) {
13
14
  const checked = validatePage(read.value);
14
15
  if (checked.ok)
15
16
  return { value: read.value, tree: read.tree, page: checked.page, problems: [] };
16
- const problems = checked.issues.map((issue) => ({ ...placeOf(text, read.tree, issue.path), path: issue.path, message: issue.message }));
17
+ // A number setting's problem in its own words: "Minutes is a whole number from 1 to 120", not the format's English.
18
+ const problems = checked.issues.map((issue) => ({ ...placeOf(text, read.tree, issue.path), path: issue.path, message: settingRefusal(issue.path, words) ?? issue.message }));
17
19
  // In reading order, as the person meets them going down the text.
18
20
  problems.sort((a, b) => a.line - b.line || a.column - b.column);
19
21
  return { value: read.value, tree: read.tree, page: null, problems };
20
22
  }
21
- export function pageJsonCommands({ getPage, apply }) {
23
+ export function pageJsonCommands({ getPage, apply, words = en }) {
22
24
  return {
23
25
  pageJson: () => pageToJson(getPage()),
24
26
  setPageJson(text) {
25
- const { page, problems } = readPage(text);
27
+ const { page, problems } = readPage(text, words);
26
28
  if (!page)
27
29
  return { ok: false, problems };
28
30
  // The page as it is already: nothing to undo.
@@ -1 +1 @@
1
- {"version":3,"file":"page-json.mjs","sourceRoot":"","sources":["../../../../../libs/designer/src/lib/page-json.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAa,MAAM,eAAe,CAAC;AAExD,OAAO,EAAE,OAAO,EAAE,QAAQ,EAAyB,MAAM,aAAa,CAAC;AACvE,OAAO,EAAE,EAAE,EAAE,MAAM,cAAc,CAAC;AA0BlC,oFAAoF;AACpF,MAAM,UAAU,UAAU,CAAC,IAAU;IACnC,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACvC,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,QAAQ,CAAC,IAAY,EAAE,QAAuB,EAAE;IAC9D,MAAM,IAAI,GAAG,QAAQ,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;IACnC,IAAI,CAAC,IAAI,CAAC,EAAE;QAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;IAC5F,MAAM,OAAO,GAAG,YAAY,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACzC,IAAI,OAAO,CAAC,EAAE;QAAE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC;IAChG,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;IACxI,kEAAkE;IAClE,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC;IAChE,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;AACtE,CAAC;AAaD,MAAM,UAAU,gBAAgB,CAAC,EAAE,OAAO,EAAE,KAAK,EAAgB;IAC/D,OAAO;QACL,QAAQ,EAAE,GAAG,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,CAAC;QACrC,WAAW,CAAC,IAAI;YACd,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAC1C,IAAI,CAAC,IAAI;gBAAE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC;YAC1C,8CAA8C;YAC9C,IAAI,UAAU,CAAC,IAAI,CAAC,KAAK,UAAU,CAAC,OAAO,EAAE,CAAC;gBAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;YACpE,2EAA2E;YAC3E,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;gBACd,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;oBAAE,OAAQ,KAA4C,CAAC,GAAG,CAAC,CAAC;gBAChG,MAAM,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACzD,CAAC,CAAC,CAAC;YACH,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,CAAC;QACtB,CAAC;KACF,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"page-json.mjs","sourceRoot":"","sources":["../../../../../libs/designer/src/lib/page-json.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,7 @@ exports.tabHolds = tabHolds;
20
20
  exports.sheetParts = sheetParts;
21
21
  const core_1 = require("@fieldia/core");
22
22
  const en_1 = require("./locales/en");
23
+ const head_parts_1 = require("./head-parts");
23
24
  /** Every container that holds fields: steps, sections, tabs, and a page of sections or a sheet itself. */
24
25
  function containers(page) {
25
26
  const found = [];
@@ -152,7 +153,13 @@ function shownFields(page) {
152
153
  // The file the attachment beside the sheet shows.
153
154
  if (root.attachmentPreview?.field)
154
155
  shown.add(root.attachmentPreview.field);
156
+ // A record head's kind, number, "Updated by" and toggles (its parts' own fields are among the sheet's parts above).
157
+ for (const name of (0, head_parts_1.headFields)(root))
158
+ shown.add(name);
155
159
  }
160
+ // A tab's count.
161
+ for (const name of (0, head_parts_1.tabCountFields)(page))
162
+ shown.add(name);
156
163
  // A list names its fields in its columns, order, search, filters and groupings.
157
164
  if (root.type === 'list') {
158
165
  const read = (items) => items.flatMap((i) => ('any' in i ? read(i.any) : 'all' in i ? read(i.all) : [i.field]));
@@ -161,6 +168,9 @@ function shownFields(page) {
161
168
  if (root.map)
162
169
  for (const name of listMapFields(root.map))
163
170
  shown.add(name);
171
+ // And in its cells' icons, its filter bar and the link its rows nest by.
172
+ for (const name of [...Object.values(root.cells ?? {}).flatMap((cell) => (cell.lead ? [cell.lead.field] : [])), ...(root.filterFields ?? []), ...(root.parentField ? [root.parentField] : [])])
173
+ shown.add(name);
164
174
  }
165
175
  return shown;
166
176
  }
@@ -267,6 +277,6 @@ function tabHolds(tab, id) {
267
277
  /** A sheet's own parts outside its sections, each with an id: buttons, stat buttons, badges, alerts and their buttons, ribbons. */
268
278
  function sheetParts(root) {
269
279
  const alerts = root.alerts ?? [];
270
- return [...(root.buttons ?? []), ...(root.statButtons ?? []), ...(root.badges ?? []), ...alerts, ...alerts.flatMap((a) => a.buttons ?? []), ...(root.ribbon ? [root.ribbon] : []), ...(root.ribbons ?? []), ...(root.toolbar?.menu ?? [])];
280
+ return [...(root.buttons ?? []), ...(root.statButtons ?? []), ...(root.badges ?? []), ...alerts, ...alerts.flatMap((a) => a.buttons ?? []), ...(root.ribbon ? [root.ribbon] : []), ...(root.ribbons ?? []), ...(root.toolbar?.menu ?? []), ...(0, head_parts_1.headParts)(root)];
271
281
  }
272
282
  //# sourceMappingURL=page-tree.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"page-tree.js","sourceRoot":"","sources":["../../../../../libs/designer/src/lib/page-tree.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"page-tree.js","sourceRoot":"","sources":["../../../../../libs/designer/src/lib/page-tree.ts"],"names":[],"mappings":";;AAaA,gCA+BC;AAED,4BAMC;AAED,sCAEC;AAGD,8BAMC;AAGD,0BAMC;AAGD,oCAEC;AAED,4BAEC;AAED,wBAYC;AAGD,kCAiCC;AAGD,gCAIC;AAGD,gCAYC;AAGD,sCAYC;AAGD,sCA2BC;AAGD,kCAEC;AAGD,8BAMC;AAGD,oCAMC;AAGD,4BAKC;AAGD,gCAGC;AA7OD,wCAA6P;AAE7P,qCAAkC;AAClC,6CAAqE;AASrE,0GAA0G;AAC1G,SAAgB,UAAU,CAAC,IAAU;IACnC,MAAM,KAAK,GAAgB,EAAE,CAAC;IAC9B,MAAM,IAAI,GAAG,CAAC,KAAmB,EAAE,EAAE;QACnC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC5B,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YACtB,CAAC;iBAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAChC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;oBAChC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;oBAChB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC,CAAC;IACF,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;IACzB,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC3B,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACjC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACjB,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACtB,CAAC;IACH,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAChC,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChC,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;YAChB,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QACrB,CAAC;IACH,CAAC;SAAM,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QAChC,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;YAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACxE,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACtB,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAgB,QAAQ,CAAC,IAAU,EAAE,EAAU;IAC7C,KAAK,MAAM,MAAM,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACtC,MAAM,KAAK,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QACpE,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC3E,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,aAAa,CAAC,IAAU,EAAE,EAAU;IAClD,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,IAAI,IAAI,CAAC;AAC3D,CAAC;AAED,yCAAyC;AACzC,SAAgB,SAAS,CAAC,IAAU;IAClC,MAAM,KAAK,GAAe,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;IACzB,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;QAAE,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC3C,KAAK,MAAM,SAAS,IAAI,UAAU,CAAC,IAAI,CAAC;QAAE,KAAK,MAAM,KAAK,IAAI,SAAS,CAAC,QAAQ;YAAE,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;gBAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC/H,OAAO,KAAK,CAAC;AACf,CAAC;AAED,+DAA+D;AAC/D,SAAgB,OAAO,CAAC,IAAU,EAAE,EAAU;IAC5C,KAAK,MAAM,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC9D,IAAI,KAAK,KAAK,CAAC,CAAC;YAAE,OAAO,EAAE,GAAG,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;IACtE,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,yFAAyF;AACzF,SAAgB,YAAY,CAAC,IAAU;IACrC,OAAQ,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAE,CAAiB,CAAC,IAAI,KAAK,SAAS,CAA6B,IAAI,IAAI,CAAC;AAClH,CAAC;AAED,SAAgB,QAAQ,CAAC,KAAgC,EAAE,MAAc,EAAE,GAAW;IACpF,KAAK,IAAI,CAAC,GAAG,CAAC,GAAI,CAAC,EAAE;QAAE,IAAI,CAAC,KAAK,CAAC,GAAG,MAAM,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC;YAAE,OAAO,GAAG,MAAM,GAAG,GAAG,GAAG,CAAC,EAAE,CAAC;AACzF,CAAC;AAED,SAAgB,MAAM,CAAC,IAAU;IAC/B,MAAM,GAAG,GAAG,IAAI,GAAG,CAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC;IAC9C,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,EAAE,CAAC;QACjC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACd,KAAK,MAAM,KAAK,IAAI,CAAC,CAAC,QAAQ;YAAE,GAAG,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC;IACD,gDAAgD;IAChD,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;IACzB,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO;QAAE,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC;YAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACjF,oCAAoC;IACpC,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM;QAAE,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC;YAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAClH,OAAO,GAAG,CAAC;AACb,CAAC;AAED,kHAAkH;AAClH,SAAgB,WAAW,CAAC,IAAU;IACpC,MAAM,KAAK,GAAG,IAAI,GAAG,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC,EAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACzI,oDAAoD;IACpD,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC;QAAE,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ;YAAE,IAAI,CAAC,CAAC,IAAI,KAAK,MAAM;gBAAE,KAAK,MAAM,IAAI,IAAI,IAAA,eAAQ,EAAC,CAAC,CAAC,IAAI,CAAC;oBAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC1I,kHAAkH;IAClH,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC;QAAE,KAAK,MAAM,CAAC,IAAI,CAAC,CAAC,QAAQ;YAAE,IAAI,CAAC,CAAC,IAAI,KAAK,KAAK;gBAAE,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,CAAC,CAAC;oBAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzI,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC;IACzB,IAAI,IAAI,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;QACzB,MAAM,GAAG,GAAG,IAAI,CAAC,SAAmE,CAAC;QACrF,KAAK,MAAM,IAAI,IAAI,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,cAAc,CAAC;YAAE,IAAI,IAAI;gBAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACxI,+GAA+G;QAC/G,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,IAAI,CAA8B,EAAE,CAAC;YACjE,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC;gBAAE,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,GAAG,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;oBAAE,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAC/I,IAAI,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,QAAQ;gBAAE,KAAK,MAAM,IAAI,IAAI,IAAA,eAAQ,EAAC,IAAI,CAAC,SAAS,CAAC,CAAC;oBAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QACzG,CAAC;QACD,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,KAAK,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC;YAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChJ,kDAAkD;QAClD,IAAI,IAAI,CAAC,iBAAiB,EAAE,KAAK;YAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAC3E,oHAAoH;QACpH,KAAK,MAAM,IAAI,IAAI,IAAA,uBAAU,EAAC,IAAI,CAAC;YAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACvD,CAAC;IACD,iBAAiB;IACjB,KAAK,MAAM,IAAI,IAAI,IAAA,2BAAc,EAAC,IAAI,CAAC;QAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACzD,gFAAgF;IAChF,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACzB,MAAM,IAAI,GAAG,CAAC,KAA4B,EAAY,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;QACjJ,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC,OAAO,EAAE,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;YAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/M,IAAI,IAAI,CAAC,GAAG;YAAE,KAAK,MAAM,IAAI,IAAI,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC;gBAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC1E,yEAAyE;QACzE,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,YAAY,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;YAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAClN,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,0IAA0I;AAC1I,SAAgB,UAAU,CAAC,IAAU;IACnC,MAAM,IAAI,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAC/B,KAAK,MAAM,IAAI,IAAI,CAAC,GAAG,IAAI,CAAC;QAAE,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAAE,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IAC/F,OAAO,IAAI,CAAC;AACd,CAAC;AAED,0IAA0I;AAC1I,SAAgB,UAAU,CAAC,GAAsB;IAC/C,IAAI,GAAG,EAAE,IAAI,KAAK,UAAU;QAAE,OAAO,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,GAAG,CAAC,aAAa,IAAI,CAAC,GAAG,CAAC,aAAa,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;IACvG,KAAK,MAAM,IAAI,IAAI,GAAG,CAAC,KAAK,EAAE,GAAG,IAAI,EAAE,EAAE,CAAC;QACxC,IAAI,IAAI,CAAC,IAAI,KAAK,SAAS;YAAE,SAAS;QACtC,IAAI,CAAC;YACH,KAAK,CAAC,IAAI,CAAC,GAAG,IAAA,sBAAe,EAAC,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;QACnD,CAAC;QAAC,MAAM,CAAC;YACP,+DAA+D;QACjE,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,wMAAwM;AACxM,SAAgB,aAAa,CAAC,IAAa;IACzC,OAAO;QACL,GAAG,IAAI,GAAG,CAAC;YACT,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE;gBAC/B,kGAAkG;gBAClG,IAAI,KAAK,CAAC,KAAK;oBAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;gBACtC,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC;gBACjC,OAAO,CAAC,GAAG,aAAa,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;YAC/I,CAAC,CAAC;YACF,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;SAC5E,CAAC;KACH,CAAC;AACJ,CAAC;AAED,yLAAyL;AACzL,SAAgB,aAAa,CAAC,GAAgJ;IAC5K,MAAM,GAAG,GAAG,GAAG,CAAC,GAAG,IAAI,EAAE,CAAC;IAC1B,MAAM,IAAI,GAAG,CAAC,IAAsB,EAAE,EAAE;QACtC,IAAI,CAAC;YACH,OAAO,CAAC,GAAG,IAAA,sBAAe,EAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC;QAC3C,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC,CAAC;IACF,MAAM,KAAK,GAAG;QACZ,GAAG,CAAC,KAAK;QACT,GAAG,CAAC,QAAQ;QACZ,GAAG,CAAC,SAAS;QACb,GAAG,CAAC,KAAK;QACT,GAAG,CAAC,SAAS;QACb,GAAG,CAAC,KAAK;QACT,GAAG,CAAC,IAAI;QACR,GAAG,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QACjD,GAAG,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;QACpF,GAAG,CAAC,IAAI,EAAE,KAAK;QACf,GAAG,CAAC,IAAI,EAAE,KAAK;QACf,GAAG,CAAC,IAAI,EAAE,IAAI;QACd,GAAG,IAAA,qBAAc,EAAC,GAAG,CAAC,IAAI,CAAC;QAC3B,GAAG,CAAC,OAAO,EAAE,KAAK;QAClB,OAAO,GAAG,CAAC,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS;KAC3D,CAAC;IACF,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,8EAA8E;AAC9E,SAAgB,WAAW,CAAC,IAAU;IACpC,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAoB,EAAE,CAAE,CAAiB,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;AACjG,CAAC;AAED,mDAAmD;AACnD,SAAgB,SAAS,CAAC,IAAU,EAAE,EAAU;IAC9C,KAAK,MAAM,OAAO,IAAI,WAAW,CAAC,IAAI,CAAC,EAAE,CAAC;QACxC,MAAM,IAAI,GAAG,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAkB,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,OAAO,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC7F,IAAI,IAAI;YAAE,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;IACrC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,8FAA8F;AAC9F,SAAgB,YAAY,CAAC,IAAU,EAAE,OAAoB,EAAE,QAAuB,OAAE;IACtF,MAAM,GAAG,GAAG,OAAO,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC,eAAe,CAAC;IACzD,MAAM,GAAG,GAAG,SAAS,CAAC,IAAI,CAAC;SACxB,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC;SAChC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;IAC7C,OAAO,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC;AACvD,CAAC;AAED,uDAAuD;AACvD,SAAgB,QAAQ,CAAC,GAAY,EAAE,EAAiB;IACtD,IAAI,CAAC,EAAE;QAAE,OAAO,KAAK,CAAC;IACtB,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE;QAAE,OAAO,IAAI,CAAC;IAC/B,MAAM,IAAI,GAAG,CAAC,KAAmB,EAAW,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,UAAU,IAAI,CAAC,IAAI,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,QAAwB,CAAC,CAAC,CAAC,CAAC;IACpK,OAAO,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAC5B,CAAC;AAED,mIAAmI;AACnI,SAAgB,UAAU,CAAC,IAAe;IACxC,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;IACjC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC,EAAE,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,IAAI,EAAE,CAAC,EAAE,GAAG,IAAA,sBAAS,EAAC,IAAI,CAAC,CAAC,CAAC;AACjQ,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { cardLineFields, compileModifier, valuesIn } from '@fieldia/core';
2
2
  import { en } from './locales/en/index.mjs';
3
+ import { headFields, headParts, tabCountFields } from './head-parts.mjs';
3
4
  /** Every container that holds fields: steps, sections, tabs, and a page of sections or a sheet itself. */
4
5
  export function containers(page) {
5
6
  const found = [];
@@ -132,7 +133,13 @@ export function shownFields(page) {
132
133
  // The file the attachment beside the sheet shows.
133
134
  if (root.attachmentPreview?.field)
134
135
  shown.add(root.attachmentPreview.field);
136
+ // A record head's kind, number, "Updated by" and toggles (its parts' own fields are among the sheet's parts above).
137
+ for (const name of headFields(root))
138
+ shown.add(name);
135
139
  }
140
+ // A tab's count.
141
+ for (const name of tabCountFields(page))
142
+ shown.add(name);
136
143
  // A list names its fields in its columns, order, search, filters and groupings.
137
144
  if (root.type === 'list') {
138
145
  const read = (items) => items.flatMap((i) => ('any' in i ? read(i.any) : 'all' in i ? read(i.all) : [i.field]));
@@ -141,6 +148,9 @@ export function shownFields(page) {
141
148
  if (root.map)
142
149
  for (const name of listMapFields(root.map))
143
150
  shown.add(name);
151
+ // And in its cells' icons, its filter bar and the link its rows nest by.
152
+ for (const name of [...Object.values(root.cells ?? {}).flatMap((cell) => (cell.lead ? [cell.lead.field] : [])), ...(root.filterFields ?? []), ...(root.parentField ? [root.parentField] : [])])
153
+ shown.add(name);
144
154
  }
145
155
  return shown;
146
156
  }
@@ -247,6 +257,6 @@ export function tabHolds(tab, id) {
247
257
  /** A sheet's own parts outside its sections, each with an id: buttons, stat buttons, badges, alerts and their buttons, ribbons. */
248
258
  export function sheetParts(root) {
249
259
  const alerts = root.alerts ?? [];
250
- return [...(root.buttons ?? []), ...(root.statButtons ?? []), ...(root.badges ?? []), ...alerts, ...alerts.flatMap((a) => a.buttons ?? []), ...(root.ribbon ? [root.ribbon] : []), ...(root.ribbons ?? []), ...(root.toolbar?.menu ?? [])];
260
+ return [...(root.buttons ?? []), ...(root.statButtons ?? []), ...(root.badges ?? []), ...alerts, ...alerts.flatMap((a) => a.buttons ?? []), ...(root.ribbon ? [root.ribbon] : []), ...(root.ribbons ?? []), ...(root.toolbar?.menu ?? []), ...headParts(root)];
251
261
  }
252
262
  //# sourceMappingURL=page-tree.mjs.map