UNPKG

@becklyn/contentful-adapter

Version:

[![CI](https://github.com/Becklyn-Studios/contentful-adapter/actions/workflows/ci.yml/badge.svg)](https://github.com/Becklyn-Studios/contentful-adapter/actions/workflows/ci.yml)

132 lines (131 loc) 5.47 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.getBlockCardsSliderTeaserMigration = exports.VERSION_CARDS_SLIDER_TEASER = void 0; const block_1 = require("./block"); const rte_1 = require("../rte"); exports.VERSION_CARDS_SLIDER_TEASER = { en: { threeEntries: "Three Entries", fourEntries: "Four Entries", }, de: { threeEntries: "Drei Einträge", fourEntries: "Vier Einträge", }, }; const translations = { en: { blockCardsSliderTeaser: { name: "🧩 Block > Cards Slider Teaser", fields: { overline: "Overline", headline: "Headline", labeledLink: "Button", entries: "Entries", version: { name: "Version", default: exports.VERSION_CARDS_SLIDER_TEASER.en.threeEntries, in: [ exports.VERSION_CARDS_SLIDER_TEASER.en.threeEntries, exports.VERSION_CARDS_SLIDER_TEASER.en.fourEntries, ], }, }, }, }, de: { blockCardsSliderTeaser: { name: "🧩 Block > Cards Slider Teaser", fields: { overline: "Overline", headline: "Überschrift", labeledLink: "Button", entries: "Einträge", version: { name: "Version", default: exports.VERSION_CARDS_SLIDER_TEASER.de.threeEntries, in: [ exports.VERSION_CARDS_SLIDER_TEASER.de.threeEntries, exports.VERSION_CARDS_SLIDER_TEASER.de.fourEntries, ], }, }, }, }, }; const getBlockCardsSliderTeaserMigration = (language) => { const t = translations[language]; return { component: "blockCardsSliderTeaser", migrations: { 1: migration => { const blockCardsSliderTeaser = migration.createContentType("blockCardsSliderTeaser", { name: t.blockCardsSliderTeaser.name, }); blockCardsSliderTeaser.createField("overline", { type: "Symbol", name: t.blockCardsSliderTeaser.fields.overline, }); blockCardsSliderTeaser.createField("headline", { type: "Symbol", name: t.blockCardsSliderTeaser.fields.headline, required: true, }); blockCardsSliderTeaser.createField("entries", { type: "Array", name: t.blockCardsSliderTeaser.fields.entries, items: { type: "Link", linkType: "Entry", validations: [{ linkContentType: ["card"] }], }, required: true, }); blockCardsSliderTeaser.createField("labeledLink", { type: "Link", name: t.blockCardsSliderTeaser.fields.labeledLink, linkType: "Entry", validations: [{ linkContentType: ["labeledLink"] }], }); (0, block_1.migrateBaseBlockFields)(blockCardsSliderTeaser, language); }, 2: migration => { const blockCardsSliderTeaser = migration.editContentType("blockCardsSliderTeaser"); blockCardsSliderTeaser.deleteField("headline"); blockCardsSliderTeaser.createField("headline", { type: "RichText", name: t.blockCardsSliderTeaser.fields.headline, validations: (0, rte_1.getRteValidation)(rte_1.RTE_TYPE_HEADLINE), }); blockCardsSliderTeaser.moveField("headline").afterField("name"); }, 3: migration => { const blockCardsSliderTeaser = migration.editContentType("blockCardsSliderTeaser"); blockCardsSliderTeaser.editField("headline").required(true); blockCardsSliderTeaser.moveField("headline").afterField("overline"); }, 4: migration => { const blockCardsSliderTeaser = migration.editContentType("blockCardsSliderTeaser"); blockCardsSliderTeaser.createField("version", { type: "Symbol", name: t.blockCardsSliderTeaser.fields.version.name, required: true, defaultValue: { [language]: t.blockCardsSliderTeaser.fields.version.default, }, validations: [ { in: t.blockCardsSliderTeaser.fields.version.in, }, ], }); blockCardsSliderTeaser.moveField("version").afterField("theme"); }, 5: migration => { const blockCardsSliderTeaser = migration.editContentType("blockCardsSliderTeaser"); blockCardsSliderTeaser.changeFieldControl("version", "builtin", "radio"); }, }, }; }; exports.getBlockCardsSliderTeaserMigration = getBlockCardsSliderTeaserMigration;