@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,50 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.DynamicPagesField = void 0;
|
|
4
|
+
const index_1 = require("../index");
|
|
5
|
+
// class
|
|
6
|
+
class DynamicPagesField extends index_1.Field {
|
|
7
|
+
constructor(args) {
|
|
8
|
+
var _a;
|
|
9
|
+
// construct base
|
|
10
|
+
super(args);
|
|
11
|
+
this.type = 'dynamic.pages';
|
|
12
|
+
// initialize instance variables
|
|
13
|
+
this.types = (_a = args.types) !== null && _a !== void 0 ? _a : 'all';
|
|
14
|
+
this.size = args.size;
|
|
15
|
+
}
|
|
16
|
+
get schema() {
|
|
17
|
+
return {
|
|
18
|
+
types: this.types,
|
|
19
|
+
size: this.size
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
modify(args) {
|
|
23
|
+
return new DynamicPagesField(Object.assign({ name: this.name, hint: this.hint, description: this.description, required: this.required, types: this.types, size: this.size }, args));
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
exports.DynamicPagesField = DynamicPagesField;
|
|
27
|
+
// extension
|
|
28
|
+
(function (DynamicPagesField) {
|
|
29
|
+
let Value;
|
|
30
|
+
(function (Value) {
|
|
31
|
+
// serialization
|
|
32
|
+
function fromData(data) {
|
|
33
|
+
return data === null || data === void 0 ? void 0 : data.value;
|
|
34
|
+
}
|
|
35
|
+
Value.fromData = fromData;
|
|
36
|
+
function toData(value) {
|
|
37
|
+
return {
|
|
38
|
+
type: 'dynamic.pages',
|
|
39
|
+
value
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
Value.toData = toData;
|
|
43
|
+
function coerceData(value) {
|
|
44
|
+
return value === undefined
|
|
45
|
+
? undefined
|
|
46
|
+
: toData(value);
|
|
47
|
+
}
|
|
48
|
+
Value.coerceData = coerceData;
|
|
49
|
+
})(Value = DynamicPagesField.Value || (DynamicPagesField.Value = {}));
|
|
50
|
+
})(DynamicPagesField || (exports.DynamicPagesField = DynamicPagesField = {}));
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Field } from '../index';
|
|
2
|
+
export declare class EmbeddedVideoField extends Field<EmbeddedVideoField> {
|
|
3
|
+
readonly type: "embedded.video";
|
|
4
|
+
readonly allowMuting: boolean;
|
|
5
|
+
constructor({ allowMuting, ...args }: EmbeddedVideoField.ConstructorArgs);
|
|
6
|
+
modify(args: EmbeddedVideoField.ModifyArgs): EmbeddedVideoField;
|
|
7
|
+
}
|
|
8
|
+
export declare namespace EmbeddedVideoField {
|
|
9
|
+
type Source = 'youtube' | 'vimeo';
|
|
10
|
+
namespace Source {
|
|
11
|
+
const values: ReadonlyArray<Source>;
|
|
12
|
+
function filter(value: any): value is Source;
|
|
13
|
+
}
|
|
14
|
+
type Value = Value.Youtube | Value.Vimeo;
|
|
15
|
+
namespace Value {
|
|
16
|
+
type Youtube = {
|
|
17
|
+
type: 'youtube';
|
|
18
|
+
videoId: string;
|
|
19
|
+
thumbUrl: string;
|
|
20
|
+
muted?: boolean;
|
|
21
|
+
};
|
|
22
|
+
namespace Youtube {
|
|
23
|
+
function filter(data: Value): data is Youtube;
|
|
24
|
+
}
|
|
25
|
+
type Vimeo = {
|
|
26
|
+
type: 'vimeo';
|
|
27
|
+
videoId: string;
|
|
28
|
+
thumbUrl: string;
|
|
29
|
+
hash?: string;
|
|
30
|
+
muted?: boolean;
|
|
31
|
+
};
|
|
32
|
+
namespace Vimeo {
|
|
33
|
+
function filter(data: Value): data is Vimeo;
|
|
34
|
+
}
|
|
35
|
+
function filter(value: any): value is Value;
|
|
36
|
+
function fromData(data: Field.Data<EmbeddedVideoField>): Value;
|
|
37
|
+
function toData(value: Value): Field.Data<EmbeddedVideoField>;
|
|
38
|
+
function fromUrl(url?: URL): Value | undefined;
|
|
39
|
+
function toUrl(value: Value, type?: 'watch' | 'embed'): URL;
|
|
40
|
+
}
|
|
41
|
+
type ConstructorArgs = Field.ConstructorArgs & {
|
|
42
|
+
allowMuting?: boolean;
|
|
43
|
+
};
|
|
44
|
+
type ModifyArgs = Omit<Partial<ConstructorArgs>, 'required'>;
|
|
45
|
+
}
|
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.EmbeddedVideoField = void 0;
|
|
15
|
+
const index_1 = require("../index");
|
|
16
|
+
// class
|
|
17
|
+
class EmbeddedVideoField extends index_1.Field {
|
|
18
|
+
constructor(_a) {
|
|
19
|
+
var { allowMuting = true } = _a, args = __rest(_a, ["allowMuting"]);
|
|
20
|
+
// construct base
|
|
21
|
+
super(args);
|
|
22
|
+
this.type = 'embedded.video';
|
|
23
|
+
// initialize instance variables
|
|
24
|
+
this.allowMuting = allowMuting;
|
|
25
|
+
}
|
|
26
|
+
modify(args) {
|
|
27
|
+
return new EmbeddedVideoField(Object.assign({ name: this.name, hint: this.hint, description: this.description, required: this.required, allowMuting: this.allowMuting }, args));
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.EmbeddedVideoField = EmbeddedVideoField;
|
|
31
|
+
// extension
|
|
32
|
+
(function (EmbeddedVideoField) {
|
|
33
|
+
let Source;
|
|
34
|
+
(function (Source) {
|
|
35
|
+
// values
|
|
36
|
+
Source.values = [
|
|
37
|
+
'youtube', 'vimeo'
|
|
38
|
+
];
|
|
39
|
+
// methods
|
|
40
|
+
function filter(value) {
|
|
41
|
+
return !!value
|
|
42
|
+
&& typeof value === 'string'
|
|
43
|
+
&& Source.values.includes(value);
|
|
44
|
+
}
|
|
45
|
+
Source.filter = filter;
|
|
46
|
+
})(Source = EmbeddedVideoField.Source || (EmbeddedVideoField.Source = {}));
|
|
47
|
+
let Value;
|
|
48
|
+
(function (Value) {
|
|
49
|
+
let Youtube;
|
|
50
|
+
(function (Youtube) {
|
|
51
|
+
// guards
|
|
52
|
+
function filter(data) {
|
|
53
|
+
return data.type === 'youtube';
|
|
54
|
+
}
|
|
55
|
+
Youtube.filter = filter;
|
|
56
|
+
})(Youtube = Value.Youtube || (Value.Youtube = {}));
|
|
57
|
+
let Vimeo;
|
|
58
|
+
(function (Vimeo) {
|
|
59
|
+
// guard
|
|
60
|
+
function filter(data) {
|
|
61
|
+
return data.type === 'vimeo';
|
|
62
|
+
}
|
|
63
|
+
Vimeo.filter = filter;
|
|
64
|
+
})(Vimeo = Value.Vimeo || (Value.Vimeo = {}));
|
|
65
|
+
// guard
|
|
66
|
+
function filter(value) {
|
|
67
|
+
return !!value
|
|
68
|
+
&& typeof value === 'object'
|
|
69
|
+
&& !Array.isArray(value)
|
|
70
|
+
&& 'type' in value && !!value.type && typeof value.type === 'string' && Source.filter(value.type)
|
|
71
|
+
&& 'videoId' in value && !!value.videoId && typeof value.videoId === 'string';
|
|
72
|
+
}
|
|
73
|
+
Value.filter = filter;
|
|
74
|
+
// serialization
|
|
75
|
+
function fromData(data) {
|
|
76
|
+
return data.value;
|
|
77
|
+
}
|
|
78
|
+
Value.fromData = fromData;
|
|
79
|
+
function toData(value) {
|
|
80
|
+
return {
|
|
81
|
+
type: 'embedded.video',
|
|
82
|
+
value
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
Value.toData = toData;
|
|
86
|
+
function fromUrl(url) {
|
|
87
|
+
var _a, _b, _c, _d, _e, _f;
|
|
88
|
+
// skip if there's no url
|
|
89
|
+
if (!url) {
|
|
90
|
+
return undefined;
|
|
91
|
+
}
|
|
92
|
+
// evaluate url
|
|
93
|
+
const { hostname, pathname, searchParams } = url;
|
|
94
|
+
const pathComponents = pathname.substring(1).split('/');
|
|
95
|
+
switch (hostname.toLowerCase()) {
|
|
96
|
+
// youtube
|
|
97
|
+
case 'youtube.com':
|
|
98
|
+
case 'www.youtube.com':
|
|
99
|
+
case 'm.youtube.com': {
|
|
100
|
+
const action = (_b = (_a = pathComponents[0]) === null || _a === void 0 ? void 0 : _a.toLowerCase()) !== null && _b !== void 0 ? _b : '';
|
|
101
|
+
if (action === 'embed' && pathComponents.length > 1) {
|
|
102
|
+
return {
|
|
103
|
+
type: 'youtube',
|
|
104
|
+
videoId: pathComponents[1],
|
|
105
|
+
thumbUrl: ''
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
else if (action === 'watch') {
|
|
109
|
+
const videoId = searchParams.get('v');
|
|
110
|
+
return videoId
|
|
111
|
+
?
|
|
112
|
+
{
|
|
113
|
+
type: 'youtube',
|
|
114
|
+
videoId,
|
|
115
|
+
thumbUrl: ''
|
|
116
|
+
}
|
|
117
|
+
: undefined;
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
return undefined;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
// vimeo
|
|
124
|
+
case 'vimeo.com':
|
|
125
|
+
case 'www.vimeo.com': {
|
|
126
|
+
const [videoId] = pathComponents;
|
|
127
|
+
const hash = (_c = searchParams.get('h')) !== null && _c !== void 0 ? _c : undefined;
|
|
128
|
+
return videoId
|
|
129
|
+
?
|
|
130
|
+
{
|
|
131
|
+
type: 'vimeo',
|
|
132
|
+
videoId,
|
|
133
|
+
thumbUrl: '',
|
|
134
|
+
hash
|
|
135
|
+
}
|
|
136
|
+
: undefined;
|
|
137
|
+
}
|
|
138
|
+
case 'player.vimeo.com': {
|
|
139
|
+
const action = (_e = (_d = pathComponents[0]) === null || _d === void 0 ? void 0 : _d.toLowerCase()) !== null && _e !== void 0 ? _e : '';
|
|
140
|
+
if (action === 'video' && pathComponents.length > 1) {
|
|
141
|
+
const hash = (_f = searchParams.get('h')) !== null && _f !== void 0 ? _f : undefined;
|
|
142
|
+
return {
|
|
143
|
+
type: 'vimeo',
|
|
144
|
+
videoId: pathComponents[1],
|
|
145
|
+
thumbUrl: '',
|
|
146
|
+
hash
|
|
147
|
+
};
|
|
148
|
+
}
|
|
149
|
+
else {
|
|
150
|
+
return undefined;
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
// or fail
|
|
154
|
+
default:
|
|
155
|
+
return undefined;
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
Value.fromUrl = fromUrl;
|
|
159
|
+
function toUrl(value, type = 'embed') {
|
|
160
|
+
switch (value.type) {
|
|
161
|
+
case 'youtube':
|
|
162
|
+
return new URL(type === 'embed'
|
|
163
|
+
? `https://www.youtube.com/embed/${value.videoId}`
|
|
164
|
+
: `https://www.youtube.com/watch?v=${encodeURI(value.videoId)}`);
|
|
165
|
+
case 'vimeo': {
|
|
166
|
+
const url = new URL(`https://player.vimeo.com/video/${value.videoId}`);
|
|
167
|
+
if (value.hash) {
|
|
168
|
+
url.searchParams.append('h', value.hash);
|
|
169
|
+
}
|
|
170
|
+
return url;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
Value.toUrl = toUrl;
|
|
175
|
+
})(Value = EmbeddedVideoField.Value || (EmbeddedVideoField.Value = {}));
|
|
176
|
+
})(EmbeddedVideoField || (exports.EmbeddedVideoField = EmbeddedVideoField = {}));
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { StringKeyOf } from 'type-fest';
|
|
2
|
+
import { Field } from '../index';
|
|
3
|
+
export declare class EnumField<TOptions extends EnumField.Options = EnumField.Options> extends Field<EnumField<TOptions>> {
|
|
4
|
+
readonly type: "enum";
|
|
5
|
+
readonly semantics: EnumField.Semantics;
|
|
6
|
+
readonly options: TOptions;
|
|
7
|
+
readonly defaultOption?: StringKeyOf<TOptions>;
|
|
8
|
+
constructor(args: EnumField.ConstructorArgs<TOptions>);
|
|
9
|
+
get enum(): EnumField.Enum<TOptions>[];
|
|
10
|
+
modify({ options, ...args }: EnumField.ModifyArgs<TOptions>): EnumField<TOptions>;
|
|
11
|
+
updateOptions(options: Partial<TOptions>): EnumField<TOptions>;
|
|
12
|
+
removeOption<TKey extends StringKeyOf<TOptions>>(key: TKey): EnumField<TOptions>;
|
|
13
|
+
removeOptions<TKey extends StringKeyOf<TOptions>>(...keys: ReadonlyArray<TKey>): EnumField<TOptions>;
|
|
14
|
+
keepOptions<TKey extends StringKeyOf<TOptions>>(...keys: ReadonlyArray<TKey>): EnumField<TOptions>;
|
|
15
|
+
isValidOption<TKey extends StringKeyOf<TOptions>>(key: TKey | undefined): boolean;
|
|
16
|
+
setDefault<TKey extends StringKeyOf<TOptions>>(key: TKey | undefined): EnumField<TOptions>;
|
|
17
|
+
}
|
|
18
|
+
export declare namespace EnumField {
|
|
19
|
+
type Value<TField extends EnumField> = StringKeyOf<TField['options']>;
|
|
20
|
+
namespace Value {
|
|
21
|
+
function fromData<TField extends EnumField>(data: Field.Data<TField> | undefined): Value<TField>;
|
|
22
|
+
function toData<TField extends EnumField>(value: Value<TField>): Field.Data<EnumField>;
|
|
23
|
+
}
|
|
24
|
+
type ConstructorArgs<TOptions extends Options> = Field.ConstructorArgs & {
|
|
25
|
+
semantics?: Semantics;
|
|
26
|
+
options: TOptions;
|
|
27
|
+
defaultOption?: StringKeyOf<TOptions>;
|
|
28
|
+
};
|
|
29
|
+
type Enum<TOptions extends Options> = StringKeyOf<TOptions>;
|
|
30
|
+
type Options<TOption extends string = string> = Record<TOption, Readonly<Option>>;
|
|
31
|
+
type Option = {
|
|
32
|
+
name: string;
|
|
33
|
+
hint?: string;
|
|
34
|
+
hidden?: true;
|
|
35
|
+
};
|
|
36
|
+
type Semantics = 'dropdown' | 'radio' | 'segmented';
|
|
37
|
+
type ModifyArgs<TOptions extends Options> = Omit<Partial<ConstructorArgs<TOptions>>, 'required' | 'options'> & {
|
|
38
|
+
options?: Partial<TOptions>;
|
|
39
|
+
};
|
|
40
|
+
}
|
|
@@ -0,0 +1,131 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.EnumField = void 0;
|
|
15
|
+
const index_1 = require("../index");
|
|
16
|
+
// class
|
|
17
|
+
class EnumField extends index_1.Field {
|
|
18
|
+
constructor(args) {
|
|
19
|
+
var _a;
|
|
20
|
+
// construct base
|
|
21
|
+
super(args);
|
|
22
|
+
this.type = 'enum';
|
|
23
|
+
// initialize instance variables
|
|
24
|
+
this.semantics = (_a = args.semantics) !== null && _a !== void 0 ? _a : 'dropdown';
|
|
25
|
+
this.options = args.options;
|
|
26
|
+
this.defaultOption = args.defaultOption;
|
|
27
|
+
}
|
|
28
|
+
get enum() {
|
|
29
|
+
return Object.keys(this.options);
|
|
30
|
+
}
|
|
31
|
+
modify(_a) {
|
|
32
|
+
var _b;
|
|
33
|
+
var { options } = _a, args = __rest(_a, ["options"]);
|
|
34
|
+
return new EnumField(Object.assign({ semantics: this.semantics, name: this.name, hint: this.hint, description: this.description, required: this.required, options: (_b = options) !== null && _b !== void 0 ? _b : this.options, defaultOption: this.defaultOption }, args));
|
|
35
|
+
}
|
|
36
|
+
updateOptions(options) {
|
|
37
|
+
return new EnumField({
|
|
38
|
+
semantics: this.semantics,
|
|
39
|
+
name: this.name,
|
|
40
|
+
hint: this.hint,
|
|
41
|
+
description: this.description,
|
|
42
|
+
required: this.required,
|
|
43
|
+
options: Object.assign(Object.assign({}, this.options), options),
|
|
44
|
+
defaultOption: this.defaultOption
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
removeOption(key) {
|
|
48
|
+
return this.removeOptions(key);
|
|
49
|
+
}
|
|
50
|
+
removeOptions(...keys) {
|
|
51
|
+
// prune options
|
|
52
|
+
const prunedOptions = Object.assign({}, this.options);
|
|
53
|
+
keys.forEach(key => {
|
|
54
|
+
delete prunedOptions[key];
|
|
55
|
+
});
|
|
56
|
+
// create new enum
|
|
57
|
+
const { defaultOption } = this;
|
|
58
|
+
return new EnumField({
|
|
59
|
+
semantics: this.semantics,
|
|
60
|
+
name: this.name,
|
|
61
|
+
hint: this.hint,
|
|
62
|
+
description: this.description,
|
|
63
|
+
required: this.required,
|
|
64
|
+
options: prunedOptions,
|
|
65
|
+
defaultOption: defaultOption === undefined || defaultOption in prunedOptions
|
|
66
|
+
? defaultOption
|
|
67
|
+
: Object.keys(prunedOptions)[0]
|
|
68
|
+
});
|
|
69
|
+
}
|
|
70
|
+
keepOptions(...keys) {
|
|
71
|
+
// prune options
|
|
72
|
+
const { defaultOption, options: allOptions } = this;
|
|
73
|
+
const prunedOptions = Object.entries(allOptions)
|
|
74
|
+
.reduce((options, [key, option]) => {
|
|
75
|
+
// add option if it's in the set
|
|
76
|
+
if (keys.includes(key)) {
|
|
77
|
+
options[key] = option;
|
|
78
|
+
}
|
|
79
|
+
// keep reducing
|
|
80
|
+
return options;
|
|
81
|
+
}, {});
|
|
82
|
+
// create new enum
|
|
83
|
+
return new EnumField({
|
|
84
|
+
semantics: this.semantics,
|
|
85
|
+
name: this.name,
|
|
86
|
+
hint: this.hint,
|
|
87
|
+
description: this.description,
|
|
88
|
+
required: this.required,
|
|
89
|
+
options: prunedOptions,
|
|
90
|
+
defaultOption: defaultOption === undefined || defaultOption in prunedOptions
|
|
91
|
+
? defaultOption
|
|
92
|
+
: Object.keys(prunedOptions)[0]
|
|
93
|
+
});
|
|
94
|
+
}
|
|
95
|
+
isValidOption(key) {
|
|
96
|
+
if (!key) {
|
|
97
|
+
return false;
|
|
98
|
+
}
|
|
99
|
+
return key in this.options;
|
|
100
|
+
}
|
|
101
|
+
setDefault(key) {
|
|
102
|
+
return new EnumField({
|
|
103
|
+
semantics: this.semantics,
|
|
104
|
+
name: this.name,
|
|
105
|
+
hint: this.hint,
|
|
106
|
+
description: this.description,
|
|
107
|
+
required: this.required,
|
|
108
|
+
options: this.options,
|
|
109
|
+
defaultOption: key
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
exports.EnumField = EnumField;
|
|
114
|
+
// extension
|
|
115
|
+
(function (EnumField) {
|
|
116
|
+
let Value;
|
|
117
|
+
(function (Value) {
|
|
118
|
+
// serialization
|
|
119
|
+
function fromData(data) {
|
|
120
|
+
return data === null || data === void 0 ? void 0 : data.value;
|
|
121
|
+
}
|
|
122
|
+
Value.fromData = fromData;
|
|
123
|
+
function toData(value) {
|
|
124
|
+
return {
|
|
125
|
+
type: 'enum',
|
|
126
|
+
value
|
|
127
|
+
};
|
|
128
|
+
}
|
|
129
|
+
Value.toData = toData;
|
|
130
|
+
})(Value = EnumField.Value || (EnumField.Value = {}));
|
|
131
|
+
})(EnumField || (exports.EnumField = EnumField = {}));
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import type { Ordinal } from '../../../types/Ordinal';
|
|
2
|
+
import { Field } from '../index';
|
|
3
|
+
export declare class FormField extends Field<FormField> {
|
|
4
|
+
readonly type: "form";
|
|
5
|
+
readonly formId: string;
|
|
6
|
+
constructor({ formId, ...args }: FormField.ConstructorArgs);
|
|
7
|
+
modify(args: FormField.ModifyArgs): FormField;
|
|
8
|
+
}
|
|
9
|
+
export declare namespace FormField {
|
|
10
|
+
type FieldConfig = Pick<Field.ConstructorArgs, 'name' | 'description' | 'hint'> & {
|
|
11
|
+
order: Ordinal.Id;
|
|
12
|
+
};
|
|
13
|
+
type Value = {
|
|
14
|
+
formId: string;
|
|
15
|
+
fields: Record<string, FieldConfig>;
|
|
16
|
+
};
|
|
17
|
+
namespace Value {
|
|
18
|
+
function fromData(data: Field.Data<FormField> | undefined): Value | undefined;
|
|
19
|
+
function toData(value: Value): Field.Data<FormField>;
|
|
20
|
+
}
|
|
21
|
+
type ConstructorArgs = Field.ConstructorArgs & {
|
|
22
|
+
formId: string;
|
|
23
|
+
};
|
|
24
|
+
type ModifyArgs = Omit<Partial<ConstructorArgs>, 'required'>;
|
|
25
|
+
}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
|
3
|
+
var t = {};
|
|
4
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
5
|
+
t[p] = s[p];
|
|
6
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
7
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
8
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
9
|
+
t[p[i]] = s[p[i]];
|
|
10
|
+
}
|
|
11
|
+
return t;
|
|
12
|
+
};
|
|
13
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
14
|
+
exports.FormField = void 0;
|
|
15
|
+
const index_1 = require("../index");
|
|
16
|
+
// class
|
|
17
|
+
class FormField extends index_1.Field {
|
|
18
|
+
constructor(_a) {
|
|
19
|
+
var { formId } = _a, args = __rest(_a, ["formId"]);
|
|
20
|
+
// construct base
|
|
21
|
+
super(args);
|
|
22
|
+
this.type = 'form';
|
|
23
|
+
// initialize instance variables
|
|
24
|
+
this.formId = formId;
|
|
25
|
+
}
|
|
26
|
+
modify(args) {
|
|
27
|
+
return new FormField(Object.assign({ formId: this.formId, name: this.name, hint: this.hint, description: this.description, required: this.required }, args));
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
exports.FormField = FormField;
|
|
31
|
+
// extension
|
|
32
|
+
(function (FormField) {
|
|
33
|
+
let Value;
|
|
34
|
+
(function (Value) {
|
|
35
|
+
// serialization
|
|
36
|
+
function fromData(data) {
|
|
37
|
+
return data === null || data === void 0 ? void 0 : data.value;
|
|
38
|
+
}
|
|
39
|
+
Value.fromData = fromData;
|
|
40
|
+
function toData(value) {
|
|
41
|
+
return {
|
|
42
|
+
type: 'form',
|
|
43
|
+
value
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
Value.toData = toData;
|
|
47
|
+
})(Value = FormField.Value || (FormField.Value = {}));
|
|
48
|
+
})(FormField || (exports.FormField = FormField = {}));
|
|
@@ -0,0 +1,103 @@
|
|
|
1
|
+
import { MimeType } from '../../../ui';
|
|
2
|
+
import { Page } from '../../Page';
|
|
3
|
+
import { Field, AssetField, PageField } from '../index';
|
|
4
|
+
export declare class LinkField extends Field<LinkField> {
|
|
5
|
+
readonly type: "link";
|
|
6
|
+
readonly allowExternal?: boolean;
|
|
7
|
+
readonly allowEmail?: boolean;
|
|
8
|
+
readonly allowPhone?: boolean;
|
|
9
|
+
readonly internalOptions?: LinkField.InternalArgs;
|
|
10
|
+
readonly fileOptions?: LinkField.FileArgs;
|
|
11
|
+
constructor(args: LinkField.ConstructorArgs);
|
|
12
|
+
get allowInternal(): boolean;
|
|
13
|
+
get allowFile(): boolean;
|
|
14
|
+
modify(args: LinkField.ModifyArgs): LinkField;
|
|
15
|
+
}
|
|
16
|
+
export declare namespace LinkField {
|
|
17
|
+
type LinkType = 'internal' | 'external' | 'email' | 'phone' | 'file';
|
|
18
|
+
namespace LinkType {
|
|
19
|
+
const values: ReadonlyArray<LinkType>;
|
|
20
|
+
function filter(value: any): value is LinkType;
|
|
21
|
+
}
|
|
22
|
+
type Value = Value.Internal | Value.External | Value.Email | Value.Phone | Value.File;
|
|
23
|
+
namespace Value {
|
|
24
|
+
type Type = Value['type'];
|
|
25
|
+
type Internal = {
|
|
26
|
+
type: 'internal';
|
|
27
|
+
label: string;
|
|
28
|
+
page: Field.Data<PageField.Link>;
|
|
29
|
+
};
|
|
30
|
+
namespace Internal {
|
|
31
|
+
function filter(data: Value): data is Internal;
|
|
32
|
+
function fromData(data: Field.Data<LinkField> | undefined): Internal;
|
|
33
|
+
}
|
|
34
|
+
type External = {
|
|
35
|
+
type: 'external';
|
|
36
|
+
label: string;
|
|
37
|
+
url: string;
|
|
38
|
+
};
|
|
39
|
+
namespace External {
|
|
40
|
+
function filter(data: Value): data is External;
|
|
41
|
+
function fromData(data: Field.Data<LinkField> | undefined): External;
|
|
42
|
+
}
|
|
43
|
+
type Email = {
|
|
44
|
+
type: 'email';
|
|
45
|
+
label: string;
|
|
46
|
+
email: string;
|
|
47
|
+
subject?: string;
|
|
48
|
+
};
|
|
49
|
+
namespace Email {
|
|
50
|
+
function filter(data: Value): data is Email;
|
|
51
|
+
function fromData(data: Field.Data<LinkField> | undefined): Email;
|
|
52
|
+
}
|
|
53
|
+
type Phone = {
|
|
54
|
+
type: 'phone';
|
|
55
|
+
label: string;
|
|
56
|
+
number: string;
|
|
57
|
+
};
|
|
58
|
+
namespace Phone {
|
|
59
|
+
function filter(data: Value): data is Phone;
|
|
60
|
+
function fromData(data: Field.Data<LinkField> | undefined): Phone;
|
|
61
|
+
}
|
|
62
|
+
type File = {
|
|
63
|
+
type: 'file';
|
|
64
|
+
label: string;
|
|
65
|
+
file: AssetField.Value;
|
|
66
|
+
action: FileLinkAction;
|
|
67
|
+
};
|
|
68
|
+
namespace File {
|
|
69
|
+
function filter(data: Value): data is File;
|
|
70
|
+
}
|
|
71
|
+
function fromData(data: Field.Data<LinkField>): Value;
|
|
72
|
+
function toData(value: Value): Field.Data<LinkField>;
|
|
73
|
+
function toUrl(value: Exclude<Value, Value.Internal>): string;
|
|
74
|
+
}
|
|
75
|
+
type LinkedValue = LinkedValue.Internal | Value.External | Value.Email | Value.Phone | Value.File;
|
|
76
|
+
namespace LinkedValue {
|
|
77
|
+
type Internal = Omit<Value.Internal, 'page'> & {
|
|
78
|
+
page: Field.LinkedData<PageField.Link>;
|
|
79
|
+
};
|
|
80
|
+
}
|
|
81
|
+
type ConstructorArgs<TPage extends string = string> = Field.ConstructorArgs & Partial<ExternalArgs> & Partial<EmailArgs> & Partial<PhoneArgs> & {
|
|
82
|
+
internal?: InternalArgs<TPage>;
|
|
83
|
+
file?: FileArgs;
|
|
84
|
+
};
|
|
85
|
+
type FileLinkAction = 'view' | 'download';
|
|
86
|
+
type FileArgs = {
|
|
87
|
+
mimeTypes: ReadonlyArray<MimeType>;
|
|
88
|
+
action: FileLinkAction;
|
|
89
|
+
};
|
|
90
|
+
type InternalArgs<TPage extends string = Page.Type> = {
|
|
91
|
+
pageTypes: ReadonlyArray<TPage> | 'all';
|
|
92
|
+
};
|
|
93
|
+
type ExternalArgs = {
|
|
94
|
+
allowExternal: boolean;
|
|
95
|
+
};
|
|
96
|
+
type EmailArgs = {
|
|
97
|
+
allowEmail: boolean;
|
|
98
|
+
};
|
|
99
|
+
type PhoneArgs = {
|
|
100
|
+
allowPhone: boolean;
|
|
101
|
+
};
|
|
102
|
+
type ModifyArgs = Omit<Partial<ConstructorArgs>, 'required'>;
|
|
103
|
+
}
|