@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
3 lines (2 loc) • 3.99 kB
JavaScript
!function(e,n){"object"==typeof exports&&"undefined"!=typeof module?n(exports,require("kendo.html.base.js")):"function"==typeof define&&define.amd?define(["exports","kendo.html.base"],n):n(((e="undefined"!=typeof globalThis?globalThis:e||self).kendo=e.kendo||{},e.kendo._globals=e.kendo._globals||{},e.kendo._globals.HtmlIcon={}))}(this,(function(e){!function(e){var n=window.kendo,s=e.extend,i=n.html.HTMLBase,o="k-i-",t="k-svg-i-",a="k-flip-",r=`${a}h`,l=`${a}v`,c={svg:(e,n)=>new u(e,n),font:(e,n)=>new f(e,n)},p={default:"",horizontal:r,vertical:l,both:`${r} ${l}`},d=i.extend({init:function(e,n){i.fn.init.call(this,e,n),this._wrapper()},options:{name:"HTMLIcon",size:"none",themeColor:"none",flip:"default",iconClass:"",stylingOptions:["size","themeColor","fill"]},_wrapper:function(){this._addClasses()},_addClasses:function(){var e=this,s=e.options,i=s.stylingOptions,o=e.wrapper.data("added-classes");i=i.map((function(e){return"themeColor"===e?n.cssProperties.getValidClass({widget:s.name,propName:e,value:s[e],prefix:"k-color-"}):"fill"===e?p[s.flip]:n.cssProperties.getValidClass({widget:s.name,propName:e,value:s[e],fill:s.fillMode})})),o&&e.wrapper.removeClass(o.filter((n=>n!==e._className)).join(" ")),e.wrapper.data("added-classes",i.concat([e._className])),e.wrapper.addClass(i.join(" "))}}),f=d.extend({init:function(e,n){d.fn.init.call(this,e,n)},options:s({},d.fn.options,{name:"HTMLFontIcon",icon:null}),_wrapper:function(){var e=this,n=e.element[0].className.split(" ").find((e=>e.includes(o))),s=e.options.icon?`${e.options.icon.startsWith(o)?"":o}${e.options.icon}`:"";e._className=s,e.wrapper=e.element.addClass("k-icon k-font-icon").removeClass(n).addClass(s).addClass(e.options.iconClass||""),d.fn._wrapper.call(this)}}),u=d.extend({init:function(e,n){e.empty(),d.fn.init.call(this,e,n)},options:s({},d.fn.options,{name:"HTMLSVGIcon",icon:null}),_wrapper:function(){var s,i=this,o=i.options.icon,a=i.options.iconClass,r=i.element[0].className.split(" ").find((e=>e.includes(t))),l=e("<svg></svg>");if(!o&&a){const e=/k-i-(\w+(?:-\w+)*)/;let n=a.match(e);n&&(o=n[1],a=a.replace(n[0],""))}n.isString(o)&&(o=o.replace("k-i-","").replace(/-./g,(e=>e[1].toUpperCase())),o=n.ui.svgIcons[o]||n.ui.svgIcons[`${o}Icon`]),s=o&&o.name?`${t}${o.name}`:"",i._className=s,i.wrapper=i.element.addClass("k-icon k-svg-icon").removeClass(r).addClass(s).addClass(a||""),e.isPlainObject(o)&&(l.attr("viewBox",o.viewBox||"").attr({viewBox:o.viewBox||"",focusable:"false",xmlns:"http://www.w3.org/2000/svg"}).html(o.content||""),i.wrapper.append(l[0].outerHTML)),d.fn._wrapper.call(this)}});e.extend(n.html,{renderIcon:function(s,i){return(!s||e.isPlainObject(s)||n.isString(s))&&(i=s,s=e("<span></span>")),n.isString(i)&&(i={icon:i}),n.isPresent(i.type)||(i.type=n.defaults.iconType?n.defaults.iconType:"svg"),n.isFunction(i.type)?i.type(s,i):n.isFunction(c[i.type])?c[i.type](s,i).html():null},HTMLFontIcon:f,HTMLSvgIcon:u,getIconRenderer:e=>c[e]}),n.cssProperties.registerPrefix("HTMLFontIcon","k-icon-"),n.cssProperties.registerValues("HTMLFontIcon",[{prop:"size",values:n.cssProperties.sizeValues.concat([["xsmall","xs"],["xlarge","xl"],["xxlarge","xxl"],["xxxlarge","xxxl"]])},{prop:"themeColor",values:["primary","secondary","tertiary","inherit","info","success","warning","error","dark","light","inverse"]}]),n.cssProperties.registerPrefix("HTMLSVGIcon","k-icon-"),n.cssProperties.registerValues("HTMLSVGIcon",[{prop:"size",values:n.cssProperties.sizeValues.concat([["xsmall","xs"],["xlarge","xl"],["xxlarge","xxl"],["xxxlarge","xxxl"]])},{prop:"themeColor",values:["primary","secondary","tertiary","inherit","info","success","warning","error","dark","light","inverse"]}])}(window.kendo.jQuery);var n=kendo;e.__meta__={id:"html.icon",name:"Html.Icon",category:"web",description:"HTML font icon rendering utility for Kendo UI for jQuery.",depends:["html.base"]},e.default=n,Object.defineProperty(e,"__esModule",{value:!0})}));
//# sourceMappingURL=kendo.html.icon.min.js.map