Quantcast
Channel: GoJS - Northwoods Software
Viewing all articles
Browse latest Browse all 7069

Picture source always binding

$
0
0

@ahmetgundogdu wrote:

I create my own objects with svg. I’m doing this using gojs picture

I’m bind to the source of the gojs picture.

but here the source is always bind

i think this will cause performance loss

i just want it to be called when picture source is change to color and border Color values ​​under node Config

Please check the svg and code I sent

Example of a svg

<svg version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" viewBox="0 0 58 58" style="enable-background:new 0 0 58 58;" width="58" height="58" xml:space="preserve">
<g id="flw_x5F_and_x5F_Operator">
	<g>
		<path style="fill:strokeColor;" d="M24,47c-0.552,0-1-0.447-1-1s0.448-1,1-1c1.558,0,3-0.484,3-4v-8
			c0.075-1.146,0.601-2.902,1.961-3.999c-1.36-1.091-1.885-2.831-1.958-3.935L27,17c0-3.516-1.442-4-3-4c-0.552,0-1-0.448-1-1
			s0.448-1,1-1c3.271,0,5,2.075,5,6v8c0.021,0.243,0.311,3,3,3c0.553,0,1,0.448,1,1s-0.447,1-1,1c-2.689,0-2.979,2.757-3.002,3.071
			L29,41C29,44.925,27.271,47,24,47z"/>
	</g>
	<g>
		<path style="fill:currentColor;" d="M47,35c-0.256,0-0.512-0.098-0.707-0.293c-0.391-0.391-0.391-1.023,0-1.414L50.586,29l-4.293-4.293
			c-0.391-0.391-0.391-1.023,0-1.414s1.023-0.391,1.414,0l5,5c0.391,0.391,0.391,1.023,0,1.414l-5,5C47.512,34.902,47.256,35,47,35z
			"/>
	</g>
	<g>
		<path style="fill:currentColor;" d="M52,30H38c-0.553,0-1-0.448-1-1s0.447-1,1-1h14c0.553,0,1,0.448,1,1S52.553,30,52,30z"/>
	</g>
	<g>
		<path style="fill:currentColor;" d="M12,18c-0.263,0-0.518-0.104-0.707-0.293l-3-3c-0.391-0.391-0.391-1.023,0-1.414
			s1.023-0.391,1.414,0l2.063,2.063l4.356-7.841c0.268-0.481,0.876-0.657,1.36-0.388c0.482,0.268,0.657,0.877,0.388,1.36l-5,9
			c-0.152,0.274-0.425,0.461-0.735,0.504C12.092,17.997,12.046,18,12,18z"/>
	</g>
	<g>
		<path style="fill:currentColor;" d="M12,51c-0.263,0-0.518-0.104-0.707-0.293l-3-3c-0.391-0.391-0.391-1.023,0-1.414
			s1.023-0.391,1.414,0l2.063,2.063l4.356-7.841c0.268-0.482,0.876-0.659,1.36-0.389c0.482,0.269,0.657,0.877,0.388,1.359l-5,9
			c-0.152,0.274-0.425,0.462-0.735,0.505C12.092,50.997,12.046,51,12,51z"/>
	</g>
</g>
<g id="Layer_1">
</g>
</svg>

goMake(go.Panel, "Viewbox",
            {
                cursor: "move",
                background: "transparent",
                padding: 5
            },
            goMake(go.Picture, { desiredSize: new go.Size(58, 58) },
                new go.Binding("source", "", (sourceData, target) => {
                    let fileSvg = require('../assets/svg/' + sourceData.typeName + '.svg');
                    let color = target.part.data.nodeConfig.color;
                    let borderColor = target.part.data.nodeConfig.borderColor;

                    if (!color) {
                        color = (this.diagram.model.modelData as IFlowDiagram).configs.nodeConfig.color;
                    }
                    if (!color) {
                        color = this.props.config.nodeConfig.color;
                    }

                    if (!borderColor) {
                        borderColor = (this.diagram.model.modelData as IFlowDiagram).configs.nodeConfig.borderColor;
                    }
                    if (!borderColor) {
                        borderColor = this.props.config.nodeConfig.borderColor;
                    }

                    fileSvg = fileSvg.replace(new RegExp("fill:currentColor", 'g'), "fill: " + color).replace(new RegExp("fill:strokeColor", 'g'), "fill: " + borderColor);

                    return "data:image/svg+xml;base64," + btoa(fileSvg);
                })
            )
        );

Posts: 4

Participants: 2

Read full topic


Viewing all articles
Browse latest Browse all 7069

Trending Articles