@cooperco/cooper-component-library 0.1.79 → 0.1.81

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.
Files changed (51) hide show
  1. package/dist/cms/0065-create-hello-banner.cjs +62 -0
  2. package/dist/cms/0066-add-tile-collection-to-container-module.cjs +86 -0
  3. package/dist/cms/0067-add-cta-to-tile-collection-module.cjs +37 -0
  4. package/dist/cms/0068-add-body-copy-alignment-to-tile-content.cjs +35 -0
  5. package/dist/cms/0069-add-footer-to-tile-content.cjs +25 -0
  6. package/dist/cms/0070-make-cta-type-required.cjs +15 -0
  7. package/dist/cms/containerModule.query.ts +19 -0
  8. package/dist/cms/contentful/migrations/drafts/create-hello-banner.cjs +62 -0
  9. package/dist/cms/contentful/migrations/scripts/0065-create-hello-banner.cjs +62 -0
  10. package/dist/cms/contentful/migrations/scripts/0066-add-tile-collection-to-container-module.cjs +86 -0
  11. package/dist/cms/contentful/migrations/scripts/0067-add-cta-to-tile-collection-module.cjs +37 -0
  12. package/dist/cms/contentful/migrations/scripts/0068-add-body-copy-alignment-to-tile-content.cjs +35 -0
  13. package/dist/cms/contentful/migrations/scripts/0069-add-footer-to-tile-content.cjs +25 -0
  14. package/dist/cms/contentful/migrations/scripts/0070-make-cta-type-required.cjs +15 -0
  15. package/dist/cms/contentful/queries/containerModule.query.js +19 -0
  16. package/dist/cms/contentful/queries/containerModule.query.ts +19 -0
  17. package/dist/cms/contentful/queries/fragments.js +2 -0
  18. package/dist/cms/contentful/queries/fragments.ts +2 -0
  19. package/dist/cms/contentful/queries/tileCollection.query.js +7 -1
  20. package/dist/cms/contentful/queries/tileCollection.query.ts +11 -1
  21. package/dist/cms/create-hello-banner.cjs +62 -0
  22. package/dist/cms/drafts/create-hello-banner.cjs +62 -0
  23. package/dist/cms/fragments.ts +2 -0
  24. package/dist/cms/migrations/drafts/create-hello-banner.cjs +62 -0
  25. package/dist/cms/migrations/scripts/0065-create-hello-banner.cjs +62 -0
  26. package/dist/cms/migrations/scripts/0066-add-tile-collection-to-container-module.cjs +86 -0
  27. package/dist/cms/migrations/scripts/0067-add-cta-to-tile-collection-module.cjs +37 -0
  28. package/dist/cms/migrations/scripts/0068-add-body-copy-alignment-to-tile-content.cjs +35 -0
  29. package/dist/cms/migrations/scripts/0069-add-footer-to-tile-content.cjs +25 -0
  30. package/dist/cms/migrations/scripts/0070-make-cta-type-required.cjs +15 -0
  31. package/dist/cms/queries/containerModule.query.ts +19 -0
  32. package/dist/cms/queries/fragments.ts +2 -0
  33. package/dist/cms/queries/tileCollection.query.ts +11 -1
  34. package/dist/cms/scripts/0065-create-hello-banner.cjs +62 -0
  35. package/dist/cms/scripts/0066-add-tile-collection-to-container-module.cjs +86 -0
  36. package/dist/cms/scripts/0067-add-cta-to-tile-collection-module.cjs +37 -0
  37. package/dist/cms/scripts/0068-add-body-copy-alignment-to-tile-content.cjs +35 -0
  38. package/dist/cms/scripts/0069-add-footer-to-tile-content.cjs +25 -0
  39. package/dist/cms/scripts/0070-make-cta-type-required.cjs +15 -0
  40. package/dist/cms/tileCollection.query.ts +11 -1
  41. package/dist/lib/component-lib.js +1693 -1687
  42. package/dist/lib/component-lib.umd.cjs +19 -19
  43. package/dist/lib/style.css +1 -1
  44. package/dist/types/src/components/HelloBanner/HelloBanner.d.ts +23 -0
  45. package/dist/types/src/components/HelloBanner/HelloBanner.vue.d.ts +3 -0
  46. package/dist/types/src/components/TileContent/TileContent.d.ts +1 -0
  47. package/dist/types/src/components/components.d.ts +1 -1
  48. package/dist/types/src/components/types.d.ts +1 -1
  49. package/dist/types/src/config/defaultPassthrough/index.d.ts +2 -2
  50. package/dist/types/src/config/defaultPassthrough/types.d.ts +3 -3
  51. package/package.json +5 -2
@@ -0,0 +1,62 @@
1
+ const addEntryNameField = require('../helpers/addEntryNameField.cjs')
2
+
3
+ module.exports = {
4
+ // @ts-check
5
+ /** @type { import('contentful-migration').MigrationFunction } */
6
+ up: async function (migration) {
7
+ const helloBanner = migration.createContentType('helloBanner', {
8
+ name: 'Hello Banner',
9
+ displayField: 'entryName',
10
+ description: 'Manage the hello banner component',
11
+ })
12
+
13
+ // Add required entryName field
14
+ addEntryNameField(helloBanner)
15
+
16
+ // Active field
17
+ helloBanner
18
+ .createField('active')
19
+ .name('Active')
20
+ .type('Boolean')
21
+ .required(true)
22
+ .defaultValue({ 'en-US': false })
23
+ helloBanner.changeFieldControl('active', 'builtin', 'boolean', {
24
+ helpText: 'Toggle to show/hide the hello banner',
25
+ })
26
+
27
+ // Full Copy field
28
+ helloBanner
29
+ .createField('fullCopy')
30
+ .name('Full Copy')
31
+ .type('Text')
32
+ .required(true)
33
+ helloBanner.changeFieldControl('fullCopy', 'builtin', 'multipleLine', {
34
+ helpText: 'Main promotional text displayed on desktop and mobile expanded',
35
+ })
36
+
37
+ // Mobile Collapsed field
38
+ helloBanner
39
+ .createField('mobileCollapsed')
40
+ .name('Mobile Collapsed')
41
+ .type('Symbol')
42
+ .required(true)
43
+ helloBanner.changeFieldControl('mobileCollapsed', 'builtin', 'singleLine', {
44
+ helpText: 'Text displayed when the hello banner is collapsed on mobile devices',
45
+ })
46
+
47
+ // CTA reference
48
+ helloBanner.createField('cta', {
49
+ name: 'CTA',
50
+ type: 'Link',
51
+ linkType: 'Entry',
52
+ required: false,
53
+ validations: [{ linkContentType: ['cta'] }],
54
+ })
55
+ helloBanner.changeFieldControl('cta', 'builtin', 'entryLinkEditor', {
56
+ helpText: 'Call-to-action button or link',
57
+ })
58
+ },
59
+ down: async function (migration) {
60
+ await migration.deleteContentType('helloBanner')
61
+ },
62
+ }
@@ -0,0 +1,86 @@
1
+ module.exports = {
2
+ // @ts-check
3
+ /** @type { import('contentful-migration').MigrationFunction } */
4
+ up: function (migration) {
5
+ const containerModule = migration.editContentType('containerModule')
6
+
7
+ // Add tileCollectionModule to fullWidthContent validations
8
+ containerModule.editField('fullWidthContent').validations([
9
+ {
10
+ linkContentType: [
11
+ 'contentModule',
12
+ 'tileContent',
13
+ 'accordion',
14
+ 'tileCollectionModule',
15
+ ],
16
+ },
17
+ ])
18
+
19
+ // Add tileCollectionModule to leftContent validations
20
+ containerModule.editField('leftContent').validations([
21
+ {
22
+ linkContentType: [
23
+ 'contentModule',
24
+ 'tileContent',
25
+ 'accordion',
26
+ 'image',
27
+ 'video',
28
+ 'tileCollectionModule',
29
+ ],
30
+ },
31
+ ])
32
+
33
+ // Add tileCollectionModule to rightContent validations
34
+ containerModule.editField('rightContent').validations([
35
+ {
36
+ linkContentType: [
37
+ 'contentModule',
38
+ 'tileContent',
39
+ 'accordion',
40
+ 'image',
41
+ 'video',
42
+ 'tileCollectionModule',
43
+ ],
44
+ },
45
+ ])
46
+ },
47
+
48
+ // @ts-check
49
+ /** @type { import('contentful-migration').MigrationFunction } */
50
+ down: function (migration) {
51
+ const containerModule = migration.editContentType('containerModule')
52
+
53
+ // Revert fullWidthContent to original validations
54
+ containerModule.editField('fullWidthContent').validations([
55
+ {
56
+ linkContentType: ['contentModule', 'tileContent', 'accordion'],
57
+ },
58
+ ])
59
+
60
+ // Revert leftContent to original validations
61
+ containerModule.editField('leftContent').validations([
62
+ {
63
+ linkContentType: [
64
+ 'contentModule',
65
+ 'tileContent',
66
+ 'accordion',
67
+ 'image',
68
+ 'video',
69
+ ],
70
+ },
71
+ ])
72
+
73
+ // Revert rightContent to original validations
74
+ containerModule.editField('rightContent').validations([
75
+ {
76
+ linkContentType: [
77
+ 'contentModule',
78
+ 'tileContent',
79
+ 'accordion',
80
+ 'image',
81
+ 'video',
82
+ ],
83
+ },
84
+ ])
85
+ },
86
+ }
@@ -0,0 +1,37 @@
1
+ module.exports = {
2
+ // @ts-check
3
+ /** @type { import('contentful-migration').MigrationFunction } */
4
+ up: function (migration) {
5
+ const tileCollectionModule =
6
+ migration.editContentType('tileCollectionModule')
7
+
8
+ tileCollectionModule
9
+ .createField('ctas')
10
+ .name('CTAs')
11
+ .type('Array')
12
+ .items({
13
+ type: 'Link',
14
+ linkType: 'Entry',
15
+ validations: [{ linkContentType: ['cta'] }],
16
+ })
17
+ .validations([{ size: { max: 4 } }])
18
+ tileCollectionModule.changeFieldControl(
19
+ 'ctas',
20
+ 'builtin',
21
+ 'entryLinksEditor',
22
+ {
23
+ helpText: 'Call-to-action buttons displayed below the tile collection',
24
+ }
25
+ )
26
+
27
+ tileCollectionModule.moveField('ctas').afterField('tiles')
28
+ },
29
+
30
+ // @ts-check
31
+ /** @type { import('contentful-migration').MigrationFunction } */
32
+ down: function (migration) {
33
+ const tileCollectionModule =
34
+ migration.editContentType('tileCollectionModule')
35
+ tileCollectionModule.deleteField('ctas')
36
+ },
37
+ }
@@ -0,0 +1,35 @@
1
+ module.exports = {
2
+ // @ts-check
3
+ /** @type { import('contentful-migration').MigrationFunction } */
4
+ up: function (migration) {
5
+ const tileContent = migration.editContentType('tileContent')
6
+
7
+ tileContent.createField('bodyCopyAlignment', {
8
+ name: 'Body Copy Alignment',
9
+ type: 'Symbol',
10
+ validations: [
11
+ {
12
+ in: ['Left', 'Center', 'Right'],
13
+ },
14
+ ],
15
+ })
16
+ tileContent.changeFieldControl(
17
+ 'bodyCopyAlignment',
18
+ 'builtin',
19
+ 'dropdown',
20
+ {
21
+ helpText:
22
+ 'Override the body copy text alignment independently from the general alignment. If not set, body copy will follow the general alignment.',
23
+ }
24
+ )
25
+
26
+ tileContent.moveField('bodyCopyAlignment').afterField('bodyCopy')
27
+ },
28
+
29
+ // @ts-check
30
+ /** @type { import('contentful-migration').MigrationFunction } */
31
+ down: function (migration) {
32
+ const tileContent = migration.editContentType('tileContent')
33
+ tileContent.deleteField('bodyCopyAlignment')
34
+ },
35
+ }
@@ -0,0 +1,25 @@
1
+ module.exports = {
2
+ // @ts-check
3
+ /** @type { import('contentful-migration').MigrationFunction } */
4
+ up: function (migration) {
5
+ const tileContent = migration.editContentType('tileContent')
6
+
7
+ tileContent.createField('footer', {
8
+ name: 'Footer',
9
+ type: 'Symbol',
10
+ })
11
+ tileContent.changeFieldControl('footer', 'builtin', 'singleLine', {
12
+ helpText: 'Optional footer text displayed below the body copy and CTAs.',
13
+ })
14
+
15
+ tileContent.moveField('footer').afterField('bodyCopyAlignment')
16
+ tileContent.moveField('backgroundColor').afterField('tileLabel')
17
+ },
18
+
19
+ // @ts-check
20
+ /** @type { import('contentful-migration').MigrationFunction } */
21
+ down: function (migration) {
22
+ const tileContent = migration.editContentType('tileContent')
23
+ tileContent.deleteField('footer')
24
+ },
25
+ }
@@ -0,0 +1,15 @@
1
+ module.exports = {
2
+ // @ts-check
3
+ /** @type { import('contentful-migration').MigrationFunction } */
4
+ up: function (migration) {
5
+ const cta = migration.editContentType('cta')
6
+ cta.editField('type').required(true)
7
+ },
8
+
9
+ // @ts-check
10
+ /** @type { import('contentful-migration').MigrationFunction } */
11
+ down: function (migration) {
12
+ const cta = migration.editContentType('cta')
13
+ cta.editField('type').required(false)
14
+ },
15
+ }
@@ -7,6 +7,7 @@ export const getContainerModule: DocumentNode = gql`
7
7
  ${videoFragment}
8
8
  query containerModuleQuery($id: String!, $preview: Boolean = false) {
9
9
  containerModule(id: $id, preview: $preview) {
10
+ __typename
10
11
  headline {
11
12
  json
12
13
  links {
@@ -41,6 +42,12 @@ export const getContainerModule: DocumentNode = gql`
41
42
  }
42
43
  __typename
43
44
  }
45
+ ... on TileCollectionModule {
46
+ sys {
47
+ id
48
+ }
49
+ __typename
50
+ }
44
51
  }
45
52
  leftContent {
46
53
  ... on Accordion {
@@ -86,6 +93,12 @@ export const getContainerModule: DocumentNode = gql`
86
93
  }
87
94
  __typename
88
95
  }
96
+ ... on TileCollectionModule {
97
+ sys {
98
+ id
99
+ }
100
+ __typename
101
+ }
89
102
  }
90
103
  rightContent {
91
104
  ... on Accordion {
@@ -118,6 +131,12 @@ export const getContainerModule: DocumentNode = gql`
118
131
  }
119
132
  __typename
120
133
  }
134
+ ... on TileCollectionModule {
135
+ sys {
136
+ id
137
+ }
138
+ __typename
139
+ }
121
140
  }
122
141
  backgroundImage {
123
142
  ...imageFragment
@@ -0,0 +1,62 @@
1
+ const addEntryNameField = require('../helpers/addEntryNameField.cjs')
2
+
3
+ module.exports = {
4
+ // @ts-check
5
+ /** @type { import('contentful-migration').MigrationFunction } */
6
+ up: async function (migration) {
7
+ const helloBanner = migration.createContentType('helloBanner', {
8
+ name: 'Hello Banner',
9
+ displayField: 'entryName',
10
+ description: 'Manage the hello banner component',
11
+ })
12
+
13
+ // Add required entryName field
14
+ addEntryNameField(helloBanner)
15
+
16
+ // Active field
17
+ helloBanner
18
+ .createField('active')
19
+ .name('Active')
20
+ .type('Boolean')
21
+ .required(true)
22
+ .defaultValue({ 'en-US': false })
23
+ helloBanner.changeFieldControl('active', 'builtin', 'boolean', {
24
+ helpText: 'Toggle to show/hide the hello banner',
25
+ })
26
+
27
+ // Full Copy field
28
+ helloBanner
29
+ .createField('fullCopy')
30
+ .name('Full Copy')
31
+ .type('Text')
32
+ .required(true)
33
+ helloBanner.changeFieldControl('fullCopy', 'builtin', 'multipleLine', {
34
+ helpText: 'Main promotional text displayed on desktop and mobile expanded',
35
+ })
36
+
37
+ // Mobile Collapsed field
38
+ helloBanner
39
+ .createField('mobileCollapsed')
40
+ .name('Mobile Collapsed')
41
+ .type('Symbol')
42
+ .required(true)
43
+ helloBanner.changeFieldControl('mobileCollapsed', 'builtin', 'singleLine', {
44
+ helpText: 'Text displayed when the hello banner is collapsed on mobile devices',
45
+ })
46
+
47
+ // CTA reference
48
+ helloBanner.createField('cta', {
49
+ name: 'CTA',
50
+ type: 'Link',
51
+ linkType: 'Entry',
52
+ required: false,
53
+ validations: [{ linkContentType: ['cta'] }],
54
+ })
55
+ helloBanner.changeFieldControl('cta', 'builtin', 'entryLinkEditor', {
56
+ helpText: 'Call-to-action button or link',
57
+ })
58
+ },
59
+ down: async function (migration) {
60
+ await migration.deleteContentType('helloBanner')
61
+ },
62
+ }
@@ -0,0 +1,62 @@
1
+ const addEntryNameField = require('../helpers/addEntryNameField.cjs')
2
+
3
+ module.exports = {
4
+ // @ts-check
5
+ /** @type { import('contentful-migration').MigrationFunction } */
6
+ up: async function (migration) {
7
+ const helloBanner = migration.createContentType('helloBanner', {
8
+ name: 'Hello Banner',
9
+ displayField: 'entryName',
10
+ description: 'Manage the hello banner component',
11
+ })
12
+
13
+ // Add required entryName field
14
+ addEntryNameField(helloBanner)
15
+
16
+ // Active field
17
+ helloBanner
18
+ .createField('active')
19
+ .name('Active')
20
+ .type('Boolean')
21
+ .required(true)
22
+ .defaultValue({ 'en-US': false })
23
+ helloBanner.changeFieldControl('active', 'builtin', 'boolean', {
24
+ helpText: 'Toggle to show/hide the hello banner',
25
+ })
26
+
27
+ // Full Copy field
28
+ helloBanner
29
+ .createField('fullCopy')
30
+ .name('Full Copy')
31
+ .type('Text')
32
+ .required(true)
33
+ helloBanner.changeFieldControl('fullCopy', 'builtin', 'multipleLine', {
34
+ helpText: 'Main promotional text displayed on desktop and mobile expanded',
35
+ })
36
+
37
+ // Mobile Collapsed field
38
+ helloBanner
39
+ .createField('mobileCollapsed')
40
+ .name('Mobile Collapsed')
41
+ .type('Symbol')
42
+ .required(true)
43
+ helloBanner.changeFieldControl('mobileCollapsed', 'builtin', 'singleLine', {
44
+ helpText: 'Text displayed when the hello banner is collapsed on mobile devices',
45
+ })
46
+
47
+ // CTA reference
48
+ helloBanner.createField('cta', {
49
+ name: 'CTA',
50
+ type: 'Link',
51
+ linkType: 'Entry',
52
+ required: false,
53
+ validations: [{ linkContentType: ['cta'] }],
54
+ })
55
+ helloBanner.changeFieldControl('cta', 'builtin', 'entryLinkEditor', {
56
+ helpText: 'Call-to-action button or link',
57
+ })
58
+ },
59
+ down: async function (migration) {
60
+ await migration.deleteContentType('helloBanner')
61
+ },
62
+ }
@@ -0,0 +1,86 @@
1
+ module.exports = {
2
+ // @ts-check
3
+ /** @type { import('contentful-migration').MigrationFunction } */
4
+ up: function (migration) {
5
+ const containerModule = migration.editContentType('containerModule')
6
+
7
+ // Add tileCollectionModule to fullWidthContent validations
8
+ containerModule.editField('fullWidthContent').validations([
9
+ {
10
+ linkContentType: [
11
+ 'contentModule',
12
+ 'tileContent',
13
+ 'accordion',
14
+ 'tileCollectionModule',
15
+ ],
16
+ },
17
+ ])
18
+
19
+ // Add tileCollectionModule to leftContent validations
20
+ containerModule.editField('leftContent').validations([
21
+ {
22
+ linkContentType: [
23
+ 'contentModule',
24
+ 'tileContent',
25
+ 'accordion',
26
+ 'image',
27
+ 'video',
28
+ 'tileCollectionModule',
29
+ ],
30
+ },
31
+ ])
32
+
33
+ // Add tileCollectionModule to rightContent validations
34
+ containerModule.editField('rightContent').validations([
35
+ {
36
+ linkContentType: [
37
+ 'contentModule',
38
+ 'tileContent',
39
+ 'accordion',
40
+ 'image',
41
+ 'video',
42
+ 'tileCollectionModule',
43
+ ],
44
+ },
45
+ ])
46
+ },
47
+
48
+ // @ts-check
49
+ /** @type { import('contentful-migration').MigrationFunction } */
50
+ down: function (migration) {
51
+ const containerModule = migration.editContentType('containerModule')
52
+
53
+ // Revert fullWidthContent to original validations
54
+ containerModule.editField('fullWidthContent').validations([
55
+ {
56
+ linkContentType: ['contentModule', 'tileContent', 'accordion'],
57
+ },
58
+ ])
59
+
60
+ // Revert leftContent to original validations
61
+ containerModule.editField('leftContent').validations([
62
+ {
63
+ linkContentType: [
64
+ 'contentModule',
65
+ 'tileContent',
66
+ 'accordion',
67
+ 'image',
68
+ 'video',
69
+ ],
70
+ },
71
+ ])
72
+
73
+ // Revert rightContent to original validations
74
+ containerModule.editField('rightContent').validations([
75
+ {
76
+ linkContentType: [
77
+ 'contentModule',
78
+ 'tileContent',
79
+ 'accordion',
80
+ 'image',
81
+ 'video',
82
+ ],
83
+ },
84
+ ])
85
+ },
86
+ }
@@ -0,0 +1,37 @@
1
+ module.exports = {
2
+ // @ts-check
3
+ /** @type { import('contentful-migration').MigrationFunction } */
4
+ up: function (migration) {
5
+ const tileCollectionModule =
6
+ migration.editContentType('tileCollectionModule')
7
+
8
+ tileCollectionModule
9
+ .createField('ctas')
10
+ .name('CTAs')
11
+ .type('Array')
12
+ .items({
13
+ type: 'Link',
14
+ linkType: 'Entry',
15
+ validations: [{ linkContentType: ['cta'] }],
16
+ })
17
+ .validations([{ size: { max: 4 } }])
18
+ tileCollectionModule.changeFieldControl(
19
+ 'ctas',
20
+ 'builtin',
21
+ 'entryLinksEditor',
22
+ {
23
+ helpText: 'Call-to-action buttons displayed below the tile collection',
24
+ }
25
+ )
26
+
27
+ tileCollectionModule.moveField('ctas').afterField('tiles')
28
+ },
29
+
30
+ // @ts-check
31
+ /** @type { import('contentful-migration').MigrationFunction } */
32
+ down: function (migration) {
33
+ const tileCollectionModule =
34
+ migration.editContentType('tileCollectionModule')
35
+ tileCollectionModule.deleteField('ctas')
36
+ },
37
+ }
@@ -0,0 +1,35 @@
1
+ module.exports = {
2
+ // @ts-check
3
+ /** @type { import('contentful-migration').MigrationFunction } */
4
+ up: function (migration) {
5
+ const tileContent = migration.editContentType('tileContent')
6
+
7
+ tileContent.createField('bodyCopyAlignment', {
8
+ name: 'Body Copy Alignment',
9
+ type: 'Symbol',
10
+ validations: [
11
+ {
12
+ in: ['Left', 'Center', 'Right'],
13
+ },
14
+ ],
15
+ })
16
+ tileContent.changeFieldControl(
17
+ 'bodyCopyAlignment',
18
+ 'builtin',
19
+ 'dropdown',
20
+ {
21
+ helpText:
22
+ 'Override the body copy text alignment independently from the general alignment. If not set, body copy will follow the general alignment.',
23
+ }
24
+ )
25
+
26
+ tileContent.moveField('bodyCopyAlignment').afterField('bodyCopy')
27
+ },
28
+
29
+ // @ts-check
30
+ /** @type { import('contentful-migration').MigrationFunction } */
31
+ down: function (migration) {
32
+ const tileContent = migration.editContentType('tileContent')
33
+ tileContent.deleteField('bodyCopyAlignment')
34
+ },
35
+ }
@@ -0,0 +1,25 @@
1
+ module.exports = {
2
+ // @ts-check
3
+ /** @type { import('contentful-migration').MigrationFunction } */
4
+ up: function (migration) {
5
+ const tileContent = migration.editContentType('tileContent')
6
+
7
+ tileContent.createField('footer', {
8
+ name: 'Footer',
9
+ type: 'Symbol',
10
+ })
11
+ tileContent.changeFieldControl('footer', 'builtin', 'singleLine', {
12
+ helpText: 'Optional footer text displayed below the body copy and CTAs.',
13
+ })
14
+
15
+ tileContent.moveField('footer').afterField('bodyCopyAlignment')
16
+ tileContent.moveField('backgroundColor').afterField('tileLabel')
17
+ },
18
+
19
+ // @ts-check
20
+ /** @type { import('contentful-migration').MigrationFunction } */
21
+ down: function (migration) {
22
+ const tileContent = migration.editContentType('tileContent')
23
+ tileContent.deleteField('footer')
24
+ },
25
+ }
@@ -0,0 +1,15 @@
1
+ module.exports = {
2
+ // @ts-check
3
+ /** @type { import('contentful-migration').MigrationFunction } */
4
+ up: function (migration) {
5
+ const cta = migration.editContentType('cta')
6
+ cta.editField('type').required(true)
7
+ },
8
+
9
+ // @ts-check
10
+ /** @type { import('contentful-migration').MigrationFunction } */
11
+ down: function (migration) {
12
+ const cta = migration.editContentType('cta')
13
+ cta.editField('type').required(false)
14
+ },
15
+ }
@@ -5,6 +5,7 @@ export const getContainerModule = gql `
5
5
  ${videoFragment}
6
6
  query containerModuleQuery($id: String!, $preview: Boolean = false) {
7
7
  containerModule(id: $id, preview: $preview) {
8
+ __typename
8
9
  headline {
9
10
  json
10
11
  links {
@@ -39,6 +40,12 @@ export const getContainerModule = gql `
39
40
  }
40
41
  __typename
41
42
  }
43
+ ... on TileCollectionModule {
44
+ sys {
45
+ id
46
+ }
47
+ __typename
48
+ }
42
49
  }
43
50
  leftContent {
44
51
  ... on Accordion {
@@ -84,6 +91,12 @@ export const getContainerModule = gql `
84
91
  }
85
92
  __typename
86
93
  }
94
+ ... on TileCollectionModule {
95
+ sys {
96
+ id
97
+ }
98
+ __typename
99
+ }
87
100
  }
88
101
  rightContent {
89
102
  ... on Accordion {
@@ -116,6 +129,12 @@ export const getContainerModule = gql `
116
129
  }
117
130
  __typename
118
131
  }
132
+ ... on TileCollectionModule {
133
+ sys {
134
+ id
135
+ }
136
+ __typename
137
+ }
119
138
  }
120
139
  backgroundImage {
121
140
  ...imageFragment