@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.
- package/dist/app/AppConfig.d.ts +41 -0
- package/dist/app/AppConfig.js +93 -0
- package/dist/app/BrandConfig.d.ts +13 -0
- package/dist/app/BrandConfig.js +2 -0
- package/dist/app/FeaturesConfig.d.ts +6 -0
- package/dist/app/FeaturesConfig.js +2 -0
- package/dist/app/RegionsConfig.d.ts +43 -0
- package/dist/app/RegionsConfig.js +113 -0
- package/dist/app/UIConfig.d.ts +4 -0
- package/dist/app/UIConfig.js +2 -0
- package/dist/app/index.d.ts +5 -0
- package/dist/app/index.js +21 -0
- package/dist/consent/ConsentCategory.d.ts +12 -0
- package/dist/consent/ConsentCategory.js +28 -0
- package/dist/consent/ConsentService.d.ts +15 -0
- package/dist/consent/ConsentService.js +37 -0
- package/dist/consent/index.d.ts +2 -0
- package/dist/consent/index.js +18 -0
- package/dist/errors/IsometricError.d.ts +19 -0
- package/dist/errors/IsometricError.js +30 -0
- package/dist/errors/IsometricErrorModule.d.ts +11 -0
- package/dist/errors/IsometricErrorModule.js +2 -0
- package/dist/errors/IsometricErrorUtils.d.ts +9 -0
- package/dist/errors/IsometricErrorUtils.js +85 -0
- package/dist/errors/SerializedIsometricError.d.ts +10 -0
- package/dist/errors/SerializedIsometricError.js +15 -0
- package/dist/errors/api/ApiError.d.ts +15 -0
- package/dist/errors/api/ApiError.js +23 -0
- package/dist/errors/api/ApiErrors.d.ts +7 -0
- package/dist/errors/api/ApiErrors.js +67 -0
- package/dist/errors/api/ArgumentError.d.ts +7 -0
- package/dist/errors/api/ArgumentError.js +18 -0
- package/dist/errors/api/ConcurrencyError.d.ts +4 -0
- package/dist/errors/api/ConcurrencyError.js +11 -0
- package/dist/errors/api/ConflictError.d.ts +4 -0
- package/dist/errors/api/ConflictError.js +11 -0
- package/dist/errors/api/DependencyError.d.ts +4 -0
- package/dist/errors/api/DependencyError.js +11 -0
- package/dist/errors/api/IllegalStateError.d.ts +4 -0
- package/dist/errors/api/IllegalStateError.js +11 -0
- package/dist/errors/api/InvalidOperationError.d.ts +4 -0
- package/dist/errors/api/InvalidOperationError.js +11 -0
- package/dist/errors/api/NotAuthenticatedError.d.ts +4 -0
- package/dist/errors/api/NotAuthenticatedError.js +11 -0
- package/dist/errors/api/NotAuthorizedError.d.ts +4 -0
- package/dist/errors/api/NotAuthorizedError.js +11 -0
- package/dist/errors/api/NotAvailableError.d.ts +4 -0
- package/dist/errors/api/NotAvailableError.js +11 -0
- package/dist/errors/api/NotFoundError.d.ts +4 -0
- package/dist/errors/api/NotFoundError.js +11 -0
- package/dist/errors/api/NotImplementedError.d.ts +4 -0
- package/dist/errors/api/NotImplementedError.js +11 -0
- package/dist/errors/api/OfflineError.d.ts +4 -0
- package/dist/errors/api/OfflineError.js +11 -0
- package/dist/errors/api/RangeError.d.ts +4 -0
- package/dist/errors/api/RangeError.js +11 -0
- package/dist/errors/api/ServerError.d.ts +4 -0
- package/dist/errors/api/ServerError.js +11 -0
- package/dist/errors/api/TimeoutError.d.ts +4 -0
- package/dist/errors/api/TimeoutError.js +11 -0
- package/dist/errors/api/index.d.ts +16 -0
- package/dist/errors/api/index.js +32 -0
- package/dist/errors/index.d.ts +5 -0
- package/dist/errors/index.js +26 -0
- package/dist/forms/FormModel.d.ts +47 -0
- package/dist/forms/FormModel.js +149 -0
- package/dist/forms/Forms.d.ts +15 -0
- package/dist/forms/Forms.js +35 -0
- package/dist/forms/IFormService.d.ts +6 -0
- package/dist/forms/IFormService.js +2 -0
- package/dist/forms/TranslateSchema.d.ts +8 -0
- package/dist/forms/TranslateSchema.js +2 -0
- package/dist/forms/index.d.ts +4 -0
- package/dist/forms/index.js +20 -0
- package/dist/index.d.ts +10 -0
- package/dist/index.js +49 -0
- package/dist/regionalization/Country.d.ts +266 -0
- package/dist/regionalization/Country.js +338 -0
- package/dist/regionalization/Language.d.ts +199 -0
- package/dist/regionalization/Language.js +237 -0
- package/dist/regionalization/Locale.d.ts +28 -0
- package/dist/regionalization/Locale.js +49 -0
- package/dist/regionalization/Localized.d.ts +10 -0
- package/dist/regionalization/Localized.js +36 -0
- package/dist/regionalization/LocalizedCopy.d.ts +9 -0
- package/dist/regionalization/LocalizedCopy.js +26 -0
- package/dist/regionalization/Regionalization.d.ts +50 -0
- package/dist/regionalization/Regionalization.js +260 -0
- package/dist/regionalization/Regions.d.ts +2 -0
- package/dist/regionalization/Regions.js +2 -0
- package/dist/regionalization/index.d.ts +7 -0
- package/dist/regionalization/index.js +23 -0
- package/dist/schema/Asset.d.ts +23 -0
- package/dist/schema/Asset.js +36 -0
- package/dist/schema/AssetScope.d.ts +75 -0
- package/dist/schema/AssetScope.js +146 -0
- package/dist/schema/Block.d.ts +105 -0
- package/dist/schema/Block.js +122 -0
- package/dist/schema/ChangeSet.d.ts +108 -0
- package/dist/schema/ChangeSet.js +187 -0
- package/dist/schema/Collection.d.ts +197 -0
- package/dist/schema/Collection.js +165 -0
- package/dist/schema/CollectionModel.d.ts +30 -0
- package/dist/schema/CollectionModel.js +383 -0
- package/dist/schema/CollectionSnapshot.d.ts +11 -0
- package/dist/schema/CollectionSnapshot.js +12 -0
- package/dist/schema/Fields.d.ts +31 -0
- package/dist/schema/Fields.js +21 -0
- package/dist/schema/Form.d.ts +31 -0
- package/dist/schema/Form.js +23 -0
- package/dist/schema/LinkedCollectionModel.d.ts +9 -0
- package/dist/schema/LinkedCollectionModel.js +19 -0
- package/dist/schema/LinkedData.d.ts +44 -0
- package/dist/schema/LinkedData.js +288 -0
- package/dist/schema/LinkedPageModel.d.ts +11 -0
- package/dist/schema/LinkedPageModel.js +26 -0
- package/dist/schema/Optional.d.ts +23 -0
- package/dist/schema/Optional.js +34 -0
- package/dist/schema/Page.d.ts +299 -0
- package/dist/schema/Page.js +244 -0
- package/dist/schema/PageModel.d.ts +58 -0
- package/dist/schema/PageModel.js +881 -0
- package/dist/schema/PageQuery.d.ts +60 -0
- package/dist/schema/PageQuery.js +116 -0
- package/dist/schema/PageRoute.d.ts +7 -0
- package/dist/schema/PageRoute.js +48 -0
- package/dist/schema/PageSnapshot.d.ts +11 -0
- package/dist/schema/PageSnapshot.js +12 -0
- package/dist/schema/Section.d.ts +71 -0
- package/dist/schema/Section.js +35 -0
- package/dist/schema/Seo.d.ts +13 -0
- package/dist/schema/Seo.js +25 -0
- package/dist/schema/Site.d.ts +40 -0
- package/dist/schema/Site.js +87 -0
- package/dist/schema/SiteModel.d.ts +5 -0
- package/dist/schema/SiteModel.js +10 -0
- package/dist/schema/Tag.d.ts +28 -0
- package/dist/schema/Tag.js +59 -0
- package/dist/schema/TagGroup.d.ts +26 -0
- package/dist/schema/TagGroup.js +64 -0
- package/dist/schema/field/Field.d.ts +179 -0
- package/dist/schema/field/Field.js +309 -0
- package/dist/schema/field/base/AssetField.d.ts +148 -0
- package/dist/schema/field/base/AssetField.js +206 -0
- package/dist/schema/field/base/BooleanField.d.ts +21 -0
- package/dist/schema/field/base/BooleanField.js +38 -0
- package/dist/schema/field/base/CollectionField.d.ts +34 -0
- package/dist/schema/field/base/CollectionField.js +85 -0
- package/dist/schema/field/base/DateField.d.ts +21 -0
- package/dist/schema/field/base/DateField.js +37 -0
- package/dist/schema/field/base/DynamicPagesField.d.ts +36 -0
- package/dist/schema/field/base/DynamicPagesField.js +50 -0
- package/dist/schema/field/base/EmbeddedVideoField.d.ts +45 -0
- package/dist/schema/field/base/EmbeddedVideoField.js +176 -0
- package/dist/schema/field/base/EnumField.d.ts +40 -0
- package/dist/schema/field/base/EnumField.js +131 -0
- package/dist/schema/field/base/FormField.d.ts +25 -0
- package/dist/schema/field/base/FormField.js +48 -0
- package/dist/schema/field/base/LinkField.d.ts +103 -0
- package/dist/schema/field/base/LinkField.js +201 -0
- package/dist/schema/field/base/PageField.d.ts +46 -0
- package/dist/schema/field/base/PageField.js +83 -0
- package/dist/schema/field/base/RichTextField.d.ts +71 -0
- package/dist/schema/field/base/RichTextField.js +196 -0
- package/dist/schema/field/base/TextField.d.ts +33 -0
- package/dist/schema/field/base/TextField.js +86 -0
- package/dist/schema/field/base/TimestampField.d.ts +25 -0
- package/dist/schema/field/base/TimestampField.js +41 -0
- package/dist/schema/field/base/index.d.ts +13 -0
- package/dist/schema/field/base/index.js +29 -0
- package/dist/schema/field/composite/ListField.d.ts +47 -0
- package/dist/schema/field/composite/ListField.js +107 -0
- package/dist/schema/field/composite/ObjectField.d.ts +56 -0
- package/dist/schema/field/composite/ObjectField.js +19 -0
- package/dist/schema/field/composite/index.d.ts +2 -0
- package/dist/schema/field/composite/index.js +18 -0
- package/dist/schema/field/index.d.ts +3 -0
- package/dist/schema/field/index.js +19 -0
- package/dist/schema/index.d.ts +25 -0
- package/dist/schema/index.js +41 -0
- package/dist/services/EventBus.d.ts +17 -0
- package/dist/services/EventBus.js +37 -0
- package/dist/services/humanVerification/IHumanVerification.d.ts +8 -0
- package/dist/services/humanVerification/IHumanVerification.js +2 -0
- package/dist/services/humanVerification/index.d.ts +1 -0
- package/dist/services/humanVerification/index.js +17 -0
- package/dist/services/index.d.ts +3 -0
- package/dist/services/index.js +19 -0
- package/dist/services/leadGen/Contact.d.ts +40 -0
- package/dist/services/leadGen/Contact.js +38 -0
- package/dist/services/leadGen/ILeadGen.d.ts +16 -0
- package/dist/services/leadGen/ILeadGen.js +2 -0
- package/dist/services/leadGen/index.d.ts +2 -0
- package/dist/services/leadGen/index.js +18 -0
- package/dist/types/BoxedValue.d.ts +3 -0
- package/dist/types/BoxedValue.js +2 -0
- package/dist/types/Callback.d.ts +9 -0
- package/dist/types/Callback.js +2 -0
- package/dist/types/DateString.d.ts +35 -0
- package/dist/types/DateString.js +172 -0
- package/dist/types/FilterConditionally.d.ts +3 -0
- package/dist/types/FilterConditionally.js +2 -0
- package/dist/types/MaybeConditionalValue.d.ts +8 -0
- package/dist/types/MaybeConditionalValue.js +12 -0
- package/dist/types/Ordinal.d.ts +17 -0
- package/dist/types/Ordinal.js +38 -0
- package/dist/types/OverridableStringUnion.d.ts +2 -0
- package/dist/types/OverridableStringUnion.js +2 -0
- package/dist/types/PartialBy.d.ts +1 -0
- package/dist/types/PartialBy.js +2 -0
- package/dist/types/PickData.d.ts +6 -0
- package/dist/types/PickData.js +2 -0
- package/dist/types/Provider.d.ts +4 -0
- package/dist/types/Provider.js +2 -0
- package/dist/types/RequiredBy.d.ts +1 -0
- package/dist/types/RequiredBy.js +2 -0
- package/dist/types/Result.d.ts +16 -0
- package/dist/types/Result.js +2 -0
- package/dist/types/Timestamp.d.ts +17 -0
- package/dist/types/Timestamp.js +57 -0
- package/dist/types/Transform.d.ts +4 -0
- package/dist/types/Transform.js +2 -0
- package/dist/types/index.d.ts +14 -0
- package/dist/types/index.js +30 -0
- package/dist/ui/Accessible.d.ts +5 -0
- package/dist/ui/Accessible.js +15 -0
- package/dist/ui/BlockThemes.d.ts +19 -0
- package/dist/ui/BlockThemes.js +29 -0
- package/dist/ui/ColorMode.d.ts +12 -0
- package/dist/ui/ColorMode.js +49 -0
- package/dist/ui/File.d.ts +43 -0
- package/dist/ui/File.js +55 -0
- package/dist/ui/FileType.d.ts +8 -0
- package/dist/ui/FileType.js +48 -0
- package/dist/ui/ImageSource.d.ts +12 -0
- package/dist/ui/ImageSource.js +48 -0
- package/dist/ui/MimeType.d.ts +28 -0
- package/dist/ui/MimeType.js +110 -0
- package/dist/ui/Placement.d.ts +21 -0
- package/dist/ui/Placement.js +135 -0
- package/dist/ui/Position.d.ts +6 -0
- package/dist/ui/Position.js +42 -0
- package/dist/ui/Selector.d.ts +6 -0
- package/dist/ui/Selector.js +23 -0
- package/dist/ui/SemanticColor.d.ts +8 -0
- package/dist/ui/SemanticColor.js +237 -0
- package/dist/ui/Visual.d.ts +24 -0
- package/dist/ui/Visual.js +66 -0
- package/dist/ui/block-layout/BlockLayout.d.ts +99 -0
- package/dist/ui/block-layout/BlockLayout.js +286 -0
- package/dist/ui/block-layout/index.d.ts +1 -0
- package/dist/ui/block-layout/index.js +17 -0
- package/dist/ui/browser/BlurHasher.d.ts +13 -0
- package/dist/ui/browser/BlurHasher.js +76 -0
- package/dist/ui/browser/Browser.d.ts +107 -0
- package/dist/ui/browser/Browser.js +313 -0
- package/dist/ui/browser/ImageProxy.d.ts +30 -0
- package/dist/ui/browser/ImageProxy.js +132 -0
- package/dist/ui/browser/InputEvent.d.ts +13 -0
- package/dist/ui/browser/InputEvent.js +2 -0
- package/dist/ui/browser/SVGProxy.d.ts +9 -0
- package/dist/ui/browser/SVGProxy.js +59 -0
- package/dist/ui/browser/VideoProxy.d.ts +42 -0
- package/dist/ui/browser/VideoProxy.js +235 -0
- package/dist/ui/browser/index.d.ts +6 -0
- package/dist/ui/browser/index.js +22 -0
- package/dist/ui/fields/Field.d.ts +80 -0
- package/dist/ui/fields/Field.js +298 -0
- package/dist/ui/fields/FieldList.d.ts +80 -0
- package/dist/ui/fields/FieldList.js +421 -0
- package/dist/ui/fields/FieldListValidator.d.ts +9 -0
- package/dist/ui/fields/FieldListValidator.js +37 -0
- package/dist/ui/fields/FieldModel.d.ts +15 -0
- package/dist/ui/fields/FieldModel.js +28 -0
- package/dist/ui/fields/FieldSerializer.d.ts +13 -0
- package/dist/ui/fields/FieldSerializer.js +71 -0
- package/dist/ui/fields/FieldValidator.d.ts +19 -0
- package/dist/ui/fields/FieldValidator.js +98 -0
- package/dist/ui/fields/ObjectField.d.ts +75 -0
- package/dist/ui/fields/ObjectField.js +288 -0
- package/dist/ui/fields/errors.json +44 -0
- package/dist/ui/fields/index.d.ts +7 -0
- package/dist/ui/fields/index.js +23 -0
- package/dist/ui/fields/validators/AssetValidator.d.ts +9 -0
- package/dist/ui/fields/validators/AssetValidator.js +25 -0
- package/dist/ui/fields/validators/DateValidator.d.ts +9 -0
- package/dist/ui/fields/validators/DateValidator.js +41 -0
- package/dist/ui/fields/validators/EnumValidator.d.ts +10 -0
- package/dist/ui/fields/validators/EnumValidator.js +77 -0
- package/dist/ui/fields/validators/GenericValidator.d.ts +6 -0
- package/dist/ui/fields/validators/GenericValidator.js +22 -0
- package/dist/ui/fields/validators/LinkValidator.d.ts +9 -0
- package/dist/ui/fields/validators/LinkValidator.js +146 -0
- package/dist/ui/fields/validators/RichTextValidator.d.ts +6 -0
- package/dist/ui/fields/validators/RichTextValidator.js +35 -0
- package/dist/ui/fields/validators/TextValidator.d.ts +10 -0
- package/dist/ui/fields/validators/TextValidator.js +138 -0
- package/dist/ui/fields/validators/TimestampValidator.d.ts +9 -0
- package/dist/ui/fields/validators/TimestampValidator.js +41 -0
- package/dist/ui/fields/validators/ValidatorHelper.d.ts +23 -0
- package/dist/ui/fields/validators/ValidatorHelper.js +55 -0
- package/dist/ui/fields/validators/index.d.ts +8 -0
- package/dist/ui/fields/validators/index.js +24 -0
- package/dist/ui/geometry/AspectRatio.d.ts +27 -0
- package/dist/ui/geometry/AspectRatio.js +77 -0
- package/dist/ui/geometry/Bounds.d.ts +4 -0
- package/dist/ui/geometry/Bounds.js +11 -0
- package/dist/ui/geometry/Frame.d.ts +3 -0
- package/dist/ui/geometry/Frame.js +2 -0
- package/dist/ui/geometry/Insets.d.ts +14 -0
- package/dist/ui/geometry/Insets.js +14 -0
- package/dist/ui/geometry/PixelSize.d.ts +1 -0
- package/dist/ui/geometry/PixelSize.js +2 -0
- package/dist/ui/geometry/Point.d.ts +7 -0
- package/dist/ui/geometry/Point.js +15 -0
- package/dist/ui/geometry/Rect.d.ts +19 -0
- package/dist/ui/geometry/Rect.js +68 -0
- package/dist/ui/geometry/ScreenSize.d.ts +1 -0
- package/dist/ui/geometry/ScreenSize.js +2 -0
- package/dist/ui/geometry/Size.d.ts +7 -0
- package/dist/ui/geometry/Size.js +9 -0
- package/dist/ui/geometry/index.d.ts +9 -0
- package/dist/ui/geometry/index.js +25 -0
- package/dist/ui/index.d.ts +18 -0
- package/dist/ui/index.js +34 -0
- package/dist/ui/responsive/Breakpoint.d.ts +8 -0
- package/dist/ui/responsive/Breakpoint.js +24 -0
- package/dist/ui/responsive/BreakpointObserver.d.ts +16 -0
- package/dist/ui/responsive/BreakpointObserver.js +104 -0
- package/dist/ui/responsive/Breakpoints.d.ts +5 -0
- package/dist/ui/responsive/Breakpoints.js +15 -0
- package/dist/ui/responsive/ResponsiveValue.d.ts +7 -0
- package/dist/ui/responsive/ResponsiveValue.js +26 -0
- package/dist/ui/responsive/index.d.ts +4 -0
- package/dist/ui/responsive/index.js +20 -0
- package/dist/ui/richtext/LexicalUtils.d.ts +31 -0
- package/dist/ui/richtext/LexicalUtils.js +314 -0
- package/dist/ui/richtext/StyledTextNode.d.ts +33 -0
- package/dist/ui/richtext/StyledTextNode.js +101 -0
- package/dist/ui/richtext/index.d.ts +2 -0
- package/dist/ui/richtext/index.js +18 -0
- package/dist/utils/ArrayUtils.d.ts +17 -0
- package/dist/utils/ArrayUtils.js +66 -0
- package/dist/utils/ByteSize.d.ts +19 -0
- package/dist/utils/ByteSize.js +33 -0
- package/dist/utils/DateUtils.d.ts +15 -0
- package/dist/utils/DateUtils.js +100 -0
- package/dist/utils/Deferral.d.ts +28 -0
- package/dist/utils/Deferral.js +107 -0
- package/dist/utils/Duration.d.ts +7 -0
- package/dist/utils/Duration.js +35 -0
- package/dist/utils/Fn.d.ts +14 -0
- package/dist/utils/Fn.js +52 -0
- package/dist/utils/ObjectUtils.d.ts +89 -0
- package/dist/utils/ObjectUtils.js +159 -0
- package/dist/utils/Random.d.ts +15 -0
- package/dist/utils/Random.js +72 -0
- package/dist/utils/StringUtils.d.ts +10 -0
- package/dist/utils/StringUtils.js +51 -0
- package/dist/utils/UrlUtils.d.ts +22 -0
- package/dist/utils/UrlUtils.js +119 -0
- package/dist/utils/Value.d.ts +23 -0
- package/dist/utils/Value.js +122 -0
- package/dist/utils/index.d.ts +12 -0
- package/dist/utils/index.js +28 -0
- package/dist/utils/isDefined.d.ts +1 -0
- package/dist/utils/isDefined.js +6 -0
- 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,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,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);
|
package/dist/index.d.ts
ADDED
|
@@ -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
|
+
}
|