-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
ImageSource.fusion
100 lines (97 loc) · 4.66 KB
/
ImageSource.fusion
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
prototype(Carbon.Image:Helper.ImageSource) < prototype(Neos.Fusion:Component) {
@propTypes {
image = ${PropTypes.anyOf(PropTypes.instanceOf('Neos\\Media\\Domain\\Model\\ImageInterface'), PropTypes.instanceof('\\Sitegeist\\Kaleidoscope\\Domain\\ImageSourceInterface'), PropTypes.string)}
package = ${PropTypes.string}
dummyText = ${PropTypes.string}
thumbnailPreset = ${PropTypes.string}
variantPreset = ${PropTypes.string}
format = ${PropTypes.string}
width = ${PropTypes.float}
height = ${PropTypes.float}
quality = ${PropTypes.float}
outputDummy = ${PropTypes.boolean}
forceDummy = ${PropTypes.boolean}
dummyForgroundColor = ${PropTypes.string}
dummyBackgroundColor = ${PropTypes.string}
dummyBaseWidth = ${PropTypes.float}
dummyBaseHeight = ${PropTypes.float}
}
outputDummy = ${node.context.inBackend}
forceDummy = ${Configuration.Setting('Carbon.Image.dummy.force')}
dummyForgroundColor = ${Configuration.Setting('Carbon.Image.dummy.forgroundColor')}
dummyForgroundColor.@process.toString = ${String.toString(value)}
dummyBackgroundColor = ${Configuration.Setting('Carbon.Image.dummy.backgroundColor')}
dummyBackgroundColor.@process.toString = ${String.toString(value)}
dummyBaseWidth = 600
dummyBaseHeight = 400
@if.hasImageOrOutputDummy = ${this.image || this.outputDummy || this.forceDummy}
renderer = Neos.Fusion:Case {
forceDummy {
condition = ${props.forceDummy}
renderer = Sitegeist.Kaleidoscope:DummyImageSource {
text = ${props.dummyText}
foregroundColor = ${props.dummyForgroundColor || 'fff'}
backgroundColor = ${props.dummyBackgroundColor || '999'}
thumbnailPreset = ${props.thumbnailPreset}
variantPreset = ${props.variantPreset}
format = ${props.format}
baseWidth = ${props.dummyBaseWidth}
baseHeight = ${props.dummyBaseHeight}
width = ${props.width}
height = ${props.height}
}
}
isAsset {
condition = ${props.image && Type.instance(props.image, 'Neos\\Media\\Domain\\Model\\ImageInterface')}
renderer = Sitegeist.Kaleidoscope:AssetImageSource {
asset = ${props.image}
thumbnailPreset = ${props.thumbnailPreset}
variantPreset = ${props.variantPreset}
format = ${props.format}
width = ${props.width}
height = ${props.height}
quality = ${props.quality}
}
}
isImageSource {
condition = ${props.image && Type.instance(props.image, '\\Sitegeist\\Kaleidoscope\\Domain\\ImageSourceInterface')}
renderer = ${props.image}
renderer.@process {
thumbnailPreset = ${props.thumbnailPreset ? value.withThumbnailPreset(props.thumbnailPreset) : value}
variantPreset = ${props.variantPreset ? value.withVariantPreset(props.variantPreset) : value}
format = ${props.format ? value.withFormat(props.format) : value}
width = ${props.width ? value.withWidth(props.width) : value}
height = ${props.height ? value.withHeight(props.height) : value}
quality = ${props.quality ? value.withQuality(props.quality) : value}
}
}
isResource {
condition = ${Type.isString(props.image) && (String.startsWith(props.image, 'resource') || props.package)}
renderer = Sitegeist.Kaleidoscope:ResourceImageSource {
package = ${props.package}
path = ${props.image}
}
}
isLink {
condition = ${Type.isString(props.image) && String.startsWith(props.image, 'http')}
renderer = Sitegeist.Kaleidoscope:UriImageSource {
uri = ${props.image}
}
}
needDummyImage {
condition = ${props.outputDummy}
renderer = Sitegeist.Kaleidoscope:DummyImageSource {
text = ${props.dummyText}
foregroundColor = ${props.dummyForgroundColor || 'fff'}
backgroundColor = ${props.dummyBackgroundColor || '999'}
thumbnailPreset = ${props.thumbnailPreset}
variantPreset = ${props.variantPreset}
format = ${props.format}
baseWidth = ${props.dummyBaseWidth}
baseHeight = ${props.dummyBaseHeight}
width = ${props.width}
height = ${props.height}
}
}
}
}