@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.
- package/dist/cms/0061-update-content-module-add-image-tables-testimonials.cjs +76 -0
- package/dist/cms/contentModule.query.ts +19 -1
- package/dist/cms/contentful/migrations/scripts/0061-update-content-module-add-image-tables-testimonials.cjs +76 -0
- package/dist/cms/contentful/queries/contentModule.query.js +19 -1
- package/dist/cms/contentful/queries/contentModule.query.ts +19 -1
- package/dist/cms/migrations/scripts/0061-update-content-module-add-image-tables-testimonials.cjs +76 -0
- package/dist/cms/queries/contentModule.query.ts +19 -1
- package/dist/cms/scripts/0061-update-content-module-add-image-tables-testimonials.cjs +76 -0
- package/dist/lib/component-lib.js +167 -164
- package/dist/lib/component-lib.umd.cjs +10 -10
- package/dist/lib/css/main.css +104 -1
- package/dist/lib/style.css +1 -1
- package/dist/types/src/components/ContentModule/ContentModule.d.ts +2 -0
- package/package.json +14 -14
|
@@ -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
|
}
|
package/dist/cms/migrations/scripts/0061-update-content-module-add-image-tables-testimonials.cjs
ADDED
|
@@ -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
|
+
}
|