@cooperco/cooper-component-library 0.1.69 → 0.1.71

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.
@@ -0,0 +1,76 @@
1
+ module.exports = {
2
+ // @ts-check
3
+ /** @type { import('contentful-migration').MigrationFunction } */
4
+ up: function (migration) {
5
+ const contentModule = migration.editContentType('contentModule')
6
+
7
+ // Add image field (appears below body copy)
8
+ contentModule
9
+ .createField('image')
10
+ .name('Image')
11
+ .type('Link')
12
+ .linkType('Entry')
13
+ .required(false)
14
+ .validations([{ linkContentType: ['image'] }])
15
+ contentModule.changeFieldControl('image', 'builtin', 'entryLinkEditor', {
16
+ helpText: 'Image that appears below the body copy text',
17
+ })
18
+ contentModule.moveField('image').afterField('bodyCopy')
19
+
20
+ // Update bodyCopy field to enable tables and embedded testimonials
21
+ contentModule.editField('bodyCopy').validations([
22
+ {
23
+ enabledMarks: ['bold', 'italic', 'underline'],
24
+ message: 'Only bold, italic, and underline marks are allowed',
25
+ },
26
+ {
27
+ enabledNodeTypes: [
28
+ 'ordered-list',
29
+ 'unordered-list',
30
+ 'hr',
31
+ 'hyperlink',
32
+ 'embedded-entry-inline',
33
+ 'table',
34
+ ],
35
+ },
36
+ {
37
+ nodes: {
38
+ 'embedded-entry-inline': [
39
+ {
40
+ linkContentType: ['testimonialModule'],
41
+ message: 'You can embed Testimonial entries.',
42
+ },
43
+ ],
44
+ },
45
+ },
46
+ ])
47
+ },
48
+
49
+ // @ts-check
50
+ /** @type { import('contentful-migration').MigrationFunction } */
51
+ down: async function (migration) {
52
+ const contentModule = migration.editContentType('contentModule')
53
+
54
+ // Remove image field
55
+ contentModule.deleteField('image')
56
+
57
+ // Revert bodyCopy field to original validations (without tables and testimonials)
58
+ contentModule.editField('bodyCopy').validations([
59
+ {
60
+ enabledMarks: ['bold', 'italic', 'underline'],
61
+ message: 'Only bold, italic, and underline marks are allowed',
62
+ },
63
+ {
64
+ enabledNodeTypes: [
65
+ 'ordered-list',
66
+ 'unordered-list',
67
+ 'hr',
68
+ 'hyperlink',
69
+ ],
70
+ },
71
+ {
72
+ nodes: {},
73
+ },
74
+ ])
75
+ },
76
+ }
@@ -1,16 +1,20 @@
1
1
  import { gql } from 'graphql-tag'
2
2
  import type { DocumentNode } from 'graphql'
3
- import { imageFragment, ctaFragment } from './fragments.js'
3
+ import { imageFragment, ctaFragment, videoFragment } from './fragments.js'
4
4
 
5
5
  export const getContentModule: DocumentNode = gql`
6
6
  ${imageFragment}
7
7
  ${ctaFragment}
8
+ ${videoFragment}
8
9
  query contentModuleQuery($id: String!, $preview: Boolean = false) {
9
10
  contentModule(id: $id, preview: $preview) {
10
11
  alignment
11
12
  logo {
12
13
  ...imageFragment
13
14
  }
15
+ image {
16
+ ...imageFragment
17
+ }
14
18
  subHeadline
15
19
  headline {
16
20
  json
@@ -35,6 +39,20 @@ export const getContentModule: DocumentNode = gql`
35
39
  sys {
36
40
  id
37
41
  }
42
+ ... on TestimonialModule {
43
+ headline
44
+ quote
45
+ author
46
+ details
47
+ media {
48
+ ... on Image {
49
+ ...imageFragment
50
+ }
51
+ ... on Video {
52
+ ...videoFragment
53
+ }
54
+ }
55
+ }
38
56
  }
39
57
  }
40
58
  }
@@ -0,0 +1,76 @@
1
+ module.exports = {
2
+ // @ts-check
3
+ /** @type { import('contentful-migration').MigrationFunction } */
4
+ up: function (migration) {
5
+ const contentModule = migration.editContentType('contentModule')
6
+
7
+ // Add image field (appears below body copy)
8
+ contentModule
9
+ .createField('image')
10
+ .name('Image')
11
+ .type('Link')
12
+ .linkType('Entry')
13
+ .required(false)
14
+ .validations([{ linkContentType: ['image'] }])
15
+ contentModule.changeFieldControl('image', 'builtin', 'entryLinkEditor', {
16
+ helpText: 'Image that appears below the body copy text',
17
+ })
18
+ contentModule.moveField('image').afterField('bodyCopy')
19
+
20
+ // Update bodyCopy field to enable tables and embedded testimonials
21
+ contentModule.editField('bodyCopy').validations([
22
+ {
23
+ enabledMarks: ['bold', 'italic', 'underline'],
24
+ message: 'Only bold, italic, and underline marks are allowed',
25
+ },
26
+ {
27
+ enabledNodeTypes: [
28
+ 'ordered-list',
29
+ 'unordered-list',
30
+ 'hr',
31
+ 'hyperlink',
32
+ 'embedded-entry-inline',
33
+ 'table',
34
+ ],
35
+ },
36
+ {
37
+ nodes: {
38
+ 'embedded-entry-inline': [
39
+ {
40
+ linkContentType: ['testimonialModule'],
41
+ message: 'You can embed Testimonial entries.',
42
+ },
43
+ ],
44
+ },
45
+ },
46
+ ])
47
+ },
48
+
49
+ // @ts-check
50
+ /** @type { import('contentful-migration').MigrationFunction } */
51
+ down: async function (migration) {
52
+ const contentModule = migration.editContentType('contentModule')
53
+
54
+ // Remove image field
55
+ contentModule.deleteField('image')
56
+
57
+ // Revert bodyCopy field to original validations (without tables and testimonials)
58
+ contentModule.editField('bodyCopy').validations([
59
+ {
60
+ enabledMarks: ['bold', 'italic', 'underline'],
61
+ message: 'Only bold, italic, and underline marks are allowed',
62
+ },
63
+ {
64
+ enabledNodeTypes: [
65
+ 'ordered-list',
66
+ 'unordered-list',
67
+ 'hr',
68
+ 'hyperlink',
69
+ ],
70
+ },
71
+ {
72
+ nodes: {},
73
+ },
74
+ ])
75
+ },
76
+ }
@@ -1,14 +1,18 @@
1
1
  import { gql } from 'graphql-tag';
2
- import { imageFragment, ctaFragment } from './fragments.js';
2
+ import { imageFragment, ctaFragment, videoFragment } from './fragments.js';
3
3
  export const getContentModule = gql `
4
4
  ${imageFragment}
5
5
  ${ctaFragment}
6
+ ${videoFragment}
6
7
  query contentModuleQuery($id: String!, $preview: Boolean = false) {
7
8
  contentModule(id: $id, preview: $preview) {
8
9
  alignment
9
10
  logo {
10
11
  ...imageFragment
11
12
  }
13
+ image {
14
+ ...imageFragment
15
+ }
12
16
  subHeadline
13
17
  headline {
14
18
  json
@@ -33,6 +37,20 @@ export const getContentModule = gql `
33
37
  sys {
34
38
  id
35
39
  }
40
+ ... on TestimonialModule {
41
+ headline
42
+ quote
43
+ author
44
+ details
45
+ media {
46
+ ... on Image {
47
+ ...imageFragment
48
+ }
49
+ ... on Video {
50
+ ...videoFragment
51
+ }
52
+ }
53
+ }
36
54
  }
37
55
  }
38
56
  }
@@ -1,16 +1,20 @@
1
1
  import { gql } from 'graphql-tag'
2
2
  import type { DocumentNode } from 'graphql'
3
- import { imageFragment, ctaFragment } from './fragments.js'
3
+ import { imageFragment, ctaFragment, videoFragment } from './fragments.js'
4
4
 
5
5
  export const getContentModule: DocumentNode = gql`
6
6
  ${imageFragment}
7
7
  ${ctaFragment}
8
+ ${videoFragment}
8
9
  query contentModuleQuery($id: String!, $preview: Boolean = false) {
9
10
  contentModule(id: $id, preview: $preview) {
10
11
  alignment
11
12
  logo {
12
13
  ...imageFragment
13
14
  }
15
+ image {
16
+ ...imageFragment
17
+ }
14
18
  subHeadline
15
19
  headline {
16
20
  json
@@ -35,6 +39,20 @@ export const getContentModule: DocumentNode = gql`
35
39
  sys {
36
40
  id
37
41
  }
42
+ ... on TestimonialModule {
43
+ headline
44
+ quote
45
+ author
46
+ details
47
+ media {
48
+ ... on Image {
49
+ ...imageFragment
50
+ }
51
+ ... on Video {
52
+ ...videoFragment
53
+ }
54
+ }
55
+ }
38
56
  }
39
57
  }
40
58
  }
@@ -0,0 +1,76 @@
1
+ module.exports = {
2
+ // @ts-check
3
+ /** @type { import('contentful-migration').MigrationFunction } */
4
+ up: function (migration) {
5
+ const contentModule = migration.editContentType('contentModule')
6
+
7
+ // Add image field (appears below body copy)
8
+ contentModule
9
+ .createField('image')
10
+ .name('Image')
11
+ .type('Link')
12
+ .linkType('Entry')
13
+ .required(false)
14
+ .validations([{ linkContentType: ['image'] }])
15
+ contentModule.changeFieldControl('image', 'builtin', 'entryLinkEditor', {
16
+ helpText: 'Image that appears below the body copy text',
17
+ })
18
+ contentModule.moveField('image').afterField('bodyCopy')
19
+
20
+ // Update bodyCopy field to enable tables and embedded testimonials
21
+ contentModule.editField('bodyCopy').validations([
22
+ {
23
+ enabledMarks: ['bold', 'italic', 'underline'],
24
+ message: 'Only bold, italic, and underline marks are allowed',
25
+ },
26
+ {
27
+ enabledNodeTypes: [
28
+ 'ordered-list',
29
+ 'unordered-list',
30
+ 'hr',
31
+ 'hyperlink',
32
+ 'embedded-entry-inline',
33
+ 'table',
34
+ ],
35
+ },
36
+ {
37
+ nodes: {
38
+ 'embedded-entry-inline': [
39
+ {
40
+ linkContentType: ['testimonialModule'],
41
+ message: 'You can embed Testimonial entries.',
42
+ },
43
+ ],
44
+ },
45
+ },
46
+ ])
47
+ },
48
+
49
+ // @ts-check
50
+ /** @type { import('contentful-migration').MigrationFunction } */
51
+ down: async function (migration) {
52
+ const contentModule = migration.editContentType('contentModule')
53
+
54
+ // Remove image field
55
+ contentModule.deleteField('image')
56
+
57
+ // Revert bodyCopy field to original validations (without tables and testimonials)
58
+ contentModule.editField('bodyCopy').validations([
59
+ {
60
+ enabledMarks: ['bold', 'italic', 'underline'],
61
+ message: 'Only bold, italic, and underline marks are allowed',
62
+ },
63
+ {
64
+ enabledNodeTypes: [
65
+ 'ordered-list',
66
+ 'unordered-list',
67
+ 'hr',
68
+ 'hyperlink',
69
+ ],
70
+ },
71
+ {
72
+ nodes: {},
73
+ },
74
+ ])
75
+ },
76
+ }
@@ -1,16 +1,20 @@
1
1
  import { gql } from 'graphql-tag'
2
2
  import type { DocumentNode } from 'graphql'
3
- import { imageFragment, ctaFragment } from './fragments.js'
3
+ import { imageFragment, ctaFragment, videoFragment } from './fragments.js'
4
4
 
5
5
  export const getContentModule: DocumentNode = gql`
6
6
  ${imageFragment}
7
7
  ${ctaFragment}
8
+ ${videoFragment}
8
9
  query contentModuleQuery($id: String!, $preview: Boolean = false) {
9
10
  contentModule(id: $id, preview: $preview) {
10
11
  alignment
11
12
  logo {
12
13
  ...imageFragment
13
14
  }
15
+ image {
16
+ ...imageFragment
17
+ }
14
18
  subHeadline
15
19
  headline {
16
20
  json
@@ -35,6 +39,20 @@ export const getContentModule: DocumentNode = gql`
35
39
  sys {
36
40
  id
37
41
  }
42
+ ... on TestimonialModule {
43
+ headline
44
+ quote
45
+ author
46
+ details
47
+ media {
48
+ ... on Image {
49
+ ...imageFragment
50
+ }
51
+ ... on Video {
52
+ ...videoFragment
53
+ }
54
+ }
55
+ }
38
56
  }
39
57
  }
40
58
  }
@@ -0,0 +1,76 @@
1
+ module.exports = {
2
+ // @ts-check
3
+ /** @type { import('contentful-migration').MigrationFunction } */
4
+ up: function (migration) {
5
+ const contentModule = migration.editContentType('contentModule')
6
+
7
+ // Add image field (appears below body copy)
8
+ contentModule
9
+ .createField('image')
10
+ .name('Image')
11
+ .type('Link')
12
+ .linkType('Entry')
13
+ .required(false)
14
+ .validations([{ linkContentType: ['image'] }])
15
+ contentModule.changeFieldControl('image', 'builtin', 'entryLinkEditor', {
16
+ helpText: 'Image that appears below the body copy text',
17
+ })
18
+ contentModule.moveField('image').afterField('bodyCopy')
19
+
20
+ // Update bodyCopy field to enable tables and embedded testimonials
21
+ contentModule.editField('bodyCopy').validations([
22
+ {
23
+ enabledMarks: ['bold', 'italic', 'underline'],
24
+ message: 'Only bold, italic, and underline marks are allowed',
25
+ },
26
+ {
27
+ enabledNodeTypes: [
28
+ 'ordered-list',
29
+ 'unordered-list',
30
+ 'hr',
31
+ 'hyperlink',
32
+ 'embedded-entry-inline',
33
+ 'table',
34
+ ],
35
+ },
36
+ {
37
+ nodes: {
38
+ 'embedded-entry-inline': [
39
+ {
40
+ linkContentType: ['testimonialModule'],
41
+ message: 'You can embed Testimonial entries.',
42
+ },
43
+ ],
44
+ },
45
+ },
46
+ ])
47
+ },
48
+
49
+ // @ts-check
50
+ /** @type { import('contentful-migration').MigrationFunction } */
51
+ down: async function (migration) {
52
+ const contentModule = migration.editContentType('contentModule')
53
+
54
+ // Remove image field
55
+ contentModule.deleteField('image')
56
+
57
+ // Revert bodyCopy field to original validations (without tables and testimonials)
58
+ contentModule.editField('bodyCopy').validations([
59
+ {
60
+ enabledMarks: ['bold', 'italic', 'underline'],
61
+ message: 'Only bold, italic, and underline marks are allowed',
62
+ },
63
+ {
64
+ enabledNodeTypes: [
65
+ 'ordered-list',
66
+ 'unordered-list',
67
+ 'hr',
68
+ 'hyperlink',
69
+ ],
70
+ },
71
+ {
72
+ nodes: {},
73
+ },
74
+ ])
75
+ },
76
+ }