{"version":3,"file":"kendo.rating.min.js","names":["factory","define","amd","$","undefined$1","kendo","ui","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","ratingItemStates","ratingItemAttributes","ratingStyles","RATING_TEMPLATE","RATING_CONTAINER_TEMPLATE","RATING_LABEL_WRAPPER_TEMPLATE","RATING_LABEL_TEMPLATE","RATING_ITEM_WRAPPER_TEMPLATE","RATING_ITEM_TEMPLATE","Rating","window","jQuery","item","hovered","selected","hoveredPrecise","widget","container","icon","iconSelected","label","disabled","readonly","active","hidden","template","init","element","options","that","this","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","wrapper","styles","wrap","parent","className","replace","append","style","cssText","find","id","attr","labelFor","ariaLabel","ariaLabelledBy","value","length","labelId","guid","isPrecise","val","_valueMin","_setState","i","itemWrapper","index","items","data","removeAttr","remove","html","_format","maxValue","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","isFraction","itemSize","part","partTemplate","_getItemWidth","width","css","height","display","_createUpdatePrecisionComplement","isHalf","complement","iconElement","dir","_calculateItemWidthFromStyles","itemPart","itemWidth","halfWidth","halfOffset","outerWidth","_updateElement","elementValue","_updateItemsRendering","updateTemplate","valueItem","prop","toggleClass","toString","getCulture","round","reset","enable","setOptions","empty","destroy","off","plugin"],"sources":["kendo.rating.js"],"mappings":"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","sourcesContent":["(function (factory) {\n typeof define === 'function' && define.amd ? define(['kendo.core', 'kendo.dom'], factory) :\n factory();\n})((function () {\n var __meta__ = {\n id: \"rating\",\n name: \"Rating\",\n category: \"web\",\n description: \"The Rating component.\",\n depends: [ \"core\" ]\n };\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n ui = kendo.ui,\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: \"k-icon k-i-star-outline\",\n iconSelected: \"k-icon k-i-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 = kendo.template(\n ''\n );\n\n var RATING_CONTAINER_TEMPLATE = kendo.template(\n ''\n );\n\n var RATING_LABEL_WRAPPER_TEMPLATE = kendo.template(\n ''\n );\n\n var RATING_LABEL_TEMPLATE = kendo.template(\n '#:value# / #:maxValue#'\n );\n\n var RATING_ITEM_WRAPPER_TEMPLATE = kendo.template(\n ''\n );\n\n var RATING_ITEM_TEMPLATE = kendo.template(\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 _togglePrecisionElements: function(item, templateType) {\n var that = this,\n part = item.find(DOT + PRECISION_PART),\n partTemplate = that._getTemplateType(ratingItemTemplates[templateType]),\n isFraction, itemSize;\n\n if (!part.length) {\n isFraction = 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.width(isFraction ? itemSize / 2 : itemSize);\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, isFraction);\n } else {\n part.html(partTemplate({\n icon: ratingStyles.iconSelected\n }));\n }\n },\n\n _createUpdatePrecisionComplement: function(item, isHalf) {\n var that = this,\n complement = item.find(DOT + PRECISION_COMPLEMENT),\n iconElement = item.children().first(),\n isRtl = kendo.support.isRtl(that.wrapper),\n dir = !isRtl ? \"left\" : \"right\";\n\n if (!complement.length) {\n complement = iconElement.wrap($(\"\")\n .addClass(PRECISION_COMPLEMENT))\n .parent();\n }\n\n complement.width(isHalf ? that._getItemWidth(item) / 2 : 0);\n\n complement.css(dir, isHalf || isRtl ? \"50%\" : 0);\n },\n\n _calculateItemWidthFromStyles: function(item) {\n if (!item) {\n return;\n }\n\n return parseFloat(item.find(\".k-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 _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 itemWidth = item.width(),\n halfWidth = itemWidth / 2,\n halfOffset = parseFloat(item.outerWidth() / 2),\n isHalf = !isRtl ? partSize < halfOffset : partSize > halfOffset;\n\n if (item.length && itemPart.length) {\n itemPart.width(isHalf ? halfWidth : itemWidth);\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 _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 }\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\n}));\n"]}