@progress/kendo-ui
Version:
This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.
3 lines • 4.6 kB
JavaScript
/* @license */
(function(e,t){typeof exports==`object`&&typeof module<`u`?t(exports,require(`kendo.html.base.min.js`)):typeof define==`function`&&define.amd?define([`exports`,`kendo.html.base.min`],t):(e=typeof globalThis<`u`?globalThis:e||self,t((e.kendo=e.kendo||{},e.kendo._globals=e.kendo._globals||{},e.kendo._globals.HtmlIcon={}),e.kendo._globals.HtmlBase))})(this,function(e,t){Object.defineProperties(e,{__esModule:{value:!0},[Symbol.toStringTag]:{value:`Module`}});let n={id:`html.icon`,name:`Html.Icon`,category:`web`,description:`HTML font icon rendering utility for Kendo UI for jQuery.`,depends:[`html.base`]};(function(e,t){let n=window.kendo,r=e.extend,i=n.html.HTMLBase,a=`k-i-`,o=`k-svg-i-`,s=`k-flip-`,c=`${s}h`,l=`${s}v`,u={svg:(e,t)=>new _(e,t),font:(e,t)=>new g(e,t)},d={default:``,horizontal:c,vertical:l,both:`${c} ${l}`},f=[`solid`,`outline`,`duotone`],p=function(t,r){if((!t||e.isPlainObject(t)||n.isString(t))&&(r=t,t=e(`<span></span>`)),n.isString(r)){let e=r.split(`:`),t={icon:e[0]};e.length>1&&f.indexOf(e[1])>-1&&(t.variant=e[1]),r=t}return n.isPresent(r.type)||(r.type=n.defaults.iconType?n.defaults.iconType:`svg`),n.isFunction(r.type)?r.type(t,r):n.isFunction(u[r.type])?u[r.type](t,r).html():null};function m(e){let t=/^(area|base|br|col|embed|hr|img|input|link|meta|param|source|track|wbr)$/i;return e.replace(/<([a-z][a-z0-9:-]*)([^>]*)\/>/gi,(e,n,r)=>t.test(n)?`<${n}${r}/>`:`<${n}${r}></${n}>`)}let h=i.extend({init:function(e,t){let n=this;i.fn.init.call(n,e,t),n._wrapper()},options:{name:`HTMLIcon`,size:`none`,themeColor:`none`,flip:`default`,iconClass:``,stylingOptions:[`size`,`themeColor`,`fill`]},_wrapper:function(){this._addClasses()},_addClasses:function(){var e=this,t=e.options,r=t.stylingOptions,i=e.wrapper.data(`added-classes`);r=r.map(function(e){return e===`themeColor`?n.cssProperties.getValidClass({widget:t.name,propName:e,value:t[e],prefix:`k-color-`}):e===`fill`?d[t.flip]:n.cssProperties.getValidClass({widget:t.name,propName:e,value:t[e],fill:t.fillMode})}),i&&e.wrapper.removeClass(i.filter(t=>t!==e._className).join(` `)),e.wrapper.data(`added-classes`,r.concat([e._className])),e.wrapper.addClass(r.join(` `))}}),g=h.extend({init:function(e,t){h.fn.init.call(this,e,t)},options:r({},h.fn.options,{name:`HTMLFontIcon`,icon:null}),_wrapper:function(){var e=this,t=e.element[0].className.split(` `).find(e=>e.includes(a)),n=e.options.icon?`${e.options.icon.startsWith(a)?``:a}${e.options.icon}`:``;e._className=n,e.wrapper=e.element.addClass(`k-icon k-font-icon`).removeClass(t).addClass(n).addClass(e.options.iconClass||``),h.fn._wrapper.call(this)}});var _=h.extend({init:function(e,t){e.empty(),h.fn.init.call(this,e,t)},options:r({},h.fn.options,{name:`HTMLSVGIcon`,icon:null,variant:null}),_wrapper:function(){let t=this,r=t.options.icon,i=t.options.iconClass,a=t.element[0].className.split(` `).find(e=>e.includes(o)),s=e(`<svg></svg>`),c;if(!r&&i){let e=i.match(/k-i-(\w+(?:-\w+)*)/);e&&(r=e[1],i=i.replace(e[0],``))}if(n.isString(r)){let e=r.replace(`k-i-`,``),i=e.match(/-(solid|outline|duotone)$/);i&&(e=e.replace(i[0],``),t.options.variant||(t.options.variant=i[1]));let a=e.replace(/-(solid|outline|duotone)/,``).replace(/-./g,e=>e[1].toUpperCase());r=n.ui.svgIcons[a]||n.ui.svgIcons[`${a}Icon`]}if(c=r&&r.name?`${o}${r.name}`:``,t._className=c,t.wrapper=t.element.addClass(`k-icon k-svg-icon`).removeClass(a).addClass(c).addClass(i||``),e.isPlainObject(r)){let e=r.content||``,n=t.options.variant;n&&r.variants&&r.variants[n]&&(e=r.variants[n]),s.attr(`viewBox`,r.viewBox||``).attr({viewBox:r.viewBox||``,focusable:`false`,xmlns:`http://www.w3.org/2000/svg`}).html(m(e)),t.wrapper.append(s[0].outerHTML)}h.fn._wrapper.call(this)}});e.extend(n.html,{renderIcon:p,HTMLFontIcon:g,HTMLSvgIcon:_,getIconRenderer:e=>u[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`,`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`,`inverse`]}])})(window.kendo.jQuery);var r=kendo;e.__meta__=n,e.default=r});
//# sourceMappingURL=kendo.html.icon.min.js.map