@fieldia/core 0.22.0 → 0.24.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 (177) hide show
  1. package/README.md +135 -3
  2. package/package.json +1 -1
  3. package/schema/page.schema.json +159 -4
  4. package/src/index.d.mts +6 -2
  5. package/src/index.d.ts +6 -2
  6. package/src/index.js +18 -1
  7. package/src/index.js.map +1 -1
  8. package/src/index.mjs +8 -2
  9. package/src/index.mjs.map +1 -1
  10. package/src/lib/format/autofill-group.d.mts +12 -0
  11. package/src/lib/format/autofill-group.d.ts +12 -0
  12. package/src/lib/format/autofill-group.js +23 -0
  13. package/src/lib/format/autofill-group.js.map +1 -0
  14. package/src/lib/format/autofill-group.mjs +19 -0
  15. package/src/lib/format/autofill-group.mjs.map +1 -0
  16. package/src/lib/format/autofill.d.mts +14 -0
  17. package/src/lib/format/autofill.d.ts +14 -0
  18. package/src/lib/format/autofill.js +54 -0
  19. package/src/lib/format/autofill.js.map +1 -0
  20. package/src/lib/format/autofill.mjs +48 -0
  21. package/src/lib/format/autofill.mjs.map +1 -0
  22. package/src/lib/format/bulk-edit.d.mts +18 -0
  23. package/src/lib/format/bulk-edit.d.ts +18 -0
  24. package/src/lib/format/bulk-edit.js +26 -0
  25. package/src/lib/format/bulk-edit.js.map +1 -0
  26. package/src/lib/format/bulk-edit.mjs +21 -0
  27. package/src/lib/format/bulk-edit.mjs.map +1 -0
  28. package/src/lib/format/field.d.mts +55 -34
  29. package/src/lib/format/field.d.ts +55 -34
  30. package/src/lib/format/field.js +16 -2
  31. package/src/lib/format/field.js.map +1 -1
  32. package/src/lib/format/field.mjs +15 -1
  33. package/src/lib/format/field.mjs.map +1 -1
  34. package/src/lib/format/layout.d.mts +365 -66
  35. package/src/lib/format/layout.d.ts +365 -66
  36. package/src/lib/format/layout.js +22 -4
  37. package/src/lib/format/layout.js.map +1 -1
  38. package/src/lib/format/layout.mjs +20 -3
  39. package/src/lib/format/layout.mjs.map +1 -1
  40. package/src/lib/format/page.d.mts +169 -29
  41. package/src/lib/format/page.d.ts +169 -29
  42. package/src/lib/format/page.js +11 -0
  43. package/src/lib/format/page.js.map +1 -1
  44. package/src/lib/format/page.mjs +12 -1
  45. package/src/lib/format/page.mjs.map +1 -1
  46. package/src/lib/format/phone.d.mts +27 -0
  47. package/src/lib/format/phone.d.ts +27 -0
  48. package/src/lib/format/phone.js +43 -0
  49. package/src/lib/format/phone.js.map +1 -0
  50. package/src/lib/format/phone.mjs +39 -0
  51. package/src/lib/format/phone.mjs.map +1 -0
  52. package/src/lib/format/references.d.mts +10 -0
  53. package/src/lib/format/references.d.ts +10 -0
  54. package/src/lib/format/references.js +96 -1
  55. package/src/lib/format/references.js.map +1 -1
  56. package/src/lib/format/references.mjs +96 -1
  57. package/src/lib/format/references.mjs.map +1 -1
  58. package/src/lib/format/slots-options.d.mts +26 -0
  59. package/src/lib/format/slots-options.d.ts +26 -0
  60. package/src/lib/format/slots-options.js +35 -0
  61. package/src/lib/format/slots-options.js.map +1 -0
  62. package/src/lib/format/slots-options.mjs +31 -0
  63. package/src/lib/format/slots-options.mjs.map +1 -0
  64. package/src/lib/format/upgrade.d.mts +4 -1
  65. package/src/lib/format/upgrade.d.ts +4 -1
  66. package/src/lib/format/upgrade.js +4 -1
  67. package/src/lib/format/upgrade.js.map +1 -1
  68. package/src/lib/format/upgrade.mjs +4 -1
  69. package/src/lib/format/upgrade.mjs.map +1 -1
  70. package/src/lib/format/version.d.mts +2 -2
  71. package/src/lib/format/version.d.ts +2 -2
  72. package/src/lib/format/version.js +2 -2
  73. package/src/lib/format/version.js.map +1 -1
  74. package/src/lib/format/version.mjs +2 -2
  75. package/src/lib/format/version.mjs.map +1 -1
  76. package/src/lib/format/zoned.d.mts +8 -0
  77. package/src/lib/format/zoned.d.ts +8 -0
  78. package/src/lib/format/zoned.js +36 -0
  79. package/src/lib/format/zoned.js.map +1 -0
  80. package/src/lib/format/zoned.mjs +33 -0
  81. package/src/lib/format/zoned.mjs.map +1 -0
  82. package/src/lib/record/check.d.mts +6 -1
  83. package/src/lib/record/check.d.ts +6 -1
  84. package/src/lib/record/check.js +12 -4
  85. package/src/lib/record/check.js.map +1 -1
  86. package/src/lib/record/check.mjs +12 -4
  87. package/src/lib/record/check.mjs.map +1 -1
  88. package/src/lib/record/data-source.d.mts +188 -3
  89. package/src/lib/record/data-source.d.ts +188 -3
  90. package/src/lib/record/data-source.js.map +1 -1
  91. package/src/lib/record/data-source.mjs.map +1 -1
  92. package/src/lib/record/form.d.mts +72 -25
  93. package/src/lib/record/form.d.ts +72 -25
  94. package/src/lib/record/form.js +404 -78
  95. package/src/lib/record/form.js.map +1 -1
  96. package/src/lib/record/form.mjs +404 -78
  97. package/src/lib/record/form.mjs.map +1 -1
  98. package/src/lib/record/input-rules.d.mts +51 -9
  99. package/src/lib/record/input-rules.d.ts +51 -9
  100. package/src/lib/record/input-rules.js +119 -20
  101. package/src/lib/record/input-rules.js.map +1 -1
  102. package/src/lib/record/input-rules.mjs +118 -19
  103. package/src/lib/record/input-rules.mjs.map +1 -1
  104. package/src/lib/record/inputs.js +4 -2
  105. package/src/lib/record/inputs.js.map +1 -1
  106. package/src/lib/record/inputs.mjs +4 -2
  107. package/src/lib/record/inputs.mjs.map +1 -1
  108. package/src/lib/record/limits.d.mts +1 -1
  109. package/src/lib/record/limits.d.ts +1 -1
  110. package/src/lib/record/limits.js +4 -2
  111. package/src/lib/record/limits.js.map +1 -1
  112. package/src/lib/record/limits.mjs +4 -2
  113. package/src/lib/record/limits.mjs.map +1 -1
  114. package/src/lib/record/locales/ar.js +3 -2
  115. package/src/lib/record/locales/ar.js.map +1 -1
  116. package/src/lib/record/locales/ar.mjs +3 -2
  117. package/src/lib/record/locales/ar.mjs.map +1 -1
  118. package/src/lib/record/locales/de.js +3 -2
  119. package/src/lib/record/locales/de.js.map +1 -1
  120. package/src/lib/record/locales/de.mjs +3 -2
  121. package/src/lib/record/locales/de.mjs.map +1 -1
  122. package/src/lib/record/locales/fr.js +3 -2
  123. package/src/lib/record/locales/fr.js.map +1 -1
  124. package/src/lib/record/locales/fr.mjs +3 -2
  125. package/src/lib/record/locales/fr.mjs.map +1 -1
  126. package/src/lib/record/memory-data-source.d.mts +13 -2
  127. package/src/lib/record/memory-data-source.d.ts +13 -2
  128. package/src/lib/record/memory-data-source.js +92 -35
  129. package/src/lib/record/memory-data-source.js.map +1 -1
  130. package/src/lib/record/memory-data-source.mjs +93 -36
  131. package/src/lib/record/memory-data-source.mjs.map +1 -1
  132. package/src/lib/record/memory-schedules.d.mts +45 -0
  133. package/src/lib/record/memory-schedules.d.ts +45 -0
  134. package/src/lib/record/memory-schedules.js +81 -0
  135. package/src/lib/record/memory-schedules.js.map +1 -0
  136. package/src/lib/record/memory-schedules.mjs +78 -0
  137. package/src/lib/record/memory-schedules.mjs.map +1 -0
  138. package/src/lib/record/messages.d.mts +3 -1
  139. package/src/lib/record/messages.d.ts +3 -1
  140. package/src/lib/record/messages.js +3 -2
  141. package/src/lib/record/messages.js.map +1 -1
  142. package/src/lib/record/messages.mjs +3 -2
  143. package/src/lib/record/messages.mjs.map +1 -1
  144. package/src/lib/record/periods.d.mts +47 -0
  145. package/src/lib/record/periods.d.ts +47 -0
  146. package/src/lib/record/periods.js +86 -0
  147. package/src/lib/record/periods.js.map +1 -0
  148. package/src/lib/record/periods.mjs +79 -0
  149. package/src/lib/record/periods.mjs.map +1 -0
  150. package/src/lib/record/rules.js +5 -6
  151. package/src/lib/record/rules.js.map +1 -1
  152. package/src/lib/record/rules.mjs +5 -6
  153. package/src/lib/record/rules.mjs.map +1 -1
  154. package/src/lib/record/run.d.mts +44 -8
  155. package/src/lib/record/run.d.ts +44 -8
  156. package/src/lib/record/run.js +155 -26
  157. package/src/lib/record/run.js.map +1 -1
  158. package/src/lib/record/run.mjs +156 -27
  159. package/src/lib/record/run.mjs.map +1 -1
  160. package/src/lib/record/search.d.mts +13 -3
  161. package/src/lib/record/search.d.ts +13 -3
  162. package/src/lib/record/search.js +11 -4
  163. package/src/lib/record/search.js.map +1 -1
  164. package/src/lib/record/search.mjs +11 -4
  165. package/src/lib/record/search.mjs.map +1 -1
  166. package/src/lib/record/zones.d.mts +57 -0
  167. package/src/lib/record/zones.d.ts +57 -0
  168. package/src/lib/record/zones.js +147 -0
  169. package/src/lib/record/zones.js.map +1 -0
  170. package/src/lib/record/zones.mjs +132 -0
  171. package/src/lib/record/zones.mjs.map +1 -0
  172. package/src/runtime.d.mts +12 -5
  173. package/src/runtime.d.ts +12 -5
  174. package/src/runtime.js +32 -2
  175. package/src/runtime.js.map +1 -1
  176. package/src/runtime.mjs +7 -1
  177. package/src/runtime.mjs.map +1 -1
@@ -0,0 +1,14 @@
1
+ export { INPUT_MODES, type InputMode } from './autofill-group.mjs';
2
+ /** The purposes a box may name, but a phone's, an email's and an instant messenger's (`AUTOFILL_CONTACT`). */
3
+ export declare const AUTOFILL_NAMES: readonly ["name", "honorific-prefix", "given-name", "additional-name", "family-name", "honorific-suffix", "nickname", "username", "new-password", "current-password", "one-time-code", "organization-title", "organization", "street-address", "address-line1", "address-line2", "address-line3", "address-level4", "address-level3", "address-level2", "address-level1", "country", "country-name", "postal-code", "cc-name", "cc-given-name", "cc-additional-name", "cc-family-name", "cc-number", "cc-exp", "cc-exp-month", "cc-exp-year", "cc-csc", "cc-type", "transaction-currency", "transaction-amount", "language", "bday", "bday-day", "bday-month", "bday-year", "sex", "url", "photo"];
4
+ /** The purposes that may say whose they are (`home`, `work`, `mobile`, `fax`, `pager` before them). */
5
+ export declare const AUTOFILL_CONTACT: readonly ["tel", "tel-country-code", "tel-national", "tel-area-code", "tel-local", "tel-local-prefix", "tel-local-suffix", "tel-extension", "email", "impp"];
6
+ /** A purpose as a page may write it: `on`, `off`, a group alone (an address's), or a purpose with its group first and `webauthn` last. */
7
+ export declare const AUTOFILL: RegExp;
8
+ /**
9
+ * Why a field placed on a page cannot name this purpose, or null when it can: one the standard does not list, a group
10
+ * with no purpose on a box, a purpose on an address in parts (`parts`), which names each part's own.
11
+ */
12
+ export declare function autofillProblem(value: string, parts?: boolean): string | null;
13
+ /** The purpose itself, its group and whose it is left out: "shipping work tel" is "tel"; empty for `on`, `off` and a group alone. */
14
+ export declare function autofillPurpose(value: string): string;
@@ -0,0 +1,14 @@
1
+ export { INPUT_MODES, type InputMode } from './autofill-group';
2
+ /** The purposes a box may name, but a phone's, an email's and an instant messenger's (`AUTOFILL_CONTACT`). */
3
+ export declare const AUTOFILL_NAMES: readonly ["name", "honorific-prefix", "given-name", "additional-name", "family-name", "honorific-suffix", "nickname", "username", "new-password", "current-password", "one-time-code", "organization-title", "organization", "street-address", "address-line1", "address-line2", "address-line3", "address-level4", "address-level3", "address-level2", "address-level1", "country", "country-name", "postal-code", "cc-name", "cc-given-name", "cc-additional-name", "cc-family-name", "cc-number", "cc-exp", "cc-exp-month", "cc-exp-year", "cc-csc", "cc-type", "transaction-currency", "transaction-amount", "language", "bday", "bday-day", "bday-month", "bday-year", "sex", "url", "photo"];
4
+ /** The purposes that may say whose they are (`home`, `work`, `mobile`, `fax`, `pager` before them). */
5
+ export declare const AUTOFILL_CONTACT: readonly ["tel", "tel-country-code", "tel-national", "tel-area-code", "tel-local", "tel-local-prefix", "tel-local-suffix", "tel-extension", "email", "impp"];
6
+ /** A purpose as a page may write it: `on`, `off`, a group alone (an address's), or a purpose with its group first and `webauthn` last. */
7
+ export declare const AUTOFILL: RegExp;
8
+ /**
9
+ * Why a field placed on a page cannot name this purpose, or null when it can: one the standard does not list, a group
10
+ * with no purpose on a box, a purpose on an address in parts (`parts`), which names each part's own.
11
+ */
12
+ export declare function autofillProblem(value: string, parts?: boolean): string | null;
13
+ /** The purpose itself, its group and whose it is left out: "shipping work tel" is "tel"; empty for `on`, `off` and a group alone. */
14
+ export declare function autofillPurpose(value: string): string;
@@ -0,0 +1,54 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AUTOFILL = exports.AUTOFILL_CONTACT = exports.AUTOFILL_NAMES = exports.INPUT_MODES = void 0;
4
+ exports.autofillProblem = autofillProblem;
5
+ exports.autofillPurpose = autofillPurpose;
6
+ /**
7
+ * What a box is filled in with by the browser — its autocomplete purpose,
8
+ * from the WHATWG HTML standard's list ("Autofilling form controls: the
9
+ * autocomplete attribute") — and the keyboard a phone shows for it.
10
+ *
11
+ * A field placed on a page may name its purpose (`autocomplete`): one of the
12
+ * names below, after which `section-…` and `shipping` or `billing` may come
13
+ * first, `home`, `work`, `mobile`, `fax` or `pager` before a phone, an email
14
+ * or an `impp`, and `webauthn` last — "shipping postal-code", "work email" —
15
+ * or `off`, so the browser offers nothing. An address in parts names each
16
+ * part's own purpose, so its field gives only the group: "shipping",
17
+ * "section-home billing", or `off`. Written in small letters.
18
+ */
19
+ const autofill_group_1 = require("./autofill-group");
20
+ var autofill_group_2 = require("./autofill-group");
21
+ Object.defineProperty(exports, "INPUT_MODES", { enumerable: true, get: function () { return autofill_group_2.INPUT_MODES; } });
22
+ /** The purposes a box may name, but a phone's, an email's and an instant messenger's (`AUTOFILL_CONTACT`). */
23
+ exports.AUTOFILL_NAMES = [
24
+ 'name', 'honorific-prefix', 'given-name', 'additional-name', 'family-name', 'honorific-suffix', 'nickname',
25
+ 'username', 'new-password', 'current-password', 'one-time-code', 'organization-title', 'organization',
26
+ 'street-address', 'address-line1', 'address-line2', 'address-line3', 'address-level4', 'address-level3',
27
+ 'address-level2', 'address-level1', 'country', 'country-name', 'postal-code',
28
+ 'cc-name', 'cc-given-name', 'cc-additional-name', 'cc-family-name', 'cc-number', 'cc-exp', 'cc-exp-month',
29
+ 'cc-exp-year', 'cc-csc', 'cc-type', 'transaction-currency', 'transaction-amount',
30
+ 'language', 'bday', 'bday-day', 'bday-month', 'bday-year', 'sex', 'url', 'photo',
31
+ ];
32
+ /** The purposes that may say whose they are (`home`, `work`, `mobile`, `fax`, `pager` before them). */
33
+ exports.AUTOFILL_CONTACT = ['tel', 'tel-country-code', 'tel-national', 'tel-area-code', 'tel-local', 'tel-local-prefix', 'tel-local-suffix', 'tel-extension', 'email', 'impp'];
34
+ const GROUP = '(?:section-\\S*(?: +(?:shipping|billing))?|shipping|billing)';
35
+ const PURPOSE = `(?:${exports.AUTOFILL_NAMES.join('|')}|(?:(?:home|work|mobile|fax|pager) +)?(?:${exports.AUTOFILL_CONTACT.join('|')}))`;
36
+ /** A purpose as a page may write it: `on`, `off`, a group alone (an address's), or a purpose with its group first and `webauthn` last. */
37
+ exports.AUTOFILL = new RegExp(`^(?:on|off|${GROUP}|(?:${GROUP} +)?${PURPOSE}(?: +webauthn)?)$`);
38
+ /**
39
+ * Why a field placed on a page cannot name this purpose, or null when it can: one the standard does not list, a group
40
+ * with no purpose on a box, a purpose on an address in parts (`parts`), which names each part's own.
41
+ */
42
+ function autofillProblem(value, parts = false) {
43
+ if (!exports.AUTOFILL.test(value)) {
44
+ return `"${value}" is no purpose a browser fills in: use one of the HTML standard's, in small letters, such as "email", "given-name", "shipping postal-code" or "off"`;
45
+ }
46
+ return (0, autofill_group_1.autofillGroupProblem)(value, parts);
47
+ }
48
+ /** The purpose itself, its group and whose it is left out: "shipping work tel" is "tel"; empty for `on`, `off` and a group alone. */
49
+ function autofillPurpose(value) {
50
+ const words = value.split(/ +/).filter((word) => word !== 'webauthn');
51
+ const last = words[words.length - 1] ?? '';
52
+ return exports.AUTOFILL_NAMES.includes(last) || exports.AUTOFILL_CONTACT.includes(last) ? last : '';
53
+ }
54
+ //# sourceMappingURL=autofill.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autofill.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/autofill.ts"],"names":[],"mappings":";;;AAwCA,0CAKC;AAGD,0CAIC;AApDD;;;;;;;;;;;;GAYG;AACH,qDAAwD;AACxD,mDAA+D;AAAtD,6GAAA,WAAW,OAAA;AAEpB,8GAA8G;AACjG,QAAA,cAAc,GAAG;IAC5B,MAAM,EAAE,kBAAkB,EAAE,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,kBAAkB,EAAE,UAAU;IAC1G,UAAU,EAAE,cAAc,EAAE,kBAAkB,EAAE,eAAe,EAAE,oBAAoB,EAAE,cAAc;IACrG,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB;IACvG,gBAAgB,EAAE,gBAAgB,EAAE,SAAS,EAAE,cAAc,EAAE,aAAa;IAC5E,SAAS,EAAE,eAAe,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc;IACzG,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,sBAAsB,EAAE,oBAAoB;IAChF,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO;CACxE,CAAC;AAEX,uGAAuG;AAC1F,QAAA,gBAAgB,GAAG,CAAC,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,CAAU,CAAC;AAE7L,MAAM,KAAK,GAAG,8DAA8D,CAAC;AAC7E,MAAM,OAAO,GAAG,MAAM,sBAAc,CAAC,IAAI,CAAC,GAAG,CAAC,4CAA4C,wBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AAEzH,0IAA0I;AAC7H,QAAA,QAAQ,GAAG,IAAI,MAAM,CAAC,cAAc,KAAK,OAAO,KAAK,OAAO,OAAO,mBAAmB,CAAC,CAAC;AAErG;;;GAGG;AACH,SAAgB,eAAe,CAAC,KAAa,EAAE,KAAK,GAAG,KAAK;IAC1D,IAAI,CAAC,gBAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,KAAK,sJAAsJ,CAAC;IACzK,CAAC;IACD,OAAO,IAAA,qCAAoB,EAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC5C,CAAC;AAED,qIAAqI;AACrI,SAAgB,eAAe,CAAC,KAAa;IAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IACtE,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3C,OAAQ,sBAAoC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAK,wBAAsC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AACpI,CAAC"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * What a box is filled in with by the browser — its autocomplete purpose,
3
+ * from the WHATWG HTML standard's list ("Autofilling form controls: the
4
+ * autocomplete attribute") — and the keyboard a phone shows for it.
5
+ *
6
+ * A field placed on a page may name its purpose (`autocomplete`): one of the
7
+ * names below, after which `section-…` and `shipping` or `billing` may come
8
+ * first, `home`, `work`, `mobile`, `fax` or `pager` before a phone, an email
9
+ * or an `impp`, and `webauthn` last — "shipping postal-code", "work email" —
10
+ * or `off`, so the browser offers nothing. An address in parts names each
11
+ * part's own purpose, so its field gives only the group: "shipping",
12
+ * "section-home billing", or `off`. Written in small letters.
13
+ */
14
+ import { autofillGroupProblem } from './autofill-group.mjs';
15
+ export { INPUT_MODES } from './autofill-group.mjs';
16
+ /** The purposes a box may name, but a phone's, an email's and an instant messenger's (`AUTOFILL_CONTACT`). */
17
+ export const AUTOFILL_NAMES = [
18
+ 'name', 'honorific-prefix', 'given-name', 'additional-name', 'family-name', 'honorific-suffix', 'nickname',
19
+ 'username', 'new-password', 'current-password', 'one-time-code', 'organization-title', 'organization',
20
+ 'street-address', 'address-line1', 'address-line2', 'address-line3', 'address-level4', 'address-level3',
21
+ 'address-level2', 'address-level1', 'country', 'country-name', 'postal-code',
22
+ 'cc-name', 'cc-given-name', 'cc-additional-name', 'cc-family-name', 'cc-number', 'cc-exp', 'cc-exp-month',
23
+ 'cc-exp-year', 'cc-csc', 'cc-type', 'transaction-currency', 'transaction-amount',
24
+ 'language', 'bday', 'bday-day', 'bday-month', 'bday-year', 'sex', 'url', 'photo',
25
+ ];
26
+ /** The purposes that may say whose they are (`home`, `work`, `mobile`, `fax`, `pager` before them). */
27
+ export const AUTOFILL_CONTACT = ['tel', 'tel-country-code', 'tel-national', 'tel-area-code', 'tel-local', 'tel-local-prefix', 'tel-local-suffix', 'tel-extension', 'email', 'impp'];
28
+ const GROUP = '(?:section-\\S*(?: +(?:shipping|billing))?|shipping|billing)';
29
+ const PURPOSE = `(?:${AUTOFILL_NAMES.join('|')}|(?:(?:home|work|mobile|fax|pager) +)?(?:${AUTOFILL_CONTACT.join('|')}))`;
30
+ /** A purpose as a page may write it: `on`, `off`, a group alone (an address's), or a purpose with its group first and `webauthn` last. */
31
+ export const AUTOFILL = new RegExp(`^(?:on|off|${GROUP}|(?:${GROUP} +)?${PURPOSE}(?: +webauthn)?)$`);
32
+ /**
33
+ * Why a field placed on a page cannot name this purpose, or null when it can: one the standard does not list, a group
34
+ * with no purpose on a box, a purpose on an address in parts (`parts`), which names each part's own.
35
+ */
36
+ export function autofillProblem(value, parts = false) {
37
+ if (!AUTOFILL.test(value)) {
38
+ return `"${value}" is no purpose a browser fills in: use one of the HTML standard's, in small letters, such as "email", "given-name", "shipping postal-code" or "off"`;
39
+ }
40
+ return autofillGroupProblem(value, parts);
41
+ }
42
+ /** The purpose itself, its group and whose it is left out: "shipping work tel" is "tel"; empty for `on`, `off` and a group alone. */
43
+ export function autofillPurpose(value) {
44
+ const words = value.split(/ +/).filter((word) => word !== 'webauthn');
45
+ const last = words[words.length - 1] ?? '';
46
+ return AUTOFILL_NAMES.includes(last) || AUTOFILL_CONTACT.includes(last) ? last : '';
47
+ }
48
+ //# sourceMappingURL=autofill.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"autofill.mjs","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/autofill.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AACH,OAAO,EAAE,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,EAAE,WAAW,EAAkB,MAAM,kBAAkB,CAAC;AAE/D,8GAA8G;AAC9G,MAAM,CAAC,MAAM,cAAc,GAAG;IAC5B,MAAM,EAAE,kBAAkB,EAAE,YAAY,EAAE,iBAAiB,EAAE,aAAa,EAAE,kBAAkB,EAAE,UAAU;IAC1G,UAAU,EAAE,cAAc,EAAE,kBAAkB,EAAE,eAAe,EAAE,oBAAoB,EAAE,cAAc;IACrG,gBAAgB,EAAE,eAAe,EAAE,eAAe,EAAE,eAAe,EAAE,gBAAgB,EAAE,gBAAgB;IACvG,gBAAgB,EAAE,gBAAgB,EAAE,SAAS,EAAE,cAAc,EAAE,aAAa;IAC5E,SAAS,EAAE,eAAe,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,WAAW,EAAE,QAAQ,EAAE,cAAc;IACzG,aAAa,EAAE,QAAQ,EAAE,SAAS,EAAE,sBAAsB,EAAE,oBAAoB;IAChF,UAAU,EAAE,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,KAAK,EAAE,OAAO;CACxE,CAAC;AAEX,uGAAuG;AACvG,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,KAAK,EAAE,kBAAkB,EAAE,cAAc,EAAE,eAAe,EAAE,WAAW,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,CAAU,CAAC;AAE7L,MAAM,KAAK,GAAG,8DAA8D,CAAC;AAC7E,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,4CAA4C,gBAAgB,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC;AAEzH,0IAA0I;AAC1I,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,MAAM,CAAC,cAAc,KAAK,OAAO,KAAK,OAAO,OAAO,mBAAmB,CAAC,CAAC;AAErG;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa,EAAE,KAAK,GAAG,KAAK;IAC1D,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;QAC1B,OAAO,IAAI,KAAK,sJAAsJ,CAAC;IACzK,CAAC;IACD,OAAO,oBAAoB,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC;AAC5C,CAAC;AAED,qIAAqI;AACrI,MAAM,UAAU,eAAe,CAAC,KAAa;IAC3C,MAAM,KAAK,GAAG,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,KAAK,UAAU,CAAC,CAAC;IACtE,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC;IAC3C,OAAQ,cAAoC,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAK,gBAAsC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC;AACpI,CAAC"}
@@ -0,0 +1,18 @@
1
+ import type { Field } from './field.mjs';
2
+ import type { ListNode } from './layout.mjs';
3
+ import type { Page } from './page.mjs';
4
+ /**
5
+ * The kinds of field one value can set in many records at once (a list's
6
+ * `bulkEdit`): words, numbers, money, yes or no, a day, a choice and a link.
7
+ * Never a table of lines, links, files, formatted text, JSON or properties,
8
+ * which one value would wipe or cannot say.
9
+ */
10
+ export declare const BULK_KINDS: ReadonlySet<string>;
11
+ /** Whether a field can be set in many records at once: of such a kind, neither read-only nor worked out from others. */
12
+ export declare function bulkSettable(def: Field | undefined): boolean;
13
+ /**
14
+ * The fields a list's Edit offers, in order: none unless the list says
15
+ * `bulkEdit`; with true, its columns that can be set; with a list, those of
16
+ * it that can.
17
+ */
18
+ export declare function bulkEditFields(page: Page, list: ListNode): string[];
@@ -0,0 +1,18 @@
1
+ import type { Field } from './field';
2
+ import type { ListNode } from './layout';
3
+ import type { Page } from './page';
4
+ /**
5
+ * The kinds of field one value can set in many records at once (a list's
6
+ * `bulkEdit`): words, numbers, money, yes or no, a day, a choice and a link.
7
+ * Never a table of lines, links, files, formatted text, JSON or properties,
8
+ * which one value would wipe or cannot say.
9
+ */
10
+ export declare const BULK_KINDS: ReadonlySet<string>;
11
+ /** Whether a field can be set in many records at once: of such a kind, neither read-only nor worked out from others. */
12
+ export declare function bulkSettable(def: Field | undefined): boolean;
13
+ /**
14
+ * The fields a list's Edit offers, in order: none unless the list says
15
+ * `bulkEdit`; with true, its columns that can be set; with a list, those of
16
+ * it that can.
17
+ */
18
+ export declare function bulkEditFields(page: Page, list: ListNode): string[];
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BULK_KINDS = void 0;
4
+ exports.bulkSettable = bulkSettable;
5
+ exports.bulkEditFields = bulkEditFields;
6
+ /**
7
+ * The kinds of field one value can set in many records at once (a list's
8
+ * `bulkEdit`): words, numbers, money, yes or no, a day, a choice and a link.
9
+ * Never a table of lines, links, files, formatted text, JSON or properties,
10
+ * which one value would wipe or cannot say.
11
+ */
12
+ exports.BULK_KINDS = new Set(['char', 'text', 'integer', 'float', 'monetary', 'boolean', 'date', 'datetime', 'selection', 'many2one']);
13
+ /** Whether a field can be set in many records at once: of such a kind, neither read-only nor worked out from others. */
14
+ function bulkSettable(def) {
15
+ return !!def && exports.BULK_KINDS.has(def.type) && def.readonly !== true && !def.compute;
16
+ }
17
+ /**
18
+ * The fields a list's Edit offers, in order: none unless the list says
19
+ * `bulkEdit`; with true, its columns that can be set; with a list, those of
20
+ * it that can.
21
+ */
22
+ function bulkEditFields(page, list) {
23
+ const named = list.bulkEdit === true ? list.columns : Array.isArray(list.bulkEdit) ? list.bulkEdit : [];
24
+ return [...new Set(named)].filter((name) => bulkSettable(page.fields[name]));
25
+ }
26
+ //# sourceMappingURL=bulk-edit.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bulk-edit.js","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/bulk-edit.ts"],"names":[],"mappings":";;;AAaA,oCAEC;AAOD,wCAGC;AArBD;;;;;GAKG;AACU,QAAA,UAAU,GAAwB,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;AAEjK,wHAAwH;AACxH,SAAgB,YAAY,CAAC,GAAsB;IACjD,OAAO,CAAC,CAAC,GAAG,IAAI,kBAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;AACpF,CAAC;AAED;;;;GAIG;AACH,SAAgB,cAAc,CAAC,IAAU,EAAE,IAAc;IACvD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IACxG,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/E,CAAC"}
@@ -0,0 +1,21 @@
1
+ /**
2
+ * The kinds of field one value can set in many records at once (a list's
3
+ * `bulkEdit`): words, numbers, money, yes or no, a day, a choice and a link.
4
+ * Never a table of lines, links, files, formatted text, JSON or properties,
5
+ * which one value would wipe or cannot say.
6
+ */
7
+ export const BULK_KINDS = new Set(['char', 'text', 'integer', 'float', 'monetary', 'boolean', 'date', 'datetime', 'selection', 'many2one']);
8
+ /** Whether a field can be set in many records at once: of such a kind, neither read-only nor worked out from others. */
9
+ export function bulkSettable(def) {
10
+ return !!def && BULK_KINDS.has(def.type) && def.readonly !== true && !def.compute;
11
+ }
12
+ /**
13
+ * The fields a list's Edit offers, in order: none unless the list says
14
+ * `bulkEdit`; with true, its columns that can be set; with a list, those of
15
+ * it that can.
16
+ */
17
+ export function bulkEditFields(page, list) {
18
+ const named = list.bulkEdit === true ? list.columns : Array.isArray(list.bulkEdit) ? list.bulkEdit : [];
19
+ return [...new Set(named)].filter((name) => bulkSettable(page.fields[name]));
20
+ }
21
+ //# sourceMappingURL=bulk-edit.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bulk-edit.mjs","sourceRoot":"","sources":["../../../../../../libs/core/src/lib/format/bulk-edit.ts"],"names":[],"mappings":"AAIA;;;;;GAKG;AACH,MAAM,CAAC,MAAM,UAAU,GAAwB,IAAI,GAAG,CAAC,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,CAAC,CAAC,CAAC;AAEjK,wHAAwH;AACxH,MAAM,UAAU,YAAY,CAAC,GAAsB;IACjD,OAAO,CAAC,CAAC,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;AACpF,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,cAAc,CAAC,IAAU,EAAE,IAAc;IACvD,MAAM,KAAK,GAAG,IAAI,CAAC,QAAQ,KAAK,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;IACxG,OAAO,CAAC,GAAG,IAAI,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAC/E,CAAC"}
@@ -122,16 +122,21 @@ export declare const MoneyLookSchema: z.ZodObject<{
122
122
  home: z.ZodOptional<z.ZodString>;
123
123
  per: z.ZodOptional<z.ZodArray<z.ZodObject<{
124
124
  period: z.ZodEnum<{
125
+ year: "year";
126
+ month: "month";
125
127
  day: "day";
126
128
  night: "night";
127
129
  week: "week";
128
- month: "month";
129
- year: "year";
130
130
  }>;
131
131
  when: z.ZodOptional<z.ZodString>;
132
132
  }, z.core.$strict>>>;
133
133
  }, z.core.$strict>;
134
134
  export type MoneyLook = z.infer<typeof MoneyLookSchema>;
135
+ /**
136
+ * A time zone by its IANA name: "Africa/Cairo", "Europe/Berlin", "UTC". A page's (`timeZone`) is the zone its dates
137
+ * and times are in; a date and time field may name its own — a flight's departure, in its airport's zone.
138
+ */
139
+ export declare const TimeZoneSchema: z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>;
135
140
  /**
136
141
  * Choices the app gives rather than the page: its list by name, loaded through
137
142
  * the data source's `options` when the form shows the field, and again when a
@@ -298,11 +303,11 @@ export declare const LineFieldSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
298
303
  home: z.ZodOptional<z.ZodString>;
299
304
  per: z.ZodOptional<z.ZodArray<z.ZodObject<{
300
305
  period: z.ZodEnum<{
306
+ year: "year";
307
+ month: "month";
301
308
  day: "day";
302
309
  night: "night";
303
310
  week: "week";
304
- month: "month";
305
- year: "year";
306
311
  }>;
307
312
  when: z.ZodOptional<z.ZodString>;
308
313
  }, z.core.$strict>>>;
@@ -352,6 +357,7 @@ export declare const LineFieldSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
352
357
  }, z.core.$strict>>>;
353
358
  type: z.ZodLiteral<"date">;
354
359
  }, z.core.$strict>, z.ZodObject<{
360
+ timeZone: z.ZodOptional<z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>;
355
361
  min: z.ZodOptional<z.ZodString>;
356
362
  max: z.ZodOptional<z.ZodString>;
357
363
  days: z.ZodOptional<z.ZodArray<z.ZodInt>>;
@@ -603,11 +609,11 @@ export declare const LineFieldSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
603
609
  home: z.ZodOptional<z.ZodString>;
604
610
  per: z.ZodOptional<z.ZodArray<z.ZodObject<{
605
611
  period: z.ZodEnum<{
612
+ year: "year";
613
+ month: "month";
606
614
  day: "day";
607
615
  night: "night";
608
616
  week: "week";
609
- month: "month";
610
- year: "year";
611
617
  }>;
612
618
  when: z.ZodOptional<z.ZodString>;
613
619
  }, z.core.$strict>>>;
@@ -657,6 +663,7 @@ export declare const LineFieldSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
657
663
  }, z.core.$strict>>>;
658
664
  type: z.ZodLiteral<"date">;
659
665
  }, z.core.$strict>, z.ZodObject<{
666
+ timeZone: z.ZodOptional<z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>;
660
667
  min: z.ZodOptional<z.ZodString>;
661
668
  max: z.ZodOptional<z.ZodString>;
662
669
  days: z.ZodOptional<z.ZodArray<z.ZodInt>>;
@@ -937,11 +944,11 @@ export declare const LineFieldSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
937
944
  home: z.ZodOptional<z.ZodString>;
938
945
  per: z.ZodOptional<z.ZodArray<z.ZodObject<{
939
946
  period: z.ZodEnum<{
947
+ year: "year";
948
+ month: "month";
940
949
  day: "day";
941
950
  night: "night";
942
951
  week: "week";
943
- month: "month";
944
- year: "year";
945
952
  }>;
946
953
  when: z.ZodOptional<z.ZodString>;
947
954
  }, z.core.$strict>>>;
@@ -991,6 +998,7 @@ export declare const LineFieldSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
991
998
  }, z.core.$strict>>>;
992
999
  type: z.ZodLiteral<"date">;
993
1000
  }, z.core.$strict>, z.ZodObject<{
1001
+ timeZone: z.ZodOptional<z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>;
994
1002
  min: z.ZodOptional<z.ZodString>;
995
1003
  max: z.ZodOptional<z.ZodString>;
996
1004
  days: z.ZodOptional<z.ZodArray<z.ZodInt>>;
@@ -1242,11 +1250,11 @@ export declare const LineFieldSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1242
1250
  home: z.ZodOptional<z.ZodString>;
1243
1251
  per: z.ZodOptional<z.ZodArray<z.ZodObject<{
1244
1252
  period: z.ZodEnum<{
1253
+ year: "year";
1254
+ month: "month";
1245
1255
  day: "day";
1246
1256
  night: "night";
1247
1257
  week: "week";
1248
- month: "month";
1249
- year: "year";
1250
1258
  }>;
1251
1259
  when: z.ZodOptional<z.ZodString>;
1252
1260
  }, z.core.$strict>>>;
@@ -1296,6 +1304,7 @@ export declare const LineFieldSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1296
1304
  }, z.core.$strict>>>;
1297
1305
  type: z.ZodLiteral<"date">;
1298
1306
  }, z.core.$strict>, z.ZodObject<{
1307
+ timeZone: z.ZodOptional<z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>;
1299
1308
  min: z.ZodOptional<z.ZodString>;
1300
1309
  max: z.ZodOptional<z.ZodString>;
1301
1310
  days: z.ZodOptional<z.ZodArray<z.ZodInt>>;
@@ -1604,11 +1613,11 @@ export declare const FieldSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1604
1613
  home: z.ZodOptional<z.ZodString>;
1605
1614
  per: z.ZodOptional<z.ZodArray<z.ZodObject<{
1606
1615
  period: z.ZodEnum<{
1616
+ year: "year";
1617
+ month: "month";
1607
1618
  day: "day";
1608
1619
  night: "night";
1609
1620
  week: "week";
1610
- month: "month";
1611
- year: "year";
1612
1621
  }>;
1613
1622
  when: z.ZodOptional<z.ZodString>;
1614
1623
  }, z.core.$strict>>>;
@@ -1658,6 +1667,7 @@ export declare const FieldSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1658
1667
  }, z.core.$strict>>>;
1659
1668
  type: z.ZodLiteral<"date">;
1660
1669
  }, z.core.$strict>, z.ZodObject<{
1670
+ timeZone: z.ZodOptional<z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>;
1661
1671
  min: z.ZodOptional<z.ZodString>;
1662
1672
  max: z.ZodOptional<z.ZodString>;
1663
1673
  days: z.ZodOptional<z.ZodArray<z.ZodInt>>;
@@ -1912,11 +1922,11 @@ export declare const FieldSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1912
1922
  home: z.ZodOptional<z.ZodString>;
1913
1923
  per: z.ZodOptional<z.ZodArray<z.ZodObject<{
1914
1924
  period: z.ZodEnum<{
1925
+ year: "year";
1926
+ month: "month";
1915
1927
  day: "day";
1916
1928
  night: "night";
1917
1929
  week: "week";
1918
- month: "month";
1919
- year: "year";
1920
1930
  }>;
1921
1931
  when: z.ZodOptional<z.ZodString>;
1922
1932
  }, z.core.$strict>>>;
@@ -1966,6 +1976,7 @@ export declare const FieldSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
1966
1976
  }, z.core.$strict>>>;
1967
1977
  type: z.ZodLiteral<"date">;
1968
1978
  }, z.core.$strict>, z.ZodObject<{
1979
+ timeZone: z.ZodOptional<z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>;
1969
1980
  min: z.ZodOptional<z.ZodString>;
1970
1981
  max: z.ZodOptional<z.ZodString>;
1971
1982
  days: z.ZodOptional<z.ZodArray<z.ZodInt>>;
@@ -2169,11 +2180,11 @@ export declare const FieldSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
2169
2180
  home: z.ZodOptional<z.ZodString>;
2170
2181
  per: z.ZodOptional<z.ZodArray<z.ZodObject<{
2171
2182
  period: z.ZodEnum<{
2183
+ year: "year";
2184
+ month: "month";
2172
2185
  day: "day";
2173
2186
  night: "night";
2174
2187
  week: "week";
2175
- month: "month";
2176
- year: "year";
2177
2188
  }>;
2178
2189
  when: z.ZodOptional<z.ZodString>;
2179
2190
  }, z.core.$strict>>>;
@@ -2223,6 +2234,7 @@ export declare const FieldSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
2223
2234
  }, z.core.$strict>>>;
2224
2235
  type: z.ZodLiteral<"date">;
2225
2236
  }, z.core.$strict>, z.ZodObject<{
2237
+ timeZone: z.ZodOptional<z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>;
2226
2238
  min: z.ZodOptional<z.ZodString>;
2227
2239
  max: z.ZodOptional<z.ZodString>;
2228
2240
  days: z.ZodOptional<z.ZodArray<z.ZodInt>>;
@@ -2474,11 +2486,11 @@ export declare const FieldSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
2474
2486
  home: z.ZodOptional<z.ZodString>;
2475
2487
  per: z.ZodOptional<z.ZodArray<z.ZodObject<{
2476
2488
  period: z.ZodEnum<{
2489
+ year: "year";
2490
+ month: "month";
2477
2491
  day: "day";
2478
2492
  night: "night";
2479
2493
  week: "week";
2480
- month: "month";
2481
- year: "year";
2482
2494
  }>;
2483
2495
  when: z.ZodOptional<z.ZodString>;
2484
2496
  }, z.core.$strict>>>;
@@ -2528,6 +2540,7 @@ export declare const FieldSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
2528
2540
  }, z.core.$strict>>>;
2529
2541
  type: z.ZodLiteral<"date">;
2530
2542
  }, z.core.$strict>, z.ZodObject<{
2543
+ timeZone: z.ZodOptional<z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>;
2531
2544
  min: z.ZodOptional<z.ZodString>;
2532
2545
  max: z.ZodOptional<z.ZodString>;
2533
2546
  days: z.ZodOptional<z.ZodArray<z.ZodInt>>;
@@ -2808,11 +2821,11 @@ export declare const FieldSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
2808
2821
  home: z.ZodOptional<z.ZodString>;
2809
2822
  per: z.ZodOptional<z.ZodArray<z.ZodObject<{
2810
2823
  period: z.ZodEnum<{
2824
+ year: "year";
2825
+ month: "month";
2811
2826
  day: "day";
2812
2827
  night: "night";
2813
2828
  week: "week";
2814
- month: "month";
2815
- year: "year";
2816
2829
  }>;
2817
2830
  when: z.ZodOptional<z.ZodString>;
2818
2831
  }, z.core.$strict>>>;
@@ -2862,6 +2875,7 @@ export declare const FieldSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
2862
2875
  }, z.core.$strict>>>;
2863
2876
  type: z.ZodLiteral<"date">;
2864
2877
  }, z.core.$strict>, z.ZodObject<{
2878
+ timeZone: z.ZodOptional<z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>;
2865
2879
  min: z.ZodOptional<z.ZodString>;
2866
2880
  max: z.ZodOptional<z.ZodString>;
2867
2881
  days: z.ZodOptional<z.ZodArray<z.ZodInt>>;
@@ -3113,11 +3127,11 @@ export declare const FieldSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
3113
3127
  home: z.ZodOptional<z.ZodString>;
3114
3128
  per: z.ZodOptional<z.ZodArray<z.ZodObject<{
3115
3129
  period: z.ZodEnum<{
3130
+ year: "year";
3131
+ month: "month";
3116
3132
  day: "day";
3117
3133
  night: "night";
3118
3134
  week: "week";
3119
- month: "month";
3120
- year: "year";
3121
3135
  }>;
3122
3136
  when: z.ZodOptional<z.ZodString>;
3123
3137
  }, z.core.$strict>>>;
@@ -3167,6 +3181,7 @@ export declare const FieldSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
3167
3181
  }, z.core.$strict>>>;
3168
3182
  type: z.ZodLiteral<"date">;
3169
3183
  }, z.core.$strict>, z.ZodObject<{
3184
+ timeZone: z.ZodOptional<z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>;
3170
3185
  min: z.ZodOptional<z.ZodString>;
3171
3186
  max: z.ZodOptional<z.ZodString>;
3172
3187
  days: z.ZodOptional<z.ZodArray<z.ZodInt>>;
@@ -3596,11 +3611,11 @@ export declare const FieldsSchema: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUn
3596
3611
  home: z.ZodOptional<z.ZodString>;
3597
3612
  per: z.ZodOptional<z.ZodArray<z.ZodObject<{
3598
3613
  period: z.ZodEnum<{
3614
+ year: "year";
3615
+ month: "month";
3599
3616
  day: "day";
3600
3617
  night: "night";
3601
3618
  week: "week";
3602
- month: "month";
3603
- year: "year";
3604
3619
  }>;
3605
3620
  when: z.ZodOptional<z.ZodString>;
3606
3621
  }, z.core.$strict>>>;
@@ -3650,6 +3665,7 @@ export declare const FieldsSchema: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUn
3650
3665
  }, z.core.$strict>>>;
3651
3666
  type: z.ZodLiteral<"date">;
3652
3667
  }, z.core.$strict>, z.ZodObject<{
3668
+ timeZone: z.ZodOptional<z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>;
3653
3669
  min: z.ZodOptional<z.ZodString>;
3654
3670
  max: z.ZodOptional<z.ZodString>;
3655
3671
  days: z.ZodOptional<z.ZodArray<z.ZodInt>>;
@@ -3904,11 +3920,11 @@ export declare const FieldsSchema: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUn
3904
3920
  home: z.ZodOptional<z.ZodString>;
3905
3921
  per: z.ZodOptional<z.ZodArray<z.ZodObject<{
3906
3922
  period: z.ZodEnum<{
3923
+ year: "year";
3924
+ month: "month";
3907
3925
  day: "day";
3908
3926
  night: "night";
3909
3927
  week: "week";
3910
- month: "month";
3911
- year: "year";
3912
3928
  }>;
3913
3929
  when: z.ZodOptional<z.ZodString>;
3914
3930
  }, z.core.$strict>>>;
@@ -3958,6 +3974,7 @@ export declare const FieldsSchema: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUn
3958
3974
  }, z.core.$strict>>>;
3959
3975
  type: z.ZodLiteral<"date">;
3960
3976
  }, z.core.$strict>, z.ZodObject<{
3977
+ timeZone: z.ZodOptional<z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>;
3961
3978
  min: z.ZodOptional<z.ZodString>;
3962
3979
  max: z.ZodOptional<z.ZodString>;
3963
3980
  days: z.ZodOptional<z.ZodArray<z.ZodInt>>;
@@ -4161,11 +4178,11 @@ export declare const FieldsSchema: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUn
4161
4178
  home: z.ZodOptional<z.ZodString>;
4162
4179
  per: z.ZodOptional<z.ZodArray<z.ZodObject<{
4163
4180
  period: z.ZodEnum<{
4181
+ year: "year";
4182
+ month: "month";
4164
4183
  day: "day";
4165
4184
  night: "night";
4166
4185
  week: "week";
4167
- month: "month";
4168
- year: "year";
4169
4186
  }>;
4170
4187
  when: z.ZodOptional<z.ZodString>;
4171
4188
  }, z.core.$strict>>>;
@@ -4215,6 +4232,7 @@ export declare const FieldsSchema: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUn
4215
4232
  }, z.core.$strict>>>;
4216
4233
  type: z.ZodLiteral<"date">;
4217
4234
  }, z.core.$strict>, z.ZodObject<{
4235
+ timeZone: z.ZodOptional<z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>;
4218
4236
  min: z.ZodOptional<z.ZodString>;
4219
4237
  max: z.ZodOptional<z.ZodString>;
4220
4238
  days: z.ZodOptional<z.ZodArray<z.ZodInt>>;
@@ -4466,11 +4484,11 @@ export declare const FieldsSchema: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUn
4466
4484
  home: z.ZodOptional<z.ZodString>;
4467
4485
  per: z.ZodOptional<z.ZodArray<z.ZodObject<{
4468
4486
  period: z.ZodEnum<{
4487
+ year: "year";
4488
+ month: "month";
4469
4489
  day: "day";
4470
4490
  night: "night";
4471
4491
  week: "week";
4472
- month: "month";
4473
- year: "year";
4474
4492
  }>;
4475
4493
  when: z.ZodOptional<z.ZodString>;
4476
4494
  }, z.core.$strict>>>;
@@ -4520,6 +4538,7 @@ export declare const FieldsSchema: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUn
4520
4538
  }, z.core.$strict>>>;
4521
4539
  type: z.ZodLiteral<"date">;
4522
4540
  }, z.core.$strict>, z.ZodObject<{
4541
+ timeZone: z.ZodOptional<z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>;
4523
4542
  min: z.ZodOptional<z.ZodString>;
4524
4543
  max: z.ZodOptional<z.ZodString>;
4525
4544
  days: z.ZodOptional<z.ZodArray<z.ZodInt>>;
@@ -4800,11 +4819,11 @@ export declare const FieldsSchema: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUn
4800
4819
  home: z.ZodOptional<z.ZodString>;
4801
4820
  per: z.ZodOptional<z.ZodArray<z.ZodObject<{
4802
4821
  period: z.ZodEnum<{
4822
+ year: "year";
4823
+ month: "month";
4803
4824
  day: "day";
4804
4825
  night: "night";
4805
4826
  week: "week";
4806
- month: "month";
4807
- year: "year";
4808
4827
  }>;
4809
4828
  when: z.ZodOptional<z.ZodString>;
4810
4829
  }, z.core.$strict>>>;
@@ -4854,6 +4873,7 @@ export declare const FieldsSchema: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUn
4854
4873
  }, z.core.$strict>>>;
4855
4874
  type: z.ZodLiteral<"date">;
4856
4875
  }, z.core.$strict>, z.ZodObject<{
4876
+ timeZone: z.ZodOptional<z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>;
4857
4877
  min: z.ZodOptional<z.ZodString>;
4858
4878
  max: z.ZodOptional<z.ZodString>;
4859
4879
  days: z.ZodOptional<z.ZodArray<z.ZodInt>>;
@@ -5105,11 +5125,11 @@ export declare const FieldsSchema: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUn
5105
5125
  home: z.ZodOptional<z.ZodString>;
5106
5126
  per: z.ZodOptional<z.ZodArray<z.ZodObject<{
5107
5127
  period: z.ZodEnum<{
5128
+ year: "year";
5129
+ month: "month";
5108
5130
  day: "day";
5109
5131
  night: "night";
5110
5132
  week: "week";
5111
- month: "month";
5112
- year: "year";
5113
5133
  }>;
5114
5134
  when: z.ZodOptional<z.ZodString>;
5115
5135
  }, z.core.$strict>>>;
@@ -5159,6 +5179,7 @@ export declare const FieldsSchema: z.ZodRecord<z.ZodString, z.ZodDiscriminatedUn
5159
5179
  }, z.core.$strict>>>;
5160
5180
  type: z.ZodLiteral<"date">;
5161
5181
  }, z.core.$strict>, z.ZodObject<{
5182
+ timeZone: z.ZodOptional<z.ZodString & z.ZodType<string, string, z.core.$ZodTypeInternals<string, string>>>;
5162
5183
  min: z.ZodOptional<z.ZodString>;
5163
5184
  max: z.ZodOptional<z.ZodString>;
5164
5185
  days: z.ZodOptional<z.ZodArray<z.ZodInt>>;