@fieldia/designer 0.20.0 → 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 (145) hide show
  1. package/package.json +4 -4
  2. package/src/lib/chrome.js +11 -0
  3. package/src/lib/chrome.js.map +1 -1
  4. package/src/lib/chrome.mjs +11 -0
  5. package/src/lib/chrome.mjs.map +1 -1
  6. package/src/lib/date-setting.d.mts +49 -0
  7. package/src/lib/date-setting.d.ts +49 -0
  8. package/src/lib/date-setting.js +125 -0
  9. package/src/lib/date-setting.js.map +1 -0
  10. package/src/lib/date-setting.mjs +122 -0
  11. package/src/lib/date-setting.mjs.map +1 -0
  12. package/src/lib/designer.d.mts +10 -1
  13. package/src/lib/designer.d.ts +10 -1
  14. package/src/lib/designer.js +13 -2
  15. package/src/lib/designer.js.map +1 -1
  16. package/src/lib/designer.mjs +13 -2
  17. package/src/lib/designer.mjs.map +1 -1
  18. package/src/lib/head-commands.d.mts +11 -1
  19. package/src/lib/head-commands.d.ts +11 -1
  20. package/src/lib/head-commands.js +33 -1
  21. package/src/lib/head-commands.js.map +1 -1
  22. package/src/lib/head-commands.mjs +30 -1
  23. package/src/lib/head-commands.mjs.map +1 -1
  24. package/src/lib/head-properties.js +19 -6
  25. package/src/lib/head-properties.js.map +1 -1
  26. package/src/lib/head-properties.mjs +19 -6
  27. package/src/lib/head-properties.mjs.map +1 -1
  28. package/src/lib/inline-settings.js +16 -10
  29. package/src/lib/inline-settings.js.map +1 -1
  30. package/src/lib/inline-settings.mjs +16 -10
  31. package/src/lib/inline-settings.mjs.map +1 -1
  32. package/src/lib/input-commands.js +3 -2
  33. package/src/lib/input-commands.js.map +1 -1
  34. package/src/lib/input-commands.mjs +3 -2
  35. package/src/lib/input-commands.mjs.map +1 -1
  36. package/src/lib/kind-settings-choices.js +16 -7
  37. package/src/lib/kind-settings-choices.js.map +1 -1
  38. package/src/lib/kind-settings-choices.mjs +16 -7
  39. package/src/lib/kind-settings-choices.mjs.map +1 -1
  40. package/src/lib/kind-settings-inputs.js +116 -58
  41. package/src/lib/kind-settings-inputs.js.map +1 -1
  42. package/src/lib/kind-settings-inputs.mjs +116 -58
  43. package/src/lib/kind-settings-inputs.mjs.map +1 -1
  44. package/src/lib/kind-settings-picker.js +16 -9
  45. package/src/lib/kind-settings-picker.js.map +1 -1
  46. package/src/lib/kind-settings-picker.mjs +16 -9
  47. package/src/lib/kind-settings-picker.mjs.map +1 -1
  48. package/src/lib/kind-settings-structures.js +28 -14
  49. package/src/lib/kind-settings-structures.js.map +1 -1
  50. package/src/lib/kind-settings-structures.mjs +29 -15
  51. package/src/lib/kind-settings-structures.mjs.map +1 -1
  52. package/src/lib/kind-settings.js +47 -43
  53. package/src/lib/kind-settings.js.map +1 -1
  54. package/src/lib/kind-settings.mjs +47 -43
  55. package/src/lib/kind-settings.mjs.map +1 -1
  56. package/src/lib/list-properties.js +100 -55
  57. package/src/lib/list-properties.js.map +1 -1
  58. package/src/lib/list-properties.mjs +100 -55
  59. package/src/lib/list-properties.mjs.map +1 -1
  60. package/src/lib/locales/ar/index.js +2 -1
  61. package/src/lib/locales/ar/index.js.map +1 -1
  62. package/src/lib/locales/ar/index.mjs +2 -1
  63. package/src/lib/locales/ar/index.mjs.map +1 -1
  64. package/src/lib/locales/ar/inputs.d.mts +2 -0
  65. package/src/lib/locales/ar/inputs.d.ts +2 -0
  66. package/src/lib/locales/ar/inputs.js +20 -0
  67. package/src/lib/locales/ar/inputs.js.map +1 -0
  68. package/src/lib/locales/ar/inputs.mjs +17 -0
  69. package/src/lib/locales/ar/inputs.mjs.map +1 -0
  70. package/src/lib/locales/en/index.d.mts +15 -0
  71. package/src/lib/locales/en/index.d.ts +15 -0
  72. package/src/lib/locales/en/index.js +2 -1
  73. package/src/lib/locales/en/index.js.map +1 -1
  74. package/src/lib/locales/en/index.mjs +2 -1
  75. package/src/lib/locales/en/index.mjs.map +1 -1
  76. package/src/lib/locales/en/inputs.d.mts +26 -0
  77. package/src/lib/locales/en/inputs.d.ts +26 -0
  78. package/src/lib/locales/en/inputs.js +30 -0
  79. package/src/lib/locales/en/inputs.js.map +1 -0
  80. package/src/lib/locales/en/inputs.mjs +27 -0
  81. package/src/lib/locales/en/inputs.mjs.map +1 -0
  82. package/src/lib/number-box.d.mts +66 -0
  83. package/src/lib/number-box.d.ts +66 -0
  84. package/src/lib/number-box.js +153 -0
  85. package/src/lib/number-box.js.map +1 -0
  86. package/src/lib/number-box.mjs +149 -0
  87. package/src/lib/number-box.mjs.map +1 -0
  88. package/src/lib/page-json.d.mts +3 -1
  89. package/src/lib/page-json.d.ts +3 -1
  90. package/src/lib/page-json.js +5 -3
  91. package/src/lib/page-json.js.map +1 -1
  92. package/src/lib/page-json.mjs +5 -3
  93. package/src/lib/page-json.mjs.map +1 -1
  94. package/src/lib/panel-block.js +16 -5
  95. package/src/lib/panel-block.js.map +1 -1
  96. package/src/lib/panel-block.mjs +16 -5
  97. package/src/lib/panel-block.mjs.map +1 -1
  98. package/src/lib/panel-layout.js +20 -15
  99. package/src/lib/panel-layout.js.map +1 -1
  100. package/src/lib/panel-layout.mjs +20 -15
  101. package/src/lib/panel-layout.mjs.map +1 -1
  102. package/src/lib/panel-look.js +21 -14
  103. package/src/lib/panel-look.js.map +1 -1
  104. package/src/lib/panel-look.mjs +21 -14
  105. package/src/lib/panel-look.mjs.map +1 -1
  106. package/src/lib/panel-map.js +53 -20
  107. package/src/lib/panel-map.js.map +1 -1
  108. package/src/lib/panel-map.mjs +53 -20
  109. package/src/lib/panel-map.mjs.map +1 -1
  110. package/src/lib/rules-answers.d.mts +1 -1
  111. package/src/lib/rules-answers.d.ts +1 -1
  112. package/src/lib/rules-answers.js +45 -21
  113. package/src/lib/rules-answers.js.map +1 -1
  114. package/src/lib/rules-answers.mjs +45 -21
  115. package/src/lib/rules-answers.mjs.map +1 -1
  116. package/src/lib/rules-formula-box.d.mts +7 -3
  117. package/src/lib/rules-formula-box.d.ts +7 -3
  118. package/src/lib/rules-formula-box.js +26 -6
  119. package/src/lib/rules-formula-box.js.map +1 -1
  120. package/src/lib/rules-formula-box.mjs +26 -6
  121. package/src/lib/rules-formula-box.mjs.map +1 -1
  122. package/src/lib/rules-formula.js +7 -5
  123. package/src/lib/rules-formula.js.map +1 -1
  124. package/src/lib/rules-formula.mjs +8 -6
  125. package/src/lib/rules-formula.mjs.map +1 -1
  126. package/src/lib/rules-worked-out.js +66 -12
  127. package/src/lib/rules-worked-out.js.map +1 -1
  128. package/src/lib/rules-worked-out.mjs +66 -12
  129. package/src/lib/rules-worked-out.mjs.map +1 -1
  130. package/src/lib/setting-refusals.d.mts +3 -0
  131. package/src/lib/setting-refusals.d.ts +3 -0
  132. package/src/lib/setting-refusals.js +25 -0
  133. package/src/lib/setting-refusals.js.map +1 -0
  134. package/src/lib/setting-refusals.mjs +22 -0
  135. package/src/lib/setting-refusals.mjs.map +1 -0
  136. package/src/lib/table-panel.js +16 -5
  137. package/src/lib/table-panel.js.map +1 -1
  138. package/src/lib/table-panel.mjs +16 -5
  139. package/src/lib/table-panel.mjs.map +1 -1
  140. package/src/lib/work-text.d.mts +10 -2
  141. package/src/lib/work-text.d.ts +10 -2
  142. package/src/lib/work-text.js +12 -23
  143. package/src/lib/work-text.js.map +1 -1
  144. package/src/lib/work-text.mjs +12 -21
  145. package/src/lib/work-text.mjs.map +1 -1
@@ -5,17 +5,20 @@ import { ADDRESS_PARTS, USUAL_ADDRESS } from './kind-commands.mjs';
5
5
  import { choiceSettings } from './kind-settings-choices.mjs';
6
6
  import { LARGEST_PICTURE } from './choice-commands.mjs';
7
7
  import { pictureForPage } from './picture-upload.mjs';
8
+ import { settingNumber } from './number-box.mjs';
8
9
  /** Kinds whose options may be shown in an order of each form's own. */
9
10
  const SHUFFLED = new Set(['multiple-choice', 'checkboxes', 'dropdown', 'image-choice', 'ranking']);
10
11
  /** Kinds whose options may be worth points: a matrix's options are its columns. */
11
12
  const SCORED = new Set(['multiple-choice', 'checkboxes', 'dropdown', 'image-choice', 'matrix']);
12
13
  const optionsOf = (field) => (field.type === 'selection' ? field.options : field.type === 'matrix' ? field.columns : []);
13
- const numberOrNull = (text) => (text.trim() === '' || !Number.isFinite(Number(text)) ? null : Number(text));
14
+ /** A setting's number as the page holds it, or null. */
15
+ const held = (value) => (typeof value === 'number' && Number.isFinite(value) ? value : null);
14
16
  export function kindSettings(el, designer, id, kind) {
15
17
  const w = designer.words.questions;
16
18
  const focused = (node) => node.ownerDocument.activeElement === node;
17
19
  const word = (text, control) => el('label', { class: 'fd-inline-setting' }, el('span', {}, text), control);
18
- const numberBox = (label, extra = {}) => el('input', { type: 'number', class: 'fd-inline-input fd-inline-number', 'aria-label': label, inputmode: 'decimal', ...extra });
20
+ /** The designer's number box: Arabic digits and a decimal comma read, kept as it is left, what does not fit said. */
21
+ const numberBox = (options) => settingNumber(el, designer, { ...options, attrs: { class: 'fd-inline-input fd-inline-number', ...(options.placeholder ? { placeholder: options.placeholder } : {}), ...options.attrs } });
19
22
  const textBox = (label, placeholder) => el('input', { class: 'fd-inline-input fd-inline-words', 'aria-label': label, placeholder, autocomplete: 'off' });
20
23
  const toggle = (label, onClick) => {
21
24
  const button = el('button', { type: 'button', class: 'fd-switch', role: 'switch', 'aria-checked': 'false', 'aria-label': label });
@@ -25,32 +28,28 @@ export function kindSettings(el, designer, id, kind) {
25
28
  /** A setting of the question's widget, from its node's options. */
26
29
  const optionOf = (node, key) => node.options?.[key];
27
30
  function slider() {
28
- const from = numberBox(w.from, { step: 'any' });
29
- const to = numberBox(w.toLabel, { step: 'any' });
30
- const step = numberBox(w.step, { min: '0', step: 'any' });
31
- // Saved once a number is typed and left, so a range half typed is not refused.
32
- const range = () => {
33
- const min = numberOrNull(from.value);
34
- const max = numberOrNull(to.value);
35
- if (min !== null && max !== null)
36
- designer.setLimits(id, { min, max });
37
- };
38
- from.addEventListener('change', range);
39
- to.addEventListener('change', range);
31
+ // Its ends as drawn — 0 to 100 unless said — each kept with the other once typed and left; its step more than 0, 1 unless said.
32
+ let [least, most, by] = [0, 100, 1];
33
+ const fromOptions = { label: w.from, saved: () => least, commit: (n) => designer.setLimits(id, { min: n, max: most }) };
34
+ const toOptions = { label: w.toLabel, saved: () => most, commit: (n) => designer.setLimits(id, { min: least, max: n }) };
35
+ const from = numberBox(fromOptions);
36
+ const to = numberBox(toOptions);
37
+ const stepping = { label: w.step, above: 0, optional: true, saved: () => by, commit: (n) => designer.setStep(id, n) };
40
38
  // A step with decimals makes the field a decimal, so the values it reaches are ones the field takes.
41
- step.addEventListener('change', () => designer.setStep(id, numberOrNull(step.value)));
39
+ const step = numberBox(stepping);
42
40
  return {
43
- element: el('div', { class: 'fd-inline-row' }, word(w.from, from), word(w.to, to), word(w.step, step)),
41
+ element: el('div', { class: 'fd-inline-row' }, word(w.from, from.input), word(w.to, to.input), word(w.step, step.input)),
44
42
  standsIn: false,
45
43
  refresh(page, node) {
46
44
  const def = page.fields[node.field];
47
- if (!focused(from))
48
- from.value = String('min' in def && def.min !== undefined ? def.min : 0);
49
- if (!focused(to))
50
- to.value = String('max' in def && def.max !== undefined ? def.max : 100);
51
- const n = optionOf(node, 'step');
52
- if (!focused(step))
53
- step.value = String(typeof n === 'number' ? n : 1);
45
+ // A whole-number field's ends are whole numbers.
46
+ fromOptions.integer = toOptions.integer = def.type === 'integer';
47
+ least = 'min' in def && typeof def.min === 'number' ? def.min : 0;
48
+ most = 'max' in def && typeof def.max === 'number' ? def.max : 100;
49
+ by = held(optionOf(node, 'step')) ?? 1;
50
+ from.refresh();
51
+ to.refresh();
52
+ step.refresh();
54
53
  },
55
54
  };
56
55
  }
@@ -218,26 +217,25 @@ export function kindSettings(el, designer, id, kind) {
218
217
  const addField = columns.element.querySelector('[data-add-column]');
219
218
  if (addField)
220
219
  addField.textContent = w.addField;
221
- const least = numberBox(w.atLeast, { min: '0', step: '1' });
222
- const most = numberBox(w.atMost, { min: '1', step: '1' });
220
+ // Whole numbers, at least 0 and at most 1 or more; emptied (or at least 0), none.
221
+ const counts = { min: null, max: null };
222
+ const count = (label, key, min) => numberBox({ label, integer: true, min, optional: true, saved: () => counts[key], commit: (n) => designer.setWidgetOptions(id, { [key]: n === 0 ? null : n }) });
223
+ const least = count(w.atLeast, 'min', 0);
224
+ const most = count(w.atMost, 'max', 1);
223
225
  const title = textBox(w.cardTitle, w.entry);
224
226
  const button = textBox(w.buttonWords, w.addAnother);
225
- const count = (input, key) => input.addEventListener('change', () => {
226
- const n = numberOrNull(input.value);
227
- designer.setWidgetOptions(id, { [key]: n !== null && Number.isInteger(n) && n > 0 ? n : null });
228
- });
229
- count(least, 'min');
230
- count(most, 'max');
231
227
  title.addEventListener('input', () => designer.setWidgetOptions(id, { itemLabel: title.value }));
232
228
  button.addEventListener('input', () => designer.setWidgetOptions(id, { addLabel: button.value }));
233
229
  return {
234
- element: el('div', { class: 'fd-kind-block' }, columns.element, el('div', { class: 'fd-inline-row' }, word(w.atLeast, least), word(w.atMost, most)), el('div', { class: 'fd-inline-row' }, word(w.cardTitle, title), word(w.buttonWords, button))),
230
+ element: el('div', { class: 'fd-kind-block' }, columns.element, el('div', { class: 'fd-inline-row' }, word(w.atLeast, least.input), word(w.atMost, most.input)), el('div', { class: 'fd-inline-row' }, word(w.cardTitle, title), word(w.buttonWords, button))),
235
231
  standsIn: true,
236
232
  refresh(page, node) {
237
233
  columns.update(page.fields[node.field]);
238
234
  const text = (input, value) => !focused(input) && (input.value = value === undefined || value === null ? '' : String(value));
239
- text(least, optionOf(node, 'min'));
240
- text(most, optionOf(node, 'max'));
235
+ counts.min = held(optionOf(node, 'min'));
236
+ counts.max = held(optionOf(node, 'max'));
237
+ least.refresh();
238
+ most.refresh();
241
239
  text(title, optionOf(node, 'itemLabel'));
242
240
  text(button, optionOf(node, 'addLabel'));
243
241
  },
@@ -262,14 +260,17 @@ export function kindSettings(el, designer, id, kind) {
262
260
  });
263
261
  const list = el('ul', { class: 'fd-kind-points' });
264
262
  const block = el('div', { class: 'fd-kind-block' }, el('span', { class: 'fd-prop-name' }, w.points), list);
263
+ /** Each option's points box, kept as it is left: emptying one, or half typing it, never takes the quiz away under the keys. */
265
264
  const rows = [];
266
265
  return {
267
266
  element: el('div', { class: 'fd-kind-points-box' }, start, block),
268
267
  standsIn: false,
269
268
  refresh(page, node) {
270
269
  const quiz = Object.values(page.fields).some((f) => optionsOf(f).some((o) => o.score !== undefined));
271
- start.hidden = quiz;
272
- block.hidden = !quiz;
270
+ // While one of its boxes is typed in, the block stays, so the box and what is typed in it do too.
271
+ const typing = list.contains(list.ownerDocument.activeElement);
272
+ start.hidden = quiz || typing;
273
+ block.hidden = !quiz && !typing;
273
274
  const options = optionsOf(page.fields[node.field]);
274
275
  while (rows.length > options.length) {
275
276
  rows.pop();
@@ -278,16 +279,19 @@ export function kindSettings(el, designer, id, kind) {
278
279
  while (rows.length < options.length) {
279
280
  const index = rows.length;
280
281
  const name = el('span', { class: 'fd-kind-points-name' });
281
- const input = numberBox(w.points, { step: 'any', placeholder: '0' });
282
- input.addEventListener('input', () => designer.setOptionDetails(id, index, { score: numberOrNull(input.value) }));
283
- list.append(el('li', { class: 'fd-kind-points-row' }, name, input));
284
- rows.push({ name, input });
282
+ const row = { name, score: null };
283
+ const options = { label: w.points, optional: true, placeholder: '0', saved: () => row.score, commit: (n) => designer.setOptionDetails(id, index, { score: n }) };
284
+ const box = numberBox(options);
285
+ Object.assign(row, { input: box.input, options, refresh: box.refresh });
286
+ list.append(el('li', { class: 'fd-kind-points-row' }, name, box.input));
287
+ rows.push(row);
285
288
  }
286
289
  options.forEach((option, i) => {
287
290
  rows[i].name.textContent = option.label;
288
- rows[i].input.setAttribute('aria-label', w.pointsFor(option.label));
289
- if (!focused(rows[i].input))
290
- rows[i].input.value = option.score === undefined ? '' : String(option.score);
291
+ rows[i].options.label = w.pointsFor(option.label);
292
+ rows[i].input.setAttribute('aria-label', rows[i].options.label);
293
+ rows[i].score = held(option.score);
294
+ rows[i].refresh();
291
295
  });
292
296
  },
293
297
  };
@@ -1 +1 @@
1
- {"version":3,"file":"kind-settings.mjs","sourceRoot":"","sources":["../../../../../libs/designer/src/lib/kind-settings.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kind-settings.mjs","sourceRoot":"","sources":["../../../../../libs/designer/src/lib/kind-settings.ts"],"names":[],"mappings":"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"}
@@ -8,6 +8,7 @@ const kinds_1 = require("./kinds");
8
8
  const list_commands_1 = require("./list-commands");
9
9
  const menu_1 = require("./menu");
10
10
  const steps_panel_1 = require("./steps-panel");
11
+ const number_box_1 = require("./number-box");
11
12
  /**
12
13
  * The panels of a list page: the list's own — the rows a page holds, its
13
14
  * order, where the search looks, its named filters and its groupings — a
@@ -95,7 +96,12 @@ function filterRow(el, designer, id) {
95
96
  const field = fieldOf(current.field);
96
97
  save({ op: test.value, ...(current.value === undefined && field ? { value: firstValue(field) } : {}) });
97
98
  });
99
+ /** The value the filter holds now, as the page last drew it. */
100
+ let heldValue;
101
+ /** Its number box, drawn again when the page changes. */
102
+ let numberShown = null;
98
103
  function valueControl(field, condition) {
104
+ numberShown = null;
99
105
  if (field.type === 'selection' || field.type === 'boolean') {
100
106
  const options = field.type === 'boolean' ? [['true', w.yes], ['false', w.no]] : field.options.map((o) => [String(o.value), o.label]);
101
107
  const box = select(el, w.filterValue, options);
@@ -106,15 +112,21 @@ function filterRow(el, designer, id) {
106
112
  });
107
113
  return box;
108
114
  }
109
- const numeric = ['integer', 'float', 'monetary'].includes(field.type);
110
- const kind = numeric ? 'number' : field.type === 'date' || field.type === 'datetime' ? 'date' : 'text';
111
- const box = el('input', { class: 'fd-input', type: kind, 'aria-label': w.filterValue });
115
+ if (['integer', 'float', 'monetary'].includes(field.type)) {
116
+ // A number read as every box reads one, kept as it is left; a whole number for a whole-number field.
117
+ const number = (0, number_box_1.settingNumber)(el, designer, {
118
+ label: w.filterValue,
119
+ integer: field.type === 'integer',
120
+ saved: () => (typeof heldValue === 'number' ? heldValue : null),
121
+ commit: (n) => save({ value: n }),
122
+ });
123
+ numberShown = number;
124
+ number.refresh();
125
+ return number.input;
126
+ }
127
+ const box = el('input', { class: 'fd-input', type: field.type === 'date' || field.type === 'datetime' ? 'date' : 'text', 'aria-label': w.filterValue });
112
128
  box.value = String(condition.value ?? '');
113
- box.addEventListener('input', () => {
114
- if (numeric && box.value.trim() === '')
115
- return;
116
- save({ value: numeric ? Number(box.value) : box.value });
117
- });
129
+ box.addEventListener('input', () => save({ value: box.value }));
118
130
  return box;
119
131
  }
120
132
  return {
@@ -135,11 +147,13 @@ function filterRow(el, designer, id) {
135
147
  which.value = single.field;
136
148
  test.replaceChildren(...testsFor(field, designer.words).map(([op, words]) => el('option', { value: op }, words)));
137
149
  test.value = single.op;
150
+ heldValue = single.value;
138
151
  const key = `${single.field}:${single.op}`;
139
152
  if (key !== valueKey) {
140
153
  valueKey = key;
141
154
  valueBox.replaceChildren(...(single.op === 'set' || single.op === 'notset' ? [] : [valueControl(field, single)]));
142
155
  }
156
+ numberShown?.refresh();
143
157
  },
144
158
  focus() {
145
159
  name.focus();
@@ -191,7 +205,23 @@ function mapSection(el, designer) {
191
205
  // How the map sits in its page: its height, the gestures it takes, the closest it zooms to show its records.
192
206
  const height = el('select', { class: 'fd-input fd-select', 'aria-label': w.mapHeight });
193
207
  const allGestures = el('input', { type: 'checkbox' });
194
- const fitZoom = el('input', { class: 'fd-input', type: 'number', min: '1', max: '22', placeholder: '16', 'aria-label': w.fitZoom });
208
+ // A whole number, 1 to 22, refused with its range rather than brought into it in silence; emptied, the usual 16.
209
+ let zoomHeld = null;
210
+ const fitZoom = (0, number_box_1.settingNumber)(el, designer, {
211
+ label: w.fitZoom,
212
+ attrs: { class: 'fd-input', placeholder: '16' },
213
+ integer: true,
214
+ min: 1,
215
+ max: 22,
216
+ optional: true,
217
+ saved: () => zoomHeld,
218
+ commit: (n) => change((map) => {
219
+ if (n === null)
220
+ delete map.fitZoom;
221
+ else
222
+ map.fitZoom = n;
223
+ }),
224
+ });
195
225
  const rows = {
196
226
  lat: prop(el, w.latitude, lat),
197
227
  lng: prop(el, w.longitude, lng),
@@ -204,7 +234,7 @@ function mapSection(el, designer) {
204
234
  areaField: prop(el, w.areaField, areaField),
205
235
  areas: prop(el, w.areas, areas),
206
236
  };
207
- const details = el('div', { class: 'fd-props' }, prop(el, w.where, where), rows.lat, rows.lng, prop(el, w.pinShows, label), prop(el, w.pinLook, look), rows.photo, rows.icon, rows.iconFrom, rows.turn, rows.home, prop(el, w.cardTitle, title), prop(el, w.cardPicture, picture), el('div', { class: 'fd-prop' }, el('span', { class: 'fd-prop-name' }, w.cardShows), cardFields, addToCard), el('label', { class: 'fd-q-required' }, cardLabels, el('span', {}, w.cardLabels)), el('label', { class: 'fd-q-required' }, cardLead, el('span', {}, w.cardLead)), prop(el, w.cardLink, cardLink), el('label', { class: 'fd-q-required' }, cardChoose, el('span', {}, w.cardChoose)), prop(el, w.opensAs, opens), el('label', { class: 'fd-q-required' }, bubbles, el('span', {}, w.bubbles)), el('div', { class: 'fd-prop' }, el('span', { class: 'fd-prop-name' }, w.mapTools), tools), el('label', { class: 'fd-q-required' }, heat, el('span', {}, w.heat)), rows.weight, rows.areas, rows.areaField, areaWhy, prop(el, w.mapHeight, height), el('label', { class: 'fd-q-required' }, allGestures, el('span', {}, w.allGestures)), prop(el, w.fitZoom, fitZoom), el('p', { class: 'fd-properties-hint' }, w.mapNote));
237
+ const details = el('div', { class: 'fd-props' }, prop(el, w.where, where), rows.lat, rows.lng, prop(el, w.pinShows, label), prop(el, w.pinLook, look), rows.photo, rows.icon, rows.iconFrom, rows.turn, rows.home, prop(el, w.cardTitle, title), prop(el, w.cardPicture, picture), el('div', { class: 'fd-prop' }, el('span', { class: 'fd-prop-name' }, w.cardShows), cardFields, addToCard), el('label', { class: 'fd-q-required' }, cardLabels, el('span', {}, w.cardLabels)), el('label', { class: 'fd-q-required' }, cardLead, el('span', {}, w.cardLead)), prop(el, w.cardLink, cardLink), el('label', { class: 'fd-q-required' }, cardChoose, el('span', {}, w.cardChoose)), prop(el, w.opensAs, opens), el('label', { class: 'fd-q-required' }, bubbles, el('span', {}, w.bubbles)), el('div', { class: 'fd-prop' }, el('span', { class: 'fd-prop-name' }, w.mapTools), tools), el('label', { class: 'fd-q-required' }, heat, el('span', {}, w.heat)), rows.weight, rows.areas, rows.areaField, areaWhy, prop(el, w.mapHeight, height), el('label', { class: 'fd-q-required' }, allGestures, el('span', {}, w.allGestures)), prop(el, w.fitZoom, fitZoom.input), el('p', { class: 'fd-properties-hint' }, w.mapNote));
208
238
  const element = el('div', { class: 'fd-prop', 'data-part': 'map' }, el('span', { class: 'fd-prop-name' }, w.map), onRow, noPlace, details);
209
239
  const fieldsOf = (page, kinds) => everyField(page, designer).filter(({ field }) => kinds(field));
210
240
  const fill = (box, choices, none) => box.replaceChildren(...(none === undefined ? [] : [el('option', { value: '' }, none)]), ...choices.map(({ name, field }) => el('option', { value: name }, field.label)));
@@ -237,7 +267,7 @@ function mapSection(el, designer) {
237
267
  delete map.pin;
238
268
  if (card && !Object.keys(card).length)
239
269
  delete map.card;
240
- designer.setListOptions({ map });
270
+ return designer.setListOptions({ map });
241
271
  };
242
272
  const pinOf = (map) => (map.pin ??= {});
243
273
  /** Where a new map puts its records: the first point, or the two numbers named for latitude and longitude. */
@@ -335,13 +365,6 @@ function mapSection(el, designer) {
335
365
  else
336
366
  delete map.gestures;
337
367
  }));
338
- fitZoom.addEventListener('change', () => change((map) => {
339
- const zoom = Math.round(Number(fitZoom.value));
340
- if (fitZoom.value.trim() === '' || !Number.isFinite(zoom))
341
- delete map.fitZoom;
342
- else
343
- map.fitZoom = Math.min(22, Math.max(1, zoom));
344
- }));
345
368
  addToCard.addEventListener('click', () => {
346
369
  const page = designer.getPage();
347
370
  const lines = current()?.card?.fields ?? [];
@@ -437,18 +460,24 @@ function mapSection(el, designer) {
437
460
  height.replaceChildren(...heights.map(([value, text]) => el('option', { value }, text)));
438
461
  height.value = own;
439
462
  allGestures.checked = map.gestures === 'all';
440
- if (!focused(fitZoom))
441
- fitZoom.value = map.fitZoom === undefined ? '' : String(map.fitZoom);
463
+ zoomHeld = map.fitZoom ?? null;
464
+ fitZoom.refresh();
442
465
  },
443
466
  };
444
467
  }
445
468
  // ---- the list --------------------------------------------------------------------------------
446
469
  function listProperties(el, designer) {
447
470
  const w = designer.words.list;
448
- const size = el('input', { class: 'fd-input', type: 'number', min: '1', max: '500', placeholder: '40', 'aria-label': w.rowsOnPage });
449
- size.addEventListener('input', () => {
450
- if (size.value.trim() !== '')
451
- designer.setListOptions({ pageSize: Number(size.value) });
471
+ // A whole number, 1 to 500, kept as it is left: never the 60 that "600" passes on its way.
472
+ let pageSize = 40;
473
+ const size = (0, number_box_1.settingNumber)(el, designer, {
474
+ label: w.rowsOnPage,
475
+ attrs: { class: 'fd-input', placeholder: '40' },
476
+ integer: true,
477
+ min: 1,
478
+ max: 500,
479
+ saved: () => pageSize,
480
+ commit: (n) => n !== null && designer.setListOptions({ pageSize: n }),
452
481
  });
453
482
  const sortBy = el('select', { class: 'fd-input fd-select', 'aria-label': w.sortedBy });
454
483
  const direction = select(el, w.direction, [['asc', w.ascending], ['desc', w.descending]]);
@@ -503,13 +532,13 @@ function listProperties(el, designer) {
503
532
  const parentWhy = el('p', { class: 'fd-properties-hint', hidden: '' }, w.noParentField);
504
533
  const parentRow = el('label', { class: 'fd-prop', 'data-part': 'parent' }, el('span', { class: 'fd-prop-name' }, w.parentField), parent, parentWhy);
505
534
  const onMap = mapSection(el, designer);
506
- const element = el('div', { class: 'fd-props' }, prop(el, w.rowsOnPage, size), prop(el, w.sortedBy, sortBy), directionRow, chooseRow, sortsRow, prop(el, w.searchWay, searchWay), filterFieldsRow, parentRow, el('div', { class: 'fd-prop' }, el('span', { class: 'fd-prop-name' }, w.searchLooksIn), searchBox, el('p', { class: 'fd-properties-hint' }, w.noneTicked)), el('div', { class: 'fd-prop fd-prop-filters', 'data-part': 'filters' }, el('span', { class: 'fd-prop-name' }, w.filters), filtersBox, addFilter), el('div', { class: 'fd-prop' }, el('span', { class: 'fd-prop-name' }, w.groupBy), groupsBox, addGroup), onMap.element, el('p', { class: 'fd-properties-hint' }, w.rowOpens));
535
+ const element = el('div', { class: 'fd-props' }, prop(el, w.rowsOnPage, size.input), prop(el, w.sortedBy, sortBy), directionRow, chooseRow, sortsRow, prop(el, w.searchWay, searchWay), filterFieldsRow, parentRow, el('div', { class: 'fd-prop' }, el('span', { class: 'fd-prop-name' }, w.searchLooksIn), searchBox, el('p', { class: 'fd-properties-hint' }, w.noneTicked)), el('div', { class: 'fd-prop fd-prop-filters', 'data-part': 'filters' }, el('span', { class: 'fd-prop-name' }, w.filters), filtersBox, addFilter), el('div', { class: 'fd-prop' }, el('span', { class: 'fd-prop-name' }, w.groupBy), groupsBox, addGroup), onMap.element, el('p', { class: 'fd-properties-hint' }, w.rowOpens));
507
536
  return {
508
537
  element,
509
538
  update(page) {
510
539
  const list = listOf(page);
511
- if (!focused(size))
512
- size.value = list.pageSize === undefined ? '' : String(list.pageSize);
540
+ pageSize = list.pageSize ?? 40;
541
+ size.refresh();
513
542
  const sortable = everyField(page, designer).filter(({ field }) => !UNSORTABLE.has(field.type));
514
543
  sortBy.replaceChildren(el('option', { value: '' }, w.appOrder), ...sortable.map(({ name, field }) => el('option', { value: name }, field.label)));
515
544
  const order = list.sort?.[0];
@@ -655,40 +684,59 @@ function cellSettings(el, designer, name) {
655
684
  const leadLooks = el('div', { class: 'fd-list-cell-looks' });
656
685
  const leadRow = el('div', { class: 'fd-prop', 'data-part': 'lead' }, el('span', { class: 'fd-prop-name' }, w.leadFrom), lead, leadLooks);
657
686
  // Its width, in characters of its words or in pixels for the whole column: a number and its unit.
658
- const width = el('input', { class: 'fd-input', type: 'number', min: '1', max: '200', 'aria-label': w.cellWidth });
687
+ // A whole number: 1 to 200 characters, or 8 to 4000 pixels; kept as it is left, refused with its range; emptied, as its words need.
659
688
  const unit = select(el, w.cellWidthUnit, [['ch', w.cellWidthUnits.characters], ['px', w.cellWidthUnits.pixels]]);
660
- const saveWidth = () => {
661
- const value = width.value.trim();
662
- if (value === '')
663
- return void save({ ...cellNow(), width: undefined });
664
- const next = unit.value === 'px' ? `${Number(value)}px` : Number(value);
665
- if ((0, list_commands_1.widthIsGood)(next))
666
- save({ ...cellNow(), width: next });
689
+ const widthIn = (n) => (unit.value === 'px' ? `${n}px` : n);
690
+ const sizing = {
691
+ label: w.cellWidth,
692
+ integer: true,
693
+ min: 1,
694
+ max: 200,
695
+ optional: true,
696
+ saved: () => {
697
+ const now = cellNow().width;
698
+ return now === undefined ? null : Number.parseInt(String(now), 10);
699
+ },
700
+ commit: (n) => save({ ...cellNow(), width: n === null ? undefined : widthIn(n) }),
701
+ };
702
+ const width = (0, number_box_1.settingNumber)(el, designer, sizing);
703
+ const unitRange = () => {
704
+ sizing.min = unit.value === 'px' ? 8 : 1;
705
+ sizing.max = unit.value === 'px' ? 4000 : 200;
667
706
  };
668
- width.addEventListener('input', saveWidth);
669
707
  unit.addEventListener('change', () => {
670
- width.max = unit.value === 'px' ? '4000' : '200';
671
- width.min = unit.value === 'px' ? '8' : '1';
672
- saveWidth();
708
+ unitRange();
709
+ // The same number in the other unit, when it is a width in that one too.
710
+ const n = sizing.saved();
711
+ if (typeof n === 'number' && (0, list_commands_1.widthIsGood)(widthIn(n)))
712
+ save({ ...cellNow(), width: widthIn(n) });
673
713
  });
674
- const widthRow = el('div', { class: 'fd-prop', 'data-part': 'width' }, el('span', { class: 'fd-prop-name' }, w.cellWidth), el('div', { class: 'fd-list-width' }, width, unit), el('p', { class: 'fd-properties-hint' }, w.cellWidthHint));
714
+ const widthRow = el('div', { class: 'fd-prop', 'data-part': 'width' }, el('span', { class: 'fd-prop-name' }, w.cellWidth), el('div', { class: 'fd-list-width' }, width.input, unit), el('p', { class: 'fd-properties-hint' }, w.cellWidthHint));
675
715
  const side = select(el, w.cellSide, [['', w.cellSides.auto], ['start', w.cellSides.start], ['end', w.cellSides.end]]);
676
716
  side.addEventListener('change', () => save({ ...cellNow(), align: (side.value || undefined) }));
677
717
  // Its header's rule: at its end, none, or set in from its end by some pixels.
678
718
  const rule = select(el, w.cellRule, [['', w.cellRules.end], ['none', w.cellRules.none], ['in', w.cellRules.in]]);
679
- const ruleIn = el('input', { class: 'fd-input', type: 'number', min: '0', max: '400', 'aria-label': w.cellRuleIn });
680
- const saveRule = () => {
719
+ // Pixels in from the column's end, a whole number 0 to 400, kept as it is left: letters never become 0px.
720
+ const ruleNow = () => {
721
+ const now = cellNow().rule;
722
+ return typeof now === 'string' ? Number.parseInt(now, 10) : null;
723
+ };
724
+ const ruleIn = (0, number_box_1.settingNumber)(el, designer, {
725
+ label: w.cellRuleIn,
726
+ integer: true,
727
+ min: 0,
728
+ max: 400,
729
+ saved: ruleNow,
730
+ commit: (n) => n !== null && (0, list_commands_1.ruleIsGood)(`${n}px`) && save({ ...cellNow(), rule: `${n}px` }),
731
+ });
732
+ rule.addEventListener('change', () => {
681
733
  if (rule.value === 'none')
682
734
  return void save({ ...cellNow(), rule: false });
683
735
  if (rule.value === '')
684
736
  return void save({ ...cellNow(), rule: undefined });
685
- const next = `${Number(ruleIn.value.trim() || '0')}px`;
686
- if ((0, list_commands_1.ruleIsGood)(next))
687
- save({ ...cellNow(), rule: next });
688
- };
689
- rule.addEventListener('change', saveRule);
690
- ruleIn.addEventListener('input', saveRule);
691
- const ruleInRow = prop(el, w.cellRuleIn, ruleIn);
737
+ save({ ...cellNow(), rule: `${ruleNow() ?? 0}px` });
738
+ });
739
+ const ruleInRow = prop(el, w.cellRuleIn, ruleIn.input);
692
740
  const ruleRow = el('div', { class: 'fd-prop', 'data-part': 'rule' }, el('span', { class: 'fd-prop-name' }, w.cellRule), rule, el('p', { class: 'fd-properties-hint' }, w.cellRuleHint));
693
741
  /** A value's colour, and its icon for a lead: a row for each option of a choice. */
694
742
  const optionRows = (field, row) => field?.type === 'selection' ? field.options.map((option) => el('div', { class: 'fd-list-cell-look' }, el('span', { class: 'fd-list-cell-look-name' }, option.label), ...row(String(option.value), option.label))) : [];
@@ -735,17 +783,14 @@ function cellSettings(el, designer, name) {
735
783
  return [icon, colour];
736
784
  }));
737
785
  const inPixels = typeof cell.width === 'string';
738
- if (!focused(width))
739
- width.value = cell.width === undefined ? '' : String(Number.parseInt(String(cell.width), 10));
740
786
  if (!focused(unit) && cell.width !== undefined)
741
787
  unit.value = inPixels ? 'px' : 'ch';
742
- width.max = unit.value === 'px' ? '4000' : '200';
743
- width.min = unit.value === 'px' ? '8' : '1';
788
+ unitRange();
789
+ width.refresh();
744
790
  side.value = cell.align ?? '';
745
791
  if (!focused(rule))
746
792
  rule.value = cell.rule === false ? 'none' : cell.rule ? 'in' : '';
747
- if (!focused(ruleIn) && typeof cell.rule === 'string')
748
- ruleIn.value = String(Number.parseInt(cell.rule, 10));
793
+ ruleIn.refresh();
749
794
  ruleInRow.hidden = rule.value !== 'in';
750
795
  },
751
796
  };