@fieldia/viewer 0.19.1 → 0.20.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 (158) hide show
  1. package/README.md +18 -0
  2. package/bundle/fieldia.ar.js +2 -2
  3. package/bundle/fieldia.ar.js.map +2 -2
  4. package/bundle/fieldia.choice.js +5 -0
  5. package/bundle/fieldia.choice.js.map +7 -0
  6. package/bundle/fieldia.de.js +2 -2
  7. package/bundle/fieldia.de.js.map +2 -2
  8. package/bundle/fieldia.filters.js +5 -0
  9. package/bundle/fieldia.filters.js.map +7 -0
  10. package/bundle/fieldia.fr.js +2 -2
  11. package/bundle/fieldia.fr.js.map +2 -2
  12. package/bundle/fieldia.head.js +5 -0
  13. package/bundle/fieldia.head.js.map +7 -0
  14. package/bundle/fieldia.js +44 -44
  15. package/bundle/fieldia.js.map +4 -4
  16. package/bundle/fieldia.path.js +5 -0
  17. package/bundle/fieldia.path.js.map +7 -0
  18. package/bundle/fieldia.text.js +24 -0
  19. package/bundle/fieldia.text.js.map +7 -0
  20. package/package.json +7 -3
  21. package/src/index.d.mts +2 -1
  22. package/src/index.d.ts +2 -1
  23. package/src/index.js +6 -1
  24. package/src/index.js.map +1 -1
  25. package/src/index.mjs +1 -0
  26. package/src/index.mjs.map +1 -1
  27. package/src/lib/button-parts.d.mts +30 -0
  28. package/src/lib/button-parts.d.ts +30 -0
  29. package/src/lib/button-parts.js +24 -0
  30. package/src/lib/button-parts.js.map +1 -0
  31. package/src/lib/button-parts.mjs +18 -0
  32. package/src/lib/button-parts.mjs.map +1 -0
  33. package/src/lib/dialog-window.d.mts +11 -0
  34. package/src/lib/dialog-window.d.ts +11 -0
  35. package/src/lib/dialog-window.js +86 -0
  36. package/src/lib/dialog-window.js.map +1 -0
  37. package/src/lib/dialog-window.mjs +82 -0
  38. package/src/lib/dialog-window.mjs.map +1 -0
  39. package/src/lib/dialog.d.mts +14 -3
  40. package/src/lib/dialog.d.ts +14 -3
  41. package/src/lib/dialog.js +84 -14
  42. package/src/lib/dialog.js.map +1 -1
  43. package/src/lib/dialog.mjs +85 -15
  44. package/src/lib/dialog.mjs.map +1 -1
  45. package/src/lib/filter-bar.d.mts +39 -0
  46. package/src/lib/filter-bar.d.ts +39 -0
  47. package/src/lib/filter-bar.js +290 -0
  48. package/src/lib/filter-bar.js.map +1 -0
  49. package/src/lib/filter-bar.mjs +287 -0
  50. package/src/lib/filter-bar.mjs.map +1 -0
  51. package/src/lib/filter-styles.d.mts +4 -0
  52. package/src/lib/filter-styles.d.ts +4 -0
  53. package/src/lib/filter-styles.js +63 -0
  54. package/src/lib/filter-styles.js.map +1 -0
  55. package/src/lib/filter-styles.mjs +59 -0
  56. package/src/lib/filter-styles.mjs.map +1 -0
  57. package/src/lib/filters-part.d.mts +8 -0
  58. package/src/lib/filters-part.d.ts +8 -0
  59. package/src/lib/filters-part.js +14 -0
  60. package/src/lib/filters-part.js.map +1 -0
  61. package/src/lib/filters-part.mjs +9 -0
  62. package/src/lib/filters-part.mjs.map +1 -0
  63. package/src/lib/group-styles.d.mts +9 -0
  64. package/src/lib/group-styles.d.ts +9 -0
  65. package/src/lib/group-styles.js +64 -0
  66. package/src/lib/group-styles.js.map +1 -0
  67. package/src/lib/group-styles.mjs +60 -0
  68. package/src/lib/group-styles.mjs.map +1 -0
  69. package/src/lib/head-part.d.mts +15 -0
  70. package/src/lib/head-part.d.ts +15 -0
  71. package/src/lib/head-part.js +26 -0
  72. package/src/lib/head-part.js.map +1 -0
  73. package/src/lib/head-part.mjs +16 -0
  74. package/src/lib/head-part.mjs.map +1 -0
  75. package/src/lib/head-styles.d.mts +28 -0
  76. package/src/lib/head-styles.d.ts +28 -0
  77. package/src/lib/head-styles.js +320 -0
  78. package/src/lib/head-styles.js.map +1 -0
  79. package/src/lib/head-styles.mjs +316 -0
  80. package/src/lib/head-styles.mjs.map +1 -0
  81. package/src/lib/labels.d.mts +29 -0
  82. package/src/lib/labels.d.ts +29 -0
  83. package/src/lib/labels.js +16 -0
  84. package/src/lib/labels.js.map +1 -1
  85. package/src/lib/labels.mjs +16 -0
  86. package/src/lib/labels.mjs.map +1 -1
  87. package/src/lib/list-styles.d.mts +1 -1
  88. package/src/lib/list-styles.d.ts +1 -1
  89. package/src/lib/list-styles.js +88 -1
  90. package/src/lib/list-styles.js.map +1 -1
  91. package/src/lib/list-styles.mjs +88 -1
  92. package/src/lib/list-styles.mjs.map +1 -1
  93. package/src/lib/list.d.mts +16 -1
  94. package/src/lib/list.d.ts +16 -1
  95. package/src/lib/list.js +281 -51
  96. package/src/lib/list.js.map +1 -1
  97. package/src/lib/list.mjs +282 -52
  98. package/src/lib/list.mjs.map +1 -1
  99. package/src/lib/locales/ar.js +16 -0
  100. package/src/lib/locales/ar.js.map +1 -1
  101. package/src/lib/locales/ar.mjs +16 -0
  102. package/src/lib/locales/ar.mjs.map +1 -1
  103. package/src/lib/locales/de.js +16 -0
  104. package/src/lib/locales/de.js.map +1 -1
  105. package/src/lib/locales/de.mjs +16 -0
  106. package/src/lib/locales/de.mjs.map +1 -1
  107. package/src/lib/locales/fr.js +16 -0
  108. package/src/lib/locales/fr.js.map +1 -1
  109. package/src/lib/locales/fr.mjs +16 -0
  110. package/src/lib/locales/fr.mjs.map +1 -1
  111. package/src/lib/look.d.mts +1 -1
  112. package/src/lib/look.d.ts +1 -1
  113. package/src/lib/look.js +3 -0
  114. package/src/lib/look.js.map +1 -1
  115. package/src/lib/look.mjs +3 -0
  116. package/src/lib/look.mjs.map +1 -1
  117. package/src/lib/record-bar.d.mts +10 -1
  118. package/src/lib/record-bar.d.ts +10 -1
  119. package/src/lib/record-bar.js +15 -7
  120. package/src/lib/record-bar.js.map +1 -1
  121. package/src/lib/record-bar.mjs +14 -7
  122. package/src/lib/record-bar.mjs.map +1 -1
  123. package/src/lib/record-head.d.mts +58 -0
  124. package/src/lib/record-head.d.ts +58 -0
  125. package/src/lib/record-head.js +245 -0
  126. package/src/lib/record-head.js.map +1 -0
  127. package/src/lib/record-head.mjs +240 -0
  128. package/src/lib/record-head.mjs.map +1 -0
  129. package/src/lib/rich-button.d.mts +12 -0
  130. package/src/lib/rich-button.d.ts +12 -0
  131. package/src/lib/rich-button.js +186 -0
  132. package/src/lib/rich-button.js.map +1 -0
  133. package/src/lib/rich-button.mjs +183 -0
  134. package/src/lib/rich-button.mjs.map +1 -0
  135. package/src/lib/section-head.d.mts +26 -0
  136. package/src/lib/section-head.d.ts +26 -0
  137. package/src/lib/section-head.js +65 -0
  138. package/src/lib/section-head.js.map +1 -0
  139. package/src/lib/section-head.mjs +56 -0
  140. package/src/lib/section-head.mjs.map +1 -0
  141. package/src/lib/section-tools.d.mts +12 -0
  142. package/src/lib/section-tools.d.ts +12 -0
  143. package/src/lib/section-tools.js +124 -0
  144. package/src/lib/section-tools.js.map +1 -0
  145. package/src/lib/section-tools.mjs +121 -0
  146. package/src/lib/section-tools.mjs.map +1 -0
  147. package/src/lib/viewer-parts.d.mts +33 -0
  148. package/src/lib/viewer-parts.d.ts +33 -0
  149. package/src/lib/viewer-parts.js +75 -0
  150. package/src/lib/viewer-parts.js.map +1 -0
  151. package/src/lib/viewer-parts.mjs +70 -0
  152. package/src/lib/viewer-parts.mjs.map +1 -0
  153. package/src/lib/viewer.d.mts +30 -7
  154. package/src/lib/viewer.d.ts +30 -7
  155. package/src/lib/viewer.js +317 -97
  156. package/src/lib/viewer.js.map +1 -1
  157. package/src/lib/viewer.mjs +319 -99
  158. package/src/lib/viewer.mjs.map +1 -1
@@ -0,0 +1,18 @@
1
+ /** Whether a button asks for more than words and steps: its icon alone, a toggle, a menu, a look that follows the record's changes. */
2
+ export function isRichButton(node) {
3
+ return !!(node.iconOnly || node.pressed !== undefined || node.menu?.length || node.primaryWhenChanged);
4
+ }
5
+ /** Steps that only put back what changed: Undo's. */
6
+ export const onlyResets = (steps, action) => !!steps?.length && action === undefined && steps.every((step) => step.do === 'reset');
7
+ /**
8
+ * A press that has nothing to do says so instead: Undo with nothing changed
9
+ * ("Nothing has changed."), never a control greyed out without a reason.
10
+ * True when it said so.
11
+ */
12
+ export function nothingToUndo(node, form, say, labels) {
13
+ if (!onlyResets(node.steps, node.action) || form.getState().dirty.length)
14
+ return false;
15
+ say(labels.nothingChanged, 'info');
16
+ return true;
17
+ }
18
+ //# sourceMappingURL=button-parts.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button-parts.mjs","sourceRoot":"","sources":["../../../../../libs/viewer/src/lib/button-parts.ts"],"names":[],"mappings":"AAsBA,uIAAuI;AACvI,MAAM,UAAU,YAAY,CAAC,IAAgB;IAC3C,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,IAAI,IAAI,CAAC,kBAAkB,CAAC,CAAC;AACzG,CAAC;AAED,qDAAqD;AACrD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,KAAwC,EAAE,MAAe,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,EAAE,MAAM,IAAI,MAAM,KAAK,SAAS,IAAI,KAAK,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,OAAO,CAAC,CAAC;AAE/K;;;;GAIG;AACH,MAAM,UAAU,aAAa,CAAC,IAAgB,EAAE,IAAU,EAAE,GAA0C,EAAE,MAAoB;IAC1H,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,KAAK,CAAC;IACvF,GAAG,CAAC,MAAM,CAAC,cAAc,EAAE,MAAM,CAAC,CAAC;IACnC,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,11 @@
1
+ /** ⤢: the dialog fills the window, and Restore puts it back where it was, at its size. */
2
+ export declare function wireMaximise(box: HTMLElement, button: HTMLElement, labels: {
3
+ maximise: string;
4
+ restoreSize: string;
5
+ }, doc: Document): void;
6
+ /**
7
+ * The grip at the dialog's end-bottom corner: dragged, the corner follows the
8
+ * pointer; focused, the arrow keys move it by 16 pixels — the way the page
9
+ * reads, so right to left ArrowLeft widens it. The other corner stays put.
10
+ */
11
+ export declare function wireGrip(box: HTMLElement, grip: HTMLElement, doc: Document): void;
@@ -0,0 +1,11 @@
1
+ /** ⤢: the dialog fills the window, and Restore puts it back where it was, at its size. */
2
+ export declare function wireMaximise(box: HTMLElement, button: HTMLElement, labels: {
3
+ maximise: string;
4
+ restoreSize: string;
5
+ }, doc: Document): void;
6
+ /**
7
+ * The grip at the dialog's end-bottom corner: dragged, the corner follows the
8
+ * pointer; focused, the arrow keys move it by 16 pixels — the way the page
9
+ * reads, so right to left ArrowLeft widens it. The other corner stays put.
10
+ */
11
+ export declare function wireGrip(box: HTMLElement, grip: HTMLElement, doc: Document): void;
@@ -0,0 +1,86 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.wireMaximise = wireMaximise;
4
+ exports.wireGrip = wireGrip;
5
+ const widgets_1 = require("@fieldia/widgets");
6
+ /**
7
+ * A dialog's window tools, as a work item's popup has them: ⤢ that fills the
8
+ * window and Restore that puts it back, and a grip that resizes it. The head
9
+ * part's (head-part.ts), with the inset size's and the clear backdrop's rules.
10
+ */
11
+ /** How far the grip's arrow keys resize a dialog, in pixels; and the least it is resized to. */
12
+ const RESIZE_STEP = 16;
13
+ const LEAST = { width: 320, height: 240 };
14
+ /** ⤢: the dialog fills the window, and Restore puts it back where it was, at its size. */
15
+ function wireMaximise(box, button, labels, doc) {
16
+ const face = (maximised) => {
17
+ const name = maximised ? labels.restoreSize : labels.maximise;
18
+ button.setAttribute('aria-label', name);
19
+ button.title = name;
20
+ button.replaceChildren(...[(0, widgets_1.drawIcon)(doc, maximised ? 'restore' : 'maximise')].filter((icon) => !!icon));
21
+ };
22
+ face(false);
23
+ button.addEventListener('click', () => {
24
+ const maximised = !box.hasAttribute('data-maximised');
25
+ box.toggleAttribute('data-maximised', maximised);
26
+ face(maximised);
27
+ });
28
+ }
29
+ /**
30
+ * The grip at the dialog's end-bottom corner: dragged, the corner follows the
31
+ * pointer; focused, the arrow keys move it by 16 pixels — the way the page
32
+ * reads, so right to left ArrowLeft widens it. The other corner stays put.
33
+ */
34
+ function wireGrip(box, grip, doc) {
35
+ const view = doc.defaultView;
36
+ const rtl = () => getComputedStyle(box).direction === 'rtl';
37
+ /** Held where it is, at the size it is: its own place from now on, not the window's inset. */
38
+ const hold = () => {
39
+ const at = box.getBoundingClientRect();
40
+ box.setAttribute('data-resized', '');
41
+ box.style.top = `${at.top}px`;
42
+ if (rtl()) {
43
+ box.style.right = `${view.innerWidth - at.right}px`;
44
+ box.style.left = 'auto';
45
+ }
46
+ else {
47
+ box.style.left = `${at.left}px`;
48
+ box.style.right = 'auto';
49
+ }
50
+ box.style.bottom = 'auto';
51
+ return at;
52
+ };
53
+ const size = (width, height) => {
54
+ const at = box.getBoundingClientRect();
55
+ const roomX = rtl() ? at.right : view.innerWidth - at.left;
56
+ const roomY = view.innerHeight - at.top;
57
+ box.style.width = `${Math.round(Math.max(LEAST.width, Math.min(width, roomX)))}px`;
58
+ box.style.height = `${Math.round(Math.max(LEAST.height, Math.min(height, roomY)))}px`;
59
+ };
60
+ grip.addEventListener('pointerdown', (event) => {
61
+ if (box.hasAttribute('data-maximised'))
62
+ return;
63
+ event.preventDefault();
64
+ const start = hold();
65
+ const from = { x: event.clientX, y: event.clientY };
66
+ grip.setPointerCapture?.(event.pointerId);
67
+ const move = (moved) => size(start.width + (moved.clientX - from.x) * (rtl() ? -1 : 1), start.height + (moved.clientY - from.y));
68
+ const up = () => {
69
+ grip.removeEventListener('pointermove', move);
70
+ grip.removeEventListener('pointerup', up);
71
+ grip.removeEventListener('pointercancel', up);
72
+ };
73
+ grip.addEventListener('pointermove', move);
74
+ grip.addEventListener('pointerup', up);
75
+ grip.addEventListener('pointercancel', up);
76
+ });
77
+ grip.addEventListener('keydown', (event) => {
78
+ const by = { ArrowRight: [1, 0], ArrowLeft: [-1, 0], ArrowDown: [0, 1], ArrowUp: [0, -1] }[event.key];
79
+ if (!by || box.hasAttribute('data-maximised'))
80
+ return;
81
+ event.preventDefault();
82
+ const start = hold();
83
+ size(start.width + by[0] * RESIZE_STEP * (rtl() ? -1 : 1), start.height + by[1] * RESIZE_STEP);
84
+ });
85
+ }
86
+ //# sourceMappingURL=dialog-window.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog-window.js","sourceRoot":"","sources":["../../../../../libs/viewer/src/lib/dialog-window.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,82 @@
1
+ import { drawIcon } from '@fieldia/widgets';
2
+ /**
3
+ * A dialog's window tools, as a work item's popup has them: ⤢ that fills the
4
+ * window and Restore that puts it back, and a grip that resizes it. The head
5
+ * part's (head-part.ts), with the inset size's and the clear backdrop's rules.
6
+ */
7
+ /** How far the grip's arrow keys resize a dialog, in pixels; and the least it is resized to. */
8
+ const RESIZE_STEP = 16;
9
+ const LEAST = { width: 320, height: 240 };
10
+ /** ⤢: the dialog fills the window, and Restore puts it back where it was, at its size. */
11
+ export function wireMaximise(box, button, labels, doc) {
12
+ const face = (maximised) => {
13
+ const name = maximised ? labels.restoreSize : labels.maximise;
14
+ button.setAttribute('aria-label', name);
15
+ button.title = name;
16
+ button.replaceChildren(...[drawIcon(doc, maximised ? 'restore' : 'maximise')].filter((icon) => !!icon));
17
+ };
18
+ face(false);
19
+ button.addEventListener('click', () => {
20
+ const maximised = !box.hasAttribute('data-maximised');
21
+ box.toggleAttribute('data-maximised', maximised);
22
+ face(maximised);
23
+ });
24
+ }
25
+ /**
26
+ * The grip at the dialog's end-bottom corner: dragged, the corner follows the
27
+ * pointer; focused, the arrow keys move it by 16 pixels — the way the page
28
+ * reads, so right to left ArrowLeft widens it. The other corner stays put.
29
+ */
30
+ export function wireGrip(box, grip, doc) {
31
+ const view = doc.defaultView;
32
+ const rtl = () => getComputedStyle(box).direction === 'rtl';
33
+ /** Held where it is, at the size it is: its own place from now on, not the window's inset. */
34
+ const hold = () => {
35
+ const at = box.getBoundingClientRect();
36
+ box.setAttribute('data-resized', '');
37
+ box.style.top = `${at.top}px`;
38
+ if (rtl()) {
39
+ box.style.right = `${view.innerWidth - at.right}px`;
40
+ box.style.left = 'auto';
41
+ }
42
+ else {
43
+ box.style.left = `${at.left}px`;
44
+ box.style.right = 'auto';
45
+ }
46
+ box.style.bottom = 'auto';
47
+ return at;
48
+ };
49
+ const size = (width, height) => {
50
+ const at = box.getBoundingClientRect();
51
+ const roomX = rtl() ? at.right : view.innerWidth - at.left;
52
+ const roomY = view.innerHeight - at.top;
53
+ box.style.width = `${Math.round(Math.max(LEAST.width, Math.min(width, roomX)))}px`;
54
+ box.style.height = `${Math.round(Math.max(LEAST.height, Math.min(height, roomY)))}px`;
55
+ };
56
+ grip.addEventListener('pointerdown', (event) => {
57
+ if (box.hasAttribute('data-maximised'))
58
+ return;
59
+ event.preventDefault();
60
+ const start = hold();
61
+ const from = { x: event.clientX, y: event.clientY };
62
+ grip.setPointerCapture?.(event.pointerId);
63
+ const move = (moved) => size(start.width + (moved.clientX - from.x) * (rtl() ? -1 : 1), start.height + (moved.clientY - from.y));
64
+ const up = () => {
65
+ grip.removeEventListener('pointermove', move);
66
+ grip.removeEventListener('pointerup', up);
67
+ grip.removeEventListener('pointercancel', up);
68
+ };
69
+ grip.addEventListener('pointermove', move);
70
+ grip.addEventListener('pointerup', up);
71
+ grip.addEventListener('pointercancel', up);
72
+ });
73
+ grip.addEventListener('keydown', (event) => {
74
+ const by = { ArrowRight: [1, 0], ArrowLeft: [-1, 0], ArrowDown: [0, 1], ArrowUp: [0, -1] }[event.key];
75
+ if (!by || box.hasAttribute('data-maximised'))
76
+ return;
77
+ event.preventDefault();
78
+ const start = hold();
79
+ size(start.width + by[0] * RESIZE_STEP * (rtl() ? -1 : 1), start.height + by[1] * RESIZE_STEP);
80
+ });
81
+ }
82
+ //# sourceMappingURL=dialog-window.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog-window.mjs","sourceRoot":"","sources":["../../../../../libs/viewer/src/lib/dialog-window.ts"],"names":[],"mappings":"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"}
@@ -10,7 +10,18 @@ import { type Skin, type ViewerOptions } from './viewer.mjs';
10
10
  */
11
11
  export interface FormDialogOptions extends ViewerOptions {
12
12
  title: string;
13
- size?: 'small' | 'medium' | 'large' | 'full';
13
+ /**
14
+ * How big: small, medium (the default), large, the whole window — or
15
+ * `inset`, as a work item's window over its backlog: 96 pixels in from the
16
+ * window's sides and 46 from its top and bottom, the whole window under 760.
17
+ */
18
+ size?: 'small' | 'medium' | 'large' | 'full' | 'inset';
19
+ /** The page behind dimmed (the default), or `clear`: left as it is, though out of reach while the dialog is open. */
20
+ backdrop?: 'dim' | 'clear';
21
+ /** A ⤢ beside × that fills the window with it, and Restore that puts it back. */
22
+ maximise?: boolean;
23
+ /** A grip at its end-bottom corner that resizes it, by dragging, or by the arrow keys while it has the focus. */
24
+ resizable?: boolean;
14
25
  /**
15
26
  * "save" (the default) saves the record through the data source. "values"
16
27
  * only checks the form and hands its values back, for something saved with
@@ -46,8 +57,8 @@ export interface FormPanelOptions extends Omit<FormDialogOptions, 'size'> {
46
57
  /** A panel at the top or bottom, the whole width: about 40, 60 (the default) or 85 in a hundred of the screen's height; the whole screen on a phone. */
47
58
  height?: 'short' | 'medium' | 'tall';
48
59
  }
49
- /** The first box to type or choose in, where a page opened takes the focus. */
50
- export declare const FIRST_FIELD = "input:not([type=\"hidden\"]), select, textarea, [contenteditable=\"true\"]";
60
+ /** The first box to type or choose in, where a page opened takes the focus: never one hidden, as a read-only value shown as words hides its box. */
61
+ export declare const FIRST_FIELD = "input:not([type=\"hidden\"]):not([hidden]), select:not([hidden]), textarea:not([hidden]), [contenteditable=\"true\"]";
51
62
  /** The box of the first field shown that takes the focus as the record opens (a node's `focus`), if there is one. */
52
63
  export declare function focusField(scope: Element): HTMLElement | null;
53
64
  export declare function openFormDialog(options: FormDialogOptions): Promise<FormDialogResult>;
@@ -10,7 +10,18 @@ import { type Skin, type ViewerOptions } from './viewer';
10
10
  */
11
11
  export interface FormDialogOptions extends ViewerOptions {
12
12
  title: string;
13
- size?: 'small' | 'medium' | 'large' | 'full';
13
+ /**
14
+ * How big: small, medium (the default), large, the whole window — or
15
+ * `inset`, as a work item's window over its backlog: 96 pixels in from the
16
+ * window's sides and 46 from its top and bottom, the whole window under 760.
17
+ */
18
+ size?: 'small' | 'medium' | 'large' | 'full' | 'inset';
19
+ /** The page behind dimmed (the default), or `clear`: left as it is, though out of reach while the dialog is open. */
20
+ backdrop?: 'dim' | 'clear';
21
+ /** A ⤢ beside × that fills the window with it, and Restore that puts it back. */
22
+ maximise?: boolean;
23
+ /** A grip at its end-bottom corner that resizes it, by dragging, or by the arrow keys while it has the focus. */
24
+ resizable?: boolean;
14
25
  /**
15
26
  * "save" (the default) saves the record through the data source. "values"
16
27
  * only checks the form and hands its values back, for something saved with
@@ -46,8 +57,8 @@ export interface FormPanelOptions extends Omit<FormDialogOptions, 'size'> {
46
57
  /** A panel at the top or bottom, the whole width: about 40, 60 (the default) or 85 in a hundred of the screen's height; the whole screen on a phone. */
47
58
  height?: 'short' | 'medium' | 'tall';
48
59
  }
49
- /** The first box to type or choose in, where a page opened takes the focus. */
50
- export declare const FIRST_FIELD = "input:not([type=\"hidden\"]), select, textarea, [contenteditable=\"true\"]";
60
+ /** The first box to type or choose in, where a page opened takes the focus: never one hidden, as a read-only value shown as words hides its box. */
61
+ export declare const FIRST_FIELD = "input:not([type=\"hidden\"]):not([hidden]), select:not([hidden]), textarea:not([hidden]), [contenteditable=\"true\"]";
51
62
  /** The box of the first field shown that takes the focus as the record opens (a node's `focus`), if there is one. */
52
63
  export declare function focusField(scope: Element): HTMLElement | null;
53
64
  export declare function openFormDialog(options: FormDialogOptions): Promise<FormDialogResult>;
package/src/lib/dialog.js CHANGED
@@ -11,9 +11,10 @@ const focus_trap_1 = require("./focus-trap");
11
11
  const look_1 = require("./look");
12
12
  const hotkeys_1 = require("./hotkeys");
13
13
  const viewer_1 = require("./viewer");
14
+ const viewer_parts_1 = require("./viewer-parts");
14
15
  let dialogs = 0;
15
- /** The first box to type or choose in, where a page opened takes the focus. */
16
- exports.FIRST_FIELD = 'input:not([type="hidden"]), select, textarea, [contenteditable="true"]';
16
+ /** The first box to type or choose in, where a page opened takes the focus: never one hidden, as a read-only value shown as words hides its box. */
17
+ exports.FIRST_FIELD = 'input:not([type="hidden"]):not([hidden]), select:not([hidden]), textarea:not([hidden]), [contenteditable="true"]';
17
18
  /** The box of the first field shown that takes the focus as the record opens (a node's `focus`), if there is one. */
18
19
  function focusField(scope) {
19
20
  const wrapper = [...scope.querySelectorAll('.fd-field[data-focus]')].find((one) => !one.closest('[hidden]'));
@@ -45,17 +46,49 @@ function openFormPanel(options) {
45
46
  const side = options.side ?? 'end';
46
47
  return openForm(options, `fd-form-panel ${side === 'top' || side === 'bottom' ? `fd-height-${options.height ?? 'medium'}` : `fd-width-${options.width ?? 'medium'}`}`, side);
47
48
  }
48
- /** A dialog or a panel (from its side): a page in a box with a head, a body that scrolls and a foot; `shape` is the box's own classes. */
49
+ /**
50
+ * A dialog or a panel (from its side): a page in a box with a head, a body that
51
+ * scrolls and a foot; `shape` is the box's own classes. A page whose sheet has
52
+ * a head of its own (`SheetHead`) is its own head and foot: the dialog draws
53
+ * neither, its ⤢ and × at the end of the head's badge row, named by the badge
54
+ * and the title, and asks before Escape or × drop changes, as a panel does.
55
+ */
49
56
  function openForm(options, shape, side) {
57
+ const doc = options.container?.ownerDocument ?? document;
58
+ // What has the focus as it is asked for gets it back as it closes, though the box waits for its parts.
59
+ const opener = doc.activeElement instanceof doc.defaultView.HTMLElement ? doc.activeElement : null;
60
+ // The parts its page draws from, and the head part for a work item's window (inset, clear, ⤢, a grip): the box opens
61
+ // once they are in, drawn whole — at once when they are already.
62
+ const windowed = !side && (options.size === 'inset' || options.backdrop === 'clear' || !!options.maximise || !!options.resizable);
63
+ const parts = [...(0, viewer_parts_1.partsFor)(options.page, options.widgets, options.slots), ...(windowed ? [viewer_parts_1.headPart] : [])].filter((part) => !part.loaded);
64
+ if (!parts.length)
65
+ return openNow(options, shape, side, opener);
66
+ return (0, widgets_1.settleParts)(parts).then(() => openNow(options, shape, side, opener));
67
+ }
68
+ function openNow(options, shape, side, opener) {
50
69
  const panel = !!side;
70
+ const layout = options.page.layout;
71
+ /** The head part's window tools and look; drawn plainly where it could not come. */
72
+ const kit = viewer_parts_1.headPart.loaded;
73
+ const headed = !panel && layout.type === 'sheet' && !!layout.head && !!kit;
51
74
  const doc = options.container?.ownerDocument ?? document;
52
75
  const container = options.container ?? doc.body;
53
- const opener = doc.activeElement instanceof doc.defaultView.HTMLElement ? doc.activeElement : null;
76
+ // The window's look (inset, clear, ⤢, its grip, a head as its own head) in the page before the box is.
77
+ if (kit && !panel && (headed || options.size === 'inset' || options.backdrop === 'clear' || options.maximise || options.resizable))
78
+ kit.installHeadStyles(doc);
54
79
  const labels = { ...viewer_1.VIEWER_LABELS[(0, labels_1.ownLocale)(options.locale)], ...options.labels };
55
80
  const id = `fd-dialog-${++dialogs}`;
56
81
  const make = maker(doc);
57
82
  const title = make('h2', { id: `${id}-title`, class: 'fd-form-dialog-title' }, options.title);
58
- const closeButton = make('button', { type: 'button', class: 'fd-dialog-close', 'aria-label': labels.close }, '×');
83
+ const closeButton = make('button', { type: 'button', class: 'fd-dialog-close', 'aria-label': labels.close, title: labels.close });
84
+ const closeIcon = headed ? (0, widgets_1.drawIcon)(doc, 'close') : null;
85
+ if (closeIcon)
86
+ closeButton.append(closeIcon);
87
+ else
88
+ closeButton.textContent = '×';
89
+ // ⤢ fills the window with it, and Restore puts it back.
90
+ const maximise = options.maximise && !panel && kit ? make('button', { type: 'button', class: 'fd-dialog-max', 'aria-label': labels.maximise, title: labels.maximise }) : null;
91
+ const grip = options.resizable && !panel && kit ? make('button', { type: 'button', class: 'fd-dialog-grip', 'aria-label': labels.resize, title: labels.resize, 'aria-keyshortcuts': 'ArrowLeft ArrowRight ArrowUp ArrowDown' }) : null;
59
92
  const body = make('div', { class: 'fd-form-dialog-body' });
60
93
  const discard = make('button', { type: 'button', class: 'fd-button' }, labels.discard);
61
94
  const saveClose = make('button', { type: 'button', class: 'fd-button fd-button-primary' }, panel && options.mode === 'values' ? labels.done : labels.saveClose);
@@ -75,18 +108,28 @@ function openForm(options, shape, side) {
75
108
  box.setAttribute('data-side', side);
76
109
  if (options.dir)
77
110
  box.setAttribute('dir', options.dir);
111
+ if (headed)
112
+ box.setAttribute('data-headed', '');
78
113
  (0, look_1.applyLook)(box, theme ? { ...look, theme } : look);
79
114
  (0, look_1.wearTokens)(box, options.tokens);
80
- box.append(make('div', { class: 'fd-form-dialog-head' }), body, make('div', { class: 'fd-actions fd-actions-end fd-form-dialog-foot' }));
81
- box.firstElementChild?.append(title, closeButton);
115
+ // A page with a head of its own is the dialog's head and foot: the dialog draws neither.
116
+ if (headed)
117
+ box.append(body);
118
+ else {
119
+ box.append(make('div', { class: 'fd-form-dialog-head' }), body, make('div', { class: 'fd-actions fd-actions-end fd-form-dialog-foot' }));
120
+ box.firstElementChild?.append(title, ...(maximise ? [maximise] : []), closeButton);
121
+ }
122
+ if (grip)
123
+ box.append(grip);
82
124
  // A page's own buttons at its foot, as a wizard's, stand in place of Discard and Save & Close.
83
125
  const footer = options.page.layout.type === 'sections' || options.page.layout.type === 'sheet' ? (options.page.layout.footer ?? []) : [];
84
126
  const own = footer.map((node) => ({ node, button: make('button', { type: 'button', class: `fd-button fd-button-${node.style ?? 'secondary'}`, 'data-node': node.id }, node.label) }));
85
127
  for (const { node, button } of own)
86
128
  if (node.hotkey)
87
129
  (0, hotkeys_1.hotkeyOn)(button, node.hotkey, node.label);
88
- box.lastElementChild?.append(...(own.length ? own.map((b) => b.button) : [discard, saveClose]));
89
- const backdrop = make('div', { class: `fd-dialog-backdrop fd-form-dialog-backdrop${panel ? ' fd-form-panel-backdrop' : ''}` });
130
+ if (!headed)
131
+ box.querySelector('.fd-form-dialog-foot')?.append(...(own.length ? own.map((b) => b.button) : [discard, saveClose]));
132
+ const backdrop = make('div', { class: `fd-dialog-backdrop fd-form-dialog-backdrop${panel ? ' fd-form-panel-backdrop' : ''}${options.backdrop === 'clear' ? ' fd-backdrop-clear' : ''}` });
90
133
  backdrop.append(box);
91
134
  // The panel this one opens over steps back while it is open.
92
135
  const under = panel ? [...doc.querySelectorAll('.fd-form-panel')].pop() : undefined;
@@ -100,23 +143,50 @@ function openForm(options, shape, side) {
100
143
  // A dialog has no pager or breadcrumbs: they belong to the record under it.
101
144
  records: undefined,
102
145
  breadcrumbs: undefined,
103
- host: { ...options.host, close: () => discard.click() },
146
+ // A `close` step after the same run saved closes it saved: Save and Close.
147
+ host: { ...options.host, close: () => close(saves > savesBefore) },
104
148
  });
105
149
  // A panel runs the way its page does, its language's way unless told: the inline end it sits at is the left, right to left.
106
150
  if (panel && handle.element.dir)
107
151
  backdrop.dir = handle.element.dir;
152
+ // A dialog round a page with a head: its ⤢ and × at the end of the head's badge row, and named by the badge and the title.
153
+ if (headed) {
154
+ if (handle.element.dir && !options.dir)
155
+ box.dir = handle.element.dir;
156
+ const slot = body.querySelector('.fd-head-window');
157
+ slot?.append(...(maximise ? [maximise] : []), closeButton);
158
+ const names = [...body.querySelectorAll('[data-head-name]')].map((part) => part.id).filter(Boolean);
159
+ if (names.length)
160
+ box.setAttribute('aria-labelledby', names.join(' '));
161
+ else
162
+ box.setAttribute('aria-label', options.title);
163
+ }
164
+ if (maximise)
165
+ kit?.wireMaximise(box, maximise, labels, doc);
166
+ if (grip)
167
+ kit?.wireGrip(box, grip, doc);
108
168
  let done = false;
169
+ /** The saves made in it, and how many there were as the last run of steps ended: a run that saved, then closed, closes it saved. */
170
+ let saves = 0;
171
+ let savesBefore = 0;
172
+ handle.on('save', () => saves++);
173
+ handle.on('run', ({ id: run }) => {
174
+ if (!run.startsWith('on.'))
175
+ savesBefore = saves;
176
+ });
177
+ let close = (saved) => void saved;
109
178
  if (options.recompute)
110
179
  recalculate(handle.form, options.page.fields, options.recompute, () => done);
111
180
  // Into the dialog: its field that takes the focus (focus) or its first, once the record is in, or the dialog itself meanwhile.
112
- const firstField = () => focusField(body) ?? body.querySelector(exports.FIRST_FIELD);
181
+ // A page with a head of its own opens at rest, as a work item does: the dialog holds the focus until the page names a field for it.
182
+ const firstField = () => focusField(body) ?? (headed ? null : body.querySelector(exports.FIRST_FIELD));
113
183
  (firstField() ?? box).focus();
114
184
  void handle.form.settled().then(() => {
115
185
  if (doc.activeElement === box || !box.contains(doc.activeElement))
116
186
  firstField()?.focus();
117
187
  });
118
188
  return new Promise((resolve) => {
119
- const close = (saved) => {
189
+ close = (saved) => {
120
190
  if (done)
121
191
  return;
122
192
  done = true;
@@ -158,9 +228,9 @@ function openForm(options, shape, side) {
158
228
  box.append(shade);
159
229
  no.focus();
160
230
  });
161
- /** Escape and ×: a panel with changes in it asks first; a dialog closes at once, as it always has. */
231
+ /** Escape and ×: a panel, or a dialog round a page with a head, asks first when there are changes in it; any other dialog closes at once, as it always has. */
162
232
  const leave = async () => {
163
- if (!panel || !handle.form.getState().dirty.length || (await ask()))
233
+ if (!(panel || headed) || !handle.form.getState().dirty.length || (await ask()))
164
234
  close(false);
165
235
  };
166
236
  saveClose.addEventListener('click', async () => {
@@ -1 +1 @@
1
- {"version":3,"file":"dialog.js","sourceRoot":"","sources":["../../../../../libs/viewer/src/lib/dialog.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dialog.js","sourceRoot":"","sources":["../../../../../libs/viewer/src/lib/dialog.ts"],"names":[],"mappings":"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"}