{"version":3,"file":"kendo.skeletoncontainer.min.js","names":["factory","define","amd","$","kendo","ui","Widget","SkeletonContainer","window","jQuery","extend","init","element","options","that","this","fn","call","cssNumber","gridColumnStart","gridColumnEnd","gridRowStart","gridRowEnd","addClass","_setWrapperStyles","_initItems","_initTemplate","_aria","name","animation","grid","template","height","width","setOptions","deepExtend","empty","getOptions","attr","role","progress","messages","loading","shape","settings","item","items","i","length","toLowerCase","css","format","colStart","colSpan","rowStart","rowSpan","appendTo","replace","append","_addClasses","shapes","animations","find","removeAttr","j","columns","rows","gap","plugin"],"sources":["kendo.skeletoncontainer.js"],"mappings":"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","sourcesContent":["(function (factory) {\n typeof define === 'function' && define.amd ? define(['kendo.core'], factory) :\n factory();\n})((function () {\n var __meta__ = {\n id: \"skeletoncontainer\",\n name: \"SkeletonContainer\",\n category: \"web\",\n depends: [ \"core\"]\n };\n\n (function($) {\n var kendo = window.kendo,\n ui = kendo.ui,\n Widget = ui.Widget,\n WAVE_ANIMATION = \"k-skeleton-wave\",\n PULSE_ANIMATION = \"k-skeleton-pulse\",\n WRAPPER_CLASS = \"k-skeleton-container\";\n\n var SkeletonContainer = Widget.extend( {\n init: function(element, options) {\n var that = this;\n\n Widget.fn.init.call(that, element, options);\n\n $.cssNumber.gridColumnStart = true;\n $.cssNumber.gridColumnEnd = true;\n $.cssNumber.gridRowStart = true;\n $.cssNumber.gridRowEnd = true;\n\n that.element = $(element).addClass(WRAPPER_CLASS);\n\n that._setWrapperStyles();\n that._initItems();\n that._initTemplate();\n that._aria();\n },\n\n options: {\n name: \"SkeletonContainer\",\n animation: \"pulse\",\n grid: null,\n template: null,\n height: \"\",\n width: \"\"\n },\n\n setOptions: function(options) {\n kendo.deepExtend(this.options, options);\n this.element.empty();\n this.init(this.element, this.options);\n },\n\n getOptions: function() {\n var result = $.extend(true, {}, this.options);\n\n return result;\n },\n\n _aria: function() {\n var element = this.element;\n\n element.attr({\n \"role\": \"alert\",\n \"aria-live\": \"polite\",\n \"aria-label\": kendo.ui.progress.messages.loading\n });\n },\n\n _initItems: function() {\n if (!this.options.grid) {\n return;\n }\n\n var that = this;\n var grid = that.options.grid;\n var items = grid.items;\n var shape;\n var settings;\n var item;\n\n for (var i = 0; i < items.length; i++) {\n settings = items[i];\n item = $(\"
\");\n\n shape = settings.shape.toLowerCase();\n\n item\n .css({\n \"grid-column\": kendo.format(\"{0} / span {1}\",settings.colStart, settings.colSpan),\n \"grid-row\": kendo.format(\"{0} / span {1}\",settings.rowStart, settings.rowSpan)\n })\n \t\t\t\t\t.addClass(\"k-skeleton\")\n .addClass(kendo.format(\"k-skeleton-{0}\", shape === \"rectangle\" ? \"rect\" : shape));\n\n item.appendTo(that.element);\n }\n },\n\n _initTemplate: function() {\n if (!this.options.template || this.options.grid) {\n return;\n }\n\n var template = kendo.template(this.options.template)({});\n\n template = template\n .replace(/data-animation/gi, \"k-skeleton\")\n .replace(/data-shape/gi, \"k-skeleton\")\n .replace(/k-skeleton-rectangle/gi, \"k-skeleton-rect\");\n\n this.element.append(template);\n\n this._addClasses();\n },\n\n _addClasses: function() {\n var shapes = [\"circle\", \"rect\", \"text\"];\n var animations = [\"wave\", \"pulse\"];\n\n for (var i = 0; i < shapes.length; i++) {\n this.element\n .find(\"[k-skeleton-\" + shapes[i] + \"]\")\n .removeAttr(\"k-skeleton-\" + shapes[i])\n .addClass(\"k-skeleton k-skeleton-\" + shapes[i] + \"\");\n }\n\n for (var j = 0; j < animations.length; j++) {\n this.element\n .find(\"[k-skeleton-\" + animations[j] + \"]\")\n .removeAttr(\"k-skeleton-\" + animations[j])\n .addClass(\"k-skeleton-\" + animations[j] + \"\");\n }\n },\n\n _setWrapperStyles: function() {\n var that = this;\n var options = that.options;\n var grid = options.grid;\n var animation = options.animation.toLowerCase();\n\n if (grid) {\n that.element\n .css({\n \"grid-template-columns\": kendo.format(\"repeat({0}, 1fr)\", grid.columns),\n \"grid-template-rows\": kendo.format(\"repeat({0}, 1fr)\", grid.rows),\n \"column-gap\": (grid.gap || {}).columns,\n \"row-gap\": (grid.gap || {}).rows\n })\n .addClass(\"k-d-grid\");\n }\n\n that.element.css({\n \"width\": typeof options.width === \"string\" ? options.width : options.width + \"px\",\n \"height\": typeof options.height === \"string\" ? options.height : options.height + \"px\"\n });\n\n if (animation !== \"none\") {\n that.element.addClass(animation == \"wave\" ? WAVE_ANIMATION : PULSE_ANIMATION);\n }\n }\n });\n\n ui.plugin(SkeletonContainer);\n\n })(window.kendo.jQuery);\n\n}));\n"]}