@prismicio/types-internal
Version:
Prismic types for Custom Types and Prismic Data
50 lines (49 loc) • 1.89 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.Widgets = exports.FieldType = exports.DynamicWidget = exports.StaticWidget = exports.widgetReader = void 0;
const tslib_1 = require("tslib");
const t = (0, tslib_1.__importStar)(require("io-ts"));
const Group_1 = require("./Group");
const nestable_1 = require("./nestable");
const NestableWidget_1 = require("./nestable/NestableWidget");
const Slices_1 = require("./slices/Slices");
const UID_1 = require("./UID");
function widgetReader(codec) {
return t.union([UID_1.UID, NestableWidget_1.NestableWidget, Group_1.Group, codec]);
}
exports.widgetReader = widgetReader;
exports.StaticWidget = widgetReader(Slices_1.StaticSlices);
exports.DynamicWidget = widgetReader(Slices_1.DynamicSlices);
exports.FieldType = t.keyof({
[nestable_1.ColorFieldType]: null,
[nestable_1.BooleanFieldType]: null,
[nestable_1.NumberFieldType]: null,
[nestable_1.EmbedFieldType]: null,
[nestable_1.GeoPointFieldType]: null,
[nestable_1.DateFieldType]: null,
[nestable_1.RangeFieldType]: null,
[nestable_1.RichTextFieldType]: null,
[nestable_1.SelectFieldType]: null,
[nestable_1.SeparatorFieldType]: null,
[nestable_1.TableFieldType]: null,
[nestable_1.TextFieldType]: null,
[nestable_1.TimestampFieldType]: null,
[nestable_1.LinkFieldType]: null,
[nestable_1.ImageFieldType]: null,
[nestable_1.IntegrationFieldType]: null,
[UID_1.UIDFieldType]: null,
[Group_1.GroupFieldType]: null,
[Slices_1.SlicesFieldType]: null,
[Slices_1.LegacySlicesFieldType]: null,
});
exports.Widgets = {
toStatic(widget, sharedSlices) {
switch (widget.type) {
case "Choice":
case "Slices":
return Slices_1.Slices.toStatic(widget, sharedSlices);
default:
return widget;
}
},
};