@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.
Files changed (156) hide show
  1. package/package.json +1 -1
  2. package/schema/page.schema.json +946 -210
  3. package/src/index.d.mts +2 -1
  4. package/src/index.d.ts +2 -1
  5. package/src/index.js +5 -1
  6. package/src/index.js.map +1 -1
  7. package/src/index.mjs +2 -1
  8. package/src/index.mjs.map +1 -1
  9. package/src/lib/expression/parser.js +4 -4
  10. package/src/lib/expression/parser.js.map +1 -1
  11. package/src/lib/expression/parser.mjs +5 -5
  12. package/src/lib/expression/parser.mjs.map +1 -1
  13. package/src/lib/expression/tokenizer.d.mts +12 -0
  14. package/src/lib/expression/tokenizer.d.ts +12 -0
  15. package/src/lib/expression/tokenizer.js +21 -12
  16. package/src/lib/expression/tokenizer.js.map +1 -1
  17. package/src/lib/expression/tokenizer.mjs +20 -12
  18. package/src/lib/expression/tokenizer.mjs.map +1 -1
  19. package/src/lib/format/field.d.mts +16 -0
  20. package/src/lib/format/field.d.ts +16 -0
  21. package/src/lib/format/field.js +11 -1
  22. package/src/lib/format/field.js.map +1 -1
  23. package/src/lib/format/field.mjs +11 -1
  24. package/src/lib/format/field.mjs.map +1 -1
  25. package/src/lib/format/head-checks.d.mts +40 -0
  26. package/src/lib/format/head-checks.d.ts +40 -0
  27. package/src/lib/format/head-checks.js +172 -0
  28. package/src/lib/format/head-checks.js.map +1 -0
  29. package/src/lib/format/head-checks.mjs +167 -0
  30. package/src/lib/format/head-checks.mjs.map +1 -0
  31. package/src/lib/format/layout.d.mts +6485 -1447
  32. package/src/lib/format/layout.d.ts +6485 -1447
  33. package/src/lib/format/layout.js +106 -2
  34. package/src/lib/format/layout.js.map +1 -1
  35. package/src/lib/format/layout.mjs +105 -1
  36. package/src/lib/format/layout.mjs.map +1 -1
  37. package/src/lib/format/layout.types.d.mts +7 -1
  38. package/src/lib/format/layout.types.d.ts +7 -1
  39. package/src/lib/format/page.d.mts +1502 -162
  40. package/src/lib/format/page.d.ts +1502 -162
  41. package/src/lib/format/page.js +3 -0
  42. package/src/lib/format/page.js.map +1 -1
  43. package/src/lib/format/page.mjs +3 -0
  44. package/src/lib/format/page.mjs.map +1 -1
  45. package/src/lib/format/pattern.d.mts +10 -0
  46. package/src/lib/format/pattern.d.ts +10 -0
  47. package/src/lib/format/pattern.js +33 -0
  48. package/src/lib/format/pattern.js.map +1 -0
  49. package/src/lib/format/pattern.mjs +30 -0
  50. package/src/lib/format/pattern.mjs.map +1 -0
  51. package/src/lib/format/picker-options.d.mts +22 -0
  52. package/src/lib/format/picker-options.d.ts +22 -0
  53. package/src/lib/format/picker-options.js +50 -0
  54. package/src/lib/format/picker-options.js.map +1 -0
  55. package/src/lib/format/picker-options.mjs +46 -0
  56. package/src/lib/format/picker-options.mjs.map +1 -0
  57. package/src/lib/format/references.d.mts +9 -0
  58. package/src/lib/format/references.d.ts +9 -0
  59. package/src/lib/format/references.js +96 -1
  60. package/src/lib/format/references.js.map +1 -1
  61. package/src/lib/format/references.mjs +96 -1
  62. package/src/lib/format/references.mjs.map +1 -1
  63. package/src/lib/format/section-checks.d.mts +10 -0
  64. package/src/lib/format/section-checks.d.ts +10 -0
  65. package/src/lib/format/section-checks.js +35 -0
  66. package/src/lib/format/section-checks.js.map +1 -0
  67. package/src/lib/format/section-checks.mjs +31 -0
  68. package/src/lib/format/section-checks.mjs.map +1 -0
  69. package/src/lib/format/translate.js +14 -4
  70. package/src/lib/format/translate.js.map +1 -1
  71. package/src/lib/format/translate.mjs +14 -4
  72. package/src/lib/format/translate.mjs.map +1 -1
  73. package/src/lib/record/check.d.mts +13 -3
  74. package/src/lib/record/check.d.ts +13 -3
  75. package/src/lib/record/check.js +87 -17
  76. package/src/lib/record/check.js.map +1 -1
  77. package/src/lib/record/check.mjs +85 -17
  78. package/src/lib/record/check.mjs.map +1 -1
  79. package/src/lib/record/filter.js +14 -2
  80. package/src/lib/record/filter.js.map +1 -1
  81. package/src/lib/record/filter.mjs +14 -2
  82. package/src/lib/record/filter.mjs.map +1 -1
  83. package/src/lib/record/form.d.mts +56 -2
  84. package/src/lib/record/form.d.ts +56 -2
  85. package/src/lib/record/form.js +293 -26
  86. package/src/lib/record/form.js.map +1 -1
  87. package/src/lib/record/form.mjs +295 -28
  88. package/src/lib/record/form.mjs.map +1 -1
  89. package/src/lib/record/input-rules.d.mts +277 -0
  90. package/src/lib/record/input-rules.d.ts +277 -0
  91. package/src/lib/record/input-rules.js +724 -0
  92. package/src/lib/record/input-rules.js.map +1 -0
  93. package/src/lib/record/input-rules.mjs +705 -0
  94. package/src/lib/record/input-rules.mjs.map +1 -0
  95. package/src/lib/record/inputs.d.mts +25 -0
  96. package/src/lib/record/inputs.d.ts +25 -0
  97. package/src/lib/record/inputs.js +135 -9
  98. package/src/lib/record/inputs.js.map +1 -1
  99. package/src/lib/record/inputs.mjs +131 -9
  100. package/src/lib/record/inputs.mjs.map +1 -1
  101. package/src/lib/record/locales/ar.js +13 -2
  102. package/src/lib/record/locales/ar.js.map +1 -1
  103. package/src/lib/record/locales/ar.mjs +13 -2
  104. package/src/lib/record/locales/ar.mjs.map +1 -1
  105. package/src/lib/record/locales/de.js +13 -2
  106. package/src/lib/record/locales/de.js.map +1 -1
  107. package/src/lib/record/locales/de.mjs +13 -2
  108. package/src/lib/record/locales/de.mjs.map +1 -1
  109. package/src/lib/record/locales/fr.js +13 -2
  110. package/src/lib/record/locales/fr.js.map +1 -1
  111. package/src/lib/record/locales/fr.mjs +13 -2
  112. package/src/lib/record/locales/fr.mjs.map +1 -1
  113. package/src/lib/record/memory-data-source.d.mts +7 -0
  114. package/src/lib/record/memory-data-source.d.ts +7 -0
  115. package/src/lib/record/memory-data-source.js +24 -2
  116. package/src/lib/record/memory-data-source.js.map +1 -1
  117. package/src/lib/record/memory-data-source.mjs +24 -2
  118. package/src/lib/record/memory-data-source.mjs.map +1 -1
  119. package/src/lib/record/messages.d.mts +22 -0
  120. package/src/lib/record/messages.d.ts +22 -0
  121. package/src/lib/record/messages.js +13 -2
  122. package/src/lib/record/messages.js.map +1 -1
  123. package/src/lib/record/messages.mjs +13 -2
  124. package/src/lib/record/messages.mjs.map +1 -1
  125. package/src/lib/record/rules.js +3 -1
  126. package/src/lib/record/rules.js.map +1 -1
  127. package/src/lib/record/rules.mjs +3 -1
  128. package/src/lib/record/rules.mjs.map +1 -1
  129. package/src/lib/record/run.d.mts +10 -2
  130. package/src/lib/record/run.d.ts +10 -2
  131. package/src/lib/record/run.js +8 -1
  132. package/src/lib/record/run.js.map +1 -1
  133. package/src/lib/record/run.mjs +8 -1
  134. package/src/lib/record/run.mjs.map +1 -1
  135. package/src/lib/record/search.d.mts +8 -1
  136. package/src/lib/record/search.d.ts +8 -1
  137. package/src/lib/record/search.js +28 -8
  138. package/src/lib/record/search.js.map +1 -1
  139. package/src/lib/record/search.mjs +28 -8
  140. package/src/lib/record/search.mjs.map +1 -1
  141. package/src/lib/record/structures.d.mts +8 -3
  142. package/src/lib/record/structures.d.ts +8 -3
  143. package/src/lib/record/structures.js +51 -7
  144. package/src/lib/record/structures.js.map +1 -1
  145. package/src/lib/record/structures.mjs +48 -6
  146. package/src/lib/record/structures.mjs.map +1 -1
  147. package/src/lib/record/values.d.mts +4 -0
  148. package/src/lib/record/values.d.ts +4 -0
  149. package/src/lib/record/values.js.map +1 -1
  150. package/src/lib/record/values.mjs.map +1 -1
  151. package/src/runtime.d.mts +7 -3
  152. package/src/runtime.d.ts +7 -3
  153. package/src/runtime.js +31 -1
  154. package/src/runtime.js.map +1 -1
  155. package/src/runtime.mjs +5 -2
  156. 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;
@@ -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, www.example.com or https://…),
9
- * a phone number (a plus, digits, spaces, dots, dashes and brackets, 7 to 15
10
- * digits), a time of day (HH:MM, between the node's `min` and `max`), and no
11
- * more keywords than the node's `max` — and the structures' own, from
12
- * `structures`. Undefined when it keeps them, or when there is nothing to
13
- * check: an empty answer is `required`'s to judge.
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
- email: /^[^@\s]+@[^@\s]+\.[^@\s]+$/,
17
- url: /^(https?:\/\/)?([\p{L}\p{N}-]+\.)+\p{L}{2,}(:\d+)?([/?#]\S*)?$/iu,
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
- const text = value.trim();
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":";;AAsBA,gCAmBC;AAvCD,yCAAiD;AACjD,6CAA8C;AAG9C;;;;;;;;GAQG;AACH,MAAM,OAAO,GAA2B;IACtC,KAAK,EAAE,4BAA4B;IACnC,GAAG,EAAE,kEAAkE;IACvE,KAAK,EAAE,uBAAuB;IAC9B,IAAI,EAAE,2BAA2B;CAClC,CAAC;AAEF,SAAgB,UAAU,CAAC,KAAY,EAAE,IAAe,EAAE,KAAwB,EAAE,QAAkB;IACpG,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;IACjC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,IAAA,2BAAc,EAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC/E,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;QAAE,OAAO,SAAS,CAAC;IACjE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC;IACxC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;IACnD,IAAI,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;QAAE,OAAO,QAAQ,CAAC,MAAiB,CAAC,CAAC;IAC9H,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,QAAQ,IAAI,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,IAAA,eAAI,EAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC9H,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,QAAQ,IAAI,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,IAAA,eAAI,EAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC/H,CAAC;IACD,IAAI,MAAM,KAAK,MAAM,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,WAAW,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACvJ,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,IAAA,eAAI,EAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
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, www.example.com or https://…),
6
- * a phone number (a plus, digits, spaces, dots, dashes and brackets, 7 to 15
7
- * digits), a time of day (HH:MM, between the node's `min` and `max`), and no
8
- * more keywords than the node's `max` — and the structures' own, from
9
- * `structures`. Undefined when it keeps them, or when there is nothing to
10
- * check: an empty answer is `required`'s to judge.
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
- email: /^[^@\s]+@[^@\s]+\.[^@\s]+$/,
14
- url: /^(https?:\/\/)?([\p{L}\p{N}-]+\.)+\p{L}{2,}(:\d+)?([/?#]\S*)?$/iu,
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
- const text = value.trim();
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;;;;;;;;GAQG;AACH,MAAM,OAAO,GAA2B;IACtC,KAAK,EAAE,4BAA4B;IACnC,GAAG,EAAE,kEAAkE;IACvE,KAAK,EAAE,uBAAuB;IAC9B,IAAI,EAAE,2BAA2B;CAClC,CAAC;AAEF,MAAM,UAAU,UAAU,CAAC,KAAY,EAAE,IAAe,EAAE,KAAwB,EAAE,QAAkB;IACpG,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;IACjC,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC/E,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;QAAE,OAAO,SAAS,CAAC;IACjE,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAC1B,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC;IACxC,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;IACnD,IAAI,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;QAAE,OAAO,QAAQ,CAAC,MAAiB,CAAC,CAAC;IAC9H,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,QAAQ,IAAI,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC9H,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,QAAQ,IAAI,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC/H,CAAC;IACD,IAAI,MAAM,KAAK,MAAM,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,WAAW,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACvJ,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC"}
1
+ {"version":3,"file":"inputs.mjs","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/record/inputs.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AACvD,OAAO,EAAE,IAAI,EAAiB,MAAM,YAAY,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C;;;;;;;;;;GAUG;AACH,MAAM,OAAO,GAA2B;IACtC,gHAAgH;IAChH,KAAK,EAAE,0CAA0C;IACjD,KAAK,EAAE,uBAAuB;IAC9B,IAAI,EAAE,2BAA2B;CAClC,CAAC;AAEF,iHAAiH;AACjH,MAAM,GAAG,GAAG,6FAA6F,CAAC;AAC1G,mFAAmF;AACnF,MAAM,KAAK,GAAG,sCAAsC,CAAC;AACrD,+EAA+E;AAC/E,MAAM,KAAK,GAAG,+DAA+D,CAAC;AAE9E;;;;;;;GAOG;AACH,MAAM,UAAU,UAAU,CAAC,IAAY;IACrC,MAAM,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IAClC,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QAAE,OAAO,QAAQ,CAAC;IACnC,oFAAoF;IACpF,MAAM,MAAM,GAAG,8BAA8B,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IACtD,IAAI,MAAM,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC5D,MAAM,KAAK,GAAG,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC1B,IAAI,CAAC,KAAK;QAAE,OAAO,KAAK,CAAC;IACzB,MAAM,CAAC,EAAE,AAAD,EAAG,IAAI,EAAE,IAAI,CAAC,GAAG,KAAK,CAAC;IAC/B,IAAI,IAAI,KAAK,SAAS,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,KAAK;QAAE,OAAO,KAAK,CAAC;IAC7D,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IAC5E,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;IAC/B,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAAE,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;IACrI,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAAE,OAAO,KAAK,CAAC;IAC9D,MAAM,GAAG,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;IACtC,OAAO,MAAM,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC;AAC5F,CAAC;AAED,6KAA6K;AAC7K,MAAM,UAAU,GAAG,8BAA8B,CAAC;AAClD,uGAAuG;AACvG,MAAM,CAAC,MAAM,kBAAkB,GAAG,kBAAkB,CAAC;AAErD;;;;;;;GAOG;AACH,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,IAA4C;IACpF,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC;IACjC,IAAI,MAAM,KAAK,UAAU;QAAE,OAAO,IAAI,CAAC;IACvC,IAAI,MAAM,KAAK,OAAO,IAAI,OAAO;QAAE,OAAO,UAAU,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;IAC9E,IAAI,MAAM,KAAK,OAAO;QAAE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,UAAU,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/E,IAAI,MAAM,KAAK,KAAK;QAAE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,CAAC;IACrD,OAAO,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,IAAI,EAAE,CAAC;AACzC,CAAC;AAED,+GAA+G;AAC/G,MAAM,UAAU,UAAU,CAAC,KAAY,EAAE,IAAe;IACtD,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,MAAM,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,OAAO,KAAK,SAAS,CAAC,CAAC;AAC/H,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAY,EAAE,IAAe,EAAE,KAAwB,EAAE,QAAkB;IACpG,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM,IAAI,EAAE,CAAC;IACjC,iHAAiH;IACjH,0GAA0G;IAC1G,IAAI,MAAM,KAAK,aAAa,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC,UAAU,CAAC,KAAK,IAAI,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,IAAI,KAAK,UAAU,CAAC,EAAE,CAAC;QACtL,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC;QACxC,MAAM,GAAG,GAAG,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;QACnF,MAAM,GAAG,GAAG,OAAO,OAAO,CAAC,UAAU,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,IAAI,GAAG,CAAC,CAAC;QAC3I,IAAI,KAAK,GAAG,GAAG;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAC3D,IAAI,GAAG,KAAK,SAAS,IAAI,KAAK,GAAG,GAAG;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IAClF,CAAC;IACD,wHAAwH;IACxH,IAAI,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,OAAO,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;QACzG,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC;QACxC,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;QACvD,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,IAAI,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;QACxD,IAAI,KAAK,GAAG,GAAG;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;QAC3D,IAAI,KAAK,GAAG,GAAG;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAC;IAC7D,CAAC;IACD,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM;QAAE,OAAO,cAAc,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;IAC/E,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE;QAAE,OAAO,SAAS,CAAC;IACjE,2HAA2H;IAC3H,MAAM,IAAI,GAAG,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,KAAK,OAAO,IAAI,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC;IAC1J,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;IACnC,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,KAAK,CAAC,KAAK,CAAC;IACxC,IAAI,MAAM,KAAK,KAAK,EAAE,CAAC;QACrB,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;QACjC,IAAI,OAAO,KAAK,IAAI;YAAE,OAAO,OAAO,KAAK,QAAQ,CAAC,CAAC,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC;IACxF,CAAC;IACD,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC;IAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC,CAAC;IACnD,kHAAkH;IAClH,IAAI,MAAM,KAAK,OAAO,IAAI,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,QAAQ,CAAC,KAAK,CAAC;IACtE,IAAI,MAAM,IAAI,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,KAAK,OAAO,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC;QAAE,OAAO,QAAQ,CAAC,MAAiB,CAAC,CAAC;IAC9H,IAAI,MAAM,KAAK,MAAM,EAAE,CAAC;QACtB,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,QAAQ,IAAI,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC9H,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,QAAQ,IAAI,IAAI,GAAG,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QAC7H,MAAM,GAAG,GAAG,OAAO,CAAC,IAAI,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;QAC3D,IAAI,GAAG;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,GAAG,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,GAAG,CAAC,KAAK,EAAE,CAAC,CAAC;IAC3G,CAAC;IACD,IAAI,MAAM,KAAK,MAAM,IAAI,OAAO,OAAO,CAAC,KAAK,CAAC,KAAK,QAAQ,EAAE,CAAC;QAC5D,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,OAAO,CAAC,WAAW,CAAC,KAAK,QAAQ,IAAI,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC;QACvJ,IAAI,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;YAAE,OAAO,IAAI,CAAC,QAAQ,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,SAAS,CAAC;AACnB,CAAC;AAED,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,GAAG,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;AAC7F,MAAM,KAAK,GAAG,CAAC,OAAe,EAAE,EAAE,CAAC,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAI,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC;AAEnI;;;GAGG;AACH,SAAS,OAAO,CAAC,IAAY,EAAE,IAAa,EAAE,GAAY;IACxD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;QAAE,OAAO,SAAS,CAAC;IACtH,MAAM,IAAI,GAAG,OAAO,GAAG,KAAK,QAAQ,IAAI,eAAe,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;IACvF,MAAM,EAAE,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;IAClD,IAAI,CAAC,IAAI;QAAE,OAAO,SAAS,CAAC;IAC5B,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC;IACzB,oEAAoE;IACpE,MAAM,KAAK,GAAG,MAAM,GAAG,IAAI,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC,CAAC,CAAC,MAAM,GAAG,IAAI,CAAC;IACtE,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC,EAAE,CAAC;AAC3E,CAAC"}
@@ -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: 'الحد الأقصى {max} حرفًا',
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: 'الحد الأقصى {digits} منازل عشرية',
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,yBAAyB;IACpC,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,kCAAkC;IAC5C,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,IAAI;CACb,CAAC"}
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"}