UNPKG

@fusioncharts/core

Version:

JavaScript Data Visualisation Library

1 lines 4.19 kB
"use strict";exports.__esModule=true;exports.default=_default;var _imageAlignment=require("../../image-alignment");function _default(R){var UNDEF,TILE="tile",FILL="fill",FIT="fit",POSITION_TOP="top",POSITION_MIDDLE="middle",POSITION_BOTTOM="bottom",POSITION_LEFT="left",POSITION_RIGHT="right",onError=function onError(o){return function(){o.hide();for(var i=0,len=o._.gridElem&&o._.gridElem.length;i<len;i++){o._.gridElem[i].remove()}o._.gridElem=[];o._attr({src:o._._src});setTimeout((function(){o.show()}),100)}},gridDraw=function gridDraw(o,image,applySrc){return function(){var imageAttr=getImageAttr(o._.imageGridAttr,image),xRepeatCount=1,yRepeatCount=1,yCount=1,gridElem,counter,imgY;if(imageAttr.tileInfo){xRepeatCount=imageAttr.tileInfo.xCount;yRepeatCount=yCount=imageAttr.tileInfo.yCount;imgY=imageAttr.y;delete imageAttr.tileInfo}if(o._.gridElem){for(counter=0;counter<o._.gridElem.length;counter++){o._.gridElem[counter].remove()}o._.gridElem.length=0}counter=0;while(xRepeatCount&&imageAttr.width&&imageAttr.height){yCount--;if(counter===0){o.attr(applySrc?Object.assign(imageAttr,{applysrc:o._._src}):imageAttr)}else{gridElem=o.clone().attr({x:imageAttr.x,y:imageAttr.y});o._.gridElem.push(gridElem.follow(o,UNDEF,"after"))}imageAttr.y+=imageAttr.height;if(yCount===0){yCount=yRepeatCount;xRepeatCount--;imageAttr.x+=imageAttr.width;imageAttr.y=imgY}counter++}}},getImageAttr=function getImageAttr(attrs,refImage){var alignImage;if(attrs){var displayMode=attrs.displayMode,vAlign=attrs.vAlign,hAlign=attrs.hAlign,scale=attrs.scale,canvasBorderWidth=attrs.canvasBorderWidth,canvasWidth=attrs.canvasWidth,canvasHeight=attrs.canvasHeight,imageWidth=refImage.width*(scale/100),imageHeight=refImage.height*(scale/100),cWidth=canvasWidth-canvasBorderWidth*2,cHeight=canvasHeight-canvasBorderWidth*2;alignImage=(0,_imageAlignment.getAlignImage)(vAlign,hAlign,displayMode,imageWidth,imageHeight,canvasWidth,canvasHeight,canvasBorderWidth,cWidth,cHeight)}return alignImage||{x:0,y:0,width:refImage.width,height:refImage.height}};R.define&&R.define([{name:"imagegrid",imagegrid:function imagegrid(){var paper=this,image,o,args=arguments,lastArg=args.length-1,group=args[lastArg];group&&group.constructor===R.el.constructor?args[lastArg]=UNDEF:group=UNDEF;image=new Image;o=paper.image(group);o._.gridElem=[];o._.refImage=image;o._attr=o.attr;o.attr=function(_name,value){var name=_name,isArray=Array.isArray(name),isObject=!isArray&&typeof name==="object",isString=typeof name==="string";if(isArray){name=name[0];isObject=typeof name==="object"}if(isObject){var attrs=Object.assign({},name),src=attrs&&attrs.src,applySrc=attrs&&attrs.applysrc;delete attrs.src;delete attrs.applysrc;src&&delete o._._src;o._attr(attrs);src&&o._attr({_src:src});applySrc&&o._attr({src:applySrc})}else if(name===UNDEF&&value===UNDEF){return this.attrs}else if(value===UNDEF){return this.attrs[name]}else if(isString&&value){if(name==="src"){o._attr({_src:value})}else if(name==="applysrc"){o._attr({src:value})}else{o._attr({name:value})}}return this};image.onload=gridDraw(o,image,true);image.onerror=onError(o);return o},ca:{imagegrid:function imagegrid(displayMode,_vAlign,_hAlign,scale,canvasBorderWidth,canvasWidth,canvasHeight){if(scale===void 0){scale=100}if(canvasBorderWidth===void 0){canvasBorderWidth=0}if(canvasWidth===void 0){canvasWidth=0}if(canvasHeight===void 0){canvasHeight=0}var o=this,vAlign=_vAlign,hAlign=_hAlign;if(displayMode===TILE||displayMode===FILL||displayMode===FIT){if(vAlign!==POSITION_TOP&&vAlign!==POSITION_MIDDLE&&vAlign!==POSITION_BOTTOM){vAlign=POSITION_MIDDLE}if(hAlign!==POSITION_LEFT&&hAlign!==POSITION_MIDDLE&&hAlign!==POSITION_RIGHT){hAlign=POSITION_MIDDLE}}else{if(vAlign!==POSITION_TOP&&vAlign!==POSITION_MIDDLE&&vAlign!==POSITION_BOTTOM){vAlign=POSITION_TOP}if(hAlign!==POSITION_LEFT&&hAlign!==POSITION_MIDDLE&&hAlign!==POSITION_RIGHT){hAlign=POSITION_LEFT}}o._.imageGridAttr={displayMode:displayMode,vAlign:vAlign,hAlign:hAlign,scale:scale,canvasBorderWidth:canvasBorderWidth,canvasWidth:canvasWidth,canvasHeight:canvasHeight};this._._src&&gridDraw(o,o._.refImage)()},_src:function _src(value){this._.refImage.src=value;this._._src=value;return{_src:value}}}}])}