@fieldia/core 0.19.1 → 0.21.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/schema/page.schema.json +946 -210
- package/src/index.d.mts +2 -1
- package/src/index.d.ts +2 -1
- package/src/index.js +5 -1
- package/src/index.js.map +1 -1
- package/src/index.mjs +2 -1
- package/src/index.mjs.map +1 -1
- package/src/lib/expression/parser.js +4 -4
- package/src/lib/expression/parser.js.map +1 -1
- package/src/lib/expression/parser.mjs +5 -5
- package/src/lib/expression/parser.mjs.map +1 -1
- package/src/lib/expression/tokenizer.d.mts +12 -0
- package/src/lib/expression/tokenizer.d.ts +12 -0
- package/src/lib/expression/tokenizer.js +21 -12
- package/src/lib/expression/tokenizer.js.map +1 -1
- package/src/lib/expression/tokenizer.mjs +20 -12
- package/src/lib/expression/tokenizer.mjs.map +1 -1
- package/src/lib/format/field.d.mts +16 -0
- package/src/lib/format/field.d.ts +16 -0
- package/src/lib/format/field.js +11 -1
- package/src/lib/format/field.js.map +1 -1
- package/src/lib/format/field.mjs +11 -1
- package/src/lib/format/field.mjs.map +1 -1
- package/src/lib/format/head-checks.d.mts +40 -0
- package/src/lib/format/head-checks.d.ts +40 -0
- package/src/lib/format/head-checks.js +172 -0
- package/src/lib/format/head-checks.js.map +1 -0
- package/src/lib/format/head-checks.mjs +167 -0
- package/src/lib/format/head-checks.mjs.map +1 -0
- package/src/lib/format/layout.d.mts +6485 -1447
- package/src/lib/format/layout.d.ts +6485 -1447
- package/src/lib/format/layout.js +106 -2
- package/src/lib/format/layout.js.map +1 -1
- package/src/lib/format/layout.mjs +105 -1
- package/src/lib/format/layout.mjs.map +1 -1
- package/src/lib/format/layout.types.d.mts +7 -1
- package/src/lib/format/layout.types.d.ts +7 -1
- package/src/lib/format/page.d.mts +1502 -162
- package/src/lib/format/page.d.ts +1502 -162
- package/src/lib/format/page.js +3 -0
- package/src/lib/format/page.js.map +1 -1
- package/src/lib/format/page.mjs +3 -0
- package/src/lib/format/page.mjs.map +1 -1
- package/src/lib/format/pattern.d.mts +10 -0
- package/src/lib/format/pattern.d.ts +10 -0
- package/src/lib/format/pattern.js +33 -0
- package/src/lib/format/pattern.js.map +1 -0
- package/src/lib/format/pattern.mjs +30 -0
- package/src/lib/format/pattern.mjs.map +1 -0
- package/src/lib/format/picker-options.d.mts +22 -0
- package/src/lib/format/picker-options.d.ts +22 -0
- package/src/lib/format/picker-options.js +50 -0
- package/src/lib/format/picker-options.js.map +1 -0
- package/src/lib/format/picker-options.mjs +46 -0
- package/src/lib/format/picker-options.mjs.map +1 -0
- package/src/lib/format/references.d.mts +9 -0
- package/src/lib/format/references.d.ts +9 -0
- package/src/lib/format/references.js +96 -1
- package/src/lib/format/references.js.map +1 -1
- package/src/lib/format/references.mjs +96 -1
- package/src/lib/format/references.mjs.map +1 -1
- package/src/lib/format/section-checks.d.mts +10 -0
- package/src/lib/format/section-checks.d.ts +10 -0
- package/src/lib/format/section-checks.js +35 -0
- package/src/lib/format/section-checks.js.map +1 -0
- package/src/lib/format/section-checks.mjs +31 -0
- package/src/lib/format/section-checks.mjs.map +1 -0
- package/src/lib/format/translate.js +14 -4
- package/src/lib/format/translate.js.map +1 -1
- package/src/lib/format/translate.mjs +14 -4
- package/src/lib/format/translate.mjs.map +1 -1
- package/src/lib/record/check.d.mts +13 -3
- package/src/lib/record/check.d.ts +13 -3
- package/src/lib/record/check.js +87 -17
- package/src/lib/record/check.js.map +1 -1
- package/src/lib/record/check.mjs +85 -17
- package/src/lib/record/check.mjs.map +1 -1
- package/src/lib/record/filter.js +14 -2
- package/src/lib/record/filter.js.map +1 -1
- package/src/lib/record/filter.mjs +14 -2
- package/src/lib/record/filter.mjs.map +1 -1
- package/src/lib/record/form.d.mts +56 -2
- package/src/lib/record/form.d.ts +56 -2
- package/src/lib/record/form.js +293 -26
- package/src/lib/record/form.js.map +1 -1
- package/src/lib/record/form.mjs +295 -28
- package/src/lib/record/form.mjs.map +1 -1
- package/src/lib/record/input-rules.d.mts +277 -0
- package/src/lib/record/input-rules.d.ts +277 -0
- package/src/lib/record/input-rules.js +724 -0
- package/src/lib/record/input-rules.js.map +1 -0
- package/src/lib/record/input-rules.mjs +705 -0
- package/src/lib/record/input-rules.mjs.map +1 -0
- package/src/lib/record/inputs.d.mts +25 -0
- package/src/lib/record/inputs.d.ts +25 -0
- package/src/lib/record/inputs.js +135 -9
- package/src/lib/record/inputs.js.map +1 -1
- package/src/lib/record/inputs.mjs +131 -9
- package/src/lib/record/inputs.mjs.map +1 -1
- package/src/lib/record/locales/ar.js +13 -2
- package/src/lib/record/locales/ar.js.map +1 -1
- package/src/lib/record/locales/ar.mjs +13 -2
- package/src/lib/record/locales/ar.mjs.map +1 -1
- package/src/lib/record/locales/de.js +13 -2
- package/src/lib/record/locales/de.js.map +1 -1
- package/src/lib/record/locales/de.mjs +13 -2
- package/src/lib/record/locales/de.mjs.map +1 -1
- package/src/lib/record/locales/fr.js +13 -2
- package/src/lib/record/locales/fr.js.map +1 -1
- package/src/lib/record/locales/fr.mjs +13 -2
- package/src/lib/record/locales/fr.mjs.map +1 -1
- package/src/lib/record/memory-data-source.d.mts +7 -0
- package/src/lib/record/memory-data-source.d.ts +7 -0
- package/src/lib/record/memory-data-source.js +24 -2
- package/src/lib/record/memory-data-source.js.map +1 -1
- package/src/lib/record/memory-data-source.mjs +24 -2
- package/src/lib/record/memory-data-source.mjs.map +1 -1
- package/src/lib/record/messages.d.mts +22 -0
- package/src/lib/record/messages.d.ts +22 -0
- package/src/lib/record/messages.js +13 -2
- package/src/lib/record/messages.js.map +1 -1
- package/src/lib/record/messages.mjs +13 -2
- package/src/lib/record/messages.mjs.map +1 -1
- package/src/lib/record/rules.js +3 -1
- package/src/lib/record/rules.js.map +1 -1
- package/src/lib/record/rules.mjs +3 -1
- package/src/lib/record/rules.mjs.map +1 -1
- package/src/lib/record/run.d.mts +10 -2
- package/src/lib/record/run.d.ts +10 -2
- package/src/lib/record/run.js +8 -1
- package/src/lib/record/run.js.map +1 -1
- package/src/lib/record/run.mjs +8 -1
- package/src/lib/record/run.mjs.map +1 -1
- package/src/lib/record/search.d.mts +8 -1
- package/src/lib/record/search.d.ts +8 -1
- package/src/lib/record/search.js +28 -8
- package/src/lib/record/search.js.map +1 -1
- package/src/lib/record/search.mjs +28 -8
- package/src/lib/record/search.mjs.map +1 -1
- package/src/lib/record/structures.d.mts +8 -3
- package/src/lib/record/structures.d.ts +8 -3
- package/src/lib/record/structures.js +51 -7
- package/src/lib/record/structures.js.map +1 -1
- package/src/lib/record/structures.mjs +48 -6
- package/src/lib/record/structures.mjs.map +1 -1
- package/src/lib/record/values.d.mts +4 -0
- package/src/lib/record/values.d.ts +4 -0
- package/src/lib/record/values.js.map +1 -1
- package/src/lib/record/values.mjs.map +1 -1
- package/src/runtime.d.mts +7 -3
- package/src/runtime.d.ts +7 -3
- package/src/runtime.js +31 -1
- package/src/runtime.js.map +1 -1
- package/src/runtime.mjs +5 -2
- package/src/runtime.mjs.map +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"input-rules.mjs","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/record/input-rules.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,4 +2,29 @@ import type { Field } from '../format/field.mjs';
|
|
|
2
2
|
import type { FieldNode } from '../format/layout.mjs';
|
|
3
3
|
import { type Messages } from './messages.mjs';
|
|
4
4
|
import type { Value } from './values.mjs';
|
|
5
|
+
/**
|
|
6
|
+
* Whether text is a web address, and if not, why: 'scheme' for one of
|
|
7
|
+
* another kind — javascript:, data:, mailto:, ftp: — which never goes where a
|
|
8
|
+
* web address does; 'bad' for text that is no address. With or without
|
|
9
|
+
* http:// or https://; a name with dots and a top level of two or more
|
|
10
|
+
* letters (example.com, مثال.مصر), a single name (localhost, intranet), an
|
|
11
|
+
* IPv4 or IPv6 address, and a port.
|
|
12
|
+
*/
|
|
13
|
+
export declare function webAddress(text: string): 'ok' | 'scheme' | 'bad';
|
|
14
|
+
/** What no part of an email address can be: before its @, the marks it can only have inside quotes. */
|
|
15
|
+
export declare const EMAIL_LOCAL_STRAYS: RegExp;
|
|
16
|
+
/**
|
|
17
|
+
* The text a one-line box keeps once it is left, in place of what was typed:
|
|
18
|
+
* a phone number and an answer a pattern checks with their digits as 0-9
|
|
19
|
+
* and no direction marks; an email with no direction marks and no
|
|
20
|
+
* zero-width characters, a web address with no direction marks; any other
|
|
21
|
+
* text with none at its ends — each trimmed, spaces alone being nothing. A
|
|
22
|
+
* password is kept as it is.
|
|
23
|
+
*/
|
|
24
|
+
export declare function settledText(text: string, kind: {
|
|
25
|
+
widget?: string;
|
|
26
|
+
pattern?: boolean;
|
|
27
|
+
}): string;
|
|
28
|
+
/** Whether a field's answer is checked against a pattern: the field's own, or an answer rule's on its node. */
|
|
29
|
+
export declare function hasPattern(field: Field, node: FieldNode): boolean;
|
|
5
30
|
export declare function checkInput(field: Field, node: FieldNode, value: Value | undefined, messages: Messages): string | undefined;
|
|
@@ -2,4 +2,29 @@ import type { Field } from '../format/field';
|
|
|
2
2
|
import type { FieldNode } from '../format/layout';
|
|
3
3
|
import { type Messages } from './messages';
|
|
4
4
|
import type { Value } from './values';
|
|
5
|
+
/**
|
|
6
|
+
* Whether text is a web address, and if not, why: 'scheme' for one of
|
|
7
|
+
* another kind — javascript:, data:, mailto:, ftp: — which never goes where a
|
|
8
|
+
* web address does; 'bad' for text that is no address. With or without
|
|
9
|
+
* http:// or https://; a name with dots and a top level of two or more
|
|
10
|
+
* letters (example.com, مثال.مصر), a single name (localhost, intranet), an
|
|
11
|
+
* IPv4 or IPv6 address, and a port.
|
|
12
|
+
*/
|
|
13
|
+
export declare function webAddress(text: string): 'ok' | 'scheme' | 'bad';
|
|
14
|
+
/** What no part of an email address can be: before its @, the marks it can only have inside quotes. */
|
|
15
|
+
export declare const EMAIL_LOCAL_STRAYS: RegExp;
|
|
16
|
+
/**
|
|
17
|
+
* The text a one-line box keeps once it is left, in place of what was typed:
|
|
18
|
+
* a phone number and an answer a pattern checks with their digits as 0-9
|
|
19
|
+
* and no direction marks; an email with no direction marks and no
|
|
20
|
+
* zero-width characters, a web address with no direction marks; any other
|
|
21
|
+
* text with none at its ends — each trimmed, spaces alone being nothing. A
|
|
22
|
+
* password is kept as it is.
|
|
23
|
+
*/
|
|
24
|
+
export declare function settledText(text: string, kind: {
|
|
25
|
+
widget?: string;
|
|
26
|
+
pattern?: boolean;
|
|
27
|
+
}): string;
|
|
28
|
+
/** Whether a field's answer is checked against a pattern: the field's own, or an answer rule's on its node. */
|
|
29
|
+
export declare function hasPattern(field: Field, node: FieldNode): boolean;
|
|
5
30
|
export declare function checkInput(field: Field, node: FieldNode, value: Value | undefined, messages: Messages): string | undefined;
|
package/src/lib/record/inputs.js
CHANGED
|
@@ -1,34 +1,138 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.EMAIL_LOCAL_STRAYS = void 0;
|
|
4
|
+
exports.webAddress = webAddress;
|
|
5
|
+
exports.settledText = settledText;
|
|
6
|
+
exports.hasPattern = hasPattern;
|
|
3
7
|
exports.checkInput = checkInput;
|
|
8
|
+
const input_rules_1 = require("./input-rules");
|
|
4
9
|
const messages_1 = require("./messages");
|
|
5
10
|
const structures_1 = require("./structures");
|
|
6
11
|
/**
|
|
7
12
|
* What a text field's widget asks of its answer, besides the field's own
|
|
8
|
-
* rules: an email, a web address (example.com,
|
|
9
|
-
* a phone number (a plus, digits, spaces, dots,
|
|
10
|
-
* digits), a time of day (HH:MM, between the
|
|
11
|
-
* more keywords than the node's `max` — and
|
|
12
|
-
*
|
|
13
|
-
*
|
|
13
|
+
* rules: an email, a web address (example.com, localhost:3000, 192.168.1.10,
|
|
14
|
+
* https://…), a phone number (a plus, digits in any script, spaces, dots,
|
|
15
|
+
* dashes and brackets, 7 to 15 digits), a time of day (HH:MM, between the
|
|
16
|
+
* node's `min` and `max`), and no more keywords than the node's `max` — and
|
|
17
|
+
* the structures' own, from `structures`. Invisible direction marks, which
|
|
18
|
+
* text copied from Arabic carries, are no part of an address or a number.
|
|
19
|
+
* Undefined when it keeps them, or when there is nothing to check: an empty
|
|
20
|
+
* answer is `required`'s to judge.
|
|
14
21
|
*/
|
|
15
22
|
const FORMATS = {
|
|
16
|
-
|
|
17
|
-
|
|
23
|
+
// Before its @, none of the marks an address can only have inside quotes: a link's "mailto:" is no part of one.
|
|
24
|
+
email: /^[^@\s()<>[\]:;\\,"]+@[^@\s]+\.[^@\s]+$/u,
|
|
18
25
|
phone: /^\+?[\p{Nd}\s.()-]+$/u,
|
|
19
26
|
time: /^([01]\d|2[0-3]):[0-5]\d$/,
|
|
20
27
|
};
|
|
28
|
+
/** A web address's parts: its scheme, its host (a name, an IPv4 or an [IPv6] address), its port and the rest. */
|
|
29
|
+
const WEB = /^(?:([a-z][a-z0-9+.-]*):\/\/)?(\[[0-9a-f:.]+\]|[^\s/?#:[\]@]+)(?::(\d{1,5}))?([/?#]\S*)?$/iu;
|
|
30
|
+
/** A scheme a link must never have: it runs code or reads the computer's files. */
|
|
31
|
+
const NEVER = /^(?:javascript|data|vbscript|file):/i;
|
|
32
|
+
/** A name's label: letters and digits in any script, with dashes inside it. */
|
|
33
|
+
const LABEL = /^[\p{L}\p{N}\p{M}](?:[\p{L}\p{N}\p{M}-]*[\p{L}\p{N}\p{M}])?$/u;
|
|
34
|
+
/**
|
|
35
|
+
* Whether text is a web address, and if not, why: 'scheme' for one of
|
|
36
|
+
* another kind — javascript:, data:, mailto:, ftp: — which never goes where a
|
|
37
|
+
* web address does; 'bad' for text that is no address. With or without
|
|
38
|
+
* http:// or https://; a name with dots and a top level of two or more
|
|
39
|
+
* letters (example.com, مثال.مصر), a single name (localhost, intranet), an
|
|
40
|
+
* IPv4 or IPv6 address, and a port.
|
|
41
|
+
*/
|
|
42
|
+
function webAddress(text) {
|
|
43
|
+
const t = (0, input_rules_1.stripMarks)(text).trim();
|
|
44
|
+
if (NEVER.test(t))
|
|
45
|
+
return 'scheme';
|
|
46
|
+
// Another scheme ("mailto:", "ftp://"), not a name and its port ("localhost:3000").
|
|
47
|
+
const scheme = /^([a-z][a-z0-9+.-]*):(?!\d)/i.exec(t);
|
|
48
|
+
if (scheme && !/^https?$/i.test(scheme[1]))
|
|
49
|
+
return 'scheme';
|
|
50
|
+
const parts = WEB.exec(t);
|
|
51
|
+
if (!parts)
|
|
52
|
+
return 'bad';
|
|
53
|
+
const [, , host, port] = parts;
|
|
54
|
+
if (port !== undefined && Number(port) > 65535)
|
|
55
|
+
return 'bad';
|
|
56
|
+
if (host.startsWith('['))
|
|
57
|
+
return host.split(':').length >= 3 ? 'ok' : 'bad';
|
|
58
|
+
const labels = host.split('.');
|
|
59
|
+
if (labels.every((label) => /^\d+$/.test(label)))
|
|
60
|
+
return labels.length === 4 && labels.every((n) => Number(n) <= 255) ? 'ok' : 'bad';
|
|
61
|
+
if (!labels.every((label) => LABEL.test(label)))
|
|
62
|
+
return 'bad';
|
|
63
|
+
const top = labels[labels.length - 1];
|
|
64
|
+
return labels.length === 1 || ([...top].length >= 2 && !/^\d+$/.test(top)) ? 'ok' : 'bad';
|
|
65
|
+
}
|
|
66
|
+
/** The characters no one sees between the letters of an address — a zero-width space, joiner or non-joiner, a word joiner, a soft hyphen — that make one no mail reaches. */
|
|
67
|
+
const ZERO_WIDTH = /[\u200b-\u200d\u2060\u00ad]/g;
|
|
68
|
+
/** What no part of an email address can be: before its @, the marks it can only have inside quotes. */
|
|
69
|
+
exports.EMAIL_LOCAL_STRAYS = /[()<>[\]:;\\,"]/g;
|
|
70
|
+
/**
|
|
71
|
+
* The text a one-line box keeps once it is left, in place of what was typed:
|
|
72
|
+
* a phone number and an answer a pattern checks with their digits as 0-9
|
|
73
|
+
* and no direction marks; an email with no direction marks and no
|
|
74
|
+
* zero-width characters, a web address with no direction marks; any other
|
|
75
|
+
* text with none at its ends — each trimmed, spaces alone being nothing. A
|
|
76
|
+
* password is kept as it is.
|
|
77
|
+
*/
|
|
78
|
+
function settledText(text, kind) {
|
|
79
|
+
const { widget, pattern } = kind;
|
|
80
|
+
if (widget === 'password')
|
|
81
|
+
return text;
|
|
82
|
+
if (widget === 'phone' || pattern)
|
|
83
|
+
return (0, input_rules_1.foldDigits)((0, input_rules_1.stripMarks)(text)).trim();
|
|
84
|
+
if (widget === 'email')
|
|
85
|
+
return (0, input_rules_1.stripMarks)(text).replace(ZERO_WIDTH, '').trim();
|
|
86
|
+
if (widget === 'url')
|
|
87
|
+
return (0, input_rules_1.stripMarks)(text).trim();
|
|
88
|
+
return (0, input_rules_1.stripMarks)(text, 'ends').trim();
|
|
89
|
+
}
|
|
90
|
+
/** Whether a field's answer is checked against a pattern: the field's own, or an answer rule's on its node. */
|
|
91
|
+
function hasPattern(field, node) {
|
|
92
|
+
return (field.type === 'char' && field.pattern !== undefined) || !!node.validate?.some((rule) => rule.pattern !== undefined);
|
|
93
|
+
}
|
|
21
94
|
function checkInput(field, node, value, messages) {
|
|
22
95
|
const widget = node.widget ?? '';
|
|
96
|
+
// A bar a person types into keeps to its own range — its options' min and max, else the field's, else 0 to 100 —
|
|
97
|
+
// so the bar and its box never disagree. A maximum read from another field (maxField) is the bar's alone.
|
|
98
|
+
if (widget === 'progressbar' && node.options?.['editable'] === true && typeof value === 'number' && (field.type === 'integer' || field.type === 'float' || field.type === 'monetary')) {
|
|
99
|
+
const options = node.options;
|
|
100
|
+
const label = node.label ?? field.label;
|
|
101
|
+
const min = typeof options['min'] === 'number' ? options['min'] : (field.min ?? 0);
|
|
102
|
+
const max = typeof options['maxField'] === 'string' ? undefined : typeof options['max'] === 'number' ? options['max'] : (field.max ?? 100);
|
|
103
|
+
if (value < min)
|
|
104
|
+
return (0, messages_1.fill)(messages.min, { label, min });
|
|
105
|
+
if (max !== undefined && value > max)
|
|
106
|
+
return (0, messages_1.fill)(messages.max, { label, max });
|
|
107
|
+
}
|
|
108
|
+
// Stars or a scale keep to the points they draw: the field's min and max, else a rating's 1 to 5 and a scale's 0 to 10.
|
|
109
|
+
if ((widget === 'rating' || widget === 'scale') && typeof value === 'number' && field.type === 'integer') {
|
|
110
|
+
const label = node.label ?? field.label;
|
|
111
|
+
const min = field.min ?? (widget === 'rating' ? 1 : 0);
|
|
112
|
+
const max = field.max ?? (widget === 'rating' ? 5 : 10);
|
|
113
|
+
if (value < min)
|
|
114
|
+
return (0, messages_1.fill)(messages.min, { label, min });
|
|
115
|
+
if (value > max)
|
|
116
|
+
return (0, messages_1.fill)(messages.max, { label, max });
|
|
117
|
+
}
|
|
23
118
|
if (field.type !== 'char')
|
|
24
119
|
return (0, structures_1.checkStructure)(field, node, value, messages);
|
|
25
120
|
if (typeof value !== 'string' || !value.trim())
|
|
26
121
|
return undefined;
|
|
27
|
-
|
|
122
|
+
// An address or a number copied from Arabic text brings direction marks along: no part of it, never a reason to refuse it.
|
|
123
|
+
const text = widget === 'phone' ? (0, input_rules_1.foldDigits)((0, input_rules_1.stripMarks)(value)).trim() : widget === 'email' || widget === 'url' ? (0, input_rules_1.stripMarks)(value).trim() : value.trim();
|
|
28
124
|
const options = node.options ?? {};
|
|
29
125
|
const label = node.label ?? field.label;
|
|
126
|
+
if (widget === 'url') {
|
|
127
|
+
const address = webAddress(text);
|
|
128
|
+
if (address !== 'ok')
|
|
129
|
+
return address === 'scheme' ? messages.urlScheme : messages.url;
|
|
130
|
+
}
|
|
30
131
|
const format = FORMATS[widget];
|
|
31
132
|
const digits = text.match(/\p{Nd}/gu)?.length ?? 0;
|
|
133
|
+
// Any other invisible character left in an email (a zero-width space, a joiner) makes an address no mail reaches.
|
|
134
|
+
if (widget === 'email' && /\p{Cf}/u.test(text))
|
|
135
|
+
return messages.email;
|
|
32
136
|
if (format && (!format.test(text) || (widget === 'phone' && (digits < 7 || digits > 15))))
|
|
33
137
|
return messages[widget];
|
|
34
138
|
if (widget === 'time') {
|
|
@@ -36,6 +140,9 @@ function checkInput(field, node, value, messages) {
|
|
|
36
140
|
return (0, messages_1.fill)(messages.before, { label, min: options['min'] });
|
|
37
141
|
if (typeof options['max'] === 'string' && text > options['max'])
|
|
38
142
|
return (0, messages_1.fill)(messages.after, { label, max: options['max'] });
|
|
143
|
+
const off = offStep(text, options['step'], options['min']);
|
|
144
|
+
if (off)
|
|
145
|
+
return (0, messages_1.fill)(messages.timeStep, { label, step: off.step, example: off.before, next: off.after });
|
|
39
146
|
}
|
|
40
147
|
if (widget === 'tags' && typeof options['max'] === 'number') {
|
|
41
148
|
const count = text.split(typeof options['separator'] === 'string' && options['separator'] ? options['separator'] : ',').filter((t) => t.trim()).length;
|
|
@@ -44,4 +151,23 @@ function checkInput(field, node, value, messages) {
|
|
|
44
151
|
}
|
|
45
152
|
return undefined;
|
|
46
153
|
}
|
|
154
|
+
const minutesOf = (time) => Number(time.slice(0, 2)) * 60 + Number(time.slice(3, 5));
|
|
155
|
+
const clock = (minutes) => `${String(Math.floor(minutes / 60)).padStart(2, '0')}:${String(minutes % 60).padStart(2, '0')}`;
|
|
156
|
+
/**
|
|
157
|
+
* A time between a node's steps (`step` minutes, counted from its earliest, else from 00:00), with the steps either
|
|
158
|
+
* side of it — "07:10" in steps of 15 from 07:00 is between 07:00 and 07:15; undefined on a step, or with no steps.
|
|
159
|
+
*/
|
|
160
|
+
function offStep(time, step, min) {
|
|
161
|
+
if (typeof step !== 'number' || !Number.isInteger(step) || step <= 1 || !/^\d{2}:\d{2}$/.test(time))
|
|
162
|
+
return undefined;
|
|
163
|
+
const from = typeof min === 'string' && /^\d{2}:\d{2}$/.test(min) ? minutesOf(min) : 0;
|
|
164
|
+
const at = minutesOf(time);
|
|
165
|
+
const past = (((at - from) % step) + step) % step;
|
|
166
|
+
if (!past)
|
|
167
|
+
return undefined;
|
|
168
|
+
const before = at - past;
|
|
169
|
+
// The day ends at 23:59: a step past it is the one before the last.
|
|
170
|
+
const after = before + step < 24 * 60 ? before + step : before - step;
|
|
171
|
+
return { step, before: clock(before), after: clock(Math.max(0, after)) };
|
|
172
|
+
}
|
|
47
173
|
//# sourceMappingURL=inputs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inputs.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/record/inputs.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"inputs.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/record/inputs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,31 +1,131 @@
|
|
|
1
|
+
import { foldDigits, stripMarks } from './input-rules.mjs';
|
|
1
2
|
import { fill } from './messages.mjs';
|
|
2
3
|
import { checkStructure } from './structures.mjs';
|
|
3
4
|
/**
|
|
4
5
|
* What a text field's widget asks of its answer, besides the field's own
|
|
5
|
-
* rules: an email, a web address (example.com,
|
|
6
|
-
* a phone number (a plus, digits, spaces, dots,
|
|
7
|
-
* digits), a time of day (HH:MM, between the
|
|
8
|
-
* more keywords than the node's `max` — and
|
|
9
|
-
*
|
|
10
|
-
*
|
|
6
|
+
* rules: an email, a web address (example.com, localhost:3000, 192.168.1.10,
|
|
7
|
+
* https://…), a phone number (a plus, digits in any script, spaces, dots,
|
|
8
|
+
* dashes and brackets, 7 to 15 digits), a time of day (HH:MM, between the
|
|
9
|
+
* node's `min` and `max`), and no more keywords than the node's `max` — and
|
|
10
|
+
* the structures' own, from `structures`. Invisible direction marks, which
|
|
11
|
+
* text copied from Arabic carries, are no part of an address or a number.
|
|
12
|
+
* Undefined when it keeps them, or when there is nothing to check: an empty
|
|
13
|
+
* answer is `required`'s to judge.
|
|
11
14
|
*/
|
|
12
15
|
const FORMATS = {
|
|
13
|
-
|
|
14
|
-
|
|
16
|
+
// Before its @, none of the marks an address can only have inside quotes: a link's "mailto:" is no part of one.
|
|
17
|
+
email: /^[^@\s()<>[\]:;\\,"]+@[^@\s]+\.[^@\s]+$/u,
|
|
15
18
|
phone: /^\+?[\p{Nd}\s.()-]+$/u,
|
|
16
19
|
time: /^([01]\d|2[0-3]):[0-5]\d$/,
|
|
17
20
|
};
|
|
21
|
+
/** A web address's parts: its scheme, its host (a name, an IPv4 or an [IPv6] address), its port and the rest. */
|
|
22
|
+
const WEB = /^(?:([a-z][a-z0-9+.-]*):\/\/)?(\[[0-9a-f:.]+\]|[^\s/?#:[\]@]+)(?::(\d{1,5}))?([/?#]\S*)?$/iu;
|
|
23
|
+
/** A scheme a link must never have: it runs code or reads the computer's files. */
|
|
24
|
+
const NEVER = /^(?:javascript|data|vbscript|file):/i;
|
|
25
|
+
/** A name's label: letters and digits in any script, with dashes inside it. */
|
|
26
|
+
const LABEL = /^[\p{L}\p{N}\p{M}](?:[\p{L}\p{N}\p{M}-]*[\p{L}\p{N}\p{M}])?$/u;
|
|
27
|
+
/**
|
|
28
|
+
* Whether text is a web address, and if not, why: 'scheme' for one of
|
|
29
|
+
* another kind — javascript:, data:, mailto:, ftp: — which never goes where a
|
|
30
|
+
* web address does; 'bad' for text that is no address. With or without
|
|
31
|
+
* http:// or https://; a name with dots and a top level of two or more
|
|
32
|
+
* letters (example.com, مثال.مصر), a single name (localhost, intranet), an
|
|
33
|
+
* IPv4 or IPv6 address, and a port.
|
|
34
|
+
*/
|
|
35
|
+
export function webAddress(text) {
|
|
36
|
+
const t = stripMarks(text).trim();
|
|
37
|
+
if (NEVER.test(t))
|
|
38
|
+
return 'scheme';
|
|
39
|
+
// Another scheme ("mailto:", "ftp://"), not a name and its port ("localhost:3000").
|
|
40
|
+
const scheme = /^([a-z][a-z0-9+.-]*):(?!\d)/i.exec(t);
|
|
41
|
+
if (scheme && !/^https?$/i.test(scheme[1]))
|
|
42
|
+
return 'scheme';
|
|
43
|
+
const parts = WEB.exec(t);
|
|
44
|
+
if (!parts)
|
|
45
|
+
return 'bad';
|
|
46
|
+
const [, , host, port] = parts;
|
|
47
|
+
if (port !== undefined && Number(port) > 65535)
|
|
48
|
+
return 'bad';
|
|
49
|
+
if (host.startsWith('['))
|
|
50
|
+
return host.split(':').length >= 3 ? 'ok' : 'bad';
|
|
51
|
+
const labels = host.split('.');
|
|
52
|
+
if (labels.every((label) => /^\d+$/.test(label)))
|
|
53
|
+
return labels.length === 4 && labels.every((n) => Number(n) <= 255) ? 'ok' : 'bad';
|
|
54
|
+
if (!labels.every((label) => LABEL.test(label)))
|
|
55
|
+
return 'bad';
|
|
56
|
+
const top = labels[labels.length - 1];
|
|
57
|
+
return labels.length === 1 || ([...top].length >= 2 && !/^\d+$/.test(top)) ? 'ok' : 'bad';
|
|
58
|
+
}
|
|
59
|
+
/** The characters no one sees between the letters of an address — a zero-width space, joiner or non-joiner, a word joiner, a soft hyphen — that make one no mail reaches. */
|
|
60
|
+
const ZERO_WIDTH = /[\u200b-\u200d\u2060\u00ad]/g;
|
|
61
|
+
/** What no part of an email address can be: before its @, the marks it can only have inside quotes. */
|
|
62
|
+
export const EMAIL_LOCAL_STRAYS = /[()<>[\]:;\\,"]/g;
|
|
63
|
+
/**
|
|
64
|
+
* The text a one-line box keeps once it is left, in place of what was typed:
|
|
65
|
+
* a phone number and an answer a pattern checks with their digits as 0-9
|
|
66
|
+
* and no direction marks; an email with no direction marks and no
|
|
67
|
+
* zero-width characters, a web address with no direction marks; any other
|
|
68
|
+
* text with none at its ends — each trimmed, spaces alone being nothing. A
|
|
69
|
+
* password is kept as it is.
|
|
70
|
+
*/
|
|
71
|
+
export function settledText(text, kind) {
|
|
72
|
+
const { widget, pattern } = kind;
|
|
73
|
+
if (widget === 'password')
|
|
74
|
+
return text;
|
|
75
|
+
if (widget === 'phone' || pattern)
|
|
76
|
+
return foldDigits(stripMarks(text)).trim();
|
|
77
|
+
if (widget === 'email')
|
|
78
|
+
return stripMarks(text).replace(ZERO_WIDTH, '').trim();
|
|
79
|
+
if (widget === 'url')
|
|
80
|
+
return stripMarks(text).trim();
|
|
81
|
+
return stripMarks(text, 'ends').trim();
|
|
82
|
+
}
|
|
83
|
+
/** Whether a field's answer is checked against a pattern: the field's own, or an answer rule's on its node. */
|
|
84
|
+
export function hasPattern(field, node) {
|
|
85
|
+
return (field.type === 'char' && field.pattern !== undefined) || !!node.validate?.some((rule) => rule.pattern !== undefined);
|
|
86
|
+
}
|
|
18
87
|
export function checkInput(field, node, value, messages) {
|
|
19
88
|
const widget = node.widget ?? '';
|
|
89
|
+
// A bar a person types into keeps to its own range — its options' min and max, else the field's, else 0 to 100 —
|
|
90
|
+
// so the bar and its box never disagree. A maximum read from another field (maxField) is the bar's alone.
|
|
91
|
+
if (widget === 'progressbar' && node.options?.['editable'] === true && typeof value === 'number' && (field.type === 'integer' || field.type === 'float' || field.type === 'monetary')) {
|
|
92
|
+
const options = node.options;
|
|
93
|
+
const label = node.label ?? field.label;
|
|
94
|
+
const min = typeof options['min'] === 'number' ? options['min'] : (field.min ?? 0);
|
|
95
|
+
const max = typeof options['maxField'] === 'string' ? undefined : typeof options['max'] === 'number' ? options['max'] : (field.max ?? 100);
|
|
96
|
+
if (value < min)
|
|
97
|
+
return fill(messages.min, { label, min });
|
|
98
|
+
if (max !== undefined && value > max)
|
|
99
|
+
return fill(messages.max, { label, max });
|
|
100
|
+
}
|
|
101
|
+
// Stars or a scale keep to the points they draw: the field's min and max, else a rating's 1 to 5 and a scale's 0 to 10.
|
|
102
|
+
if ((widget === 'rating' || widget === 'scale') && typeof value === 'number' && field.type === 'integer') {
|
|
103
|
+
const label = node.label ?? field.label;
|
|
104
|
+
const min = field.min ?? (widget === 'rating' ? 1 : 0);
|
|
105
|
+
const max = field.max ?? (widget === 'rating' ? 5 : 10);
|
|
106
|
+
if (value < min)
|
|
107
|
+
return fill(messages.min, { label, min });
|
|
108
|
+
if (value > max)
|
|
109
|
+
return fill(messages.max, { label, max });
|
|
110
|
+
}
|
|
20
111
|
if (field.type !== 'char')
|
|
21
112
|
return checkStructure(field, node, value, messages);
|
|
22
113
|
if (typeof value !== 'string' || !value.trim())
|
|
23
114
|
return undefined;
|
|
24
|
-
|
|
115
|
+
// An address or a number copied from Arabic text brings direction marks along: no part of it, never a reason to refuse it.
|
|
116
|
+
const text = widget === 'phone' ? foldDigits(stripMarks(value)).trim() : widget === 'email' || widget === 'url' ? stripMarks(value).trim() : value.trim();
|
|
25
117
|
const options = node.options ?? {};
|
|
26
118
|
const label = node.label ?? field.label;
|
|
119
|
+
if (widget === 'url') {
|
|
120
|
+
const address = webAddress(text);
|
|
121
|
+
if (address !== 'ok')
|
|
122
|
+
return address === 'scheme' ? messages.urlScheme : messages.url;
|
|
123
|
+
}
|
|
27
124
|
const format = FORMATS[widget];
|
|
28
125
|
const digits = text.match(/\p{Nd}/gu)?.length ?? 0;
|
|
126
|
+
// Any other invisible character left in an email (a zero-width space, a joiner) makes an address no mail reaches.
|
|
127
|
+
if (widget === 'email' && /\p{Cf}/u.test(text))
|
|
128
|
+
return messages.email;
|
|
29
129
|
if (format && (!format.test(text) || (widget === 'phone' && (digits < 7 || digits > 15))))
|
|
30
130
|
return messages[widget];
|
|
31
131
|
if (widget === 'time') {
|
|
@@ -33,6 +133,9 @@ export function checkInput(field, node, value, messages) {
|
|
|
33
133
|
return fill(messages.before, { label, min: options['min'] });
|
|
34
134
|
if (typeof options['max'] === 'string' && text > options['max'])
|
|
35
135
|
return fill(messages.after, { label, max: options['max'] });
|
|
136
|
+
const off = offStep(text, options['step'], options['min']);
|
|
137
|
+
if (off)
|
|
138
|
+
return fill(messages.timeStep, { label, step: off.step, example: off.before, next: off.after });
|
|
36
139
|
}
|
|
37
140
|
if (widget === 'tags' && typeof options['max'] === 'number') {
|
|
38
141
|
const count = text.split(typeof options['separator'] === 'string' && options['separator'] ? options['separator'] : ',').filter((t) => t.trim()).length;
|
|
@@ -41,4 +144,23 @@ export function checkInput(field, node, value, messages) {
|
|
|
41
144
|
}
|
|
42
145
|
return undefined;
|
|
43
146
|
}
|
|
147
|
+
const minutesOf = (time) => Number(time.slice(0, 2)) * 60 + Number(time.slice(3, 5));
|
|
148
|
+
const clock = (minutes) => `${String(Math.floor(minutes / 60)).padStart(2, '0')}:${String(minutes % 60).padStart(2, '0')}`;
|
|
149
|
+
/**
|
|
150
|
+
* A time between a node's steps (`step` minutes, counted from its earliest, else from 00:00), with the steps either
|
|
151
|
+
* side of it — "07:10" in steps of 15 from 07:00 is between 07:00 and 07:15; undefined on a step, or with no steps.
|
|
152
|
+
*/
|
|
153
|
+
function offStep(time, step, min) {
|
|
154
|
+
if (typeof step !== 'number' || !Number.isInteger(step) || step <= 1 || !/^\d{2}:\d{2}$/.test(time))
|
|
155
|
+
return undefined;
|
|
156
|
+
const from = typeof min === 'string' && /^\d{2}:\d{2}$/.test(min) ? minutesOf(min) : 0;
|
|
157
|
+
const at = minutesOf(time);
|
|
158
|
+
const past = (((at - from) % step) + step) % step;
|
|
159
|
+
if (!past)
|
|
160
|
+
return undefined;
|
|
161
|
+
const before = at - past;
|
|
162
|
+
// The day ends at 23:59: a step past it is the one before the last.
|
|
163
|
+
const after = before + step < 24 * 60 ? before + step : before - step;
|
|
164
|
+
return { step, before: clock(before), after: clock(Math.max(0, after)) };
|
|
165
|
+
}
|
|
44
166
|
//# sourceMappingURL=inputs.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"inputs.mjs","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/record/inputs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,IAAI,EAAiB,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C
|
|
1
|
+
{"version":3,"file":"inputs.mjs","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/record/inputs.ts"],"names":[],"mappings":"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"}
|
|
@@ -4,14 +4,18 @@ exports.ar = void 0;
|
|
|
4
4
|
/** The validation messages in Arabic. */
|
|
5
5
|
exports.ar = {
|
|
6
6
|
required: '{label} مطلوب',
|
|
7
|
-
maxLength: '
|
|
7
|
+
maxLength: '{label}: لا يزيد عدد الأحرف على {max}',
|
|
8
8
|
pattern: 'صيغة {label} غير صحيحة',
|
|
9
9
|
text: 'يجب أن يكون {label} نصًا',
|
|
10
10
|
number: 'يجب أن يكون {label} رقمًا',
|
|
11
11
|
integer: 'يجب أن يكون {label} رقمًا صحيحًا',
|
|
12
12
|
min: 'يجب ألا يقل {label} عن {min}',
|
|
13
13
|
max: 'يجب ألا يزيد {label} عن {max}',
|
|
14
|
-
decimals: '
|
|
14
|
+
decimals: '{label}: {digits} منازل عشرية على الأكثر',
|
|
15
|
+
decimalsOne: '{label}: منزلة عشرية واحدة على الأكثر',
|
|
16
|
+
decimalsTwo: '{label}: منزلتان عشريتان على الأكثر',
|
|
17
|
+
decimalsMany: '{label}: {digits} منزلة عشرية على الأكثر',
|
|
18
|
+
digits: '{label}: لا يزيد عدد الأرقام على {n}',
|
|
15
19
|
boolean: 'يجب أن يكون {label} نعم أو لا',
|
|
16
20
|
dateFormat: 'صيغة التاريخ غير صحيحة (المتوقع YYYY-MM-DD)',
|
|
17
21
|
dateInvalid: 'التاريخ غير صحيح (تحقق من الشهر واليوم)',
|
|
@@ -53,6 +57,13 @@ exports.ar = {
|
|
|
53
57
|
addressParts: 'عنوان الشارع|سطر العنوان 2|المدينة|المحافظة أو المنطقة|الرمز البريدي|الدولة',
|
|
54
58
|
archiveConfirm: 'هل أنت متأكد من أرشفة هذا السجل؟',
|
|
55
59
|
deleteConfirm: 'هل أنت متأكد من حذف هذا السجل؟',
|
|
60
|
+
overBy: '{label}: أطول من الحد ({max}) بـ{over} من الأحرف؛ اختصره للحفظ',
|
|
61
|
+
overByOne: '{label}: أطول من الحد ({max}) بحرف واحد؛ اختصره للحفظ',
|
|
62
|
+
postcode: '{label}: الرمز البريدي في {country} من {n} أرقام، مثل {example}',
|
|
63
|
+
urlScheme: 'يُقبل هنا عنوان موقع فقط (http أو https)',
|
|
64
|
+
endBeforeStart: 'لا يمكن أن يكون {end} قبل {start}',
|
|
65
|
+
timeStep: '{label}: اختر وقتًا من الخطوات المتاحة، مثل {example} أو {next}',
|
|
66
|
+
patternBroken: 'نمط {label} غير صالح: {problem}',
|
|
56
67
|
locale: 'ar',
|
|
57
68
|
};
|
|
58
69
|
//# sourceMappingURL=ar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ar.js","sourceRoot":"","sources":["../../../../../../../libs/core/src/lib/record/locales/ar.ts"],"names":[],"mappings":";;;AAEA,yCAAyC;AAC5B,QAAA,EAAE,GAAa;IAC1B,QAAQ,EAAE,eAAe;IACzB,SAAS,EAAE,
|
|
1
|
+
{"version":3,"file":"ar.js","sourceRoot":"","sources":["../../../../../../../libs/core/src/lib/record/locales/ar.ts"],"names":[],"mappings":";;;AAEA,yCAAyC;AAC5B,QAAA,EAAE,GAAa;IAC1B,QAAQ,EAAE,eAAe;IACzB,SAAS,EAAE,uCAAuC;IAClD,OAAO,EAAE,wBAAwB;IACjC,IAAI,EAAE,0BAA0B;IAChC,MAAM,EAAE,2BAA2B;IACnC,OAAO,EAAE,kCAAkC;IAC3C,GAAG,EAAE,8BAA8B;IACnC,GAAG,EAAE,+BAA+B;IACpC,QAAQ,EAAE,0CAA0C;IACpD,WAAW,EAAE,uCAAuC;IACpD,WAAW,EAAE,qCAAqC;IAClD,YAAY,EAAE,0CAA0C;IACxD,MAAM,EAAE,sCAAsC;IAC9C,OAAO,EAAE,+BAA+B;IACxC,UAAU,EAAE,6CAA6C;IACzD,WAAW,EAAE,yCAAyC;IACtD,cAAc,EAAE,6DAA6D;IAC7E,eAAe,EAAE,2BAA2B;IAC5C,MAAM,EAAE,wCAAwC;IAChD,aAAa,EAAE,uDAAuD;IACtE,MAAM,EAAE,2BAA2B;IACnC,SAAS,EAAE,mBAAmB;IAC9B,UAAU,EAAE,wBAAwB;IACpC,OAAO,EAAE,oCAAoC;IAC7C,MAAM,EAAE,2BAA2B;IACnC,OAAO,EAAE,iCAAiC;IAC1C,SAAS,EAAE,kCAAkC;IAC7C,IAAI,EAAE,2BAA2B;IACjC,QAAQ,EAAE,4BAA4B;IACtC,QAAQ,EAAE,iCAAiC;IAC3C,QAAQ,EAAE,6CAA6C;IACvD,QAAQ,EAAE,sCAAsC;IAChD,SAAS,EAAE,oCAAoC;IAC/C,QAAQ,EAAE,kCAAkC;IAC5C,OAAO,EAAE,iCAAiC;IAC1C,MAAM,EAAE,kCAAkC;IAC1C,QAAQ,EAAE,+BAA+B;IACzC,UAAU,EAAE,iCAAiC;IAC7C,KAAK,EAAE,oCAAoC;IAC3C,QAAQ,EAAE,6CAA6C;IACvD,EAAE,EAAE,IAAI;IACR,IAAI,EAAE,iCAAiC;IACvC,KAAK,EAAE,8CAA8C;IACrD,GAAG,EAAE,kCAAkC;IACvC,KAAK,EAAE,iDAAiD;IACxD,IAAI,EAAE,uBAAuB;IAC7B,MAAM,EAAE,mCAAmC;IAC3C,KAAK,EAAE,mCAAmC;IAC1C,OAAO,EAAE,oCAAoC;IAC7C,QAAQ,EAAE,oCAAoC;IAC9C,QAAQ,EAAE,iCAAiC;IAC3C,YAAY,EAAE,6EAA6E;IAC3F,cAAc,EAAE,kCAAkC;IAClD,aAAa,EAAE,gCAAgC;IAC/C,MAAM,EAAE,gEAAgE;IACxE,SAAS,EAAE,uDAAuD;IAClE,QAAQ,EAAE,iEAAiE;IAC3E,SAAS,EAAE,0CAA0C;IACrD,cAAc,EAAE,mCAAmC;IACnD,QAAQ,EAAE,iEAAiE;IAC3E,aAAa,EAAE,iCAAiC;IAChD,MAAM,EAAE,IAAI;CACb,CAAC"}
|