{"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","KEYDOWN","CLICK","MOUSEENTER","MOUSELEAVE","MOUSEMOVE","MOUSEDOWN","FOCUS","BLUR","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","value","maxValue","RATING_ITEM_WRAPPER_TEMPLATE","styles","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","wrapper","RATING_TEMPLATE","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","RATING_LABEL_WRAPPER_TEMPLATE","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":"CAAA,SAAWA,EAAQC,GACE,iBAAZC,SAA0C,oBAAXC,OAAyBA,OAAOD,QAAUD,EAAQG,QAAQ,iBAAkBA,QAAQ,gBAAiBA,QAAQ,mBACjI,mBAAXC,QAAyBA,OAAOC,IAAMD,OAAO,CAAC,iBAAkB,gBAAiB,mBAAoBJ,KAC3GD,EAA+B,oBAAfO,WAA6BA,WAAaP,GAAUQ,MAAcC,YAAcT,EAAOS,aAAe,CAAC,EAAGT,EAAOS,YAAYC,GAAKT,IACpJ,CAJD,CAIGU,MAAM,WAy2BP,OAh2BI,SAAUC,EAAGC,GACT,IAAIC,EAAQC,OAAOD,MACfE,EAAKF,EAAME,GACXC,EAASH,EAAMI,WACfC,EAAK,eACLC,EAASJ,EAAGI,OACZC,EAAST,EAAES,OACXC,EAAOR,EAAMQ,KACbC,EAAaT,EAAMS,WACnBC,EAAS,SACTC,EAAS,SACTC,EAAW,WACXC,EAAU,UACVC,EAAW,WACXC,EAAW,WACXC,EAAU,UAAYX,EACtBY,EAAQ,QAAUZ,EAClBa,EAAa,aAAeb,EAC5Bc,EAAa,aAAed,EAC5Be,EAAY,YAAcf,EAC1BgB,EAAY,YAAchB,EAC1BiB,EAAQ,QAAUjB,EAClBkB,EAAO,OAASlB,EAChBmB,EAAa,aACbC,EAAkB,kBAGlBC,EAAgB,gBAChBC,EAAgB,gBAChBC,EAAgB,gBAChBC,EAAiB,0BACjBC,EAAuB,gCACvBC,EAAuB,GAEvBC,EAAQ,gBACRC,EAAU,UACVC,EAAW,WACXC,EAAM,IAENC,EAAM,MACNC,EAAM,MAENC,EACQ,SADRA,EAEY,aAGZC,EACM,OADNA,EAEM,OAGNC,EAAsB,CACtBC,KAAM,eACNC,QAAS,kBACTC,SAAU,oBAGVC,EAAmB,CACnBD,SAAU,aACVD,QAAS,UACTG,eAAgB,mBAGhBC,EACW,aADXA,EAEW,aAFXA,EAGO,QAHPA,EAIO,QAGPC,EAAe,CACfC,OAAQ,WACRC,UAAW,qBACXR,KAAM,gBACNS,KAAM,eACNC,aAAc,OACdC,MAAO,iBACPC,SAAU,aACVC,SAAU,mBACVC,OAAQ,WACRC,OAAQ,YAYRC,EAAwB,EAAGC,QAAOC,cAClC,SAASxD,EAAOuD,QAAYvD,EAAOwD,YAEnCC,EAA+B,EAAGC,SAAQH,WAC1C,gBAAgBvD,EAAO0D,EAAOpB,sBAAsBtC,EAAOuD,cAE3DI,EAAuB,EAAGZ,UAAWlD,EAAME,GAAGgD,KAAK,CACnDA,KAAMA,EACNa,KAAM,WAGNC,EAAS1D,EAAOC,OAAO,CACvB0D,KAAM,SAASC,EAASC,GACpB,IAAIC,EAAOvE,KAEXS,EAAO+D,GAAGJ,KAAKK,KAAKF,EAAMF,EAASC,GAEnCC,EAAKD,QAAU5D,EAAO,CAAC,EAAG6D,EAAKD,QAASA,GAExCC,EAAKG,WAELH,EAAKI,WAELJ,EAAKK,QAELL,EAAKM,gBAELN,EAAKO,eAELP,EAAKQ,iBAELR,EAAKS,eAELT,EAAKU,iBAELV,EAAKW,gBAEL/E,EAAMgF,OAAOnF,KACjB,EAEAoF,OAAQ,CACJtE,EACAD,GAGJyD,QAAS,CACLe,KAAM,SACNC,SAAU,CAAC,EACXC,IAAK,EACLC,IAAK,EACLC,UAAWhD,EACXiD,UAAWhD,EACXiD,SAAS,EACTpC,OAAO,EACPE,UAAU,EACVmC,SAAS,EACTC,mBAAoB,KACpBC,aAAc,KACdC,iBAAkB,KAClBC,gBAAiB,MAGrBtB,SAAU,WACK1E,KAENqE,QAAQ4B,SAAS/C,EAAaS,OACvC,EAEAgB,SAAU,WACN,IAAIJ,EAAOvE,KAEXuE,EAAK2B,QAAUjG,EAhFD,GAAG+D,YACrB,gBAAgB1D,EAAO0D,EAAOb,mBA+ETgD,CAAgB,CAC7BnC,OAAQd,KAGZqB,EAAK2B,QAAU3B,EAAKF,QAAQ+B,KAAK7B,EAAK2B,SAASG,SAE/C9B,EAAK2B,QACAD,SAAS1B,EAAKF,QAAQ,GAAGiC,UAAUC,QAAQrD,EAAaS,OAAQ,KAChE6C,OAAOvG,EArFY,GAAG+D,YACnC,gBAAgB1D,EAAO0D,EAAOZ,sBAoFRqD,CAA0B,CAChCzC,OAAQd,MAGhBqB,EAAK2B,QAAQ,GAAGQ,MAAMC,QAAUpC,EAAKF,QAAQ,GAAGqC,MAAMC,QAEtDpC,EAAKnB,UAAYmB,EAAK2B,QAAQU,KAAKtE,EAAMY,EAAaE,UAC1D,EAEAwB,MAAO,WACH,IAAIL,EAAOvE,KACPkG,EAAU3B,EAAK2B,QACf7B,EAAUE,EAAKF,QACfwC,EAAKxC,EAAQyC,KAAK,MAClBC,EAAW9G,EAAE,cAAiB4G,EAAK,MACnCG,EAAY3C,EAAQyC,KAAKnF,GACzBsF,EAAiB5C,EAAQyC,KAAKlF,GAC9B2D,EAAM3E,EAAW2D,EAAKF,QAAQyC,KAAKvE,KAASgC,EAAKD,QAAQiB,IACzDC,EAAM5E,EAAW2D,EAAKF,QAAQyC,KAAKtE,KAAS+B,EAAKD,QAAQkB,IAS7D,GAPAjB,EAAK2B,QACAY,KAAKzE,EAAU,GACfyE,KA5JF,OA4Ja,UACXA,KA1KO,gBA0KavB,GACpBuB,KA1KO,gBA0KatB,GACpBsB,KAAKjF,EAAe0C,EAAKD,QAAQT,QAAU0B,EAAMC,GAAO,GAEzDwB,EACAd,EAAQY,KAAKnF,EAAYqF,QACtB,GAAIC,EACPf,EAAQY,KAAKlF,EAAiBqF,QAC3B,GAAIF,EAASG,OAAQ,CACxB,IAAIC,EAAUJ,EAASD,KAAK,MAEvBK,IACDA,GAAWN,GAAM1G,EAAMiH,QA9KrB,SA+KFL,EAASD,KAAK,KAAMK,IAGxBjB,EAAQY,KAAKlF,EAAiBuF,EAClC,CACJ,EAEAtC,cAAe,WACX,IAAIN,EAAOvE,KACPqH,EAAY9C,EAAKD,QAAQoB,WAAahD,EACtC4B,EAAUC,EAAKD,QAEnBA,EAAQT,MAAQjD,EAAW0D,EAAQT,OACb,OAAlBS,EAAQT,QACRS,EAAQT,MAAQjD,EAAW2D,EAAKF,QAAQiD,QAG5ChD,EAAQiB,IAAM3E,EAAW2D,EAAKF,QAAQyC,KAAKvE,KAASgC,EAAKD,QAAQiB,IACjEjB,EAAQkB,IAAM5E,EAAW2D,EAAKF,QAAQyC,KAAKtE,KAAS+B,EAAKD,QAAQkB,IACjEjB,EAAKgD,UAAYF,EAAY9C,EAAKD,QAAQiB,IAAMrD,EAAuBqC,EAAKD,QAAQiB,IAEpFjB,EAAQsB,QAAUtB,EAAQsB,UAAYrB,EAAKF,QAAQyC,KAAK7F,GACxDqD,EAAQb,SAAWa,EAAQb,YAAcc,EAAKF,QAAQyC,KAAK5F,GAC3DqD,EAAKiD,WACT,EAEA1C,aAAc,WASV,IARA,IAAIP,EAAOvE,KACPoD,EAAYmB,EAAKnB,UACjBmC,EAAMhB,EAAKD,QAAQiB,IACnBC,EAAMjB,EAAKD,QAAQkB,IACnBM,EAAevB,EAAKD,QAAQwB,aACxB3F,EAAMsH,SAASlD,EAAKD,QAAQwB,cAC5B7B,EAECyD,EAAInC,EAAKmC,GAAKlC,EAAKkC,GAAK,EAAG,CAChC,IAAIC,EAAc1H,EAAE8D,EAA6B,CAC7CC,OAAQd,EACRW,MAAO6D,KAGXC,EAAYnB,OAAOV,EAAa,CAC5BzC,KAAMH,EAAaG,KACnBuE,MAAOF,KAGXtE,EAAUoD,OAAOmB,EACrB,CACJ,EAEA5C,eAAgB,WACZ,IACI8C,EADO7H,KACMoD,UAAUwD,KAAKtE,EAAMH,GAGtC,IAFuC,IAF5BnC,KAEQsE,QAAQqB,QAO3B,IAAK,IAAI+B,EAAI,EAAGA,EAAIG,EAAMX,OAAQQ,GAAK,EACnCzH,EAAE4H,EAAMH,IAAIZ,KAAK7D,EAA4BhD,EAAE4H,EAAMH,IAAII,KAAK7E,SAL9D4E,EAAME,WAAW9E,EAOzB,EAEA+B,aAAc,WACV,IAAIT,EAAOvE,KACPuD,EAAQgB,EAAK2B,QAAQU,KAAKtE,EAAMY,EAAaK,OAC7CqC,GAAiC,IAAvBrB,EAAKD,QAAQf,OAAkBgB,EAAKD,QAAQf,MAAMkE,WAAavH,EACzEuH,EAAWlD,EAAKD,QAAQf,OAASgB,EAAKD,QAAQf,MAAMkE,SAChDtH,EAAMsH,SAASlD,EAAKD,QAAQf,MAAMkE,UAClC7D,EAER,IAAKgC,GAA4B,OAAjBrB,EAAKV,QAGjB,OAFAN,EAAMyE,cACNzD,EAAKhB,MAAQ,MAIZA,EAAM2D,SACP3C,EAAKhB,MAAQA,EAAQtD,EAtMG,GAAG+D,YACvC,gBAAgB1D,EAAO0D,EAAOT,kBAqMK0E,CAA8B,CACjDjE,OAAQd,KAGZqB,EAAK2B,QAAQM,OAAOjD,IAGxBA,EAAM2E,KAAKT,EAAS,CAChBzD,OAAQd,EACRW,MAAOU,EAAKV,QAAU,GAAM,EAAIU,EAAKV,QAAUU,EAAK4D,QAAQ5D,EAAKV,SACjEC,SAAUS,EAAKD,QAAQkB,MAE/B,EAEAP,eAAgB,WACZ,IAAIV,EAAOvE,KAENoI,MAAM7D,EAAKD,QAAQT,QACpBU,EAAKV,MAAMU,EAAKD,QAAQT,MAEhC,EAEAqB,cAAe,WACX,IAAIX,EAAOvE,KACPqI,EAAkB9D,EAAKD,QAAQoB,WAAahD,EAEhD6B,EAAK2B,QACAoC,GAAG7G,EAAO8C,EAAKgE,OAAOC,KAAKjE,IAC3B+D,GAAG5G,EAAM6C,EAAKkE,MAAMD,KAAKjE,IACzB+D,GAAGnH,EAASoD,EAAKmE,SAASF,KAAKjE,IAEpCA,EAAKnB,UACAkF,GAAGlH,EAAOkB,EAAMH,EAAOoC,EAAKoE,OAAOH,KAAKjE,IACxC+D,GAAGjH,EAAYiB,EAAMH,EAAOoC,EAAKqE,YAAYJ,KAAKjE,IAClD+D,GAAGhH,EAAYgB,EAAMH,EAAOoC,EAAKsE,YAAYL,KAAKjE,IAClD+D,GAAG9G,EAAW+C,EAAKuE,WAAWN,KAAKjE,IAEpC8D,GACA9D,EAAKnB,UAAUkF,GAAG/G,EAAWe,EAAMH,EAAOoC,EAAKwE,WAAWP,KAAKjE,GAEvE,EAEAgE,OAAQ,WACJ,IAMIS,EAAiBC,EAAgBC,EANjC3E,EAAOvE,KACPoD,EAAYmB,EAAKnB,UACjB8C,EAAU3B,EAAK2B,QACfiD,EAAe5E,EAAKnB,UAAUwD,KAAKtE,EAAMF,GACzCyD,EAAqBtB,EAAKD,QAAQuB,mBAClCuD,EAAehG,EAAUiG,WAAWC,SAGnC/E,EAAKD,QAAQsB,SAAWrB,EAAKD,QAAQb,UAAYc,EAAKgF,aACnDhF,EAAKD,QAAQb,UACbc,EAAK2B,QAAQD,SAAS7D,IAK9B8D,EAAQD,SAAS7D,GACjB+G,EAAaK,YAAYpH,GAEJ,OAAjBmC,EAAKV,SAA2C,OAAvBgC,GACzBtB,EAAKV,MAAMgC,GAGfmD,EAAkB5F,EAAUwD,KAAKtE,EAAMS,EAAiBD,UAAU2G,OAClER,EAAiB7F,EAAUwD,KAAKtE,EAAMS,EAAiBF,SAAS4G,QAEhEP,GADAA,EAAcF,EAAgB9B,OAAS8B,EAAkBC,GAC/B/B,OAASgC,EAAcE,GAErCnD,SAAS7D,GACzB,EAEAqG,MAAO,WACH,IAAIlE,EAAOvE,KAEXuE,EAAKgF,cAAe,EAEpBhF,EAAK2B,QAAQsD,YAAYpH,GACzBmC,EAAKnB,UAAUwD,KAAKtE,EAAMF,GAASoH,YAAYpH,GAE/CmC,EAAKF,QAAQqF,QAAQ,OACzB,EAEAZ,WAAY,WACG9I,KAENuJ,cAAe,CACxB,EAEAb,SAAU,SAASiB,GACf,IAWIC,EAAMC,EAAOX,EAAaY,EAX1BvF,EAAOvE,KACPoD,EAAYmB,EAAKnB,UACjB2G,EAAexF,EAAKyF,YAEpBC,EADY1F,EAAKD,QAAQoB,WAAahD,EACnBR,EAAuB,EAC1CgI,EAAiB9G,EAAUwD,KAAKtE,EAAMH,GACtCgI,EAAiB/G,EAAUwD,KAAKtE,EAAMF,GACtCgI,EAAeF,EAAetC,MAAMuC,GACpCE,EAAQlK,EAAMmK,QAAQD,MAAM9F,EAAK2B,SACjCqE,EAAUnC,MAAM2B,GAChBS,EAAUb,EAAEa,QAGXjG,EAAKD,QAAQsB,UAAWrB,EAAKD,QAAQb,WAI1CmG,EAAQY,IAAY7J,EAAK8J,OAASJ,GAAWG,IAAY7J,EAAK+J,OAASL,EACvER,EAASW,IAAY7J,EAAK+J,MAAQL,GAAWG,IAAY7J,EAAK8J,QAAUJ,EAEpET,GAAQY,IAAY7J,EAAKgK,MACzBzB,EAAcqB,EAAUL,EAAeU,GAAG,GAAK3K,EAAEiK,EAAeE,EAAe,IAC/EN,EAAYS,EAAUhG,EAAKgD,UAAYwC,EAAeE,EAEtD1F,EAAKsG,QAAQ3B,EAAaY,GAC1BH,EAAEmB,kBACKjB,GAASW,IAAY7J,EAAKoK,IACjC7B,EAAcqB,EAAUL,EAAeU,GAAG,GAAK3K,EAAEiK,EAAeE,EAAe,IAC/EN,EAAYS,EAAUhG,EAAKgD,UAAYwC,EAAeE,EAEtD1F,EAAKsG,QAAQ3B,EAAaY,GAC1BH,EAAEmB,kBACKN,IAAY7J,EAAKqK,MACxB9B,EAAcgB,EAAeU,GAAG,GAEhCrG,EAAKsG,QAAQ3B,EAAa3E,EAAKgD,WAC/BoC,EAAEmB,kBACKN,IAAY7J,EAAKsK,MACxB/B,EAAcgB,EAAeU,GAAGV,EAAehD,OAAS,GAExD3C,EAAKsG,QAAQ3B,GACbS,EAAEmB,kBAEV,EAEAI,iBAAkB,SAASC,GAUvB,OATWnL,KAGFsE,QAAQ6G,GACFhL,EAAMsH,SAJVzH,KAIwBsE,QAAQ6G,IAE5BlH,CAInB,EAEAmH,gBAAiB,SAASC,EAAQF,GAC9B,IACI1D,EADOzH,KACSkL,iBAAiBC,GACjCG,EAAcpI,EAAaG,KAE3B8H,GAAQxI,EAAoBG,UAAYqI,GAAQxI,EAAoBE,UACpEyI,EAAcpI,EAAaI,cAG/B,IAAK,IAAIoE,EAAI,EAAGA,EAAI2D,EAAOnE,OAAQQ,GAAK,EACpCzH,EAAEoL,EAAO3D,IAAIQ,KAAKT,EAAS,CAAEpE,KAAMiI,EAAa1D,MAAO3H,EAAEoL,EAAO3D,IAAIE,UAE5E,EAEA2D,qBAAsB,SAASC,EAAOH,GAClC,IAAI9G,EAAOvE,KACPyL,EAAWhJ,GAA0B8B,EAAKD,QAAQmB,UAClD4C,EAAkB9D,EAAKD,QAAQoB,WAAahD,EAC5CgJ,EAAoBnH,EAAKnB,UAAUwD,KAAKtE,EAAMS,EAAiBD,UAC/D6I,EAAmBF,EAAWJ,EAASA,EAAOO,UAAUC,UACxDC,EAAaL,EAAWC,EAAoBL,EAAOU,UACnDC,EAAerJ,EAAoB6I,GACnCS,EAAalJ,EAAiByI,GAElCM,EAAWtC,YAAYyC,GACvBN,EAAiB1F,SAASgG,GAE1B1H,EAAK6G,gBAAgBO,EAAkBK,KAEjCP,GAAcA,GAAYD,GAASzK,GAAY4K,EAAiBO,IAAI,IAAMR,EAAkBQ,IAAI,KAClG3H,EAAK6G,gBAAgBU,EAAYnJ,EAAoBC,MAGrDyF,GACA9D,EAAK6G,gBAAgBC,EAAQ1I,EAAoBC,KAEzD,EAEAuJ,QAAS,SAASd,EAAQe,GACtB,IAAI7H,EAAOvE,KACP+J,EAAexF,EAAKV,QAExBU,EAAKV,MAAMuI,GAEX7H,EAAKmF,QAAQ7I,EAAQ,CAAEwK,OAAQA,EAAQgB,SAAUtC,EAAcqC,SAAU7H,EAAKV,SAClF,EAEA8E,OAAQ,SAASgB,GACb,IAAIpF,EAAOvE,KACPqL,EAASpL,EAAE0J,EAAE0B,QAAQiB,QAAQhK,EAAMH,GACnCoK,EAAgBlB,EAAOvE,KAAK7D,GAE3BsB,EAAKD,QAAQsB,UAAWrB,EAAKD,QAAQb,WAItC4H,EAAOvD,KAAK7E,KACZsJ,EAAgBlB,EAAOvD,KAAK7E,IAGhCsB,EAAKsG,QAAQQ,EAAQkB,GACzB,EAEA1B,QAAS,SAASQ,EAAQe,GACtB,IAAI7H,EAAOvE,KACP6D,EAAQuE,MAAMgE,GAAYf,EAAOvE,KAAK7D,GAAkCmJ,EAExEvI,GAASU,EAAKV,SAAWA,EAAQU,EAAKgD,WAAa1D,EAAQU,EAAKD,QAAQkB,MAI5EjB,EAAKmF,QAAQ5I,EAAQ,CAAEuK,OAAQA,IAE/B9G,EAAK4H,QAAQd,EAAQxH,GAErBU,EAAKgE,SACT,EAEAK,YAAa,SAASe,GAClB,IAAIpF,EAAOvE,KACPqL,EAASpL,EAAE0J,EAAE0B,QACbzI,EAAOyI,EAAOiB,QAAQhK,EAAMH,GAE3BoC,EAAKD,QAAQsB,UAAWrB,EAAKD,QAAQb,WAI1Cc,EAAKiI,YAAa,EAEdnB,EAAOoB,GAAGnK,EAAMH,IAChBoC,EAAKgH,qBAAqBvK,EAAS4B,GAE3C,EAEAiG,YAAa,SAASc,GAClB,IAMI+C,EACAjF,EAPAlD,EAAOvE,KACPyF,EAAYlB,EAAKD,QAAQmB,UACzB4C,EAAkB9D,EAAKD,QAAQoB,WAAahD,EAC5C+I,EAAWhG,GAAahD,EACxBG,EAAO3C,EAAE0J,EAAE0B,QAAQiB,QAAQhK,EAAMH,GACjC0F,EAAQtD,EAAKnB,UAAUwD,KAAKtE,EAAMH,GAItCoC,EAAKiI,YAAa,EAElB,IAAIG,EAAc,SAAS/J,GACvB8J,EAAUnI,EAAKyF,YAAc,GAAM,GAAKpH,EAAK6J,GAAGlI,EAAKnB,UAAUwD,KAAK,eAAiBgG,KAAKC,KAAKtI,EAAKyF,aAAe,MACnHvC,GAAY7E,EAAKkK,SAAS/J,EAAiBD,YAAaF,EAAKkK,SAAS/J,EAAiBF,UAAc6J,EAEjG/J,EAAoBC,KADpBD,EAAoBG,SAGxByB,EAAK6G,gBAAgBxI,EAAM6E,GAEvBY,GAAmBqE,GAAW9J,EAAKkK,SAAS/J,EAAiBD,WAC7DyB,EAAKwI,yBAAyBnK,EAAM7B,EAE5C,EAIA,GAFA8G,EAAM2B,YAAYzG,EAAiBF,SAE/B4I,EACAkB,EAAY/J,QAEZ,IAAK,IAAI8E,EAAI,EAAGA,EAAIG,EAAMX,OAAQQ,GAAK,EAAG,CAGtCiF,EAFkB1M,EAAE4H,EAAMH,IAG9B,CAER,EAEAqB,WAAY,SAASY,GACjB,IAEIqD,EAAeC,EAAYC,EAF3B3I,EAAOvE,KACP4C,EAAO3C,EAAE0J,EAAE0B,QAAQiB,QAAQhK,EAAMH,GAGhCoC,EAAKiI,aAIN5J,EAAKsE,SACL8F,EAAgBrD,EAAEwD,QAClBF,EAAarK,EAAKwK,SAASxD,KAE3BsD,EAAWN,KAAKS,IAAIL,EAAgBC,GAEpC1I,EAAKwI,yBAAyBnK,EAAM5B,GACpCuD,EAAK+I,yBAAyB1K,EAAMsK,IAGxCvD,EAAEmB,iBACN,EAEAyC,UAAW,WAIP,OAFYpN,EAAMmK,QAAQD,MADfrK,KAC0BkG,SAGjC,mBACA,kBACR,EAEA6G,yBAA0B,SAASnK,EAAMoJ,GACrC,IAGIwB,EAAQC,EAHRlJ,EAAOvE,KACP0N,EAAO9K,EAAKgE,KAAKtE,EAAMN,GACvB2L,EAAepJ,EAAK2G,iBAAiBvI,EAAoBqJ,IAGxD0B,EAAKxG,OAqBNwG,EAAKxF,KAAKyF,EAAa,CACnBtK,KAAMH,EAAaI,iBArBvBkK,EAASjJ,EAAKyF,YAAc,GAAM,EAClCyD,EAAWlJ,EAAKqJ,cAAchL,IAC9B8K,EAAOzN,EAAE,iBAAiBgG,SAASjE,IAE9BwE,OAAOmH,EAAa,CACrBtK,KAAMH,EAAaI,gBAGvBoK,EAAKG,IAAI,YAAaL,EAASjJ,EAAKgJ,YAAc,IAElD3K,EAAK4D,OAAOkH,GAEZ9K,EAAK4D,OAAOvG,EAAE,iBAAiB4N,IAAI,CAC/BC,MAASL,EACTM,OAAUN,EACVO,QAAW,WAGfzJ,EAAK0J,iCAAiCrL,EAAM4K,GAMpD,EAEAF,yBAA0B,SAAS1K,EAAMsK,GACrC,IAAI3I,EAAOvE,KACPkO,EAAWtL,EAAKgE,KAAKtE,EAAMN,GAC3B8H,EAAY3J,EAAMS,WAAWgC,EAAKkF,KAAK7E,IACvCoH,EAAQlK,EAAMmK,QAAQD,MAAMrK,KAAKkG,SACjCiI,EAAavN,EAAWgC,EAAKwL,aAAe,GAC5CZ,EAAUnD,EAAgC6C,EAAWiB,EAAnCjB,EAAWiB,EAE7BvL,EAAKsE,QAAUgH,EAAShH,SACxBgH,EAASL,IAAI,YAAaL,EAASjJ,EAAKgJ,YAAc,IAElDvN,KAAKsE,QAAQqB,SACb/C,EAAKkE,KAAK7D,EAA4BuK,EAClCjJ,EAAK4D,QAAQ2B,EAAY5H,GAAwB4H,GAIzDlH,EAAKkF,KAAK7E,EAAgCuK,EACtC1D,EAAY5H,EAAuB4H,GAGvCvF,EAAK0J,iCAAiCrL,EAAM4K,GAEpD,EAEAS,iCAAkC,SAASrL,EAAM4K,GAC7C,IAAIa,EAAazL,EAAKgE,KAAKtE,EAAML,GAC7BqM,EAAc1L,EAAKyG,WAAWC,QAE7B+E,EAAWnH,SACZmH,EAAaC,EAAYlI,KAAKnG,EAAE,iBAC3BgG,SAAShE,IACToE,SAEb,EAEAkI,8BAA+B,SAAS3L,GACpC,GAAKA,EAIL,OAAOhC,EAAWgC,EAAKgE,KAAK,uBAAuBiH,IAAI,aAC3D,EAEAD,cAAe,SAAShL,GACpB,GAAKA,EAIL,OAAOA,EAAKkL,SAAW9N,KAAKuO,8BAA8B3L,IAAS,CACvE,EAEA4L,eAAgB,SAAS3K,GACrB,IAAIU,EAAOvE,KACPyO,EAAyB,OAAV5K,EAAiB,GAAKA,EACrC0B,EAAM3E,EAAW2D,EAAKF,QAAQyC,KAAKvE,KAASgC,EAAKD,QAAQiB,IACzDC,EAAM5E,EAAW2D,EAAKF,QAAQyC,KAAKtE,KAAS+B,EAAKD,QAAQkB,IAE7DjB,EAAKF,QAAQiD,IAAI/C,EAAK4D,QAAQsG,IAC9BlK,EAAK2B,QAAQY,KAAKjF,EAAe0C,EAAK4D,QAAQtE,KAAW0B,EAAMC,GAAO,EAC1E,EAEAkJ,sBAAuB,SAAS7K,GAC5B,IAAIU,EAAOvE,KACPqI,EAAkB9D,EAAKD,QAAQoB,WAAahD,EAC5CiM,EAA2B,OAAV9K,EAAiB,OAAS9C,EAC3C6N,EAAsB,OAAV/K,EACRU,EAAKnB,UAAUwD,KAAKtE,EAAMS,EAAiBD,UAAU2G,OACrDlF,EAAKnB,UAAUwD,KAAKtE,EAAMH,EAAQ,gBAAkByK,KAAKC,KAAKhJ,GAAS,MAEjE,OAAVA,GACAU,EAAKnB,UAAUwD,KAAKtE,EAAMH,GAAOqH,YAAYzG,EAAiBD,UAGlEyB,EAAKgH,qBAAqBoD,EAAgBC,GAEtCvG,GAA6B,OAAVxE,GACnBU,EAAKwI,yBAAyB6B,EAAW7N,GAG7CwD,EAAKS,cACT,EAEAwC,UAAW,WACP,IAAIjD,EAAOvE,KACPqE,EAAUE,EAAKF,QACf6B,EAAU3B,EAAK2B,QACfzC,EAAWc,EAAKD,QAAQb,SACxBmC,EAAUrB,EAAKD,QAAQsB,QAEvBnC,GAAYmC,GACZvB,EAAQyC,KAAK5F,EAAUA,GACvBgF,EAAQY,KAAK/E,GAAe,KAE5BsC,EAAQwK,KAAK3N,GAAU,GACvBgF,EAAQ6B,WAAWhG,IAGnB6D,GACAvB,EAAQwK,KAAK5N,GAAU,GACvBiF,EAAQ6B,WAAWjG,GACnBoE,EAAQY,KAAKzE,EAAU,KAEvBgC,EAAQyC,KAAK7F,EAAUA,GACvBiF,EAAQY,KAAKhF,GAAe,GAC5BoE,EAAQ6B,WAAW1F,IAGvB6D,EAAQ4I,YAAY5L,EAAaM,UAAWoC,GAC5CM,EAAQ4I,YAAY5L,EAAaO,SAAUA,GAAYmC,EAC3D,EAEAuC,QAAS,SAAStE,GACd,OAAO1D,EAAM4O,SAASlL,EAAO,KAAM1D,EAAM6O,aAAa3J,KAC1D,EAEAxB,MAAO,SAASA,GACZ,IAAIU,EAAOvE,KACPqI,EAAkB9D,EAAKD,QAAQoB,WAAahD,EAEhD,OAAc,OAAVmB,GACAU,EAAKiK,eAAe3K,QACpBU,EAAKmK,sBAAsB7K,IAOjB,QAFdA,EAAQjD,EAAWiD,IAGfA,EAAQjD,EAAW2D,EAAKF,QAAQiD,QAIpCzD,EAAQ+I,KAAKpH,IAAIjB,EAAKgD,UAAWqF,KAAKrH,IAAI1B,EAAOU,EAAKD,QAAQkB,MAG1DjB,EAAKyF,YADL3B,EACmBzH,EAAW2D,EAAK4D,QAAQyE,KAAKC,KAAa,EAARhJ,GAAa,IAE/C+I,KAAKqC,MAAMpL,GAGlCU,EAAKiK,eAAe3K,QACpBU,EAAKmK,sBAAsB7K,GAC/B,EAEAqL,MAAO,WACQlP,KAEN6D,MAAM,KACf,EAEAsL,OAAQ,SAASA,GACb,IAAI5K,EAAOvE,UAEU,IAAVmP,IACPA,GAAS,GAGb5K,EAAKD,QAAQsB,QAAUuJ,EACvB5K,EAAKD,QAAQb,UAAW,EAExBc,EAAKiD,WACT,EAEA/D,SAAU,SAASA,GACf,IAAIc,EAAOvE,UAEY,IAAZyD,IACPA,GAAW,GAGfc,EAAKD,QAAQb,SAAWA,EACxBc,EAAKD,QAAQsB,SAAU,EAEvBrB,EAAKiD,WACT,EAEA4H,WAAY,SAAS9K,GACjB,IAAIC,EAAOvE,KAEXuE,EAAKD,QAAUrE,EAAES,OAAO6D,EAAKD,QAASA,GAElCA,EAAQsB,UAAY1F,GACpBqE,EAAK4K,OAAO7K,EAAQsB,SAGpBtB,EAAQb,WAAavD,GACrBqE,EAAKd,SAASa,EAAQb,UAGtBa,EAAQf,QAAUrD,GAClBqE,EAAKS,eAGLV,EAAQqB,UAAYzF,GACpBqE,EAAKQ,iBAGLT,EAAQT,QAAU3D,GAClBqE,EAAKV,MAAMS,EAAQT,QAGnBS,EAAQiB,KAAOjB,EAAQkB,MAAQtF,GAC/BoE,EAAQwB,eAAiB5F,GACzBoE,EAAQyB,mBAAqB7F,GAC7BoE,EAAQ0B,kBAAoB9F,KACxBqE,EAAKnB,UAAUiM,QACf9K,EAAKO,eACLP,EAAKS,eACLT,EAAKQ,iBACLR,EAAKU,iBACLV,EAAK+K,uBAAyBnL,EAAOoL,UAAUD,uBAE3D,EAEAE,QAAS,WACL,IAAIjL,EAAOvE,KAEXuE,EAAK2B,QAAQuJ,IAAIjP,GACjB+D,EAAKnB,UAAUqM,IAAIjP,GAEnBC,EAAO+D,GAAGgL,QAAQ/K,KAAKF,EAC3B,IAIJlE,EAAGqP,OAAOvL,EACf,CA71BC,CA61BC/D,OAAOD,MAAMwP,QACJxP,KAIf","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\",\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 = ({ styles }) =>\n ``;\n\n var RATING_CONTAINER_TEMPLATE = ({ styles }) =>\n ``;\n\n var RATING_LABEL_WRAPPER_TEMPLATE = ({ styles }) =>\n ``;\n\n var RATING_LABEL_TEMPLATE = ({ value, maxValue }) =>\n `${encode(value)} / ${encode(maxValue)}`;\n\n var RATING_ITEM_WRAPPER_TEMPLATE = ({ styles, value }) =>\n ``;\n\n var RATING_ITEM_TEMPLATE = ({ icon }) => kendo.ui.icon({\n icon: icon,\n size: 'xlarge'\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"]}