@financial-times/content-tree 0.11.0 → 0.12.0-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +15 -0
- package/SPEC.md +64 -22
- package/content-tree.d.ts +108 -4
- package/package.json +1 -1
- package/schemas/body-tree.schema.json +103 -21
- package/schemas/content-tree.schema.json +102 -21
- package/schemas/transit-tree.schema.json +102 -21
package/README.md
CHANGED
|
@@ -198,6 +198,21 @@ A single semantic change to the content tree is usually split across multiple pu
|
|
|
198
198
|
|
|
199
199
|
Before making a release you will also need to raise a pull request to increment the package.json version number, this should be made in its own PR so that at least one member of each team can approve it. Please get sign-off in the [#dynamic-storytelling-team](https://financialtimes.enterprise.slack.com/archives/C035P5DCHMH) slack channel and share this PR there. Releases are then made via GitHub Releases: they must include a SemVer tag `vX.Y.Z` which matches the one within the package json. The release notes should be completed to communicate what changed in the release. Cutting a release will trigger CI to publish to npm for JS consumers. Go consumers can depend on the new git tag as the module version.
|
|
200
200
|
|
|
201
|
+
### Beta releases
|
|
202
|
+
|
|
203
|
+
If you want to make a beta release from a branch before you merge into main, you can do this with the following steps:
|
|
204
|
+
|
|
205
|
+
* set your release as `v0.0.0-beta.0` where `0` is whatever version number you are setting
|
|
206
|
+
* in Github, go into https://github.com/Financial-Times/content-tree/releases and press the Draft a new release button
|
|
207
|
+
* when drafting the new release
|
|
208
|
+
* set the tag to the same as you have for your beta
|
|
209
|
+
* set the target to the branch that you want to release from
|
|
210
|
+
* set the Release title to the version number
|
|
211
|
+
* fill in release notes as normal
|
|
212
|
+
* check the Pre-release option under Release label
|
|
213
|
+
* Press the Publish release button
|
|
214
|
+
|
|
215
|
+
|
|
201
216
|
## License
|
|
202
217
|
|
|
203
218
|
This software is published by the Financial Times under the [MIT licence](mit).
|
package/SPEC.md
CHANGED
|
@@ -343,28 +343,29 @@ interface Blockquote extends Parent {
|
|
|
343
343
|
|
|
344
344
|
```ts
|
|
345
345
|
type StoryBlock =
|
|
346
|
-
|
|
|
347
|
-
| Flourish
|
|
346
|
+
| AcastPodcast
|
|
348
347
|
| BigNumber
|
|
348
|
+
| Carousel
|
|
349
|
+
| ClipSet
|
|
349
350
|
| CustomCodeComponent
|
|
351
|
+
| Definition
|
|
352
|
+
| Flourish
|
|
353
|
+
| ImagePair
|
|
354
|
+
| ImageSet
|
|
355
|
+
| InfoBox
|
|
356
|
+
| InfoPair
|
|
357
|
+
| InNumbers
|
|
350
358
|
| Layout
|
|
351
359
|
| Pullquote
|
|
352
|
-
| ScrollyBlock
|
|
353
|
-
| ClipSet
|
|
354
|
-
| Table
|
|
355
360
|
| Recommended
|
|
356
361
|
| RecommendedList
|
|
362
|
+
| ScrollyBlock
|
|
363
|
+
| Table
|
|
364
|
+
| Timeline
|
|
357
365
|
| Tweet
|
|
358
366
|
| Video
|
|
359
|
-
| YoutubeVideo
|
|
360
367
|
| VimeoVideo
|
|
361
|
-
|
|
362
|
-
| Timeline
|
|
363
|
-
| ImagePair
|
|
364
|
-
| InNumbers
|
|
365
|
-
| Definition
|
|
366
|
-
| InfoBox
|
|
367
|
-
| InfoPair
|
|
368
|
+
| YoutubeVideo
|
|
368
369
|
```
|
|
369
370
|
|
|
370
371
|
`StoryBlock` nodes are things that can be inserted into an article body.
|
|
@@ -867,7 +868,7 @@ interface Table extends Parent {
|
|
|
867
868
|
|
|
868
869
|
**Table** represents 2d data.
|
|
869
870
|
|
|
870
|
-
### CustomCodeComponent
|
|
871
|
+
### `CustomCodeComponent`
|
|
871
872
|
|
|
872
873
|
```ts
|
|
873
874
|
type CustomCodeComponentAttributes = {
|
|
@@ -897,7 +898,7 @@ interface CustomCodeComponent extends Node {
|
|
|
897
898
|
- The basic interface in Spark to make reference to this system above (eg. the git repo URL or a public S3 bucket), and provide some data for it if necessary. This will be the Custom Component storyblock.
|
|
898
899
|
- The data Spark receives from entering a specific ID will be used to render dynamic fields (the `attributes`).
|
|
899
900
|
|
|
900
|
-
### ImagePair
|
|
901
|
+
### `ImagePair`
|
|
901
902
|
|
|
902
903
|
```ts
|
|
903
904
|
interface ImagePair extends Parent {
|
|
@@ -908,7 +909,7 @@ interface ImagePair extends Parent {
|
|
|
908
909
|
|
|
909
910
|
**ImagePair** is a set of two images
|
|
910
911
|
|
|
911
|
-
### Timeline
|
|
912
|
+
### `Timeline`
|
|
912
913
|
|
|
913
914
|
```ts
|
|
914
915
|
/**
|
|
@@ -933,7 +934,7 @@ interface TimelineEvent extends Parent {
|
|
|
933
934
|
}
|
|
934
935
|
```
|
|
935
936
|
|
|
936
|
-
### InNumbers
|
|
937
|
+
### `InNumbers`
|
|
937
938
|
|
|
938
939
|
```ts
|
|
939
940
|
/**
|
|
@@ -956,7 +957,7 @@ interface InNumbers extends Parent {
|
|
|
956
957
|
}
|
|
957
958
|
```
|
|
958
959
|
|
|
959
|
-
### Card
|
|
960
|
+
### `Card`
|
|
960
961
|
|
|
961
962
|
```ts
|
|
962
963
|
/** Allowed children for a card
|
|
@@ -973,7 +974,7 @@ interface Card extends Parent {
|
|
|
973
974
|
}
|
|
974
975
|
```
|
|
975
976
|
|
|
976
|
-
### InfoBox
|
|
977
|
+
### `InfoBox`
|
|
977
978
|
|
|
978
979
|
```ts
|
|
979
980
|
/**
|
|
@@ -991,7 +992,7 @@ interface InfoBox extends Parent {
|
|
|
991
992
|
}
|
|
992
993
|
```
|
|
993
994
|
|
|
994
|
-
### InfoPair
|
|
995
|
+
### `InfoPair`
|
|
995
996
|
|
|
996
997
|
```ts
|
|
997
998
|
/**
|
|
@@ -1005,9 +1006,50 @@ interface InfoPair extends Parent {
|
|
|
1005
1006
|
}
|
|
1006
1007
|
```
|
|
1007
1008
|
|
|
1009
|
+
### Carousels
|
|
1008
1010
|
|
|
1011
|
+
#### `CarouselCard`
|
|
1012
|
+
```ts
|
|
1013
|
+
interface CarouselCard extends Node {
|
|
1014
|
+
type: "carousel-card"
|
|
1015
|
+
image: ImageSet
|
|
1016
|
+
title?: string
|
|
1017
|
+
copy: Paragraph[]
|
|
1018
|
+
additionalInfo?: string
|
|
1019
|
+
}
|
|
1020
|
+
```
|
|
1021
|
+
**CarouselCard** is a single item in a carousel
|
|
1009
1022
|
|
|
1023
|
+
#### `CarouselChildren`
|
|
1024
|
+
```ts
|
|
1025
|
+
/**
|
|
1026
|
+
* @maxItems 10
|
|
1027
|
+
* @minItems 4
|
|
1028
|
+
* @sparkRepeater true
|
|
1029
|
+
*/
|
|
1030
|
+
type CarouselChildren = CarouselCard[]
|
|
1031
|
+
```
|
|
1032
|
+
**CarouselChildren** the array of carousel cards that make up a carousel
|
|
1010
1033
|
|
|
1034
|
+
#### `CarouselHeading`
|
|
1035
|
+
```ts
|
|
1036
|
+
interface CarouselHeading extends Node {
|
|
1037
|
+
type: "carousel-heading"
|
|
1038
|
+
title: string
|
|
1039
|
+
standfirst?: string
|
|
1040
|
+
}
|
|
1041
|
+
```
|
|
1042
|
+
**CarouselHeading** is the main header for a carousel component
|
|
1011
1043
|
|
|
1012
|
-
|
|
1013
|
-
|
|
1044
|
+
#### `Carousel`
|
|
1045
|
+
```ts
|
|
1046
|
+
/**
|
|
1047
|
+
* @sparkGenerateStoryBlock true
|
|
1048
|
+
*/
|
|
1049
|
+
interface Carousel extends Parent {
|
|
1050
|
+
type: "carousel"
|
|
1051
|
+
heading?: CarouselHeading
|
|
1052
|
+
children: CarouselChildren
|
|
1053
|
+
}
|
|
1054
|
+
```
|
|
1055
|
+
**Carousel** is the main container for a carousel component
|
package/content-tree.d.ts
CHANGED
|
@@ -95,7 +95,7 @@ export declare namespace ContentTree {
|
|
|
95
95
|
type: "blockquote";
|
|
96
96
|
children: (Paragraph | Phrasing)[];
|
|
97
97
|
}
|
|
98
|
-
type StoryBlock =
|
|
98
|
+
type StoryBlock = AcastPodcast | BigNumber | Carousel | ClipSet | CustomCodeComponent | Definition | Flourish | ImagePair | ImageSet | InfoBox | InfoPair | InNumbers | Layout | Pullquote | Recommended | RecommendedList | ScrollyBlock | Table | Timeline | Tweet | Video | VimeoVideo | YoutubeVideo;
|
|
99
99
|
interface Pullquote extends Node {
|
|
100
100
|
type: "pullquote";
|
|
101
101
|
text: string;
|
|
@@ -439,6 +439,32 @@ export declare namespace ContentTree {
|
|
|
439
439
|
title?: string;
|
|
440
440
|
children: [Card, Card];
|
|
441
441
|
}
|
|
442
|
+
interface CarouselCard extends Node {
|
|
443
|
+
type: "carousel-card";
|
|
444
|
+
image: ImageSet;
|
|
445
|
+
title?: string;
|
|
446
|
+
copy: Paragraph[];
|
|
447
|
+
additionalInfo?: string;
|
|
448
|
+
}
|
|
449
|
+
/**
|
|
450
|
+
* @maxItems 10
|
|
451
|
+
* @minItems 4
|
|
452
|
+
* @sparkRepeater true
|
|
453
|
+
*/
|
|
454
|
+
type CarouselChildren = CarouselCard[];
|
|
455
|
+
interface CarouselHeading extends Node {
|
|
456
|
+
type: "carousel-heading";
|
|
457
|
+
title: string;
|
|
458
|
+
standfirst?: string;
|
|
459
|
+
}
|
|
460
|
+
/**
|
|
461
|
+
* @sparkGenerateStoryBlock true
|
|
462
|
+
*/
|
|
463
|
+
interface Carousel extends Parent {
|
|
464
|
+
type: "carousel";
|
|
465
|
+
heading?: CarouselHeading;
|
|
466
|
+
children: CarouselChildren;
|
|
467
|
+
}
|
|
442
468
|
namespace full {
|
|
443
469
|
type AssetFormat = "desktop" | "mobile" | "square" | "square-ftedit" | "standard" | "wide" | "standard-inline";
|
|
444
470
|
type LayoutWidth = "auto" | "in-line" | "inset-left" | "inset-right" | "full-bleed" | "full-grid" | "mid-grid" | "full-width";
|
|
@@ -536,7 +562,7 @@ export declare namespace ContentTree {
|
|
|
536
562
|
type: "blockquote";
|
|
537
563
|
children: (Paragraph | Phrasing)[];
|
|
538
564
|
}
|
|
539
|
-
type StoryBlock =
|
|
565
|
+
type StoryBlock = AcastPodcast | BigNumber | Carousel | ClipSet | CustomCodeComponent | Definition | Flourish | ImagePair | ImageSet | InfoBox | InfoPair | InNumbers | Layout | Pullquote | Recommended | RecommendedList | ScrollyBlock | Table | Timeline | Tweet | Video | VimeoVideo | YoutubeVideo;
|
|
540
566
|
interface Pullquote extends Node {
|
|
541
567
|
type: "pullquote";
|
|
542
568
|
text: string;
|
|
@@ -880,6 +906,32 @@ export declare namespace ContentTree {
|
|
|
880
906
|
title?: string;
|
|
881
907
|
children: [Card, Card];
|
|
882
908
|
}
|
|
909
|
+
interface CarouselCard extends Node {
|
|
910
|
+
type: "carousel-card";
|
|
911
|
+
image: ImageSet;
|
|
912
|
+
title?: string;
|
|
913
|
+
copy: Paragraph[];
|
|
914
|
+
additionalInfo?: string;
|
|
915
|
+
}
|
|
916
|
+
/**
|
|
917
|
+
* @maxItems 10
|
|
918
|
+
* @minItems 4
|
|
919
|
+
* @sparkRepeater true
|
|
920
|
+
*/
|
|
921
|
+
type CarouselChildren = CarouselCard[];
|
|
922
|
+
interface CarouselHeading extends Node {
|
|
923
|
+
type: "carousel-heading";
|
|
924
|
+
title: string;
|
|
925
|
+
standfirst?: string;
|
|
926
|
+
}
|
|
927
|
+
/**
|
|
928
|
+
* @sparkGenerateStoryBlock true
|
|
929
|
+
*/
|
|
930
|
+
interface Carousel extends Parent {
|
|
931
|
+
type: "carousel";
|
|
932
|
+
heading?: CarouselHeading;
|
|
933
|
+
children: CarouselChildren;
|
|
934
|
+
}
|
|
883
935
|
}
|
|
884
936
|
namespace transit {
|
|
885
937
|
type AssetFormat = "desktop" | "mobile" | "square" | "square-ftedit" | "standard" | "wide" | "standard-inline";
|
|
@@ -978,7 +1030,7 @@ export declare namespace ContentTree {
|
|
|
978
1030
|
type: "blockquote";
|
|
979
1031
|
children: (Paragraph | Phrasing)[];
|
|
980
1032
|
}
|
|
981
|
-
type StoryBlock =
|
|
1033
|
+
type StoryBlock = AcastPodcast | BigNumber | Carousel | ClipSet | CustomCodeComponent | Definition | Flourish | ImagePair | ImageSet | InfoBox | InfoPair | InNumbers | Layout | Pullquote | Recommended | RecommendedList | ScrollyBlock | Table | Timeline | Tweet | Video | VimeoVideo | YoutubeVideo;
|
|
982
1034
|
interface Pullquote extends Node {
|
|
983
1035
|
type: "pullquote";
|
|
984
1036
|
text: string;
|
|
@@ -1295,6 +1347,32 @@ export declare namespace ContentTree {
|
|
|
1295
1347
|
title?: string;
|
|
1296
1348
|
children: [Card, Card];
|
|
1297
1349
|
}
|
|
1350
|
+
interface CarouselCard extends Node {
|
|
1351
|
+
type: "carousel-card";
|
|
1352
|
+
image: ImageSet;
|
|
1353
|
+
title?: string;
|
|
1354
|
+
copy: Paragraph[];
|
|
1355
|
+
additionalInfo?: string;
|
|
1356
|
+
}
|
|
1357
|
+
/**
|
|
1358
|
+
* @maxItems 10
|
|
1359
|
+
* @minItems 4
|
|
1360
|
+
* @sparkRepeater true
|
|
1361
|
+
*/
|
|
1362
|
+
type CarouselChildren = CarouselCard[];
|
|
1363
|
+
interface CarouselHeading extends Node {
|
|
1364
|
+
type: "carousel-heading";
|
|
1365
|
+
title: string;
|
|
1366
|
+
standfirst?: string;
|
|
1367
|
+
}
|
|
1368
|
+
/**
|
|
1369
|
+
* @sparkGenerateStoryBlock true
|
|
1370
|
+
*/
|
|
1371
|
+
interface Carousel extends Parent {
|
|
1372
|
+
type: "carousel";
|
|
1373
|
+
heading?: CarouselHeading;
|
|
1374
|
+
children: CarouselChildren;
|
|
1375
|
+
}
|
|
1298
1376
|
}
|
|
1299
1377
|
namespace loose {
|
|
1300
1378
|
type AssetFormat = "desktop" | "mobile" | "square" | "square-ftedit" | "standard" | "wide" | "standard-inline";
|
|
@@ -1393,7 +1471,7 @@ export declare namespace ContentTree {
|
|
|
1393
1471
|
type: "blockquote";
|
|
1394
1472
|
children: (Paragraph | Phrasing)[];
|
|
1395
1473
|
}
|
|
1396
|
-
type StoryBlock =
|
|
1474
|
+
type StoryBlock = AcastPodcast | BigNumber | Carousel | ClipSet | CustomCodeComponent | Definition | Flourish | ImagePair | ImageSet | InfoBox | InfoPair | InNumbers | Layout | Pullquote | Recommended | RecommendedList | ScrollyBlock | Table | Timeline | Tweet | Video | VimeoVideo | YoutubeVideo;
|
|
1397
1475
|
interface Pullquote extends Node {
|
|
1398
1476
|
type: "pullquote";
|
|
1399
1477
|
text: string;
|
|
@@ -1737,5 +1815,31 @@ export declare namespace ContentTree {
|
|
|
1737
1815
|
title?: string;
|
|
1738
1816
|
children: [Card, Card];
|
|
1739
1817
|
}
|
|
1818
|
+
interface CarouselCard extends Node {
|
|
1819
|
+
type: "carousel-card";
|
|
1820
|
+
image: ImageSet;
|
|
1821
|
+
title?: string;
|
|
1822
|
+
copy: Paragraph[];
|
|
1823
|
+
additionalInfo?: string;
|
|
1824
|
+
}
|
|
1825
|
+
/**
|
|
1826
|
+
* @maxItems 10
|
|
1827
|
+
* @minItems 4
|
|
1828
|
+
* @sparkRepeater true
|
|
1829
|
+
*/
|
|
1830
|
+
type CarouselChildren = CarouselCard[];
|
|
1831
|
+
interface CarouselHeading extends Node {
|
|
1832
|
+
type: "carousel-heading";
|
|
1833
|
+
title: string;
|
|
1834
|
+
standfirst?: string;
|
|
1835
|
+
}
|
|
1836
|
+
/**
|
|
1837
|
+
* @sparkGenerateStoryBlock true
|
|
1838
|
+
*/
|
|
1839
|
+
interface Carousel extends Parent {
|
|
1840
|
+
type: "carousel";
|
|
1841
|
+
heading?: CarouselHeading;
|
|
1842
|
+
children: CarouselChildren;
|
|
1843
|
+
}
|
|
1740
1844
|
}
|
|
1741
1845
|
}
|
package/package.json
CHANGED
|
@@ -116,70 +116,73 @@
|
|
|
116
116
|
"$ref": "#/definitions/ContentTree.transit.Text"
|
|
117
117
|
},
|
|
118
118
|
{
|
|
119
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
119
|
+
"$ref": "#/definitions/ContentTree.transit.AcastPodcast"
|
|
120
120
|
},
|
|
121
121
|
{
|
|
122
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
122
|
+
"$ref": "#/definitions/ContentTree.transit.BigNumber"
|
|
123
123
|
},
|
|
124
124
|
{
|
|
125
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
125
|
+
"$ref": "#/definitions/ContentTree.transit.Carousel"
|
|
126
|
+
},
|
|
127
|
+
{
|
|
128
|
+
"$ref": "#/definitions/ContentTree.transit.ClipSet"
|
|
126
129
|
},
|
|
127
130
|
{
|
|
128
131
|
"$ref": "#/definitions/ContentTree.transit.CustomCodeComponent"
|
|
129
132
|
},
|
|
130
133
|
{
|
|
131
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
134
|
+
"$ref": "#/definitions/ContentTree.transit.Definition"
|
|
132
135
|
},
|
|
133
136
|
{
|
|
134
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
137
|
+
"$ref": "#/definitions/ContentTree.transit.Flourish"
|
|
135
138
|
},
|
|
136
139
|
{
|
|
137
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
140
|
+
"$ref": "#/definitions/ContentTree.transit.ImagePair"
|
|
138
141
|
},
|
|
139
142
|
{
|
|
140
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
143
|
+
"$ref": "#/definitions/ContentTree.transit.ImageSet"
|
|
141
144
|
},
|
|
142
145
|
{
|
|
143
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
146
|
+
"$ref": "#/definitions/ContentTree.transit.InfoBox"
|
|
144
147
|
},
|
|
145
148
|
{
|
|
146
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
149
|
+
"$ref": "#/definitions/ContentTree.transit.InfoPair"
|
|
147
150
|
},
|
|
148
151
|
{
|
|
149
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
152
|
+
"$ref": "#/definitions/ContentTree.transit.InNumbers"
|
|
150
153
|
},
|
|
151
154
|
{
|
|
152
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
155
|
+
"$ref": "#/definitions/ContentTree.transit.Layout"
|
|
153
156
|
},
|
|
154
157
|
{
|
|
155
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
158
|
+
"$ref": "#/definitions/ContentTree.transit.Pullquote"
|
|
156
159
|
},
|
|
157
160
|
{
|
|
158
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
161
|
+
"$ref": "#/definitions/ContentTree.transit.Recommended"
|
|
159
162
|
},
|
|
160
163
|
{
|
|
161
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
164
|
+
"$ref": "#/definitions/ContentTree.transit.RecommendedList"
|
|
162
165
|
},
|
|
163
166
|
{
|
|
164
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
167
|
+
"$ref": "#/definitions/ContentTree.transit.ScrollyBlock"
|
|
165
168
|
},
|
|
166
169
|
{
|
|
167
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
170
|
+
"$ref": "#/definitions/ContentTree.transit.Table"
|
|
168
171
|
},
|
|
169
172
|
{
|
|
170
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
173
|
+
"$ref": "#/definitions/ContentTree.transit.Timeline"
|
|
171
174
|
},
|
|
172
175
|
{
|
|
173
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
176
|
+
"$ref": "#/definitions/ContentTree.transit.Tweet"
|
|
174
177
|
},
|
|
175
178
|
{
|
|
176
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
179
|
+
"$ref": "#/definitions/ContentTree.transit.Video"
|
|
177
180
|
},
|
|
178
181
|
{
|
|
179
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
182
|
+
"$ref": "#/definitions/ContentTree.transit.VimeoVideo"
|
|
180
183
|
},
|
|
181
184
|
{
|
|
182
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
185
|
+
"$ref": "#/definitions/ContentTree.transit.YoutubeVideo"
|
|
183
186
|
}
|
|
184
187
|
]
|
|
185
188
|
},
|
|
@@ -246,6 +249,85 @@
|
|
|
246
249
|
],
|
|
247
250
|
"description": "Allowed children for a card"
|
|
248
251
|
},
|
|
252
|
+
"ContentTree.transit.Carousel": {
|
|
253
|
+
"additionalProperties": false,
|
|
254
|
+
"properties": {
|
|
255
|
+
"children": {
|
|
256
|
+
"items": {
|
|
257
|
+
"$ref": "#/definitions/ContentTree.transit.CarouselCard"
|
|
258
|
+
},
|
|
259
|
+
"maxItems": 10,
|
|
260
|
+
"minItems": 4,
|
|
261
|
+
"sparkRepeater": true,
|
|
262
|
+
"type": "array"
|
|
263
|
+
},
|
|
264
|
+
"data": {},
|
|
265
|
+
"heading": {
|
|
266
|
+
"$ref": "#/definitions/ContentTree.transit.CarouselHeading"
|
|
267
|
+
},
|
|
268
|
+
"type": {
|
|
269
|
+
"const": "carousel",
|
|
270
|
+
"type": "string"
|
|
271
|
+
}
|
|
272
|
+
},
|
|
273
|
+
"required": [
|
|
274
|
+
"children",
|
|
275
|
+
"type"
|
|
276
|
+
],
|
|
277
|
+
"type": "object"
|
|
278
|
+
},
|
|
279
|
+
"ContentTree.transit.CarouselCard": {
|
|
280
|
+
"additionalProperties": false,
|
|
281
|
+
"properties": {
|
|
282
|
+
"additionalInfo": {
|
|
283
|
+
"type": "string"
|
|
284
|
+
},
|
|
285
|
+
"copy": {
|
|
286
|
+
"items": {
|
|
287
|
+
"$ref": "#/definitions/ContentTree.transit.Paragraph"
|
|
288
|
+
},
|
|
289
|
+
"type": "array"
|
|
290
|
+
},
|
|
291
|
+
"data": {},
|
|
292
|
+
"image": {
|
|
293
|
+
"$ref": "#/definitions/ContentTree.transit.ImageSet"
|
|
294
|
+
},
|
|
295
|
+
"title": {
|
|
296
|
+
"type": "string"
|
|
297
|
+
},
|
|
298
|
+
"type": {
|
|
299
|
+
"const": "carousel-card",
|
|
300
|
+
"type": "string"
|
|
301
|
+
}
|
|
302
|
+
},
|
|
303
|
+
"required": [
|
|
304
|
+
"copy",
|
|
305
|
+
"image",
|
|
306
|
+
"type"
|
|
307
|
+
],
|
|
308
|
+
"type": "object"
|
|
309
|
+
},
|
|
310
|
+
"ContentTree.transit.CarouselHeading": {
|
|
311
|
+
"additionalProperties": false,
|
|
312
|
+
"properties": {
|
|
313
|
+
"data": {},
|
|
314
|
+
"standfirst": {
|
|
315
|
+
"type": "string"
|
|
316
|
+
},
|
|
317
|
+
"title": {
|
|
318
|
+
"type": "string"
|
|
319
|
+
},
|
|
320
|
+
"type": {
|
|
321
|
+
"const": "carousel-heading",
|
|
322
|
+
"type": "string"
|
|
323
|
+
}
|
|
324
|
+
},
|
|
325
|
+
"required": [
|
|
326
|
+
"title",
|
|
327
|
+
"type"
|
|
328
|
+
],
|
|
329
|
+
"type": "object"
|
|
330
|
+
},
|
|
249
331
|
"ContentTree.transit.ClipSet": {
|
|
250
332
|
"additionalProperties": false,
|
|
251
333
|
"properties": {
|
|
@@ -153,70 +153,73 @@
|
|
|
153
153
|
"$ref": "#/definitions/ContentTree.full.Text"
|
|
154
154
|
},
|
|
155
155
|
{
|
|
156
|
-
"$ref": "#/definitions/ContentTree.full.
|
|
156
|
+
"$ref": "#/definitions/ContentTree.full.AcastPodcast"
|
|
157
157
|
},
|
|
158
158
|
{
|
|
159
|
-
"$ref": "#/definitions/ContentTree.full.
|
|
159
|
+
"$ref": "#/definitions/ContentTree.full.BigNumber"
|
|
160
160
|
},
|
|
161
161
|
{
|
|
162
|
-
"$ref": "#/definitions/ContentTree.full.
|
|
162
|
+
"$ref": "#/definitions/ContentTree.full.Carousel"
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
"$ref": "#/definitions/ContentTree.full.ClipSet"
|
|
163
166
|
},
|
|
164
167
|
{
|
|
165
168
|
"$ref": "#/definitions/ContentTree.full.CustomCodeComponent"
|
|
166
169
|
},
|
|
167
170
|
{
|
|
168
|
-
"$ref": "#/definitions/ContentTree.full.
|
|
171
|
+
"$ref": "#/definitions/ContentTree.full.Definition"
|
|
169
172
|
},
|
|
170
173
|
{
|
|
171
|
-
"$ref": "#/definitions/ContentTree.full.
|
|
174
|
+
"$ref": "#/definitions/ContentTree.full.Flourish"
|
|
172
175
|
},
|
|
173
176
|
{
|
|
174
|
-
"$ref": "#/definitions/ContentTree.full.
|
|
177
|
+
"$ref": "#/definitions/ContentTree.full.ImagePair"
|
|
175
178
|
},
|
|
176
179
|
{
|
|
177
|
-
"$ref": "#/definitions/ContentTree.full.
|
|
180
|
+
"$ref": "#/definitions/ContentTree.full.ImageSet"
|
|
178
181
|
},
|
|
179
182
|
{
|
|
180
|
-
"$ref": "#/definitions/ContentTree.full.
|
|
183
|
+
"$ref": "#/definitions/ContentTree.full.InfoBox"
|
|
181
184
|
},
|
|
182
185
|
{
|
|
183
|
-
"$ref": "#/definitions/ContentTree.full.
|
|
186
|
+
"$ref": "#/definitions/ContentTree.full.InfoPair"
|
|
184
187
|
},
|
|
185
188
|
{
|
|
186
|
-
"$ref": "#/definitions/ContentTree.full.
|
|
189
|
+
"$ref": "#/definitions/ContentTree.full.InNumbers"
|
|
187
190
|
},
|
|
188
191
|
{
|
|
189
|
-
"$ref": "#/definitions/ContentTree.full.
|
|
192
|
+
"$ref": "#/definitions/ContentTree.full.Layout"
|
|
190
193
|
},
|
|
191
194
|
{
|
|
192
|
-
"$ref": "#/definitions/ContentTree.full.
|
|
195
|
+
"$ref": "#/definitions/ContentTree.full.Pullquote"
|
|
193
196
|
},
|
|
194
197
|
{
|
|
195
|
-
"$ref": "#/definitions/ContentTree.full.
|
|
198
|
+
"$ref": "#/definitions/ContentTree.full.Recommended"
|
|
196
199
|
},
|
|
197
200
|
{
|
|
198
|
-
"$ref": "#/definitions/ContentTree.full.
|
|
201
|
+
"$ref": "#/definitions/ContentTree.full.RecommendedList"
|
|
199
202
|
},
|
|
200
203
|
{
|
|
201
|
-
"$ref": "#/definitions/ContentTree.full.
|
|
204
|
+
"$ref": "#/definitions/ContentTree.full.ScrollyBlock"
|
|
202
205
|
},
|
|
203
206
|
{
|
|
204
|
-
"$ref": "#/definitions/ContentTree.full.
|
|
207
|
+
"$ref": "#/definitions/ContentTree.full.Table"
|
|
205
208
|
},
|
|
206
209
|
{
|
|
207
|
-
"$ref": "#/definitions/ContentTree.full.
|
|
210
|
+
"$ref": "#/definitions/ContentTree.full.Timeline"
|
|
208
211
|
},
|
|
209
212
|
{
|
|
210
|
-
"$ref": "#/definitions/ContentTree.full.
|
|
213
|
+
"$ref": "#/definitions/ContentTree.full.Tweet"
|
|
211
214
|
},
|
|
212
215
|
{
|
|
213
|
-
"$ref": "#/definitions/ContentTree.full.
|
|
216
|
+
"$ref": "#/definitions/ContentTree.full.Video"
|
|
214
217
|
},
|
|
215
218
|
{
|
|
216
|
-
"$ref": "#/definitions/ContentTree.full.
|
|
219
|
+
"$ref": "#/definitions/ContentTree.full.VimeoVideo"
|
|
217
220
|
},
|
|
218
221
|
{
|
|
219
|
-
"$ref": "#/definitions/ContentTree.full.
|
|
222
|
+
"$ref": "#/definitions/ContentTree.full.YoutubeVideo"
|
|
220
223
|
}
|
|
221
224
|
]
|
|
222
225
|
},
|
|
@@ -283,6 +286,84 @@
|
|
|
283
286
|
],
|
|
284
287
|
"description": "Allowed children for a card"
|
|
285
288
|
},
|
|
289
|
+
"ContentTree.full.Carousel": {
|
|
290
|
+
"additionalProperties": false,
|
|
291
|
+
"properties": {
|
|
292
|
+
"children": {
|
|
293
|
+
"items": {
|
|
294
|
+
"$ref": "#/definitions/ContentTree.full.CarouselCard"
|
|
295
|
+
},
|
|
296
|
+
"maxItems": 10,
|
|
297
|
+
"minItems": 4,
|
|
298
|
+
"type": "array"
|
|
299
|
+
},
|
|
300
|
+
"data": {},
|
|
301
|
+
"heading": {
|
|
302
|
+
"$ref": "#/definitions/ContentTree.full.CarouselHeading"
|
|
303
|
+
},
|
|
304
|
+
"type": {
|
|
305
|
+
"const": "carousel",
|
|
306
|
+
"type": "string"
|
|
307
|
+
}
|
|
308
|
+
},
|
|
309
|
+
"required": [
|
|
310
|
+
"children",
|
|
311
|
+
"type"
|
|
312
|
+
],
|
|
313
|
+
"type": "object"
|
|
314
|
+
},
|
|
315
|
+
"ContentTree.full.CarouselCard": {
|
|
316
|
+
"additionalProperties": false,
|
|
317
|
+
"properties": {
|
|
318
|
+
"additionalInfo": {
|
|
319
|
+
"type": "string"
|
|
320
|
+
},
|
|
321
|
+
"copy": {
|
|
322
|
+
"items": {
|
|
323
|
+
"$ref": "#/definitions/ContentTree.full.Paragraph"
|
|
324
|
+
},
|
|
325
|
+
"type": "array"
|
|
326
|
+
},
|
|
327
|
+
"data": {},
|
|
328
|
+
"image": {
|
|
329
|
+
"$ref": "#/definitions/ContentTree.full.ImageSet"
|
|
330
|
+
},
|
|
331
|
+
"title": {
|
|
332
|
+
"type": "string"
|
|
333
|
+
},
|
|
334
|
+
"type": {
|
|
335
|
+
"const": "carousel-card",
|
|
336
|
+
"type": "string"
|
|
337
|
+
}
|
|
338
|
+
},
|
|
339
|
+
"required": [
|
|
340
|
+
"copy",
|
|
341
|
+
"image",
|
|
342
|
+
"type"
|
|
343
|
+
],
|
|
344
|
+
"type": "object"
|
|
345
|
+
},
|
|
346
|
+
"ContentTree.full.CarouselHeading": {
|
|
347
|
+
"additionalProperties": false,
|
|
348
|
+
"properties": {
|
|
349
|
+
"data": {},
|
|
350
|
+
"standfirst": {
|
|
351
|
+
"type": "string"
|
|
352
|
+
},
|
|
353
|
+
"title": {
|
|
354
|
+
"type": "string"
|
|
355
|
+
},
|
|
356
|
+
"type": {
|
|
357
|
+
"const": "carousel-heading",
|
|
358
|
+
"type": "string"
|
|
359
|
+
}
|
|
360
|
+
},
|
|
361
|
+
"required": [
|
|
362
|
+
"title",
|
|
363
|
+
"type"
|
|
364
|
+
],
|
|
365
|
+
"type": "object"
|
|
366
|
+
},
|
|
286
367
|
"ContentTree.full.ClipSet": {
|
|
287
368
|
"additionalProperties": false,
|
|
288
369
|
"properties": {
|
|
@@ -141,70 +141,73 @@
|
|
|
141
141
|
"$ref": "#/definitions/ContentTree.transit.Text"
|
|
142
142
|
},
|
|
143
143
|
{
|
|
144
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
144
|
+
"$ref": "#/definitions/ContentTree.transit.AcastPodcast"
|
|
145
145
|
},
|
|
146
146
|
{
|
|
147
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
147
|
+
"$ref": "#/definitions/ContentTree.transit.BigNumber"
|
|
148
148
|
},
|
|
149
149
|
{
|
|
150
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
150
|
+
"$ref": "#/definitions/ContentTree.transit.Carousel"
|
|
151
|
+
},
|
|
152
|
+
{
|
|
153
|
+
"$ref": "#/definitions/ContentTree.transit.ClipSet"
|
|
151
154
|
},
|
|
152
155
|
{
|
|
153
156
|
"$ref": "#/definitions/ContentTree.transit.CustomCodeComponent"
|
|
154
157
|
},
|
|
155
158
|
{
|
|
156
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
159
|
+
"$ref": "#/definitions/ContentTree.transit.Definition"
|
|
157
160
|
},
|
|
158
161
|
{
|
|
159
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
162
|
+
"$ref": "#/definitions/ContentTree.transit.Flourish"
|
|
160
163
|
},
|
|
161
164
|
{
|
|
162
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
165
|
+
"$ref": "#/definitions/ContentTree.transit.ImagePair"
|
|
163
166
|
},
|
|
164
167
|
{
|
|
165
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
168
|
+
"$ref": "#/definitions/ContentTree.transit.ImageSet"
|
|
166
169
|
},
|
|
167
170
|
{
|
|
168
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
171
|
+
"$ref": "#/definitions/ContentTree.transit.InfoBox"
|
|
169
172
|
},
|
|
170
173
|
{
|
|
171
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
174
|
+
"$ref": "#/definitions/ContentTree.transit.InfoPair"
|
|
172
175
|
},
|
|
173
176
|
{
|
|
174
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
177
|
+
"$ref": "#/definitions/ContentTree.transit.InNumbers"
|
|
175
178
|
},
|
|
176
179
|
{
|
|
177
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
180
|
+
"$ref": "#/definitions/ContentTree.transit.Layout"
|
|
178
181
|
},
|
|
179
182
|
{
|
|
180
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
183
|
+
"$ref": "#/definitions/ContentTree.transit.Pullquote"
|
|
181
184
|
},
|
|
182
185
|
{
|
|
183
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
186
|
+
"$ref": "#/definitions/ContentTree.transit.Recommended"
|
|
184
187
|
},
|
|
185
188
|
{
|
|
186
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
189
|
+
"$ref": "#/definitions/ContentTree.transit.RecommendedList"
|
|
187
190
|
},
|
|
188
191
|
{
|
|
189
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
192
|
+
"$ref": "#/definitions/ContentTree.transit.ScrollyBlock"
|
|
190
193
|
},
|
|
191
194
|
{
|
|
192
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
195
|
+
"$ref": "#/definitions/ContentTree.transit.Table"
|
|
193
196
|
},
|
|
194
197
|
{
|
|
195
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
198
|
+
"$ref": "#/definitions/ContentTree.transit.Timeline"
|
|
196
199
|
},
|
|
197
200
|
{
|
|
198
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
201
|
+
"$ref": "#/definitions/ContentTree.transit.Tweet"
|
|
199
202
|
},
|
|
200
203
|
{
|
|
201
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
204
|
+
"$ref": "#/definitions/ContentTree.transit.Video"
|
|
202
205
|
},
|
|
203
206
|
{
|
|
204
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
207
|
+
"$ref": "#/definitions/ContentTree.transit.VimeoVideo"
|
|
205
208
|
},
|
|
206
209
|
{
|
|
207
|
-
"$ref": "#/definitions/ContentTree.transit.
|
|
210
|
+
"$ref": "#/definitions/ContentTree.transit.YoutubeVideo"
|
|
208
211
|
}
|
|
209
212
|
]
|
|
210
213
|
},
|
|
@@ -271,6 +274,84 @@
|
|
|
271
274
|
],
|
|
272
275
|
"description": "Allowed children for a card"
|
|
273
276
|
},
|
|
277
|
+
"ContentTree.transit.Carousel": {
|
|
278
|
+
"additionalProperties": false,
|
|
279
|
+
"properties": {
|
|
280
|
+
"children": {
|
|
281
|
+
"items": {
|
|
282
|
+
"$ref": "#/definitions/ContentTree.transit.CarouselCard"
|
|
283
|
+
},
|
|
284
|
+
"maxItems": 10,
|
|
285
|
+
"minItems": 4,
|
|
286
|
+
"type": "array"
|
|
287
|
+
},
|
|
288
|
+
"data": {},
|
|
289
|
+
"heading": {
|
|
290
|
+
"$ref": "#/definitions/ContentTree.transit.CarouselHeading"
|
|
291
|
+
},
|
|
292
|
+
"type": {
|
|
293
|
+
"const": "carousel",
|
|
294
|
+
"type": "string"
|
|
295
|
+
}
|
|
296
|
+
},
|
|
297
|
+
"required": [
|
|
298
|
+
"children",
|
|
299
|
+
"type"
|
|
300
|
+
],
|
|
301
|
+
"type": "object"
|
|
302
|
+
},
|
|
303
|
+
"ContentTree.transit.CarouselCard": {
|
|
304
|
+
"additionalProperties": false,
|
|
305
|
+
"properties": {
|
|
306
|
+
"additionalInfo": {
|
|
307
|
+
"type": "string"
|
|
308
|
+
},
|
|
309
|
+
"copy": {
|
|
310
|
+
"items": {
|
|
311
|
+
"$ref": "#/definitions/ContentTree.transit.Paragraph"
|
|
312
|
+
},
|
|
313
|
+
"type": "array"
|
|
314
|
+
},
|
|
315
|
+
"data": {},
|
|
316
|
+
"image": {
|
|
317
|
+
"$ref": "#/definitions/ContentTree.transit.ImageSet"
|
|
318
|
+
},
|
|
319
|
+
"title": {
|
|
320
|
+
"type": "string"
|
|
321
|
+
},
|
|
322
|
+
"type": {
|
|
323
|
+
"const": "carousel-card",
|
|
324
|
+
"type": "string"
|
|
325
|
+
}
|
|
326
|
+
},
|
|
327
|
+
"required": [
|
|
328
|
+
"copy",
|
|
329
|
+
"image",
|
|
330
|
+
"type"
|
|
331
|
+
],
|
|
332
|
+
"type": "object"
|
|
333
|
+
},
|
|
334
|
+
"ContentTree.transit.CarouselHeading": {
|
|
335
|
+
"additionalProperties": false,
|
|
336
|
+
"properties": {
|
|
337
|
+
"data": {},
|
|
338
|
+
"standfirst": {
|
|
339
|
+
"type": "string"
|
|
340
|
+
},
|
|
341
|
+
"title": {
|
|
342
|
+
"type": "string"
|
|
343
|
+
},
|
|
344
|
+
"type": {
|
|
345
|
+
"const": "carousel-heading",
|
|
346
|
+
"type": "string"
|
|
347
|
+
}
|
|
348
|
+
},
|
|
349
|
+
"required": [
|
|
350
|
+
"title",
|
|
351
|
+
"type"
|
|
352
|
+
],
|
|
353
|
+
"type": "object"
|
|
354
|
+
},
|
|
274
355
|
"ContentTree.transit.ClipSet": {
|
|
275
356
|
"additionalProperties": false,
|
|
276
357
|
"properties": {
|