{"version":3,"file":"kendo.html.icon.min.js","names":["global","factory","exports","module","require","define","amd","globalThis","self","kendohtml","icon","js","this","$","undefined$1","kendo","window","extend","HTMLBase","html","KI_PREFFIX","KSVG_PREFFIX","FLIP_HORIZONTAL","FLIP_PREFIX","FLIP_VERTICAL","ICON_TYPES","svg","element","options","HTMLSvgIcon","font","HTMLFontIcon","FLIP_CLASSES","default","horizontal","vertical","both","HTMLBaseIcon","init","fn","call","_wrapper","name","size","themeColor","flip","iconClass","stylingOptions","_addClasses","that","previouslyAddedClasses","wrapper","data","map","option","cssProperties","getValidClass","widget","propName","value","prefix","fill","fillMode","removeClass","filter","x","_className","join","concat","addClass","currentIconClass","className","split","find","includes","startsWith","empty","svgElm","iconNameMatch","match","replace","isString","toUpperCase","ui","svgIcons","attr","isPlainObject","viewBox","focusable","xmlns","content","append","outerHTML","renderIcon","isPresent","type","defaults","iconType","isFunction","getIconRenderer","registerPrefix","registerValues","prop","values","sizeValues","jQuery"],"sources":["kendo.html.icon.js"],"mappings":"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","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('kendo.html.base.js')) :\n typeof define === 'function' && define.amd ? define(['kendo.html.base'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (global.kendohtml = global.kendohtml || {}, global.kendohtml.icon = global.kendohtml.icon || {}, global.kendohtml.icon.js = factory()));\n})(this, (function () {\n var __meta__ = {\n id: \"html.icon\",\n name: \"Html.Icon\",\n category: \"web\",\n description: \"HTML font icon rendering utility for Kendo UI for jQuery.\",\n depends: [\"html.base\"]\n };\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n extend = $.extend,\n HTMLBase = kendo.html.HTMLBase;\n\n var KICON = 'k-icon';\n var KI_PREFFIX = 'k-i-';\n var KSVGICON = 'k-svg-icon';\n var KSVG_PREFFIX = 'k-svg-i-';\n\n var FLIP_PREFIX = 'k-flip-';\n var FLIP_HORIZONTAL = FLIP_PREFIX + \"h\";\n var FLIP_VERTICAL = FLIP_PREFIX + \"v\";\n\n var THEME_COLOR_PREFIX = 'k-color-';\n\n var ICON_TYPES = {\n 'svg': function (element, options) { return new HTMLSvgIcon(element, options); },\n 'font': function (element, options) { return new HTMLFontIcon(element, options); }\n };\n\n var FLIP_CLASSES = {\n default: '',\n horizontal: FLIP_HORIZONTAL,\n vertical: FLIP_VERTICAL,\n both: (FLIP_HORIZONTAL + \" \" + FLIP_VERTICAL)\n };\n\n var renderIcon = function(element, options) {\n if (!element || $.isPlainObject(element) || kendo.isString(element)) {\n options = element;\n element = $(\"\");\n }\n\n if (kendo.isString(options)) {\n options = {\n icon: options\n };\n }\n\n if (!kendo.isPresent(options.type)) {\n options.type = kendo.defaults.iconType ? kendo.defaults.iconType : 'svg';\n }\n\n if (kendo.isFunction(options.type)) {\n return options.type(element, options);\n }\n\n if (!kendo.isFunction(ICON_TYPES[options.type])) {\n return null;\n }\n\n return (ICON_TYPES[options.type](element, options)).html();\n };\n\n var HTMLBaseIcon = HTMLBase.extend({\n init: function(element, options) {\n var that = this;\n HTMLBase.fn.init.call(that, element, options);\n that._wrapper();\n },\n options: {\n name: 'HTMLIcon',\n size: 'none',\n themeColor: 'none',\n flip: 'default',\n iconClass: '',\n stylingOptions: [ 'size', 'themeColor', 'fill' ]\n },\n _wrapper: function() {\n var that = this;\n\n that._addClasses();\n },\n _addClasses: function() {\n var that = this,\n options = that.options,\n stylingOptions = options.stylingOptions,\n previouslyAddedClasses = that.wrapper.data(\"added-classes\");\n\n stylingOptions = stylingOptions.map(function(option) {\n if (option === 'themeColor') {\n return kendo.cssProperties.getValidClass({\n widget: options.name,\n propName: option,\n value: options[option],\n prefix: THEME_COLOR_PREFIX\n });\n }\n\n if (option === 'fill') {\n return FLIP_CLASSES[options.flip];\n }\n\n return kendo.cssProperties.getValidClass({\n widget: options.name,\n propName: option,\n value: options[option],\n fill: options.fillMode\n });\n });\n\n if (previouslyAddedClasses) {\n that.wrapper.removeClass(previouslyAddedClasses.filter(function (x) { return x !== that._className; }).join(\" \"));\n }\n\n that.wrapper.data(\"added-classes\", stylingOptions.concat([that._className]));\n that.wrapper.addClass(stylingOptions.join(\" \"));\n }\n });\n\n var HTMLFontIcon = HTMLBaseIcon.extend({\n init: function(element, options) {\n HTMLBaseIcon.fn.init.call(this, element, options);\n },\n options: extend({}, HTMLBaseIcon.fn.options, {\n name: 'HTMLFontIcon',\n icon: null\n }),\n _wrapper: function() {\n var that = this,\n // Find if there is an existing k-i- class appended to the element.\n currentIconClass = that.element[0].className.split(\" \").find(function (x) { return x.includes(KI_PREFFIX); }),\n className = that.options.icon ? (\"\" + (that.options.icon.startsWith(KI_PREFFIX) ? \"\" : KI_PREFFIX) + (that.options.icon)) : \"\";\n\n that._className = className;\n that.wrapper = that.element\n .addClass(KICON)\n .removeClass(currentIconClass) // Remove any existing icons.\n .addClass(className)\n .addClass(that.options.iconClass || '');\n\n HTMLBaseIcon.fn._wrapper.call(this);\n }\n });\n\n var HTMLSvgIcon = HTMLBaseIcon.extend({\n init: function(element, options) {\n // Ensure that the inner contents of the wrapping span element are always removed for re-rendering purposes.\n element.empty();\n HTMLBaseIcon.fn.init.call(this, element, options);\n },\n options: extend({}, HTMLBaseIcon.fn.options, {\n name: 'HTMLSVGIcon',\n icon: null\n }),\n _wrapper: function() {\n var that = this,\n icon = that.options.icon,\n iconClass = that.options.iconClass,\n // Find if there is an existing k-svg-i- class appended to the element.\n currentIconClass = that.element[0].className.split(\" \").find(function (x) { return x.includes(KSVG_PREFFIX); }),\n svgElm = $(''),\n className;\n\n if (!icon && iconClass) {\n // match k-i-(some-icon-name)\n var regex = /k-i-(\\w+(?:-\\w+)*)/;\n var iconNameMatch = iconClass.match(regex);\n if (iconNameMatch) {\n icon = iconNameMatch[1];\n iconClass = iconClass.replace(iconNameMatch[0], \"\");\n }\n }\n\n if (kendo.isString(icon)) {\n // remove k-i- and convert kebab-case-icon to camelCaseIcon\n icon = icon.replace('k-i-', '').replace(/-./g, function (x){ return x[1].toUpperCase(); });\n icon = kendo.ui.svgIcons[icon] || kendo.ui.svgIcons[(icon + \"Icon\")];\n }\n\n className = icon && icon.name ? (\"\" + KSVG_PREFFIX + (icon.name)) : '';\n that._className = className;\n\n that.wrapper = that.element\n .addClass(KSVGICON)\n .removeClass(currentIconClass) // Remove any existing icons.\n .addClass(className)\n .addClass(iconClass || '')\n .attr(\"aria-hidden\", true);\n\n if ($.isPlainObject(icon)) {\n svgElm.attr('viewBox', icon.viewBox || '')\n .attr({\n 'viewBox': icon.viewBox || '',\n 'focusable': 'false',\n 'xmlns': 'http://www.w3.org/2000/svg'\n })\n .html(icon.content || '');\n\n that.wrapper.append(svgElm[0].outerHTML);\n }\n\n HTMLBaseIcon.fn._wrapper.call(this);\n }\n });\n\n $.extend(kendo.html, {\n renderIcon: renderIcon,\n HTMLFontIcon: HTMLFontIcon,\n HTMLSvgIcon: HTMLSvgIcon,\n getIconRenderer: function (type) { return ICON_TYPES[type]; }\n });\n\n kendo.cssProperties.registerPrefix(\"HTMLFontIcon\", \"k-icon-\");\n\n kendo.cssProperties.registerValues(\"HTMLFontIcon\", [{\n prop: \"size\",\n values: kendo.cssProperties.sizeValues.concat([['xsmall', 'xs'], ['xlarge', 'xl'], ['xxlarge', 'xxl'], ['xxxlarge', 'xxxl']])\n }, {\n prop: \"themeColor\",\n values: ['primary', 'secondary', 'tertiary', 'inherit', 'info', 'success', 'warning', 'error', 'dark', 'light', 'inverse']\n }]);\n\n kendo.cssProperties.registerPrefix(\"HTMLSVGIcon\", \"k-icon-\");\n\n kendo.cssProperties.registerValues(\"HTMLSVGIcon\", [{\n prop: \"size\",\n values: kendo.cssProperties.sizeValues.concat([['xsmall', 'xs'], ['xlarge', 'xl'], ['xxlarge', 'xxl'], ['xxxlarge', 'xxxl']])\n }, {\n prop: \"themeColor\",\n values: ['primary', 'secondary', 'tertiary', 'inherit', 'info', 'success', 'warning', 'error', 'dark', 'light', 'inverse']\n }]);\n })(window.kendo.jQuery);\n var kendo$1 = kendo;\n\n return kendo$1;\n\n}));\n"]}