@@ -134,42 +134,49 @@ export class ParticlesOptions implements IParticlesOptions, IOptionLoader<IParti
134134 }
135135
136136 const paletteColors = paletteData . colors ,
137- paletteFill = paletteColors . fill ,
138- paletteStroke = paletteColors . stroke ,
139- defaultPaintStrokeIndex = 0 ,
140137 defaultPaintStrokeWidth = 0 ,
141- palettePaint : IPaint = {
142- fill : paletteFill
143- ? {
138+ defaultPaintVariantsLength = 1 ,
139+ firstPaintVariantIndex = 0 ,
140+ defaultPalettePaintVariant : IPaint = { } ,
141+ colorVariants = isArray ( paletteColors ) ? paletteColors : [ paletteColors ] ,
142+ palettePaintVariants = colorVariants . flatMap < IPaint > ( variant => {
143+ const paletteFill = variant . fill ,
144+ paletteStroke = variant . stroke ,
145+ fillPart : IPaint [ "fill" ] = paletteFill
146+ ? {
147+ color : {
148+ value : paletteFill . value ,
149+ } ,
150+ enable : paletteFill . enable ,
151+ opacity : paletteFill . opacity ,
152+ }
153+ : undefined ;
154+
155+ if ( ! paletteStroke ) {
156+ return [
157+ {
158+ fill : fillPart ,
159+ } ,
160+ ] ;
161+ }
162+
163+ return [
164+ {
165+ fill : fillPart ,
166+ stroke : {
144167 color : {
145- value : paletteFill . value ,
168+ value : paletteStroke . value ,
146169 } ,
147- enable : paletteFill . enable ,
148- }
149- : undefined ,
150- } ;
151-
152- if ( paletteStroke ) {
153- if ( isArray ( paletteStroke ) ) {
154- const firstStroke = paletteStroke [ defaultPaintStrokeIndex ] ;
155-
156- if ( firstStroke ) {
157- palettePaint . stroke = {
158- color : {
159- value : firstStroke . value ,
170+ opacity : paletteStroke . opacity ,
171+ width : paletteStroke . width || defaultPaintStrokeWidth ,
160172 } ,
161- width : firstStroke . width || defaultPaintStrokeWidth ,
162- } ;
163- }
164- } else {
165- palettePaint . stroke = {
166- color : {
167- value : paletteStroke . value ,
168173 } ,
169- width : paletteStroke . width ,
170- } ;
171- }
172- }
174+ ] ;
175+ } ) ,
176+ palettePaint : SingleOrMultiple < IPaint > =
177+ palettePaintVariants . length > defaultPaintVariantsLength
178+ ? palettePaintVariants
179+ : ( palettePaintVariants [ firstPaintVariantIndex ] ?? defaultPalettePaintVariant ) ;
173180
174181 this . load ( {
175182 paint : palettePaint ,
0 commit comments