@fieldia/designer 0.15.0 → 0.17.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.
- package/package.json +4 -4
- package/src/lib/canvas-blocks.d.mts +4 -3
- package/src/lib/canvas-blocks.d.ts +4 -3
- package/src/lib/canvas-blocks.js +8 -1
- package/src/lib/canvas-blocks.js.map +1 -1
- package/src/lib/canvas-blocks.mjs +8 -1
- package/src/lib/canvas-blocks.mjs.map +1 -1
- package/src/lib/canvas-icons.js +1 -0
- package/src/lib/canvas-icons.js.map +1 -1
- package/src/lib/canvas-icons.mjs +1 -0
- package/src/lib/canvas-icons.mjs.map +1 -1
- package/src/lib/designer.d.mts +29 -1
- package/src/lib/designer.d.ts +29 -1
- package/src/lib/designer.js +31 -1
- package/src/lib/designer.js.map +1 -1
- package/src/lib/designer.mjs +32 -2
- package/src/lib/designer.mjs.map +1 -1
- package/src/lib/icons.js +1 -0
- package/src/lib/icons.js.map +1 -1
- package/src/lib/icons.mjs +1 -0
- package/src/lib/icons.mjs.map +1 -1
- package/src/lib/json-checks.js +4 -0
- package/src/lib/json-checks.js.map +1 -1
- package/src/lib/json-checks.mjs +4 -0
- package/src/lib/json-checks.mjs.map +1 -1
- package/src/lib/layout-changes.js +2 -0
- package/src/lib/layout-changes.js.map +1 -1
- package/src/lib/layout-changes.mjs +2 -0
- package/src/lib/layout-changes.mjs.map +1 -1
- package/src/lib/layout-ops.d.mts +1 -1
- package/src/lib/layout-ops.d.ts +1 -1
- package/src/lib/layout-ops.js +4 -1
- package/src/lib/layout-ops.js.map +1 -1
- package/src/lib/layout-ops.mjs +4 -1
- package/src/lib/layout-ops.mjs.map +1 -1
- package/src/lib/layout-tree.js +3 -1
- package/src/lib/layout-tree.js.map +1 -1
- package/src/lib/layout-tree.mjs +3 -1
- package/src/lib/layout-tree.mjs.map +1 -1
- package/src/lib/list-properties.js +59 -2
- package/src/lib/list-properties.js.map +1 -1
- package/src/lib/list-properties.mjs +59 -2
- package/src/lib/list-properties.mjs.map +1 -1
- package/src/lib/locales/ar/canvas.js +2 -0
- package/src/lib/locales/ar/canvas.js.map +1 -1
- package/src/lib/locales/ar/canvas.mjs +2 -0
- package/src/lib/locales/ar/canvas.mjs.map +1 -1
- package/src/lib/locales/ar/changes.js +1 -0
- package/src/lib/locales/ar/changes.js.map +1 -1
- package/src/lib/locales/ar/changes.mjs +1 -0
- package/src/lib/locales/ar/changes.mjs.map +1 -1
- package/src/lib/locales/ar/defaults.js +2 -0
- package/src/lib/locales/ar/defaults.js.map +1 -1
- package/src/lib/locales/ar/defaults.mjs +2 -0
- package/src/lib/locales/ar/defaults.mjs.map +1 -1
- package/src/lib/locales/ar/index.js +2 -1
- package/src/lib/locales/ar/index.js.map +1 -1
- package/src/lib/locales/ar/index.mjs +2 -1
- package/src/lib/locales/ar/index.mjs.map +1 -1
- package/src/lib/locales/ar/list.js +9 -0
- package/src/lib/locales/ar/list.js.map +1 -1
- package/src/lib/locales/ar/list.mjs +9 -0
- package/src/lib/locales/ar/list.mjs.map +1 -1
- package/src/lib/locales/ar/map-part.d.mts +2 -0
- package/src/lib/locales/ar/map-part.d.ts +2 -0
- package/src/lib/locales/ar/map-part.js +68 -0
- package/src/lib/locales/ar/map-part.js.map +1 -0
- package/src/lib/locales/ar/map-part.mjs +65 -0
- package/src/lib/locales/ar/map-part.mjs.map +1 -0
- package/src/lib/locales/ar/outline.js +1 -0
- package/src/lib/locales/ar/outline.js.map +1 -1
- package/src/lib/locales/ar/outline.mjs +1 -0
- package/src/lib/locales/ar/outline.mjs.map +1 -1
- package/src/lib/locales/ar/panel.js +7 -0
- package/src/lib/locales/ar/panel.js.map +1 -1
- package/src/lib/locales/ar/panel.mjs +7 -0
- package/src/lib/locales/ar/panel.mjs.map +1 -1
- package/src/lib/locales/ar/parts.js +1 -0
- package/src/lib/locales/ar/parts.js.map +1 -1
- package/src/lib/locales/ar/parts.mjs +1 -0
- package/src/lib/locales/ar/parts.mjs.map +1 -1
- package/src/lib/locales/ar/steps.js +2 -0
- package/src/lib/locales/ar/steps.js.map +1 -1
- package/src/lib/locales/ar/steps.mjs +2 -0
- package/src/lib/locales/ar/steps.mjs.map +1 -1
- package/src/lib/locales/ar/toolbox.js +1 -0
- package/src/lib/locales/ar/toolbox.js.map +1 -1
- package/src/lib/locales/ar/toolbox.mjs +1 -0
- package/src/lib/locales/ar/toolbox.mjs.map +1 -1
- package/src/lib/locales/en/canvas.d.mts +2 -0
- package/src/lib/locales/en/canvas.d.ts +2 -0
- package/src/lib/locales/en/canvas.js +2 -0
- package/src/lib/locales/en/canvas.js.map +1 -1
- package/src/lib/locales/en/canvas.mjs +2 -0
- package/src/lib/locales/en/canvas.mjs.map +1 -1
- package/src/lib/locales/en/changes.d.mts +1 -0
- package/src/lib/locales/en/changes.d.ts +1 -0
- package/src/lib/locales/en/changes.js +1 -0
- package/src/lib/locales/en/changes.js.map +1 -1
- package/src/lib/locales/en/changes.mjs +1 -0
- package/src/lib/locales/en/changes.mjs.map +1 -1
- package/src/lib/locales/en/defaults.d.mts +2 -0
- package/src/lib/locales/en/defaults.d.ts +2 -0
- package/src/lib/locales/en/defaults.js +2 -0
- package/src/lib/locales/en/defaults.js.map +1 -1
- package/src/lib/locales/en/defaults.mjs +2 -0
- package/src/lib/locales/en/defaults.mjs.map +1 -1
- package/src/lib/locales/en/index.d.mts +118 -1
- package/src/lib/locales/en/index.d.ts +118 -1
- package/src/lib/locales/en/index.js +2 -1
- package/src/lib/locales/en/index.js.map +1 -1
- package/src/lib/locales/en/index.mjs +2 -1
- package/src/lib/locales/en/index.mjs.map +1 -1
- package/src/lib/locales/en/list.d.mts +14 -0
- package/src/lib/locales/en/list.d.ts +14 -0
- package/src/lib/locales/en/list.js +9 -0
- package/src/lib/locales/en/list.js.map +1 -1
- package/src/lib/locales/en/list.mjs +9 -0
- package/src/lib/locales/en/list.mjs.map +1 -1
- package/src/lib/locales/en/map-part.d.mts +93 -0
- package/src/lib/locales/en/map-part.d.ts +93 -0
- package/src/lib/locales/en/map-part.js +69 -0
- package/src/lib/locales/en/map-part.js.map +1 -0
- package/src/lib/locales/en/map-part.mjs +66 -0
- package/src/lib/locales/en/map-part.mjs.map +1 -0
- package/src/lib/locales/en/outline.d.mts +1 -0
- package/src/lib/locales/en/outline.d.ts +1 -0
- package/src/lib/locales/en/outline.js +1 -0
- package/src/lib/locales/en/outline.js.map +1 -1
- package/src/lib/locales/en/outline.mjs +1 -0
- package/src/lib/locales/en/outline.mjs.map +1 -1
- package/src/lib/locales/en/panel.d.mts +2 -0
- package/src/lib/locales/en/panel.d.ts +2 -0
- package/src/lib/locales/en/panel.js +2 -0
- package/src/lib/locales/en/panel.js.map +1 -1
- package/src/lib/locales/en/panel.mjs +2 -0
- package/src/lib/locales/en/panel.mjs.map +1 -1
- package/src/lib/locales/en/parts.d.mts +1 -0
- package/src/lib/locales/en/parts.d.ts +1 -0
- package/src/lib/locales/en/parts.js +1 -0
- package/src/lib/locales/en/parts.js.map +1 -1
- package/src/lib/locales/en/parts.mjs +1 -0
- package/src/lib/locales/en/parts.mjs.map +1 -1
- package/src/lib/locales/en/steps.d.mts +2 -0
- package/src/lib/locales/en/steps.d.ts +2 -0
- package/src/lib/locales/en/steps.js +2 -0
- package/src/lib/locales/en/steps.js.map +1 -1
- package/src/lib/locales/en/steps.mjs +2 -0
- package/src/lib/locales/en/steps.mjs.map +1 -1
- package/src/lib/locales/en/toolbox.d.mts +1 -1
- package/src/lib/locales/en/toolbox.d.ts +1 -1
- package/src/lib/locales/en/toolbox.js +1 -0
- package/src/lib/locales/en/toolbox.js.map +1 -1
- package/src/lib/locales/en/toolbox.mjs +1 -0
- package/src/lib/locales/en/toolbox.mjs.map +1 -1
- package/src/lib/outline-rows.js +1 -0
- package/src/lib/outline-rows.js.map +1 -1
- package/src/lib/outline-rows.mjs +1 -0
- package/src/lib/outline-rows.mjs.map +1 -1
- package/src/lib/page-tree.d.mts +11 -3
- package/src/lib/page-tree.d.ts +11 -3
- package/src/lib/page-tree.js +38 -2
- package/src/lib/page-tree.js.map +1 -1
- package/src/lib/page-tree.mjs +37 -2
- package/src/lib/page-tree.mjs.map +1 -1
- package/src/lib/panel-block.js +4 -0
- package/src/lib/panel-block.js.map +1 -1
- package/src/lib/panel-block.mjs +4 -0
- package/src/lib/panel-block.mjs.map +1 -1
- package/src/lib/panel-map.d.mts +4 -0
- package/src/lib/panel-map.d.ts +4 -0
- package/src/lib/panel-map.js +562 -0
- package/src/lib/panel-map.js.map +1 -0
- package/src/lib/panel-map.mjs +559 -0
- package/src/lib/panel-map.mjs.map +1 -0
- package/src/lib/panel-screen.js +1 -0
- package/src/lib/panel-screen.js.map +1 -1
- package/src/lib/panel-screen.mjs +1 -0
- package/src/lib/panel-screen.mjs.map +1 -1
- package/src/lib/screen-editor.d.mts +3 -1
- package/src/lib/screen-editor.d.ts +3 -1
- package/src/lib/screen-editor.js +3 -1
- package/src/lib/screen-editor.js.map +1 -1
- package/src/lib/screen-editor.mjs +3 -1
- package/src/lib/screen-editor.mjs.map +1 -1
- package/src/lib/steps-checks.js +6 -4
- package/src/lib/steps-checks.js.map +1 -1
- package/src/lib/steps-checks.mjs +6 -4
- package/src/lib/steps-checks.mjs.map +1 -1
- package/src/lib/steps-marks.js +4 -4
- package/src/lib/steps-marks.js.map +1 -1
- package/src/lib/steps-marks.mjs +5 -5
- package/src/lib/steps-marks.mjs.map +1 -1
- package/src/lib/steps-places.d.mts +13 -2
- package/src/lib/steps-places.d.ts +13 -2
- package/src/lib/steps-places.js +26 -0
- package/src/lib/steps-places.js.map +1 -1
- package/src/lib/steps-places.mjs +25 -0
- package/src/lib/steps-places.mjs.map +1 -1
- package/src/lib/steps-words.js +12 -1
- package/src/lib/steps-words.js.map +1 -1
- package/src/lib/steps-words.mjs +13 -2
- package/src/lib/steps-words.mjs.map +1 -1
- package/src/lib/styles-kinds.d.mts +1 -1
- package/src/lib/styles-kinds.d.ts +1 -1
- package/src/lib/styles-kinds.js +12 -0
- package/src/lib/styles-kinds.js.map +1 -1
- package/src/lib/styles-kinds.mjs +12 -0
- package/src/lib/styles-kinds.mjs.map +1 -1
- package/src/lib/toolbox.d.mts +2 -0
- package/src/lib/toolbox.d.ts +2 -0
- package/src/lib/toolbox.js +1 -1
- package/src/lib/toolbox.js.map +1 -1
- package/src/lib/toolbox.mjs +1 -1
- package/src/lib/toolbox.mjs.map +1 -1
- package/src/lib/try-it.d.mts +3 -1
- package/src/lib/try-it.d.ts +3 -1
- package/src/lib/try-it.js +18 -0
- package/src/lib/try-it.js.map +1 -1
- package/src/lib/try-it.mjs +18 -0
- package/src/lib/try-it.mjs.map +1 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@fieldia/designer",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.17.0",
|
|
4
4
|
"description": "Build Fieldia pages without writing JSON: an editing model with undo and versions, a survey editor, and a canvas.",
|
|
5
5
|
"license": "MIT",
|
|
6
6
|
"homepage": "https://fieldia.dev",
|
|
@@ -44,9 +44,9 @@
|
|
|
44
44
|
"./package.json": "./package.json"
|
|
45
45
|
},
|
|
46
46
|
"dependencies": {
|
|
47
|
-
"@fieldia/core": "0.
|
|
48
|
-
"@fieldia/viewer": "0.
|
|
49
|
-
"@fieldia/widgets": "0.
|
|
47
|
+
"@fieldia/core": "0.17.0",
|
|
48
|
+
"@fieldia/viewer": "0.17.0",
|
|
49
|
+
"@fieldia/widgets": "0.17.0",
|
|
50
50
|
"tslib": "^2.8.1"
|
|
51
51
|
},
|
|
52
52
|
"peerDependencies": {
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import type { ButtonNode, DividerNode, ImageNode, SlotNode, SpacerNode, TextNode } from '@fieldia/core';
|
|
1
|
+
import type { ButtonNode, DividerNode, ImageNode, MapNode, SlotNode, SpacerNode, TextNode } from '@fieldia/core';
|
|
2
2
|
import type { ElementFactory } from './chrome.mjs';
|
|
3
3
|
import type { Designer } from './designer.mjs';
|
|
4
4
|
/**
|
|
5
5
|
* The blocks between fields on the canvas — words, a button, a line, room, a
|
|
6
|
-
* picture, a slot the app fills
|
|
6
|
+
* picture, a slot the app fills, a map (its name and layers: the map itself
|
|
7
|
+
* is in Try it) — drawn as the viewer draws them, so they sit
|
|
7
8
|
* in the grid exactly where they will. Picked, words and a button's label are
|
|
8
9
|
* typed in where they stand; a run of typing is one undo step.
|
|
9
10
|
*/
|
|
10
|
-
export type BlockNode = TextNode | ButtonNode | DividerNode | SpacerNode | ImageNode | SlotNode;
|
|
11
|
+
export type BlockNode = TextNode | ButtonNode | DividerNode | SpacerNode | ImageNode | SlotNode | MapNode;
|
|
11
12
|
export interface BlockViews {
|
|
12
13
|
/** The block's element, made or patched; `picked` opens its words to typing. */
|
|
13
14
|
draw(node: BlockNode, picked: boolean): HTMLElement;
|
|
@@ -1,13 +1,14 @@
|
|
|
1
|
-
import type { ButtonNode, DividerNode, ImageNode, SlotNode, SpacerNode, TextNode } from '@fieldia/core';
|
|
1
|
+
import type { ButtonNode, DividerNode, ImageNode, MapNode, SlotNode, SpacerNode, TextNode } from '@fieldia/core';
|
|
2
2
|
import type { ElementFactory } from './chrome';
|
|
3
3
|
import type { Designer } from './designer';
|
|
4
4
|
/**
|
|
5
5
|
* The blocks between fields on the canvas — words, a button, a line, room, a
|
|
6
|
-
* picture, a slot the app fills
|
|
6
|
+
* picture, a slot the app fills, a map (its name and layers: the map itself
|
|
7
|
+
* is in Try it) — drawn as the viewer draws them, so they sit
|
|
7
8
|
* in the grid exactly where they will. Picked, words and a button's label are
|
|
8
9
|
* typed in where they stand; a run of typing is one undo step.
|
|
9
10
|
*/
|
|
10
|
-
export type BlockNode = TextNode | ButtonNode | DividerNode | SpacerNode | ImageNode | SlotNode;
|
|
11
|
+
export type BlockNode = TextNode | ButtonNode | DividerNode | SpacerNode | ImageNode | SlotNode | MapNode;
|
|
11
12
|
export interface BlockViews {
|
|
12
13
|
/** The block's element, made or patched; `picked` opens its words to typing. */
|
|
13
14
|
draw(node: BlockNode, picked: boolean): HTMLElement;
|
package/src/lib/canvas-blocks.js
CHANGED
|
@@ -35,6 +35,8 @@ function blockViews(options) {
|
|
|
35
35
|
return el('img', { class: 'fd-block fd-image fd-canvas-block', 'data-node': id, alt: '' });
|
|
36
36
|
case 'slot':
|
|
37
37
|
return el('div', { class: 'fd-slot fd-canvas-block', 'data-node': id });
|
|
38
|
+
case 'map':
|
|
39
|
+
return el('div', { class: 'fd-map-preview fd-canvas-block', 'data-node': id });
|
|
38
40
|
}
|
|
39
41
|
}
|
|
40
42
|
/** Words typed in where they stand: kept as they are while the cursor is in them. */
|
|
@@ -71,7 +73,12 @@ function blockViews(options) {
|
|
|
71
73
|
}
|
|
72
74
|
else if (node.type === 'slot')
|
|
73
75
|
element.textContent = node.name;
|
|
74
|
-
|
|
76
|
+
else if (node.type === 'map') {
|
|
77
|
+
const w = designer.words.canvas;
|
|
78
|
+
element.replaceChildren(el('strong', {}, node.label || w.map), el('span', {}, w.mapLayers(node.layers.map((layer) => layer.id))));
|
|
79
|
+
element.style.minHeight = `${Math.round((node.height ?? 360) / 2)}px`;
|
|
80
|
+
}
|
|
81
|
+
const span = node.type === 'divider' ? undefined : node.type === 'map' ? (node.colspan ?? 12) : node.colspan;
|
|
75
82
|
if (span)
|
|
76
83
|
element.style.setProperty('--fd-span', String(span));
|
|
77
84
|
else
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvas-blocks.js","sourceRoot":"","sources":["../../../../../libs/designer/src/lib/canvas-blocks.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"canvas-blocks.js","sourceRoot":"","sources":["../../../../../libs/designer/src/lib/canvas-blocks.ts"],"names":[],"mappings":"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"}
|
|
@@ -32,6 +32,8 @@ export function blockViews(options) {
|
|
|
32
32
|
return el('img', { class: 'fd-block fd-image fd-canvas-block', 'data-node': id, alt: '' });
|
|
33
33
|
case 'slot':
|
|
34
34
|
return el('div', { class: 'fd-slot fd-canvas-block', 'data-node': id });
|
|
35
|
+
case 'map':
|
|
36
|
+
return el('div', { class: 'fd-map-preview fd-canvas-block', 'data-node': id });
|
|
35
37
|
}
|
|
36
38
|
}
|
|
37
39
|
/** Words typed in where they stand: kept as they are while the cursor is in them. */
|
|
@@ -68,7 +70,12 @@ export function blockViews(options) {
|
|
|
68
70
|
}
|
|
69
71
|
else if (node.type === 'slot')
|
|
70
72
|
element.textContent = node.name;
|
|
71
|
-
|
|
73
|
+
else if (node.type === 'map') {
|
|
74
|
+
const w = designer.words.canvas;
|
|
75
|
+
element.replaceChildren(el('strong', {}, node.label || w.map), el('span', {}, w.mapLayers(node.layers.map((layer) => layer.id))));
|
|
76
|
+
element.style.minHeight = `${Math.round((node.height ?? 360) / 2)}px`;
|
|
77
|
+
}
|
|
78
|
+
const span = node.type === 'divider' ? undefined : node.type === 'map' ? (node.colspan ?? 12) : node.colspan;
|
|
72
79
|
if (span)
|
|
73
80
|
element.style.setProperty('--fd-span', String(span));
|
|
74
81
|
else
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvas-blocks.mjs","sourceRoot":"","sources":["../../../../../libs/designer/src/lib/canvas-blocks.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"canvas-blocks.mjs","sourceRoot":"","sources":["../../../../../libs/designer/src/lib/canvas-blocks.ts"],"names":[],"mappings":"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"}
|
package/src/lib/canvas-icons.js
CHANGED
|
@@ -17,6 +17,7 @@ const SHAPES = {
|
|
|
17
17
|
image: '<rect x="3" y="5" width="18" height="14" rx="2"/><circle cx="9" cy="10" r="1.5"/><path d="m21 16-5-5-8 8"/>',
|
|
18
18
|
button: '<rect x="3" y="8" width="18" height="8" rx="4"/><path d="M9 12h6"/>',
|
|
19
19
|
form: '<rect x="3" y="3" width="13" height="16" rx="2"/><path d="M7 8h5M7 12h5M20 7v12a2 2 0 0 1-2 2H8"/>',
|
|
20
|
+
map: '<path d="M3 6.5l6-2.5 6 2.5 6-2.5v13.5l-6 2.5-6-2.5-6 2.5z"/><path d="M9 4v13.5M15 6.5V20"/>',
|
|
20
21
|
};
|
|
21
22
|
function blockIcon(doc, name) {
|
|
22
23
|
const svg = doc.createElementNS('http://www.w3.org/2000/svg', 'svg');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvas-icons.js","sourceRoot":"","sources":["../../../../../libs/designer/src/lib/canvas-icons.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;
|
|
1
|
+
{"version":3,"file":"canvas-icons.js","sourceRoot":"","sources":["../../../../../libs/designer/src/lib/canvas-icons.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;AAgBH,8BASC;AAvBD,MAAM,MAAM,GAA2B;IACrC,KAAK,EAAE,sEAAsE;IAC7E,IAAI,EAAE,uGAAuG;IAC7G,IAAI,EAAE,0EAA0E;IAChF,OAAO,EAAE,qCAAqC;IAC9C,IAAI,EAAE,oCAAoC;IAC1C,OAAO,EAAE,+DAA+D;IACxE,MAAM,EAAE,oDAAoD;IAC5D,KAAK,EAAE,6GAA6G;IACpH,MAAM,EAAE,qEAAqE;IAC7E,IAAI,EAAE,oGAAoG;IAC1G,GAAG,EAAE,8FAA8F;CACpG,CAAC;AAEF,SAAgB,SAAS,CAAC,GAAa,EAAE,IAAY;IACnD,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;IACrE,GAAG,CAAC,YAAY,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACzC,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACtC,GAAG,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACxC,GAAG,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACvC,kEAAkE;IAClE,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;IAChD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
package/src/lib/canvas-icons.mjs
CHANGED
|
@@ -14,6 +14,7 @@ const SHAPES = {
|
|
|
14
14
|
image: '<rect x="3" y="5" width="18" height="14" rx="2"/><circle cx="9" cy="10" r="1.5"/><path d="m21 16-5-5-8 8"/>',
|
|
15
15
|
button: '<rect x="3" y="8" width="18" height="8" rx="4"/><path d="M9 12h6"/>',
|
|
16
16
|
form: '<rect x="3" y="3" width="13" height="16" rx="2"/><path d="M7 8h5M7 12h5M20 7v12a2 2 0 0 1-2 2H8"/>',
|
|
17
|
+
map: '<path d="M3 6.5l6-2.5 6 2.5 6-2.5v13.5l-6 2.5-6-2.5-6 2.5z"/><path d="M9 4v13.5M15 6.5V20"/>',
|
|
17
18
|
};
|
|
18
19
|
export function blockIcon(doc, name) {
|
|
19
20
|
const svg = doc.createElementNS('http://www.w3.org/2000/svg', 'svg');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"canvas-icons.mjs","sourceRoot":"","sources":["../../../../../libs/designer/src/lib/canvas-icons.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,GAA2B;IACrC,KAAK,EAAE,sEAAsE;IAC7E,IAAI,EAAE,uGAAuG;IAC7G,IAAI,EAAE,0EAA0E;IAChF,OAAO,EAAE,qCAAqC;IAC9C,IAAI,EAAE,oCAAoC;IAC1C,OAAO,EAAE,+DAA+D;IACxE,MAAM,EAAE,oDAAoD;IAC5D,KAAK,EAAE,6GAA6G;IACpH,MAAM,EAAE,qEAAqE;IAC7E,IAAI,EAAE,oGAAoG;
|
|
1
|
+
{"version":3,"file":"canvas-icons.mjs","sourceRoot":"","sources":["../../../../../libs/designer/src/lib/canvas-icons.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,MAAM,MAAM,GAA2B;IACrC,KAAK,EAAE,sEAAsE;IAC7E,IAAI,EAAE,uGAAuG;IAC7G,IAAI,EAAE,0EAA0E;IAChF,OAAO,EAAE,qCAAqC;IAC9C,IAAI,EAAE,oCAAoC;IAC1C,OAAO,EAAE,+DAA+D;IACxE,MAAM,EAAE,oDAAoD;IAC5D,KAAK,EAAE,6GAA6G;IACpH,MAAM,EAAE,qEAAqE;IAC7E,IAAI,EAAE,oGAAoG;IAC1G,GAAG,EAAE,8FAA8F;CACpG,CAAC;AAEF,MAAM,UAAU,SAAS,CAAC,GAAa,EAAE,IAAY;IACnD,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,4BAA4B,EAAE,KAAK,CAAC,CAAC;IACrE,GAAG,CAAC,YAAY,CAAC,SAAS,EAAE,WAAW,CAAC,CAAC;IACzC,GAAG,CAAC,YAAY,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC;IACtC,GAAG,CAAC,YAAY,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACxC,GAAG,CAAC,YAAY,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IACvC,kEAAkE;IAClE,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,CAAC;IAChD,OAAO,GAAG,CAAC;AACb,CAAC"}
|
package/src/lib/designer.d.mts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type AnswerRule, type ColumnCount, type ColumnsByWidth, type Field, type LabelPlace, type OptionsFrom, type PartLookKind, type HelpShown, type Page, type PageLook, type SetWhen } from '@fieldia/core';
|
|
1
|
+
import { type AnswerRule, type ColumnCount, type ColumnsByWidth, type Field, type LabelPlace, type OptionsFrom, type PartLookKind, type HelpShown, type MapFence, type MapLayer, type MapNode, type Page, type PageLook, type SetWhen } from '@fieldia/core';
|
|
2
2
|
import { type Condition, type ShownWhile } from './conditions.mjs';
|
|
3
3
|
import { type HeaderCommands } from './header-commands.mjs';
|
|
4
4
|
import { type ListCommands } from './list-commands.mjs';
|
|
@@ -333,6 +333,18 @@ export interface Designer extends HeaderCommands, ListCommands, ChoiceCommands,
|
|
|
333
333
|
setOptionsFrom(id: string, from: OptionsFrom | null): boolean;
|
|
334
334
|
/** A block's words and look, a button's label, a picture's address and description; a run of typing in one is one undo step. */
|
|
335
335
|
updateBlock(id: string, patch: BlockPatch): boolean;
|
|
336
|
+
/**
|
|
337
|
+
* A map's name, height and layers. The fields its layers name come onto the
|
|
338
|
+
* page from the model; the page check says what else is wrong with them.
|
|
339
|
+
*/
|
|
340
|
+
/** A map's name, height, layers, tools under its zoom, and fences; `null` takes a height, tools or fences away. Its fields come onto the page from the model. */
|
|
341
|
+
updateMap(id: string, patch: {
|
|
342
|
+
label?: string;
|
|
343
|
+
height?: number | null;
|
|
344
|
+
layers?: MapLayer[];
|
|
345
|
+
tools?: NonNullable<MapNode['tools']> | null;
|
|
346
|
+
fences?: MapFence[] | null;
|
|
347
|
+
}): boolean;
|
|
336
348
|
/**
|
|
337
349
|
* Several parts' widths as one edit: two trading width across the gutter
|
|
338
350
|
* between them. With `twelfths`, widths are twelfths of their row, and a
|
|
@@ -406,6 +418,8 @@ export interface Designer extends HeaderCommands, ListCommands, ChoiceCommands,
|
|
|
406
418
|
setFold(id: string, fold: Fold): boolean;
|
|
407
419
|
/** Whether a saved form can be placed in the page: the app's store lists its saved forms (`PageStore.list`). */
|
|
408
420
|
canPlaceForms(): boolean;
|
|
421
|
+
/** The sets of borders the app's maps know, for a map's areas by colour. */
|
|
422
|
+
regionSets(): readonly RegionSet[];
|
|
409
423
|
/** The saved forms that can be placed in this page: the store's, this page itself left out. None without a store that lists them. */
|
|
410
424
|
savedForms(): Promise<SavedFormRef[]>;
|
|
411
425
|
/**
|
|
@@ -462,6 +476,8 @@ export declare function createDesigner(options: {
|
|
|
462
476
|
locale?: DesignerLocale | (string & {});
|
|
463
477
|
/** Open a saved form placed in the page where it is made, by its id: “Open it” on the canvas. Without one, it is not offered. */
|
|
464
478
|
openForm?: (id: string) => void;
|
|
479
|
+
/** The sets of borders the app's maps know (their `regions`), offered for a map's areas by colour. Without them, a map has no areas to add. */
|
|
480
|
+
regionSets?: readonly RegionSet[];
|
|
465
481
|
}): Designer;
|
|
466
482
|
export declare namespace createDesigner {
|
|
467
483
|
var open: (id: string, store: PageStore, options?: {
|
|
@@ -471,5 +487,17 @@ export declare namespace createDesigner {
|
|
|
471
487
|
looks?: LookStore;
|
|
472
488
|
openForm?: (id: string) => void;
|
|
473
489
|
locale?: DesignerLocale | (string & {});
|
|
490
|
+
regionSets?: readonly RegionSet[];
|
|
474
491
|
}) => Promise<Designer>;
|
|
475
492
|
}
|
|
493
|
+
/**
|
|
494
|
+
* A set of borders an app's maps know, by the name its maps' `regions` give:
|
|
495
|
+
* the property that keys each border (what a record's field holds), the one
|
|
496
|
+
* that names it, and the numbers among its properties an area can be shaded by.
|
|
497
|
+
*/
|
|
498
|
+
export interface RegionSet {
|
|
499
|
+
name: string;
|
|
500
|
+
key: string;
|
|
501
|
+
nameKey?: string;
|
|
502
|
+
numbers?: readonly string[];
|
|
503
|
+
}
|
package/src/lib/designer.d.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { type AnswerRule, type ColumnCount, type ColumnsByWidth, type Field, type LabelPlace, type OptionsFrom, type PartLookKind, type HelpShown, type Page, type PageLook, type SetWhen } from '@fieldia/core';
|
|
1
|
+
import { type AnswerRule, type ColumnCount, type ColumnsByWidth, type Field, type LabelPlace, type OptionsFrom, type PartLookKind, type HelpShown, type MapFence, type MapLayer, type MapNode, type Page, type PageLook, type SetWhen } from '@fieldia/core';
|
|
2
2
|
import { type Condition, type ShownWhile } from './conditions';
|
|
3
3
|
import { type HeaderCommands } from './header-commands';
|
|
4
4
|
import { type ListCommands } from './list-commands';
|
|
@@ -333,6 +333,18 @@ export interface Designer extends HeaderCommands, ListCommands, ChoiceCommands,
|
|
|
333
333
|
setOptionsFrom(id: string, from: OptionsFrom | null): boolean;
|
|
334
334
|
/** A block's words and look, a button's label, a picture's address and description; a run of typing in one is one undo step. */
|
|
335
335
|
updateBlock(id: string, patch: BlockPatch): boolean;
|
|
336
|
+
/**
|
|
337
|
+
* A map's name, height and layers. The fields its layers name come onto the
|
|
338
|
+
* page from the model; the page check says what else is wrong with them.
|
|
339
|
+
*/
|
|
340
|
+
/** A map's name, height, layers, tools under its zoom, and fences; `null` takes a height, tools or fences away. Its fields come onto the page from the model. */
|
|
341
|
+
updateMap(id: string, patch: {
|
|
342
|
+
label?: string;
|
|
343
|
+
height?: number | null;
|
|
344
|
+
layers?: MapLayer[];
|
|
345
|
+
tools?: NonNullable<MapNode['tools']> | null;
|
|
346
|
+
fences?: MapFence[] | null;
|
|
347
|
+
}): boolean;
|
|
336
348
|
/**
|
|
337
349
|
* Several parts' widths as one edit: two trading width across the gutter
|
|
338
350
|
* between them. With `twelfths`, widths are twelfths of their row, and a
|
|
@@ -406,6 +418,8 @@ export interface Designer extends HeaderCommands, ListCommands, ChoiceCommands,
|
|
|
406
418
|
setFold(id: string, fold: Fold): boolean;
|
|
407
419
|
/** Whether a saved form can be placed in the page: the app's store lists its saved forms (`PageStore.list`). */
|
|
408
420
|
canPlaceForms(): boolean;
|
|
421
|
+
/** The sets of borders the app's maps know, for a map's areas by colour. */
|
|
422
|
+
regionSets(): readonly RegionSet[];
|
|
409
423
|
/** The saved forms that can be placed in this page: the store's, this page itself left out. None without a store that lists them. */
|
|
410
424
|
savedForms(): Promise<SavedFormRef[]>;
|
|
411
425
|
/**
|
|
@@ -462,6 +476,8 @@ export declare function createDesigner(options: {
|
|
|
462
476
|
locale?: DesignerLocale | (string & {});
|
|
463
477
|
/** Open a saved form placed in the page where it is made, by its id: “Open it” on the canvas. Without one, it is not offered. */
|
|
464
478
|
openForm?: (id: string) => void;
|
|
479
|
+
/** The sets of borders the app's maps know (their `regions`), offered for a map's areas by colour. Without them, a map has no areas to add. */
|
|
480
|
+
regionSets?: readonly RegionSet[];
|
|
465
481
|
}): Designer;
|
|
466
482
|
export declare namespace createDesigner {
|
|
467
483
|
var open: (id: string, store: PageStore, options?: {
|
|
@@ -471,5 +487,17 @@ export declare namespace createDesigner {
|
|
|
471
487
|
looks?: LookStore;
|
|
472
488
|
openForm?: (id: string) => void;
|
|
473
489
|
locale?: DesignerLocale | (string & {});
|
|
490
|
+
regionSets?: readonly RegionSet[];
|
|
474
491
|
}) => Promise<Designer>;
|
|
475
492
|
}
|
|
493
|
+
/**
|
|
494
|
+
* A set of borders an app's maps know, by the name its maps' `regions` give:
|
|
495
|
+
* the property that keys each border (what a record's field holds), the one
|
|
496
|
+
* that names it, and the numbers among its properties an area can be shaded by.
|
|
497
|
+
*/
|
|
498
|
+
export interface RegionSet {
|
|
499
|
+
name: string;
|
|
500
|
+
key: string;
|
|
501
|
+
nameKey?: string;
|
|
502
|
+
numbers?: readonly string[];
|
|
503
|
+
}
|
package/src/lib/designer.js
CHANGED
|
@@ -1184,6 +1184,35 @@ function createDesigner(options) {
|
|
|
1184
1184
|
},
|
|
1185
1185
|
// canvas lane
|
|
1186
1186
|
updateBlock: (id, patch) => apply((draft) => settings.updateBlock(draft, id, patch), `block:${id}:${Object.keys(patch).join(',')}`),
|
|
1187
|
+
updateMap: (id, patch) => apply((draft) => {
|
|
1188
|
+
const node = (0, page_tree_1.findNode)(draft, id)?.node;
|
|
1189
|
+
if (!node || node.type !== 'map')
|
|
1190
|
+
throw new refusal_1.Refusal((w) => w.layout.noPart(id));
|
|
1191
|
+
if (patch.label !== undefined) {
|
|
1192
|
+
if (patch.label.trim())
|
|
1193
|
+
node.label = patch.label;
|
|
1194
|
+
else
|
|
1195
|
+
delete node.label;
|
|
1196
|
+
}
|
|
1197
|
+
if (patch.height === null)
|
|
1198
|
+
delete node.height;
|
|
1199
|
+
else if (patch.height !== undefined)
|
|
1200
|
+
node.height = patch.height;
|
|
1201
|
+
if (patch.tools === null || patch.tools?.length === 0)
|
|
1202
|
+
delete node.tools;
|
|
1203
|
+
else if (patch.tools !== undefined)
|
|
1204
|
+
node.tools = [...patch.tools];
|
|
1205
|
+
if (patch.fences === null || patch.fences?.length === 0)
|
|
1206
|
+
delete node.fences;
|
|
1207
|
+
else if (patch.fences !== undefined)
|
|
1208
|
+
node.fences = clone(patch.fences);
|
|
1209
|
+
if (patch.layers !== undefined)
|
|
1210
|
+
node.layers = clone(patch.layers);
|
|
1211
|
+
if (patch.layers !== undefined || patch.fences !== undefined)
|
|
1212
|
+
for (const name of (0, page_tree_1.mapNodeFields)(node))
|
|
1213
|
+
if (!draft.fields[name] && model[name])
|
|
1214
|
+
draft.fields[name] = model[name];
|
|
1215
|
+
}, `map:${id}:${Object.keys(patch).join(',')}`),
|
|
1187
1216
|
setWidths: (widths, options) => apply((draft) => settings.setWidths(draft, widths, options?.twelfths)),
|
|
1188
1217
|
// rules lane
|
|
1189
1218
|
...(0, rules_commands_1.rulesCommands)({ apply, getPage: () => page, fromModel }),
|
|
@@ -1235,6 +1264,7 @@ function createDesigner(options) {
|
|
|
1235
1264
|
setFold: (id, fold) => apply((draft) => (0, group_fold_1.setFold)(draft, id, fold)),
|
|
1236
1265
|
// embed lane
|
|
1237
1266
|
canPlaceForms: () => typeof store?.list === 'function',
|
|
1267
|
+
regionSets: () => options.regionSets ?? [],
|
|
1238
1268
|
async savedForms() {
|
|
1239
1269
|
if (!store?.list)
|
|
1240
1270
|
return [];
|
|
@@ -1280,7 +1310,7 @@ createDesigner.open = async (id, store, options = {}) => {
|
|
|
1280
1310
|
const page = draft ?? versions[versions.length - 1]?.page;
|
|
1281
1311
|
if (!page)
|
|
1282
1312
|
throw new Error(`The store has no page "${id}"`);
|
|
1283
|
-
return createDesigner({ page, store, versions, model: options.model, lists: options.lists, kinds: options.kinds, looks: options.looks, openForm: options.openForm, locale: options.locale });
|
|
1313
|
+
return createDesigner({ page, store, versions, model: options.model, lists: options.lists, kinds: options.kinds, looks: options.looks, openForm: options.openForm, locale: options.locale, regionSets: options.regionSets });
|
|
1284
1314
|
};
|
|
1285
1315
|
/** A sheet's status steps, by the id the designer picks them by: they show for some records only, and to some roles, as any part. */
|
|
1286
1316
|
function statusbarOf(page, id) {
|