www-thermferm/jqwidgets/jqxtagcloud.js

Sun, 07 Jul 2019 14:31:10 +0200

author
Michiel Broek <mbroek@mbse.eu>
date
Sun, 07 Jul 2019 14:31:10 +0200
branch
stable
changeset 603
fcff55324b84
parent 511
2d1d43c3a2c2
child 617
b216f9d4b917
permissions
-rw-r--r--

Merged fix from default

/*
jQWidgets v4.5.2 (2017-May)
Copyright (c) 2011-2017 jQWidgets.
License: http://jqwidgets.com/license/
*/
!function(a){a.jqx.jqxWidget("jqxTagCloud","",{}),a.extend(a.jqx._jqxTagCloud.prototype,{defineInstance:function(){var b={width:null,height:null,source:null,disabled:!1,rtl:!1,valueMember:"value",displayMember:"label",urlMember:"url",urlBase:"",autoBind:!0,takeTopWeightedItems:!1,displayLimit:null,minValueToDisplay:0,maxValueToDisplay:0,minFontSize:10,maxFontSize:24,fontSizeUnit:"px",displayValue:!1,sortBy:"none",alterTextCase:"none",sortOrder:"ascending",textColor:null,minColor:null,maxColor:null,tagRenderer:null};return this===a.jqx._jqxTagCloud.prototype?b:(a.extend(!0,this,b),b)},createInstance:function(){var a=this;a.render(),a.dataBind(a.source,!0)},dataBind:function(b,c){var d=this;d.records=[];var e,f=!!b._source;f?(e=b,b=b._source):(b.datafields=[{name:d.displayMember},{name:d.valueMember},{name:d.urlMember}],e=new a.jqx.dataAdapter(b,{autoBind:!0}));var g=function(){void 0!==b.type&&(e._options.type=b.type),void 0!==b.formatdata&&(e._options.formatData=b.formatdata),void 0!==b.contenttype&&(e._options.contentType=b.contenttype),void 0!==b.async&&(e._options.async=b.async)},h=function(a){a._setSourceData(e),a._raiseEvent(1,{records:a.records}),a._renderTags()};switch(g(this),b.datatype){case"local":case"array":default:(null!=b.localdata||a.isArray(b))&&(e.unbindBindingUpdate(d.element.id),(d.autoBind||!d.autoBind&&!c)&&e.dataBind(),h(d),e.bindBindingUpdate(d.element.id,function(a){h(d,a)}));break;case"json":case"jsonp":case"xml":case"xhtml":case"script":case"text":case"csv":case"tab":if(null!=b.localdata)return e.unbindBindingUpdate(d.element.id),(d.autoBind||!d.autoBind&&!c)&&e.dataBind(),h(d),void e.bindBindingUpdate(d.element.id,function(){h(d)});var i={};e._options.data?a.extend(e._options.data,i):(b.data&&a.extend(i,b.data),e._options.data=i);var j=function(){h(d)};e.unbindDownloadComplete(d.element.id),e.bindDownloadComplete(d.element.id,j),(d.autoBind||!d.autoBind&&!c)&&e.dataBind()}d._raiseEvent(2,{records:d.records})},destroy:function(){var a=this;a.removeHandler(a._el,"keydown"),a.removeHandler(a._el,"click"),a.host.empty(),a.host.remove()},findTagIndex:function(a){for(var b=this,c=0;c<b.records.length;c++)if(b.records[c][b.displayMember]===a)return b.records[c].index;return-1},getHiddenTagsList:function(){return this.hiddenList.slice()},getRenderedTags:function(){return this.renderedData.slice()},getTagsList:function(){return this.records.slice()},insertAt:function(a,b){var c=this;if(b.index=a,void 0===b[this.displayMember])throw new Error("jqxTagCloud: Insert tag requires a valid displayMember field to be supplied in the parameter");var d=void 0!==b[c.valueMember]?parseFloat(b[c.valueMember]):0;if(b[c.valueMember]=isNaN(d)?0:d,c.source.insertTag&&"function"==typeof c.source.insertTag)c.source.insertTag(a,b,function(d){if(d){c.records.splice(a,0,b);for(var e=a+1;e<c.records.length;e++)c.records[e].index+=1;for(e=0;e<c.hiddenList.length;e++)c.hiddenList[e]>=a&&c.hiddenList[e]++;c._renderTags()}});else{c.records.splice(a,0,b);for(var e=a+1;e<c.records.length;e++)c.records[e].index+=1;for(e=0;e<c.hiddenList.length;e++)c.hiddenList[e]>=a&&c.hiddenList[e]++;c._renderTags()}},updateAt:function(b,c){var d=this;if(void 0===c[this.displayMember])throw new Error("jqxTagCloud: Update tag requires a valid displayMember field to be supplied in the parameter");c.index=b,c.uid=d.records[b].uid,d.source.updateTag&&"function"==typeof d.source.updateTag?d.source.updateTag(b,c,function(e){e&&(a.each(c,function(a,c){d.records[b][a]=c}),d._renderTags())}):(a.each(c,function(a,c){d.records[b][a]=c}),d._renderTags())},removeAt:function(a){var b=this;if(b.source.deleteTag&&"function"==typeof b.source.deleteTag)b.source.deleteTag(a,function(c){if(c){b.records.splice(a,1);for(var d=a;d<b.records.length;d++)b.records[d].index-=1;for(d=0;d<b.hiddenList.length;d++)b.hiddenList[d]>a?b.hiddenList[d]--:b.hiddenList[d]===a&&b.hiddentList.splice(a,1)}});else{b.records.splice(a,1);for(var c=a;c<b.records.length;c++)b.records[c].index-=1;for(c=0;c<b.hiddenList.length;c++)b.hiddenList[c]>a?b.hiddenList[c]--:b.hiddenList[c]===a&&b.hiddentList.splice(a,1)}b._renderTags()},hideItem:function(b){var c=this;if("number"==typeof b&&c.hiddenList.indexOf(b)===-1){c.hiddenList.push(b);for(var d=-1,e=0;e<c.renderedData.length;e++)c.renderedData[e].index===b&&(d=e);d!==-1&&(a(c._el).find("li")[d].style.display="none")}},showItem:function(b){var c=this;if(c.hiddenList.indexOf(b)!==-1){for(var d=-1,e=0;e<c.renderedData.length;e++)c.renderedData[e].index===b&&(d=e);d!==-1&&(a(c._el).find("li")[d].style.display=""),c.hiddenList.splice(c.hiddenList.indexOf(b),1)}},render:function(){var b=this;b._updateSize(),b.renderedData=[],b._el=a("<ul>"),b.host.addClass(b.toThemeProperty("jqx-widget jqx-tag-cloud")),b._setRtl(),b.host.append(b._el),b.focusedItem=null,b.minColor=b._parseColor(b.minColor),b.maxColor=b._parseColor(b.maxColor),b.displayLimit=parseInt(b.displayLimit),b.disabled&&b.host.addClass(b.toThemeProperty("jqx-fill-state-disabled")),b.addHandler(b._el,"click",function(c){a(document.activeElement).parents("#"+b._el[0].parentElement.id).length||(null!=b.focusedItem?a(b.focusedItem).focus():(a(b._el).find("a")[0].focus(),b.focusedItem=document.activeElement)),b.disabled&&c.preventDefault(),"a"===c.target.tagName.toLowerCase()&&(c.target.focus(),b.focusedItem=document.activeElement),"li"===c.target.tagName.toLowerCase()&&(a(c.target).find("a").focus(),b.focusedItem=document.activeElement);var d=a(c.target).closest("li").index();d!==-1&&b._raiseEvent(0,{label:b.renderedData[d][b.displayMember],url:b.renderedData[d][b.urlMember],value:b.renderedData[d][b.valueMember],visibleIndex:d,index:b.renderedData[d].index,target:a(c.target).closest("li")[0],originalEvent:c})}),b._addKeyboardSupport()},resize:function(a,b){var c=this;c.width=a,c.height=b,c._updateSize()},propertyChangedHandler:function(a,b,c,d){var e=this;return"source"===b&&e.dataBind(a.source),"displayLimit"===b&&(e[b]=parseInt(d)),"minColor"!==b&&"maxColor"!==b||(e[b]=e._parseColor(d)),"rtl"===b?void e._setRtl():"width"===b||"height"===b?void e._updateSize():"textColor"!==b||e.minColor&&e.maxColor?void e._renderTags():void e._updateColor()},_alterCase:function(a){function b(a){return a.replace(/\w\S*/g,function(a){return a.charAt(0).toUpperCase()+a.substr(1).toLowerCase()})}var c=this;if("none"!==c.alterTextCase)switch(c.alterTextCase){case"allLower":for(var d=0;d<a.length;d++)a[d][c.displayMember]=a[d][c.displayMember].toString().toLowerCase();break;case"allUpper":for(d=0;d<a.length;d++)a[d][c.displayMember]=a[d][c.displayMember].toString().toUpperCase();break;case"firstUpper":for(d=0;d<a.length;d++)a[d][c.displayMember]=a[d][c.displayMember].toString().toLowerCase(),a[d][c.displayMember]=a[d][c.displayMember].substr(0,1).toUpperCase()+a[d][c.displayMember].substr(1);break;case"titleCase":for(d=0;d<a.length;d++)a[d][c.displayMember]=b(a[d][c.displayMember].toString());break;default:throw new Error("jqxTagCloud: Invalid alterTextCase value. Possible values: 'none', 'allLower', 'allUpper', 'firstUpper', 'titleCase'")}return a},_addKeyboardSupport:function(){var b=this;b.addHandler(b._el,"keydown",function(c){39==c.keyCode&&(a("a:focus").closest("li").next().find("a").focus(),b.focusedItem=document.activeElement),37==c.keyCode&&(a("a:focus").closest("li").prev().find("a").focus(),b.focusedItem=document.activeElement)})},_renderTags:function(){var b=this,c=b.records.slice();if(a.each(b.records,function(a,c){if(void 0===c[b.displayMember])throw new Error("jqxTagCloud: 'label' property must be specified for every element.")}),c=b._filter(c),c=b._sort(c),c=b._alterCase(c),b._el.empty(),0!==c.length){for(var d=b._getMaxValue(c),e=b._getMinValue(c),f=d-e,g=0;g<c.length;g++){var h=b._prepareTag(c[g],e,f);b._el.append(h),b.hiddenList.indexOf(c[g].index)!=-1&&(h[0].style.display="none")}b.renderedData=c,b.focusedItem=null}},_prepareTag:function(b,c,d){var e=this;d||(d=1);var f=a("<li>"),g="";g=null!==e.tagRenderer&&"function"==typeof e.tagRenderer?e.tagRenderer.apply(e,arguments):b[e.displayMember]+(e.displayValue?"("+b[e.valueMember]+")":""),g=a('<a rel="tag">').append(g);var h="javascript:void(0)";void 0!==b[e.urlMember]&&(h=(null!=e.urlBase?e.urlBase:"")+b[e.urlMember]),g.attr("href",h),f.append(g),f.addClass(e.toThemeProperty("jqx-tag-cloud-item"));var i=+e.minFontSize+(e.maxFontSize-e.minFontSize)*((b[e.valueMember]-c)/d);if(f[0].style.fontSize=i+e.fontSizeUnit,e.minColor&&e.maxColor){var j=e.minColor.split("(")[1].split(")")[0];j=j.split(",");var k=parseInt(j[0]),l=parseInt(j[1]),m=parseInt(j[2]),n=parseFloat(j[3]);j=e.maxColor.split("(")[1].split(")")[0],j=j.split(",");var o=parseInt(j[0]),p=parseInt(j[1]),q=parseInt(j[2]),r=parseFloat(j[3]);k+=Math.floor((b[e.valueMember]-c)/d*(o-k)),l+=Math.floor((b[e.valueMember]-c)/d*(p-l)),m+=Math.floor((b[e.valueMember]-c)/d*(q-m)),n+=(b[e.valueMember]-c)/d*(r-n),f[0].style.color="rgba("+k+","+l+","+m+","+n+")",f.find("a")[0].style.color="inherit"}else null!==e.textColor&&(f[0].style.color=e.textColor,f.find("a")[0].style.color="inherit");return f},_parseColor:function(b){function c(a){var b={aliceblue:"#f0f8ff",antiquewhite:"#faebd7",aqua:"#00ffff",aquamarine:"#7fffd4",azure:"#f0ffff",beige:"#f5f5dc",bisque:"#ffe4c4",black:"#000000",blanchedalmond:"#ffebcd",blue:"#0000ff",blueviolet:"#8a2be2",brown:"#a52a2a",burlywood:"#deb887",cadetblue:"#5f9ea0",chartreuse:"#7fff00",chocolate:"#d2691e",coral:"#ff7f50",cornflowerblue:"#6495ed",cornsilk:"#fff8dc",crimson:"#dc143c",cyan:"#00ffff",darkblue:"#00008b",darkcyan:"#008b8b",darkgoldenrod:"#b8860b",darkgray:"#a9a9a9",darkgreen:"#006400",darkkhaki:"#bdb76b",darkmagenta:"#8b008b",darkolivegreen:"#556b2f",darkorange:"#ff8c00",darkorchid:"#9932cc",darkred:"#8b0000",darksalmon:"#e9967a",darkseagreen:"#8fbc8f",darkslateblue:"#483d8b",darkslategray:"#2f4f4f",darkturquoise:"#00ced1",darkviolet:"#9400d3",deeppink:"#ff1493",deepskyblue:"#00bfff",dimgray:"#696969",dodgerblue:"#1e90ff",firebrick:"#b22222",floralwhite:"#fffaf0",forestgreen:"#228b22",fuchsia:"#ff00ff",gainsboro:"#dcdcdc",ghostwhite:"#f8f8ff",gold:"#ffd700",goldenrod:"#daa520",gray:"#808080",green:"#008000",greenyellow:"#adff2f",honeydew:"#f0fff0",hotpink:"#ff69b4","indianred ":"#cd5c5c",indigo:"#4b0082",ivory:"#fffff0",khaki:"#f0e68c",lavender:"#e6e6fa",lavenderblush:"#fff0f5",lawngreen:"#7cfc00",lemonchiffon:"#fffacd",lightblue:"#add8e6",lightcoral:"#f08080",lightcyan:"#e0ffff",lightgoldenrodyellow:"#fafad2",lightgrey:"#d3d3d3",lightgreen:"#90ee90",lightpink:"#ffb6c1",lightsalmon:"#ffa07a",lightseagreen:"#20b2aa",lightskyblue:"#87cefa",lightslategray:"#778899",lightsteelblue:"#b0c4de",lightyellow:"#ffffe0",lime:"#00ff00",limegreen:"#32cd32",linen:"#faf0e6",magenta:"#ff00ff",maroon:"#800000",mediumaquamarine:"#66cdaa",mediumblue:"#0000cd",mediumorchid:"#ba55d3",mediumpurple:"#9370d8",mediumseagreen:"#3cb371",mediumslateblue:"#7b68ee",mediumspringgreen:"#00fa9a",mediumturquoise:"#48d1cc",mediumvioletred:"#c71585",midnightblue:"#191970",mintcream:"#f5fffa",mistyrose:"#ffe4e1",moccasin:"#ffe4b5",navajowhite:"#ffdead",navy:"#000080",oldlace:"#fdf5e6",olive:"#808000",olivedrab:"#6b8e23",orange:"#ffa500",orangered:"#ff4500",orchid:"#da70d6",palegoldenrod:"#eee8aa",palegreen:"#98fb98",paleturquoise:"#afeeee",palevioletred:"#d87093",papayawhip:"#ffefd5",peachpuff:"#ffdab9",peru:"#cd853f",pink:"#ffc0cb",plum:"#dda0dd",powderblue:"#b0e0e6",purple:"#800080",red:"#ff0000",rosybrown:"#bc8f8f",royalblue:"#4169e1",saddlebrown:"#8b4513",salmon:"#fa8072",sandybrown:"#f4a460",seagreen:"#2e8b57",seashell:"#fff5ee",sienna:"#a0522d",silver:"#c0c0c0",skyblue:"#87ceeb",slateblue:"#6a5acd",slategray:"#708090",snow:"#fffafa",springgreen:"#00ff7f",steelblue:"#4682b4",tan:"#d2b48c",teal:"#008080",thistle:"#d8bfd8",tomato:"#ff6347",turquoise:"#40e0d0",violet:"#ee82ee",wheat:"#f5deb3",white:"#ffffff",whitesmoke:"#f5f5f5",yellow:"#ffff00",yellowgreen:"#9acd32"};return"undefined"!=typeof b[a.toLowerCase()]&&b[a.toLowerCase()]}var d=a("<span>").css("color",b);b=d.css("color");var e,f,g;if("rgba"===b.substr(0,4))return b;if("rgb"===b.substr(0,3)){var h=b.split("(")[1].split(")")[0];return h=h.split(","),e=parseInt(h[0]),f=parseInt(h[1]),g=parseInt(h[2]),"rgba("+e+","+f+","+g+",1)"}return"#"===b.substr(0,1)&&7===b.length?(e=parseInt(b.substr(1,2),16),f=parseInt(b.substr(3,2),16),g=parseInt(b.substr(5,2),16),"rgba("+e+","+f+","+g+",1)"):"#"===b.substr(0,1)&&4===b.length?(e=parseInt(b.substr(1,1)+b.substr(1,1),16),f=parseInt(b.substr(2,1)+b.substr(2,1),16),g=parseInt(b.substr(3,1)+b.substr(3,1),16),"rgba("+e+","+f+","+g+",1)"):(b=c(b))?(e=parseInt(b.substr(1,2),16),f=parseInt(b.substr(3,2),16),g=parseInt(b.substr(5,2),16),"rgba("+e+","+f+","+g+",1)"):b},_events:["itemClick","bindingUpdateComplete","bindingComplete"],_raiseEvent:function(b,c){var d=this._events[b],e=a.Event(d);return e.args=c,this.host.trigger(e)},_filter:function(a){var b=this;if(0!=b.minValueToDisplay)for(var c=0;c<a.length;)a[c][b.valueMember]<b.minValueToDisplay?a.splice(c,1):c++;if(0!=b.maxValueToDisplay)for(var c=0;c<a.length;)a[c][b.valueMember]>b.maxValueToDisplay?a.splice(c,1):c++;return null==b.displayLimit||isNaN(b.displayLimit)||(b.takeTopWeightedItems===!0?(a.sort(function(a,c){return a[b.valueMember]<c[b.valueMember]?1:a[b.valueMember]>c[b.valueMember]?-1:0}),a=a.slice(0,b.displayLimit),a.sort(function(a,b){return a.index<b.index?-1:a.index>b.index?1:0})):a=a.slice(0,b.displayLimit)),a},_sort:function(a){var b=this;if("none"!==b.sortBy){if("label"===b.sortBy)a.sort(function(a,c){return a[b.displayMember]<c[b.displayMember]?-1:a[b.displayMember]>c[b.displayMember]?1:0});else{if("value"!==b.sortBy)throw new Error("jqxTagCloud: sortBy option needs to be either 'none' or 'label' or 'value'");a.sort(function(a,c){return a[b.valueMember]<c[b.valueMember]?-1:a[b.valueMember]>c[b.valueMember]?1:0})}if("ascending"===b.sortOrder)return a;if("descending"===b.sortOrder)return a.reverse();throw new Error("jqxTagCloud: sortOrder option needs to be either 'ascending' or 'descending'")}return a},_getMaxValue:function(a){for(var b=this,c=a[0][b.valueMember],d=0;d<a.length;d++)c<a[d][b.valueMember]&&(c=a[d][b.valueMember]);return c},_getMinValue:function(a){for(var b=this,c=a[0][b.valueMember],d=0;d<a.length;d++)c>a[d][b.valueMember]&&(c=a[d][b.valueMember]);return c},_setSourceData:function(a){var b=this;b.records=a.records;for(var c=0;c<b.records.length;c++){var d=void 0!==b.records[c][b.valueMember]?parseFloat(b.records[c][b.valueMember]):0;b.records[c][b.valueMember]=isNaN(d)?0:d,b.records[c].index=c}b.hiddenList=[]},_updateColor:function(){var b=this;b.textColor&&a(b._el).find("li").css("color",b.textColor)},_updateSize:function(){var a=this;a.width&&a.host.width(a.width),a.height&&a.host.height(a.height)},_setRtl:function(){var a=this;a.rtl?a.host.addClass(a.toThemeProperty("jqx-rtl")):a.host.removeClass(a.toThemeProperty("jqx-rtl"))}})}(jqxBaseFramework);

mercurial