@prismicio/types-internal 4.0.0-pr.6.7b0b0be → 4.0.0-pr.6.e3136c3
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/helpers/documentContent.js +1 -1
- package/dist/helpers/documentContent.js.map +1 -1
- package/dist/helpers/traverseContent.d.ts +6 -6
- package/dist/helpers/traverseContent.d.ts.map +1 -1
- package/dist/helpers/traverseContent.js +3 -3
- package/dist/helpers/traverseContent.js.map +1 -1
- package/dist/helpers/traverseContentWithModel.d.ts +6 -6
- package/dist/helpers/traverseContentWithModel.d.ts.map +1 -1
- package/dist/helpers/traverseContentWithModel.js +3 -3
- package/dist/helpers/traverseContentWithModel.js.map +1 -1
- package/dist/io-ts.d.ts +20 -20
- package/dist/model/widget.d.ts +8 -8
- package/package.json +1 -1
- package/src/helpers/documentContent.ts +1 -1
- package/src/helpers/traverseContent.ts +11 -23
- package/src/helpers/traverseContentWithModel.ts +12 -22
|
@@ -33,7 +33,7 @@ function fromLegacy(legacy) {
|
|
|
33
33
|
const parsed = z.uuidv4().safeParse(value);
|
|
34
34
|
if (parsed.success) keys.set(key.substring(0, key.length - 4), parsed.data);
|
|
35
35
|
} else if (!key.endsWith("_POSITION")) widgets[key] = value;
|
|
36
|
-
const result = DocumentLegacyCodec(defaultCtx("", types, keys)).toContent(
|
|
36
|
+
const result = DocumentLegacyCodec(defaultCtx("", types, keys)).toContent(parsed.data);
|
|
37
37
|
if (!result.success) return;
|
|
38
38
|
return result.data;
|
|
39
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"documentContent.js","names":["contentPath.serialize"],"sources":["../../src/helpers/documentContent.ts"],"sourcesContent":["import { z } from \"zod/mini\"\n\nimport { DocumentLegacyCodec } from \"../content/codec/document\"\nimport { defaultCtx } from \"../content/codec/legacyContentCtx\"\nimport type { DocumentContent } from \"../content/document\"\nimport type { DocumentLegacy } from \"../content/legacy/document\"\nimport { DocumentLegacySchema } from \"../content/legacy/document\"\nimport type { WidgetContent } from \"../content/widget\"\nimport type { FieldOrSliceType } from \"../model/widget\"\nimport { FieldOrSliceTypeSchema } from \"../model/widget\"\nimport * as contentPath from \"./contentPath\"\nimport { traverseDocumentContent } from \"./traverseContent\"\n\nexport function collectWidgets<TWidgetContent extends WidgetContent>(\n\tdocument: DocumentContent,\n\ttest: (args: {\n\t\tpath: contentPath.Path\n\t\tkey: string\n\t\tapiID: string\n\t\tcontent: WidgetContent\n\t}) => args is {\n\t\tpath: contentPath.Path\n\t\tkey: string\n\t\tapiID: string\n\t\tcontent: TWidgetContent\n\t},\n): Record<string, TWidgetContent> {\n\tconst collected: Record<string, TWidgetContent> = {}\n\n\ttraverseDocumentContent(document, {\n\t\ttransformWidget: (args) => {\n\t\t\tif (test(args)) {\n\t\t\t\tcollected[contentPath.serialize(args.path)] = args.content\n\t\t\t}\n\n\t\t\treturn args.content\n\t\t},\n\t})\n\n\treturn collected\n}\n\nexport function fromLegacy(legacy: DocumentLegacy): DocumentContent | undefined {\n\tconst parsed = DocumentLegacySchema.safeParse(legacy)\n\tif (!parsed.success) {\n\t\treturn\n\t}\n\n\tconst types = new Map<string, FieldOrSliceType>()\n\tconst keys = new Map<string, string>()\n\tconst widgets: DocumentLegacy = {}\n\tfor (const [key, value] of Object.entries(parsed.data)) {\n\t\tif (key.endsWith(\"_TYPE\")) {\n\t\t\tconst parsed = FieldOrSliceTypeSchema.safeParse(value)\n\t\t\tif (parsed.success) {\n\t\t\t\ttypes.set(key.substring(0, key.length - 5), parsed.data)\n\t\t\t}\n\t\t} else if (key.endsWith(\"_KEY\")) {\n\t\t\tconst parsed = z.uuidv4().safeParse(value)\n\t\t\tif (parsed.success) {\n\t\t\t\tkeys.set(key.substring(0, key.length - 4), parsed.data)\n\t\t\t}\n\t\t} else if (!key.endsWith(\"_POSITION\")) {\n\t\t\twidgets[key] = value\n\t\t}\n\t}\n\n\tconst result = DocumentLegacyCodec(defaultCtx(\"\", types, keys)).toContent(
|
|
1
|
+
{"version":3,"file":"documentContent.js","names":["contentPath.serialize"],"sources":["../../src/helpers/documentContent.ts"],"sourcesContent":["import { z } from \"zod/mini\"\n\nimport { DocumentLegacyCodec } from \"../content/codec/document\"\nimport { defaultCtx } from \"../content/codec/legacyContentCtx\"\nimport type { DocumentContent } from \"../content/document\"\nimport type { DocumentLegacy } from \"../content/legacy/document\"\nimport { DocumentLegacySchema } from \"../content/legacy/document\"\nimport type { WidgetContent } from \"../content/widget\"\nimport type { FieldOrSliceType } from \"../model/widget\"\nimport { FieldOrSliceTypeSchema } from \"../model/widget\"\nimport * as contentPath from \"./contentPath\"\nimport { traverseDocumentContent } from \"./traverseContent\"\n\nexport function collectWidgets<TWidgetContent extends WidgetContent>(\n\tdocument: DocumentContent,\n\ttest: (args: {\n\t\tpath: contentPath.Path\n\t\tkey: string\n\t\tapiID: string\n\t\tcontent: WidgetContent\n\t}) => args is {\n\t\tpath: contentPath.Path\n\t\tkey: string\n\t\tapiID: string\n\t\tcontent: TWidgetContent\n\t},\n): Record<string, TWidgetContent> {\n\tconst collected: Record<string, TWidgetContent> = {}\n\n\ttraverseDocumentContent(document, {\n\t\ttransformWidget: (args) => {\n\t\t\tif (test(args)) {\n\t\t\t\tcollected[contentPath.serialize(args.path)] = args.content\n\t\t\t}\n\n\t\t\treturn args.content\n\t\t},\n\t})\n\n\treturn collected\n}\n\nexport function fromLegacy(legacy: DocumentLegacy): DocumentContent | undefined {\n\tconst parsed = DocumentLegacySchema.safeParse(legacy)\n\tif (!parsed.success) {\n\t\treturn\n\t}\n\n\tconst types = new Map<string, FieldOrSliceType>()\n\tconst keys = new Map<string, string>()\n\tconst widgets: DocumentLegacy = {}\n\tfor (const [key, value] of Object.entries(parsed.data)) {\n\t\tif (key.endsWith(\"_TYPE\")) {\n\t\t\tconst parsed = FieldOrSliceTypeSchema.safeParse(value)\n\t\t\tif (parsed.success) {\n\t\t\t\ttypes.set(key.substring(0, key.length - 5), parsed.data)\n\t\t\t}\n\t\t} else if (key.endsWith(\"_KEY\")) {\n\t\t\tconst parsed = z.uuidv4().safeParse(value)\n\t\t\tif (parsed.success) {\n\t\t\t\tkeys.set(key.substring(0, key.length - 4), parsed.data)\n\t\t\t}\n\t\t} else if (!key.endsWith(\"_POSITION\")) {\n\t\t\twidgets[key] = value\n\t\t}\n\t}\n\n\tconst result = DocumentLegacyCodec(defaultCtx(\"\", types, keys)).toContent(parsed.data)\n\tif (!result.success) {\n\t\treturn\n\t}\n\n\treturn result.data\n}\n\nexport function toLegacy(document: DocumentContent): DocumentLegacy {\n\tconst { content, types, keys } = DocumentLegacyCodec(defaultCtx(\"\")).fromContent(document)\n\n\treturn { ...content, ...types, ...keys }\n}\n"],"mappings":";;;;;;;;;;;;;;AAaA,SAAgB,eACf,UACA,MAWiC;CACjC,MAAM,YAA4C,EAAE;AAEpD,yBAAwB,UAAU,EACjC,kBAAkB,SAAS;AAC1B,MAAI,KAAK,KAAK,CACb,WAAUA,UAAsB,KAAK,KAAK,IAAI,KAAK;AAGpD,SAAO,KAAK;IAEb,CAAC;AAEF,QAAO;;AAGR,SAAgB,WAAW,QAAqD;CAC/E,MAAM,SAAS,qBAAqB,UAAU,OAAO;AACrD,KAAI,CAAC,OAAO,QACX;CAGD,MAAM,wBAAQ,IAAI,KAA+B;CACjD,MAAM,uBAAO,IAAI,KAAqB;CACtC,MAAM,UAA0B,EAAE;AAClC,MAAK,MAAM,CAAC,KAAK,UAAU,OAAO,QAAQ,OAAO,KAAK,CACrD,KAAI,IAAI,SAAS,QAAQ,EAAE;EAC1B,MAAM,SAAS,uBAAuB,UAAU,MAAM;AACtD,MAAI,OAAO,QACV,OAAM,IAAI,IAAI,UAAU,GAAG,IAAI,SAAS,EAAE,EAAE,OAAO,KAAK;YAE/C,IAAI,SAAS,OAAO,EAAE;EAChC,MAAM,SAAS,EAAE,QAAQ,CAAC,UAAU,MAAM;AAC1C,MAAI,OAAO,QACV,MAAK,IAAI,IAAI,UAAU,GAAG,IAAI,SAAS,EAAE,EAAE,OAAO,KAAK;YAE9C,CAAC,IAAI,SAAS,YAAY,CACpC,SAAQ,OAAO;CAIjB,MAAM,SAAS,oBAAoB,WAAW,IAAI,OAAO,KAAK,CAAC,CAAC,UAAU,OAAO,KAAK;AACtF,KAAI,CAAC,OAAO,QACX;AAGD,QAAO,OAAO;;AAGf,SAAgB,SAAS,UAA2C;CACnE,MAAM,EAAE,SAAS,OAAO,SAAS,oBAAoB,WAAW,GAAG,CAAC,CAAC,YAAY,SAAS;AAE1F,QAAO;EAAE,GAAG;EAAS,GAAG;EAAO,GAAG;EAAM"}
|
|
@@ -29,20 +29,20 @@ type TraverseSlicesContentConfig = {
|
|
|
29
29
|
declare function traverseSlicesContent(path: Path, key: string, apiID: string, content: SlicesContent, config: TraverseSlicesContentConfig): SlicesContent | undefined;
|
|
30
30
|
type TraverseSharedSliceContentConfig = {
|
|
31
31
|
model?: SharedSliceVariationModel;
|
|
32
|
-
transformWidget
|
|
33
|
-
transformSlice
|
|
32
|
+
transformWidget: TraverseWidgetContentFunction;
|
|
33
|
+
transformSlice: TraverseSliceContentFunction;
|
|
34
34
|
};
|
|
35
35
|
declare function traverseSharedSliceContent(path: Path, key: string, apiID: string, content: SharedSliceItemContent, config: TraverseSharedSliceContentConfig): SharedSliceItemContent | undefined;
|
|
36
36
|
type TraverseCompositeSliceContentConfig = {
|
|
37
37
|
model?: CompositeSliceModel;
|
|
38
|
-
transformWidget
|
|
39
|
-
transformSlice
|
|
38
|
+
transformWidget: TraverseWidgetContentFunction;
|
|
39
|
+
transformSlice: TraverseSliceContentFunction;
|
|
40
40
|
};
|
|
41
41
|
declare function traverseCompositeSliceContent(path: Path, key: string, apiID: string, content: CompositeSliceItemContent, config: TraverseCompositeSliceContentConfig): CompositeSliceItemContent | undefined;
|
|
42
42
|
type TraverseLegacySliceContentConfig = {
|
|
43
43
|
model?: LegacySliceModel;
|
|
44
|
-
transformWidget
|
|
45
|
-
transformSlice
|
|
44
|
+
transformWidget: TraverseWidgetContentFunction;
|
|
45
|
+
transformSlice: TraverseSliceContentFunction;
|
|
46
46
|
};
|
|
47
47
|
declare function traverseLegacySliceContent(path: Path, key: string, apiID: string, content: LegacySliceItemContent, config: TraverseLegacySliceContentConfig): LegacySliceItemContent | undefined;
|
|
48
48
|
type TraverseGroupContentConfig = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traverseContent.d.ts","names":[],"sources":["../../src/helpers/traverseContent.ts"],"mappings":";;;;;;;;;;;;;;;;;KAmCK,6BAAA;EACJ,KAAA,GAAQ,qBAAA;EACR,eAAA,GAAkB,6BAAA;EAClB,cAAA,GAAiB,4BAAA;AAAA;AAAA,iBAGF,uBAAA,CACf,QAAA,EAAU,eAAA,EACV,MAAA,EAAQ,6BAAA,GACN,eAAA;AAAA,KA0BE,2BAAA;EACJ,KAAA,GAAQ,iBAAA;EACR,eAAA,GAAkB,6BAAA;EAClB,cAAA,GAAiB,4BAAA;AAAA;AAAA,iBAGF,qBAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,aAAA,EACT,MAAA,EAAQ,2BAAA,GACN,aAAA;AAAA,
|
|
1
|
+
{"version":3,"file":"traverseContent.d.ts","names":[],"sources":["../../src/helpers/traverseContent.ts"],"mappings":";;;;;;;;;;;;;;;;;KAmCK,6BAAA;EACJ,KAAA,GAAQ,qBAAA;EACR,eAAA,GAAkB,6BAAA;EAClB,cAAA,GAAiB,4BAAA;AAAA;AAAA,iBAGF,uBAAA,CACf,QAAA,EAAU,eAAA,EACV,MAAA,EAAQ,6BAAA,GACN,eAAA;AAAA,KA0BE,2BAAA;EACJ,KAAA,GAAQ,iBAAA;EACR,eAAA,GAAkB,6BAAA;EAClB,cAAA,GAAiB,4BAAA;AAAA;AAAA,iBAGF,qBAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,aAAA,EACT,MAAA,EAAQ,2BAAA,GACN,aAAA;AAAA,KAuEE,gCAAA;EACJ,KAAA,GAAQ,yBAAA;EACR,eAAA,EAAiB,6BAAA;EACjB,cAAA,EAAgB,4BAAA;AAAA;AAAA,iBAGD,0BAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,sBAAA,EACT,MAAA,EAAQ,gCAAA,GACN,sBAAA;AAAA,KAyCE,mCAAA;EACJ,KAAA,GAAQ,mBAAA;EACR,eAAA,EAAiB,6BAAA;EACjB,cAAA,EAAgB,4BAAA;AAAA;AAAA,iBAGD,6BAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,yBAAA,EACT,MAAA,EAAQ,mCAAA,GACN,yBAAA;AAAA,KAsCE,gCAAA;EACJ,KAAA,GAAQ,gBAAA;EACR,eAAA,EAAiB,6BAAA;EACjB,cAAA,EAAgB,4BAAA;AAAA;AAAA,iBAGD,0BAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,sBAAA,EACT,MAAA,EAAQ,gCAAA,GACN,sBAAA;AAAA,KAuBE,0BAAA;EACJ,KAAA,GAAQ,UAAA;EACR,eAAA,EAAiB,6BAAA;AAAA;AAAA,iBAGF,oBAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,YAAA,EACT,MAAA,EAAQ,0BAAA,GACN,YAAA;AAAA,KAiBE,+BAAA;EACJ,KAAA,GAAQ,MAAA,SAAe,gBAAA,GAAmB,aAAA;EAC1C,eAAA,EAAiB,6BAAA;AAAA;AAAA,iBAGF,yBAAA,CACf,IAAA,EAAM,IAAA,EACN,OAAA,EAAS,gBAAA,IACT,MAAA,EAAQ,+BAAA,GACN,gBAAA;AAAA,KAgCE,+BAAA;EACJ,KAAA,GAAQ,SAAA;EACR,eAAA,EAAiB,6BAAA;AAAA;AAAA,iBAGF,yBAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,iBAAA,EACT,MAAA,EAAQ,+BAAA,GACN,iBAAA;AAAA,KA+BE,0BAAA;EACJ,KAAA,GAAQ,UAAA;EACR,eAAA,EAAiB,6BAAA;AAAA;AAAA,iBAGF,oBAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,YAAA,EACT,MAAA,EAAQ,0BAAA,GACN,YAAA;AAAA,KA2CS,4BAAA,qBAAiD,gBAAA,EAAkB,IAAA;EAC9E,IAAA,EAAM,IAAA;EACN,GAAA;EACA,KAAA;EACA,OAAA,EAAS,QAAA;EACT,KAAA,GAAQ,UAAA;AAAA,MACH,QAAA;AAAA,KAEM,6BAAA,sFAEU,aAAA,EAAe,IAAA;EACpC,IAAA,EAAM,IAAA;EACN,GAAA;EACA,KAAA;EACA,OAAA,EAAS,QAAA;EACT,KAAA,GAAQ,iBAAA;AAAA,OACF,qBAAA,sBAA2C,QAAA,GAAW,aAAA;AAAA,KAGxD,UAAA,GAAa,yBAAA,GAA4B,mBAAA,GAAsB,gBAAA"}
|
|
@@ -93,7 +93,7 @@ function traverseSlicesContent(path, key, apiID, content, config) {
|
|
|
93
93
|
});
|
|
94
94
|
}
|
|
95
95
|
function traverseSharedSliceContent(path, key, apiID, content, config) {
|
|
96
|
-
const { transformWidget
|
|
96
|
+
const { transformWidget, transformSlice } = config;
|
|
97
97
|
const traversedPrimary = {};
|
|
98
98
|
for (const [key, fieldContent] of Object.entries(content.widget.primary)) {
|
|
99
99
|
const model = config.model?.fields.primary?.[key];
|
|
@@ -132,7 +132,7 @@ function traverseSharedSliceContent(path, key, apiID, content, config) {
|
|
|
132
132
|
});
|
|
133
133
|
}
|
|
134
134
|
function traverseCompositeSliceContent(path, key, apiID, content, config) {
|
|
135
|
-
const { transformWidget
|
|
135
|
+
const { transformWidget, transformSlice } = config;
|
|
136
136
|
const traversedPrimary = {};
|
|
137
137
|
for (const [key, fieldContent] of Object.entries(content.widget.nonRepeat)) {
|
|
138
138
|
const model = config.model?.["non-repeat"]?.[key];
|
|
@@ -171,7 +171,7 @@ function traverseCompositeSliceContent(path, key, apiID, content, config) {
|
|
|
171
171
|
});
|
|
172
172
|
}
|
|
173
173
|
function traverseLegacySliceContent(path, key, apiID, content, config) {
|
|
174
|
-
const { model, transformWidget
|
|
174
|
+
const { model, transformWidget, transformSlice } = config;
|
|
175
175
|
const traversedContent = traverseWidgetContent(path, key, apiID, content.widget, {
|
|
176
176
|
model,
|
|
177
177
|
transformWidget,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traverseContent.js","names":["customTypeModel.flatten","contentPath.make"],"sources":["../../src/helpers/traverseContent.ts"],"sourcesContent":["import type { DocumentContent } from \"../content/document\"\nimport { GroupContentType } from \"../content/group\"\nimport type { GroupContent, GroupItemContent } from \"../content/group\"\nimport { isNestableContent } from \"../content/nestable\"\nimport { isRepeatableContentValue, RepeatableContentType } from \"../content/repeatable\"\nimport type { RepeatableContent } from \"../content/repeatable\"\nimport { RichTextContentType } from \"../content/richText\"\nimport { CompositeSliceContentType, SharedSliceContentType } from \"../content/slice\"\nimport type { CompositeSliceContent, SharedSliceContent } from \"../content/slice\"\nimport {\n\ttype CompositeSliceItemContent,\n\ttype SharedSliceItemContent,\n\ttype LegacySliceItemContent,\n\ttype SliceItemContent,\n\ttype SlicesContent,\n\tSlicesContentType,\n} from \"../content/slices\"\nimport { TableContentType, type TableContent } from \"../content/table\"\nimport type { WidgetContent } from \"../content/widget\"\nimport type { StaticCustomTypeModel } from \"../model/customType\"\nimport type { GroupModel, NestedGroupModel } from \"../model/group\"\nimport type { LinkModel } from \"../model/link\"\nimport type { NestableModel } from \"../model/nestable\"\nimport type {\n\tCompositeSliceModel,\n\tLegacySliceModel,\n\tSharedSliceVariationModel,\n} from \"../model/slice\"\nimport type { StaticSlicesModel } from \"../model/slices\"\nimport { TableCellModel } from \"../model/table\"\nimport type { TableModel } from \"../model/table\"\nimport type { StaticWidgetModel } from \"../model/widget\"\nimport * as contentPath from \"./contentPath\"\nimport * as customTypeModel from \"./customTypeModel\"\n\ntype TraverseDocumentContentConfig = {\n\tmodel?: StaticCustomTypeModel\n\ttransformWidget?: TraverseWidgetContentFunction\n\ttransformSlice?: TraverseSliceContentFunction\n}\n\nexport function traverseDocumentContent(\n\tdocument: DocumentContent,\n\tconfig: TraverseDocumentContentConfig,\n): DocumentContent {\n\tconst { model, transformWidget, transformSlice } = config\n\n\t// Remove tabs from custom type model\n\tconst flatModel = model ? customTypeModel.flatten(model) : {}\n\n\tconst traversed: DocumentContent = {}\n\tfor (const [key, content] of Object.entries(document)) {\n\t\tconst path = contentPath.make(\n\t\t\t{ key: config.model?.id, type: \"CustomType\" },\n\t\t\t{ key, type: \"Widget\" },\n\t\t)\n\n\t\tconst traversedContent = traverseWidgetContent(path, key, key, content, {\n\t\t\tmodel: flatModel[key],\n\t\t\ttransformWidget,\n\t\t\ttransformSlice,\n\t\t})\n\t\tif (traversedContent) {\n\t\t\ttraversed[key] = traversedContent\n\t\t}\n\t}\n\n\treturn traversed\n}\n\ntype TraverseSlicesContentConfig = {\n\tmodel?: StaticSlicesModel\n\ttransformWidget?: TraverseWidgetContentFunction\n\ttransformSlice?: TraverseSliceContentFunction\n}\n\nexport function traverseSlicesContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: SlicesContent,\n\tconfig: TraverseSlicesContentConfig,\n): SlicesContent | undefined {\n\tconst {\n\t\ttransformWidget = (args) => args.content,\n\t\ttransformSlice = (args) => args.content\n\t} = config\n\n\tconst traversed: SlicesContent[\"value\"] = []\n\tfor (const sliceItemContent of content.value) {\n\t\tconst sliceModel = config.model?.config?.choices?.[sliceItemContent.name]\n\n\t\tlet traversedSliceItemContent: SliceItemContent | undefined\n\t\tif (sliceItemContent.widget.__TYPE__ === SharedSliceContentType) {\n\t\t\tlet model: SharedSliceVariationModel | undefined\n\t\t\tif (sliceModel?.type === \"SharedSlice\") {\n\t\t\t\tconst variationID = sliceItemContent.widget.variation\n\t\t\t\tconst variationModel = sliceModel.variations.find(\n\t\t\t\t\t(variation) => variation.id === variationID,\n\t\t\t\t)\n\t\t\t\tif (variationModel) {\n\t\t\t\t\tmodel = {\n\t\t\t\t\t\ttype: \"SharedSlice\",\n\t\t\t\t\t\tsliceName: sliceModel.id,\n\t\t\t\t\t\tvariationID,\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tprimary: variationModel.primary || {},\n\t\t\t\t\t\t\titems: variationModel.items || {},\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttraversedSliceItemContent = traverseSharedSliceContent(\n\t\t\t\tpath.concat({ key: sliceItemContent.key, type: \"SharedSlice\" }),\n\t\t\t\tsliceItemContent.key,\n\t\t\t\tsliceItemContent.name,\n\t\t\t\tsliceItemContent as SharedSliceItemContent,\n\t\t\t\t{ model, transformWidget, transformSlice },\n\t\t\t)\n\t\t} else if (sliceItemContent.widget.__TYPE__ === CompositeSliceContentType) {\n\t\t\tconst model = sliceModel?.type === \"Slice\" ? sliceModel : undefined\n\t\t\ttraversedSliceItemContent = traverseCompositeSliceContent(\n\t\t\t\tpath.concat({ key: sliceItemContent.key, type: \"Slice\" }),\n\t\t\t\tsliceItemContent.key,\n\t\t\t\tsliceItemContent.name,\n\t\t\t\tsliceItemContent as CompositeSliceItemContent,\n\t\t\t\t{ model, transformWidget, transformSlice },\n\t\t\t)\n\t\t} else {\n\t\t\tconst model =\n\t\t\t\tsliceModel?.type !== \"SharedSlice\" && sliceModel?.type !== \"Slice\" ? sliceModel : undefined\n\t\t\ttraversedSliceItemContent = traverseLegacySliceContent(\n\t\t\t\tpath.concat({ key: sliceItemContent.key, type: \"LegacySlice\" }),\n\t\t\t\tsliceItemContent.key,\n\t\t\t\tsliceItemContent.name,\n\t\t\t\tsliceItemContent as LegacySliceItemContent,\n\t\t\t\t{ model, transformWidget, transformSlice },\n\t\t\t)\n\t\t}\n\n\t\tif (traversedSliceItemContent) {\n\t\t\ttraversed.push(traversedSliceItemContent)\n\t\t}\n\t}\n\n\treturn transformWidget({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: { ...content, value: traversed },\n\t\tmodel: config.model,\n\t})\n}\n\ntype TraverseSharedSliceContentConfig = {\n\tmodel?: SharedSliceVariationModel\n\ttransformWidget?: TraverseWidgetContentFunction\n\ttransformSlice?: TraverseSliceContentFunction\n}\n\nexport function traverseSharedSliceContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: SharedSliceItemContent,\n\tconfig: TraverseSharedSliceContentConfig,\n): SharedSliceItemContent | undefined {\n\tconst {\n\t\ttransformWidget = (args) => args.content,\n\t\ttransformSlice = (args) => args.content\n\t} = config\n\n\tconst traversedPrimary: SharedSliceContent[\"primary\"] = {}\n\tfor (const [key, fieldContent] of Object.entries(content.widget.primary)) {\n\t\tconst model = config.model?.fields.primary?.[key]\n\n\t\tconst traversedContent = traverseWidgetContent(\n\t\t\tpath.concat({ key: \"primary\", type: \"primary\" }, { key, type: \"Widget\" }),\n\t\t\tkey,\n\t\t\tkey,\n\t\t\tfieldContent,\n\t\t\t{ model, transformWidget },\n\t\t)\n\n\t\tif (\n\t\t\ttraversedContent &&\n\t\t\t(isNestableContent(traversedContent) || traversedContent.__TYPE__ === GroupContentType)\n\t\t) {\n\t\t\ttraversedPrimary[key] = traversedContent\n\t\t}\n\t}\n\n\tconst traversedItems = traverseGroupItemsContent(\n\t\tpath.concat({ key: \"items\", type: \"items\" }),\n\t\tcontent.widget.items,\n\t\t{ model: config.model?.fields.items, transformWidget },\n\t)\n\n\treturn transformSlice({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: {\n\t\t\t...content,\n\t\t\twidget: { ...content.widget, primary: traversedPrimary, items: traversedItems },\n\t\t},\n\t\tmodel: config.model,\n\t})\n}\n\ntype TraverseCompositeSliceContentConfig = {\n\tmodel?: CompositeSliceModel\n\ttransformWidget?: TraverseWidgetContentFunction\n\ttransformSlice?: TraverseSliceContentFunction\n}\n\nexport function traverseCompositeSliceContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: CompositeSliceItemContent,\n\tconfig: TraverseCompositeSliceContentConfig,\n): CompositeSliceItemContent | undefined {\n\tconst {\n\t\ttransformWidget = (args) => args.content,\n\t\ttransformSlice = (args) => args.content\n\t} = config\n\n\tconst traversedPrimary: CompositeSliceContent[\"nonRepeat\"] = {}\n\tfor (const [key, fieldContent] of Object.entries(content.widget.nonRepeat)) {\n\t\tconst model = config.model?.[\"non-repeat\"]?.[key]\n\n\t\tconst traversedContent = traverseWidgetContent(\n\t\t\tpath.concat({ key: \"non-repeat\", type: \"primary\" }, { key, type: \"Widget\" }),\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tfieldContent,\n\t\t\t{ model, transformWidget },\n\t\t)\n\n\t\tif (traversedContent && isNestableContent(traversedContent)) {\n\t\t\ttraversedPrimary[key] = traversedContent\n\t\t}\n\t}\n\n\tconst traversedItems = traverseGroupItemsContent(\n\t\tpath.concat({ key: \"repeat\", type: \"items\" }),\n\t\tcontent.widget.repeat,\n\t\t{ model: config.model?.repeat, transformWidget },\n\t)\n\n\treturn transformSlice({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: {\n\t\t\t...content,\n\t\t\twidget: { ...content.widget, nonRepeat: traversedPrimary, repeat: traversedItems },\n\t\t},\n\t\tmodel: config.model,\n\t})\n}\n\ntype TraverseLegacySliceContentConfig = {\n\tmodel?: LegacySliceModel\n\ttransformWidget?: TraverseWidgetContentFunction\n\ttransformSlice?: TraverseSliceContentFunction\n}\n\nexport function traverseLegacySliceContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: LegacySliceItemContent,\n\tconfig: TraverseLegacySliceContentConfig,\n): LegacySliceItemContent | undefined {\n\tconst {\n\t\tmodel,\n\t\ttransformWidget = (args) => args.content,\n\t\ttransformSlice = (args) => args.content\n\t} = config\n\n\tconst traversedContent = traverseWidgetContent(path, key, apiID, content.widget, {\n\t\tmodel,\n\t\ttransformWidget,\n\t\ttransformSlice,\n\t})\n\n\tif (\n\t\ttraversedContent &&\n\t\t(isNestableContent(traversedContent) || traversedContent.__TYPE__ === GroupContentType)\n\t) {\n\t\treturn transformSlice({\n\t\t\tpath,\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tcontent: { ...content, widget: traversedContent },\n\t\t\tmodel,\n\t\t})\n\t}\n}\n\ntype TraverseGroupContentConfig = {\n\tmodel?: GroupModel\n\ttransformWidget: TraverseWidgetContentFunction\n}\n\nexport function traverseGroupContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: GroupContent,\n\tconfig: TraverseGroupContentConfig,\n): GroupContent | undefined {\n\tconst { model, transformWidget } = config\n\n\tconst traversed = traverseGroupItemsContent(path, content.value, {\n\t\tmodel: model?.config?.fields,\n\t\ttransformWidget,\n\t})\n\n\treturn transformWidget({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: { ...content, value: traversed },\n\t\tmodel,\n\t})\n}\n\ntype TraverseGroupItemsContentConfig = {\n\tmodel?: Record<string, NestedGroupModel | NestableModel>\n\ttransformWidget: TraverseWidgetContentFunction\n}\n\nexport function traverseGroupItemsContent(\n\tpath: contentPath.Path,\n\tcontent: GroupItemContent[],\n\tconfig: TraverseGroupItemsContentConfig,\n): GroupItemContent[] {\n\tconst { transformWidget } = config\n\n\tconst traversed: GroupItemContent[] = []\n\tfor (const groupItemContent of content) {\n\t\tconst groupItemPath = path.concat({ key: groupItemContent.key, type: \"GroupItem\" })\n\n\t\tconst traversedValue: GroupItemContent[\"value\"] = []\n\t\tfor (const [key, content] of groupItemContent.value) {\n\t\t\tconst model = config.model?.[key]\n\t\t\tconst traversedContent = traverseWidgetContent(\n\t\t\t\tgroupItemPath.concat({ key, type: \"Widget\" }),\n\t\t\t\tkey,\n\t\t\t\tkey,\n\t\t\t\tcontent,\n\t\t\t\t{ model, transformWidget },\n\t\t\t)\n\n\t\t\tif (\n\t\t\t\ttraversedContent &&\n\t\t\t\t(isNestableContent(traversedContent) || traversedContent.__TYPE__ === GroupContentType)\n\t\t\t) {\n\t\t\t\ttraversedValue.push([key, traversedContent])\n\t\t\t}\n\t\t}\n\n\t\ttraversed.push({ ...groupItemContent, value: traversedValue })\n\t}\n\n\treturn traversed\n}\n\ntype TraverseRepeatableContentConfig = {\n\tmodel?: LinkModel\n\ttransformWidget: TraverseWidgetContentFunction\n}\n\nexport function traverseRepeatableContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: RepeatableContent,\n\tconfig: TraverseRepeatableContentConfig,\n): RepeatableContent | undefined {\n\tconst { model, transformWidget } = config\n\tconst nonRepeatModel =\n\t\tmodel?.type === \"Link\" && model.config\n\t\t\t? { ...model, config: { ...model.config, repeat: false } }\n\t\t\t: model\n\n\tconst traversed: RepeatableContent[\"value\"] = []\n\tfor (let index = 0; index < content.value.length; index++) {\n\t\tconst traversedContent = traverseWidgetContent(\n\t\t\tpath.concat({ key: index.toString(), type: \"Widget\" }),\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tcontent.value[index],\n\t\t\t{ model: nonRepeatModel, transformWidget },\n\t\t)\n\n\t\tif (traversedContent && isRepeatableContentValue(traversedContent)) {\n\t\t\ttraversed.push(traversedContent)\n\t\t}\n\t}\n\n\treturn transformWidget({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: { ...content, value: traversed },\n\t\tmodel,\n\t})\n}\n\ntype TraverseTableContentConfig = {\n\tmodel?: TableModel\n\ttransformWidget: TraverseWidgetContentFunction\n}\n\nexport function traverseTableContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: TableContent,\n\tconfig: TraverseTableContentConfig,\n): TableContent | undefined {\n\tconst { model, transformWidget } = config\n\n\tconst traversed: TableContent[\"content\"] = []\n\tfor (let rowIndex = 0; rowIndex < content.content.length; rowIndex++) {\n\t\tconst traversedContent: TableContent[\"content\"][number][\"content\"] = []\n\t\tfor (let cellIndex = 0; cellIndex < content.content[rowIndex].content.length; cellIndex++) {\n\t\t\tconst cellPath = path.concat({ key: [rowIndex, cellIndex].join(\",\"), type: \"Widget\" })\n\t\t\tconst cell = content.content[rowIndex].content[cellIndex]\n\n\t\t\tconst transformed = transformWidget({\n\t\t\t\tpath: cellPath,\n\t\t\t\tkey,\n\t\t\t\tapiID,\n\t\t\t\tcontent: cell.content,\n\t\t\t\tmodel: TableCellModel,\n\t\t\t})\n\n\t\t\tif (transformed && transformed.__TYPE__ === RichTextContentType) {\n\t\t\t\ttraversedContent.push({ ...cell, content: transformed })\n\t\t\t} else {\n\t\t\t\ttraversedContent.push({\n\t\t\t\t\t...cell,\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t__TYPE__: RichTextContentType,\n\t\t\t\t\t\tvalue: [],\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\ttraversed.push({ ...content.content[rowIndex], content: traversedContent })\n\t}\n\n\treturn transformWidget({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: { ...content, content: traversed },\n\t\tmodel,\n\t})\n}\n\nexport type TraverseSliceContentFunction = <TContent extends SliceItemContent>(args: {\n\tpath: contentPath.Path\n\tkey: string\n\tapiID: string\n\tcontent: TContent\n\tmodel?: SliceModel\n}) => TContent | undefined\n\nexport type TraverseWidgetContentFunction<\n\tTContentTransformMode extends \"preserve\" | \"widen\" = \"preserve\",\n> = <TContent extends WidgetContent>(args: {\n\tpath: contentPath.Path\n\tkey: string\n\tapiID: string\n\tcontent: TContent\n\tmodel?: StaticWidgetModel\n}) => (TContentTransformMode extends \"preserve\" ? TContent : WidgetContent) | undefined\n\n// Internals\ntype SliceModel = SharedSliceVariationModel | CompositeSliceModel | LegacySliceModel\n\ntype TraverseWidgetContentConfig = {\n\tmodel?: StaticWidgetModel\n\ttransformWidget?: TraverseWidgetContentFunction\n\ttransformSlice?: TraverseSliceContentFunction\n}\n\nfunction traverseWidgetContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: WidgetContent,\n\tconfig: TraverseWidgetContentConfig,\n): WidgetContent | undefined {\n\tconst { transformWidget = (args) => args.content, transformSlice = (args) => args.content } =\n\t\tconfig\n\n\tif (content.__TYPE__ === SlicesContentType) {\n\t\tconst model =\n\t\t\tconfig.model?.type === \"Slices\" || config.model?.type === \"Choice\" ? config.model : undefined\n\t\treturn traverseSlicesContent(path, key, apiID, content, {\n\t\t\ttransformWidget,\n\t\t\ttransformSlice,\n\t\t\tmodel,\n\t\t})\n\t}\n\n\tif (content.__TYPE__ === GroupContentType) {\n\t\tconst model = config.model?.type === \"Group\" ? config.model : undefined\n\t\treturn traverseGroupContent(path, key, apiID, content, { transformWidget, model })\n\t}\n\n\tif (content.__TYPE__ === RepeatableContentType) {\n\t\tconst model = config.model?.type === \"Link\" ? config.model : undefined\n\t\treturn traverseRepeatableContent(path, key, apiID, content, { transformWidget, model })\n\t}\n\n\tif (content.__TYPE__ === TableContentType) {\n\t\tconst model = config.model?.type === \"Table\" ? config.model : undefined\n\t\treturn traverseTableContent(path, key, apiID, content, { transformWidget, model })\n\t}\n\n\tconst model =\n\t\tconfig.model?.type !== \"Slices\" &&\n\t\tconfig.model?.type !== \"Choice\" &&\n\t\tconfig.model?.type !== \"Group\" &&\n\t\tconfig.model?.type !== \"Table\"\n\t\t\t? config.model\n\t\t\t: undefined\n\treturn transformWidget({ path, key, apiID, content, model })\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"traverseContent.js","names":["customTypeModel.flatten","contentPath.make"],"sources":["../../src/helpers/traverseContent.ts"],"sourcesContent":["import type { DocumentContent } from \"../content/document\"\nimport { GroupContentType } from \"../content/group\"\nimport type { GroupContent, GroupItemContent } from \"../content/group\"\nimport { isNestableContent } from \"../content/nestable\"\nimport { isRepeatableContentValue, RepeatableContentType } from \"../content/repeatable\"\nimport type { RepeatableContent } from \"../content/repeatable\"\nimport { RichTextContentType } from \"../content/richText\"\nimport { CompositeSliceContentType, SharedSliceContentType } from \"../content/slice\"\nimport type { CompositeSliceContent, SharedSliceContent } from \"../content/slice\"\nimport {\n\ttype CompositeSliceItemContent,\n\ttype SharedSliceItemContent,\n\ttype LegacySliceItemContent,\n\ttype SliceItemContent,\n\ttype SlicesContent,\n\tSlicesContentType,\n} from \"../content/slices\"\nimport { TableContentType, type TableContent } from \"../content/table\"\nimport type { WidgetContent } from \"../content/widget\"\nimport type { StaticCustomTypeModel } from \"../model/customType\"\nimport type { GroupModel, NestedGroupModel } from \"../model/group\"\nimport type { LinkModel } from \"../model/link\"\nimport type { NestableModel } from \"../model/nestable\"\nimport type {\n\tCompositeSliceModel,\n\tLegacySliceModel,\n\tSharedSliceVariationModel,\n} from \"../model/slice\"\nimport type { StaticSlicesModel } from \"../model/slices\"\nimport { TableCellModel } from \"../model/table\"\nimport type { TableModel } from \"../model/table\"\nimport type { StaticWidgetModel } from \"../model/widget\"\nimport * as contentPath from \"./contentPath\"\nimport * as customTypeModel from \"./customTypeModel\"\n\ntype TraverseDocumentContentConfig = {\n\tmodel?: StaticCustomTypeModel\n\ttransformWidget?: TraverseWidgetContentFunction\n\ttransformSlice?: TraverseSliceContentFunction\n}\n\nexport function traverseDocumentContent(\n\tdocument: DocumentContent,\n\tconfig: TraverseDocumentContentConfig,\n): DocumentContent {\n\tconst { model, transformWidget, transformSlice } = config\n\n\t// Remove tabs from custom type model\n\tconst flatModel = model ? customTypeModel.flatten(model) : {}\n\n\tconst traversed: DocumentContent = {}\n\tfor (const [key, content] of Object.entries(document)) {\n\t\tconst path = contentPath.make(\n\t\t\t{ key: config.model?.id, type: \"CustomType\" },\n\t\t\t{ key, type: \"Widget\" },\n\t\t)\n\n\t\tconst traversedContent = traverseWidgetContent(path, key, key, content, {\n\t\t\tmodel: flatModel[key],\n\t\t\ttransformWidget,\n\t\t\ttransformSlice,\n\t\t})\n\t\tif (traversedContent) {\n\t\t\ttraversed[key] = traversedContent\n\t\t}\n\t}\n\n\treturn traversed\n}\n\ntype TraverseSlicesContentConfig = {\n\tmodel?: StaticSlicesModel\n\ttransformWidget?: TraverseWidgetContentFunction\n\ttransformSlice?: TraverseSliceContentFunction\n}\n\nexport function traverseSlicesContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: SlicesContent,\n\tconfig: TraverseSlicesContentConfig,\n): SlicesContent | undefined {\n\tconst { transformWidget = (args) => args.content, transformSlice = (args) => args.content } =\n\t\tconfig\n\n\tconst traversed: SlicesContent[\"value\"] = []\n\tfor (const sliceItemContent of content.value) {\n\t\tconst sliceModel = config.model?.config?.choices?.[sliceItemContent.name]\n\n\t\tlet traversedSliceItemContent: SliceItemContent | undefined\n\t\tif (sliceItemContent.widget.__TYPE__ === SharedSliceContentType) {\n\t\t\tlet model: SharedSliceVariationModel | undefined\n\t\t\tif (sliceModel?.type === \"SharedSlice\") {\n\t\t\t\tconst variationID = sliceItemContent.widget.variation\n\t\t\t\tconst variationModel = sliceModel.variations.find(\n\t\t\t\t\t(variation) => variation.id === variationID,\n\t\t\t\t)\n\t\t\t\tif (variationModel) {\n\t\t\t\t\tmodel = {\n\t\t\t\t\t\ttype: \"SharedSlice\",\n\t\t\t\t\t\tsliceName: sliceModel.id,\n\t\t\t\t\t\tvariationID,\n\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\tprimary: variationModel.primary || {},\n\t\t\t\t\t\t\titems: variationModel.items || {},\n\t\t\t\t\t\t},\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttraversedSliceItemContent = traverseSharedSliceContent(\n\t\t\t\tpath.concat({ key: sliceItemContent.key, type: \"SharedSlice\" }),\n\t\t\t\tsliceItemContent.key,\n\t\t\t\tsliceItemContent.name,\n\t\t\t\tsliceItemContent as SharedSliceItemContent,\n\t\t\t\t{ model, transformWidget, transformSlice },\n\t\t\t)\n\t\t} else if (sliceItemContent.widget.__TYPE__ === CompositeSliceContentType) {\n\t\t\tconst model = sliceModel?.type === \"Slice\" ? sliceModel : undefined\n\t\t\ttraversedSliceItemContent = traverseCompositeSliceContent(\n\t\t\t\tpath.concat({ key: sliceItemContent.key, type: \"Slice\" }),\n\t\t\t\tsliceItemContent.key,\n\t\t\t\tsliceItemContent.name,\n\t\t\t\tsliceItemContent as CompositeSliceItemContent,\n\t\t\t\t{ model, transformWidget, transformSlice },\n\t\t\t)\n\t\t} else {\n\t\t\tconst model =\n\t\t\t\tsliceModel?.type !== \"SharedSlice\" && sliceModel?.type !== \"Slice\" ? sliceModel : undefined\n\t\t\ttraversedSliceItemContent = traverseLegacySliceContent(\n\t\t\t\tpath.concat({ key: sliceItemContent.key, type: \"LegacySlice\" }),\n\t\t\t\tsliceItemContent.key,\n\t\t\t\tsliceItemContent.name,\n\t\t\t\tsliceItemContent as LegacySliceItemContent,\n\t\t\t\t{ model, transformWidget, transformSlice },\n\t\t\t)\n\t\t}\n\n\t\tif (traversedSliceItemContent) {\n\t\t\ttraversed.push(traversedSliceItemContent)\n\t\t}\n\t}\n\n\treturn transformWidget({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: { ...content, value: traversed },\n\t\tmodel: config.model,\n\t})\n}\n\ntype TraverseSharedSliceContentConfig = {\n\tmodel?: SharedSliceVariationModel\n\ttransformWidget: TraverseWidgetContentFunction\n\ttransformSlice: TraverseSliceContentFunction\n}\n\nexport function traverseSharedSliceContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: SharedSliceItemContent,\n\tconfig: TraverseSharedSliceContentConfig,\n): SharedSliceItemContent | undefined {\n\tconst { transformWidget, transformSlice } = config\n\n\tconst traversedPrimary: SharedSliceContent[\"primary\"] = {}\n\tfor (const [key, fieldContent] of Object.entries(content.widget.primary)) {\n\t\tconst model = config.model?.fields.primary?.[key]\n\n\t\tconst traversedContent = traverseWidgetContent(\n\t\t\tpath.concat({ key: \"primary\", type: \"primary\" }, { key, type: \"Widget\" }),\n\t\t\tkey,\n\t\t\tkey,\n\t\t\tfieldContent,\n\t\t\t{ model, transformWidget },\n\t\t)\n\n\t\tif (\n\t\t\ttraversedContent &&\n\t\t\t(isNestableContent(traversedContent) || traversedContent.__TYPE__ === GroupContentType)\n\t\t) {\n\t\t\ttraversedPrimary[key] = traversedContent\n\t\t}\n\t}\n\n\tconst traversedItems = traverseGroupItemsContent(\n\t\tpath.concat({ key: \"items\", type: \"items\" }),\n\t\tcontent.widget.items,\n\t\t{ model: config.model?.fields.items, transformWidget },\n\t)\n\n\treturn transformSlice({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: {\n\t\t\t...content,\n\t\t\twidget: { ...content.widget, primary: traversedPrimary, items: traversedItems },\n\t\t},\n\t\tmodel: config.model,\n\t})\n}\n\ntype TraverseCompositeSliceContentConfig = {\n\tmodel?: CompositeSliceModel\n\ttransformWidget: TraverseWidgetContentFunction\n\ttransformSlice: TraverseSliceContentFunction\n}\n\nexport function traverseCompositeSliceContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: CompositeSliceItemContent,\n\tconfig: TraverseCompositeSliceContentConfig,\n): CompositeSliceItemContent | undefined {\n\tconst { transformWidget, transformSlice } = config\n\n\tconst traversedPrimary: CompositeSliceContent[\"nonRepeat\"] = {}\n\tfor (const [key, fieldContent] of Object.entries(content.widget.nonRepeat)) {\n\t\tconst model = config.model?.[\"non-repeat\"]?.[key]\n\n\t\tconst traversedContent = traverseWidgetContent(\n\t\t\tpath.concat({ key: \"non-repeat\", type: \"primary\" }, { key, type: \"Widget\" }),\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tfieldContent,\n\t\t\t{ model, transformWidget },\n\t\t)\n\n\t\tif (traversedContent && isNestableContent(traversedContent)) {\n\t\t\ttraversedPrimary[key] = traversedContent\n\t\t}\n\t}\n\n\tconst traversedItems = traverseGroupItemsContent(\n\t\tpath.concat({ key: \"repeat\", type: \"items\" }),\n\t\tcontent.widget.repeat,\n\t\t{ model: config.model?.repeat, transformWidget },\n\t)\n\n\treturn transformSlice({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: {\n\t\t\t...content,\n\t\t\twidget: { ...content.widget, nonRepeat: traversedPrimary, repeat: traversedItems },\n\t\t},\n\t\tmodel: config.model,\n\t})\n}\n\ntype TraverseLegacySliceContentConfig = {\n\tmodel?: LegacySliceModel\n\ttransformWidget: TraverseWidgetContentFunction\n\ttransformSlice: TraverseSliceContentFunction\n}\n\nexport function traverseLegacySliceContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: LegacySliceItemContent,\n\tconfig: TraverseLegacySliceContentConfig,\n): LegacySliceItemContent | undefined {\n\tconst { model, transformWidget, transformSlice } = config\n\n\tconst traversedContent = traverseWidgetContent(path, key, apiID, content.widget, {\n\t\tmodel,\n\t\ttransformWidget,\n\t\ttransformSlice,\n\t})\n\n\tif (\n\t\ttraversedContent &&\n\t\t(isNestableContent(traversedContent) || traversedContent.__TYPE__ === GroupContentType)\n\t) {\n\t\treturn transformSlice({\n\t\t\tpath,\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tcontent: { ...content, widget: traversedContent },\n\t\t\tmodel,\n\t\t})\n\t}\n}\n\ntype TraverseGroupContentConfig = {\n\tmodel?: GroupModel\n\ttransformWidget: TraverseWidgetContentFunction\n}\n\nexport function traverseGroupContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: GroupContent,\n\tconfig: TraverseGroupContentConfig,\n): GroupContent | undefined {\n\tconst { model, transformWidget } = config\n\n\tconst traversed = traverseGroupItemsContent(path, content.value, {\n\t\tmodel: model?.config?.fields,\n\t\ttransformWidget,\n\t})\n\n\treturn transformWidget({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: { ...content, value: traversed },\n\t\tmodel,\n\t})\n}\n\ntype TraverseGroupItemsContentConfig = {\n\tmodel?: Record<string, NestedGroupModel | NestableModel>\n\ttransformWidget: TraverseWidgetContentFunction\n}\n\nexport function traverseGroupItemsContent(\n\tpath: contentPath.Path,\n\tcontent: GroupItemContent[],\n\tconfig: TraverseGroupItemsContentConfig,\n): GroupItemContent[] {\n\tconst { transformWidget } = config\n\n\tconst traversed: GroupItemContent[] = []\n\tfor (const groupItemContent of content) {\n\t\tconst groupItemPath = path.concat({ key: groupItemContent.key, type: \"GroupItem\" })\n\n\t\tconst traversedValue: GroupItemContent[\"value\"] = []\n\t\tfor (const [key, content] of groupItemContent.value) {\n\t\t\tconst model = config.model?.[key]\n\t\t\tconst traversedContent = traverseWidgetContent(\n\t\t\t\tgroupItemPath.concat({ key, type: \"Widget\" }),\n\t\t\t\tkey,\n\t\t\t\tkey,\n\t\t\t\tcontent,\n\t\t\t\t{ model, transformWidget },\n\t\t\t)\n\n\t\t\tif (\n\t\t\t\ttraversedContent &&\n\t\t\t\t(isNestableContent(traversedContent) || traversedContent.__TYPE__ === GroupContentType)\n\t\t\t) {\n\t\t\t\ttraversedValue.push([key, traversedContent])\n\t\t\t}\n\t\t}\n\n\t\ttraversed.push({ ...groupItemContent, value: traversedValue })\n\t}\n\n\treturn traversed\n}\n\ntype TraverseRepeatableContentConfig = {\n\tmodel?: LinkModel\n\ttransformWidget: TraverseWidgetContentFunction\n}\n\nexport function traverseRepeatableContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: RepeatableContent,\n\tconfig: TraverseRepeatableContentConfig,\n): RepeatableContent | undefined {\n\tconst { model, transformWidget } = config\n\tconst nonRepeatModel =\n\t\tmodel?.type === \"Link\" && model.config\n\t\t\t? { ...model, config: { ...model.config, repeat: false } }\n\t\t\t: model\n\n\tconst traversed: RepeatableContent[\"value\"] = []\n\tfor (let index = 0; index < content.value.length; index++) {\n\t\tconst traversedContent = traverseWidgetContent(\n\t\t\tpath.concat({ key: index.toString(), type: \"Widget\" }),\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tcontent.value[index],\n\t\t\t{ model: nonRepeatModel, transformWidget },\n\t\t)\n\n\t\tif (traversedContent && isRepeatableContentValue(traversedContent)) {\n\t\t\ttraversed.push(traversedContent)\n\t\t}\n\t}\n\n\treturn transformWidget({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: { ...content, value: traversed },\n\t\tmodel,\n\t})\n}\n\ntype TraverseTableContentConfig = {\n\tmodel?: TableModel\n\ttransformWidget: TraverseWidgetContentFunction\n}\n\nexport function traverseTableContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: TableContent,\n\tconfig: TraverseTableContentConfig,\n): TableContent | undefined {\n\tconst { model, transformWidget } = config\n\n\tconst traversed: TableContent[\"content\"] = []\n\tfor (let rowIndex = 0; rowIndex < content.content.length; rowIndex++) {\n\t\tconst traversedContent: TableContent[\"content\"][number][\"content\"] = []\n\t\tfor (let cellIndex = 0; cellIndex < content.content[rowIndex].content.length; cellIndex++) {\n\t\t\tconst cellPath = path.concat({ key: [rowIndex, cellIndex].join(\",\"), type: \"Widget\" })\n\t\t\tconst cell = content.content[rowIndex].content[cellIndex]\n\n\t\t\tconst transformed = transformWidget({\n\t\t\t\tpath: cellPath,\n\t\t\t\tkey,\n\t\t\t\tapiID,\n\t\t\t\tcontent: cell.content,\n\t\t\t\tmodel: TableCellModel,\n\t\t\t})\n\n\t\t\tif (transformed && transformed.__TYPE__ === RichTextContentType) {\n\t\t\t\ttraversedContent.push({ ...cell, content: transformed })\n\t\t\t} else {\n\t\t\t\ttraversedContent.push({\n\t\t\t\t\t...cell,\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t__TYPE__: RichTextContentType,\n\t\t\t\t\t\tvalue: [],\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\ttraversed.push({ ...content.content[rowIndex], content: traversedContent })\n\t}\n\n\treturn transformWidget({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: { ...content, content: traversed },\n\t\tmodel,\n\t})\n}\n\nexport type TraverseSliceContentFunction = <TContent extends SliceItemContent>(args: {\n\tpath: contentPath.Path\n\tkey: string\n\tapiID: string\n\tcontent: TContent\n\tmodel?: SliceModel\n}) => TContent | undefined\n\nexport type TraverseWidgetContentFunction<\n\tTContentTransformMode extends \"preserve\" | \"widen\" = \"preserve\",\n> = <TContent extends WidgetContent>(args: {\n\tpath: contentPath.Path\n\tkey: string\n\tapiID: string\n\tcontent: TContent\n\tmodel?: StaticWidgetModel\n}) => (TContentTransformMode extends \"preserve\" ? TContent : WidgetContent) | undefined\n\n// Internals\ntype SliceModel = SharedSliceVariationModel | CompositeSliceModel | LegacySliceModel\n\ntype TraverseWidgetContentConfig = {\n\tmodel?: StaticWidgetModel\n\ttransformWidget?: TraverseWidgetContentFunction\n\ttransformSlice?: TraverseSliceContentFunction\n}\n\nfunction traverseWidgetContent(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: WidgetContent,\n\tconfig: TraverseWidgetContentConfig,\n): WidgetContent | undefined {\n\tconst { transformWidget = (args) => args.content, transformSlice = (args) => args.content } =\n\t\tconfig\n\n\tif (content.__TYPE__ === SlicesContentType) {\n\t\tconst model =\n\t\t\tconfig.model?.type === \"Slices\" || config.model?.type === \"Choice\" ? config.model : undefined\n\t\treturn traverseSlicesContent(path, key, apiID, content, {\n\t\t\ttransformWidget,\n\t\t\ttransformSlice,\n\t\t\tmodel,\n\t\t})\n\t}\n\n\tif (content.__TYPE__ === GroupContentType) {\n\t\tconst model = config.model?.type === \"Group\" ? config.model : undefined\n\t\treturn traverseGroupContent(path, key, apiID, content, { transformWidget, model })\n\t}\n\n\tif (content.__TYPE__ === RepeatableContentType) {\n\t\tconst model = config.model?.type === \"Link\" ? config.model : undefined\n\t\treturn traverseRepeatableContent(path, key, apiID, content, { transformWidget, model })\n\t}\n\n\tif (content.__TYPE__ === TableContentType) {\n\t\tconst model = config.model?.type === \"Table\" ? config.model : undefined\n\t\treturn traverseTableContent(path, key, apiID, content, { transformWidget, model })\n\t}\n\n\tconst model =\n\t\tconfig.model?.type !== \"Slices\" &&\n\t\tconfig.model?.type !== \"Choice\" &&\n\t\tconfig.model?.type !== \"Group\" &&\n\t\tconfig.model?.type !== \"Table\"\n\t\t\t? config.model\n\t\t\t: undefined\n\treturn transformWidget({ path, key, apiID, content, model })\n}\n"],"mappings":"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"}
|
|
@@ -29,20 +29,20 @@ type TraverseSlicesContentWithModelConfig = {
|
|
|
29
29
|
declare function traverseSlicesContentWithModel(path: Path, key: string, apiID: string, content: SlicesContent | undefined, config: TraverseSlicesContentWithModelConfig): SlicesContent | undefined;
|
|
30
30
|
type TraverseSharedSliceContentWithModelConfig = {
|
|
31
31
|
model: SharedSliceVariationModel;
|
|
32
|
-
transformWidget
|
|
33
|
-
transformSlice
|
|
32
|
+
transformWidget: TraverseWidgetContentWithModelFunction;
|
|
33
|
+
transformSlice: TraverseSliceContentWithModelFunction;
|
|
34
34
|
};
|
|
35
35
|
declare function traverseSharedSliceContentWithModel(path: Path, key: string, apiID: string, content: SharedSliceItemContent | undefined, config: TraverseSharedSliceContentWithModelConfig): SharedSliceItemContent | undefined;
|
|
36
36
|
type TraverseCompositeSliceContentWithModelConfig = {
|
|
37
37
|
model: CompositeSliceModel;
|
|
38
|
-
transformWidget
|
|
39
|
-
transformSlice
|
|
38
|
+
transformWidget: TraverseWidgetContentWithModelFunction;
|
|
39
|
+
transformSlice: TraverseSliceContentWithModelFunction;
|
|
40
40
|
};
|
|
41
41
|
declare function traverseCompositeSliceContentWithModel(path: Path, key: string, apiID: string, content: CompositeSliceItemContent | undefined, config: TraverseCompositeSliceContentWithModelConfig): CompositeSliceItemContent | undefined;
|
|
42
42
|
type TraverseLegacySliceContentWithModelConfig = {
|
|
43
43
|
model: LegacySliceModel;
|
|
44
|
-
transformWidget
|
|
45
|
-
transformSlice
|
|
44
|
+
transformWidget: TraverseWidgetContentWithModelFunction;
|
|
45
|
+
transformSlice: TraverseSliceContentWithModelFunction;
|
|
46
46
|
};
|
|
47
47
|
declare function traverseLegacySliceContentWithModel(path: Path, key: string, apiID: string, content: LegacySliceItemContent | undefined, config: TraverseLegacySliceContentWithModelConfig): LegacySliceItemContent | undefined;
|
|
48
48
|
type TraverseGroupContentWithModelConfig = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traverseContentWithModel.d.ts","names":[],"sources":["../../src/helpers/traverseContentWithModel.ts"],"mappings":";;;;;;;;;;;;;;;;;KAmCK,sCAAA;EACJ,KAAA,EAAO,qBAAA;EACP,eAAA,GAAkB,sCAAA;EAClB,cAAA,GAAiB,qCAAA;AAAA;AAAA,iBAGF,gCAAA,CACf,QAAA,EAAU,eAAA,EACV,MAAA,EAAQ,sCAAA,GACN,eAAA;AAAA,KA0BE,oCAAA;EACJ,KAAA,EAAO,iBAAA;EACP,eAAA,GAAkB,sCAAA;EAClB,cAAA,GAAiB,qCAAA;AAAA;AAAA,iBAGF,8BAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,aAAA,cACT,MAAA,EAAQ,oCAAA,GACN,aAAA;AAAA,KAoFE,yCAAA;EACJ,KAAA,EAAO,yBAAA;EACP,eAAA,
|
|
1
|
+
{"version":3,"file":"traverseContentWithModel.d.ts","names":[],"sources":["../../src/helpers/traverseContentWithModel.ts"],"mappings":";;;;;;;;;;;;;;;;;KAmCK,sCAAA;EACJ,KAAA,EAAO,qBAAA;EACP,eAAA,GAAkB,sCAAA;EAClB,cAAA,GAAiB,qCAAA;AAAA;AAAA,iBAGF,gCAAA,CACf,QAAA,EAAU,eAAA,EACV,MAAA,EAAQ,sCAAA,GACN,eAAA;AAAA,KA0BE,oCAAA;EACJ,KAAA,EAAO,iBAAA;EACP,eAAA,GAAkB,sCAAA;EAClB,cAAA,GAAiB,qCAAA;AAAA;AAAA,iBAGF,8BAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,aAAA,cACT,MAAA,EAAQ,oCAAA,GACN,aAAA;AAAA,KAoFE,yCAAA;EACJ,KAAA,EAAO,yBAAA;EACP,eAAA,EAAiB,sCAAA;EACjB,cAAA,EAAgB,qCAAA;AAAA;AAAA,iBAGD,mCAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,sBAAA,cACT,MAAA,EAAQ,yCAAA,GACN,sBAAA;AAAA,KA2CE,4CAAA;EACJ,KAAA,EAAO,mBAAA;EACP,eAAA,EAAiB,sCAAA;EACjB,cAAA,EAAgB,qCAAA;AAAA;AAAA,iBAGD,sCAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,yBAAA,cACT,MAAA,EAAQ,4CAAA,GACN,yBAAA;AAAA,KAwCE,yCAAA;EACJ,KAAA,EAAO,gBAAA;EACP,eAAA,EAAiB,sCAAA;EACjB,cAAA,EAAgB,qCAAA;AAAA;AAAA,iBAGD,mCAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,sBAAA,cACT,MAAA,EAAQ,yCAAA,GACN,sBAAA;AAAA,KA2BE,mCAAA;EACJ,KAAA,EAAO,UAAA;EACP,eAAA,EAAiB,sCAAA;AAAA;AAAA,iBAGF,6BAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,YAAA,cACT,MAAA,EAAQ,mCAAA,GACN,YAAA;AAAA,KA0BE,wCAAA;EACJ,KAAA,EAAO,MAAA,SAAe,gBAAA,GAAmB,aAAA;EACzC,eAAA,EAAiB,sCAAA;AAAA;AAAA,iBAGF,kCAAA,CACf,IAAA,EAAM,IAAA,EACN,OAAA,EAAS,gBAAA,gBACT,MAAA,EAAQ,wCAAA,GACN,gBAAA;AAAA,KAoCE,wCAAA;EACJ,KAAA,EAAO,SAAA;EACP,eAAA,EAAiB,sCAAA;AAAA;AAAA,iBAGF,kCAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,iBAAA,cACT,MAAA,EAAQ,wCAAA,GACN,iBAAA;AAAA,KAyCE,mCAAA;EACJ,KAAA,EAAO,UAAA;EACP,eAAA,EAAiB,sCAAA;AAAA;AAAA,iBAGF,6BAAA,CACf,IAAA,EAAM,IAAA,EACN,GAAA,UACA,KAAA,UACA,OAAA,EAAS,YAAA,cACT,MAAA,EAAQ,mCAAA,GACN,YAAA;AAAA,KAqDE,UAAA,GAAa,yBAAA,GAA4B,mBAAA,GAAsB,gBAAA;AAAA,KAExD,qCAAA,qBAA0D,gBAAA,EAAkB,IAAA;EACvF,IAAA,EAAM,IAAA;EACN,GAAA;EACA,KAAA;EACA,OAAA,GAAU,QAAA;EACV,KAAA,EAAO,UAAA;AAAA,MACF,QAAA;AAAA,KAEM,sCAAA,sFAEU,aAAA,EAAe,IAAA;EACpC,IAAA,EAAM,IAAA;EACN,GAAA;EACA,KAAA;EACA,OAAA,GAAU,QAAA;EACV,KAAA,EAAO,iBAAA;AAAA,OACD,qBAAA,sBAA2C,QAAA,GAAW,aAAA"}
|
|
@@ -93,8 +93,8 @@ function traverseSlicesContentWithModel(path, key, apiID, content, config) {
|
|
|
93
93
|
});
|
|
94
94
|
}
|
|
95
95
|
function traverseSharedSliceContentWithModel(path, key, apiID, content, config) {
|
|
96
|
+
const { transformWidget, transformSlice } = config;
|
|
96
97
|
if (!content) return;
|
|
97
|
-
const { transformWidget = (args) => args.content, transformSlice = (args) => args.content } = config;
|
|
98
98
|
const traversedPrimary = {};
|
|
99
99
|
for (const [key, model] of Object.entries(config.model.fields.primary ?? {})) {
|
|
100
100
|
const traversedContent = traverseWidgetContentWithModel(path.concat({
|
|
@@ -132,8 +132,8 @@ function traverseSharedSliceContentWithModel(path, key, apiID, content, config)
|
|
|
132
132
|
});
|
|
133
133
|
}
|
|
134
134
|
function traverseCompositeSliceContentWithModel(path, key, apiID, content, config) {
|
|
135
|
+
const { transformWidget, transformSlice } = config;
|
|
135
136
|
if (!content) return;
|
|
136
|
-
const { transformWidget = (args) => args.content, transformSlice = (args) => args.content } = config;
|
|
137
137
|
const traversedPrimary = {};
|
|
138
138
|
for (const [key, model] of Object.entries(config.model?.["non-repeat"] ?? {})) {
|
|
139
139
|
const traversedContent = traverseWidgetContentWithModel(path.concat({
|
|
@@ -171,8 +171,8 @@ function traverseCompositeSliceContentWithModel(path, key, apiID, content, confi
|
|
|
171
171
|
});
|
|
172
172
|
}
|
|
173
173
|
function traverseLegacySliceContentWithModel(path, key, apiID, content, config) {
|
|
174
|
+
const { model, transformWidget, transformSlice } = config;
|
|
174
175
|
if (!content) return;
|
|
175
|
-
const { model, transformWidget = (args) => args.content, transformSlice = (args) => args.content } = config;
|
|
176
176
|
const traversedContent = traverseWidgetContentWithModel(path, key, apiID, content.widget, {
|
|
177
177
|
model,
|
|
178
178
|
transformWidget,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"traverseContentWithModel.js","names":["customTypeModel.flatten","contentPath.make"],"sources":["../../src/helpers/traverseContentWithModel.ts"],"sourcesContent":["import type { DocumentContent } from \"../content/document\"\nimport { GroupContentType } from \"../content/group\"\nimport type { GroupContent, GroupItemContent } from \"../content/group\"\nimport { isNestableContent } from \"../content/nestable\"\nimport { isRepeatableContentValue, RepeatableContentType } from \"../content/repeatable\"\nimport type { RepeatableContent } from \"../content/repeatable\"\nimport { RichTextContentType } from \"../content/richText\"\nimport { CompositeSliceContentType, SharedSliceContentType } from \"../content/slice\"\nimport type { CompositeSliceContent, SharedSliceContent } from \"../content/slice\"\nimport {\n\ttype CompositeSliceItemContent,\n\ttype SharedSliceItemContent,\n\ttype LegacySliceItemContent,\n\ttype SliceItemContent,\n\ttype SlicesContent,\n\tSlicesContentType,\n} from \"../content/slices\"\nimport { TableContentType, type TableContent } from \"../content/table\"\nimport type { WidgetContent } from \"../content/widget\"\nimport type { StaticCustomTypeModel } from \"../model/customType\"\nimport type { GroupModel, NestedGroupModel } from \"../model/group\"\nimport type { LinkModel } from \"../model/link\"\nimport type { NestableModel } from \"../model/nestable\"\nimport type {\n\tCompositeSliceModel,\n\tLegacySliceModel,\n\tSharedSliceVariationModel,\n} from \"../model/slice\"\nimport type { StaticSlicesModel } from \"../model/slices\"\nimport { TableCellModel } from \"../model/table\"\nimport type { TableModel } from \"../model/table\"\nimport type { StaticWidgetModel } from \"../model/widget\"\nimport * as contentPath from \"./contentPath\"\nimport * as customTypeModel from \"./customTypeModel\"\n\ntype TraverseDocumentContentWithModelConfig = {\n\tmodel: StaticCustomTypeModel\n\ttransformWidget?: TraverseWidgetContentWithModelFunction\n\ttransformSlice?: TraverseSliceContentWithModelFunction\n}\n\nexport function traverseDocumentContentWithModel(\n\tdocument: DocumentContent,\n\tconfig: TraverseDocumentContentWithModelConfig,\n): DocumentContent {\n\tconst { model, transformWidget, transformSlice } = config\n\n\t// Remove tabs from custom type model\n\tconst flatModel = model ? customTypeModel.flatten(model) : {}\n\n\tconst traversed: DocumentContent = {}\n\tfor (const [key, model] of Object.entries(flatModel)) {\n\t\tconst path = contentPath.make(\n\t\t\t{ key: config.model.id, type: \"CustomType\" },\n\t\t\t{ key, type: \"Widget\" },\n\t\t)\n\n\t\tconst traversedContent = traverseWidgetContentWithModel(path, key, key, document[key], {\n\t\t\tmodel,\n\t\t\ttransformWidget,\n\t\t\ttransformSlice,\n\t\t})\n\t\tif (traversedContent) {\n\t\t\ttraversed[key] = traversedContent\n\t\t}\n\t}\n\n\treturn traversed\n}\n\ntype TraverseSlicesContentWithModelConfig = {\n\tmodel: StaticSlicesModel\n\ttransformWidget?: TraverseWidgetContentWithModelFunction\n\ttransformSlice?: TraverseSliceContentWithModelFunction\n}\n\nexport function traverseSlicesContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: SlicesContent | undefined,\n\tconfig: TraverseSlicesContentWithModelConfig,\n): SlicesContent | undefined {\n\tconst { transformWidget = (args) => args.content, transformSlice = (args) => args.content } =\n\t\tconfig\n\n\tif (!content) {\n\t\treturn transformWidget({\n\t\t\tpath,\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tmodel: config.model,\n\t\t})\n\t}\n\n\tconst traversed: SlicesContent[\"value\"] = []\n\tfor (const sliceItemContent of content.value) {\n\t\tconst model = config.model.config?.choices?.[sliceItemContent.name]\n\n\t\tlet traversedSliceItemContent: SliceItemContent | undefined\n\t\tif (\n\t\t\tmodel?.type === \"SharedSlice\" &&\n\t\t\tsliceItemContent.widget.__TYPE__ === SharedSliceContentType\n\t\t) {\n\t\t\tconst variationID = sliceItemContent.widget.variation\n\t\t\tconst variationModel = model.variations.find((variation) => variation.id === variationID)\n\t\t\tif (variationModel) {\n\t\t\t\tconst sharedSliceVariationModel: SharedSliceVariationModel = {\n\t\t\t\t\ttype: \"SharedSlice\",\n\t\t\t\t\tsliceName: model.id,\n\t\t\t\t\tvariationID,\n\t\t\t\t\tfields: {\n\t\t\t\t\t\tprimary: variationModel.primary || {},\n\t\t\t\t\t\titems: variationModel.items || {},\n\t\t\t\t\t},\n\t\t\t\t}\n\n\t\t\t\ttraversedSliceItemContent = traverseSharedSliceContentWithModel(\n\t\t\t\t\tpath.concat({ key: sliceItemContent.key, type: \"SharedSlice\" }),\n\t\t\t\t\tsliceItemContent.key,\n\t\t\t\t\tsliceItemContent.name,\n\t\t\t\t\tsliceItemContent as SharedSliceItemContent,\n\t\t\t\t\t{ model: sharedSliceVariationModel, transformWidget, transformSlice },\n\t\t\t\t)\n\t\t\t}\n\t\t} else if (\n\t\t\tmodel?.type === \"Slice\" &&\n\t\t\tsliceItemContent.widget.__TYPE__ === CompositeSliceContentType\n\t\t) {\n\t\t\ttraversedSliceItemContent = traverseCompositeSliceContentWithModel(\n\t\t\t\tpath.concat({ key: sliceItemContent.key, type: \"Slice\" }),\n\t\t\t\tsliceItemContent.key,\n\t\t\t\tsliceItemContent.name,\n\t\t\t\tsliceItemContent as CompositeSliceItemContent,\n\t\t\t\t{ model, transformWidget, transformSlice },\n\t\t\t)\n\t\t} else if (\n\t\t\tmodel &&\n\t\t\tmodel?.type !== \"SharedSlice\" &&\n\t\t\tmodel?.type !== \"Slice\" &&\n\t\t\tsliceItemContent.widget.__TYPE__ !== SharedSliceContentType &&\n\t\t\tsliceItemContent.widget.__TYPE__ !== CompositeSliceContentType\n\t\t) {\n\t\t\ttraversedSliceItemContent = traverseLegacySliceContentWithModel(\n\t\t\t\tpath.concat({ key: sliceItemContent.key, type: \"LegacySlice\" }),\n\t\t\t\tsliceItemContent.key,\n\t\t\t\tsliceItemContent.name,\n\t\t\t\tsliceItemContent as LegacySliceItemContent,\n\t\t\t\t{ model, transformWidget, transformSlice },\n\t\t\t)\n\t\t}\n\n\t\tif (traversedSliceItemContent) {\n\t\t\ttraversed.push(traversedSliceItemContent)\n\t\t}\n\t}\n\n\treturn transformWidget({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: { ...content, value: traversed },\n\t\tmodel: config.model,\n\t})\n}\n\ntype TraverseSharedSliceContentWithModelConfig = {\n\tmodel: SharedSliceVariationModel\n\ttransformWidget?: TraverseWidgetContentWithModelFunction\n\ttransformSlice?: TraverseSliceContentWithModelFunction\n}\n\nexport function traverseSharedSliceContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: SharedSliceItemContent | undefined,\n\tconfig: TraverseSharedSliceContentWithModelConfig,\n): SharedSliceItemContent | undefined {\n\tif (!content) {\n\t\treturn\n\t}\n\n\tconst {\n\t\ttransformWidget = (args) => args.content,\n\t\ttransformSlice = (args) => args.content\n\t} = config\n\n\tconst traversedPrimary: SharedSliceContent[\"primary\"] = {}\n\tfor (const [key, model] of Object.entries(config.model.fields.primary ?? {})) {\n\t\tconst traversedContent = traverseWidgetContentWithModel(\n\t\t\tpath.concat({ key: \"primary\", type: \"primary\" }, { key, type: \"Widget\" }),\n\t\t\tkey,\n\t\t\tkey,\n\t\t\tcontent.widget.primary[key],\n\t\t\t{ model, transformWidget },\n\t\t)\n\n\t\tif (\n\t\t\ttraversedContent &&\n\t\t\t(isNestableContent(traversedContent) || traversedContent.__TYPE__ === GroupContentType)\n\t\t) {\n\t\t\ttraversedPrimary[key] = traversedContent\n\t\t}\n\t}\n\n\tconst traversedItems = traverseGroupItemsContentWithModel(\n\t\tpath.concat({ key: \"items\", type: \"items\" }),\n\t\tcontent.widget.items,\n\t\t{ model: config.model.fields.items ?? {}, transformWidget },\n\t)\n\n\treturn transformSlice({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: {\n\t\t\t...content,\n\t\t\twidget: { ...content.widget, primary: traversedPrimary, items: traversedItems },\n\t\t},\n\t\tmodel: config.model,\n\t})\n}\n\ntype TraverseCompositeSliceContentWithModelConfig = {\n\tmodel: CompositeSliceModel\n\ttransformWidget?: TraverseWidgetContentWithModelFunction\n\ttransformSlice?: TraverseSliceContentWithModelFunction\n}\n\nexport function traverseCompositeSliceContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: CompositeSliceItemContent | undefined,\n\tconfig: TraverseCompositeSliceContentWithModelConfig,\n): CompositeSliceItemContent | undefined {\n\tif (!content) {\n\t\treturn\n\t}\n\n\tconst {\n\t\ttransformWidget = (args) => args.content,\n\t\ttransformSlice = (args) => args.content\n\t} = config\n\n\tconst traversedPrimary: CompositeSliceContent[\"nonRepeat\"] = {}\n\tfor (const [key, model] of Object.entries(config.model?.[\"non-repeat\"] ?? {})) {\n\t\tconst traversedContent = traverseWidgetContentWithModel(\n\t\t\tpath.concat({ key: \"non-repeat\", type: \"primary\" }, { key, type: \"Widget\" }),\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tcontent.widget.nonRepeat[key],\n\t\t\t{ model, transformWidget },\n\t\t)\n\n\t\tif (traversedContent && isNestableContent(traversedContent)) {\n\t\t\ttraversedPrimary[key] = traversedContent\n\t\t}\n\t}\n\n\tconst traversedItems = traverseGroupItemsContentWithModel(\n\t\tpath.concat({ key: \"repeat\", type: \"items\" }),\n\t\tcontent.widget.repeat,\n\t\t{ model: config.model.repeat ?? {}, transformWidget },\n\t)\n\n\treturn transformSlice({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: {\n\t\t\t...content,\n\t\t\twidget: { ...content.widget, nonRepeat: traversedPrimary, repeat: traversedItems },\n\t\t},\n\t\tmodel: config.model,\n\t})\n}\n\ntype TraverseLegacySliceContentWithModelConfig = {\n\tmodel: LegacySliceModel\n\ttransformWidget?: TraverseWidgetContentWithModelFunction\n\ttransformSlice?: TraverseSliceContentWithModelFunction\n}\n\nexport function traverseLegacySliceContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: LegacySliceItemContent | undefined,\n\tconfig: TraverseLegacySliceContentWithModelConfig,\n): LegacySliceItemContent | undefined {\n\tif (!content) {\n\t\treturn\n\t}\n\n\tconst {\n\t\tmodel,\n\t\ttransformWidget = (args) => args.content,\n\t\ttransformSlice = (args) => args.content\n\t} = config\n\n\tconst traversedContent = traverseWidgetContentWithModel(path, key, apiID, content.widget, {\n\t\tmodel,\n\t\ttransformWidget,\n\t\ttransformSlice,\n\t})\n\n\tif (\n\t\ttraversedContent &&\n\t\t(isNestableContent(traversedContent) || traversedContent.__TYPE__ === GroupContentType)\n\t) {\n\t\treturn transformSlice({\n\t\t\tpath,\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tcontent: { ...content, widget: traversedContent },\n\t\t\tmodel,\n\t\t})\n\t}\n}\n\ntype TraverseGroupContentWithModelConfig = {\n\tmodel: GroupModel\n\ttransformWidget: TraverseWidgetContentWithModelFunction\n}\n\nexport function traverseGroupContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: GroupContent | undefined,\n\tconfig: TraverseGroupContentWithModelConfig,\n): GroupContent | undefined {\n\tconst { model, transformWidget } = config\n\n\tif (!content) {\n\t\treturn transformWidget({\n\t\t\tpath,\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tmodel,\n\t\t})\n\t}\n\n\tconst traversed = traverseGroupItemsContentWithModel(path, content.value, {\n\t\tmodel: model.config?.fields ?? {},\n\t\ttransformWidget,\n\t})\n\n\treturn transformWidget({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: { ...content, value: traversed },\n\t\tmodel,\n\t})\n}\n\ntype TraverseGroupItemsContentWithModelConfig = {\n\tmodel: Record<string, NestedGroupModel | NestableModel>\n\ttransformWidget: TraverseWidgetContentWithModelFunction\n}\n\nexport function traverseGroupItemsContentWithModel(\n\tpath: contentPath.Path,\n\tcontent: GroupItemContent[] | undefined,\n\tconfig: TraverseGroupItemsContentWithModelConfig,\n): GroupItemContent[] {\n\tconst { transformWidget } = config\n\n\tif (!content) {\n\t\treturn []\n\t}\n\n\tconst traversed: GroupItemContent[] = []\n\tfor (const groupItemContent of content) {\n\t\tconst groupItemPath = path.concat({ key: groupItemContent.key, type: \"GroupItem\" })\n\t\tconst groupItemContentValue = Object.fromEntries(groupItemContent.value)\n\n\t\tconst traversedValue: GroupItemContent[\"value\"] = []\n\t\tfor (const [key, model] of Object.entries(config.model)) {\n\t\t\tconst traversedContent = traverseWidgetContentWithModel(\n\t\t\t\tgroupItemPath.concat({ key, type: \"Widget\" }),\n\t\t\t\tkey,\n\t\t\t\tkey,\n\t\t\t\tgroupItemContentValue[key],\n\t\t\t\t{ model, transformWidget },\n\t\t\t)\n\n\t\t\tif (\n\t\t\t\ttraversedContent &&\n\t\t\t\t(isNestableContent(traversedContent) || traversedContent.__TYPE__ === GroupContentType)\n\t\t\t) {\n\t\t\t\ttraversedValue.push([key, traversedContent])\n\t\t\t}\n\t\t}\n\n\t\ttraversed.push({ ...groupItemContent, value: traversedValue })\n\t}\n\n\treturn traversed\n}\n\ntype TraverseRepeatableContentWithModelConfig = {\n\tmodel: LinkModel\n\ttransformWidget: TraverseWidgetContentWithModelFunction\n}\n\nexport function traverseRepeatableContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: RepeatableContent | undefined,\n\tconfig: TraverseRepeatableContentWithModelConfig,\n): RepeatableContent | undefined {\n\tconst { model, transformWidget } = config\n\n\tif (!content) {\n\t\treturn transformWidget({\n\t\t\tpath,\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tmodel,\n\t\t})\n\t}\n\n\tconst nonRepeatModel =\n\t\tmodel.type === \"Link\" && model.config\n\t\t\t? { ...model, config: { ...model.config, repeat: false } }\n\t\t\t: model\n\n\tconst traversed: RepeatableContent[\"value\"] = []\n\tfor (let index = 0; index < content.value.length; index++) {\n\t\tconst traversedContent = traverseWidgetContentWithModel(\n\t\t\tpath.concat({ key: index.toString(), type: \"Widget\" }),\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tcontent.value[index],\n\t\t\t{ model: nonRepeatModel, transformWidget },\n\t\t)\n\n\t\tif (traversedContent && isRepeatableContentValue(traversedContent)) {\n\t\t\ttraversed.push(traversedContent)\n\t\t}\n\t}\n\n\treturn transformWidget({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: { ...content, value: traversed },\n\t\tmodel,\n\t})\n}\n\ntype TraverseTableContentWithModelConfig = {\n\tmodel: TableModel\n\ttransformWidget: TraverseWidgetContentWithModelFunction\n}\n\nexport function traverseTableContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: TableContent | undefined,\n\tconfig: TraverseTableContentWithModelConfig,\n): TableContent | undefined {\n\tconst { model, transformWidget } = config\n\n\tif (!content) {\n\t\treturn transformWidget({\n\t\t\tpath,\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tmodel,\n\t\t})\n\t}\n\n\tconst traversed: TableContent[\"content\"] = []\n\tfor (let rowIndex = 0; rowIndex < content.content.length; rowIndex++) {\n\t\tconst traversedContent: TableContent[\"content\"][number][\"content\"] = []\n\t\tfor (let cellIndex = 0; cellIndex < content.content[rowIndex].content.length; cellIndex++) {\n\t\t\tconst cellPath = path.concat({ key: [rowIndex, cellIndex].join(\",\"), type: \"Widget\" })\n\t\t\tconst cell = content.content[rowIndex].content[cellIndex]\n\n\t\t\tconst transformed = transformWidget({\n\t\t\t\tpath: cellPath,\n\t\t\t\tkey,\n\t\t\t\tapiID,\n\t\t\t\tcontent: cell.content,\n\t\t\t\tmodel: TableCellModel,\n\t\t\t})\n\n\t\t\tif (transformed && transformed.__TYPE__ === RichTextContentType) {\n\t\t\t\ttraversedContent.push({ ...cell, content: transformed })\n\t\t\t} else {\n\t\t\t\ttraversedContent.push({\n\t\t\t\t\t...cell,\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t__TYPE__: RichTextContentType,\n\t\t\t\t\t\tvalue: [],\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\ttraversed.push({ ...content.content[rowIndex], content: traversedContent })\n\t}\n\n\treturn transformWidget({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: { ...content, content: traversed },\n\t\tmodel,\n\t})\n}\n\n// Internals\n\ntype SliceModel = SharedSliceVariationModel | CompositeSliceModel | LegacySliceModel\n\nexport type TraverseSliceContentWithModelFunction = <TContent extends SliceItemContent>(args: {\n\tpath: contentPath.Path\n\tkey: string\n\tapiID: string\n\tcontent?: TContent\n\tmodel: SliceModel\n}) => TContent | undefined\n\nexport type TraverseWidgetContentWithModelFunction<\n\tTContentTransformMode extends \"preserve\" | \"widen\" = \"preserve\",\n> = <TContent extends WidgetContent>(args: {\n\tpath: contentPath.Path\n\tkey: string\n\tapiID: string\n\tcontent?: TContent\n\tmodel: StaticWidgetModel\n}) => (TContentTransformMode extends \"preserve\" ? TContent : WidgetContent) | undefined\n\ntype TraverseWidgetContentWithModelConfig = {\n\tmodel: StaticWidgetModel\n\ttransformWidget?: TraverseWidgetContentWithModelFunction\n\ttransformSlice?: TraverseSliceContentWithModelFunction\n}\n\nfunction traverseWidgetContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: WidgetContent | undefined,\n\tconfig: TraverseWidgetContentWithModelConfig,\n): WidgetContent | undefined {\n\tconst {\n\t\tmodel,\n\t\ttransformWidget = (args) => args.content,\n\t\ttransformSlice = (args) => args.content,\n\t} = config\n\n\tif (model.type === \"Slices\" || model.type === \"Choice\") {\n\t\tconst slices = content?.__TYPE__ === SlicesContentType ? content : undefined\n\t\treturn traverseSlicesContentWithModel(path, key, apiID, slices, {\n\t\t\ttransformWidget,\n\t\t\ttransformSlice,\n\t\t\tmodel,\n\t\t})\n\t}\n\n\tif (model.type === \"Group\") {\n\t\tconst group = content?.__TYPE__ === GroupContentType ? content : undefined\n\t\treturn traverseGroupContentWithModel(path, key, apiID, group, { transformWidget, model })\n\t}\n\n\tif (model.type === \"Link\" && model.config?.repeat) {\n\t\tconst repeatable = content?.__TYPE__ === RepeatableContentType ? content : undefined\n\t\treturn traverseRepeatableContentWithModel(path, key, apiID, repeatable, {\n\t\t\ttransformWidget,\n\t\t\tmodel,\n\t\t})\n\t}\n\n\tif (model.type === \"Table\") {\n\t\tconst table = content?.__TYPE__ === TableContentType ? content : undefined\n\t\treturn traverseTableContentWithModel(path, key, apiID, table, { transformWidget, model })\n\t}\n\n\tconst nestable =\n\t\tcontent?.__TYPE__ !== SlicesContentType &&\n\t\tcontent?.__TYPE__ !== GroupContentType &&\n\t\tcontent?.__TYPE__ !== RepeatableContentType &&\n\t\tcontent?.__TYPE__ !== TableContentType\n\t\t\t? content\n\t\t\t: undefined\n\treturn transformWidget({ path, key, apiID, content: nestable, model })\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"traverseContentWithModel.js","names":["customTypeModel.flatten","contentPath.make"],"sources":["../../src/helpers/traverseContentWithModel.ts"],"sourcesContent":["import type { DocumentContent } from \"../content/document\"\nimport { GroupContentType } from \"../content/group\"\nimport type { GroupContent, GroupItemContent } from \"../content/group\"\nimport { isNestableContent } from \"../content/nestable\"\nimport { isRepeatableContentValue, RepeatableContentType } from \"../content/repeatable\"\nimport type { RepeatableContent } from \"../content/repeatable\"\nimport { RichTextContentType } from \"../content/richText\"\nimport { CompositeSliceContentType, SharedSliceContentType } from \"../content/slice\"\nimport type { CompositeSliceContent, SharedSliceContent } from \"../content/slice\"\nimport {\n\ttype CompositeSliceItemContent,\n\ttype SharedSliceItemContent,\n\ttype LegacySliceItemContent,\n\ttype SliceItemContent,\n\ttype SlicesContent,\n\tSlicesContentType,\n} from \"../content/slices\"\nimport { TableContentType, type TableContent } from \"../content/table\"\nimport type { WidgetContent } from \"../content/widget\"\nimport type { StaticCustomTypeModel } from \"../model/customType\"\nimport type { GroupModel, NestedGroupModel } from \"../model/group\"\nimport type { LinkModel } from \"../model/link\"\nimport type { NestableModel } from \"../model/nestable\"\nimport type {\n\tCompositeSliceModel,\n\tLegacySliceModel,\n\tSharedSliceVariationModel,\n} from \"../model/slice\"\nimport type { StaticSlicesModel } from \"../model/slices\"\nimport { TableCellModel } from \"../model/table\"\nimport type { TableModel } from \"../model/table\"\nimport type { StaticWidgetModel } from \"../model/widget\"\nimport * as contentPath from \"./contentPath\"\nimport * as customTypeModel from \"./customTypeModel\"\n\ntype TraverseDocumentContentWithModelConfig = {\n\tmodel: StaticCustomTypeModel\n\ttransformWidget?: TraverseWidgetContentWithModelFunction\n\ttransformSlice?: TraverseSliceContentWithModelFunction\n}\n\nexport function traverseDocumentContentWithModel(\n\tdocument: DocumentContent,\n\tconfig: TraverseDocumentContentWithModelConfig,\n): DocumentContent {\n\tconst { model, transformWidget, transformSlice } = config\n\n\t// Remove tabs from custom type model\n\tconst flatModel = model ? customTypeModel.flatten(model) : {}\n\n\tconst traversed: DocumentContent = {}\n\tfor (const [key, model] of Object.entries(flatModel)) {\n\t\tconst path = contentPath.make(\n\t\t\t{ key: config.model.id, type: \"CustomType\" },\n\t\t\t{ key, type: \"Widget\" },\n\t\t)\n\n\t\tconst traversedContent = traverseWidgetContentWithModel(path, key, key, document[key], {\n\t\t\tmodel,\n\t\t\ttransformWidget,\n\t\t\ttransformSlice,\n\t\t})\n\t\tif (traversedContent) {\n\t\t\ttraversed[key] = traversedContent\n\t\t}\n\t}\n\n\treturn traversed\n}\n\ntype TraverseSlicesContentWithModelConfig = {\n\tmodel: StaticSlicesModel\n\ttransformWidget?: TraverseWidgetContentWithModelFunction\n\ttransformSlice?: TraverseSliceContentWithModelFunction\n}\n\nexport function traverseSlicesContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: SlicesContent | undefined,\n\tconfig: TraverseSlicesContentWithModelConfig,\n): SlicesContent | undefined {\n\tconst { transformWidget = (args) => args.content, transformSlice = (args) => args.content } =\n\t\tconfig\n\n\tif (!content) {\n\t\treturn transformWidget({\n\t\t\tpath,\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tmodel: config.model,\n\t\t})\n\t}\n\n\tconst traversed: SlicesContent[\"value\"] = []\n\tfor (const sliceItemContent of content.value) {\n\t\tconst model = config.model.config?.choices?.[sliceItemContent.name]\n\n\t\tlet traversedSliceItemContent: SliceItemContent | undefined\n\t\tif (\n\t\t\tmodel?.type === \"SharedSlice\" &&\n\t\t\tsliceItemContent.widget.__TYPE__ === SharedSliceContentType\n\t\t) {\n\t\t\tconst variationID = sliceItemContent.widget.variation\n\t\t\tconst variationModel = model.variations.find((variation) => variation.id === variationID)\n\t\t\tif (variationModel) {\n\t\t\t\tconst sharedSliceVariationModel: SharedSliceVariationModel = {\n\t\t\t\t\ttype: \"SharedSlice\",\n\t\t\t\t\tsliceName: model.id,\n\t\t\t\t\tvariationID,\n\t\t\t\t\tfields: {\n\t\t\t\t\t\tprimary: variationModel.primary || {},\n\t\t\t\t\t\titems: variationModel.items || {},\n\t\t\t\t\t},\n\t\t\t\t}\n\n\t\t\t\ttraversedSliceItemContent = traverseSharedSliceContentWithModel(\n\t\t\t\t\tpath.concat({ key: sliceItemContent.key, type: \"SharedSlice\" }),\n\t\t\t\t\tsliceItemContent.key,\n\t\t\t\t\tsliceItemContent.name,\n\t\t\t\t\tsliceItemContent as SharedSliceItemContent,\n\t\t\t\t\t{ model: sharedSliceVariationModel, transformWidget, transformSlice },\n\t\t\t\t)\n\t\t\t}\n\t\t} else if (\n\t\t\tmodel?.type === \"Slice\" &&\n\t\t\tsliceItemContent.widget.__TYPE__ === CompositeSliceContentType\n\t\t) {\n\t\t\ttraversedSliceItemContent = traverseCompositeSliceContentWithModel(\n\t\t\t\tpath.concat({ key: sliceItemContent.key, type: \"Slice\" }),\n\t\t\t\tsliceItemContent.key,\n\t\t\t\tsliceItemContent.name,\n\t\t\t\tsliceItemContent as CompositeSliceItemContent,\n\t\t\t\t{ model, transformWidget, transformSlice },\n\t\t\t)\n\t\t} else if (\n\t\t\tmodel &&\n\t\t\tmodel?.type !== \"SharedSlice\" &&\n\t\t\tmodel?.type !== \"Slice\" &&\n\t\t\tsliceItemContent.widget.__TYPE__ !== SharedSliceContentType &&\n\t\t\tsliceItemContent.widget.__TYPE__ !== CompositeSliceContentType\n\t\t) {\n\t\t\ttraversedSliceItemContent = traverseLegacySliceContentWithModel(\n\t\t\t\tpath.concat({ key: sliceItemContent.key, type: \"LegacySlice\" }),\n\t\t\t\tsliceItemContent.key,\n\t\t\t\tsliceItemContent.name,\n\t\t\t\tsliceItemContent as LegacySliceItemContent,\n\t\t\t\t{ model, transformWidget, transformSlice },\n\t\t\t)\n\t\t}\n\n\t\tif (traversedSliceItemContent) {\n\t\t\ttraversed.push(traversedSliceItemContent)\n\t\t}\n\t}\n\n\treturn transformWidget({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: { ...content, value: traversed },\n\t\tmodel: config.model,\n\t})\n}\n\ntype TraverseSharedSliceContentWithModelConfig = {\n\tmodel: SharedSliceVariationModel\n\ttransformWidget: TraverseWidgetContentWithModelFunction\n\ttransformSlice: TraverseSliceContentWithModelFunction\n}\n\nexport function traverseSharedSliceContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: SharedSliceItemContent | undefined,\n\tconfig: TraverseSharedSliceContentWithModelConfig,\n): SharedSliceItemContent | undefined {\n\tconst { transformWidget, transformSlice } = config\n\n\tif (!content) {\n\t\treturn\n\t}\n\n\tconst traversedPrimary: SharedSliceContent[\"primary\"] = {}\n\tfor (const [key, model] of Object.entries(config.model.fields.primary ?? {})) {\n\t\tconst traversedContent = traverseWidgetContentWithModel(\n\t\t\tpath.concat({ key: \"primary\", type: \"primary\" }, { key, type: \"Widget\" }),\n\t\t\tkey,\n\t\t\tkey,\n\t\t\tcontent.widget.primary[key],\n\t\t\t{ model, transformWidget },\n\t\t)\n\n\t\tif (\n\t\t\ttraversedContent &&\n\t\t\t(isNestableContent(traversedContent) || traversedContent.__TYPE__ === GroupContentType)\n\t\t) {\n\t\t\ttraversedPrimary[key] = traversedContent\n\t\t}\n\t}\n\n\tconst traversedItems = traverseGroupItemsContentWithModel(\n\t\tpath.concat({ key: \"items\", type: \"items\" }),\n\t\tcontent.widget.items,\n\t\t{ model: config.model.fields.items ?? {}, transformWidget },\n\t)\n\n\treturn transformSlice({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: {\n\t\t\t...content,\n\t\t\twidget: { ...content.widget, primary: traversedPrimary, items: traversedItems },\n\t\t},\n\t\tmodel: config.model,\n\t})\n}\n\ntype TraverseCompositeSliceContentWithModelConfig = {\n\tmodel: CompositeSliceModel\n\ttransformWidget: TraverseWidgetContentWithModelFunction\n\ttransformSlice: TraverseSliceContentWithModelFunction\n}\n\nexport function traverseCompositeSliceContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: CompositeSliceItemContent | undefined,\n\tconfig: TraverseCompositeSliceContentWithModelConfig,\n): CompositeSliceItemContent | undefined {\n\tconst { transformWidget, transformSlice } = config\n\n\tif (!content) {\n\t\treturn\n\t}\n\n\tconst traversedPrimary: CompositeSliceContent[\"nonRepeat\"] = {}\n\tfor (const [key, model] of Object.entries(config.model?.[\"non-repeat\"] ?? {})) {\n\t\tconst traversedContent = traverseWidgetContentWithModel(\n\t\t\tpath.concat({ key: \"non-repeat\", type: \"primary\" }, { key, type: \"Widget\" }),\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tcontent.widget.nonRepeat[key],\n\t\t\t{ model, transformWidget },\n\t\t)\n\n\t\tif (traversedContent && isNestableContent(traversedContent)) {\n\t\t\ttraversedPrimary[key] = traversedContent\n\t\t}\n\t}\n\n\tconst traversedItems = traverseGroupItemsContentWithModel(\n\t\tpath.concat({ key: \"repeat\", type: \"items\" }),\n\t\tcontent.widget.repeat,\n\t\t{ model: config.model.repeat ?? {}, transformWidget },\n\t)\n\n\treturn transformSlice({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: {\n\t\t\t...content,\n\t\t\twidget: { ...content.widget, nonRepeat: traversedPrimary, repeat: traversedItems },\n\t\t},\n\t\tmodel: config.model,\n\t})\n}\n\ntype TraverseLegacySliceContentWithModelConfig = {\n\tmodel: LegacySliceModel\n\ttransformWidget: TraverseWidgetContentWithModelFunction\n\ttransformSlice: TraverseSliceContentWithModelFunction\n}\n\nexport function traverseLegacySliceContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: LegacySliceItemContent | undefined,\n\tconfig: TraverseLegacySliceContentWithModelConfig,\n): LegacySliceItemContent | undefined {\n\tconst { model, transformWidget, transformSlice } = config\n\n\tif (!content) {\n\t\treturn\n\t}\n\n\tconst traversedContent = traverseWidgetContentWithModel(path, key, apiID, content.widget, {\n\t\tmodel,\n\t\ttransformWidget,\n\t\ttransformSlice,\n\t})\n\n\tif (\n\t\ttraversedContent &&\n\t\t(isNestableContent(traversedContent) || traversedContent.__TYPE__ === GroupContentType)\n\t) {\n\t\treturn transformSlice({\n\t\t\tpath,\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tcontent: { ...content, widget: traversedContent },\n\t\t\tmodel,\n\t\t})\n\t}\n}\n\ntype TraverseGroupContentWithModelConfig = {\n\tmodel: GroupModel\n\ttransformWidget: TraverseWidgetContentWithModelFunction\n}\n\nexport function traverseGroupContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: GroupContent | undefined,\n\tconfig: TraverseGroupContentWithModelConfig,\n): GroupContent | undefined {\n\tconst { model, transformWidget } = config\n\n\tif (!content) {\n\t\treturn transformWidget({\n\t\t\tpath,\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tmodel,\n\t\t})\n\t}\n\n\tconst traversed = traverseGroupItemsContentWithModel(path, content.value, {\n\t\tmodel: model.config?.fields ?? {},\n\t\ttransformWidget,\n\t})\n\n\treturn transformWidget({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: { ...content, value: traversed },\n\t\tmodel,\n\t})\n}\n\ntype TraverseGroupItemsContentWithModelConfig = {\n\tmodel: Record<string, NestedGroupModel | NestableModel>\n\ttransformWidget: TraverseWidgetContentWithModelFunction\n}\n\nexport function traverseGroupItemsContentWithModel(\n\tpath: contentPath.Path,\n\tcontent: GroupItemContent[] | undefined,\n\tconfig: TraverseGroupItemsContentWithModelConfig,\n): GroupItemContent[] {\n\tconst { transformWidget } = config\n\n\tif (!content) {\n\t\treturn []\n\t}\n\n\tconst traversed: GroupItemContent[] = []\n\tfor (const groupItemContent of content) {\n\t\tconst groupItemPath = path.concat({ key: groupItemContent.key, type: \"GroupItem\" })\n\t\tconst groupItemContentValue = Object.fromEntries(groupItemContent.value)\n\n\t\tconst traversedValue: GroupItemContent[\"value\"] = []\n\t\tfor (const [key, model] of Object.entries(config.model)) {\n\t\t\tconst traversedContent = traverseWidgetContentWithModel(\n\t\t\t\tgroupItemPath.concat({ key, type: \"Widget\" }),\n\t\t\t\tkey,\n\t\t\t\tkey,\n\t\t\t\tgroupItemContentValue[key],\n\t\t\t\t{ model, transformWidget },\n\t\t\t)\n\n\t\t\tif (\n\t\t\t\ttraversedContent &&\n\t\t\t\t(isNestableContent(traversedContent) || traversedContent.__TYPE__ === GroupContentType)\n\t\t\t) {\n\t\t\t\ttraversedValue.push([key, traversedContent])\n\t\t\t}\n\t\t}\n\n\t\ttraversed.push({ ...groupItemContent, value: traversedValue })\n\t}\n\n\treturn traversed\n}\n\ntype TraverseRepeatableContentWithModelConfig = {\n\tmodel: LinkModel\n\ttransformWidget: TraverseWidgetContentWithModelFunction\n}\n\nexport function traverseRepeatableContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: RepeatableContent | undefined,\n\tconfig: TraverseRepeatableContentWithModelConfig,\n): RepeatableContent | undefined {\n\tconst { model, transformWidget } = config\n\n\tif (!content) {\n\t\treturn transformWidget({\n\t\t\tpath,\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tmodel,\n\t\t})\n\t}\n\n\tconst nonRepeatModel =\n\t\tmodel.type === \"Link\" && model.config\n\t\t\t? { ...model, config: { ...model.config, repeat: false } }\n\t\t\t: model\n\n\tconst traversed: RepeatableContent[\"value\"] = []\n\tfor (let index = 0; index < content.value.length; index++) {\n\t\tconst traversedContent = traverseWidgetContentWithModel(\n\t\t\tpath.concat({ key: index.toString(), type: \"Widget\" }),\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tcontent.value[index],\n\t\t\t{ model: nonRepeatModel, transformWidget },\n\t\t)\n\n\t\tif (traversedContent && isRepeatableContentValue(traversedContent)) {\n\t\t\ttraversed.push(traversedContent)\n\t\t}\n\t}\n\n\treturn transformWidget({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: { ...content, value: traversed },\n\t\tmodel,\n\t})\n}\n\ntype TraverseTableContentWithModelConfig = {\n\tmodel: TableModel\n\ttransformWidget: TraverseWidgetContentWithModelFunction\n}\n\nexport function traverseTableContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: TableContent | undefined,\n\tconfig: TraverseTableContentWithModelConfig,\n): TableContent | undefined {\n\tconst { model, transformWidget } = config\n\n\tif (!content) {\n\t\treturn transformWidget({\n\t\t\tpath,\n\t\t\tkey,\n\t\t\tapiID,\n\t\t\tmodel,\n\t\t})\n\t}\n\n\tconst traversed: TableContent[\"content\"] = []\n\tfor (let rowIndex = 0; rowIndex < content.content.length; rowIndex++) {\n\t\tconst traversedContent: TableContent[\"content\"][number][\"content\"] = []\n\t\tfor (let cellIndex = 0; cellIndex < content.content[rowIndex].content.length; cellIndex++) {\n\t\t\tconst cellPath = path.concat({ key: [rowIndex, cellIndex].join(\",\"), type: \"Widget\" })\n\t\t\tconst cell = content.content[rowIndex].content[cellIndex]\n\n\t\t\tconst transformed = transformWidget({\n\t\t\t\tpath: cellPath,\n\t\t\t\tkey,\n\t\t\t\tapiID,\n\t\t\t\tcontent: cell.content,\n\t\t\t\tmodel: TableCellModel,\n\t\t\t})\n\n\t\t\tif (transformed && transformed.__TYPE__ === RichTextContentType) {\n\t\t\t\ttraversedContent.push({ ...cell, content: transformed })\n\t\t\t} else {\n\t\t\t\ttraversedContent.push({\n\t\t\t\t\t...cell,\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\t__TYPE__: RichTextContentType,\n\t\t\t\t\t\tvalue: [],\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\t\ttraversed.push({ ...content.content[rowIndex], content: traversedContent })\n\t}\n\n\treturn transformWidget({\n\t\tpath,\n\t\tkey,\n\t\tapiID,\n\t\tcontent: { ...content, content: traversed },\n\t\tmodel,\n\t})\n}\n\n// Internals\n\ntype SliceModel = SharedSliceVariationModel | CompositeSliceModel | LegacySliceModel\n\nexport type TraverseSliceContentWithModelFunction = <TContent extends SliceItemContent>(args: {\n\tpath: contentPath.Path\n\tkey: string\n\tapiID: string\n\tcontent?: TContent\n\tmodel: SliceModel\n}) => TContent | undefined\n\nexport type TraverseWidgetContentWithModelFunction<\n\tTContentTransformMode extends \"preserve\" | \"widen\" = \"preserve\",\n> = <TContent extends WidgetContent>(args: {\n\tpath: contentPath.Path\n\tkey: string\n\tapiID: string\n\tcontent?: TContent\n\tmodel: StaticWidgetModel\n}) => (TContentTransformMode extends \"preserve\" ? TContent : WidgetContent) | undefined\n\ntype TraverseWidgetContentWithModelConfig = {\n\tmodel: StaticWidgetModel\n\ttransformWidget?: TraverseWidgetContentWithModelFunction\n\ttransformSlice?: TraverseSliceContentWithModelFunction\n}\n\nfunction traverseWidgetContentWithModel(\n\tpath: contentPath.Path,\n\tkey: string,\n\tapiID: string,\n\tcontent: WidgetContent | undefined,\n\tconfig: TraverseWidgetContentWithModelConfig,\n): WidgetContent | undefined {\n\tconst {\n\t\tmodel,\n\t\ttransformWidget = (args) => args.content,\n\t\ttransformSlice = (args) => args.content,\n\t} = config\n\n\tif (model.type === \"Slices\" || model.type === \"Choice\") {\n\t\tconst slices = content?.__TYPE__ === SlicesContentType ? content : undefined\n\t\treturn traverseSlicesContentWithModel(path, key, apiID, slices, {\n\t\t\ttransformWidget,\n\t\t\ttransformSlice,\n\t\t\tmodel,\n\t\t})\n\t}\n\n\tif (model.type === \"Group\") {\n\t\tconst group = content?.__TYPE__ === GroupContentType ? content : undefined\n\t\treturn traverseGroupContentWithModel(path, key, apiID, group, { transformWidget, model })\n\t}\n\n\tif (model.type === \"Link\" && model.config?.repeat) {\n\t\tconst repeatable = content?.__TYPE__ === RepeatableContentType ? content : undefined\n\t\treturn traverseRepeatableContentWithModel(path, key, apiID, repeatable, {\n\t\t\ttransformWidget,\n\t\t\tmodel,\n\t\t})\n\t}\n\n\tif (model.type === \"Table\") {\n\t\tconst table = content?.__TYPE__ === TableContentType ? content : undefined\n\t\treturn traverseTableContentWithModel(path, key, apiID, table, { transformWidget, model })\n\t}\n\n\tconst nestable =\n\t\tcontent?.__TYPE__ !== SlicesContentType &&\n\t\tcontent?.__TYPE__ !== GroupContentType &&\n\t\tcontent?.__TYPE__ !== RepeatableContentType &&\n\t\tcontent?.__TYPE__ !== TableContentType\n\t\t\t? content\n\t\t\t: undefined\n\treturn transformWidget({ path, key, apiID, content: nestable, model })\n}\n"],"mappings":"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"}
|
package/dist/io-ts.d.ts
CHANGED
|
@@ -44466,8 +44466,6 @@ declare const DynamicSliceModel: t.Type<{
|
|
|
44466
44466
|
} | undefined;
|
|
44467
44467
|
}> | undefined;
|
|
44468
44468
|
} | undefined;
|
|
44469
|
-
} | {
|
|
44470
|
-
type: "SharedSlice";
|
|
44471
44469
|
} | {
|
|
44472
44470
|
type: "Slice";
|
|
44473
44471
|
fieldset?: string | null | undefined;
|
|
@@ -44823,6 +44821,8 @@ declare const DynamicSliceModel: t.Type<{
|
|
|
44823
44821
|
config?: {
|
|
44824
44822
|
label?: string | null | undefined;
|
|
44825
44823
|
} | undefined;
|
|
44824
|
+
} | {
|
|
44825
|
+
type: "SharedSlice";
|
|
44826
44826
|
}, {
|
|
44827
44827
|
type: "Boolean";
|
|
44828
44828
|
config?: {
|
|
@@ -45177,8 +45177,6 @@ declare const DynamicSliceModel: t.Type<{
|
|
|
45177
45177
|
} | undefined;
|
|
45178
45178
|
}> | undefined;
|
|
45179
45179
|
} | undefined;
|
|
45180
|
-
} | {
|
|
45181
|
-
type: "SharedSlice";
|
|
45182
45180
|
} | {
|
|
45183
45181
|
type: "Slice";
|
|
45184
45182
|
fieldset?: string | null | undefined;
|
|
@@ -45534,6 +45532,8 @@ declare const DynamicSliceModel: t.Type<{
|
|
|
45534
45532
|
config?: {
|
|
45535
45533
|
label?: string | null | undefined;
|
|
45536
45534
|
} | undefined;
|
|
45535
|
+
} | {
|
|
45536
|
+
type: "SharedSlice";
|
|
45537
45537
|
}, unknown>;
|
|
45538
45538
|
declare const StaticSliceModel: t.Type<{
|
|
45539
45539
|
type: "Boolean";
|
|
@@ -48749,8 +48749,6 @@ declare const DynamicSlicesModel: t.Type<{
|
|
|
48749
48749
|
} | undefined;
|
|
48750
48750
|
}> | undefined;
|
|
48751
48751
|
} | undefined;
|
|
48752
|
-
} | {
|
|
48753
|
-
type: "SharedSlice";
|
|
48754
48752
|
} | {
|
|
48755
48753
|
type: "Slice";
|
|
48756
48754
|
fieldset?: string | null | undefined;
|
|
@@ -49106,6 +49104,8 @@ declare const DynamicSlicesModel: t.Type<{
|
|
|
49106
49104
|
config?: {
|
|
49107
49105
|
label?: string | null | undefined;
|
|
49108
49106
|
} | undefined;
|
|
49107
|
+
} | {
|
|
49108
|
+
type: "SharedSlice";
|
|
49109
49109
|
}> | undefined;
|
|
49110
49110
|
} | undefined;
|
|
49111
49111
|
}, {
|
|
@@ -49471,8 +49471,6 @@ declare const DynamicSlicesModel: t.Type<{
|
|
|
49471
49471
|
} | undefined;
|
|
49472
49472
|
}> | undefined;
|
|
49473
49473
|
} | undefined;
|
|
49474
|
-
} | {
|
|
49475
|
-
type: "SharedSlice";
|
|
49476
49474
|
} | {
|
|
49477
49475
|
type: "Slice";
|
|
49478
49476
|
fieldset?: string | null | undefined;
|
|
@@ -49828,6 +49826,8 @@ declare const DynamicSlicesModel: t.Type<{
|
|
|
49828
49826
|
config?: {
|
|
49829
49827
|
label?: string | null | undefined;
|
|
49830
49828
|
} | undefined;
|
|
49829
|
+
} | {
|
|
49830
|
+
type: "SharedSlice";
|
|
49831
49831
|
}> | undefined;
|
|
49832
49832
|
} | undefined;
|
|
49833
49833
|
}, unknown>;
|
|
@@ -57488,8 +57488,6 @@ declare const DynamicWidgetModel: t.Type<{
|
|
|
57488
57488
|
} | undefined;
|
|
57489
57489
|
}> | undefined;
|
|
57490
57490
|
} | undefined;
|
|
57491
|
-
} | {
|
|
57492
|
-
type: "SharedSlice";
|
|
57493
57491
|
} | {
|
|
57494
57492
|
type: "Slice";
|
|
57495
57493
|
fieldset?: string | null | undefined;
|
|
@@ -57845,6 +57843,8 @@ declare const DynamicWidgetModel: t.Type<{
|
|
|
57845
57843
|
config?: {
|
|
57846
57844
|
label?: string | null | undefined;
|
|
57847
57845
|
} | undefined;
|
|
57846
|
+
} | {
|
|
57847
|
+
type: "SharedSlice";
|
|
57848
57848
|
}> | undefined;
|
|
57849
57849
|
} | undefined;
|
|
57850
57850
|
}, {
|
|
@@ -58754,8 +58754,6 @@ declare const DynamicWidgetModel: t.Type<{
|
|
|
58754
58754
|
} | undefined;
|
|
58755
58755
|
}> | undefined;
|
|
58756
58756
|
} | undefined;
|
|
58757
|
-
} | {
|
|
58758
|
-
type: "SharedSlice";
|
|
58759
58757
|
} | {
|
|
58760
58758
|
type: "Slice";
|
|
58761
58759
|
fieldset?: string | null | undefined;
|
|
@@ -59111,6 +59109,8 @@ declare const DynamicWidgetModel: t.Type<{
|
|
|
59111
59109
|
config?: {
|
|
59112
59110
|
label?: string | null | undefined;
|
|
59113
59111
|
} | undefined;
|
|
59112
|
+
} | {
|
|
59113
|
+
type: "SharedSlice";
|
|
59114
59114
|
}> | undefined;
|
|
59115
59115
|
} | undefined;
|
|
59116
59116
|
}, unknown>;
|
|
@@ -63940,8 +63940,6 @@ declare const DynamicSectionModel: t.Type<Record<string, {
|
|
|
63940
63940
|
} | undefined;
|
|
63941
63941
|
}> | undefined;
|
|
63942
63942
|
} | undefined;
|
|
63943
|
-
} | {
|
|
63944
|
-
type: "SharedSlice";
|
|
63945
63943
|
} | {
|
|
63946
63944
|
type: "Slice";
|
|
63947
63945
|
fieldset?: string | null | undefined;
|
|
@@ -64297,6 +64295,8 @@ declare const DynamicSectionModel: t.Type<Record<string, {
|
|
|
64297
64295
|
config?: {
|
|
64298
64296
|
label?: string | null | undefined;
|
|
64299
64297
|
} | undefined;
|
|
64298
|
+
} | {
|
|
64299
|
+
type: "SharedSlice";
|
|
64300
64300
|
}> | undefined;
|
|
64301
64301
|
} | undefined;
|
|
64302
64302
|
}>, Record<string, {
|
|
@@ -65206,8 +65206,6 @@ declare const DynamicSectionModel: t.Type<Record<string, {
|
|
|
65206
65206
|
} | undefined;
|
|
65207
65207
|
}> | undefined;
|
|
65208
65208
|
} | undefined;
|
|
65209
|
-
} | {
|
|
65210
|
-
type: "SharedSlice";
|
|
65211
65209
|
} | {
|
|
65212
65210
|
type: "Slice";
|
|
65213
65211
|
fieldset?: string | null | undefined;
|
|
@@ -65563,6 +65561,8 @@ declare const DynamicSectionModel: t.Type<Record<string, {
|
|
|
65563
65561
|
config?: {
|
|
65564
65562
|
label?: string | null | undefined;
|
|
65565
65563
|
} | undefined;
|
|
65564
|
+
} | {
|
|
65565
|
+
type: "SharedSlice";
|
|
65566
65566
|
}> | undefined;
|
|
65567
65567
|
} | undefined;
|
|
65568
65568
|
}>, unknown>;
|
|
@@ -70341,8 +70341,6 @@ declare const CustomTypeModel: t.Type<{
|
|
|
70341
70341
|
} | undefined;
|
|
70342
70342
|
}> | undefined;
|
|
70343
70343
|
} | undefined;
|
|
70344
|
-
} | {
|
|
70345
|
-
type: "SharedSlice";
|
|
70346
70344
|
} | {
|
|
70347
70345
|
type: "Slice";
|
|
70348
70346
|
fieldset?: string | null | undefined;
|
|
@@ -70698,6 +70696,8 @@ declare const CustomTypeModel: t.Type<{
|
|
|
70698
70696
|
config?: {
|
|
70699
70697
|
label?: string | null | undefined;
|
|
70700
70698
|
} | undefined;
|
|
70699
|
+
} | {
|
|
70700
|
+
type: "SharedSlice";
|
|
70701
70701
|
}> | undefined;
|
|
70702
70702
|
} | undefined;
|
|
70703
70703
|
}>>;
|
|
@@ -71608,8 +71608,6 @@ declare const CustomTypeModel: t.Type<{
|
|
|
71608
71608
|
} | undefined;
|
|
71609
71609
|
}> | undefined;
|
|
71610
71610
|
} | undefined;
|
|
71611
|
-
} | {
|
|
71612
|
-
type: "SharedSlice";
|
|
71613
71611
|
} | {
|
|
71614
71612
|
type: "Slice";
|
|
71615
71613
|
fieldset?: string | null | undefined;
|
|
@@ -71965,6 +71963,8 @@ declare const CustomTypeModel: t.Type<{
|
|
|
71965
71963
|
config?: {
|
|
71966
71964
|
label?: string | null | undefined;
|
|
71967
71965
|
} | undefined;
|
|
71966
|
+
} | {
|
|
71967
|
+
type: "SharedSlice";
|
|
71968
71968
|
}> | undefined;
|
|
71969
71969
|
} | undefined;
|
|
71970
71970
|
}>>;
|
package/dist/model/widget.d.ts
CHANGED
|
@@ -3344,16 +3344,16 @@ declare const FieldModelTypeSchema: z.ZodMiniEnum<{
|
|
|
3344
3344
|
Boolean: "Boolean";
|
|
3345
3345
|
Embed: "Embed";
|
|
3346
3346
|
GeoPoint: "GeoPoint";
|
|
3347
|
+
Image: "Image";
|
|
3348
|
+
IntegrationFields: "IntegrationFields";
|
|
3347
3349
|
StructuredText: "StructuredText";
|
|
3348
3350
|
Separator: "Separator";
|
|
3349
3351
|
Table: "Table";
|
|
3350
|
-
"Repeatable.Link": "Repeatable.Link";
|
|
3351
|
-
Image: "Image";
|
|
3352
|
-
IntegrationFields: "IntegrationFields";
|
|
3353
|
-
UID: "UID";
|
|
3354
3352
|
Group: "Group";
|
|
3353
|
+
UID: "UID";
|
|
3355
3354
|
Slices: "Slices";
|
|
3356
3355
|
Choice: "Choice";
|
|
3356
|
+
"Repeatable.Link": "Repeatable.Link";
|
|
3357
3357
|
}>;
|
|
3358
3358
|
type FieldModelType = z.infer<typeof FieldModelTypeSchema>;
|
|
3359
3359
|
declare const FieldOrSliceTypeSchema: z.ZodMiniUnion<readonly [z.ZodMiniEnum<{
|
|
@@ -3368,16 +3368,16 @@ declare const FieldOrSliceTypeSchema: z.ZodMiniUnion<readonly [z.ZodMiniEnum<{
|
|
|
3368
3368
|
Boolean: "Boolean";
|
|
3369
3369
|
Embed: "Embed";
|
|
3370
3370
|
GeoPoint: "GeoPoint";
|
|
3371
|
+
Image: "Image";
|
|
3372
|
+
IntegrationFields: "IntegrationFields";
|
|
3371
3373
|
StructuredText: "StructuredText";
|
|
3372
3374
|
Separator: "Separator";
|
|
3373
3375
|
Table: "Table";
|
|
3374
|
-
"Repeatable.Link": "Repeatable.Link";
|
|
3375
|
-
Image: "Image";
|
|
3376
|
-
IntegrationFields: "IntegrationFields";
|
|
3377
|
-
UID: "UID";
|
|
3378
3376
|
Group: "Group";
|
|
3377
|
+
UID: "UID";
|
|
3379
3378
|
Slices: "Slices";
|
|
3380
3379
|
Choice: "Choice";
|
|
3380
|
+
"Repeatable.Link": "Repeatable.Link";
|
|
3381
3381
|
}>, z.ZodMiniUnion<readonly [z.ZodMiniLiteral<"Slice">, z.ZodMiniLiteral<"SharedSlice">]>]>;
|
|
3382
3382
|
type FieldOrSliceType = z.infer<typeof FieldOrSliceTypeSchema>;
|
|
3383
3383
|
//#endregion
|
package/package.json
CHANGED
|
@@ -65,7 +65,7 @@ export function fromLegacy(legacy: DocumentLegacy): DocumentContent | undefined
|
|
|
65
65
|
}
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
const result = DocumentLegacyCodec(defaultCtx("", types, keys)).toContent(
|
|
68
|
+
const result = DocumentLegacyCodec(defaultCtx("", types, keys)).toContent(parsed.data)
|
|
69
69
|
if (!result.success) {
|
|
70
70
|
return
|
|
71
71
|
}
|
|
@@ -81,10 +81,8 @@ export function traverseSlicesContent(
|
|
|
81
81
|
content: SlicesContent,
|
|
82
82
|
config: TraverseSlicesContentConfig,
|
|
83
83
|
): SlicesContent | undefined {
|
|
84
|
-
const {
|
|
85
|
-
|
|
86
|
-
transformSlice = (args) => args.content
|
|
87
|
-
} = config
|
|
84
|
+
const { transformWidget = (args) => args.content, transformSlice = (args) => args.content } =
|
|
85
|
+
config
|
|
88
86
|
|
|
89
87
|
const traversed: SlicesContent["value"] = []
|
|
90
88
|
for (const sliceItemContent of content.value) {
|
|
@@ -155,8 +153,8 @@ export function traverseSlicesContent(
|
|
|
155
153
|
|
|
156
154
|
type TraverseSharedSliceContentConfig = {
|
|
157
155
|
model?: SharedSliceVariationModel
|
|
158
|
-
transformWidget
|
|
159
|
-
transformSlice
|
|
156
|
+
transformWidget: TraverseWidgetContentFunction
|
|
157
|
+
transformSlice: TraverseSliceContentFunction
|
|
160
158
|
}
|
|
161
159
|
|
|
162
160
|
export function traverseSharedSliceContent(
|
|
@@ -166,10 +164,7 @@ export function traverseSharedSliceContent(
|
|
|
166
164
|
content: SharedSliceItemContent,
|
|
167
165
|
config: TraverseSharedSliceContentConfig,
|
|
168
166
|
): SharedSliceItemContent | undefined {
|
|
169
|
-
const {
|
|
170
|
-
transformWidget = (args) => args.content,
|
|
171
|
-
transformSlice = (args) => args.content
|
|
172
|
-
} = config
|
|
167
|
+
const { transformWidget, transformSlice } = config
|
|
173
168
|
|
|
174
169
|
const traversedPrimary: SharedSliceContent["primary"] = {}
|
|
175
170
|
for (const [key, fieldContent] of Object.entries(content.widget.primary)) {
|
|
@@ -211,8 +206,8 @@ export function traverseSharedSliceContent(
|
|
|
211
206
|
|
|
212
207
|
type TraverseCompositeSliceContentConfig = {
|
|
213
208
|
model?: CompositeSliceModel
|
|
214
|
-
transformWidget
|
|
215
|
-
transformSlice
|
|
209
|
+
transformWidget: TraverseWidgetContentFunction
|
|
210
|
+
transformSlice: TraverseSliceContentFunction
|
|
216
211
|
}
|
|
217
212
|
|
|
218
213
|
export function traverseCompositeSliceContent(
|
|
@@ -222,10 +217,7 @@ export function traverseCompositeSliceContent(
|
|
|
222
217
|
content: CompositeSliceItemContent,
|
|
223
218
|
config: TraverseCompositeSliceContentConfig,
|
|
224
219
|
): CompositeSliceItemContent | undefined {
|
|
225
|
-
const {
|
|
226
|
-
transformWidget = (args) => args.content,
|
|
227
|
-
transformSlice = (args) => args.content
|
|
228
|
-
} = config
|
|
220
|
+
const { transformWidget, transformSlice } = config
|
|
229
221
|
|
|
230
222
|
const traversedPrimary: CompositeSliceContent["nonRepeat"] = {}
|
|
231
223
|
for (const [key, fieldContent] of Object.entries(content.widget.nonRepeat)) {
|
|
@@ -264,8 +256,8 @@ export function traverseCompositeSliceContent(
|
|
|
264
256
|
|
|
265
257
|
type TraverseLegacySliceContentConfig = {
|
|
266
258
|
model?: LegacySliceModel
|
|
267
|
-
transformWidget
|
|
268
|
-
transformSlice
|
|
259
|
+
transformWidget: TraverseWidgetContentFunction
|
|
260
|
+
transformSlice: TraverseSliceContentFunction
|
|
269
261
|
}
|
|
270
262
|
|
|
271
263
|
export function traverseLegacySliceContent(
|
|
@@ -275,11 +267,7 @@ export function traverseLegacySliceContent(
|
|
|
275
267
|
content: LegacySliceItemContent,
|
|
276
268
|
config: TraverseLegacySliceContentConfig,
|
|
277
269
|
): LegacySliceItemContent | undefined {
|
|
278
|
-
const {
|
|
279
|
-
model,
|
|
280
|
-
transformWidget = (args) => args.content,
|
|
281
|
-
transformSlice = (args) => args.content
|
|
282
|
-
} = config
|
|
270
|
+
const { model, transformWidget, transformSlice } = config
|
|
283
271
|
|
|
284
272
|
const traversedContent = traverseWidgetContent(path, key, apiID, content.widget, {
|
|
285
273
|
model,
|
|
@@ -166,8 +166,8 @@ export function traverseSlicesContentWithModel(
|
|
|
166
166
|
|
|
167
167
|
type TraverseSharedSliceContentWithModelConfig = {
|
|
168
168
|
model: SharedSliceVariationModel
|
|
169
|
-
transformWidget
|
|
170
|
-
transformSlice
|
|
169
|
+
transformWidget: TraverseWidgetContentWithModelFunction
|
|
170
|
+
transformSlice: TraverseSliceContentWithModelFunction
|
|
171
171
|
}
|
|
172
172
|
|
|
173
173
|
export function traverseSharedSliceContentWithModel(
|
|
@@ -177,15 +177,12 @@ export function traverseSharedSliceContentWithModel(
|
|
|
177
177
|
content: SharedSliceItemContent | undefined,
|
|
178
178
|
config: TraverseSharedSliceContentWithModelConfig,
|
|
179
179
|
): SharedSliceItemContent | undefined {
|
|
180
|
+
const { transformWidget, transformSlice } = config
|
|
181
|
+
|
|
180
182
|
if (!content) {
|
|
181
183
|
return
|
|
182
184
|
}
|
|
183
185
|
|
|
184
|
-
const {
|
|
185
|
-
transformWidget = (args) => args.content,
|
|
186
|
-
transformSlice = (args) => args.content
|
|
187
|
-
} = config
|
|
188
|
-
|
|
189
186
|
const traversedPrimary: SharedSliceContent["primary"] = {}
|
|
190
187
|
for (const [key, model] of Object.entries(config.model.fields.primary ?? {})) {
|
|
191
188
|
const traversedContent = traverseWidgetContentWithModel(
|
|
@@ -224,8 +221,8 @@ export function traverseSharedSliceContentWithModel(
|
|
|
224
221
|
|
|
225
222
|
type TraverseCompositeSliceContentWithModelConfig = {
|
|
226
223
|
model: CompositeSliceModel
|
|
227
|
-
transformWidget
|
|
228
|
-
transformSlice
|
|
224
|
+
transformWidget: TraverseWidgetContentWithModelFunction
|
|
225
|
+
transformSlice: TraverseSliceContentWithModelFunction
|
|
229
226
|
}
|
|
230
227
|
|
|
231
228
|
export function traverseCompositeSliceContentWithModel(
|
|
@@ -235,15 +232,12 @@ export function traverseCompositeSliceContentWithModel(
|
|
|
235
232
|
content: CompositeSliceItemContent | undefined,
|
|
236
233
|
config: TraverseCompositeSliceContentWithModelConfig,
|
|
237
234
|
): CompositeSliceItemContent | undefined {
|
|
235
|
+
const { transformWidget, transformSlice } = config
|
|
236
|
+
|
|
238
237
|
if (!content) {
|
|
239
238
|
return
|
|
240
239
|
}
|
|
241
240
|
|
|
242
|
-
const {
|
|
243
|
-
transformWidget = (args) => args.content,
|
|
244
|
-
transformSlice = (args) => args.content
|
|
245
|
-
} = config
|
|
246
|
-
|
|
247
241
|
const traversedPrimary: CompositeSliceContent["nonRepeat"] = {}
|
|
248
242
|
for (const [key, model] of Object.entries(config.model?.["non-repeat"] ?? {})) {
|
|
249
243
|
const traversedContent = traverseWidgetContentWithModel(
|
|
@@ -279,8 +273,8 @@ export function traverseCompositeSliceContentWithModel(
|
|
|
279
273
|
|
|
280
274
|
type TraverseLegacySliceContentWithModelConfig = {
|
|
281
275
|
model: LegacySliceModel
|
|
282
|
-
transformWidget
|
|
283
|
-
transformSlice
|
|
276
|
+
transformWidget: TraverseWidgetContentWithModelFunction
|
|
277
|
+
transformSlice: TraverseSliceContentWithModelFunction
|
|
284
278
|
}
|
|
285
279
|
|
|
286
280
|
export function traverseLegacySliceContentWithModel(
|
|
@@ -290,16 +284,12 @@ export function traverseLegacySliceContentWithModel(
|
|
|
290
284
|
content: LegacySliceItemContent | undefined,
|
|
291
285
|
config: TraverseLegacySliceContentWithModelConfig,
|
|
292
286
|
): LegacySliceItemContent | undefined {
|
|
287
|
+
const { model, transformWidget, transformSlice } = config
|
|
288
|
+
|
|
293
289
|
if (!content) {
|
|
294
290
|
return
|
|
295
291
|
}
|
|
296
292
|
|
|
297
|
-
const {
|
|
298
|
-
model,
|
|
299
|
-
transformWidget = (args) => args.content,
|
|
300
|
-
transformSlice = (args) => args.content
|
|
301
|
-
} = config
|
|
302
|
-
|
|
303
293
|
const traversedContent = traverseWidgetContentWithModel(path, key, apiID, content.widget, {
|
|
304
294
|
model,
|
|
305
295
|
transformWidget,
|