@fieldia/core 0.28.0 → 0.30.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/README.md +125 -1
- package/package.json +1 -1
- package/schema/page.schema.json +279 -6
- package/src/index.d.mts +8 -2
- package/src/index.d.ts +8 -2
- package/src/index.js +29 -2
- package/src/index.js.map +1 -1
- package/src/index.mjs +11 -2
- package/src/index.mjs.map +1 -1
- package/src/lib/format/approval-checks.d.mts +8 -0
- package/src/lib/format/approval-checks.d.ts +8 -0
- package/src/lib/format/approval-checks.js +29 -0
- package/src/lib/format/approval-checks.js.map +1 -0
- package/src/lib/format/approval-checks.mjs +26 -0
- package/src/lib/format/approval-checks.mjs.map +1 -0
- package/src/lib/format/approval.d.mts +20 -0
- package/src/lib/format/approval.d.ts +20 -0
- package/src/lib/format/approval.js +25 -0
- package/src/lib/format/approval.js.map +1 -0
- package/src/lib/format/approval.mjs +22 -0
- package/src/lib/format/approval.mjs.map +1 -0
- package/src/lib/format/assist-checks.d.mts +14 -0
- package/src/lib/format/assist-checks.d.ts +14 -0
- package/src/lib/format/assist-checks.js +68 -0
- package/src/lib/format/assist-checks.js.map +1 -0
- package/src/lib/format/assist-checks.mjs +64 -0
- package/src/lib/format/assist-checks.mjs.map +1 -0
- package/src/lib/format/assist.d.mts +41 -0
- package/src/lib/format/assist.d.ts +41 -0
- package/src/lib/format/assist.js +29 -0
- package/src/lib/format/assist.js.map +1 -0
- package/src/lib/format/assist.mjs +26 -0
- package/src/lib/format/assist.mjs.map +1 -0
- package/src/lib/format/editable-checks.d.mts +8 -0
- package/src/lib/format/editable-checks.d.ts +8 -0
- package/src/lib/format/editable-checks.js +38 -0
- package/src/lib/format/editable-checks.js.map +1 -0
- package/src/lib/format/editable-checks.mjs +35 -0
- package/src/lib/format/editable-checks.mjs.map +1 -0
- package/src/lib/format/field.d.mts +86 -0
- package/src/lib/format/field.d.ts +86 -0
- package/src/lib/format/field.js +56 -10
- package/src/lib/format/field.js.map +1 -1
- package/src/lib/format/field.mjs +55 -9
- package/src/lib/format/field.mjs.map +1 -1
- package/src/lib/format/head-checks.d.mts +10 -2
- package/src/lib/format/head-checks.d.ts +10 -2
- package/src/lib/format/head-checks.js +9 -2
- package/src/lib/format/head-checks.js.map +1 -1
- package/src/lib/format/head-checks.mjs +10 -4
- package/src/lib/format/head-checks.mjs.map +1 -1
- package/src/lib/format/languages-checks.d.mts +8 -0
- package/src/lib/format/languages-checks.d.ts +8 -0
- package/src/lib/format/languages-checks.js +40 -0
- package/src/lib/format/languages-checks.js.map +1 -0
- package/src/lib/format/languages-checks.mjs +37 -0
- package/src/lib/format/languages-checks.mjs.map +1 -0
- package/src/lib/format/later-checks.d.mts +4 -3
- package/src/lib/format/later-checks.d.ts +4 -3
- package/src/lib/format/later-checks.js +4 -3
- package/src/lib/format/later-checks.js.map +1 -1
- package/src/lib/format/later-checks.mjs +4 -3
- package/src/lib/format/later-checks.mjs.map +1 -1
- package/src/lib/format/layout.d.mts +129 -26
- package/src/lib/format/layout.d.ts +129 -26
- package/src/lib/format/layout.js +24 -3
- package/src/lib/format/layout.js.map +1 -1
- package/src/lib/format/layout.mjs +22 -1
- package/src/lib/format/layout.mjs.map +1 -1
- package/src/lib/format/layout.types.d.mts +2 -1
- package/src/lib/format/layout.types.d.ts +2 -1
- package/src/lib/format/list-editable.d.mts +20 -0
- package/src/lib/format/list-editable.d.ts +20 -0
- package/src/lib/format/list-editable.js +33 -0
- package/src/lib/format/list-editable.js.map +1 -0
- package/src/lib/format/list-editable.mjs +28 -0
- package/src/lib/format/list-editable.mjs.map +1 -0
- package/src/lib/format/page.d.mts +88 -9
- package/src/lib/format/page.d.ts +88 -9
- package/src/lib/format/page.js +4 -0
- package/src/lib/format/page.js.map +1 -1
- package/src/lib/format/page.mjs +4 -0
- package/src/lib/format/page.mjs.map +1 -1
- package/src/lib/format/photos-options.d.mts +29 -0
- package/src/lib/format/photos-options.d.ts +29 -0
- package/src/lib/format/photos-options.js +49 -0
- package/src/lib/format/photos-options.js.map +1 -0
- package/src/lib/format/photos-options.mjs +45 -0
- package/src/lib/format/photos-options.mjs.map +1 -0
- package/src/lib/format/references.d.mts +3 -1
- package/src/lib/format/references.d.ts +3 -1
- package/src/lib/format/references.js +41 -14
- package/src/lib/format/references.js.map +1 -1
- package/src/lib/format/references.mjs +42 -15
- package/src/lib/format/references.mjs.map +1 -1
- package/src/lib/format/scan-checks.d.mts +12 -0
- package/src/lib/format/scan-checks.d.ts +12 -0
- package/src/lib/format/scan-checks.js +89 -0
- package/src/lib/format/scan-checks.js.map +1 -0
- package/src/lib/format/scan-checks.mjs +86 -0
- package/src/lib/format/scan-checks.mjs.map +1 -0
- package/src/lib/format/scan-options.d.mts +84 -0
- package/src/lib/format/scan-options.d.ts +84 -0
- package/src/lib/format/scan-options.js +58 -0
- package/src/lib/format/scan-options.js.map +1 -0
- package/src/lib/format/scan-options.mjs +54 -0
- package/src/lib/format/scan-options.mjs.map +1 -0
- package/src/lib/format/sheet-head-checks.d.mts +10 -2
- package/src/lib/format/sheet-head-checks.d.ts +10 -2
- package/src/lib/format/sheet-head-checks.js +24 -0
- package/src/lib/format/sheet-head-checks.js.map +1 -1
- package/src/lib/format/sheet-head-checks.mjs +23 -0
- package/src/lib/format/sheet-head-checks.mjs.map +1 -1
- package/src/lib/format/upgrade.d.mts +6 -2
- package/src/lib/format/upgrade.d.ts +6 -2
- package/src/lib/format/upgrade.js +6 -2
- package/src/lib/format/upgrade.js.map +1 -1
- package/src/lib/format/upgrade.mjs +6 -2
- package/src/lib/format/upgrade.mjs.map +1 -1
- package/src/lib/format/version.d.mts +2 -2
- package/src/lib/format/version.d.ts +2 -2
- package/src/lib/format/version.js +2 -2
- package/src/lib/format/version.js.map +1 -1
- package/src/lib/format/version.mjs +2 -2
- package/src/lib/format/version.mjs.map +1 -1
- package/src/lib/record/approvals-part.d.mts +6 -0
- package/src/lib/record/approvals-part.d.ts +6 -0
- package/src/lib/record/approvals-part.js +14 -0
- package/src/lib/record/approvals-part.js.map +1 -0
- package/src/lib/record/approvals-part.mjs +7 -0
- package/src/lib/record/approvals-part.mjs.map +1 -0
- package/src/lib/record/approving.d.mts +45 -0
- package/src/lib/record/approving.d.ts +45 -0
- package/src/lib/record/approving.js +10 -0
- package/src/lib/record/approving.js.map +1 -0
- package/src/lib/record/approving.mjs +7 -0
- package/src/lib/record/approving.mjs.map +1 -0
- package/src/lib/record/check.js +4 -0
- package/src/lib/record/check.js.map +1 -1
- package/src/lib/record/check.mjs +4 -0
- package/src/lib/record/check.mjs.map +1 -1
- package/src/lib/record/data-source.d.mts +270 -0
- package/src/lib/record/data-source.d.ts +270 -0
- package/src/lib/record/data-source.js.map +1 -1
- package/src/lib/record/data-source.mjs.map +1 -1
- package/src/lib/record/files-part.d.mts +7 -0
- package/src/lib/record/files-part.d.ts +7 -0
- package/src/lib/record/files-part.js +167 -0
- package/src/lib/record/files-part.js.map +1 -0
- package/src/lib/record/files-part.mjs +163 -0
- package/src/lib/record/files-part.mjs.map +1 -0
- package/src/lib/record/filter.d.mts +5 -0
- package/src/lib/record/filter.d.ts +5 -0
- package/src/lib/record/filter.js +1 -0
- package/src/lib/record/filter.js.map +1 -1
- package/src/lib/record/filter.mjs +1 -1
- package/src/lib/record/filter.mjs.map +1 -1
- package/src/lib/record/form-approvals.d.mts +47 -0
- package/src/lib/record/form-approvals.d.ts +47 -0
- package/src/lib/record/form-approvals.js +186 -0
- package/src/lib/record/form-approvals.js.map +1 -0
- package/src/lib/record/form-approvals.mjs +180 -0
- package/src/lib/record/form-approvals.mjs.map +1 -0
- package/src/lib/record/form.d.mts +32 -1
- package/src/lib/record/form.d.ts +32 -1
- package/src/lib/record/form.js +60 -15
- package/src/lib/record/form.js.map +1 -1
- package/src/lib/record/form.mjs +60 -15
- package/src/lib/record/form.mjs.map +1 -1
- package/src/lib/record/languages-part.d.mts +32 -0
- package/src/lib/record/languages-part.d.ts +32 -0
- package/src/lib/record/languages-part.js +104 -0
- package/src/lib/record/languages-part.js.map +1 -0
- package/src/lib/record/languages-part.mjs +96 -0
- package/src/lib/record/languages-part.mjs.map +1 -0
- package/src/lib/record/languages.d.mts +26 -0
- package/src/lib/record/languages.d.ts +26 -0
- package/src/lib/record/languages.js +20 -0
- package/src/lib/record/languages.js.map +1 -0
- package/src/lib/record/languages.mjs +15 -0
- package/src/lib/record/languages.mjs.map +1 -0
- package/src/lib/record/locales/ar.js +5 -0
- package/src/lib/record/locales/ar.js.map +1 -1
- package/src/lib/record/locales/ar.mjs +5 -0
- package/src/lib/record/locales/ar.mjs.map +1 -1
- package/src/lib/record/locales/de.js +5 -0
- package/src/lib/record/locales/de.js.map +1 -1
- package/src/lib/record/locales/de.mjs +5 -0
- package/src/lib/record/locales/de.mjs.map +1 -1
- package/src/lib/record/locales/fr.js +5 -0
- package/src/lib/record/locales/fr.js.map +1 -1
- package/src/lib/record/locales/fr.mjs +5 -0
- package/src/lib/record/locales/fr.mjs.map +1 -1
- package/src/lib/record/memory-approvals.d.mts +47 -0
- package/src/lib/record/memory-approvals.d.ts +47 -0
- package/src/lib/record/memory-approvals.js +78 -0
- package/src/lib/record/memory-approvals.js.map +1 -0
- package/src/lib/record/memory-approvals.mjs +75 -0
- package/src/lib/record/memory-approvals.mjs.map +1 -0
- package/src/lib/record/memory-assist.d.mts +53 -0
- package/src/lib/record/memory-assist.d.ts +53 -0
- package/src/lib/record/memory-assist.js +519 -0
- package/src/lib/record/memory-assist.js.map +1 -0
- package/src/lib/record/memory-assist.mjs +513 -0
- package/src/lib/record/memory-assist.mjs.map +1 -0
- package/src/lib/record/memory-clusters.d.mts +18 -0
- package/src/lib/record/memory-clusters.d.ts +18 -0
- package/src/lib/record/memory-clusters.js +83 -0
- package/src/lib/record/memory-clusters.js.map +1 -0
- package/src/lib/record/memory-clusters.mjs +80 -0
- package/src/lib/record/memory-clusters.mjs.map +1 -0
- package/src/lib/record/memory-data-source.d.mts +43 -3
- package/src/lib/record/memory-data-source.d.ts +43 -3
- package/src/lib/record/memory-data-source.js +105 -19
- package/src/lib/record/memory-data-source.js.map +1 -1
- package/src/lib/record/memory-data-source.mjs +105 -19
- package/src/lib/record/memory-data-source.mjs.map +1 -1
- package/src/lib/record/memory-later.d.mts +1 -1
- package/src/lib/record/memory-later.d.ts +1 -1
- package/src/lib/record/memory-later.js +4 -1
- package/src/lib/record/memory-later.js.map +1 -1
- package/src/lib/record/memory-later.mjs +4 -1
- package/src/lib/record/memory-later.mjs.map +1 -1
- package/src/lib/record/messages.d.mts +14 -0
- package/src/lib/record/messages.d.ts +14 -0
- package/src/lib/record/messages.js +5 -0
- package/src/lib/record/messages.js.map +1 -1
- package/src/lib/record/messages.mjs +5 -0
- package/src/lib/record/messages.mjs.map +1 -1
- package/src/lib/record/run.d.mts +6 -1
- package/src/lib/record/run.d.ts +6 -1
- package/src/lib/record/run.js.map +1 -1
- package/src/lib/record/run.mjs.map +1 -1
- package/src/lib/record/uploads.d.mts +35 -9
- package/src/lib/record/uploads.d.ts +35 -9
- package/src/lib/record/uploads.js +49 -169
- package/src/lib/record/uploads.js.map +1 -1
- package/src/lib/record/uploads.mjs +42 -164
- package/src/lib/record/uploads.mjs.map +1 -1
- package/src/lib/record/values.d.mts +23 -0
- package/src/lib/record/values.d.ts +23 -0
- package/src/lib/record/values.js +4 -0
- package/src/lib/record/values.js.map +1 -1
- package/src/lib/record/values.mjs +4 -0
- package/src/lib/record/values.mjs.map +1 -1
- package/src/runtime.d.mts +12 -5
- package/src/runtime.d.ts +12 -5
- package/src/runtime.js +18 -3
- package/src/runtime.js.map +1 -1
- package/src/runtime.mjs +7 -1
- package/src/runtime.mjs.map +1 -1
|
@@ -0,0 +1,84 @@
|
|
|
1
|
+
import * as z from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* A code scanned with the camera into a field (`options.scan`): a Scan button beside its box opens the camera in a sheet
|
|
4
|
+
* (the back camera on a phone), and a code read fills the field — a char's or a text's words, a link's record found by
|
|
5
|
+
* its code. On a table of lines, each code read counts: the line holding what it names gets one more, else a line is
|
|
6
|
+
* added with one. A scanner gun (a keyboard wedge) types into the box as ever.
|
|
7
|
+
*
|
|
8
|
+
* `true`, or its settings:
|
|
9
|
+
*
|
|
10
|
+
* - `formats`: the kinds of code read — `qr_code`, `data_matrix`, `ean_13`, `ean_8`, `upc_a`, `upc_e`, `code_128`,
|
|
11
|
+
* `code_39`; every one when left out. Fewer read faster, and never mistake a box's other codes for the one meant.
|
|
12
|
+
* - `by`: a link's — the field of the linked records that holds their code ("barcode"), whose value must be the code
|
|
13
|
+
* exactly; left out, the code is searched as a name is (an app's name search may find a product by its barcode).
|
|
14
|
+
* - `part`: a GS1 code's part this field takes, by its Application Identifier — "10" a batch or lot, "21" a serial
|
|
15
|
+
* number, "01" a product's GTIN, "17" an expiry date; left out, the whole code.
|
|
16
|
+
* - `fills`: the other fields the same GS1 code fills, each by its part — `{ "expiry": "17", "product_id": { "part":
|
|
17
|
+
* "01", "by": "barcode" } }` — a line's other columns for a cell or a counted line.
|
|
18
|
+
* - `sound`: false keeps the scan silent (a beep where the browser lets it, and a phone's buzz, otherwise).
|
|
19
|
+
* - A table of lines' own: `field`, the column a code names (a link, found as above, or words) and `count`, the column
|
|
20
|
+
* counted (a whole number).
|
|
21
|
+
*
|
|
22
|
+
* { "field": "lot", "options": { "scan": { "formats": ["data_matrix"], "part": "10", "fills": { "expiry": "17" } } } }
|
|
23
|
+
* { "field": "line_ids", "options": { "scan": { "field": "product_id", "count": "counted", "by": "barcode" } } }
|
|
24
|
+
*/
|
|
25
|
+
export declare const SCAN_FORMATS: readonly ["qr_code", "data_matrix", "ean_13", "ean_8", "upc_a", "upc_e", "code_128", "code_39"];
|
|
26
|
+
export type ScanFormat = (typeof SCAN_FORMATS)[number];
|
|
27
|
+
/** What one field takes of a GS1 code, among those a scan `fills`: its part, and for a link the field holding the code. */
|
|
28
|
+
export declare const ScanFillSchema: z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
29
|
+
part: z.ZodString;
|
|
30
|
+
by: z.ZodOptional<z.ZodString>;
|
|
31
|
+
}, z.z.core.$strict>]>;
|
|
32
|
+
export declare const ScanSettingsSchema: z.ZodObject<{
|
|
33
|
+
formats: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
34
|
+
qr_code: "qr_code";
|
|
35
|
+
data_matrix: "data_matrix";
|
|
36
|
+
ean_13: "ean_13";
|
|
37
|
+
ean_8: "ean_8";
|
|
38
|
+
upc_a: "upc_a";
|
|
39
|
+
upc_e: "upc_e";
|
|
40
|
+
code_128: "code_128";
|
|
41
|
+
code_39: "code_39";
|
|
42
|
+
}>>>;
|
|
43
|
+
by: z.ZodOptional<z.ZodString>;
|
|
44
|
+
part: z.ZodOptional<z.ZodString>;
|
|
45
|
+
fills: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
46
|
+
part: z.ZodString;
|
|
47
|
+
by: z.ZodOptional<z.ZodString>;
|
|
48
|
+
}, z.z.core.$strict>]>>>;
|
|
49
|
+
sound: z.ZodOptional<z.ZodBoolean>;
|
|
50
|
+
field: z.ZodOptional<z.ZodString>;
|
|
51
|
+
count: z.ZodOptional<z.ZodString>;
|
|
52
|
+
}, z.z.core.$strict>;
|
|
53
|
+
/** `options.scan`: true for a Scan button as the field is, or its settings; false for none. */
|
|
54
|
+
export declare const ScanOptionSchema: z.ZodUnion<readonly [z.ZodBoolean, z.ZodObject<{
|
|
55
|
+
formats: z.ZodOptional<z.ZodArray<z.ZodEnum<{
|
|
56
|
+
qr_code: "qr_code";
|
|
57
|
+
data_matrix: "data_matrix";
|
|
58
|
+
ean_13: "ean_13";
|
|
59
|
+
ean_8: "ean_8";
|
|
60
|
+
upc_a: "upc_a";
|
|
61
|
+
upc_e: "upc_e";
|
|
62
|
+
code_128: "code_128";
|
|
63
|
+
code_39: "code_39";
|
|
64
|
+
}>>>;
|
|
65
|
+
by: z.ZodOptional<z.ZodString>;
|
|
66
|
+
part: z.ZodOptional<z.ZodString>;
|
|
67
|
+
fills: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnion<readonly [z.ZodString, z.ZodObject<{
|
|
68
|
+
part: z.ZodString;
|
|
69
|
+
by: z.ZodOptional<z.ZodString>;
|
|
70
|
+
}, z.z.core.$strict>]>>>;
|
|
71
|
+
sound: z.ZodOptional<z.ZodBoolean>;
|
|
72
|
+
field: z.ZodOptional<z.ZodString>;
|
|
73
|
+
count: z.ZodOptional<z.ZodString>;
|
|
74
|
+
}, z.z.core.$strict>]>;
|
|
75
|
+
export type ScanFill = z.infer<typeof ScanFillSchema>;
|
|
76
|
+
export type ScanSettings = z.infer<typeof ScanSettingsSchema>;
|
|
77
|
+
export type ScanOption = z.infer<typeof ScanOptionSchema>;
|
|
78
|
+
/** The issues of a field's or a cell's `options.scan`, each at its path under `options`. */
|
|
79
|
+
export declare function scanOptionIssues(node: {
|
|
80
|
+
options?: Record<string, unknown>;
|
|
81
|
+
}): {
|
|
82
|
+
message: string;
|
|
83
|
+
path: (string | number)[];
|
|
84
|
+
}[];
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ScanOptionSchema = exports.ScanSettingsSchema = exports.ScanFillSchema = exports.SCAN_FORMATS = void 0;
|
|
4
|
+
exports.scanOptionIssues = scanOptionIssues;
|
|
5
|
+
const z = require("zod");
|
|
6
|
+
/**
|
|
7
|
+
* A code scanned with the camera into a field (`options.scan`): a Scan button beside its box opens the camera in a sheet
|
|
8
|
+
* (the back camera on a phone), and a code read fills the field — a char's or a text's words, a link's record found by
|
|
9
|
+
* its code. On a table of lines, each code read counts: the line holding what it names gets one more, else a line is
|
|
10
|
+
* added with one. A scanner gun (a keyboard wedge) types into the box as ever.
|
|
11
|
+
*
|
|
12
|
+
* `true`, or its settings:
|
|
13
|
+
*
|
|
14
|
+
* - `formats`: the kinds of code read — `qr_code`, `data_matrix`, `ean_13`, `ean_8`, `upc_a`, `upc_e`, `code_128`,
|
|
15
|
+
* `code_39`; every one when left out. Fewer read faster, and never mistake a box's other codes for the one meant.
|
|
16
|
+
* - `by`: a link's — the field of the linked records that holds their code ("barcode"), whose value must be the code
|
|
17
|
+
* exactly; left out, the code is searched as a name is (an app's name search may find a product by its barcode).
|
|
18
|
+
* - `part`: a GS1 code's part this field takes, by its Application Identifier — "10" a batch or lot, "21" a serial
|
|
19
|
+
* number, "01" a product's GTIN, "17" an expiry date; left out, the whole code.
|
|
20
|
+
* - `fills`: the other fields the same GS1 code fills, each by its part — `{ "expiry": "17", "product_id": { "part":
|
|
21
|
+
* "01", "by": "barcode" } }` — a line's other columns for a cell or a counted line.
|
|
22
|
+
* - `sound`: false keeps the scan silent (a beep where the browser lets it, and a phone's buzz, otherwise).
|
|
23
|
+
* - A table of lines' own: `field`, the column a code names (a link, found as above, or words) and `count`, the column
|
|
24
|
+
* counted (a whole number).
|
|
25
|
+
*
|
|
26
|
+
* { "field": "lot", "options": { "scan": { "formats": ["data_matrix"], "part": "10", "fills": { "expiry": "17" } } } }
|
|
27
|
+
* { "field": "line_ids", "options": { "scan": { "field": "product_id", "count": "counted", "by": "barcode" } } }
|
|
28
|
+
*/
|
|
29
|
+
exports.SCAN_FORMATS = ['qr_code', 'data_matrix', 'ean_13', 'ean_8', 'upc_a', 'upc_e', 'code_128', 'code_39'];
|
|
30
|
+
/** A GS1 Application Identifier: two to four digits. */
|
|
31
|
+
const AI = /^\d{2,4}$/;
|
|
32
|
+
const part = z.string().regex(AI, 'a GS1 part is its Application Identifier, two to four digits: "10" a lot, "17" an expiry, "01" a GTIN');
|
|
33
|
+
const fieldName = z.string().min(1);
|
|
34
|
+
/** What one field takes of a GS1 code, among those a scan `fills`: its part, and for a link the field holding the code. */
|
|
35
|
+
exports.ScanFillSchema = z.union([part, z.strictObject({ part, by: fieldName.optional() })], { error: 'a field filled is its GS1 part ("17"), or { "part": "01", "by": "barcode" } for a link' }).meta({ id: 'ScanFill' });
|
|
36
|
+
exports.ScanSettingsSchema = z
|
|
37
|
+
.strictObject({
|
|
38
|
+
formats: z.array(z.enum(exports.SCAN_FORMATS, { error: `a format is one of ${exports.SCAN_FORMATS.join(', ')}` })).min(1).optional(),
|
|
39
|
+
by: fieldName.optional(),
|
|
40
|
+
part: part.optional(),
|
|
41
|
+
fills: z.record(fieldName, exports.ScanFillSchema).optional(),
|
|
42
|
+
sound: z.boolean().optional(),
|
|
43
|
+
field: fieldName.optional(),
|
|
44
|
+
count: fieldName.optional(),
|
|
45
|
+
})
|
|
46
|
+
.meta({ id: 'ScanSettings' });
|
|
47
|
+
/** `options.scan`: true for a Scan button as the field is, or its settings; false for none. */
|
|
48
|
+
exports.ScanOptionSchema = z.union([z.boolean(), exports.ScanSettingsSchema], { error: 'scan is true, or its settings: { "formats": […], "by": "barcode", "part": "10", "fills": {…} }' }).meta({ id: 'ScanOption' });
|
|
49
|
+
/** The issues of a field's or a cell's `options.scan`, each at its path under `options`. */
|
|
50
|
+
function scanOptionIssues(node) {
|
|
51
|
+
const scan = node.options?.['scan'];
|
|
52
|
+
if (scan === undefined)
|
|
53
|
+
return [];
|
|
54
|
+
// Its settings checked as settings, so what is wrong in them is said where it is: never as "true or its settings".
|
|
55
|
+
const schema = scan && typeof scan === 'object' && !Array.isArray(scan) ? exports.ScanSettingsSchema : exports.ScanOptionSchema;
|
|
56
|
+
return (schema.safeParse(scan).error?.issues ?? []).map((issue) => ({ message: issue.message, path: ['options', 'scan', ...issue.path] }));
|
|
57
|
+
}
|
|
58
|
+
//# sourceMappingURL=scan-options.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scan-options.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/scan-options.ts"],"names":[],"mappings":";;;AAwDA,4CAMC;AA9DD,yBAAyB;AAEzB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACU,QAAA,YAAY,GAAG,CAAC,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,CAAU,CAAC;AAG5H,wDAAwD;AACxD,MAAM,EAAE,GAAG,WAAW,CAAC;AACvB,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,uGAAuG,CAAC,CAAC;AAC3I,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAEpC,2HAA2H;AAC9G,QAAA,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,wFAAwF,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;AAEnN,QAAA,kBAAkB,GAAG,CAAC;KAChC,YAAY,CAAC;IACZ,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,oBAAY,EAAE,EAAE,KAAK,EAAE,sBAAsB,oBAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACpH,EAAE,EAAE,SAAS,CAAC,QAAQ,EAAE;IACxB,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;IACrB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,sBAAc,CAAC,CAAC,QAAQ,EAAE;IACrD,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC7B,KAAK,EAAE,SAAS,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,SAAS,CAAC,QAAQ,EAAE;CAC5B,CAAC;KACD,IAAI,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;AAEhC,+FAA+F;AAClF,QAAA,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,0BAAkB,CAAC,EAAE,EAAE,KAAK,EAAE,gGAAgG,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;AAMnN,4FAA4F;AAC5F,SAAgB,gBAAgB,CAAC,IAA2C;IAC1E,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IAClC,mHAAmH;IACnH,MAAM,MAAM,GAAG,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,0BAAkB,CAAC,CAAC,CAAC,wBAAgB,CAAC;IAChH,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAwB,EAAE,CAAC,CAAC,CAAC;AACpK,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import * as z from 'zod';
|
|
2
|
+
/**
|
|
3
|
+
* A code scanned with the camera into a field (`options.scan`): a Scan button beside its box opens the camera in a sheet
|
|
4
|
+
* (the back camera on a phone), and a code read fills the field — a char's or a text's words, a link's record found by
|
|
5
|
+
* its code. On a table of lines, each code read counts: the line holding what it names gets one more, else a line is
|
|
6
|
+
* added with one. A scanner gun (a keyboard wedge) types into the box as ever.
|
|
7
|
+
*
|
|
8
|
+
* `true`, or its settings:
|
|
9
|
+
*
|
|
10
|
+
* - `formats`: the kinds of code read — `qr_code`, `data_matrix`, `ean_13`, `ean_8`, `upc_a`, `upc_e`, `code_128`,
|
|
11
|
+
* `code_39`; every one when left out. Fewer read faster, and never mistake a box's other codes for the one meant.
|
|
12
|
+
* - `by`: a link's — the field of the linked records that holds their code ("barcode"), whose value must be the code
|
|
13
|
+
* exactly; left out, the code is searched as a name is (an app's name search may find a product by its barcode).
|
|
14
|
+
* - `part`: a GS1 code's part this field takes, by its Application Identifier — "10" a batch or lot, "21" a serial
|
|
15
|
+
* number, "01" a product's GTIN, "17" an expiry date; left out, the whole code.
|
|
16
|
+
* - `fills`: the other fields the same GS1 code fills, each by its part — `{ "expiry": "17", "product_id": { "part":
|
|
17
|
+
* "01", "by": "barcode" } }` — a line's other columns for a cell or a counted line.
|
|
18
|
+
* - `sound`: false keeps the scan silent (a beep where the browser lets it, and a phone's buzz, otherwise).
|
|
19
|
+
* - A table of lines' own: `field`, the column a code names (a link, found as above, or words) and `count`, the column
|
|
20
|
+
* counted (a whole number).
|
|
21
|
+
*
|
|
22
|
+
* { "field": "lot", "options": { "scan": { "formats": ["data_matrix"], "part": "10", "fills": { "expiry": "17" } } } }
|
|
23
|
+
* { "field": "line_ids", "options": { "scan": { "field": "product_id", "count": "counted", "by": "barcode" } } }
|
|
24
|
+
*/
|
|
25
|
+
export const SCAN_FORMATS = ['qr_code', 'data_matrix', 'ean_13', 'ean_8', 'upc_a', 'upc_e', 'code_128', 'code_39'];
|
|
26
|
+
/** A GS1 Application Identifier: two to four digits. */
|
|
27
|
+
const AI = /^\d{2,4}$/;
|
|
28
|
+
const part = z.string().regex(AI, 'a GS1 part is its Application Identifier, two to four digits: "10" a lot, "17" an expiry, "01" a GTIN');
|
|
29
|
+
const fieldName = z.string().min(1);
|
|
30
|
+
/** What one field takes of a GS1 code, among those a scan `fills`: its part, and for a link the field holding the code. */
|
|
31
|
+
export const ScanFillSchema = z.union([part, z.strictObject({ part, by: fieldName.optional() })], { error: 'a field filled is its GS1 part ("17"), or { "part": "01", "by": "barcode" } for a link' }).meta({ id: 'ScanFill' });
|
|
32
|
+
export const ScanSettingsSchema = z
|
|
33
|
+
.strictObject({
|
|
34
|
+
formats: z.array(z.enum(SCAN_FORMATS, { error: `a format is one of ${SCAN_FORMATS.join(', ')}` })).min(1).optional(),
|
|
35
|
+
by: fieldName.optional(),
|
|
36
|
+
part: part.optional(),
|
|
37
|
+
fills: z.record(fieldName, ScanFillSchema).optional(),
|
|
38
|
+
sound: z.boolean().optional(),
|
|
39
|
+
field: fieldName.optional(),
|
|
40
|
+
count: fieldName.optional(),
|
|
41
|
+
})
|
|
42
|
+
.meta({ id: 'ScanSettings' });
|
|
43
|
+
/** `options.scan`: true for a Scan button as the field is, or its settings; false for none. */
|
|
44
|
+
export const ScanOptionSchema = z.union([z.boolean(), ScanSettingsSchema], { error: 'scan is true, or its settings: { "formats": […], "by": "barcode", "part": "10", "fills": {…} }' }).meta({ id: 'ScanOption' });
|
|
45
|
+
/** The issues of a field's or a cell's `options.scan`, each at its path under `options`. */
|
|
46
|
+
export function scanOptionIssues(node) {
|
|
47
|
+
const scan = node.options?.['scan'];
|
|
48
|
+
if (scan === undefined)
|
|
49
|
+
return [];
|
|
50
|
+
// Its settings checked as settings, so what is wrong in them is said where it is: never as "true or its settings".
|
|
51
|
+
const schema = scan && typeof scan === 'object' && !Array.isArray(scan) ? ScanSettingsSchema : ScanOptionSchema;
|
|
52
|
+
return (schema.safeParse(scan).error?.issues ?? []).map((issue) => ({ message: issue.message, path: ['options', 'scan', ...issue.path] }));
|
|
53
|
+
}
|
|
54
|
+
//# sourceMappingURL=scan-options.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"scan-options.mjs","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/scan-options.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,CAAC,MAAM,KAAK,CAAC;AAEzB;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,CAAC,SAAS,EAAE,aAAa,EAAE,QAAQ,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,CAAU,CAAC;AAG5H,wDAAwD;AACxD,MAAM,EAAE,GAAG,WAAW,CAAC;AACvB,MAAM,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,EAAE,uGAAuG,CAAC,CAAC;AAC3I,MAAM,SAAS,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAEpC,2HAA2H;AAC3H,MAAM,CAAC,MAAM,cAAc,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,YAAY,CAAC,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,CAAC,QAAQ,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,KAAK,EAAE,wFAAwF,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,UAAU,EAAE,CAAC,CAAC;AAEhO,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC;KAChC,YAAY,CAAC;IACZ,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,sBAAsB,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE;IACpH,EAAE,EAAE,SAAS,CAAC,QAAQ,EAAE;IACxB,IAAI,EAAE,IAAI,CAAC,QAAQ,EAAE;IACrB,KAAK,EAAE,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC,QAAQ,EAAE;IACrD,KAAK,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,QAAQ,EAAE;IAC7B,KAAK,EAAE,SAAS,CAAC,QAAQ,EAAE;IAC3B,KAAK,EAAE,SAAS,CAAC,QAAQ,EAAE;CAC5B,CAAC;KACD,IAAI,CAAC,EAAE,EAAE,EAAE,cAAc,EAAE,CAAC,CAAC;AAEhC,+FAA+F;AAC/F,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,EAAE,kBAAkB,CAAC,EAAE,EAAE,KAAK,EAAE,gGAAgG,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,EAAE,EAAE,YAAY,EAAE,CAAC,CAAC;AAMnN,4FAA4F;AAC5F,MAAM,UAAU,gBAAgB,CAAC,IAA2C;IAC1E,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC,MAAM,CAAC,CAAC;IACpC,IAAI,IAAI,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IAClC,mHAAmH;IACnH,MAAM,MAAM,GAAG,IAAI,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC,gBAAgB,CAAC;IAChH,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,KAAK,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,OAAO,EAAE,KAAK,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,KAAK,CAAC,IAAI,CAAwB,EAAE,CAAC,CAAC,CAAC;AACpK,CAAC"}
|
|
@@ -1,4 +1,12 @@
|
|
|
1
|
-
import type { SheetNode } from './layout.mjs';
|
|
2
|
-
import type { HeadTools } from './head-checks.mjs';
|
|
1
|
+
import type { MenuItem, SheetNode } from './layout.mjs';
|
|
2
|
+
import type { HeadTools, MenuTools } from './head-checks.mjs';
|
|
3
3
|
/** A sheet's head, each part of it checked with the reference check's tools. */
|
|
4
4
|
export declare function checkSheetHead(sheet: SheetNode, path: string, tools: HeadTools): void;
|
|
5
|
+
/**
|
|
6
|
+
* A divider of a menu, nothing but a line; and an item that opens a menu of its own (`menu`) or the app's (`menuFrom`):
|
|
7
|
+
* named, doing nothing itself, each of its menu's items checked as the menu's are (`item`, head-checks.ts' own). Both
|
|
8
|
+
* are drawn by the head part: in the one-tag script these checks come with it, which a page with either asks for.
|
|
9
|
+
*/
|
|
10
|
+
export declare function checkMenuOpener(item: MenuItem, path: string, tools: MenuTools & {
|
|
11
|
+
item(item: MenuItem, path: string, tools: MenuTools): void;
|
|
12
|
+
}): void;
|
|
@@ -1,4 +1,12 @@
|
|
|
1
|
-
import type { SheetNode } from './layout';
|
|
2
|
-
import type { HeadTools } from './head-checks';
|
|
1
|
+
import type { MenuItem, SheetNode } from './layout';
|
|
2
|
+
import type { HeadTools, MenuTools } from './head-checks';
|
|
3
3
|
/** A sheet's head, each part of it checked with the reference check's tools. */
|
|
4
4
|
export declare function checkSheetHead(sheet: SheetNode, path: string, tools: HeadTools): void;
|
|
5
|
+
/**
|
|
6
|
+
* A divider of a menu, nothing but a line; and an item that opens a menu of its own (`menu`) or the app's (`menuFrom`):
|
|
7
|
+
* named, doing nothing itself, each of its menu's items checked as the menu's are (`item`, head-checks.ts' own). Both
|
|
8
|
+
* are drawn by the head part: in the one-tag script these checks come with it, which a page with either asks for.
|
|
9
|
+
*/
|
|
10
|
+
export declare function checkMenuOpener(item: MenuItem, path: string, tools: MenuTools & {
|
|
11
|
+
item(item: MenuItem, path: string, tools: MenuTools): void;
|
|
12
|
+
}): void;
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.checkSheetHead = checkSheetHead;
|
|
4
|
+
exports.checkMenuOpener = checkMenuOpener;
|
|
4
5
|
/**
|
|
5
6
|
* A record's head (`SheetHead`): its kind and number, the band's and the row's fields, its links and buttons, and when
|
|
6
7
|
* it was updated. In the one-tag script they come with the head part, which a sheet with a head asks for: run once it
|
|
@@ -65,4 +66,27 @@ function checkSheetHead(sheet, path, tools) {
|
|
|
65
66
|
tools.report(`${at}.updated.opens`, `no tab "${updated.opens}" on this page`);
|
|
66
67
|
}
|
|
67
68
|
}
|
|
69
|
+
/** What a divider may say: it is a line, shown by its condition and the items round it. */
|
|
70
|
+
const DIVIDER = new Set(['id', 'type', 'group', 'invisible', 'roles']);
|
|
71
|
+
/**
|
|
72
|
+
* A divider of a menu, nothing but a line; and an item that opens a menu of its own (`menu`) or the app's (`menuFrom`):
|
|
73
|
+
* named, doing nothing itself, each of its menu's items checked as the menu's are (`item`, head-checks.ts' own). Both
|
|
74
|
+
* are drawn by the head part: in the one-tag script these checks come with it, which a page with either asks for.
|
|
75
|
+
*/
|
|
76
|
+
function checkMenuOpener(item, path, tools) {
|
|
77
|
+
if (item.type === 'divider') {
|
|
78
|
+
const more = Object.keys(item).find((key) => !DIVIDER.has(key));
|
|
79
|
+
if (more)
|
|
80
|
+
tools.report(`${path}.${more}`, 'a divider is a line between items: it has no words and does nothing');
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
if (item.label === undefined)
|
|
84
|
+
tools.report(`${path}.label`, 'an item that opens a menu needs words');
|
|
85
|
+
const does = ['steps', 'action', 'builtin', 'confirm'].find((key) => item[key] !== undefined);
|
|
86
|
+
if (does)
|
|
87
|
+
tools.report(`${path}.${does}`, 'an item that opens a menu does nothing of its own: each item in its menu does');
|
|
88
|
+
if (item.params !== undefined && item.menuFrom === undefined)
|
|
89
|
+
tools.report(`${path}.params`, 'params go with the app’s action that gives the menu (menuFrom)');
|
|
90
|
+
item.menu?.forEach((one, i) => tools.item(one, `${path}.menu[${i}]`, tools));
|
|
91
|
+
}
|
|
68
92
|
//# sourceMappingURL=sheet-head-checks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sheet-head-checks.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/sheet-head-checks.ts"],"names":[],"mappings":";;AAeA,wCA0CC;
|
|
1
|
+
{"version":3,"file":"sheet-head-checks.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/sheet-head-checks.ts"],"names":[],"mappings":"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"}
|
|
@@ -62,4 +62,27 @@ export function checkSheetHead(sheet, path, tools) {
|
|
|
62
62
|
tools.report(`${at}.updated.opens`, `no tab "${updated.opens}" on this page`);
|
|
63
63
|
}
|
|
64
64
|
}
|
|
65
|
+
/** What a divider may say: it is a line, shown by its condition and the items round it. */
|
|
66
|
+
const DIVIDER = new Set(['id', 'type', 'group', 'invisible', 'roles']);
|
|
67
|
+
/**
|
|
68
|
+
* A divider of a menu, nothing but a line; and an item that opens a menu of its own (`menu`) or the app's (`menuFrom`):
|
|
69
|
+
* named, doing nothing itself, each of its menu's items checked as the menu's are (`item`, head-checks.ts' own). Both
|
|
70
|
+
* are drawn by the head part: in the one-tag script these checks come with it, which a page with either asks for.
|
|
71
|
+
*/
|
|
72
|
+
export function checkMenuOpener(item, path, tools) {
|
|
73
|
+
if (item.type === 'divider') {
|
|
74
|
+
const more = Object.keys(item).find((key) => !DIVIDER.has(key));
|
|
75
|
+
if (more)
|
|
76
|
+
tools.report(`${path}.${more}`, 'a divider is a line between items: it has no words and does nothing');
|
|
77
|
+
return;
|
|
78
|
+
}
|
|
79
|
+
if (item.label === undefined)
|
|
80
|
+
tools.report(`${path}.label`, 'an item that opens a menu needs words');
|
|
81
|
+
const does = ['steps', 'action', 'builtin', 'confirm'].find((key) => item[key] !== undefined);
|
|
82
|
+
if (does)
|
|
83
|
+
tools.report(`${path}.${does}`, 'an item that opens a menu does nothing of its own: each item in its menu does');
|
|
84
|
+
if (item.params !== undefined && item.menuFrom === undefined)
|
|
85
|
+
tools.report(`${path}.params`, 'params go with the app’s action that gives the menu (menuFrom)');
|
|
86
|
+
item.menu?.forEach((one, i) => tools.item(one, `${path}.menu[${i}]`, tools));
|
|
87
|
+
}
|
|
65
88
|
//# sourceMappingURL=sheet-head-checks.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sheet-head-checks.mjs","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/sheet-head-checks.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"sheet-head-checks.mjs","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/sheet-head-checks.ts"],"names":[],"mappings":"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"}
|
|
@@ -30,8 +30,12 @@ export interface PageUpgrade {
|
|
|
30
30
|
* page's `endings`, `limits` and `continueLater`, an option's `seats` and `invisible`, `optionsFrom` carried from a
|
|
31
31
|
* question (`{ field, picked }`) and on a table's line, a signature's `signs` and `signerField`, a list's
|
|
32
32
|
* `filterRanges`, `filterCounts` and `filterSheet`, `{field}` words in a page's words — so a 0.5 page is a 0.6 page as
|
|
33
|
-
* it is;
|
|
34
|
-
* 0.6 page is a 0.7 page as it is.
|
|
33
|
+
* it is; 0.7 (Fieldia 0.28) only added — a table of lines' `cards: "never"`, its rows kept at a phone's width — so a
|
|
34
|
+
* 0.6 page is a 0.7 page as it is; and 0.8 (Fieldia 0.29) only added — a record's `approval`, a list's `editable` and
|
|
35
|
+
* `searchToFilter`, a text's `translate` and `requiredIn`, a page's `suggest`, a text field's `options.rewrite`, a
|
|
36
|
+
* photo set's options and a field's `options.scan` — so a 0.7 page is a 0.8 page as it is; and 0.9 (Fieldia 0.30) only
|
|
37
|
+
* added — a menu item's `type: "divider"`, its own `menu` and `menuFrom`, a formatted text's `options.edit` — so a 0.8
|
|
38
|
+
* page is a 0.9 page as it is. A release that renames or reshapes a setting adds a step here, with its example; one that only adds needs
|
|
35
39
|
* none: the page is the same, and upgradePage writes the new version in it.
|
|
36
40
|
*/
|
|
37
41
|
export declare const PAGE_UPGRADES: readonly PageUpgrade[];
|
|
@@ -30,8 +30,12 @@ export interface PageUpgrade {
|
|
|
30
30
|
* page's `endings`, `limits` and `continueLater`, an option's `seats` and `invisible`, `optionsFrom` carried from a
|
|
31
31
|
* question (`{ field, picked }`) and on a table's line, a signature's `signs` and `signerField`, a list's
|
|
32
32
|
* `filterRanges`, `filterCounts` and `filterSheet`, `{field}` words in a page's words — so a 0.5 page is a 0.6 page as
|
|
33
|
-
* it is;
|
|
34
|
-
* 0.6 page is a 0.7 page as it is.
|
|
33
|
+
* it is; 0.7 (Fieldia 0.28) only added — a table of lines' `cards: "never"`, its rows kept at a phone's width — so a
|
|
34
|
+
* 0.6 page is a 0.7 page as it is; and 0.8 (Fieldia 0.29) only added — a record's `approval`, a list's `editable` and
|
|
35
|
+
* `searchToFilter`, a text's `translate` and `requiredIn`, a page's `suggest`, a text field's `options.rewrite`, a
|
|
36
|
+
* photo set's options and a field's `options.scan` — so a 0.7 page is a 0.8 page as it is; and 0.9 (Fieldia 0.30) only
|
|
37
|
+
* added — a menu item's `type: "divider"`, its own `menu` and `menuFrom`, a formatted text's `options.edit` — so a 0.8
|
|
38
|
+
* page is a 0.9 page as it is. A release that renames or reshapes a setting adds a step here, with its example; one that only adds needs
|
|
35
39
|
* none: the page is the same, and upgradePage writes the new version in it.
|
|
36
40
|
*/
|
|
37
41
|
export declare const PAGE_UPGRADES: readonly PageUpgrade[];
|
|
@@ -17,8 +17,12 @@ const version_1 = require("./version");
|
|
|
17
17
|
* page's `endings`, `limits` and `continueLater`, an option's `seats` and `invisible`, `optionsFrom` carried from a
|
|
18
18
|
* question (`{ field, picked }`) and on a table's line, a signature's `signs` and `signerField`, a list's
|
|
19
19
|
* `filterRanges`, `filterCounts` and `filterSheet`, `{field}` words in a page's words — so a 0.5 page is a 0.6 page as
|
|
20
|
-
* it is;
|
|
21
|
-
* 0.6 page is a 0.7 page as it is.
|
|
20
|
+
* it is; 0.7 (Fieldia 0.28) only added — a table of lines' `cards: "never"`, its rows kept at a phone's width — so a
|
|
21
|
+
* 0.6 page is a 0.7 page as it is; and 0.8 (Fieldia 0.29) only added — a record's `approval`, a list's `editable` and
|
|
22
|
+
* `searchToFilter`, a text's `translate` and `requiredIn`, a page's `suggest`, a text field's `options.rewrite`, a
|
|
23
|
+
* photo set's options and a field's `options.scan` — so a 0.7 page is a 0.8 page as it is; and 0.9 (Fieldia 0.30) only
|
|
24
|
+
* added — a menu item's `type: "divider"`, its own `menu` and `menuFrom`, a formatted text's `options.edit` — so a 0.8
|
|
25
|
+
* page is a 0.9 page as it is. A release that renames or reshapes a setting adds a step here, with its example; one that only adds needs
|
|
22
26
|
* none: the page is the same, and upgradePage writes the new version in it.
|
|
23
27
|
*/
|
|
24
28
|
exports.PAGE_UPGRADES = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/upgrade.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/upgrade.ts"],"names":[],"mappings":";;;AA2DA,kCAYC;AAvED,uCAA4D;AAiB5D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACU,QAAA,aAAa,GAA2B,EAAE,CAAC;AAQxD,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAqB,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAE7H;;;;;;;;;GASG;AACH,SAAgB,WAAW,CAAI,IAAO,EAAE,UAAyB,EAAE,QAAQ,EAAE,yBAAe,EAAE,KAAK,EAAE,qBAAa,EAAE;IAClH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9D,IAAI,IAAI,KAAK,OAAO,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAClG,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAA,wBAAc,EAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,IAAA,wBAAc,EAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACvI,mHAAmH;IACnH,gFAAgF;IAChF,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,OAAO,EAAO,CAAC;IAC7D,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAa,CAAC;IACxD,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;IAC7E,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,OAAO,EAAO,CAAC;AAC5C,CAAC"}
|
|
@@ -13,8 +13,12 @@ import { compareFormats, FORMAT_VERSIONS } from './version.mjs';
|
|
|
13
13
|
* page's `endings`, `limits` and `continueLater`, an option's `seats` and `invisible`, `optionsFrom` carried from a
|
|
14
14
|
* question (`{ field, picked }`) and on a table's line, a signature's `signs` and `signerField`, a list's
|
|
15
15
|
* `filterRanges`, `filterCounts` and `filterSheet`, `{field}` words in a page's words — so a 0.5 page is a 0.6 page as
|
|
16
|
-
* it is;
|
|
17
|
-
* 0.6 page is a 0.7 page as it is.
|
|
16
|
+
* it is; 0.7 (Fieldia 0.28) only added — a table of lines' `cards: "never"`, its rows kept at a phone's width — so a
|
|
17
|
+
* 0.6 page is a 0.7 page as it is; and 0.8 (Fieldia 0.29) only added — a record's `approval`, a list's `editable` and
|
|
18
|
+
* `searchToFilter`, a text's `translate` and `requiredIn`, a page's `suggest`, a text field's `options.rewrite`, a
|
|
19
|
+
* photo set's options and a field's `options.scan` — so a 0.7 page is a 0.8 page as it is; and 0.9 (Fieldia 0.30) only
|
|
20
|
+
* added — a menu item's `type: "divider"`, its own `menu` and `menuFrom`, a formatted text's `options.edit` — so a 0.8
|
|
21
|
+
* page is a 0.9 page as it is. A release that renames or reshapes a setting adds a step here, with its example; one that only adds needs
|
|
18
22
|
* none: the page is the same, and upgradePage writes the new version in it.
|
|
19
23
|
*/
|
|
20
24
|
export const PAGE_UPGRADES = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upgrade.mjs","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/upgrade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAiB5D
|
|
1
|
+
{"version":3,"file":"upgrade.mjs","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/upgrade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC;AAiB5D;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,MAAM,CAAC,MAAM,aAAa,GAA2B,EAAE,CAAC;AAQxD,MAAM,QAAQ,GAAG,CAAC,KAAc,EAAqB,EAAE,CAAC,KAAK,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAE7H;;;;;;;;;GASG;AACH,MAAM,UAAU,WAAW,CAAI,IAAO,EAAE,UAAyB,EAAE,QAAQ,EAAE,eAAe,EAAE,KAAK,EAAE,aAAa,EAAE;IAClH,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IACjC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC;IAC7B,MAAM,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9D,IAAI,IAAI,KAAK,OAAO,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,OAAO,IAAI,CAAC;IAClG,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;IACvI,mHAAmH;IACnH,gFAAgF;IAChF,IAAI,CAAC,KAAK,CAAC,MAAM;QAAE,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,OAAO,EAAO,CAAC;IAC7D,IAAI,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAa,CAAC;IACxD,KAAK,MAAM,IAAI,IAAI,KAAK;QAAE,IAAI,GAAG,EAAE,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;IAC7E,OAAO,EAAE,GAAG,IAAI,EAAE,OAAO,EAAE,OAAO,EAAO,CAAC;AAC5C,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/** The page format version this build reads and writes. */
|
|
2
|
-
export declare const FORMAT_VERSION: "0.
|
|
2
|
+
export declare const FORMAT_VERSION: "0.9";
|
|
3
3
|
/**
|
|
4
4
|
* Every format Fieldia has had, oldest first; the last is FORMAT_VERSION. A page in an older one is brought up to date
|
|
5
5
|
* by `upgradePage`, step by step (`PAGE_UPGRADES`), wherever it is read: `checkPage`, `validatePage`, the viewer, the
|
|
6
6
|
* designer. A release that changes what a page may say adds its version here (see the format's docs, "Versions").
|
|
7
7
|
*/
|
|
8
|
-
export declare const FORMAT_VERSIONS: readonly ["0.1", "0.2", "0.3", "0.4", "0.5", "0.6", "0.7"];
|
|
8
|
+
export declare const FORMAT_VERSIONS: readonly ["0.1", "0.2", "0.3", "0.4", "0.5", "0.6", "0.7", "0.8", "0.9"];
|
|
9
9
|
/** A format Fieldia has had: a page may say any of them, and is read in the current one. */
|
|
10
10
|
export type FormatVersion = (typeof FORMAT_VERSIONS)[number];
|
|
11
11
|
/** Which of two format versions is newer: below 0 when `a` is older, 0 when they are the same, null when either is not a version. */
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/** The page format version this build reads and writes. */
|
|
2
|
-
export declare const FORMAT_VERSION: "0.
|
|
2
|
+
export declare const FORMAT_VERSION: "0.9";
|
|
3
3
|
/**
|
|
4
4
|
* Every format Fieldia has had, oldest first; the last is FORMAT_VERSION. A page in an older one is brought up to date
|
|
5
5
|
* by `upgradePage`, step by step (`PAGE_UPGRADES`), wherever it is read: `checkPage`, `validatePage`, the viewer, the
|
|
6
6
|
* designer. A release that changes what a page may say adds its version here (see the format's docs, "Versions").
|
|
7
7
|
*/
|
|
8
|
-
export declare const FORMAT_VERSIONS: readonly ["0.1", "0.2", "0.3", "0.4", "0.5", "0.6", "0.7"];
|
|
8
|
+
export declare const FORMAT_VERSIONS: readonly ["0.1", "0.2", "0.3", "0.4", "0.5", "0.6", "0.7", "0.8", "0.9"];
|
|
9
9
|
/** A format Fieldia has had: a page may say any of them, and is read in the current one. */
|
|
10
10
|
export type FormatVersion = (typeof FORMAT_VERSIONS)[number];
|
|
11
11
|
/** Which of two format versions is newer: below 0 when `a` is older, 0 when they are the same, null when either is not a version. */
|
|
@@ -4,13 +4,13 @@ exports.FORMAT_VERSIONS = exports.FORMAT_VERSION = void 0;
|
|
|
4
4
|
exports.compareFormats = compareFormats;
|
|
5
5
|
exports.formatProblem = formatProblem;
|
|
6
6
|
/** The page format version this build reads and writes. */
|
|
7
|
-
exports.FORMAT_VERSION = '0.
|
|
7
|
+
exports.FORMAT_VERSION = '0.9';
|
|
8
8
|
/**
|
|
9
9
|
* Every format Fieldia has had, oldest first; the last is FORMAT_VERSION. A page in an older one is brought up to date
|
|
10
10
|
* by `upgradePage`, step by step (`PAGE_UPGRADES`), wherever it is read: `checkPage`, `validatePage`, the viewer, the
|
|
11
11
|
* designer. A release that changes what a page may say adds its version here (see the format's docs, "Versions").
|
|
12
12
|
*/
|
|
13
|
-
exports.FORMAT_VERSIONS = ['0.1', '0.2', '0.3', '0.4', '0.5', '0.6', '0.7'];
|
|
13
|
+
exports.FORMAT_VERSIONS = ['0.1', '0.2', '0.3', '0.4', '0.5', '0.6', '0.7', '0.8', '0.9'];
|
|
14
14
|
/** `major.minor` as two numbers, or null when it is not a version at all. */
|
|
15
15
|
function parts(version) {
|
|
16
16
|
const match = typeof version === 'string' ? /^(\d+)\.(\d+)$/.exec(version) : null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/version.ts"],"names":[],"mappings":";;;AAoBA,wCAIC;AAMD,sCAQC;AAtCD,2DAA2D;AAC9C,QAAA,cAAc,GAAG,KAAc,CAAC;AAE7C;;;;GAIG;AACU,QAAA,eAAe,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"version.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/version.ts"],"names":[],"mappings":";;;AAoBA,wCAIC;AAMD,sCAQC;AAtCD,2DAA2D;AAC9C,QAAA,cAAc,GAAG,KAAc,CAAC;AAE7C;;;;GAIG;AACU,QAAA,eAAe,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAsC,CAAC;AAKpI,6EAA6E;AAC7E,SAAS,KAAK,CAAC,OAAgB;IAC7B,MAAM,KAAK,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClF,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7D,CAAC;AAED,qIAAqI;AACrI,SAAgB,cAAc,CAAC,CAAU,EAAE,CAAU;IACnD,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1B,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC;AAED;;;GAGG;AACH,SAAgB,aAAa,CAAC,OAAgB,EAAE,WAA8B,uBAAe;IAC3F,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9C,IAAI,OAAO,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAClD,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,wDAAwD,OAAO,oBAAoB,CAAC;IAClH,IAAI,QAAQ,GAAG,CAAC;QAAE,OAAO,0BAA0B,OAAiB,oCAAoC,OAAO,8BAA8B,CAAC;IAC9I,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAiB,CAAC;QAAE,OAAO,0BAA0B,OAAiB,oCAAoC,OAAO,EAAE,CAAC;IAC1I,OAAO,UAAU,OAAiB,mDAAmD,OAAO,EAAE,CAAC;AACjG,CAAC"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
/** The page format version this build reads and writes. */
|
|
2
|
-
export const FORMAT_VERSION = '0.
|
|
2
|
+
export const FORMAT_VERSION = '0.9';
|
|
3
3
|
/**
|
|
4
4
|
* Every format Fieldia has had, oldest first; the last is FORMAT_VERSION. A page in an older one is brought up to date
|
|
5
5
|
* by `upgradePage`, step by step (`PAGE_UPGRADES`), wherever it is read: `checkPage`, `validatePage`, the viewer, the
|
|
6
6
|
* designer. A release that changes what a page may say adds its version here (see the format's docs, "Versions").
|
|
7
7
|
*/
|
|
8
|
-
export const FORMAT_VERSIONS = ['0.1', '0.2', '0.3', '0.4', '0.5', '0.6', '0.7'];
|
|
8
|
+
export const FORMAT_VERSIONS = ['0.1', '0.2', '0.3', '0.4', '0.5', '0.6', '0.7', '0.8', '0.9'];
|
|
9
9
|
/** `major.minor` as two numbers, or null when it is not a version at all. */
|
|
10
10
|
function parts(version) {
|
|
11
11
|
const match = typeof version === 'string' ? /^(\d+)\.(\d+)$/.exec(version) : null;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"version.mjs","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/version.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,MAAM,CAAC,MAAM,cAAc,GAAG,KAAc,CAAC;AAE7C;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAsC,CAAC;
|
|
1
|
+
{"version":3,"file":"version.mjs","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/version.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,MAAM,CAAC,MAAM,cAAc,GAAG,KAAc,CAAC;AAE7C;;;;GAIG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAsC,CAAC;AAKpI,6EAA6E;AAC7E,SAAS,KAAK,CAAC,OAAgB;IAC7B,MAAM,KAAK,GAAG,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IAClF,OAAO,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;AAC7D,CAAC;AAED,qIAAqI;AACrI,MAAM,UAAU,cAAc,CAAC,CAAU,EAAE,CAAU;IACnD,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACpC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;QAAE,OAAO,IAAI,CAAC;IAC1B,OAAO,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;AACpC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,aAAa,CAAC,OAAgB,EAAE,WAA8B,eAAe;IAC3F,MAAM,OAAO,GAAG,QAAQ,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IAC9C,IAAI,OAAO,KAAK,OAAO;QAAE,OAAO,IAAI,CAAC;IACrC,MAAM,QAAQ,GAAG,cAAc,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;IAClD,IAAI,QAAQ,KAAK,IAAI;QAAE,OAAO,wDAAwD,OAAO,oBAAoB,CAAC;IAClH,IAAI,QAAQ,GAAG,CAAC;QAAE,OAAO,0BAA0B,OAAiB,oCAAoC,OAAO,8BAA8B,CAAC;IAC9I,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAiB,CAAC;QAAE,OAAO,0BAA0B,OAAiB,oCAAoC,OAAO,EAAE,CAAC;IAC1I,OAAO,UAAU,OAAiB,mDAAmD,OAAO,EAAE,CAAC;AACjG,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The approvals part's form code (approving.ts, `formApprovalsPart`): a record's approvals asked of the data source,
|
|
3
|
+
* a decision taken, its fields locked while it waits, and a moment of its history in words (form-approvals.ts). In the
|
|
4
|
+
* one-tag script it comes in one script with the viewer's approvals part, which draws them (fieldia.approvals.js).
|
|
5
|
+
*/
|
|
6
|
+
export { approvalOf, approvalStatus, approvalWhen, formApprovals } from './form-approvals.mjs';
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The approvals part's form code (approving.ts, `formApprovalsPart`): a record's approvals asked of the data source,
|
|
3
|
+
* a decision taken, its fields locked while it waits, and a moment of its history in words (form-approvals.ts). In the
|
|
4
|
+
* one-tag script it comes in one script with the viewer's approvals part, which draws them (fieldia.approvals.js).
|
|
5
|
+
*/
|
|
6
|
+
export { approvalOf, approvalStatus, approvalWhen, formApprovals } from './form-approvals';
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.formApprovals = exports.approvalWhen = exports.approvalStatus = exports.approvalOf = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* The approvals part's form code (approving.ts, `formApprovalsPart`): a record's approvals asked of the data source,
|
|
6
|
+
* a decision taken, its fields locked while it waits, and a moment of its history in words (form-approvals.ts). In the
|
|
7
|
+
* one-tag script it comes in one script with the viewer's approvals part, which draws them (fieldia.approvals.js).
|
|
8
|
+
*/
|
|
9
|
+
var form_approvals_1 = require("./form-approvals");
|
|
10
|
+
Object.defineProperty(exports, "approvalOf", { enumerable: true, get: function () { return form_approvals_1.approvalOf; } });
|
|
11
|
+
Object.defineProperty(exports, "approvalStatus", { enumerable: true, get: function () { return form_approvals_1.approvalStatus; } });
|
|
12
|
+
Object.defineProperty(exports, "approvalWhen", { enumerable: true, get: function () { return form_approvals_1.approvalWhen; } });
|
|
13
|
+
Object.defineProperty(exports, "formApprovals", { enumerable: true, get: function () { return form_approvals_1.formApprovals; } });
|
|
14
|
+
//# sourceMappingURL=approvals-part.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"approvals-part.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/record/approvals-part.ts"],"names":[],"mappings":";;;AAAA;;;;GAIG;AACH,mDAA2F;AAAlF,4GAAA,UAAU,OAAA;AAAE,gHAAA,cAAc,OAAA;AAAE,8GAAA,YAAY,OAAA;AAAE,+GAAA,aAAa,OAAA"}
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The approvals part's form code (approving.ts, `formApprovalsPart`): a record's approvals asked of the data source,
|
|
3
|
+
* a decision taken, its fields locked while it waits, and a moment of its history in words (form-approvals.ts). In the
|
|
4
|
+
* one-tag script it comes in one script with the viewer's approvals part, which draws them (fieldia.approvals.js).
|
|
5
|
+
*/
|
|
6
|
+
export { approvalOf, approvalStatus, approvalWhen, formApprovals } from './form-approvals.mjs';
|
|
7
|
+
//# sourceMappingURL=approvals-part.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"approvals-part.mjs","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/record/approvals-part.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,YAAY,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC"}
|