{"version":3,"file":"kendo.rating.min.js","names":["global","factory","exports","module","require","define","amd","globalThis","self","kendorating","js","this","$","undefined$1","kendo","window","ui","encode","htmlEncode","NS","Widget","extend","keys","parseFloat","CHANGE","SELECT","SELECTED","HOVERED","DISABLED","READONLY","ARIA_LABEL","ARIA_LABELLEDBY","ARIA_VALUENOW","ARIA_DISABLED","ARIA_READONLY","PRECISION_PART","PRECISION_COMPLEMENT","PRECISION_HALF_VALUE","KITEM","FOCUSED","TABINDEX","DOT","MIN","MAX","ratingSelection","ratingPrecision","ratingItemTemplates","item","hovered","selected","ratingItemStates","hoveredPrecise","ratingItemAttributes","ratingStyles","widget","container","icon","iconSelected","label","disabled","readonly","active","hidden","RATING_LABEL_TEMPLATE","ref","value","maxValue","RATING_ITEM_TEMPLATE","size","Rating","init","element","options","that","fn","call","_element","_wrapper","_aria","_initSettings","_renderItems","_renderTooltip","_renderLabel","_selectInitial","_attachEvents","notify","events","name","messages","min","max","selection","precision","tooltip","enabled","selectValueOnFocus","itemTemplate","selectedTemplate","hoveredTemplate","addClass","styles","wrapper","wrap","parent","className","replace","append","RATING_CONTAINER_TEMPLATE","style","cssText","find","id","attr","labelFor","ariaLabel","ariaLabelledBy","length","labelId","guid","isPrecise","val","_valueMin","_setState","template","i","itemWrapper","index","items","data","removeAttr","remove","html","_format","isNaN","isHalfPrecision","on","_focus","bind","_blur","_keydown","_click","_mouseenter","_mouseleave","_mousedown","_mousemove","selectedElement","hoveredElement","itemToFocus","focusedItems","firstElement","children","first","preventFocus","removeClass","last","trigger","e","left","right","itemValue","currentValue","parsedValue","step","focusableItems","focusedElement","currentIndex","isRtl","support","isEmpty","keyCode","RIGHT","LEFT","DOWN","eq","_select","preventDefault","UP","HOME","END","_getTemplateType","type","_renderTemplate","target","defaultIcon","_updateItemTemplates","state","isSingle","previousSelection","currentSelection","prevAll","addBack","resetItems","nextAll","templateType","stateClass","get","_change","newValue","oldValue","closest","valueToSelect","enableMove","is","hasPart","setTemplate","Math","ceil","hasClass","_togglePrecisionElements","mousePosition","itemOffset","partSize","clientX","offset","abs","_updatePrecisionElements","_insetCss","isHalf","itemSize","part","partTemplate","_getItemWidth","css","width","height","display","_createUpdatePrecisionComplement","itemPart","halfOffset","outerWidth","complement","iconElement","_calculateItemWidthFromStyles","_updateElement","elementValue","_updateItemsRendering","updateTemplate","valueItem","prop","toggleClass","toString","getCulture","round","reset","enable","setOptions","empty","_precisionStrategyMemo","prototype","destroy","off","plugin","jQuery"],"sources":["kendo.rating.js"],"mappings":"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","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('kendo.core.js'), require('kendo.dom.js'), require('kendo.icons.js')) :\n typeof define === 'function' && define.amd ? define(['kendo.core', 'kendo.dom', 'kendo.icons'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (global.kendorating = global.kendorating || {}, global.kendorating.js = factory()));\n})(this, (function () {\n var __meta__ = {\n id: \"rating\",\n name: \"Rating\",\n category: \"web\",\n description: \"The Rating component.\",\n depends: [ \"core\", \"icons\" ]\n };\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n ui = kendo.ui,\n encode = kendo.htmlEncode,\n NS = \".kendoRating\",\n Widget = ui.Widget,\n extend = $.extend,\n keys = kendo.keys,\n parseFloat = kendo.parseFloat,\n CHANGE = \"change\",\n SELECT = \"select\",\n SELECTED = \"selected\",\n HOVERED = \"hovered\",\n DISABLED = \"disabled\",\n READONLY = \"readonly\",\n KEYDOWN = \"keydown\" + NS,\n CLICK = \"click\" + NS,\n MOUSEENTER = \"mouseenter\" + NS,\n MOUSELEAVE = \"mouseleave\" + NS,\n MOUSEMOVE = \"mousemove\" + NS,\n MOUSEDOWN = \"mousedown\" + NS,\n FOCUS = \"focus\" + NS,\n BLUR = \"blur\" + NS,\n ARIA_LABEL = \"aria-label\",\n ARIA_LABELLEDBY = \"aria-labelledby\",\n ARIA_VALUEMIN = \"aria-valuemin\",\n ARIA_VALUEMAX = \"aria-valuemax\",\n ARIA_VALUENOW = \"aria-valuenow\",\n ARIA_DISABLED = \"aria-disabled\",\n ARIA_READONLY = \"aria-readonly\",\n PRECISION_PART = \"k-rating-precision-part\",\n PRECISION_COMPLEMENT = \"k-rating-precision-complement\",\n PRECISION_HALF_VALUE = 0.5,\n LABELIDPART = \"_label\",\n KITEM = \"k-rating-item\",\n FOCUSED = \"k-focus\",\n TABINDEX = \"tabindex\",\n DOT = \".\",\n ROLE = \"role\",\n MIN = \"min\",\n MAX = \"max\";\n\n var ratingSelection = {\n single: \"single\",\n continuous: \"continuous\"\n };\n\n var ratingPrecision = {\n item: \"item\",\n half: \"half\"\n };\n\n var ratingItemTemplates = {\n item: \"itemTemplate\",\n hovered: \"hoveredTemplate\",\n selected: \"selectedTemplate\"\n };\n\n var ratingItemStates = {\n selected: \"k-selected\",\n hovered: \"k-hover\",\n hoveredPrecise: \"k-hover-precise\"\n };\n\n var ratingItemAttributes = {\n partValue: \"part-value\",\n dataValue: \"data-value\",\n value: \"value\",\n title: \"title\"\n };\n\n var ratingStyles = {\n widget: \"k-rating k-widget\",\n container: \"k-rating-container\",\n item: \"k-rating-item\",\n icon: \"star-outline\",\n iconSelected: \"star\",\n label: \"k-rating-label\",\n disabled: \"k-disabled\",\n readonly: \"k-state-readonly\",\n active: \"k-active\",\n hidden: \"k-hidden\"\n };\n\n var RATING_TEMPLATE = function (ref) {\n var styles = ref.styles;\n\n return (\"\");\n };\n\n var RATING_CONTAINER_TEMPLATE = function (ref) {\n var styles = ref.styles;\n\n return (\"\");\n };\n\n var RATING_LABEL_WRAPPER_TEMPLATE = function (ref) {\n var styles = ref.styles;\n\n return (\"\");\n };\n\n var RATING_LABEL_TEMPLATE = function (ref) {\n var value = ref.value;\n var maxValue = ref.maxValue;\n\n return (\"\" + (encode(value)) + \" / \" + (encode(maxValue)) + \"\");\n };\n\n var RATING_ITEM_WRAPPER_TEMPLATE = function (ref) {\n var styles = ref.styles;\n var value = ref.value;\n\n return (\"\");\n };\n\n var RATING_ITEM_TEMPLATE = function (ref) {\n var icon = ref.icon;\n\n return kendo.ui.icon({\n icon: icon,\n size: 'xlarge'\n });\n };\n\n var Rating = Widget.extend({\n init: function(element, options) {\n var that = this;\n\n Widget.fn.init.call(that, element, options);\n\n that.options = extend({}, that.options, options);\n\n that._element();\n\n that._wrapper();\n\n that._aria();\n\n that._initSettings();\n\n that._renderItems();\n\n that._renderTooltip();\n\n that._renderLabel();\n\n that._selectInitial();\n\n that._attachEvents();\n\n kendo.notify(this);\n },\n\n events: [\n SELECT,\n CHANGE\n ],\n\n options: {\n name: \"Rating\",\n messages: {},\n min: 1,\n max: 5,\n selection: ratingSelection.continuous,\n precision: ratingPrecision.item,\n tooltip: true,\n label: true,\n readonly: false,\n enabled: true,\n selectValueOnFocus: null,\n itemTemplate: null,\n selectedTemplate: null,\n hoveredTemplate: null\n },\n\n _element: function() {\n var that = this;\n\n that.element.addClass(ratingStyles.hidden);\n },\n\n _wrapper: function() {\n var that = this;\n\n that.wrapper = $(RATING_TEMPLATE({\n styles: ratingStyles\n }));\n\n that.wrapper = that.element.wrap(that.wrapper).parent();\n\n that.wrapper\n .addClass(that.element[0].className.replace(ratingStyles.hidden, \"\"))\n .append($(RATING_CONTAINER_TEMPLATE({\n styles: ratingStyles\n })));\n\n that.wrapper[0].style.cssText = that.element[0].style.cssText;\n\n that.container = that.wrapper.find(DOT + ratingStyles.container);\n },\n\n _aria: function() {\n var that = this,\n wrapper = that.wrapper,\n element = that.element,\n id = element.attr(\"id\"),\n labelFor = $(\"label[for=\\\"\" + id + \"\\\"]\"),\n ariaLabel = element.attr(ARIA_LABEL),\n ariaLabelledBy = element.attr(ARIA_LABELLEDBY),\n min = parseFloat(that.element.attr(MIN)) || that.options.min,\n max = parseFloat(that.element.attr(MAX)) || that.options.max;\n\n that.wrapper\n .attr(TABINDEX, 0)\n .attr(ROLE, \"slider\")\n .attr(ARIA_VALUEMIN, min)\n .attr(ARIA_VALUEMAX, max)\n .attr(ARIA_VALUENOW, that.options.value || (min + max) / 2);\n\n if (ariaLabel) {\n wrapper.attr(ARIA_LABEL, ariaLabel);\n } else if (ariaLabelledBy) {\n wrapper.attr(ARIA_LABELLEDBY, ariaLabelledBy);\n } else if (labelFor.length) {\n var labelId = labelFor.attr(\"id\");\n\n if (!labelId) {\n labelId = (id || kendo.guid()) + LABELIDPART;\n labelFor.attr(\"id\", labelId);\n }\n\n wrapper.attr(ARIA_LABELLEDBY, labelId);\n }\n },\n\n _initSettings: function() {\n var that = this,\n isPrecise = that.options.precision != ratingPrecision.item,\n options = that.options;\n\n options.value = parseFloat(options.value);\n if (options.value === null) {\n options.value = parseFloat(that.element.val());\n }\n\n options.min = parseFloat(that.element.attr(MIN)) || that.options.min;\n options.max = parseFloat(that.element.attr(MAX)) || that.options.max;\n that._valueMin = isPrecise ? that.options.min - PRECISION_HALF_VALUE : that.options.min;\n\n options.enabled = options.enabled && !that.element.attr(DISABLED);\n options.readonly = options.readonly || !!that.element.attr(READONLY);\n that._setState();\n },\n\n _renderItems: function() {\n var that = this,\n container = that.container,\n min = that.options.min,\n max = that.options.max,\n itemTemplate = that.options.itemTemplate ?\n kendo.template(that.options.itemTemplate) :\n RATING_ITEM_TEMPLATE;\n\n for (var i = min; i <= max; i += 1) {\n var itemWrapper = $(RATING_ITEM_WRAPPER_TEMPLATE({\n styles: ratingStyles,\n value: i\n }));\n\n itemWrapper.append(itemTemplate({\n icon: ratingStyles.icon,\n index: i\n }));\n\n container.append(itemWrapper);\n }\n },\n\n _renderTooltip: function() {\n var that = this,\n items = that.container.find(DOT + KITEM),\n enabled = that.options.tooltip === true;\n\n if (!enabled) {\n items.removeAttr(ratingItemAttributes.title);\n return;\n }\n\n for (var i = 0; i < items.length; i += 1) {\n $(items[i]).attr(ratingItemAttributes.title, $(items[i]).data(ratingItemAttributes.value));\n }\n },\n\n _renderLabel: function() {\n var that = this,\n label = that.wrapper.find(DOT + ratingStyles.label),\n enabled = that.options.label === true || that.options.label.template !== undefined$1,\n template = that.options.label && that.options.label.template ?\n kendo.template(that.options.label.template) :\n RATING_LABEL_TEMPLATE;\n\n if (!enabled || that.value() === null) {\n label.remove();\n that.label = null;\n return;\n }\n\n if (!label.length) {\n that.label = label = $(RATING_LABEL_WRAPPER_TEMPLATE({\n styles: ratingStyles\n }));\n\n that.wrapper.append(label);\n }\n\n label.html(template({\n styles: ratingStyles,\n value: that.value() % 1 === 0 ? that.value() : that._format(that.value()),\n maxValue: that.options.max\n }));\n },\n\n _selectInitial: function() {\n var that = this;\n\n if (!isNaN(that.options.value)) {\n that.value(that.options.value);\n }\n },\n\n _attachEvents: function() {\n var that = this,\n isHalfPrecision = that.options.precision == ratingPrecision.half;\n\n that.wrapper\n .on(FOCUS, that._focus.bind(that))\n .on(BLUR, that._blur.bind(that))\n .on(KEYDOWN, that._keydown.bind(that));\n\n that.container\n .on(CLICK, DOT + KITEM, that._click.bind(that))\n .on(MOUSEENTER, DOT + KITEM, that._mouseenter.bind(that))\n .on(MOUSELEAVE, DOT + KITEM, that._mouseleave.bind(that))\n .on(MOUSEDOWN, that._mousedown.bind(that));\n\n if (isHalfPrecision) {\n that.container.on(MOUSEMOVE, DOT + KITEM, that._mousemove.bind(that));\n }\n },\n\n _focus: function() {\n var that = this,\n container = that.container,\n wrapper = that.wrapper,\n focusedItems = that.container.find(DOT + FOCUSED),\n selectValueOnFocus = that.options.selectValueOnFocus,\n firstElement = container.children().first(),\n selectedElement, hoveredElement, itemToFocus;\n\n if (!that.options.enabled || that.options.readonly || that.preventFocus) {\n if (that.options.readonly) {\n that.wrapper.addClass(FOCUSED);\n }\n return;\n }\n\n wrapper.addClass(FOCUSED);\n focusedItems.removeClass(FOCUSED);\n\n if (that.value() === null && selectValueOnFocus !== null) {\n that.value(selectValueOnFocus);\n }\n\n selectedElement = container.find(DOT + ratingItemStates.selected).last();\n hoveredElement = container.find(DOT + ratingItemStates.hovered).last();\n itemToFocus = selectedElement.length ? selectedElement : hoveredElement;\n itemToFocus = itemToFocus.length ? itemToFocus : firstElement;\n\n itemToFocus.addClass(FOCUSED);\n },\n\n _blur: function() {\n var that = this;\n\n that.preventFocus = false;\n\n that.wrapper.removeClass(FOCUSED);\n that.container.find(DOT + FOCUSED).removeClass(FOCUSED);\n\n that.element.trigger(\"blur\");\n },\n\n _mousedown: function() {\n var that = this;\n\n that.preventFocus = true;\n },\n\n _keydown: function(e) {\n var that = this,\n container = that.container,\n currentValue = that.parsedValue,\n isPrecise = that.options.precision != ratingPrecision.item,\n step = isPrecise ? PRECISION_HALF_VALUE : 1,\n focusableItems = container.find(DOT + KITEM),\n focusedElement = container.find(DOT + FOCUSED),\n currentIndex = focusableItems.index(focusedElement),\n isRtl = kendo.support.isRtl(that.wrapper),\n isEmpty = isNaN(currentValue),\n keyCode = e.keyCode,\n left, right, itemToFocus, itemValue;\n\n if (!that.options.enabled || that.options.readonly) {\n return;\n }\n\n left = (keyCode === keys.RIGHT && isRtl) || (keyCode === keys.LEFT && !isRtl);\n right = (keyCode === keys.LEFT && isRtl) || (keyCode === keys.RIGHT && !isRtl);\n\n if (left || keyCode === keys.DOWN) {\n itemToFocus = isEmpty ? focusableItems.eq(0) : $(focusableItems[currentIndex - 1]);\n itemValue = isEmpty ? that._valueMin : currentValue - step;\n\n that._select(itemToFocus, itemValue);\n e.preventDefault();\n } else if (right || keyCode === keys.UP) {\n itemToFocus = isEmpty ? focusableItems.eq(0) : $(focusableItems[currentIndex + 1]);\n itemValue = isEmpty ? that._valueMin : currentValue + step;\n\n that._select(itemToFocus, itemValue);\n e.preventDefault();\n } else if (keyCode === keys.HOME) {\n itemToFocus = focusableItems.eq(0);\n\n that._select(itemToFocus, that._valueMin);\n e.preventDefault();\n } else if (keyCode === keys.END) {\n itemToFocus = focusableItems.eq(focusableItems.length - 1);\n\n that._select(itemToFocus);\n e.preventDefault();\n }\n },\n\n _getTemplateType: function(type) {\n var that = this,\n template;\n\n if (that.options[type]) {\n template = kendo.template(that.options[type]);\n } else {\n template = RATING_ITEM_TEMPLATE;\n }\n\n return template;\n },\n\n _renderTemplate: function(target, type) {\n var that = this,\n template = that._getTemplateType(type),\n defaultIcon = ratingStyles.icon;\n\n if (type == ratingItemTemplates.selected || type == ratingItemTemplates.hovered) {\n defaultIcon = ratingStyles.iconSelected;\n }\n\n for (var i = 0; i < target.length; i += 1) {\n $(target[i]).html(template({ icon: defaultIcon, index: $(target[i]).index() }));\n }\n },\n\n _updateItemTemplates: function(state, target) {\n var that = this,\n isSingle = ratingSelection.single == that.options.selection,\n isHalfPrecision = that.options.precision == ratingPrecision.half,\n previousSelection = that.container.find(DOT + ratingItemStates.selected),\n currentSelection = isSingle ? target : target.prevAll().addBack(),\n resetItems = isSingle ? previousSelection : target.nextAll(),\n templateType = ratingItemTemplates[state],\n stateClass = ratingItemStates[state];\n\n resetItems.removeClass(stateClass);\n currentSelection.addClass(stateClass);\n\n that._renderTemplate(currentSelection, templateType);\n\n if ((!isSingle) || (isSingle && state == SELECTED && currentSelection.get(0) != previousSelection.get(0))) {\n that._renderTemplate(resetItems, ratingItemTemplates.item);\n }\n\n if (isHalfPrecision) {\n that._renderTemplate(target, ratingItemTemplates.item);\n }\n },\n\n _change: function(target, newValue) {\n var that = this,\n currentValue = that.value();\n\n that.value(newValue);\n\n that.trigger(CHANGE, { target: target, oldValue: currentValue, newValue: that.value() });\n },\n\n _click: function(e) {\n var that = this,\n target = $(e.target).closest(DOT + KITEM),\n valueToSelect = target.attr(ratingItemAttributes.dataValue);\n\n if (!that.options.enabled || that.options.readonly) {\n return;\n }\n\n if (target.data(ratingItemAttributes.partValue)) {\n valueToSelect = target.data(ratingItemAttributes.partValue);\n }\n\n that._select(target, valueToSelect);\n },\n\n _select: function(target, newValue) {\n var that = this,\n value = isNaN(newValue) ? target.attr(ratingItemAttributes.dataValue) : newValue;\n\n if (value == that.value() || value < that._valueMin || value > that.options.max) {\n return;\n }\n\n that.trigger(SELECT, { target: target });\n\n that._change(target, value);\n\n that._focus();\n },\n\n _mouseenter: function(e) {\n var that = this,\n target = $(e.target),\n item = target.closest(DOT + KITEM);\n\n if (!that.options.enabled || that.options.readonly) {\n return;\n }\n\n that.enableMove = true;\n\n if (target.is(DOT + KITEM)) {\n that._updateItemTemplates(HOVERED, item);\n }\n },\n\n _mouseleave: function(e) {\n var that = this,\n selection = that.options.selection,\n isHalfPrecision = that.options.precision == ratingPrecision.half,\n isSingle = selection == ratingSelection.single,\n item = $(e.target).closest(DOT + KITEM),\n items = that.container.find(DOT + KITEM),\n hasPart,\n template;\n\n that.enableMove = false;\n\n var setTemplate = function(item) {\n hasPart = that.parsedValue % 1 !== 0 && item.is(that.container.find(\"[data-value=\" + Math.ceil(that.parsedValue) + \"]\"));\n template = (item.hasClass(ratingItemStates.selected) || item.hasClass(ratingItemStates.hovered)) && !hasPart ?\n ratingItemTemplates.selected :\n ratingItemTemplates.item;\n\n that._renderTemplate(item, template);\n\n if (isHalfPrecision && hasPart && item.hasClass(ratingItemStates.selected)) {\n that._togglePrecisionElements(item, SELECTED);\n }\n };\n\n items.removeClass(ratingItemStates.hovered);\n\n if (isSingle) {\n setTemplate(item);\n } else {\n for (var i = 0; i < items.length; i += 1) {\n var currentItem = $(items[i]);\n\n setTemplate(currentItem);\n }\n }\n },\n\n _mousemove: function(e) {\n var that = this,\n item = $(e.target).closest(DOT + KITEM),\n mousePosition, itemOffset, partSize;\n\n if (!that.enableMove) {\n return;\n }\n\n if (item.length) {\n mousePosition = e.clientX;\n itemOffset = item.offset().left;\n\n partSize = Math.abs(mousePosition - itemOffset);\n\n that._togglePrecisionElements(item, HOVERED);\n that._updatePrecisionElements(item, partSize);\n }\n\n e.preventDefault();\n },\n\n _insetCss: function() {\n var that = this,\n isRtl = kendo.support.isRtl(that.wrapper);\n\n return isRtl ?\n 'inset(0 0 0 50%)' :\n 'inset(0 50% 0 0)';\n },\n\n _togglePrecisionElements: function(item, templateType) {\n var that = this,\n part = item.find(DOT + PRECISION_PART),\n partTemplate = that._getTemplateType(ratingItemTemplates[templateType]),\n isHalf, itemSize;\n\n if (!part.length) {\n isHalf = that.parsedValue % 1 !== 0;\n itemSize = that._getItemWidth(item);\n part = $(\"\").addClass(PRECISION_PART);\n\n part.append(partTemplate({\n icon: ratingStyles.iconSelected\n }));\n\n part.css('clip-path', isHalf ? that._insetCss() : '');\n\n item.append(part);\n\n item.append($(\"\").css({\n \"width\": itemSize,\n \"height\": itemSize,\n \"display\": \"block\"\n }));\n\n that._createUpdatePrecisionComplement(item, isHalf);\n } else {\n part.html(partTemplate({\n icon: ratingStyles.iconSelected\n }));\n }\n },\n\n _updatePrecisionElements: function(item, partSize) {\n var that = this,\n itemPart = item.find(DOT + PRECISION_PART),\n itemValue = kendo.parseFloat(item.data(ratingItemAttributes.value)),\n isRtl = kendo.support.isRtl(this.wrapper),\n halfOffset = parseFloat(item.outerWidth() / 2),\n isHalf = !isRtl ? partSize < halfOffset : partSize > halfOffset;\n\n if (item.length && itemPart.length) {\n itemPart.css('clip-path', isHalf ? that._insetCss() : '');\n\n if (this.options.tooltip) {\n item.attr(ratingItemAttributes.title, isHalf ?\n that._format(itemValue - PRECISION_HALF_VALUE) : itemValue\n );\n }\n\n item.data(ratingItemAttributes.partValue, isHalf ?\n itemValue - PRECISION_HALF_VALUE : itemValue\n );\n\n that._createUpdatePrecisionComplement(item, isHalf);\n }\n },\n\n _createUpdatePrecisionComplement: function(item, isHalf) {\n var complement = item.find(DOT + PRECISION_COMPLEMENT),\n iconElement = item.children().first();\n\n if (!complement.length) {\n complement = iconElement.wrap($(\"\")\n .addClass(PRECISION_COMPLEMENT))\n .parent();\n }\n },\n\n _calculateItemWidthFromStyles: function(item) {\n if (!item) {\n return;\n }\n\n return parseFloat(item.find(\".k-icon,.k-svg-icon\").css(\"font-size\"));\n },\n\n _getItemWidth: function(item) {\n if (!item) {\n return;\n }\n\n return item.width() || this._calculateItemWidthFromStyles(item) || 0;\n },\n\n _updateElement: function(value) {\n var that = this,\n elementValue = value === null ? \"\" : value,\n min = parseFloat(that.element.attr(MIN)) || that.options.min,\n max = parseFloat(that.element.attr(MAX)) || that.options.max;\n\n that.element.val(that._format(elementValue));\n that.wrapper.attr(ARIA_VALUENOW, that._format(value) || (min + max) / 2);\n },\n\n _updateItemsRendering: function(value) {\n var that = this,\n isHalfPrecision = that.options.precision == ratingPrecision.half,\n updateTemplate = value === null ? \"item\" : SELECTED,\n valueItem = value === null ?\n that.container.find(DOT + ratingItemStates.selected).last() :\n that.container.find(DOT + KITEM + \"[data-value='\" + Math.ceil(value) + \"']\");\n\n if (value === null ) {\n that.container.find(DOT + KITEM).removeClass(ratingItemStates.selected);\n }\n\n that._updateItemTemplates(updateTemplate, valueItem);\n\n if (isHalfPrecision && value !== null) {\n that._togglePrecisionElements(valueItem, SELECTED);\n }\n\n that._renderLabel();\n },\n\n _setState: function() {\n var that = this,\n element = that.element,\n wrapper = that.wrapper,\n readonly = that.options.readonly,\n enabled = that.options.enabled;\n\n if (readonly && enabled) {\n element.attr(READONLY, READONLY);\n wrapper.attr(ARIA_READONLY, true);\n } else {\n element.prop(READONLY, false);\n wrapper.removeAttr(ARIA_READONLY);\n }\n\n if (enabled) {\n element.prop(DISABLED, false);\n wrapper.removeAttr(ARIA_DISABLED);\n wrapper.attr(TABINDEX, 0);\n } else {\n element.attr(DISABLED, DISABLED);\n wrapper.attr(ARIA_DISABLED, true);\n wrapper.removeAttr(TABINDEX);\n }\n\n wrapper.toggleClass(ratingStyles.disabled, !enabled);\n wrapper.toggleClass(ratingStyles.readonly, readonly && enabled);\n },\n\n _format: function(value) {\n return kendo.toString(value, \"n1\", kendo.getCulture().name);\n },\n\n value: function(value) {\n var that = this,\n isHalfPrecision = that.options.precision == ratingPrecision.half;\n\n if (value === null) {\n that._updateElement(value);\n that._updateItemsRendering(value);\n\n return;\n }\n\n value = parseFloat(value);\n\n if (value === null) {\n value = parseFloat(that.element.val());\n return value;\n }\n\n value = Math.max(that._valueMin, Math.min(value, that.options.max));\n\n if (isHalfPrecision) {\n that.parsedValue = parseFloat(that._format(Math.ceil(value * 2) / 2));\n } else {\n that.parsedValue = Math.round(value);\n }\n\n that._updateElement(value);\n that._updateItemsRendering(value);\n },\n\n reset: function() {\n var that = this;\n\n that.value(null);\n },\n\n enable: function(enable) {\n var that = this;\n\n if (typeof enable == \"undefined\") {\n enable = true;\n }\n\n that.options.enabled = enable;\n that.options.readonly = false;\n\n that._setState();\n },\n\n readonly: function(readonly) {\n var that = this;\n\n if (typeof readonly == \"undefined\") {\n readonly = true;\n }\n\n that.options.readonly = readonly;\n that.options.enabled = true;\n\n that._setState();\n },\n\n setOptions: function(options) {\n var that = this;\n\n that.options = $.extend(that.options, options);\n\n if (options.enabled !== undefined$1) {\n that.enable(options.enabled);\n }\n\n if (options.readonly !== undefined$1) {\n that.readonly(options.readonly);\n }\n\n if (options.label !== undefined$1) {\n that._renderLabel();\n }\n\n if (options.tooltip !== undefined$1) {\n that._renderTooltip();\n }\n\n if (options.value !== undefined$1) {\n that.value(options.value);\n }\n\n if (options.min || options.max !== undefined$1 ||\n options.itemTemplate !== undefined$1 ||\n options.selectedTemplate !== undefined$1 ||\n options.hoveredTemplate !== undefined$1) {\n that.container.empty();\n that._renderItems();\n that._renderLabel();\n that._renderTooltip();\n that._selectInitial();\n that._precisionStrategyMemo = Rating.prototype._precisionStrategyMemo;\n }\n },\n\n destroy: function() {\n var that = this;\n\n that.wrapper.off(NS);\n that.container.off(NS);\n\n Widget.fn.destroy.call(that);\n }\n\n });\n\n ui.plugin(Rating);\n })(window.kendo.jQuery);\n var kendo$1 = kendo;\n\n return kendo$1;\n\n}));\n"]}