@prismicio/types-internal 3.17.0 → 4.0.0-canary.3fe5f1e
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/README.md +36 -20
- package/dist/_virtual/_rolldown/runtime.js +13 -0
- package/dist/common/asset.d.ts +22 -0
- package/dist/common/asset.d.ts.map +1 -0
- package/dist/common/asset.js +21 -0
- package/dist/common/asset.js.map +1 -0
- package/dist/common/embed.d.ts +21 -0
- package/dist/common/embed.d.ts.map +1 -0
- package/dist/common/embed.js +20 -0
- package/dist/common/embed.js.map +1 -0
- package/dist/common/hexaColorCode.d.ts +8 -0
- package/dist/common/hexaColorCode.d.ts.map +1 -0
- package/dist/common/hexaColorCode.js +8 -0
- package/dist/common/hexaColorCode.js.map +1 -0
- package/dist/common/nonEmptyString.d.ts +8 -0
- package/dist/common/nonEmptyString.d.ts.map +1 -0
- package/dist/common/nonEmptyString.js +7 -0
- package/dist/common/nonEmptyString.js.map +1 -0
- package/dist/common/widgetKey.d.ts +8 -0
- package/dist/common/widgetKey.d.ts.map +1 -0
- package/dist/common/widgetKey.js +8 -0
- package/dist/common/widgetKey.js.map +1 -0
- package/dist/content/boolean.d.ts +11 -0
- package/dist/content/boolean.d.ts.map +1 -0
- package/dist/content/boolean.js +11 -0
- package/dist/content/boolean.js.map +1 -0
- package/dist/content/codec/boolean.js +31 -0
- package/dist/content/codec/boolean.js.map +1 -0
- package/dist/content/codec/document.js +49 -0
- package/dist/content/codec/document.js.map +1 -0
- package/dist/content/codec/embed.js +42 -0
- package/dist/content/codec/embed.js.map +1 -0
- package/dist/content/codec/empty.js +35 -0
- package/dist/content/codec/empty.js.map +1 -0
- package/dist/content/codec/field.js +41 -0
- package/dist/content/codec/field.js.map +1 -0
- package/dist/content/codec/geopoint.js +32 -0
- package/dist/content/codec/geopoint.js.map +1 -0
- package/dist/content/codec/group.js +127 -0
- package/dist/content/codec/group.js.map +1 -0
- package/dist/content/codec/image.js +44 -0
- package/dist/content/codec/image.js.map +1 -0
- package/dist/content/codec/integrationField.js +31 -0
- package/dist/content/codec/integrationField.js.map +1 -0
- package/dist/content/codec/legacyContentCtx.d.ts +50 -0
- package/dist/content/codec/legacyContentCtx.d.ts.map +1 -0
- package/dist/content/codec/legacyContentCtx.js +68 -0
- package/dist/content/codec/legacyContentCtx.js.map +1 -0
- package/dist/content/codec/link.js +93 -0
- package/dist/content/codec/link.js.map +1 -0
- package/dist/content/codec/nestable.js +91 -0
- package/dist/content/codec/nestable.js.map +1 -0
- package/dist/content/codec/repeatable.js +56 -0
- package/dist/content/codec/repeatable.js.map +1 -0
- package/dist/content/codec/richText.js +87 -0
- package/dist/content/codec/richText.js.map +1 -0
- package/dist/content/codec/separator.js +26 -0
- package/dist/content/codec/separator.js.map +1 -0
- package/dist/content/codec/slice.js +220 -0
- package/dist/content/codec/slice.js.map +1 -0
- package/dist/content/codec/slices.js +106 -0
- package/dist/content/codec/slices.js.map +1 -0
- package/dist/content/codec/table.js +56 -0
- package/dist/content/codec/table.js.map +1 -0
- package/dist/content/codec/uid.js +31 -0
- package/dist/content/codec/uid.js.map +1 -0
- package/dist/content/codec/widget.js +39 -0
- package/dist/content/codec/widget.js.map +1 -0
- package/dist/content/document.d.ts +9 -0
- package/dist/content/document.d.ts.map +1 -0
- package/dist/content/document.js +9 -0
- package/dist/content/document.js.map +1 -0
- package/dist/content/embed.d.ts +24 -0
- package/dist/content/embed.d.ts.map +1 -0
- package/dist/content/embed.js +12 -0
- package/dist/content/embed.js.map +1 -0
- package/dist/content/empty.d.ts +11 -0
- package/dist/content/empty.d.ts.map +1 -0
- package/dist/content/empty.js +11 -0
- package/dist/content/empty.js.map +1 -0
- package/dist/content/field.d.ts +49 -0
- package/dist/content/field.d.ts.map +1 -0
- package/dist/content/field.js +52 -0
- package/dist/content/field.js.map +1 -0
- package/dist/content/geopoint.d.ts +14 -0
- package/dist/content/geopoint.d.ts.map +1 -0
- package/dist/content/geopoint.js +9 -0
- package/dist/content/geopoint.js.map +1 -0
- package/dist/content/group.d.ts +19 -0
- package/dist/content/group.d.ts.map +1 -0
- package/dist/content/group.js +19 -0
- package/dist/content/group.js.map +1 -0
- package/dist/content/image.d.ts +52 -0
- package/dist/content/image.d.ts.map +1 -0
- package/dist/content/image.js +10 -0
- package/dist/content/image.js.map +1 -0
- package/dist/content/integrationField.d.ts +11 -0
- package/dist/content/integrationField.d.ts.map +1 -0
- package/dist/content/integrationField.js +11 -0
- package/dist/content/integrationField.js.map +1 -0
- package/dist/content/legacy/boolean.d.ts +1 -0
- package/dist/content/legacy/boolean.js +7 -0
- package/dist/content/legacy/boolean.js.map +1 -0
- package/dist/content/legacy/document.d.ts +8 -0
- package/dist/content/legacy/document.d.ts.map +1 -0
- package/dist/content/legacy/document.js +15 -0
- package/dist/content/legacy/document.js.map +1 -0
- package/dist/content/legacy/embed.d.ts +1 -0
- package/dist/content/legacy/embed.js +23 -0
- package/dist/content/legacy/embed.js.map +1 -0
- package/dist/content/legacy/empty.d.ts +1 -0
- package/dist/content/legacy/empty.js +7 -0
- package/dist/content/legacy/empty.js.map +1 -0
- package/dist/content/legacy/field.d.ts +1 -0
- package/dist/content/legacy/field.js +7 -0
- package/dist/content/legacy/field.js.map +1 -0
- package/dist/content/legacy/geopoint.d.ts +1 -0
- package/dist/content/legacy/geopoint.js +10 -0
- package/dist/content/legacy/geopoint.js.map +1 -0
- package/dist/content/legacy/group.d.ts +9 -0
- package/dist/content/legacy/group.d.ts.map +1 -0
- package/dist/content/legacy/group.js +10 -0
- package/dist/content/legacy/group.js.map +1 -0
- package/dist/content/legacy/image.d.ts +1 -0
- package/dist/content/legacy/image.js +33 -0
- package/dist/content/legacy/image.js.map +1 -0
- package/dist/content/legacy/integrationField.d.ts +1 -0
- package/dist/content/legacy/integrationField.js +7 -0
- package/dist/content/legacy/integrationField.js.map +1 -0
- package/dist/content/legacy/link.d.ts +41 -0
- package/dist/content/legacy/link.d.ts.map +1 -0
- package/dist/content/legacy/link.js +88 -0
- package/dist/content/legacy/link.js.map +1 -0
- package/dist/content/legacy/nestable.d.ts +1 -0
- package/dist/content/legacy/nestable.js +32 -0
- package/dist/content/legacy/nestable.js.map +1 -0
- package/dist/content/legacy/repeatable.d.ts +1 -0
- package/dist/content/legacy/repeatable.js +7 -0
- package/dist/content/legacy/repeatable.js.map +1 -0
- package/dist/content/legacy/richText.d.ts +109 -0
- package/dist/content/legacy/richText.d.ts.map +1 -0
- package/dist/content/legacy/richText.js +100 -0
- package/dist/content/legacy/richText.js.map +1 -0
- package/dist/content/legacy/separator.d.ts +1 -0
- package/dist/content/legacy/separator.js +7 -0
- package/dist/content/legacy/separator.js.map +1 -0
- package/dist/content/legacy/slice.js +22 -0
- package/dist/content/legacy/slice.js.map +1 -0
- package/dist/content/legacy/slices.js +13 -0
- package/dist/content/legacy/slices.js.map +1 -0
- package/dist/content/legacy/table.d.ts +1 -0
- package/dist/content/legacy/table.js +19 -0
- package/dist/content/legacy/table.js.map +1 -0
- package/dist/content/legacy/uid.js +7 -0
- package/dist/content/legacy/uid.js.map +1 -0
- package/dist/content/link.d.ts +163 -0
- package/dist/content/link.d.ts.map +1 -0
- package/dist/content/link.js +50 -0
- package/dist/content/link.js.map +1 -0
- package/dist/content/nestable.d.ts +19 -0
- package/dist/content/nestable.d.ts.map +1 -0
- package/dist/content/nestable.js +56 -0
- package/dist/content/nestable.js.map +1 -0
- package/dist/content/repeatable.d.ts +97 -0
- package/dist/content/repeatable.d.ts.map +1 -0
- package/dist/content/repeatable.js +17 -0
- package/dist/content/repeatable.js.map +1 -0
- package/dist/content/richText.d.ts +91 -0
- package/dist/content/richText.d.ts.map +1 -0
- package/dist/content/richText.js +24 -0
- package/dist/content/richText.js.map +1 -0
- package/dist/content/separator.d.ts +10 -0
- package/dist/content/separator.d.ts.map +1 -0
- package/dist/content/separator.js +8 -0
- package/dist/content/separator.js.map +1 -0
- package/dist/content/slice.d.ts +24 -0
- package/dist/content/slice.d.ts.map +1 -0
- package/dist/content/slice.js +27 -0
- package/dist/content/slice.js.map +1 -0
- package/dist/content/slices.d.ts +56 -0
- package/dist/content/slices.d.ts.map +1 -0
- package/dist/content/slices.js +24 -0
- package/dist/content/slices.js.map +1 -0
- package/dist/content/table.d.ts +21 -0
- package/dist/content/table.d.ts.map +1 -0
- package/dist/content/table.js +13 -0
- package/dist/content/table.js.map +1 -0
- package/dist/content/uid.d.ts +11 -0
- package/dist/content/uid.d.ts.map +1 -0
- package/dist/content/uid.js +11 -0
- package/dist/content/uid.js.map +1 -0
- package/dist/content/widget.d.ts +11 -0
- package/dist/content/widget.d.ts.map +1 -0
- package/dist/content/widget.js +16 -0
- package/dist/content/widget.js.map +1 -0
- package/dist/helpers/contentPath.d.ts +15 -0
- package/dist/helpers/contentPath.d.ts.map +1 -0
- package/dist/helpers/contentPath.js +30 -0
- package/dist/helpers/contentPath.js.map +1 -0
- package/dist/helpers/customTypeModel.d.ts +15 -0
- package/dist/helpers/customTypeModel.d.ts.map +1 -0
- package/dist/helpers/customTypeModel.js +85 -0
- package/dist/helpers/customTypeModel.js.map +1 -0
- package/dist/helpers/documentContent.d.ts +20 -0
- package/dist/helpers/documentContent.d.ts.map +1 -0
- package/dist/helpers/documentContent.js +64 -0
- package/dist/helpers/documentContent.js.map +1 -0
- package/dist/helpers/sliceContent.d.ts +12 -0
- package/dist/helpers/sliceContent.d.ts.map +1 -0
- package/dist/helpers/sliceContent.js +60 -0
- package/dist/helpers/sliceContent.js.map +1 -0
- package/dist/helpers/traverseContent.d.ts +84 -0
- package/dist/helpers/traverseContent.d.ts.map +1 -0
- package/dist/helpers/traverseContent.js +374 -0
- package/dist/helpers/traverseContent.js.map +1 -0
- package/dist/helpers/traverseContentWithModel.d.ts +84 -0
- package/dist/helpers/traverseContentWithModel.d.ts.map +1 -0
- package/dist/helpers/traverseContentWithModel.js +388 -0
- package/dist/helpers/traverseContentWithModel.js.map +1 -0
- package/dist/index.d.ts +56 -0
- package/dist/index.js +9 -0
- package/dist/io-ts.d.ts +4363 -0
- package/dist/io-ts.d.ts.map +1 -0
- package/dist/io-ts.js +220 -0
- package/dist/io-ts.js.map +1 -0
- package/dist/model/boolean.d.ts +16 -0
- package/dist/model/boolean.d.ts.map +1 -0
- package/dist/model/boolean.js +16 -0
- package/dist/model/boolean.js.map +1 -0
- package/dist/model/color.d.ts +15 -0
- package/dist/model/color.d.ts.map +1 -0
- package/dist/model/color.js +15 -0
- package/dist/model/color.js.map +1 -0
- package/dist/model/customType.d.ts +31 -0
- package/dist/model/customType.d.ts.map +1 -0
- package/dist/model/customType.js +18 -0
- package/dist/model/customType.js.map +1 -0
- package/dist/model/date.d.ts +16 -0
- package/dist/model/date.d.ts.map +1 -0
- package/dist/model/date.js +16 -0
- package/dist/model/date.js.map +1 -0
- package/dist/model/embed.d.ts +16 -0
- package/dist/model/embed.d.ts.map +1 -0
- package/dist/model/embed.js +16 -0
- package/dist/model/embed.js.map +1 -0
- package/dist/model/geopoint.d.ts +14 -0
- package/dist/model/geopoint.d.ts.map +1 -0
- package/dist/model/geopoint.js +12 -0
- package/dist/model/geopoint.js.map +1 -0
- package/dist/model/group.d.ts +567 -0
- package/dist/model/group.d.ts.map +1 -0
- package/dist/model/group.js +23 -0
- package/dist/model/group.js.map +1 -0
- package/dist/model/image.d.ts +24 -0
- package/dist/model/image.d.ts.map +1 -0
- package/dist/model/image.js +41 -0
- package/dist/model/image.js.map +1 -0
- package/dist/model/integrationField.d.ts +16 -0
- package/dist/model/integrationField.d.ts.map +1 -0
- package/dist/model/integrationField.js +16 -0
- package/dist/model/integrationField.js.map +1 -0
- package/dist/model/link.d.ts +48 -0
- package/dist/model/link.d.ts.map +1 -0
- package/dist/model/link.js +94 -0
- package/dist/model/link.js.map +1 -0
- package/dist/model/nestable.d.ts +23 -0
- package/dist/model/nestable.d.ts.map +1 -0
- package/dist/model/nestable.js +40 -0
- package/dist/model/nestable.js.map +1 -0
- package/dist/model/number.d.ts +18 -0
- package/dist/model/number.d.ts.map +1 -0
- package/dist/model/number.js +19 -0
- package/dist/model/number.js.map +1 -0
- package/dist/model/range.d.ts +18 -0
- package/dist/model/range.d.ts.map +1 -0
- package/dist/model/range.js +19 -0
- package/dist/model/range.js.map +1 -0
- package/dist/model/richText.d.ts +24 -0
- package/dist/model/richText.d.ts.map +1 -0
- package/dist/model/richText.js +73 -0
- package/dist/model/richText.js.map +1 -0
- package/dist/model/section.d.ts +11 -0
- package/dist/model/section.d.ts.map +1 -0
- package/dist/model/section.js +10 -0
- package/dist/model/section.js.map +1 -0
- package/dist/model/select.d.ts +17 -0
- package/dist/model/select.d.ts.map +1 -0
- package/dist/model/select.js +22 -0
- package/dist/model/select.js.map +1 -0
- package/dist/model/separator.d.ts +13 -0
- package/dist/model/separator.d.ts.map +1 -0
- package/dist/model/separator.js +11 -0
- package/dist/model/separator.js.map +1 -0
- package/dist/model/slice.d.ts +1476 -0
- package/dist/model/slice.d.ts.map +1 -0
- package/dist/model/slice.js +68 -0
- package/dist/model/slice.js.map +1 -0
- package/dist/model/slices.d.ts +33 -0
- package/dist/model/slices.d.ts.map +1 -0
- package/dist/model/slices.js +29 -0
- package/dist/model/slices.js.map +1 -0
- package/dist/model/table.d.ts +14 -0
- package/dist/model/table.d.ts.map +1 -0
- package/dist/model/table.js +22 -0
- package/dist/model/table.js.map +1 -0
- package/dist/model/text.d.ts +16 -0
- package/dist/model/text.d.ts.map +1 -0
- package/dist/model/text.js +16 -0
- package/dist/model/text.js.map +1 -0
- package/dist/model/timestamp.d.ts +16 -0
- package/dist/model/timestamp.d.ts.map +1 -0
- package/dist/model/timestamp.js +16 -0
- package/dist/model/timestamp.js.map +1 -0
- package/dist/model/uid.d.ts +16 -0
- package/dist/model/uid.d.ts.map +1 -0
- package/dist/model/uid.js +16 -0
- package/dist/model/uid.js.map +1 -0
- package/dist/model/widget.d.ts +60 -0
- package/dist/model/widget.d.ts.map +1 -0
- package/dist/model/widget.js +47 -0
- package/dist/model/widget.js.map +1 -0
- package/dist/zod4.d.ts +2321 -0
- package/dist/zod4.d.ts.map +1 -0
- package/dist/zod4.js +132 -0
- package/dist/zod4.js.map +1 -0
- package/package.json +55 -58
- package/src/common/asset.ts +29 -0
- package/src/common/embed.ts +27 -0
- package/src/common/hexaColorCode.ts +11 -0
- package/src/common/nonEmptyString.ts +9 -0
- package/src/common/widgetKey.ts +11 -0
- package/src/content/boolean.ts +23 -0
- package/src/content/codec/boolean.ts +38 -0
- package/src/content/codec/document.ts +60 -0
- package/src/content/codec/embed.ts +55 -0
- package/src/content/codec/empty.ts +49 -0
- package/src/content/codec/field.ts +96 -0
- package/src/content/codec/geopoint.ts +40 -0
- package/src/content/codec/group.ts +163 -0
- package/src/content/codec/image.ts +50 -0
- package/src/content/codec/integrationField.ts +38 -0
- package/src/content/{LegacyContentCtx.ts → codec/legacyContentCtx.ts} +17 -17
- package/src/content/codec/link.ts +103 -0
- package/src/content/codec/nestable.ts +146 -0
- package/src/content/codec/repeatable.ts +68 -0
- package/src/content/codec/richText.ts +117 -0
- package/src/content/codec/separator.ts +33 -0
- package/src/content/codec/slice.ts +276 -0
- package/src/content/codec/slices.ts +130 -0
- package/src/content/codec/table.ts +65 -0
- package/src/content/codec/uid.ts +36 -0
- package/src/content/codec/widget.ts +58 -0
- package/src/content/document.ts +8 -0
- package/src/content/embed.ts +12 -0
- package/src/content/empty.ts +10 -0
- package/src/content/field.ts +94 -0
- package/src/content/geopoint.ts +11 -0
- package/src/content/group.ts +99 -0
- package/src/content/image.ts +103 -0
- package/src/content/integrationField.ts +10 -0
- package/src/content/legacy/boolean.ts +5 -0
- package/src/content/legacy/document.ts +25 -0
- package/src/content/legacy/embed.ts +23 -0
- package/src/content/legacy/empty.ts +10 -0
- package/src/content/legacy/field.ts +8 -0
- package/src/content/legacy/geopoint.ts +10 -0
- package/src/content/legacy/group.ts +23 -0
- package/src/content/legacy/image.ts +43 -0
- package/src/content/legacy/integrationField.ts +5 -0
- package/src/content/legacy/link.ts +194 -0
- package/src/content/legacy/nestable.ts +55 -0
- package/src/content/legacy/repeatable.ts +7 -0
- package/src/content/legacy/richText.ts +198 -0
- package/src/content/legacy/separator.ts +6 -0
- package/src/content/legacy/slice.ts +38 -0
- package/src/content/legacy/slices.ts +17 -0
- package/src/content/legacy/table.ts +39 -0
- package/src/content/legacy/uid.ts +6 -0
- package/src/content/legacy/widget.ts +19 -0
- package/src/content/link.ts +154 -0
- package/src/content/nestable.ts +126 -0
- package/src/content/repeatable.ts +21 -0
- package/src/content/richText.ts +54 -0
- package/src/content/separator.ts +9 -0
- package/src/content/slice.ts +41 -0
- package/src/content/slices.ts +57 -0
- package/src/content/table.ts +14 -0
- package/src/content/uid.ts +10 -0
- package/src/content/widget.ts +21 -0
- package/src/content/{fields/withDefaultValues.ts → withDefaultValues.ts} +34 -39
- package/src/helpers/contentPath.ts +35 -0
- package/src/helpers/customTypeModel.ts +113 -0
- package/src/helpers/documentContent.ts +108 -0
- package/src/helpers/sliceContent.ts +86 -0
- package/src/helpers/traverseContent.ts +594 -0
- package/src/helpers/traverseContentWithModel.ts +616 -0
- package/src/index.ts +123 -0
- package/src/io-ts.ts +351 -0
- package/src/model/boolean.ts +15 -0
- package/src/model/color.ts +14 -0
- package/src/model/customType.ts +26 -0
- package/src/model/date.ts +15 -0
- package/src/model/diff/index.ts +4 -0
- package/src/{customtypes/diff/SharedSlice.ts → model/diff/sharedSlice.ts} +16 -18
- package/src/model/diff/utils.ts +45 -0
- package/src/model/diff/variation.ts +155 -0
- package/src/model/diff/widgets.ts +15 -0
- package/src/model/embed.ts +15 -0
- package/src/model/geopoint.ts +13 -0
- package/src/model/group.ts +39 -0
- package/src/model/image.ts +54 -0
- package/src/model/integrationField.ts +15 -0
- package/src/model/link.ts +141 -0
- package/src/model/nestable.ts +71 -0
- package/src/model/number.ts +26 -0
- package/src/model/range.ts +26 -0
- package/src/model/richText.ts +106 -0
- package/src/model/section.ts +12 -0
- package/src/model/select.ts +30 -0
- package/src/model/separator.ts +12 -0
- package/src/model/slice.ts +133 -0
- package/src/model/slices.ts +54 -0
- package/src/model/table.ts +29 -0
- package/src/model/text.ts +15 -0
- package/src/model/timestamp.ts +15 -0
- package/src/model/uid.ts +15 -0
- package/src/model/widget.ts +63 -0
- package/src/zod4.ts +187 -0
- package/lib/common/Asset.d.ts +0 -16
- package/lib/common/Asset.js +0 -11
- package/lib/common/Embed.d.ts +0 -15
- package/lib/common/Embed.js +0 -10
- package/lib/common/HexaColorCode.d.ts +0 -4
- package/lib/common/HexaColorCode.js +0 -7
- package/lib/common/UUID.d.ts +0 -6
- package/lib/common/UUID.js +0 -8
- package/lib/common/WidgetKey.d.ts +0 -3
- package/lib/common/WidgetKey.js +0 -8
- package/lib/common/index.d.ts +0 -3
- package/lib/common/index.js +0 -6
- package/lib/content/Document.d.ts +0 -11813
- package/lib/content/Document.js +0 -364
- package/lib/content/LegacyContentCtx.d.ts +0 -64
- package/lib/content/LegacyContentCtx.js +0 -130
- package/lib/content/fields/EmptyContent.d.ts +0 -16
- package/lib/content/fields/EmptyContent.js +0 -30
- package/lib/content/fields/GroupContent.d.ts +0 -53
- package/lib/content/fields/GroupContent.js +0 -307
- package/lib/content/fields/UIDContent.d.ts +0 -16
- package/lib/content/fields/UIDContent.js +0 -25
- package/lib/content/fields/WidgetContent.d.ts +0 -11749
- package/lib/content/fields/WidgetContent.js +0 -57
- package/lib/content/fields/index.d.ts +0 -6
- package/lib/content/fields/index.js +0 -9
- package/lib/content/fields/nestable/BooleanContent.d.ts +0 -18
- package/lib/content/fields/nestable/BooleanContent.js +0 -35
- package/lib/content/fields/nestable/EmbedContent.d.ts +0 -78
- package/lib/content/fields/nestable/EmbedContent.js +0 -56
- package/lib/content/fields/nestable/FieldContent/ColorContent.d.ts +0 -18
- package/lib/content/fields/nestable/FieldContent/ColorContent.js +0 -35
- package/lib/content/fields/nestable/FieldContent/DateContent.d.ts +0 -18
- package/lib/content/fields/nestable/FieldContent/DateContent.js +0 -35
- package/lib/content/fields/nestable/FieldContent/NumberContent.d.ts +0 -18
- package/lib/content/fields/nestable/FieldContent/NumberContent.js +0 -35
- package/lib/content/fields/nestable/FieldContent/RangeContent.d.ts +0 -18
- package/lib/content/fields/nestable/FieldContent/RangeContent.js +0 -35
- package/lib/content/fields/nestable/FieldContent/SelectContent.d.ts +0 -20
- package/lib/content/fields/nestable/FieldContent/SelectContent.js +0 -46
- package/lib/content/fields/nestable/FieldContent/TextContent.d.ts +0 -18
- package/lib/content/fields/nestable/FieldContent/TextContent.js +0 -35
- package/lib/content/fields/nestable/FieldContent/TimestampContent.d.ts +0 -18
- package/lib/content/fields/nestable/FieldContent/TimestampContent.js +0 -35
- package/lib/content/fields/nestable/FieldContent/common.d.ts +0 -1
- package/lib/content/fields/nestable/FieldContent/common.js +0 -4
- package/lib/content/fields/nestable/FieldContent/index.d.ts +0 -49
- package/lib/content/fields/nestable/FieldContent/index.js +0 -38
- package/lib/content/fields/nestable/GeoPointContent.d.ts +0 -33
- package/lib/content/fields/nestable/GeoPointContent.js +0 -31
- package/lib/content/fields/nestable/ImageContent.d.ts +0 -252
- package/lib/content/fields/nestable/ImageContent.js +0 -122
- package/lib/content/fields/nestable/IntegrationFieldContent.d.ts +0 -16
- package/lib/content/fields/nestable/IntegrationFieldContent.js +0 -28
- package/lib/content/fields/nestable/LinkContent.d.ts +0 -919
- package/lib/content/fields/nestable/LinkContent.js +0 -399
- package/lib/content/fields/nestable/NestableContent.d.ts +0 -1953
- package/lib/content/fields/nestable/NestableContent.js +0 -167
- package/lib/content/fields/nestable/RepeatableContent.d.ts +0 -182
- package/lib/content/fields/nestable/RepeatableContent.js +0 -146
- package/lib/content/fields/nestable/RichTextContent/Blocks.d.ts +0 -1261
- package/lib/content/fields/nestable/RichTextContent/Blocks.js +0 -170
- package/lib/content/fields/nestable/RichTextContent/index.d.ts +0 -1004
- package/lib/content/fields/nestable/RichTextContent/index.js +0 -28
- package/lib/content/fields/nestable/SeparatorContent.d.ts +0 -13
- package/lib/content/fields/nestable/SeparatorContent.js +0 -22
- package/lib/content/fields/nestable/TableContent.d.ts +0 -776
- package/lib/content/fields/nestable/TableContent.js +0 -167
- package/lib/content/fields/nestable/index.d.ts +0 -12
- package/lib/content/fields/nestable/index.js +0 -15
- package/lib/content/fields/slices/Slice/CompositeSliceContent.d.ts +0 -3934
- package/lib/content/fields/slices/Slice/CompositeSliceContent.js +0 -195
- package/lib/content/fields/slices/Slice/RepeatableContent.d.ts +0 -774
- package/lib/content/fields/slices/Slice/RepeatableContent.js +0 -21
- package/lib/content/fields/slices/Slice/SharedSliceContent.d.ts +0 -3937
- package/lib/content/fields/slices/Slice/SharedSliceContent.js +0 -215
- package/lib/content/fields/slices/Slice/SimpleSliceContent.d.ts +0 -1962
- package/lib/content/fields/slices/Slice/SimpleSliceContent.js +0 -130
- package/lib/content/fields/slices/Slice/SlicePrimaryContent.d.ts +0 -1952
- package/lib/content/fields/slices/Slice/SlicePrimaryContent.js +0 -30
- package/lib/content/fields/slices/Slice/index.d.ts +0 -6810
- package/lib/content/fields/slices/Slice/index.js +0 -45
- package/lib/content/fields/slices/SliceItem.d.ts +0 -6846
- package/lib/content/fields/slices/SliceItem.js +0 -116
- package/lib/content/fields/slices/SlicesContent.d.ts +0 -9827
- package/lib/content/fields/slices/SlicesContent.js +0 -465
- package/lib/content/fields/slices/index.d.ts +0 -3
- package/lib/content/fields/slices/index.js +0 -6
- package/lib/content/fields/withDefaultValues.d.ts +0 -9
- package/lib/content/fields/withDefaultValues.js +0 -79
- package/lib/content/helpers.d.ts +0 -9
- package/lib/content/helpers.js +0 -22
- package/lib/content/index.d.ts +0 -4
- package/lib/content/index.js +0 -7
- package/lib/content/utils.d.ts +0 -50
- package/lib/content/utils.js +0 -35
- package/lib/customtypes/CustomType.d.ts +0 -3680
- package/lib/customtypes/CustomType.js +0 -184
- package/lib/customtypes/Section.d.ts +0 -3635
- package/lib/customtypes/Section.js +0 -66
- package/lib/customtypes/diff/Changes.d.ts +0 -17
- package/lib/customtypes/diff/Changes.js +0 -9
- package/lib/customtypes/diff/SharedSlice.d.ts +0 -1624
- package/lib/customtypes/diff/SharedSlice.js +0 -55
- package/lib/customtypes/diff/Variation.d.ts +0 -1605
- package/lib/customtypes/diff/Variation.js +0 -113
- package/lib/customtypes/diff/Widgets.d.ts +0 -11
- package/lib/customtypes/diff/Widgets.js +0 -2
- package/lib/customtypes/diff/index.d.ts +0 -4
- package/lib/customtypes/diff/index.js +0 -7
- package/lib/customtypes/index.d.ts +0 -4
- package/lib/customtypes/index.js +0 -7
- package/lib/customtypes/widgets/Group.d.ts +0 -1352
- package/lib/customtypes/widgets/Group.js +0 -92
- package/lib/customtypes/widgets/UID.d.ts +0 -19
- package/lib/customtypes/widgets/UID.js +0 -21
- package/lib/customtypes/widgets/Widget.d.ts +0 -4457
- package/lib/customtypes/widgets/Widget.js +0 -49
- package/lib/customtypes/widgets/index.d.ts +0 -6
- package/lib/customtypes/widgets/index.js +0 -9
- package/lib/customtypes/widgets/nestable/BooleanField.d.ts +0 -20
- package/lib/customtypes/widgets/nestable/BooleanField.js +0 -21
- package/lib/customtypes/widgets/nestable/Color.d.ts +0 -17
- package/lib/customtypes/widgets/nestable/Color.js +0 -20
- package/lib/customtypes/widgets/nestable/Date.d.ts +0 -19
- package/lib/customtypes/widgets/nestable/Date.js +0 -21
- package/lib/customtypes/widgets/nestable/Embed.d.ts +0 -19
- package/lib/customtypes/widgets/nestable/Embed.js +0 -21
- package/lib/customtypes/widgets/nestable/GeoPoint.d.ts +0 -15
- package/lib/customtypes/widgets/nestable/GeoPoint.js +0 -19
- package/lib/customtypes/widgets/nestable/Image.d.ts +0 -44
- package/lib/customtypes/widgets/nestable/Image.js +0 -29
- package/lib/customtypes/widgets/nestable/IntegrationField.d.ts +0 -19
- package/lib/customtypes/widgets/nestable/IntegrationField.js +0 -21
- package/lib/customtypes/widgets/nestable/Link.d.ts +0 -196
- package/lib/customtypes/widgets/nestable/Link.js +0 -167
- package/lib/customtypes/widgets/nestable/NestableWidget.d.ts +0 -217
- package/lib/customtypes/widgets/nestable/NestableWidget.js +0 -39
- package/lib/customtypes/widgets/nestable/Number.d.ts +0 -23
- package/lib/customtypes/widgets/nestable/Number.js +0 -24
- package/lib/customtypes/widgets/nestable/Range.d.ts +0 -23
- package/lib/customtypes/widgets/nestable/Range.js +0 -24
- package/lib/customtypes/widgets/nestable/RichText.d.ts +0 -73
- package/lib/customtypes/widgets/nestable/RichText.js +0 -131
- package/lib/customtypes/widgets/nestable/Select.d.ts +0 -21
- package/lib/customtypes/widgets/nestable/Select.js +0 -22
- package/lib/customtypes/widgets/nestable/Separator.d.ts +0 -14
- package/lib/customtypes/widgets/nestable/Separator.js +0 -18
- package/lib/customtypes/widgets/nestable/Table.d.ts +0 -21
- package/lib/customtypes/widgets/nestable/Table.js +0 -30
- package/lib/customtypes/widgets/nestable/Text.d.ts +0 -19
- package/lib/customtypes/widgets/nestable/Text.js +0 -21
- package/lib/customtypes/widgets/nestable/Timestamp.d.ts +0 -19
- package/lib/customtypes/widgets/nestable/Timestamp.js +0 -21
- package/lib/customtypes/widgets/nestable/index.d.ts +0 -17
- package/lib/customtypes/widgets/nestable/index.js +0 -20
- package/lib/customtypes/widgets/shared/ImageConstraint.d.ts +0 -7
- package/lib/customtypes/widgets/shared/ImageConstraint.js +0 -31
- package/lib/customtypes/widgets/shared/index.d.ts +0 -1
- package/lib/customtypes/widgets/shared/index.js +0 -8
- package/lib/customtypes/widgets/slices/CompositeSlice.d.ts +0 -455
- package/lib/customtypes/widgets/slices/CompositeSlice.js +0 -63
- package/lib/customtypes/widgets/slices/LegacySlice.d.ts +0 -442
- package/lib/customtypes/widgets/slices/LegacySlice.js +0 -12
- package/lib/customtypes/widgets/slices/SharedSlice.d.ts +0 -1807
- package/lib/customtypes/widgets/slices/SharedSlice.js +0 -118
- package/lib/customtypes/widgets/slices/SharedSliceRef.d.ts +0 -5
- package/lib/customtypes/widgets/slices/SharedSliceRef.js +0 -9
- package/lib/customtypes/widgets/slices/Slice.d.ts +0 -6
- package/lib/customtypes/widgets/slices/Slice.js +0 -2
- package/lib/customtypes/widgets/slices/SlicePrimaryWidget.d.ts +0 -1259
- package/lib/customtypes/widgets/slices/SlicePrimaryWidget.js +0 -10
- package/lib/customtypes/widgets/slices/Slices.d.ts +0 -5917
- package/lib/customtypes/widgets/slices/Slices.js +0 -146
- package/lib/customtypes/widgets/slices/SlicesTypes.d.ts +0 -6
- package/lib/customtypes/widgets/slices/SlicesTypes.js +0 -11
- package/lib/customtypes/widgets/slices/index.d.ts +0 -8
- package/lib/customtypes/widgets/slices/index.js +0 -11
- package/lib/utils/Arrays.d.ts +0 -1
- package/lib/utils/Arrays.js +0 -13
- package/lib/utils/DocumentId.d.ts +0 -2
- package/lib/utils/DocumentId.js +0 -7
- package/lib/utils/Fields.d.ts +0 -6
- package/lib/utils/Fields.js +0 -2
- package/lib/utils/Objects.d.ts +0 -8
- package/lib/utils/Objects.js +0 -42
- package/lib/utils/index.d.ts +0 -4
- package/lib/utils/index.js +0 -8
- package/lib/validators/BasicTypes.d.ts +0 -10
- package/lib/validators/BasicTypes.js +0 -25
- package/lib/validators/DateFromString.d.ts +0 -3
- package/lib/validators/DateFromString.js +0 -11
- package/lib/validators/DateFromStringOrNumber.d.ts +0 -3
- package/lib/validators/DateFromStringOrNumber.js +0 -10
- package/lib/validators/DateFromTsMs.d.ts +0 -3
- package/lib/validators/DateFromTsMs.js +0 -10
- package/lib/validators/DefaultOrElse.d.ts +0 -5
- package/lib/validators/DefaultOrElse.js +0 -21
- package/lib/validators/IntFromNumber.d.ts +0 -5
- package/lib/validators/IntFromNumber.js +0 -14
- package/lib/validators/IntFromPixels.d.ts +0 -8
- package/lib/validators/IntFromPixels.js +0 -24
- package/lib/validators/NonEmptyString.d.ts +0 -3
- package/lib/validators/NonEmptyString.js +0 -6
- package/lib/validators/NonEmptyStringOrNull.d.ts +0 -3
- package/lib/validators/NonEmptyStringOrNull.js +0 -15
- package/lib/validators/NumberOrNull.d.ts +0 -3
- package/lib/validators/NumberOrNull.js +0 -6
- package/lib/validators/NumberRange.d.ts +0 -32
- package/lib/validators/NumberRange.js +0 -40
- package/lib/validators/StringFromBoolean.d.ts +0 -5
- package/lib/validators/StringFromBoolean.js +0 -10
- package/lib/validators/StringFromNumber.d.ts +0 -5
- package/lib/validators/StringFromNumber.js +0 -10
- package/lib/validators/StringOrNull.d.ts +0 -3
- package/lib/validators/StringOrNull.js +0 -6
- package/lib/validators/TrimmedString.d.ts +0 -5
- package/lib/validators/TrimmedString.js +0 -23
- package/lib/validators/function.d.ts +0 -34
- package/lib/validators/function.js +0 -100
- package/lib/validators/index.d.ts +0 -15
- package/lib/validators/index.js +0 -31
- package/src/common/Asset.ts +0 -25
- package/src/common/Embed.ts +0 -22
- package/src/common/HexaColorCode.ts +0 -11
- package/src/common/UUID.ts +0 -19
- package/src/common/WidgetKey.ts +0 -13
- package/src/common/index.ts +0 -3
- package/src/content/Document.ts +0 -539
- package/src/content/fields/EmptyContent.ts +0 -45
- package/src/content/fields/GroupContent.ts +0 -466
- package/src/content/fields/UIDContent.ts +0 -42
- package/src/content/fields/WidgetContent.ts +0 -76
- package/src/content/fields/index.ts +0 -6
- package/src/content/fields/nestable/BooleanContent.ts +0 -52
- package/src/content/fields/nestable/EmbedContent.ts +0 -74
- package/src/content/fields/nestable/FieldContent/ColorContent.ts +0 -49
- package/src/content/fields/nestable/FieldContent/DateContent.ts +0 -49
- package/src/content/fields/nestable/FieldContent/NumberContent.ts +0 -49
- package/src/content/fields/nestable/FieldContent/RangeContent.ts +0 -49
- package/src/content/fields/nestable/FieldContent/SelectContent.ts +0 -60
- package/src/content/fields/nestable/FieldContent/TextContent.ts +0 -49
- package/src/content/fields/nestable/FieldContent/TimestampContent.ts +0 -49
- package/src/content/fields/nestable/FieldContent/common.ts +0 -1
- package/src/content/fields/nestable/FieldContent/index.ts +0 -40
- package/src/content/fields/nestable/GeoPointContent.ts +0 -48
- package/src/content/fields/nestable/ImageContent.ts +0 -196
- package/src/content/fields/nestable/IntegrationFieldContent.ts +0 -51
- package/src/content/fields/nestable/LinkContent.ts +0 -651
- package/src/content/fields/nestable/NestableContent.ts +0 -241
- package/src/content/fields/nestable/RepeatableContent.ts +0 -224
- package/src/content/fields/nestable/RichTextContent/Blocks.ts +0 -238
- package/src/content/fields/nestable/RichTextContent/index.ts +0 -42
- package/src/content/fields/nestable/SeparatorContent.ts +0 -34
- package/src/content/fields/nestable/TableContent.ts +0 -234
- package/src/content/fields/nestable/index.ts +0 -12
- package/src/content/fields/slices/Slice/CompositeSliceContent.ts +0 -293
- package/src/content/fields/slices/Slice/RepeatableContent.ts +0 -29
- package/src/content/fields/slices/Slice/SharedSliceContent.ts +0 -305
- package/src/content/fields/slices/Slice/SimpleSliceContent.ts +0 -180
- package/src/content/fields/slices/Slice/SlicePrimaryContent.ts +0 -40
- package/src/content/fields/slices/Slice/index.ts +0 -52
- package/src/content/fields/slices/SliceItem.ts +0 -184
- package/src/content/fields/slices/SlicesContent.ts +0 -677
- package/src/content/fields/slices/index.ts +0 -3
- package/src/content/helpers.ts +0 -25
- package/src/content/index.ts +0 -4
- package/src/content/utils.ts +0 -145
- package/src/customtypes/CustomType.ts +0 -280
- package/src/customtypes/Section.ts +0 -98
- package/src/customtypes/diff/Variation.ts +0 -167
- package/src/customtypes/diff/Widgets.ts +0 -17
- package/src/customtypes/diff/index.ts +0 -4
- package/src/customtypes/index.ts +0 -4
- package/src/customtypes/widgets/Group.ts +0 -120
- package/src/customtypes/widgets/UID.ts +0 -27
- package/src/customtypes/widgets/Widget.ts +0 -83
- package/src/customtypes/widgets/index.ts +0 -6
- package/src/customtypes/widgets/nestable/BooleanField.ts +0 -29
- package/src/customtypes/widgets/nestable/Color.ts +0 -25
- package/src/customtypes/widgets/nestable/Date.ts +0 -27
- package/src/customtypes/widgets/nestable/Embed.ts +0 -27
- package/src/customtypes/widgets/nestable/GeoPoint.ts +0 -25
- package/src/customtypes/widgets/nestable/Image.ts +0 -39
- package/src/customtypes/widgets/nestable/IntegrationField.ts +0 -26
- package/src/customtypes/widgets/nestable/Link.ts +0 -313
- package/src/customtypes/widgets/nestable/NestableWidget.ts +0 -40
- package/src/customtypes/widgets/nestable/Number.ts +0 -30
- package/src/customtypes/widgets/nestable/Range.ts +0 -30
- package/src/customtypes/widgets/nestable/RichText.ts +0 -215
- package/src/customtypes/widgets/nestable/Select.ts +0 -34
- package/src/customtypes/widgets/nestable/Separator.ts +0 -24
- package/src/customtypes/widgets/nestable/Table.ts +0 -38
- package/src/customtypes/widgets/nestable/Text.ts +0 -27
- package/src/customtypes/widgets/nestable/Timestamp.ts +0 -27
- package/src/customtypes/widgets/nestable/index.ts +0 -17
- package/src/customtypes/widgets/shared/ImageConstraint.ts +0 -41
- package/src/customtypes/widgets/shared/index.ts +0 -1
- package/src/customtypes/widgets/slices/CompositeSlice.ts +0 -79
- package/src/customtypes/widgets/slices/LegacySlice.ts +0 -15
- package/src/customtypes/widgets/slices/SharedSlice.ts +0 -152
- package/src/customtypes/widgets/slices/SharedSliceRef.ts +0 -10
- package/src/customtypes/widgets/slices/Slice.ts +0 -7
- package/src/customtypes/widgets/slices/SlicePrimaryWidget.ts +0 -12
- package/src/customtypes/widgets/slices/Slices.ts +0 -184
- package/src/customtypes/widgets/slices/SlicesTypes.ts +0 -11
- package/src/customtypes/widgets/slices/index.ts +0 -8
- package/src/utils/Arrays.ts +0 -12
- package/src/utils/DocumentId.ts +0 -8
- package/src/utils/Fields.ts +0 -4
- package/src/utils/Objects.ts +0 -53
- package/src/utils/index.ts +0 -4
- package/src/validators/BasicTypes.ts +0 -55
- package/src/validators/DateFromString.ts +0 -19
- package/src/validators/DateFromStringOrNumber.ts +0 -17
- package/src/validators/DateFromTsMs.ts +0 -17
- package/src/validators/DefaultOrElse.ts +0 -24
- package/src/validators/IntFromNumber.ts +0 -22
- package/src/validators/IntFromPixels.ts +0 -32
- package/src/validators/NonEmptyString.ts +0 -8
- package/src/validators/NonEmptyStringOrNull.ts +0 -22
- package/src/validators/NumberOrNull.ts +0 -5
- package/src/validators/NumberRange.ts +0 -51
- package/src/validators/StringFromBoolean.ts +0 -19
- package/src/validators/StringFromNumber.ts +0 -19
- package/src/validators/StringOrNull.ts +0 -5
- package/src/validators/TrimmedString.ts +0 -33
- package/src/validators/function.ts +0 -115
- package/src/validators/index.ts +0 -15
- /package/src/{customtypes/diff/Changes.ts → model/diff/changes.ts} +0 -0
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { z } from "zod/mini"
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
EmptyDocumentLinkValueLegacySchema,
|
|
5
|
+
EmptyImageLinkValueLegacySchema,
|
|
6
|
+
FilledDocumentLinkValueLegacySchema,
|
|
7
|
+
FilledFileLinkValueLegacySchema,
|
|
8
|
+
FilledImageLinkValueLegacySchema,
|
|
9
|
+
EmptyMediaLinkValueLegacySchema,
|
|
10
|
+
FilledExternalLinkValueLegacySchema,
|
|
11
|
+
EmptyExternalLinkValueLegacySchema,
|
|
12
|
+
AnyLinkLegacySchema,
|
|
13
|
+
LinkType,
|
|
14
|
+
EmptyFileLinkValueLegacySchema,
|
|
15
|
+
} from "./legacy/link"
|
|
16
|
+
|
|
17
|
+
// Image
|
|
18
|
+
const FilledImageLinkValueContentSchema = z.extend(FilledImageLinkValueLegacySchema, {
|
|
19
|
+
__TYPE__: z.literal(LinkType.Image),
|
|
20
|
+
})
|
|
21
|
+
|
|
22
|
+
const EmptyImageLinkValueContentSchema = z.extend(EmptyImageLinkValueLegacySchema, {
|
|
23
|
+
__TYPE__: z.literal(LinkType.Image),
|
|
24
|
+
})
|
|
25
|
+
|
|
26
|
+
// File
|
|
27
|
+
const FilledFileLinkValueContentSchema = z.extend(FilledFileLinkValueLegacySchema, {
|
|
28
|
+
__TYPE__: z.literal(LinkType.File),
|
|
29
|
+
})
|
|
30
|
+
|
|
31
|
+
const EmptyFileLinkValueContentSchema = z.extend(EmptyFileLinkValueLegacySchema, {
|
|
32
|
+
__TYPE__: z.literal(LinkType.File),
|
|
33
|
+
})
|
|
34
|
+
|
|
35
|
+
// Media
|
|
36
|
+
const EmptyMediaLinkValueContentSchema = z.extend(EmptyMediaLinkValueLegacySchema, {
|
|
37
|
+
__TYPE__: z.literal(LinkType.Media),
|
|
38
|
+
})
|
|
39
|
+
|
|
40
|
+
// Document
|
|
41
|
+
const FilledDocumentLinkValueContentSchema = z.extend(FilledDocumentLinkValueLegacySchema, {
|
|
42
|
+
__TYPE__: z.literal(LinkType.Document),
|
|
43
|
+
})
|
|
44
|
+
|
|
45
|
+
const EmptyDocumentLinkValueContentSchema = z.extend(EmptyDocumentLinkValueLegacySchema, {
|
|
46
|
+
__TYPE__: z.literal(LinkType.Document),
|
|
47
|
+
})
|
|
48
|
+
|
|
49
|
+
// External
|
|
50
|
+
const FilledExternalLinkValueContentSchema = z.extend(FilledExternalLinkValueLegacySchema, {
|
|
51
|
+
__TYPE__: z.literal(LinkType.External),
|
|
52
|
+
})
|
|
53
|
+
|
|
54
|
+
const EmptyExternalLinkValueContentSchema = z.extend(EmptyExternalLinkValueLegacySchema, {
|
|
55
|
+
__TYPE__: z.literal(LinkType.External),
|
|
56
|
+
})
|
|
57
|
+
|
|
58
|
+
// Any
|
|
59
|
+
const AnyLinkValueContentSchema = z.extend(AnyLinkLegacySchema, {
|
|
60
|
+
__TYPE__: z.literal(LinkType.Any),
|
|
61
|
+
})
|
|
62
|
+
|
|
63
|
+
// All
|
|
64
|
+
|
|
65
|
+
// Used by content/richText
|
|
66
|
+
export const FilledLinkValueContentSchema: z.ZodMiniType<FilledLinkValueContent> = z.union([
|
|
67
|
+
FilledImageLinkValueContentSchema,
|
|
68
|
+
FilledFileLinkValueContentSchema,
|
|
69
|
+
FilledDocumentLinkValueContentSchema,
|
|
70
|
+
FilledExternalLinkValueContentSchema,
|
|
71
|
+
])
|
|
72
|
+
|
|
73
|
+
// Used by content/legacy/link
|
|
74
|
+
type FilledImageLinkValueContent = z.infer<typeof FilledImageLinkValueContentSchema>
|
|
75
|
+
type FilledFileLinkValueContent = z.infer<typeof FilledFileLinkValueContentSchema>
|
|
76
|
+
type FilledDocumentLinkValueContent = z.infer<typeof FilledDocumentLinkValueContentSchema>
|
|
77
|
+
type FilledExternalLinkValueContent = z.infer<typeof FilledExternalLinkValueContentSchema>
|
|
78
|
+
export type FilledLinkValueContent =
|
|
79
|
+
| FilledImageLinkValueContent
|
|
80
|
+
| FilledFileLinkValueContent
|
|
81
|
+
| FilledDocumentLinkValueContent
|
|
82
|
+
| FilledExternalLinkValueContent
|
|
83
|
+
|
|
84
|
+
const EmptyLinkValueContentSchema: z.ZodMiniType<EmptyLinkValueContent> = z.union([
|
|
85
|
+
EmptyImageLinkValueContentSchema,
|
|
86
|
+
EmptyFileLinkValueContentSchema,
|
|
87
|
+
EmptyMediaLinkValueContentSchema,
|
|
88
|
+
EmptyDocumentLinkValueContentSchema,
|
|
89
|
+
EmptyExternalLinkValueContentSchema,
|
|
90
|
+
AnyLinkValueContentSchema,
|
|
91
|
+
])
|
|
92
|
+
|
|
93
|
+
// Used by content/codec/link
|
|
94
|
+
type EmptyImageLinkValueContent = z.infer<typeof EmptyImageLinkValueContentSchema>
|
|
95
|
+
type EmptyFileLinkValueContent = z.infer<typeof EmptyFileLinkValueContentSchema>
|
|
96
|
+
type EmptyMediaLinkValueContent = z.infer<typeof EmptyMediaLinkValueContentSchema>
|
|
97
|
+
type EmptyDocumentLinkValueContent = z.infer<typeof EmptyDocumentLinkValueContentSchema>
|
|
98
|
+
type EmptyExternalLinkValueContent = z.infer<typeof EmptyExternalLinkValueContentSchema>
|
|
99
|
+
type AnyLinkValueContent = z.infer<typeof AnyLinkValueContentSchema>
|
|
100
|
+
export type EmptyLinkValueContent =
|
|
101
|
+
| EmptyImageLinkValueContent
|
|
102
|
+
| EmptyFileLinkValueContent
|
|
103
|
+
| EmptyMediaLinkValueContent
|
|
104
|
+
| EmptyDocumentLinkValueContent
|
|
105
|
+
| EmptyExternalLinkValueContent
|
|
106
|
+
| AnyLinkValueContent
|
|
107
|
+
|
|
108
|
+
const LinkValueContentSchema: z.ZodMiniType<LinkValueContent> = z.union([
|
|
109
|
+
FilledLinkValueContentSchema,
|
|
110
|
+
EmptyLinkValueContentSchema,
|
|
111
|
+
])
|
|
112
|
+
|
|
113
|
+
// Used by content/codec/link
|
|
114
|
+
export type LinkValueContent = FilledLinkValueContent | EmptyLinkValueContent
|
|
115
|
+
|
|
116
|
+
// Content
|
|
117
|
+
export const LinkContentType = "LinkContent" as const
|
|
118
|
+
|
|
119
|
+
export const LinkContentSchema = z.object({
|
|
120
|
+
__TYPE__: z.literal(LinkContentType),
|
|
121
|
+
key: z.transform((value) => z.uuidv4().safeParse(value).data || crypto.randomUUID()),
|
|
122
|
+
// We cannot use z.extend here because we're working with unions.
|
|
123
|
+
// z.intersection wouldn't work also for the same reason.
|
|
124
|
+
value: z.pipe(
|
|
125
|
+
z.pipe(
|
|
126
|
+
z.pipe(
|
|
127
|
+
z.record(z.string(), z.unknown()),
|
|
128
|
+
z.transform(
|
|
129
|
+
({
|
|
130
|
+
text,
|
|
131
|
+
variant,
|
|
132
|
+
...value
|
|
133
|
+
}): {
|
|
134
|
+
text?: unknown
|
|
135
|
+
variant?: unknown
|
|
136
|
+
value: Record<string, unknown>
|
|
137
|
+
} => ({ text, variant, value }),
|
|
138
|
+
),
|
|
139
|
+
),
|
|
140
|
+
z.object({
|
|
141
|
+
text: z.optional(z.string()),
|
|
142
|
+
variant: z.optional(z.string()),
|
|
143
|
+
value: LinkValueContentSchema as z.ZodMiniType<LinkValueContent, Record<string, unknown>>,
|
|
144
|
+
}),
|
|
145
|
+
),
|
|
146
|
+
z.transform(({ text, variant, value }) => ({
|
|
147
|
+
...(text ? { text } : {}),
|
|
148
|
+
...(variant ? { variant } : {}),
|
|
149
|
+
...value,
|
|
150
|
+
})),
|
|
151
|
+
),
|
|
152
|
+
})
|
|
153
|
+
|
|
154
|
+
export type LinkContent = z.infer<typeof LinkContentSchema>
|
|
@@ -0,0 +1,126 @@
|
|
|
1
|
+
import { z } from "zod/mini"
|
|
2
|
+
|
|
3
|
+
import type { NestableModel } from "../model/nestable"
|
|
4
|
+
import type { BooleanContent } from "./boolean"
|
|
5
|
+
import { BooleanContentDefaultValue, BooleanContentSchema, BooleanContentType } from "./boolean"
|
|
6
|
+
import type { EmbedContent } from "./embed"
|
|
7
|
+
import { EmbedContentSchema, EmbedContentType } from "./embed"
|
|
8
|
+
import type { EmptyContent } from "./empty"
|
|
9
|
+
import { EmptyContentSchema, EmptyContentType } from "./empty"
|
|
10
|
+
import type {
|
|
11
|
+
ColorContent,
|
|
12
|
+
DateContent,
|
|
13
|
+
NumberContent,
|
|
14
|
+
RangeContent,
|
|
15
|
+
SelectContent,
|
|
16
|
+
TextContent,
|
|
17
|
+
TimestampContent,
|
|
18
|
+
} from "./field"
|
|
19
|
+
import {
|
|
20
|
+
ColorContentSchema,
|
|
21
|
+
DateContentSchema,
|
|
22
|
+
FieldContentType,
|
|
23
|
+
NumberContentSchema,
|
|
24
|
+
RangeContentSchema,
|
|
25
|
+
SelectContentDefaultValue,
|
|
26
|
+
SelectContentSchema,
|
|
27
|
+
TextContentSchema,
|
|
28
|
+
TimestampContentSchema,
|
|
29
|
+
} from "./field"
|
|
30
|
+
import type { GeoPointContent } from "./geopoint"
|
|
31
|
+
import { GeoPointContentSchema, GeoPointContentType } from "./geopoint"
|
|
32
|
+
import type { ImageContent } from "./image"
|
|
33
|
+
import { ImageContentSchema, ImageContentType } from "./image"
|
|
34
|
+
import type { IntegrationFieldContent } from "./integrationField"
|
|
35
|
+
import { IntegrationFieldContentSchema, IntegrationFieldContentType } from "./integrationField"
|
|
36
|
+
import type { LinkContent } from "./link"
|
|
37
|
+
import { LinkContentSchema, LinkContentType } from "./link"
|
|
38
|
+
import type { RepeatableContent } from "./repeatable"
|
|
39
|
+
import { RepeatableContentSchema, RepeatableContentType } from "./repeatable"
|
|
40
|
+
import type { RichTextContent } from "./richText"
|
|
41
|
+
import { RichTextContentSchema, RichTextContentType } from "./richText"
|
|
42
|
+
import type { SeparatorContent } from "./separator"
|
|
43
|
+
import { SeparatorContentSchema, SeparatorContentType } from "./separator"
|
|
44
|
+
import type { TableContent } from "./table"
|
|
45
|
+
import { TableContentSchema, TableContentType } from "./table"
|
|
46
|
+
|
|
47
|
+
export const NestableContentSchema: z.ZodMiniType<NestableContent> = z.union([
|
|
48
|
+
EmptyContentSchema,
|
|
49
|
+
BooleanContentSchema,
|
|
50
|
+
ColorContentSchema,
|
|
51
|
+
DateContentSchema,
|
|
52
|
+
EmbedContentSchema,
|
|
53
|
+
GeoPointContentSchema,
|
|
54
|
+
ImageContentSchema,
|
|
55
|
+
IntegrationFieldContentSchema,
|
|
56
|
+
LinkContentSchema,
|
|
57
|
+
NumberContentSchema,
|
|
58
|
+
RangeContentSchema,
|
|
59
|
+
RepeatableContentSchema,
|
|
60
|
+
RichTextContentSchema,
|
|
61
|
+
SelectContentSchema,
|
|
62
|
+
SeparatorContentSchema,
|
|
63
|
+
TableContentSchema,
|
|
64
|
+
TextContentSchema,
|
|
65
|
+
TimestampContentSchema,
|
|
66
|
+
])
|
|
67
|
+
|
|
68
|
+
export type NestableContent =
|
|
69
|
+
| EmptyContent
|
|
70
|
+
| BooleanContent
|
|
71
|
+
| ColorContent
|
|
72
|
+
| DateContent
|
|
73
|
+
| EmbedContent
|
|
74
|
+
| GeoPointContent
|
|
75
|
+
| ImageContent
|
|
76
|
+
| IntegrationFieldContent
|
|
77
|
+
| LinkContent
|
|
78
|
+
| NumberContent
|
|
79
|
+
| RangeContent
|
|
80
|
+
| RepeatableContent
|
|
81
|
+
| RichTextContent
|
|
82
|
+
| SelectContent
|
|
83
|
+
| SeparatorContent
|
|
84
|
+
| TableContent
|
|
85
|
+
| TextContent
|
|
86
|
+
| TimestampContent
|
|
87
|
+
|
|
88
|
+
const NestableContentTypes = [
|
|
89
|
+
EmptyContentType,
|
|
90
|
+
BooleanContentType,
|
|
91
|
+
EmbedContentType,
|
|
92
|
+
FieldContentType,
|
|
93
|
+
GeoPointContentType,
|
|
94
|
+
ImageContentType,
|
|
95
|
+
IntegrationFieldContentType,
|
|
96
|
+
LinkContentType,
|
|
97
|
+
RepeatableContentType,
|
|
98
|
+
RichTextContentType,
|
|
99
|
+
SeparatorContentType,
|
|
100
|
+
TableContentType,
|
|
101
|
+
]
|
|
102
|
+
type NestableContentType = (typeof NestableContentTypes)[number]
|
|
103
|
+
|
|
104
|
+
/** @internal */
|
|
105
|
+
export function isNestableContent(content: {
|
|
106
|
+
__TYPE__: string
|
|
107
|
+
}): content is { __TYPE__: NestableContentType } {
|
|
108
|
+
return (NestableContentTypes as string[]).includes(content.__TYPE__)
|
|
109
|
+
}
|
|
110
|
+
|
|
111
|
+
/**
|
|
112
|
+
* Returns the default value for a nestable widget based on its configuration.
|
|
113
|
+
* Currently only Boolean and Select fields have default values.
|
|
114
|
+
*/
|
|
115
|
+
export const NestableContentDefaultValue = (
|
|
116
|
+
widgetDef: NestableModel,
|
|
117
|
+
): NestableContent | undefined => {
|
|
118
|
+
switch (widgetDef.type) {
|
|
119
|
+
case "Boolean":
|
|
120
|
+
return BooleanContentDefaultValue(widgetDef)
|
|
121
|
+
case "Select":
|
|
122
|
+
return SelectContentDefaultValue(widgetDef)
|
|
123
|
+
default:
|
|
124
|
+
return undefined
|
|
125
|
+
}
|
|
126
|
+
}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { z } from "zod/mini"
|
|
2
|
+
|
|
3
|
+
import { LinkContentSchema, LinkContentType } from "./link"
|
|
4
|
+
|
|
5
|
+
export const RepeatableContentType = "RepeatableContent" as const
|
|
6
|
+
|
|
7
|
+
export const RepeatableContentSchema = z.object({
|
|
8
|
+
__TYPE__: z.literal(RepeatableContentType),
|
|
9
|
+
type: z.literal("Link"),
|
|
10
|
+
value: z.array(LinkContentSchema),
|
|
11
|
+
})
|
|
12
|
+
|
|
13
|
+
export type RepeatableContent = z.infer<typeof RepeatableContentSchema>
|
|
14
|
+
|
|
15
|
+
const RepeatableContentTypes = [LinkContentType]
|
|
16
|
+
type RepeatableContentType = (typeof RepeatableContentTypes)[number]
|
|
17
|
+
export function isRepeatableContentValue(content: {
|
|
18
|
+
__TYPE__: string
|
|
19
|
+
}): content is { __TYPE__: RepeatableContentType } {
|
|
20
|
+
return (RepeatableContentTypes as string[]).includes(content.__TYPE__)
|
|
21
|
+
}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { z } from "zod/mini"
|
|
2
|
+
|
|
3
|
+
import { EmbedContentSchema } from "./embed"
|
|
4
|
+
import { ImageViewContentSchema } from "./image"
|
|
5
|
+
import {
|
|
6
|
+
getEmbedBlockSchema,
|
|
7
|
+
getImageBlockSchema,
|
|
8
|
+
getSpanSchema,
|
|
9
|
+
getTextBlockSchema,
|
|
10
|
+
} from "./legacy/richText"
|
|
11
|
+
import type { Span } from "./legacy/richText"
|
|
12
|
+
import type { FilledLinkValueContent } from "./link"
|
|
13
|
+
import { FilledLinkValueContentSchema } from "./link"
|
|
14
|
+
|
|
15
|
+
// Spans
|
|
16
|
+
export type RichTextContentSpan = Span<FilledLinkValueContent>
|
|
17
|
+
|
|
18
|
+
export const RichTextContentSpanSchema: z.ZodMiniType<RichTextContentSpan> = getSpanSchema(
|
|
19
|
+
FilledLinkValueContentSchema,
|
|
20
|
+
)
|
|
21
|
+
|
|
22
|
+
// Blocks
|
|
23
|
+
const TextBlockValueSchema = getTextBlockSchema(FilledLinkValueContentSchema)
|
|
24
|
+
type TextBlockValue = z.infer<typeof TextBlockValueSchema>
|
|
25
|
+
|
|
26
|
+
const ImageBlockValueSchema = getImageBlockSchema(
|
|
27
|
+
ImageViewContentSchema,
|
|
28
|
+
FilledLinkValueContentSchema,
|
|
29
|
+
)
|
|
30
|
+
type ImageBlockValue = z.infer<typeof ImageBlockValueSchema>
|
|
31
|
+
|
|
32
|
+
const EmbedBlockValueSchema = getEmbedBlockSchema(EmbedContentSchema)
|
|
33
|
+
type EmbedBlockValue = z.infer<typeof EmbedBlockValueSchema>
|
|
34
|
+
|
|
35
|
+
export const RichTextContentBlockSchema: z.ZodMiniType<RichTextContentBlock> = z.union([
|
|
36
|
+
TextBlockValueSchema,
|
|
37
|
+
ImageBlockValueSchema,
|
|
38
|
+
EmbedBlockValueSchema,
|
|
39
|
+
])
|
|
40
|
+
|
|
41
|
+
// Used by content/codec/richText
|
|
42
|
+
export type RichTextContentBlock = TextBlockValue | ImageBlockValue | EmbedBlockValue
|
|
43
|
+
|
|
44
|
+
export const RichTextContentType = "StructuredTextContent" as const
|
|
45
|
+
|
|
46
|
+
export type RichTextContent = {
|
|
47
|
+
__TYPE__: typeof RichTextContentType
|
|
48
|
+
value: RichTextContentBlock[]
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export const RichTextContentSchema: z.ZodMiniType<RichTextContent> = z.object({
|
|
52
|
+
__TYPE__: z.literal(RichTextContentType),
|
|
53
|
+
value: z.array(RichTextContentBlockSchema),
|
|
54
|
+
})
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { z } from "zod/mini"
|
|
2
|
+
|
|
3
|
+
export const SeparatorContentType = "SeparatorContent" as const
|
|
4
|
+
|
|
5
|
+
export const SeparatorContentSchema = z.object({
|
|
6
|
+
__TYPE__: z.literal(SeparatorContentType),
|
|
7
|
+
})
|
|
8
|
+
|
|
9
|
+
export type SeparatorContent = z.infer<typeof SeparatorContentSchema>
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { z } from "zod/mini"
|
|
2
|
+
|
|
3
|
+
import { GroupItemContentSchema, NestableAndGroupContentSchema } from "./group"
|
|
4
|
+
import { NestableContentSchema } from "./nestable"
|
|
5
|
+
|
|
6
|
+
// Legacy (before 2020)
|
|
7
|
+
export const LegacySliceContentSchema = NestableAndGroupContentSchema
|
|
8
|
+
|
|
9
|
+
export type LegacySliceContent = z.infer<typeof LegacySliceContentSchema>
|
|
10
|
+
|
|
11
|
+
// Composite (2020 to 2021)
|
|
12
|
+
export const CompositeSliceContentType = "CompositeSliceContent" as const
|
|
13
|
+
|
|
14
|
+
export const CompositeSliceContentSchema = z.object({
|
|
15
|
+
__TYPE__: z.literal(CompositeSliceContentType),
|
|
16
|
+
nonRepeat: z.record(z.string(), NestableContentSchema),
|
|
17
|
+
repeat: z.array(GroupItemContentSchema),
|
|
18
|
+
})
|
|
19
|
+
|
|
20
|
+
export type CompositeSliceContent = z.infer<typeof CompositeSliceContentSchema>
|
|
21
|
+
|
|
22
|
+
// Shared (2021 to present)
|
|
23
|
+
export const SharedSliceContentType = "SharedSliceContent" as const
|
|
24
|
+
|
|
25
|
+
export const SharedSliceContentSchema = z.object({
|
|
26
|
+
__TYPE__: z.literal(SharedSliceContentType),
|
|
27
|
+
variation: z.string(),
|
|
28
|
+
primary: z.record(z.string(), NestableAndGroupContentSchema),
|
|
29
|
+
items: z.array(GroupItemContentSchema),
|
|
30
|
+
})
|
|
31
|
+
|
|
32
|
+
export type SharedSliceContent = z.infer<typeof SharedSliceContentSchema>
|
|
33
|
+
|
|
34
|
+
// All
|
|
35
|
+
export const SliceContentSchema: z.ZodMiniType<SliceContent> = z.union([
|
|
36
|
+
LegacySliceContentSchema,
|
|
37
|
+
CompositeSliceContentSchema,
|
|
38
|
+
SharedSliceContentSchema,
|
|
39
|
+
])
|
|
40
|
+
|
|
41
|
+
export type SliceContent = LegacySliceContent | CompositeSliceContent | SharedSliceContent
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import { z } from "zod/mini"
|
|
2
|
+
|
|
3
|
+
import {
|
|
4
|
+
CompositeSliceContentSchema,
|
|
5
|
+
SharedSliceContentSchema,
|
|
6
|
+
LegacySliceContentSchema,
|
|
7
|
+
SliceContentSchema,
|
|
8
|
+
} from "./slice"
|
|
9
|
+
|
|
10
|
+
// Item
|
|
11
|
+
const getSliceItemContentSchema = <
|
|
12
|
+
TWidgetSchema extends
|
|
13
|
+
| typeof LegacySliceContentSchema
|
|
14
|
+
| typeof CompositeSliceContentSchema
|
|
15
|
+
| typeof SharedSliceContentSchema
|
|
16
|
+
| typeof SliceContentSchema,
|
|
17
|
+
>(
|
|
18
|
+
widgetSchema: TWidgetSchema,
|
|
19
|
+
) => {
|
|
20
|
+
return z.object({
|
|
21
|
+
key: z.string(),
|
|
22
|
+
name: z.string(),
|
|
23
|
+
maybeLabel: z.optional(z.string()),
|
|
24
|
+
widget: widgetSchema,
|
|
25
|
+
})
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
export const LegacySliceItemContentSchema = getSliceItemContentSchema(LegacySliceContentSchema)
|
|
29
|
+
|
|
30
|
+
export type LegacySliceItemContent = z.infer<typeof LegacySliceItemContentSchema>
|
|
31
|
+
|
|
32
|
+
export const CompositeSliceItemContentSchema = getSliceItemContentSchema(
|
|
33
|
+
CompositeSliceContentSchema,
|
|
34
|
+
)
|
|
35
|
+
|
|
36
|
+
export type CompositeSliceItemContent = z.infer<typeof CompositeSliceItemContentSchema>
|
|
37
|
+
|
|
38
|
+
export const SharedSliceItemContentSchema = getSliceItemContentSchema(SharedSliceContentSchema)
|
|
39
|
+
|
|
40
|
+
export type SharedSliceItemContent = z.infer<typeof SharedSliceItemContentSchema>
|
|
41
|
+
|
|
42
|
+
// All
|
|
43
|
+
export const SliceItemContentSchema = getSliceItemContentSchema(SliceContentSchema)
|
|
44
|
+
|
|
45
|
+
export type SliceItemContent = z.infer<typeof SliceItemContentSchema>
|
|
46
|
+
|
|
47
|
+
// Slices
|
|
48
|
+
|
|
49
|
+
// Typo (missing `s`) is legacy...
|
|
50
|
+
export const SlicesContentType = "SliceContentType" as const
|
|
51
|
+
|
|
52
|
+
export const SlicesContentSchema = z.object({
|
|
53
|
+
__TYPE__: z.literal(SlicesContentType),
|
|
54
|
+
value: z.array(SliceItemContentSchema),
|
|
55
|
+
})
|
|
56
|
+
|
|
57
|
+
export type SlicesContent = z.infer<typeof SlicesContentSchema>
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { z } from "zod/mini"
|
|
2
|
+
|
|
3
|
+
import { getTableRowSchema } from "./legacy/table"
|
|
4
|
+
import { RichTextContentSchema } from "./richText"
|
|
5
|
+
|
|
6
|
+
export const TableContentType = "TableContent" as const
|
|
7
|
+
|
|
8
|
+
// Table
|
|
9
|
+
export const TableContentSchema = z.object({
|
|
10
|
+
__TYPE__: z.literal(TableContentType),
|
|
11
|
+
content: z.array(getTableRowSchema(RichTextContentSchema)),
|
|
12
|
+
})
|
|
13
|
+
|
|
14
|
+
export type TableContent = z.infer<typeof TableContentSchema>
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { z } from "zod/mini"
|
|
2
|
+
|
|
3
|
+
import type { GroupContent } from "./group"
|
|
4
|
+
import { GroupContentSchema } from "./group"
|
|
5
|
+
import type { NestableContent } from "./nestable"
|
|
6
|
+
import { NestableContentSchema } from "./nestable"
|
|
7
|
+
import type { SlicesContent } from "./slices"
|
|
8
|
+
import { SlicesContentSchema } from "./slices"
|
|
9
|
+
import type { UIDContent } from "./uid"
|
|
10
|
+
import { UIDContentSchema } from "./uid"
|
|
11
|
+
|
|
12
|
+
export const WidgetContentSchema: z.ZodMiniType<WidgetContent> = z.union([
|
|
13
|
+
GroupContentSchema,
|
|
14
|
+
NestableContentSchema,
|
|
15
|
+
UIDContentSchema,
|
|
16
|
+
SlicesContentSchema,
|
|
17
|
+
])
|
|
18
|
+
|
|
19
|
+
export type WidgetContent = GroupContent | NestableContent | UIDContent | SlicesContent
|
|
20
|
+
|
|
21
|
+
export type ContentType = WidgetContent["__TYPE__"]
|
|
@@ -1,35 +1,29 @@
|
|
|
1
|
-
import {
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
GroupFieldType,
|
|
6
|
-
} from "../../customtypes"
|
|
7
|
-
import {
|
|
8
|
-
GroupContent,
|
|
9
|
-
GroupContentDefaultValue,
|
|
10
|
-
GroupContentType,
|
|
11
|
-
groupContentWithDefaultValues,
|
|
12
|
-
isGroupContent,
|
|
13
|
-
} from "./GroupContent"
|
|
14
|
-
import type { NestableContent } from "./nestable"
|
|
1
|
+
import type { GroupModel, NestedGroupModel } from "../model/group"
|
|
2
|
+
import type { NestableModel } from "../model/nestable"
|
|
3
|
+
import { GroupContentType, groupContentWithDefaultValues, GroupContentSchema } from "./group"
|
|
4
|
+
import type { GroupContent } from "./group"
|
|
15
5
|
import { NestableContentDefaultValue } from "./nestable"
|
|
16
|
-
import type {
|
|
6
|
+
import type { NestableContent } from "./nestable"
|
|
17
7
|
|
|
8
|
+
/**
|
|
9
|
+
* Applies default values to slice primary content (non-repeat zone) based on the model configuration.
|
|
10
|
+
* For each widget in the customType that has no corresponding content, this will add the default value.
|
|
11
|
+
*/
|
|
18
12
|
export function withDefaultSlicePrimaryContentValues(
|
|
19
|
-
customType: Record<string,
|
|
20
|
-
content: Partial<Record<string,
|
|
21
|
-
): Record<string,
|
|
22
|
-
const updatedContent = content as Record<string,
|
|
13
|
+
customType: Record<string, NestableModel | NestedGroupModel>,
|
|
14
|
+
content: Partial<Record<string, NestableContent | GroupContent>>,
|
|
15
|
+
): Record<string, NestableContent | GroupContent> {
|
|
16
|
+
const updatedContent = content as Record<string, NestableContent | GroupContent>
|
|
23
17
|
|
|
24
18
|
for (const [widgetKey, widgetDef] of Object.entries(customType)) {
|
|
25
19
|
const widgetContent = content[widgetKey]
|
|
26
20
|
|
|
27
21
|
if (widgetContent === undefined) {
|
|
28
|
-
if (widgetDef.type ===
|
|
29
|
-
updatedContent[widgetKey] = groupContentWithDefaultValues(
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
)
|
|
22
|
+
if (widgetDef.type === "Group") {
|
|
23
|
+
updatedContent[widgetKey] = groupContentWithDefaultValues(widgetDef, {
|
|
24
|
+
__TYPE__: GroupContentType,
|
|
25
|
+
value: [],
|
|
26
|
+
})
|
|
33
27
|
} else {
|
|
34
28
|
const defaultValue = NestableContentDefaultValue(widgetDef)
|
|
35
29
|
|
|
@@ -41,19 +35,21 @@ export function withDefaultSlicePrimaryContentValues(
|
|
|
41
35
|
continue
|
|
42
36
|
}
|
|
43
37
|
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
widgetContent,
|
|
48
|
-
)
|
|
38
|
+
const maybeGroupContent = GroupContentSchema.safeParse(widgetContent)
|
|
39
|
+
if (widgetDef.type === "Group" && maybeGroupContent.success) {
|
|
40
|
+
updatedContent[widgetKey] = groupContentWithDefaultValues(widgetDef, maybeGroupContent.data)
|
|
49
41
|
}
|
|
50
42
|
}
|
|
51
43
|
|
|
52
44
|
return updatedContent
|
|
53
45
|
}
|
|
54
46
|
|
|
47
|
+
/**
|
|
48
|
+
* Applies default values to nestable content based on the model configuration.
|
|
49
|
+
* For each widget in the customType that has no corresponding content, this will add the default value.
|
|
50
|
+
*/
|
|
55
51
|
export function withDefaultNestableContentValues(
|
|
56
|
-
customType: Record<string,
|
|
52
|
+
customType: Record<string, NestableModel>,
|
|
57
53
|
content: Record<string, NestableContent>,
|
|
58
54
|
): Record<string, NestableContent> {
|
|
59
55
|
return Object.entries(customType).reduce<Record<string, NestableContent>>(
|
|
@@ -64,7 +60,7 @@ export function withDefaultNestableContentValues(
|
|
|
64
60
|
? {
|
|
65
61
|
...updatedContent,
|
|
66
62
|
[widgetKey]: defaultValue,
|
|
67
|
-
|
|
63
|
+
}
|
|
68
64
|
: updatedContent
|
|
69
65
|
}
|
|
70
66
|
|
|
@@ -74,17 +70,19 @@ export function withDefaultNestableContentValues(
|
|
|
74
70
|
)
|
|
75
71
|
}
|
|
76
72
|
|
|
73
|
+
/**
|
|
74
|
+
* Applies default values to repeatable content items (like group items or slice repeat zones).
|
|
75
|
+
* For each item, it ensures all required fields have values based on the model configuration.
|
|
76
|
+
*/
|
|
77
77
|
export function repeatableContentWithDefaultNestableContentValues<
|
|
78
78
|
T extends {
|
|
79
79
|
value: [string, GroupContent | NestableContent][]
|
|
80
80
|
},
|
|
81
|
-
>(fields: Record<string,
|
|
81
|
+
>(fields: Record<string, GroupModel | NestableModel>, content: T[]): T[] {
|
|
82
82
|
const groupKeys = Object.entries(fields)
|
|
83
83
|
return content.map((contentItem) => {
|
|
84
84
|
return groupKeys.reduce((updatedContentItem, [key, fieldDef]) => {
|
|
85
|
-
const maybeContentItemValue = contentItem.value.find(
|
|
86
|
-
([_key]) => _key === key,
|
|
87
|
-
)
|
|
85
|
+
const maybeContentItemValue = contentItem.value.find(([_key]) => _key === key)
|
|
88
86
|
|
|
89
87
|
if (fieldDef.type === "Group") {
|
|
90
88
|
const defaultValue = groupContentWithDefaultValues(
|
|
@@ -106,10 +104,7 @@ export function repeatableContentWithDefaultNestableContentValues<
|
|
|
106
104
|
const defaultValue = NestableContentDefaultValue(fieldDef)
|
|
107
105
|
return {
|
|
108
106
|
...updatedContentItem,
|
|
109
|
-
value: [
|
|
110
|
-
...updatedContentItem.value,
|
|
111
|
-
...(defaultValue ? [[key, defaultValue]] : []),
|
|
112
|
-
],
|
|
107
|
+
value: [...updatedContentItem.value, ...(defaultValue ? [[key, defaultValue]] : [])],
|
|
113
108
|
}
|
|
114
109
|
}
|
|
115
110
|
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export type Part = {
|
|
2
|
+
type:
|
|
3
|
+
| "CustomType"
|
|
4
|
+
| "Widget"
|
|
5
|
+
| "SharedSlice"
|
|
6
|
+
| "Slice"
|
|
7
|
+
| "LegacySlice"
|
|
8
|
+
| "GroupItem"
|
|
9
|
+
| "primary"
|
|
10
|
+
| "items"
|
|
11
|
+
| "RepeatableItem"
|
|
12
|
+
key: string
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export type Path = ReadonlyArray<Part>
|
|
16
|
+
|
|
17
|
+
const PATH_SEPARATOR = "::"
|
|
18
|
+
|
|
19
|
+
export function serialize(path: Path): string {
|
|
20
|
+
return path.map((part) => part.key).join(PATH_SEPARATOR)
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
export function current(path: Path): Part | undefined {
|
|
24
|
+
return path[path.length - 1]
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
export function append(path: string, strElement: string): string {
|
|
28
|
+
return path + PATH_SEPARATOR + strElement
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
export function make(...entries: (Pick<Part, "type"> & Partial<Pick<Part, "key">>)[]): Path {
|
|
32
|
+
return entries.reduce<Path>((acc, { key, type }) => {
|
|
33
|
+
return key ? acc.concat({ key, type }) : acc
|
|
34
|
+
}, [])
|
|
35
|
+
}
|