@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,149 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.FormModel = void 0;
4
+ const services_1 = require("../services");
5
+ const ui_1 = require("../ui");
6
+ // class
7
+ class FormModel {
8
+ constructor(args) {
9
+ var _a;
10
+ // initialize instance variables
11
+ this._eventBus = new services_1.EventBus();
12
+ this._state = 'initializing';
13
+ this._service = args.service;
14
+ this.schema = args.schema;
15
+ // create fields from schema
16
+ const { editableFields, consentFields } = this.schema;
17
+ this.fields = Object.entries(editableFields)
18
+ .map(([id, schema]) => ui_1.FieldSerializer.deserializeField({
19
+ id,
20
+ eventBus: this._eventBus,
21
+ schema,
22
+ content: undefined,
23
+ snapshot: undefined
24
+ }));
25
+ // create consent fields from schema (if they exist)
26
+ if (consentFields) {
27
+ this.consentFields = Object.entries(consentFields)
28
+ .map(([id, schema]) => ui_1.FieldSerializer.deserializeField({
29
+ id,
30
+ eventBus: this._eventBus,
31
+ schema,
32
+ content: undefined,
33
+ snapshot: undefined
34
+ }));
35
+ }
36
+ // save all fields
37
+ this._allFields = [...this.fields, ...((_a = this.consentFields) !== null && _a !== void 0 ? _a : [])];
38
+ }
39
+ get events$() {
40
+ return this._eventBus.events$;
41
+ }
42
+ get valid() {
43
+ return this._allFields.every(field => field.valid);
44
+ }
45
+ get canSubmit() {
46
+ return this._state !== 'initializing' && this._state !== 'submitting';
47
+ }
48
+ get submitting() {
49
+ return this._state === 'submitting';
50
+ }
51
+ get submitted() {
52
+ return this._state === 'submitted';
53
+ }
54
+ get submitFailed() {
55
+ // if in a failed state, return that state
56
+ if (this._state === 'submitFailedValidation' || this._state === 'submitFailedServer') {
57
+ return this._state;
58
+ }
59
+ // otherwise return undefined
60
+ return undefined;
61
+ }
62
+ getField(id) {
63
+ // try to find field (throw if cannot)
64
+ const field = this._allFields.find(field => field.id === id);
65
+ if (!field) {
66
+ throw new Error(`cannot find field with id "${id}"`);
67
+ }
68
+ // return
69
+ return field;
70
+ }
71
+ reset() {
72
+ // reset all fields
73
+ this._allFields.every(field => field.reset());
74
+ // set state back to ready
75
+ this.updateState('ready');
76
+ }
77
+ async initialize() {
78
+ // initialize service
79
+ await this._service.initialize();
80
+ // mark as ready
81
+ this.updateState('ready');
82
+ }
83
+ async submit() {
84
+ // try to submit
85
+ try {
86
+ // mark as submitting
87
+ this.updateState('submitting');
88
+ // bail if not valid
89
+ if (!this.valid) {
90
+ this.updateState('submitFailedValidation');
91
+ return;
92
+ }
93
+ // submit with service
94
+ const data = this.getData();
95
+ await this._service.submit(data);
96
+ // notify success
97
+ this.updateState('submitted');
98
+ }
99
+ // handle error
100
+ catch (e) {
101
+ console.error('[FormModel] save failed', e);
102
+ // complete with an error
103
+ this.updateState('submitFailedServer');
104
+ // forward error
105
+ throw e;
106
+ }
107
+ }
108
+ getData() {
109
+ // reduce fields to data
110
+ return this._allFields.reduce((data, field) => {
111
+ var _a;
112
+ // get raw value from field
113
+ let value;
114
+ if (field instanceof ui_1.Field) {
115
+ value = (_a = field.value) === null || _a === void 0 ? void 0 : _a.value;
116
+ }
117
+ // only use value of field if defined
118
+ if (value !== undefined) {
119
+ data[field.id] = value;
120
+ }
121
+ // return data so far
122
+ return data;
123
+ }, {});
124
+ }
125
+ updateState(state) {
126
+ // update state
127
+ this._state = state;
128
+ // raise event
129
+ this.raiseEvent(state);
130
+ }
131
+ raiseEvent(type) {
132
+ this._eventBus.publish(FormModel.Event.create({ type }));
133
+ }
134
+ }
135
+ exports.FormModel = FormModel;
136
+ // extension
137
+ (function (FormModel) {
138
+ let Event;
139
+ (function (Event) {
140
+ function filter(event) {
141
+ return event.domain === 'Form';
142
+ }
143
+ Event.filter = filter;
144
+ function create(event) {
145
+ return services_1.EventBus.createEvent(Object.assign({ domain: 'Form' }, event));
146
+ }
147
+ Event.create = create;
148
+ })(Event = FormModel.Event || (FormModel.Event = {}));
149
+ })(FormModel || (exports.FormModel = FormModel = {}));
@@ -0,0 +1,15 @@
1
+ import { Form } from '../schema';
2
+ import { IFormService } from './IFormService';
3
+ export type Forms<TConfigs extends Forms.Configs = Forms.Configs> = {
4
+ readonly configs: TConfigs;
5
+ };
6
+ export declare namespace Forms {
7
+ type Config = {
8
+ schema: Form;
9
+ service: IFormService;
10
+ };
11
+ type Configs = Record<string, Config>;
12
+ function initialize(configs: Configs): void;
13
+ function current<TConfigs extends Forms.Configs = Forms.Configs>(): Forms<TConfigs>;
14
+ function getConfig<TConfigs extends Forms.Configs = Forms.Configs, TKey extends keyof TConfigs = keyof TConfigs>(id: TKey): TConfigs[TKey];
15
+ }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.Forms = void 0;
4
+ const errors_1 = require("../errors");
5
+ var Forms;
6
+ (function (Forms) {
7
+ // methods
8
+ function initialize(configs) {
9
+ console.debug('[Forms] initializing');
10
+ // bind instance
11
+ _forms = { configs };
12
+ }
13
+ Forms.initialize = initialize;
14
+ function current() {
15
+ // throw if not initialized
16
+ if (!_forms) {
17
+ throw new errors_1.IllegalStateError('Attempt to access forms before initialize()');
18
+ }
19
+ // return instance
20
+ return _forms;
21
+ }
22
+ Forms.current = current;
23
+ function getConfig(id) {
24
+ // try to find config
25
+ const config = current().configs[id];
26
+ if (!config) {
27
+ throw new errors_1.NotFoundError(`Cannot find form config with id "${id.toString()}"`);
28
+ }
29
+ // return config
30
+ return config;
31
+ }
32
+ Forms.getConfig = getConfig;
33
+ })(Forms || (exports.Forms = Forms = {}));
34
+ // storage
35
+ let _forms = undefined;
@@ -0,0 +1,6 @@
1
+ import { Fields } from '../schema';
2
+ import { FormModel } from './FormModel';
3
+ export interface IFormService<TFields extends Fields = Fields> {
4
+ initialize(): Promise<void>;
5
+ submit(data: FormModel.Data<TFields>): Promise<void>;
6
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,8 @@
1
+ import { AssetField, BooleanField, CollectionField, DateField, EnumField, Field, LinkField, ObjectField, Optional, PageField, TextField, TimestampField } from '../schema';
2
+ import { Field as UIField, ObjectField as UIObjectField } from '../ui';
3
+ export declare namespace TranslateSchema {
4
+ type Field<T extends Field.Type> = T extends TextField ? UIField<TextField> : T extends EnumField ? UIField<EnumField> : T extends BooleanField ? UIField<BooleanField> : T extends DateField ? UIField<DateField> : T extends TimestampField ? UIField<TimestampField> : T extends LinkField ? UIField<LinkField> : T extends AssetField ? UIField<AssetField> : T extends CollectionField ? UIField<CollectionField> : T extends PageField ? UIField<PageField> : T extends ObjectField<infer C> ? UIObjectField : never;
5
+ type Fields<TFields extends Record<string, Optional.Maybe<Field.Type>>> = {
6
+ [TKey in keyof TFields]: Field<Optional.InnerType<TFields[TKey]>>;
7
+ };
8
+ }
@@ -0,0 +1,2 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
@@ -0,0 +1,4 @@
1
+ export * from './Forms';
2
+ export * from './FormModel';
3
+ export * from './IFormService';
4
+ export * from './TranslateSchema';
@@ -0,0 +1,20 @@
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("./Forms"), exports);
18
+ __exportStar(require("./FormModel"), exports);
19
+ __exportStar(require("./IFormService"), exports);
20
+ __exportStar(require("./TranslateSchema"), exports);
@@ -0,0 +1,10 @@
1
+ export * from './app';
2
+ export * from './consent';
3
+ export * from './forms';
4
+ export * from './errors';
5
+ export * from './regionalization';
6
+ export * as Schema from './schema';
7
+ export * from './services';
8
+ export * from './types';
9
+ export * from './ui';
10
+ export * from './utils';
package/dist/index.js ADDED
@@ -0,0 +1,49 @@
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 __exportStar = (this && this.__exportStar) || function(m, exports) {
19
+ for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
20
+ };
21
+ var __importStar = (this && this.__importStar) || (function () {
22
+ var ownKeys = function(o) {
23
+ ownKeys = Object.getOwnPropertyNames || function (o) {
24
+ var ar = [];
25
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
26
+ return ar;
27
+ };
28
+ return ownKeys(o);
29
+ };
30
+ return function (mod) {
31
+ if (mod && mod.__esModule) return mod;
32
+ var result = {};
33
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
34
+ __setModuleDefault(result, mod);
35
+ return result;
36
+ };
37
+ })();
38
+ Object.defineProperty(exports, "__esModule", { value: true });
39
+ exports.Schema = void 0;
40
+ __exportStar(require("./app"), exports);
41
+ __exportStar(require("./consent"), exports);
42
+ __exportStar(require("./forms"), exports);
43
+ __exportStar(require("./errors"), exports);
44
+ __exportStar(require("./regionalization"), exports);
45
+ exports.Schema = __importStar(require("./schema"));
46
+ __exportStar(require("./services"), exports);
47
+ __exportStar(require("./types"), exports);
48
+ __exportStar(require("./ui"), exports);
49
+ __exportStar(require("./utils"), exports);
@@ -0,0 +1,266 @@
1
+ export type Country = keyof (typeof Country.map);
2
+ export declare namespace Country {
3
+ type Param<TRegion extends Country = Country> = {
4
+ region: TRegion;
5
+ };
6
+ const map: {
7
+ af: string;
8
+ ax: string;
9
+ al: string;
10
+ dz: string;
11
+ as: string;
12
+ ad: string;
13
+ ao: string;
14
+ ai: string;
15
+ aq: string;
16
+ ag: string;
17
+ ar: string;
18
+ am: string;
19
+ aw: string;
20
+ au: string;
21
+ at: string;
22
+ az: string;
23
+ bs: string;
24
+ bh: string;
25
+ bd: string;
26
+ bb: string;
27
+ by: string;
28
+ be: string;
29
+ bz: string;
30
+ bj: string;
31
+ bm: string;
32
+ bt: string;
33
+ bo: string;
34
+ bq: string;
35
+ ba: string;
36
+ bw: string;
37
+ bv: string;
38
+ br: string;
39
+ io: string;
40
+ bn: string;
41
+ bg: string;
42
+ bf: string;
43
+ bi: string;
44
+ kh: string;
45
+ cm: string;
46
+ ca: string;
47
+ cv: string;
48
+ ky: string;
49
+ cf: string;
50
+ td: string;
51
+ cl: string;
52
+ cn: string;
53
+ cx: string;
54
+ cc: string;
55
+ co: string;
56
+ km: string;
57
+ cg: string;
58
+ cd: string;
59
+ ck: string;
60
+ cr: string;
61
+ ci: string;
62
+ hr: string;
63
+ cu: string;
64
+ cw: string;
65
+ cy: string;
66
+ cz: string;
67
+ dk: string;
68
+ dj: string;
69
+ dm: string;
70
+ do: string;
71
+ ec: string;
72
+ eg: string;
73
+ sv: string;
74
+ gq: string;
75
+ er: string;
76
+ ee: string;
77
+ et: string;
78
+ fk: string;
79
+ fo: string;
80
+ fj: string;
81
+ fi: string;
82
+ fr: string;
83
+ gf: string;
84
+ pf: string;
85
+ tf: string;
86
+ ga: string;
87
+ gm: string;
88
+ ge: string;
89
+ de: string;
90
+ gh: string;
91
+ gi: string;
92
+ gr: string;
93
+ gl: string;
94
+ gd: string;
95
+ gp: string;
96
+ gu: string;
97
+ gt: string;
98
+ gg: string;
99
+ gn: string;
100
+ gw: string;
101
+ gy: string;
102
+ ht: string;
103
+ hm: string;
104
+ va: string;
105
+ hn: string;
106
+ hk: string;
107
+ hu: string;
108
+ is: string;
109
+ in: string;
110
+ id: string;
111
+ ir: string;
112
+ iq: string;
113
+ ie: string;
114
+ im: string;
115
+ il: string;
116
+ it: string;
117
+ jm: string;
118
+ jp: string;
119
+ je: string;
120
+ jo: string;
121
+ kz: string;
122
+ ke: string;
123
+ ki: string;
124
+ xk: string;
125
+ kp: string;
126
+ kr: string;
127
+ kw: string;
128
+ kg: string;
129
+ la: string;
130
+ lv: string;
131
+ lb: string;
132
+ ls: string;
133
+ lr: string;
134
+ ly: string;
135
+ li: string;
136
+ lt: string;
137
+ lu: string;
138
+ mo: string;
139
+ mk: string;
140
+ mg: string;
141
+ mw: string;
142
+ my: string;
143
+ mv: string;
144
+ ml: string;
145
+ mt: string;
146
+ mh: string;
147
+ mq: string;
148
+ mr: string;
149
+ mu: string;
150
+ yt: string;
151
+ mx: string;
152
+ fm: string;
153
+ md: string;
154
+ mc: string;
155
+ mn: string;
156
+ me: string;
157
+ ms: string;
158
+ ma: string;
159
+ mz: string;
160
+ mm: string;
161
+ na: string;
162
+ nr: string;
163
+ np: string;
164
+ nl: string;
165
+ an: string;
166
+ nc: string;
167
+ nz: string;
168
+ ni: string;
169
+ ne: string;
170
+ ng: string;
171
+ nu: string;
172
+ nf: string;
173
+ mp: string;
174
+ no: string;
175
+ om: string;
176
+ pk: string;
177
+ pw: string;
178
+ ps: string;
179
+ pa: string;
180
+ pg: string;
181
+ py: string;
182
+ pe: string;
183
+ ph: string;
184
+ pn: string;
185
+ pl: string;
186
+ pt: string;
187
+ pr: string;
188
+ qa: string;
189
+ re: string;
190
+ ro: string;
191
+ ru: string;
192
+ rw: string;
193
+ bl: string;
194
+ sh: string;
195
+ kn: string;
196
+ lc: string;
197
+ mf: string;
198
+ pm: string;
199
+ vc: string;
200
+ ws: string;
201
+ sm: string;
202
+ st: string;
203
+ sa: string;
204
+ sn: string;
205
+ rs: string;
206
+ sc: string;
207
+ sl: string;
208
+ sg: string;
209
+ sx: string;
210
+ sk: string;
211
+ si: string;
212
+ sb: string;
213
+ so: string;
214
+ za: string;
215
+ gs: string;
216
+ ss: string;
217
+ es: string;
218
+ lk: string;
219
+ sd: string;
220
+ sr: string;
221
+ sj: string;
222
+ sz: string;
223
+ se: string;
224
+ ch: string;
225
+ sy: string;
226
+ tw: string;
227
+ tj: string;
228
+ tz: string;
229
+ th: string;
230
+ tl: string;
231
+ tg: string;
232
+ tk: string;
233
+ to: string;
234
+ tt: string;
235
+ tn: string;
236
+ tr: string;
237
+ tm: string;
238
+ tc: string;
239
+ tv: string;
240
+ ug: string;
241
+ ua: string;
242
+ ae: string;
243
+ gb: string;
244
+ us: string;
245
+ um: string;
246
+ uy: string;
247
+ uz: string;
248
+ vu: string;
249
+ ve: string;
250
+ vn: string;
251
+ vg: string;
252
+ vi: string;
253
+ wf: string;
254
+ eh: string;
255
+ ye: string;
256
+ zm: string;
257
+ zw: string;
258
+ };
259
+ const values: ReadonlyArray<Country>;
260
+ const fallback: Country;
261
+ function filter(value: any): value is Country;
262
+ function guard(value: any): value is Country | never;
263
+ function tryParse(value: string | undefined): Country | undefined;
264
+ function parse(value: string | undefined): Country;
265
+ function gdpr(region: Country): boolean;
266
+ }