@nascentdigital/funnel-core 4.4.4

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 (368) hide show
  1. package/dist/app/AppConfig.d.ts +41 -0
  2. package/dist/app/AppConfig.js +93 -0
  3. package/dist/app/BrandConfig.d.ts +13 -0
  4. package/dist/app/BrandConfig.js +2 -0
  5. package/dist/app/FeaturesConfig.d.ts +6 -0
  6. package/dist/app/FeaturesConfig.js +2 -0
  7. package/dist/app/RegionsConfig.d.ts +43 -0
  8. package/dist/app/RegionsConfig.js +113 -0
  9. package/dist/app/UIConfig.d.ts +4 -0
  10. package/dist/app/UIConfig.js +2 -0
  11. package/dist/app/index.d.ts +5 -0
  12. package/dist/app/index.js +21 -0
  13. package/dist/consent/ConsentCategory.d.ts +12 -0
  14. package/dist/consent/ConsentCategory.js +28 -0
  15. package/dist/consent/ConsentService.d.ts +15 -0
  16. package/dist/consent/ConsentService.js +37 -0
  17. package/dist/consent/index.d.ts +2 -0
  18. package/dist/consent/index.js +18 -0
  19. package/dist/errors/IsometricError.d.ts +19 -0
  20. package/dist/errors/IsometricError.js +30 -0
  21. package/dist/errors/IsometricErrorModule.d.ts +11 -0
  22. package/dist/errors/IsometricErrorModule.js +2 -0
  23. package/dist/errors/IsometricErrorUtils.d.ts +9 -0
  24. package/dist/errors/IsometricErrorUtils.js +85 -0
  25. package/dist/errors/SerializedIsometricError.d.ts +10 -0
  26. package/dist/errors/SerializedIsometricError.js +15 -0
  27. package/dist/errors/api/ApiError.d.ts +15 -0
  28. package/dist/errors/api/ApiError.js +23 -0
  29. package/dist/errors/api/ApiErrors.d.ts +7 -0
  30. package/dist/errors/api/ApiErrors.js +67 -0
  31. package/dist/errors/api/ArgumentError.d.ts +7 -0
  32. package/dist/errors/api/ArgumentError.js +18 -0
  33. package/dist/errors/api/ConcurrencyError.d.ts +4 -0
  34. package/dist/errors/api/ConcurrencyError.js +11 -0
  35. package/dist/errors/api/ConflictError.d.ts +4 -0
  36. package/dist/errors/api/ConflictError.js +11 -0
  37. package/dist/errors/api/DependencyError.d.ts +4 -0
  38. package/dist/errors/api/DependencyError.js +11 -0
  39. package/dist/errors/api/IllegalStateError.d.ts +4 -0
  40. package/dist/errors/api/IllegalStateError.js +11 -0
  41. package/dist/errors/api/InvalidOperationError.d.ts +4 -0
  42. package/dist/errors/api/InvalidOperationError.js +11 -0
  43. package/dist/errors/api/NotAuthenticatedError.d.ts +4 -0
  44. package/dist/errors/api/NotAuthenticatedError.js +11 -0
  45. package/dist/errors/api/NotAuthorizedError.d.ts +4 -0
  46. package/dist/errors/api/NotAuthorizedError.js +11 -0
  47. package/dist/errors/api/NotAvailableError.d.ts +4 -0
  48. package/dist/errors/api/NotAvailableError.js +11 -0
  49. package/dist/errors/api/NotFoundError.d.ts +4 -0
  50. package/dist/errors/api/NotFoundError.js +11 -0
  51. package/dist/errors/api/NotImplementedError.d.ts +4 -0
  52. package/dist/errors/api/NotImplementedError.js +11 -0
  53. package/dist/errors/api/OfflineError.d.ts +4 -0
  54. package/dist/errors/api/OfflineError.js +11 -0
  55. package/dist/errors/api/RangeError.d.ts +4 -0
  56. package/dist/errors/api/RangeError.js +11 -0
  57. package/dist/errors/api/ServerError.d.ts +4 -0
  58. package/dist/errors/api/ServerError.js +11 -0
  59. package/dist/errors/api/TimeoutError.d.ts +4 -0
  60. package/dist/errors/api/TimeoutError.js +11 -0
  61. package/dist/errors/api/index.d.ts +16 -0
  62. package/dist/errors/api/index.js +32 -0
  63. package/dist/errors/index.d.ts +5 -0
  64. package/dist/errors/index.js +26 -0
  65. package/dist/forms/FormModel.d.ts +47 -0
  66. package/dist/forms/FormModel.js +149 -0
  67. package/dist/forms/Forms.d.ts +15 -0
  68. package/dist/forms/Forms.js +35 -0
  69. package/dist/forms/IFormService.d.ts +6 -0
  70. package/dist/forms/IFormService.js +2 -0
  71. package/dist/forms/TranslateSchema.d.ts +8 -0
  72. package/dist/forms/TranslateSchema.js +2 -0
  73. package/dist/forms/index.d.ts +4 -0
  74. package/dist/forms/index.js +20 -0
  75. package/dist/index.d.ts +10 -0
  76. package/dist/index.js +49 -0
  77. package/dist/regionalization/Country.d.ts +266 -0
  78. package/dist/regionalization/Country.js +338 -0
  79. package/dist/regionalization/Language.d.ts +199 -0
  80. package/dist/regionalization/Language.js +237 -0
  81. package/dist/regionalization/Locale.d.ts +28 -0
  82. package/dist/regionalization/Locale.js +49 -0
  83. package/dist/regionalization/Localized.d.ts +10 -0
  84. package/dist/regionalization/Localized.js +36 -0
  85. package/dist/regionalization/LocalizedCopy.d.ts +9 -0
  86. package/dist/regionalization/LocalizedCopy.js +26 -0
  87. package/dist/regionalization/Regionalization.d.ts +50 -0
  88. package/dist/regionalization/Regionalization.js +260 -0
  89. package/dist/regionalization/Regions.d.ts +2 -0
  90. package/dist/regionalization/Regions.js +2 -0
  91. package/dist/regionalization/index.d.ts +7 -0
  92. package/dist/regionalization/index.js +23 -0
  93. package/dist/schema/Asset.d.ts +23 -0
  94. package/dist/schema/Asset.js +36 -0
  95. package/dist/schema/AssetScope.d.ts +75 -0
  96. package/dist/schema/AssetScope.js +146 -0
  97. package/dist/schema/Block.d.ts +105 -0
  98. package/dist/schema/Block.js +122 -0
  99. package/dist/schema/ChangeSet.d.ts +108 -0
  100. package/dist/schema/ChangeSet.js +187 -0
  101. package/dist/schema/Collection.d.ts +197 -0
  102. package/dist/schema/Collection.js +165 -0
  103. package/dist/schema/CollectionModel.d.ts +30 -0
  104. package/dist/schema/CollectionModel.js +383 -0
  105. package/dist/schema/CollectionSnapshot.d.ts +11 -0
  106. package/dist/schema/CollectionSnapshot.js +12 -0
  107. package/dist/schema/Fields.d.ts +31 -0
  108. package/dist/schema/Fields.js +21 -0
  109. package/dist/schema/Form.d.ts +31 -0
  110. package/dist/schema/Form.js +23 -0
  111. package/dist/schema/LinkedCollectionModel.d.ts +9 -0
  112. package/dist/schema/LinkedCollectionModel.js +19 -0
  113. package/dist/schema/LinkedData.d.ts +44 -0
  114. package/dist/schema/LinkedData.js +288 -0
  115. package/dist/schema/LinkedPageModel.d.ts +11 -0
  116. package/dist/schema/LinkedPageModel.js +26 -0
  117. package/dist/schema/Optional.d.ts +23 -0
  118. package/dist/schema/Optional.js +34 -0
  119. package/dist/schema/Page.d.ts +299 -0
  120. package/dist/schema/Page.js +244 -0
  121. package/dist/schema/PageModel.d.ts +58 -0
  122. package/dist/schema/PageModel.js +881 -0
  123. package/dist/schema/PageQuery.d.ts +60 -0
  124. package/dist/schema/PageQuery.js +116 -0
  125. package/dist/schema/PageRoute.d.ts +7 -0
  126. package/dist/schema/PageRoute.js +48 -0
  127. package/dist/schema/PageSnapshot.d.ts +11 -0
  128. package/dist/schema/PageSnapshot.js +12 -0
  129. package/dist/schema/Section.d.ts +71 -0
  130. package/dist/schema/Section.js +35 -0
  131. package/dist/schema/Seo.d.ts +13 -0
  132. package/dist/schema/Seo.js +25 -0
  133. package/dist/schema/Site.d.ts +40 -0
  134. package/dist/schema/Site.js +87 -0
  135. package/dist/schema/SiteModel.d.ts +5 -0
  136. package/dist/schema/SiteModel.js +10 -0
  137. package/dist/schema/Tag.d.ts +28 -0
  138. package/dist/schema/Tag.js +59 -0
  139. package/dist/schema/TagGroup.d.ts +26 -0
  140. package/dist/schema/TagGroup.js +64 -0
  141. package/dist/schema/field/Field.d.ts +179 -0
  142. package/dist/schema/field/Field.js +309 -0
  143. package/dist/schema/field/base/AssetField.d.ts +148 -0
  144. package/dist/schema/field/base/AssetField.js +206 -0
  145. package/dist/schema/field/base/BooleanField.d.ts +21 -0
  146. package/dist/schema/field/base/BooleanField.js +38 -0
  147. package/dist/schema/field/base/CollectionField.d.ts +34 -0
  148. package/dist/schema/field/base/CollectionField.js +85 -0
  149. package/dist/schema/field/base/DateField.d.ts +21 -0
  150. package/dist/schema/field/base/DateField.js +37 -0
  151. package/dist/schema/field/base/DynamicPagesField.d.ts +36 -0
  152. package/dist/schema/field/base/DynamicPagesField.js +50 -0
  153. package/dist/schema/field/base/EmbeddedVideoField.d.ts +45 -0
  154. package/dist/schema/field/base/EmbeddedVideoField.js +176 -0
  155. package/dist/schema/field/base/EnumField.d.ts +40 -0
  156. package/dist/schema/field/base/EnumField.js +131 -0
  157. package/dist/schema/field/base/FormField.d.ts +25 -0
  158. package/dist/schema/field/base/FormField.js +48 -0
  159. package/dist/schema/field/base/LinkField.d.ts +103 -0
  160. package/dist/schema/field/base/LinkField.js +201 -0
  161. package/dist/schema/field/base/PageField.d.ts +46 -0
  162. package/dist/schema/field/base/PageField.js +83 -0
  163. package/dist/schema/field/base/RichTextField.d.ts +71 -0
  164. package/dist/schema/field/base/RichTextField.js +196 -0
  165. package/dist/schema/field/base/TextField.d.ts +33 -0
  166. package/dist/schema/field/base/TextField.js +86 -0
  167. package/dist/schema/field/base/TimestampField.d.ts +25 -0
  168. package/dist/schema/field/base/TimestampField.js +41 -0
  169. package/dist/schema/field/base/index.d.ts +13 -0
  170. package/dist/schema/field/base/index.js +29 -0
  171. package/dist/schema/field/composite/ListField.d.ts +47 -0
  172. package/dist/schema/field/composite/ListField.js +107 -0
  173. package/dist/schema/field/composite/ObjectField.d.ts +56 -0
  174. package/dist/schema/field/composite/ObjectField.js +19 -0
  175. package/dist/schema/field/composite/index.d.ts +2 -0
  176. package/dist/schema/field/composite/index.js +18 -0
  177. package/dist/schema/field/index.d.ts +3 -0
  178. package/dist/schema/field/index.js +19 -0
  179. package/dist/schema/index.d.ts +25 -0
  180. package/dist/schema/index.js +41 -0
  181. package/dist/services/EventBus.d.ts +17 -0
  182. package/dist/services/EventBus.js +37 -0
  183. package/dist/services/humanVerification/IHumanVerification.d.ts +8 -0
  184. package/dist/services/humanVerification/IHumanVerification.js +2 -0
  185. package/dist/services/humanVerification/index.d.ts +1 -0
  186. package/dist/services/humanVerification/index.js +17 -0
  187. package/dist/services/index.d.ts +3 -0
  188. package/dist/services/index.js +19 -0
  189. package/dist/services/leadGen/Contact.d.ts +40 -0
  190. package/dist/services/leadGen/Contact.js +38 -0
  191. package/dist/services/leadGen/ILeadGen.d.ts +16 -0
  192. package/dist/services/leadGen/ILeadGen.js +2 -0
  193. package/dist/services/leadGen/index.d.ts +2 -0
  194. package/dist/services/leadGen/index.js +18 -0
  195. package/dist/types/BoxedValue.d.ts +3 -0
  196. package/dist/types/BoxedValue.js +2 -0
  197. package/dist/types/Callback.d.ts +9 -0
  198. package/dist/types/Callback.js +2 -0
  199. package/dist/types/DateString.d.ts +35 -0
  200. package/dist/types/DateString.js +172 -0
  201. package/dist/types/FilterConditionally.d.ts +3 -0
  202. package/dist/types/FilterConditionally.js +2 -0
  203. package/dist/types/MaybeConditionalValue.d.ts +8 -0
  204. package/dist/types/MaybeConditionalValue.js +12 -0
  205. package/dist/types/Ordinal.d.ts +17 -0
  206. package/dist/types/Ordinal.js +38 -0
  207. package/dist/types/OverridableStringUnion.d.ts +2 -0
  208. package/dist/types/OverridableStringUnion.js +2 -0
  209. package/dist/types/PartialBy.d.ts +1 -0
  210. package/dist/types/PartialBy.js +2 -0
  211. package/dist/types/PickData.d.ts +6 -0
  212. package/dist/types/PickData.js +2 -0
  213. package/dist/types/Provider.d.ts +4 -0
  214. package/dist/types/Provider.js +2 -0
  215. package/dist/types/RequiredBy.d.ts +1 -0
  216. package/dist/types/RequiredBy.js +2 -0
  217. package/dist/types/Result.d.ts +16 -0
  218. package/dist/types/Result.js +2 -0
  219. package/dist/types/Timestamp.d.ts +17 -0
  220. package/dist/types/Timestamp.js +57 -0
  221. package/dist/types/Transform.d.ts +4 -0
  222. package/dist/types/Transform.js +2 -0
  223. package/dist/types/index.d.ts +14 -0
  224. package/dist/types/index.js +30 -0
  225. package/dist/ui/Accessible.d.ts +5 -0
  226. package/dist/ui/Accessible.js +15 -0
  227. package/dist/ui/BlockThemes.d.ts +19 -0
  228. package/dist/ui/BlockThemes.js +29 -0
  229. package/dist/ui/ColorMode.d.ts +12 -0
  230. package/dist/ui/ColorMode.js +49 -0
  231. package/dist/ui/File.d.ts +43 -0
  232. package/dist/ui/File.js +55 -0
  233. package/dist/ui/FileType.d.ts +8 -0
  234. package/dist/ui/FileType.js +48 -0
  235. package/dist/ui/ImageSource.d.ts +12 -0
  236. package/dist/ui/ImageSource.js +48 -0
  237. package/dist/ui/MimeType.d.ts +28 -0
  238. package/dist/ui/MimeType.js +110 -0
  239. package/dist/ui/Placement.d.ts +21 -0
  240. package/dist/ui/Placement.js +135 -0
  241. package/dist/ui/Position.d.ts +6 -0
  242. package/dist/ui/Position.js +42 -0
  243. package/dist/ui/Selector.d.ts +6 -0
  244. package/dist/ui/Selector.js +23 -0
  245. package/dist/ui/SemanticColor.d.ts +8 -0
  246. package/dist/ui/SemanticColor.js +237 -0
  247. package/dist/ui/Visual.d.ts +24 -0
  248. package/dist/ui/Visual.js +66 -0
  249. package/dist/ui/block-layout/BlockLayout.d.ts +99 -0
  250. package/dist/ui/block-layout/BlockLayout.js +286 -0
  251. package/dist/ui/block-layout/index.d.ts +1 -0
  252. package/dist/ui/block-layout/index.js +17 -0
  253. package/dist/ui/browser/BlurHasher.d.ts +13 -0
  254. package/dist/ui/browser/BlurHasher.js +76 -0
  255. package/dist/ui/browser/Browser.d.ts +107 -0
  256. package/dist/ui/browser/Browser.js +313 -0
  257. package/dist/ui/browser/ImageProxy.d.ts +30 -0
  258. package/dist/ui/browser/ImageProxy.js +132 -0
  259. package/dist/ui/browser/InputEvent.d.ts +13 -0
  260. package/dist/ui/browser/InputEvent.js +2 -0
  261. package/dist/ui/browser/SVGProxy.d.ts +9 -0
  262. package/dist/ui/browser/SVGProxy.js +59 -0
  263. package/dist/ui/browser/VideoProxy.d.ts +42 -0
  264. package/dist/ui/browser/VideoProxy.js +235 -0
  265. package/dist/ui/browser/index.d.ts +6 -0
  266. package/dist/ui/browser/index.js +22 -0
  267. package/dist/ui/fields/Field.d.ts +80 -0
  268. package/dist/ui/fields/Field.js +298 -0
  269. package/dist/ui/fields/FieldList.d.ts +80 -0
  270. package/dist/ui/fields/FieldList.js +421 -0
  271. package/dist/ui/fields/FieldListValidator.d.ts +9 -0
  272. package/dist/ui/fields/FieldListValidator.js +37 -0
  273. package/dist/ui/fields/FieldModel.d.ts +15 -0
  274. package/dist/ui/fields/FieldModel.js +28 -0
  275. package/dist/ui/fields/FieldSerializer.d.ts +13 -0
  276. package/dist/ui/fields/FieldSerializer.js +71 -0
  277. package/dist/ui/fields/FieldValidator.d.ts +19 -0
  278. package/dist/ui/fields/FieldValidator.js +98 -0
  279. package/dist/ui/fields/ObjectField.d.ts +75 -0
  280. package/dist/ui/fields/ObjectField.js +288 -0
  281. package/dist/ui/fields/errors.json +44 -0
  282. package/dist/ui/fields/index.d.ts +7 -0
  283. package/dist/ui/fields/index.js +23 -0
  284. package/dist/ui/fields/validators/AssetValidator.d.ts +9 -0
  285. package/dist/ui/fields/validators/AssetValidator.js +25 -0
  286. package/dist/ui/fields/validators/DateValidator.d.ts +9 -0
  287. package/dist/ui/fields/validators/DateValidator.js +41 -0
  288. package/dist/ui/fields/validators/EnumValidator.d.ts +10 -0
  289. package/dist/ui/fields/validators/EnumValidator.js +77 -0
  290. package/dist/ui/fields/validators/GenericValidator.d.ts +6 -0
  291. package/dist/ui/fields/validators/GenericValidator.js +22 -0
  292. package/dist/ui/fields/validators/LinkValidator.d.ts +9 -0
  293. package/dist/ui/fields/validators/LinkValidator.js +146 -0
  294. package/dist/ui/fields/validators/RichTextValidator.d.ts +6 -0
  295. package/dist/ui/fields/validators/RichTextValidator.js +35 -0
  296. package/dist/ui/fields/validators/TextValidator.d.ts +10 -0
  297. package/dist/ui/fields/validators/TextValidator.js +138 -0
  298. package/dist/ui/fields/validators/TimestampValidator.d.ts +9 -0
  299. package/dist/ui/fields/validators/TimestampValidator.js +41 -0
  300. package/dist/ui/fields/validators/ValidatorHelper.d.ts +23 -0
  301. package/dist/ui/fields/validators/ValidatorHelper.js +55 -0
  302. package/dist/ui/fields/validators/index.d.ts +8 -0
  303. package/dist/ui/fields/validators/index.js +24 -0
  304. package/dist/ui/geometry/AspectRatio.d.ts +27 -0
  305. package/dist/ui/geometry/AspectRatio.js +77 -0
  306. package/dist/ui/geometry/Bounds.d.ts +4 -0
  307. package/dist/ui/geometry/Bounds.js +11 -0
  308. package/dist/ui/geometry/Frame.d.ts +3 -0
  309. package/dist/ui/geometry/Frame.js +2 -0
  310. package/dist/ui/geometry/Insets.d.ts +14 -0
  311. package/dist/ui/geometry/Insets.js +14 -0
  312. package/dist/ui/geometry/PixelSize.d.ts +1 -0
  313. package/dist/ui/geometry/PixelSize.js +2 -0
  314. package/dist/ui/geometry/Point.d.ts +7 -0
  315. package/dist/ui/geometry/Point.js +15 -0
  316. package/dist/ui/geometry/Rect.d.ts +19 -0
  317. package/dist/ui/geometry/Rect.js +68 -0
  318. package/dist/ui/geometry/ScreenSize.d.ts +1 -0
  319. package/dist/ui/geometry/ScreenSize.js +2 -0
  320. package/dist/ui/geometry/Size.d.ts +7 -0
  321. package/dist/ui/geometry/Size.js +9 -0
  322. package/dist/ui/geometry/index.d.ts +9 -0
  323. package/dist/ui/geometry/index.js +25 -0
  324. package/dist/ui/index.d.ts +18 -0
  325. package/dist/ui/index.js +34 -0
  326. package/dist/ui/responsive/Breakpoint.d.ts +8 -0
  327. package/dist/ui/responsive/Breakpoint.js +24 -0
  328. package/dist/ui/responsive/BreakpointObserver.d.ts +16 -0
  329. package/dist/ui/responsive/BreakpointObserver.js +104 -0
  330. package/dist/ui/responsive/Breakpoints.d.ts +5 -0
  331. package/dist/ui/responsive/Breakpoints.js +15 -0
  332. package/dist/ui/responsive/ResponsiveValue.d.ts +7 -0
  333. package/dist/ui/responsive/ResponsiveValue.js +26 -0
  334. package/dist/ui/responsive/index.d.ts +4 -0
  335. package/dist/ui/responsive/index.js +20 -0
  336. package/dist/ui/richtext/LexicalUtils.d.ts +31 -0
  337. package/dist/ui/richtext/LexicalUtils.js +314 -0
  338. package/dist/ui/richtext/StyledTextNode.d.ts +33 -0
  339. package/dist/ui/richtext/StyledTextNode.js +101 -0
  340. package/dist/ui/richtext/index.d.ts +2 -0
  341. package/dist/ui/richtext/index.js +18 -0
  342. package/dist/utils/ArrayUtils.d.ts +17 -0
  343. package/dist/utils/ArrayUtils.js +66 -0
  344. package/dist/utils/ByteSize.d.ts +19 -0
  345. package/dist/utils/ByteSize.js +33 -0
  346. package/dist/utils/DateUtils.d.ts +15 -0
  347. package/dist/utils/DateUtils.js +100 -0
  348. package/dist/utils/Deferral.d.ts +28 -0
  349. package/dist/utils/Deferral.js +107 -0
  350. package/dist/utils/Duration.d.ts +7 -0
  351. package/dist/utils/Duration.js +35 -0
  352. package/dist/utils/Fn.d.ts +14 -0
  353. package/dist/utils/Fn.js +52 -0
  354. package/dist/utils/ObjectUtils.d.ts +89 -0
  355. package/dist/utils/ObjectUtils.js +159 -0
  356. package/dist/utils/Random.d.ts +15 -0
  357. package/dist/utils/Random.js +72 -0
  358. package/dist/utils/StringUtils.d.ts +10 -0
  359. package/dist/utils/StringUtils.js +51 -0
  360. package/dist/utils/UrlUtils.d.ts +22 -0
  361. package/dist/utils/UrlUtils.js +119 -0
  362. package/dist/utils/Value.d.ts +23 -0
  363. package/dist/utils/Value.js +122 -0
  364. package/dist/utils/index.d.ts +12 -0
  365. package/dist/utils/index.js +28 -0
  366. package/dist/utils/isDefined.d.ts +1 -0
  367. package/dist/utils/isDefined.js +6 -0
  368. package/package.json +64 -0
@@ -0,0 +1,19 @@
1
+ import { Tagged } from 'type-fest';
2
+ import { Field } from './Field';
3
+ import { AssetValidator, DateValidator, EnumValidator, GenericValidator, LinkValidator, RichTextValidator, TextValidator, TimestampValidator } from './validators';
4
+ export type FieldValidator = TextValidator | RichTextValidator | EnumValidator | DateValidator | TimestampValidator | LinkValidator | AssetValidator | GenericValidator;
5
+ export declare namespace FieldValidator {
6
+ type Error = {
7
+ id: Error.Id;
8
+ critical: boolean;
9
+ visual: boolean;
10
+ message: string;
11
+ };
12
+ namespace Error {
13
+ type Id = Tagged<string, 'FieldValidator.Error'>;
14
+ type Level = 'none' | 'critical' | 'all';
15
+ function filter(error: Error, level: Level): boolean;
16
+ function mostRelevant(errors: ReadonlyArray<Error>): Error | undefined;
17
+ }
18
+ function create(field: Field): FieldValidator;
19
+ }
@@ -0,0 +1,98 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.FieldValidator = void 0;
37
+ const Schema = __importStar(require("../../schema"));
38
+ const validators_1 = require("./validators");
39
+ // extension
40
+ var FieldValidator;
41
+ (function (FieldValidator) {
42
+ let Error;
43
+ (function (Error) {
44
+ // helpers
45
+ function filter(error, level) {
46
+ switch (level) {
47
+ case 'none':
48
+ return false;
49
+ case 'critical':
50
+ return error.critical;
51
+ default:
52
+ return true;
53
+ }
54
+ }
55
+ Error.filter = filter;
56
+ function mostRelevant(errors) {
57
+ var _a, _b;
58
+ // skip if there are no errors
59
+ if (errors.length === 0) {
60
+ return undefined;
61
+ }
62
+ // get required, empty, or fallback
63
+ return (_b = (_a = errors.find(error => error.id === 'required')) !== null && _a !== void 0 ? _a : errors.find(error => error.id === 'empty')) !== null && _b !== void 0 ? _b : errors[0];
64
+ }
65
+ Error.mostRelevant = mostRelevant;
66
+ })(Error = FieldValidator.Error || (FieldValidator.Error = {}));
67
+ // methods
68
+ function create(field) {
69
+ // create validator for each schema type
70
+ const { schema } = field;
71
+ if (schema instanceof Schema.TextField) {
72
+ return new validators_1.TextValidator(schema, field);
73
+ }
74
+ else if (schema instanceof Schema.RichTextField) {
75
+ return new validators_1.RichTextValidator();
76
+ }
77
+ else if (schema instanceof Schema.EnumField) {
78
+ return new validators_1.EnumValidator(schema, field);
79
+ }
80
+ else if (schema instanceof Schema.DateField) {
81
+ return new validators_1.DateValidator(schema);
82
+ }
83
+ else if (schema instanceof Schema.TimestampField) {
84
+ return new validators_1.TimestampValidator(schema);
85
+ }
86
+ else if (schema instanceof Schema.LinkField) {
87
+ return new validators_1.LinkValidator(schema);
88
+ }
89
+ else if (schema instanceof Schema.AssetField) {
90
+ return new validators_1.AssetValidator(schema);
91
+ }
92
+ // otherwise, return a no-op validator (does nothing)
93
+ else {
94
+ return new validators_1.GenericValidator();
95
+ }
96
+ }
97
+ FieldValidator.create = create;
98
+ })(FieldValidator || (exports.FieldValidator = FieldValidator = {}));
@@ -0,0 +1,75 @@
1
+ import { Observable } from 'rxjs';
2
+ import * as Schema from '../../schema';
3
+ import { EventBus } from '../../services';
4
+ import { Field } from './Field';
5
+ import { FieldList } from './FieldList';
6
+ import { FieldModel } from './FieldModel';
7
+ import { FieldValidator } from './FieldValidator';
8
+ export declare class ObjectField {
9
+ readonly schema: Schema.ObjectField;
10
+ readonly id: string;
11
+ readonly name: string;
12
+ readonly required: boolean;
13
+ readonly publishedValue: ObjectField.Value | undefined;
14
+ private readonly eventBus;
15
+ private readonly _content;
16
+ private readonly _fields;
17
+ private _initialValue;
18
+ private _optIn?;
19
+ private _optOut?;
20
+ constructor(args: ObjectField.ConstructorArgs);
21
+ get events$(): Observable<FieldModel.Event>;
22
+ get initialValue(): ObjectField.Value | undefined;
23
+ get exists(): boolean;
24
+ get isNew(): boolean;
25
+ get valid(): boolean;
26
+ get error(): FieldValidator.Error | undefined;
27
+ get errors(): FieldValidator.Error[];
28
+ get content(): Readonly<ObjectField.Fields>;
29
+ get fields(): readonly ObjectField.FieldsValues[];
30
+ get hasValue(): boolean;
31
+ get value(): ObjectField.Value;
32
+ set value(value: ObjectField.Value);
33
+ get modified(): boolean;
34
+ get changed(): boolean;
35
+ get preview(): ObjectField.Preview;
36
+ get optedOut(): boolean;
37
+ get canOptOut(): boolean;
38
+ optIn(): void;
39
+ optOut(): void;
40
+ get shouldFocus(): boolean;
41
+ didFocus(): boolean;
42
+ getString(key: string | undefined): string | undefined;
43
+ reset(initialValue?: ObjectField.Value | null): void;
44
+ clone(): ObjectField;
45
+ private raiseEvent;
46
+ static forSchema(schema: Schema.ObjectField): ObjectField;
47
+ }
48
+ export declare namespace ObjectField {
49
+ type ConstructorArgs = {
50
+ eventBus: EventBus;
51
+ schema: Schema.ObjectField;
52
+ id: string;
53
+ name: string;
54
+ publishedValue?: Value;
55
+ initialValue?: Value;
56
+ required: boolean;
57
+ };
58
+ type Value = Schema.Field.Data<Schema.ObjectField>;
59
+ type Fields = Record<string, FieldsValues>;
60
+ type FieldsValues = Field | FieldList | ObjectField;
61
+ type Data = Record<string, Schema.Field.Data<Schema.ObjectField.Content.Type>>;
62
+ type Preview = {
63
+ title: Field<Schema.TextField | Schema.RichTextField>;
64
+ subtitle?: Field<Schema.TextField | Schema.RichTextField>;
65
+ visual?: Field<Schema.AssetField>;
66
+ };
67
+ interface Event extends EventBus.Event<'ObjectField', Event.Type> {
68
+ field: ObjectField;
69
+ }
70
+ namespace Event {
71
+ type Type = 'changed';
72
+ function filter(event: EventBus.Event): event is Event;
73
+ function create(event: EventBus.Args<Event>): Event;
74
+ }
75
+ }
@@ -0,0 +1,288 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ObjectField = void 0;
4
+ const rxjs_1 = require("rxjs");
5
+ const services_1 = require("../../services");
6
+ const utils_1 = require("../../utils");
7
+ const Field_1 = require("./Field");
8
+ const FieldList_1 = require("./FieldList");
9
+ const FieldModel_1 = require("./FieldModel");
10
+ const FieldValidator_1 = require("./FieldValidator");
11
+ // class
12
+ class ObjectField {
13
+ constructor(args) {
14
+ // initialize instance variables
15
+ this.eventBus = args.eventBus;
16
+ this.schema = args.schema;
17
+ this._content = deserializeFields(args);
18
+ this._fields = Object.values(this._content);
19
+ this.id = args.id;
20
+ this.name = args.name;
21
+ this.required = args.required;
22
+ this.publishedValue = args.publishedValue;
23
+ this._initialValue = args.initialValue;
24
+ }
25
+ get events$() {
26
+ return this.eventBus.events$.pipe((0, rxjs_1.filter)(e => (ObjectField.Event.filter(e) && e.field === this)
27
+ || (FieldModel_1.FieldModel.Event.filter(e) && this._fields.includes(e.field))));
28
+ }
29
+ get initialValue() {
30
+ return this._initialValue;
31
+ }
32
+ get exists() {
33
+ const { _initialValue, _optIn = false, _optOut = false, schema: { required } } = this;
34
+ return (_initialValue !== undefined && !_optOut) || required || _optIn;
35
+ }
36
+ get isNew() {
37
+ const { exists, _initialValue } = this;
38
+ return exists && (_initialValue === undefined
39
+ || utils_1.Value.equals(_initialValue.value, {}));
40
+ }
41
+ get valid() {
42
+ return this.errors.length === 0;
43
+ }
44
+ get error() {
45
+ return FieldValidator_1.FieldValidator.Error.mostRelevant(this.errors);
46
+ }
47
+ get errors() {
48
+ // no errors if not existing and not required
49
+ const { required, exists, _fields } = this;
50
+ if (!required && !exists) {
51
+ return [];
52
+ }
53
+ // otherwise return errors
54
+ else {
55
+ return _fields.flatMap(field => field.errors);
56
+ }
57
+ }
58
+ get content() {
59
+ return this._content;
60
+ }
61
+ get fields() {
62
+ return this._fields;
63
+ }
64
+ get hasValue() {
65
+ return this._fields.some(field => field.hasValue);
66
+ }
67
+ get value() {
68
+ // reduce value from fields
69
+ return {
70
+ type: 'object',
71
+ value: this._fields.reduce((values, { id, value }) => {
72
+ // bind value if it's set
73
+ if (value !== undefined) {
74
+ values[id] = value;
75
+ }
76
+ // keep reducing
77
+ return values;
78
+ }, {})
79
+ };
80
+ }
81
+ set value(value) {
82
+ var _a;
83
+ // update values
84
+ const values = (_a = value.value) !== null && _a !== void 0 ? _a : {};
85
+ Object.entries(this._content).forEach(([key, field]) => {
86
+ if (field instanceof ObjectField) {
87
+ field.value = values[key];
88
+ }
89
+ else if (field instanceof FieldList_1.FieldList) {
90
+ field.value = values[key];
91
+ }
92
+ else {
93
+ field.value = values[key];
94
+ }
95
+ });
96
+ }
97
+ get modified() {
98
+ // modified if opted in/our
99
+ const { required, exists, _optIn, _optOut } = this;
100
+ if (_optIn || _optOut) {
101
+ return true;
102
+ }
103
+ // don't check if it isn't created (assume not modified)
104
+ else if (!required && !exists) {
105
+ return false;
106
+ }
107
+ // or compare values (deep comparison)
108
+ else {
109
+ return !utils_1.Value.equals(this.value, this._initialValue);
110
+ }
111
+ }
112
+ get changed() {
113
+ const { value, publishedValue } = this;
114
+ return !utils_1.Value.equals(value, publishedValue);
115
+ }
116
+ get preview() {
117
+ // determine fields to lookup
118
+ const { schema: { preview: previewSpec }, content } = this;
119
+ // return preview
120
+ return {
121
+ title: content[previewSpec.title],
122
+ subtitle: previewSpec.subtitle ? content[previewSpec.subtitle] : undefined,
123
+ visual: previewSpec.visual ? content[previewSpec.visual] : undefined
124
+ };
125
+ }
126
+ get optedOut() {
127
+ var _a;
128
+ return (_a = this._optOut) !== null && _a !== void 0 ? _a : false;
129
+ }
130
+ get canOptOut() {
131
+ return !this.schema.required;
132
+ }
133
+ optIn() {
134
+ // skip if required
135
+ const { schema } = this;
136
+ if (schema.required) {
137
+ return;
138
+ }
139
+ // set opt-in flag
140
+ this._optIn = true;
141
+ this._optOut = false;
142
+ this.raiseEvent('changed');
143
+ }
144
+ optOut() {
145
+ // skip if required
146
+ const { schema } = this;
147
+ if (schema.required) {
148
+ return;
149
+ }
150
+ // set opt-out flag
151
+ this._optIn = false;
152
+ this._optOut = true;
153
+ this.reset(null);
154
+ }
155
+ get shouldFocus() {
156
+ return false;
157
+ }
158
+ didFocus() {
159
+ return false;
160
+ }
161
+ getString(key) {
162
+ // skip if key isn't defined
163
+ if (!key) {
164
+ return undefined;
165
+ }
166
+ // skip if item is missing
167
+ const { content } = this;
168
+ const field = content[key];
169
+ if (!field) {
170
+ return undefined;
171
+ }
172
+ // return value based on type
173
+ const { value: data } = field;
174
+ switch (data === null || data === void 0 ? void 0 : data.type) {
175
+ case 'text':
176
+ case 'enum':
177
+ return data.value;
178
+ default:
179
+ return undefined;
180
+ }
181
+ }
182
+ reset(initialValue) {
183
+ var _a;
184
+ if (initialValue !== undefined) {
185
+ this._initialValue = initialValue !== null && initialValue !== void 0 ? initialValue : undefined;
186
+ // re-bind new initial values
187
+ const values = (_a = initialValue === null || initialValue === void 0 ? void 0 : initialValue.value) !== null && _a !== void 0 ? _a : {};
188
+ Object.entries(this._content).forEach(([key, field]) => {
189
+ var _a, _b, _c;
190
+ if (field instanceof ObjectField) {
191
+ field.reset((_a = values[key]) !== null && _a !== void 0 ? _a : null);
192
+ }
193
+ else if (field instanceof FieldList_1.FieldList) {
194
+ field.reset((_b = values[key]) !== null && _b !== void 0 ? _b : null);
195
+ }
196
+ else {
197
+ field.reset((_c = values[key]) !== null && _c !== void 0 ? _c : null);
198
+ }
199
+ });
200
+ }
201
+ // reset each field if there's no initial value
202
+ else {
203
+ this._fields.forEach(field => field.reset());
204
+ }
205
+ // raise final change
206
+ this.raiseEvent('changed');
207
+ }
208
+ clone() {
209
+ return new ObjectField({
210
+ eventBus: this.eventBus,
211
+ schema: this.schema,
212
+ id: this.id,
213
+ name: this.name,
214
+ publishedValue: this.publishedValue,
215
+ initialValue: this._initialValue,
216
+ required: this.required
217
+ });
218
+ }
219
+ raiseEvent(type) {
220
+ this.eventBus.publish(ObjectField.Event.create({ type, field: this }));
221
+ }
222
+ static forSchema(schema) {
223
+ return new ObjectField({
224
+ eventBus: new services_1.EventBus(),
225
+ schema,
226
+ id: utils_1.Value.uuid(),
227
+ name: schema.name,
228
+ required: true
229
+ });
230
+ }
231
+ }
232
+ exports.ObjectField = ObjectField;
233
+ // extension
234
+ (function (ObjectField) {
235
+ let Event;
236
+ (function (Event) {
237
+ // methods
238
+ function filter(event) {
239
+ return event.domain === 'ObjectField';
240
+ }
241
+ Event.filter = filter;
242
+ function create(event) {
243
+ return services_1.EventBus.createEvent(Object.assign({ domain: 'ObjectField' }, event));
244
+ }
245
+ Event.create = create;
246
+ })(Event = ObjectField.Event || (ObjectField.Event = {}));
247
+ })(ObjectField || (exports.ObjectField = ObjectField = {}));
248
+ function deserializeFields({ eventBus, schema, initialValue }) {
249
+ var _a;
250
+ // TODO: should we add a published value?!
251
+ // create fields for each object entry
252
+ const initialValues = (_a = initialValue === null || initialValue === void 0 ? void 0 : initialValue.value) !== null && _a !== void 0 ? _a : {};
253
+ return Object.entries(schema.content).reduce((fields, [id, fieldSchemaMaybe]) => {
254
+ // create field
255
+ const fieldSchema = fieldSchemaMaybe.unwrap();
256
+ switch (fieldSchema.type) {
257
+ // map simple fields
258
+ case 'text':
259
+ case 'richtext':
260
+ case 'enum':
261
+ case 'boolean':
262
+ case 'link':
263
+ case 'asset':
264
+ fields[id] = new Field_1.Field({
265
+ eventBus,
266
+ schema: fieldSchema,
267
+ id,
268
+ name: fieldSchema.name,
269
+ initialValue: initialValues[id],
270
+ required: fieldSchema.required
271
+ });
272
+ break;
273
+ // map lists
274
+ case 'list':
275
+ fields[id] = new FieldList_1.FieldList({
276
+ eventBus,
277
+ schema: fieldSchema,
278
+ id,
279
+ name: fieldSchema.name,
280
+ initialValue: initialValues[id],
281
+ required: fieldSchema.required
282
+ });
283
+ break;
284
+ }
285
+ // keep reducing
286
+ return fields;
287
+ }, {});
288
+ }
@@ -0,0 +1,44 @@
1
+ {
2
+ "en": {
3
+ "required": "${label} is required",
4
+ "minLength": "${label} needs least ${minLength} characters",
5
+ "maxLength": "${label} cannot exceed ${maxLength} characters",
6
+ "empty": "${label} is required",
7
+ "exact": "Please enter \"${exact}\"",
8
+ "email": "${label} is an invalid format",
9
+ "phone": "${label} is an invalid format",
10
+ "url": "${label} is not a valid URL",
11
+ "uri": "${label} must be a URL, email, or phone number",
12
+ "regex": "${label} is not valid",
13
+ "regex.password": "Needs at least 1 digit, uppercase, lowercase, and special character",
14
+ "array.min": "${label} needs at least ${min} elements",
15
+ "array.max": "${label} cannot exceed ${max} elements",
16
+ "date": "${label} is not a valid date",
17
+ "date.minDate": "${label} cannot be before ${minDate}",
18
+ "date.maxDate": "${label} cannot be after ${maxDate}",
19
+ "timestamp": "${label} is not a valid date/time",
20
+ "timestamp.minTime": "${label} cannot be before ${minTime}",
21
+ "timestamp.maxTime": "${label} cannot be after ${maxTime}"
22
+ },
23
+ "fr": {
24
+ "required": "${label} is required",
25
+ "minLength": "${label} needs least ${minLength} characters",
26
+ "maxLength": "${label} cannot exceed ${maxLength} characters",
27
+ "empty": "${label} is required",
28
+ "exact": "Please enter \"${exact}\"",
29
+ "email": "${label} is an invalid format",
30
+ "phone": "${label} is an invalid format",
31
+ "url": "${label} is not a valid URL",
32
+ "uri": "${label} must be a URL, email, or phone number",
33
+ "regex": "${label} is not valid",
34
+ "regex.password": "Needs at least 1 digit, uppercase, lowercase, and special character",
35
+ "array.min": "${label} needs at least ${min} elements",
36
+ "array.max": "${label} cannot exceed ${max} elements",
37
+ "date": "${label} is not a valid date",
38
+ "date.minDate": "${label} cannot be before ${minDate}",
39
+ "date.maxDate": "${label} cannot be after ${maxDate}",
40
+ "timestamp": "${label} is not a valid date/time",
41
+ "timestamp.minTime": "${label} cannot be before ${minTime}",
42
+ "timestamp.maxTime": "${label} cannot be after ${maxTime}"
43
+ }
44
+ }
@@ -0,0 +1,7 @@
1
+ export * from './Field';
2
+ export * from './FieldList';
3
+ export * from './FieldListValidator';
4
+ export * from './FieldModel';
5
+ export * from './FieldSerializer';
6
+ export * from './FieldValidator';
7
+ export * from './ObjectField';
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __exportStar = (this && this.__exportStar) || function(m, exports) {
14
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
15
+ };
16
+ Object.defineProperty(exports, "__esModule", { value: true });
17
+ __exportStar(require("./Field"), exports);
18
+ __exportStar(require("./FieldList"), exports);
19
+ __exportStar(require("./FieldListValidator"), exports);
20
+ __exportStar(require("./FieldModel"), exports);
21
+ __exportStar(require("./FieldSerializer"), exports);
22
+ __exportStar(require("./FieldValidator"), exports);
23
+ __exportStar(require("./ObjectField"), exports);
@@ -0,0 +1,9 @@
1
+ import type { AssetField } from '../../../schema/field/base/AssetField';
2
+ import { Field as FieldModel } from '../Field';
3
+ import type { FieldValidator } from '../FieldValidator';
4
+ export declare class AssetValidator {
5
+ readonly schema: AssetField;
6
+ constructor(schema: AssetField);
7
+ filter(errors: ReadonlyArray<FieldValidator.Error>, level: FieldValidator.Error.Level): ReadonlyArray<FieldValidator.Error>;
8
+ validate(field: FieldModel, rawValue: any): FieldValidator.Error[];
9
+ }
@@ -0,0 +1,25 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AssetValidator = void 0;
4
+ const ValidatorHelper_1 = require("./ValidatorHelper");
5
+ // class
6
+ class AssetValidator {
7
+ constructor(schema) {
8
+ this.schema = schema;
9
+ }
10
+ filter(errors, level) {
11
+ return ValidatorHelper_1.ValidatorHelper.filterErrors(errors, level);
12
+ }
13
+ validate(field, rawValue) {
14
+ // handle case where unset (fail if not optional)
15
+ const data = rawValue;
16
+ if (!data || !data.value) {
17
+ return field.required
18
+ ? [ValidatorHelper_1.ValidatorHelper.createError({ field, id: 'required', value: data })]
19
+ : [];
20
+ }
21
+ // return errors
22
+ return [];
23
+ }
24
+ }
25
+ exports.AssetValidator = AssetValidator;
@@ -0,0 +1,9 @@
1
+ import type { DateField } from '../../../schema/field/base/DateField';
2
+ import type { Field as FieldModel } from '../Field';
3
+ import type { FieldValidator } from '../FieldValidator';
4
+ export declare class DateValidator {
5
+ readonly schema: DateField;
6
+ constructor(schema: DateField);
7
+ filter(errors: ReadonlyArray<FieldValidator.Error>, level: FieldValidator.Error.Level): ReadonlyArray<FieldValidator.Error>;
8
+ validate(field: FieldModel, rawData: any): FieldValidator.Error[];
9
+ }
@@ -0,0 +1,41 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.DateValidator = void 0;
4
+ const DateString_1 = require("../../../types/DateString");
5
+ const ValidatorHelper_1 = require("./ValidatorHelper");
6
+ // class
7
+ class DateValidator {
8
+ constructor(schema) {
9
+ this.schema = schema;
10
+ }
11
+ filter(errors, level) {
12
+ return ValidatorHelper_1.ValidatorHelper.filterErrors(errors, level);
13
+ }
14
+ validate(field, rawData) {
15
+ // handle case where unset (fail if not optional)
16
+ const data = rawData;
17
+ if (!data || !data.value) {
18
+ return field.required
19
+ ? [ValidatorHelper_1.ValidatorHelper.createError({ field, id: 'required', value: data })]
20
+ : [];
21
+ }
22
+ // fail if invalid format
23
+ const { value } = data;
24
+ if (!DateString_1.DateString.filter(value)) {
25
+ return [ValidatorHelper_1.ValidatorHelper.createError({ field, id: 'date', critical: true, value })];
26
+ }
27
+ // or fail if minDate is violated
28
+ const { minDate, maxDate } = this.schema;
29
+ if (minDate && DateString_1.DateString.isBefore(value, minDate)) {
30
+ return [ValidatorHelper_1.ValidatorHelper.createError({ field, id: 'date.minDate', critical: true, value })];
31
+ }
32
+ else if (maxDate && DateString_1.DateString.isBefore(value, maxDate)) {
33
+ return [ValidatorHelper_1.ValidatorHelper.createError({ field, id: 'date.maxDate', critical: true, value })];
34
+ }
35
+ // otherwise, transform errors
36
+ else {
37
+ return [];
38
+ }
39
+ }
40
+ }
41
+ exports.DateValidator = DateValidator;
@@ -0,0 +1,10 @@
1
+ import type { EnumField } from '../../../schema/field/base/EnumField';
2
+ import type { Field as FieldModel } from '../Field';
3
+ import type { FieldValidator } from '../FieldValidator';
4
+ export declare class EnumValidator {
5
+ readonly schema: EnumField;
6
+ private readonly _zod;
7
+ constructor(schema: EnumField, field: FieldModel);
8
+ filter(errors: ReadonlyArray<FieldValidator.Error>, level: FieldValidator.Error.Level): ReadonlyArray<FieldValidator.Error>;
9
+ validate(field: FieldModel, rawData: any): FieldValidator.Error[];
10
+ }