UNPKG

@progress/kendo-ui

Version:

This package is part of the [Kendo UI for jQuery](http://www.telerik.com/kendo-ui) suite.

3 lines (2 loc) 24.9 kB
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("kendo.core.js"),require("kendo.data.js")):"function"==typeof define&&define.amd?define(["exports","kendo.core.min","kendo.data"],t):t(((e="undefined"!=typeof globalThis?globalThis:e||self).kendo=e.kendo||{},e.kendo._globals=e.kendo._globals||{},e.kendo._globals.Binder={}))}(this,(function(e){!function(e,t){var i=window.kendo,n=i.htmlEncode,s=i.Observable,a=i.data.ObservableObject,r=i.data.ObservableArray,d={}.toString,o={},h=i.Class,l="value",c="source",g="events",u="checked",f=!0,b="change";!function(){var e=document.createElement("a");try{delete e.test}catch(e){f=!1}}();var v=s.extend({init:function(e,t){var i=this;s.fn.init.call(i),i.source=e[0],i.parents=e,i.path=t,i.dependencies={},i.dependencies[t]=!0,i.observable=i.source instanceof s,i._access=function(e){i.dependencies[e.field]=!0},i.observable&&(i._change=function(e){i.change(e)},i.source.bind(b,i._change))},_parents:function(){var t=this.parents,i=this.get();if(i&&"function"==typeof i.parent){var n=i.parent();e.inArray(n,t)<0&&(t=[n].concat(t))}return t},change:function(e){var t,i,n=e.field,s=this;if("this"===s.path)s.trigger(b,e);else for(t in s.dependencies)if(0===t.indexOf(n)&&(!(i=t.charAt(n.length))||"."===i||"["===i)){s.trigger(b,e);break}},start:function(e){e.bind("get",this._access)},stop:function(e){e.unbind("get",this._access)},get:function(){var e=this,i=e.source,n=0,s=e.path,r=i;if(!e.observable)return r;for(e.start(e.source),r=i.get(s);r===t&&i;)(i=e.parents[++n])instanceof a&&(r=i.get(s));if(r===t)for(i=e.source;r===t&&i;)(i=i.parent())instanceof a&&(r=i.get(s));return"function"==typeof r&&((n=s.lastIndexOf("."))>0&&(i=i.get(s.substring(0,n))),e.start(i),r=i!==e.source?r.call(i,e.source):r.call(i),e.stop(i)),i&&i!==e.source&&(e.currentSource=i,i.unbind(b,e._change).bind(b,e._change)),e.stop(e.source),r},set:function(e){var t=this.currentSource||this.source,n=i.getter(this.path)(t);"function"==typeof n?t!==this.source?n.call(t,this.source,e):n.call(t,e):t.set(this.path,e)},destroy:function(){this.observable&&(this.source.unbind(b,this._change),this.currentSource&&this.currentSource.unbind(b,this._change)),this.unbind()}}),p=v.extend({get:function(){var e,t=this.source,i=this.path,n=0;for(e=t.get(i);!e&&t;)(t=this.parents[++n])instanceof a&&(e=t.get(i));if(e)return e.bind(t)}}),m=v.extend({init:function(e,t,i){v.fn.init.call(this,e,t),this.template=i},render:function(e){var t;return this.start(this.source),t=i.render(this.template,e),this.stop(this.source),t}}),y=h.extend({init:function(e,t,i){this.element=e,this.bindings=t,this.options=i},bind:function(e,t){var i=this;(e=t?e[t]:e).bind(b,(function(e){i.refresh(t||e)})),i.refresh(t)},destroy:function(){}}),w=y.extend({dataType:function(){return(this.element.getAttribute("data-"+i.ns+"type")||this.element.type||"text").toLowerCase()},parsedValue:function(){return this._parseValue(this.element.value,this.dataType())},_parseValue:function(e,t){return"date"==t?e=i.parseDate(e,"yyyy-MM-dd"):"datetime-local"==t?e=i.parseDate(e,["yyyy-MM-ddTHH:mm:ss","yyyy-MM-ddTHH:mm"]):"number"==t?e=i.parseFloat(e):"boolean"==t&&(e=e.toLowerCase(),e=null!==i.parseFloat(e)?Boolean(i.parseFloat(e)):"true"===e.toLowerCase()),e}});function _(t,n,s){return y.extend({init:function(e,t,i){var n=this;y.fn.init.call(n,e.element[0],t,i),n.widget=e,n._dataBinding=n.dataBinding.bind(n),n._dataBound=n.dataBound.bind(n),n._itemChange=n.itemChange.bind(n)},itemChange:function(e){T(e.item[0],e.data,this._ns(e.ns),[e.data].concat(this.bindings[t]._parents()))},dataBinding:function(e){var t,i,n=this.widget,s=e.removedItems||n.items();for(t=0,i=s.length;t<i;t++)A(s[t],!1)},_ns:function(t){t=t||i.ui;var n=[i.ui,i.dataviz.ui,i.mobile.ui];return n.splice(e.inArray(t,n),1),n.unshift(t),i.rolesFromNamespaces(n)},dataBound:function(e){var s,a,r,d,o=this.widget,h=e.addedItems||o.items(),l=o[n],c=i.data.HierarchicalDataSource;if(!(c&&l instanceof c)&&h.length)for(r=e.addedDataItems||l.flatView(),d=this.bindings[t]._parents(),s=0,a=r.length;s<a;s++)h[s]&&T(h[s],r[s],this._ns(e.ns),[r[s]].concat(d))},refresh:function(e){var a,r,d,o=this,h=o.widget;(e=e||{}).action||(o.destroy(),h.bind("dataBinding",o._dataBinding),h.bind("dataBound",o._dataBound),h.bind("itemChange",o._itemChange),a=o.bindings[t].get(),h[n]instanceof i.data.DataSource&&h[n]!=a&&a&&(a instanceof i.data.DataSource?h[s](a):a._dataSource?h[s](a._dataSource):(r=i.ui.Select&&h instanceof i.ui.Select,d=i.ui.MultiSelect&&h instanceof i.ui.MultiSelect,i.ui.DropDownTree&&h instanceof i.ui.DropDownTree?h.treeview[n].data(a):h[n].data(a),o.bindings.value&&(r||d)&&h.value(O(o.bindings.value.get(),h.options.dataValueField)))))},destroy:function(){var e=this.widget;e.unbind("dataBinding",this._dataBinding),e.unbind("dataBound",this._dataBound),e.unbind("itemChange",this._itemChange)}})}o.attr=y.extend({refresh:function(e){this.element.setAttribute(e,this.bindings.attr[e].get())}}),o.css=y.extend({init:function(e,t,i){y.fn.init.call(this,e,t,i),this.classes={}},refresh:function(t){var i=e(this.element),n=this.bindings.css[t];(this.classes[t]=n.get())?i.addClass(t):i.removeClass(t)}}),o.style=y.extend({refresh:function(e){this.element.style[e]=this.bindings.style[e].get()||""}}),o.enabled=y.extend({refresh:function(){this.bindings.enabled.get()?this.element.removeAttribute("disabled"):this.element.setAttribute("disabled","disabled")}}),o.readonly=y.extend({refresh:function(){this.bindings.readonly.get()?this.element.setAttribute("readonly","readonly"):this.element.removeAttribute("readonly")}}),o.disabled=y.extend({refresh:function(){this.bindings.disabled.get()?this.element.setAttribute("disabled","disabled"):this.element.removeAttribute("disabled")}}),o.events=y.extend({init:function(e,t,i){y.fn.init.call(this,e,t,i),this.handlers={}},refresh:function(t){var i=e(this.element),n=this.bindings.events[t],s=this.handlers[t];s&&i.off(t,s),s=this.handlers[t]=n.get(),i.on(t,n.source,s)},destroy:function(){var t,i=e(this.element);for(t in this.handlers)i.off(t,this.handlers[t])}}),o.text=y.extend({refresh:function(){var t=this.bindings.text.get(),n=this.element.getAttribute("data-"+i.ns+"format")||"";null==t&&(t=""),e(this.element).text(i.toString(t,n))}}),o.visible=y.extend({refresh:function(){this.bindings.visible.get()?this.element.style.display="":this.element.style.display="none"}}),o.invisible=y.extend({refresh:function(){this.bindings.invisible.get()?this.element.style.display="none":this.element.style.display=""}}),o.html=y.extend({refresh:function(){this.element.innerHTML=this.bindings.html.get()}}),o.value=w.extend({init:function(t,i,n){w.fn.init.call(this,t,i,n),this._change=this.change.bind(this),this.eventName=n.valueUpdate||b,e(this.element).on(this.eventName,this._change),this._initChange=!1},change:function(){this._initChange=this.eventName!=b,this.bindings[l].set(this.parsedValue()),this._initChange=!1},refresh:function(){if(!this._initChange){var e=this.bindings[l].get();null==e&&(e="");var t=this.dataType();"date"==t?e=i.toString(e,"yyyy-MM-dd"):"datetime-local"==t&&(e=i.toString(e,"yyyy-MM-ddTHH:mm:ss")),this.element.value=e}this._initChange=!1},destroy:function(){e(this.element).off(this.eventName,this._change)}}),o.source=y.extend({init:function(e,t,n){y.fn.init.call(this,e,t,n);var s=this.bindings.source.get();s instanceof i.data.DataSource&&!1!==n.autoBind&&s.fetch()},refresh:function(e){var t=this,n=t.bindings.source.get();n instanceof r||n instanceof i.data.DataSource?"add"==(e=e||{}).action?t.add(e.index,e.items):"remove"==e.action?t.remove(e.index,e.items):"itemchange"!=e.action&&t.render():t.render()},container:function(){var e=this.element;return"table"==e.nodeName.toLowerCase()&&(e.tBodies[0]||e.appendChild(document.createElement("tbody")),e=e.tBodies[0]),e},template:function(){var e=this.options,t=e.template,s=this.container().nodeName.toLowerCase();return t||(t="select"==s?e.valueField||e.textField?t=>{const s=i.getter(e.valueField||e.textField)(t),a=i.getter(e.textField||e.valueField)(t);return`<option value="${n(s)}">${n(a)}</option>`}:e=>`<option>${n(e)}</option>`:"tbody"==s?e=>`<tr><td>${n(e)}</td></tr>`:"ul"==s||"ol"==s?e=>`<li>${n(e)}</li>`:e=>`${n(e)}`,t=i.template(t)),t},add:function(t,n){var s,a,r,d,o=this.container(),h=o.cloneNode(!1),l=o.children[t];if(e(h).html(i.render(this.template(),n)),h.children.length)for(s=this.bindings.source._parents(),a=0,r=n.length;a<r;a++)d=h.children[0],o.insertBefore(d,l||null),T(d,n[a],this.options.roles,[n[a]].concat(s))},remove:function(e,t){var i,n=this.container();for(i=0;i<t.length;i++){var s=n.children[e];A(s,!0),s.parentNode==n&&n.removeChild(s)}},render:function(){var t,n,s,a=this.bindings.source.get(),o=this.container(),h=this.template();if(null!=a)if(a instanceof i.data.DataSource&&(a=a.view()),a instanceof r||"[object Array]"===d.call(a)||(a=[a]),this.bindings.template){if(I(o,!0),e(o).html(this.bindings.template.render(a)),o.children.length)for(t=this.bindings.source._parents(),n=0,s=a.length;n<s;n++)T(o.children[n],a[n],this.options.roles,[a[n]].concat(t))}else e(o).html(i.render(h,a))}}),o.input={checked:w.extend({init:function(t,i,n){w.fn.init.call(this,t,i,n),this._change=this.change.bind(this),e(this.element).change(this._change)},change:function(){var e=this.element,t=this.value();if("radio"==e.type)t=this.parsedValue(),this.bindings[u].set(t);else if("checkbox"==e.type){var i,n=this.bindings[u].get();if(n instanceof r){if((t=this.parsedValue())instanceof Date){for(var s=0;s<n.length;s++)if(n[s]instanceof Date&&+n[s]==+t){i=s;break}}else i=n.indexOf(t);i>-1?n.splice(i,1):n.push(t)}else this.bindings[u].set(t)}},refresh:function(){var e=this.bindings[u].get(),t=e,n=this.dataType(),s=this.element;if("checkbox"==s.type)if(t instanceof r){var a=-1;if((e=this.parsedValue())instanceof Date){for(var d=0;d<t.length;d++)if(t[d]instanceof Date&&+t[d]==+e){a=d;break}}else a=t.indexOf(e);s.checked=a>=0}else s.checked=t;else"radio"==s.type&&("date"==n?e=i.toString(e,"yyyy-MM-dd"):"datetime-local"==n&&(e=i.toString(e,"yyyy-MM-ddTHH:mm:ss")),null!=e&&s.value===e.toString()?s.checked=!0:s.checked=!1)},value:function(){var e=this.element,t=e.value;return"checkbox"==e.type&&(t=e.checked),t},destroy:function(){e(this.element).off(b,this._change)}})},o.select={source:o.source.extend({refresh:function(n){var s=this,a=s.bindings.source.get();if(a instanceof r||a instanceof i.data.DataSource){if("add"==(n=n||{}).action)s.add(n.index,n.items);else if("remove"==n.action)s.remove(n.index,n.items);else if(("itemchange"==n.action||n.action===t)&&(s.render(),s.bindings.value&&s.bindings.value)){var d=O(s.bindings.value.get(),e(s.element).data("valueField"));null===d?s.element.selectedIndex=-1:s.element.value=d}}else s.render()}}),value:w.extend({init:function(t,i,n){w.fn.init.call(this,t,i,n),this._change=this.change.bind(this),e(this.element).change(this._change)},parsedValue:function(){var e,t,i,n,s=this.dataType(),a=[];for(i=0,n=this.element.options.length;i<n;i++)(t=this.element.options[i]).selected&&(e=(e=t.attributes.value)&&e.specified?t.value:t.text,a.push(this._parseValue(e,s)));return a},change:function(){var e,n,s,d,o,h,c=[],g=this.element,u=this.options.valueField||this.options.textField,f=this.options.valuePrimitive;for(o=0,h=g.options.length;o<h;o++)(n=g.options[o]).selected&&(d=(d=n.attributes.value)&&d.specified?n.value:n.text,u?c.push(d):c.push(this._parseValue(d,this.dataType())));if(u)for((e=this.bindings.source.get())instanceof i.data.DataSource&&(e=e.view()),s=0;s<c.length;s++)for(o=0,h=e.length;o<h;o++){var b=e[o].get(u);if(String(b)===c[s]){c[s]=e[o];break}}(d=this.bindings[l].get())instanceof r?d.splice.apply(d,[0,d.length].concat(c)):f||!(d instanceof a||null===d||d===t)&&u?this.bindings[l].set(c[0].get(u)):this.bindings[l].set(c[0])},refresh:function(){var e,t,n=this.element,s=n.options,d=this.bindings[l].get(),o=d,h=this.options.valueField||this.options.textField,c=this.dataType();o instanceof r||(o=new r([d])),n.selectedIndex=-1;for(var g=0;g<o.length;g++)for(d=o[g],h&&d instanceof a&&(d=d.get(h)),"date"==c?d=i.toString(o[g],"yyyy-MM-dd"):"datetime-local"==c&&(d=i.toString(o[g],"yyyy-MM-ddTHH:mm:ss")),e=0;e<s.length;e++)""===(t=s[e].value)&&""!==d&&(t=s[e].text),null!=d&&t==d.toString()&&(s[e].selected=!0,!0)},destroy:function(){e(this.element).off(b,this._change)}})},o.widget={events:y.extend({init:function(e,t,i){y.fn.init.call(this,e.element[0],t,i),this.widget=e,this.handlers={}},refresh:function(e){var t=this.bindings.events[e],i=this.handlers[e];i&&this.widget.unbind(e,i),(i=t.get())&&(this.handlers[e]=function(e){e.data=t.source,i(e),e.data===t.source&&delete e.data},this.widget.bind(e,this.handlers[e]))},destroy:function(){var e;for(e in this.handlers)this.widget.unbind(e,this.handlers[e])}}),checked:y.extend({init:function(e,t,i){y.fn.init.call(this,e.element[0],t,i),this.widget=e,this._change=this.change.bind(this),this.widget.bind(b,this._change)},change:function(){this.bindings[u].set(this.value())},refresh:function(){var e=this.bindings[u].get();"radio"===this.element.type?e!==t?this.widget.check(e.toString()===this.value()):this.widget.check(!1):this.widget.check(!0===e)},value:function(){var e=this.element,t=e.value;return"on"!=t&&"off"!=t&&"checkbox"!=this.element.type||(t=e.checked),t},destroy:function(){this.widget.unbind(b,this._change)}}),start:y.extend({init:function(e,t,i){y.fn.init.call(this,e.element[0],t,i),this._change=this.change.bind(this),this.widget=e,this.widget.bind(b,this._change)},change:function(){this.bindings.start.set(this.widget.range().start)},refresh:function(){var e=this.bindings.start.get(),t=this.widget._range?this.widget._range.end:null;this.widget.range({start:e,end:t})},destroy:function(){this.widget.unbind(b,this._change)}}),end:y.extend({init:function(e,t,i){y.fn.init.call(this,e.element[0],t,i),this._change=this.change.bind(this),this.widget=e,this.widget.bind(b,this._change)},change:function(){this.bindings.end.set(this.widget.range().end)},refresh:function(){var e=this.bindings.end.get(),t=this.widget._range?this.widget._range.start:null;this.widget.range({start:t,end:e})},destroy:function(){this.widget.unbind(b,this._change)}}),visible:y.extend({init:function(e,t,i){y.fn.init.call(this,e.element[0],t,i),this.widget=e},refresh:function(){var e=this.bindings.visible.get();this.widget.wrapper[0].style.display=e?"":"none"}}),invisible:y.extend({init:function(e,t,i){y.fn.init.call(this,e.element[0],t,i),this.widget=e},refresh:function(){var e=this.bindings.invisible.get();this.widget.wrapper[0].style.display=e?"none":""}}),floatingLabel:y.extend({init:function(e,t,i){y.fn.init.call(this,e.element[0],t,i),e.floatingLabel&&e.floatingLabel.refresh()}}),enabled:y.extend({init:function(e,t,i){y.fn.init.call(this,e.element[0],t,i),this.widget=e,this.readonly=this.element.readOnly},refresh:function(){this.widget.enable&&this.widget.enable(this.bindings.enabled.get()),this.readonly&&this.widget.readonly&&this.widget.readonly(this.readonly)}}),disabled:y.extend({init:function(e,t,i){y.fn.init.call(this,e.element[0],t,i),this.widget=e},refresh:function(){this.widget.enable&&this.widget.enable(!this.bindings.disabled.get())}}),source:_("source","dataSource","setDataSource"),value:y.extend({init:function(e,t,i){y.fn.init.call(this,e.element[0],t,i),this.widget=e,this._change=this.change.bind(this),this.widget.first(b,this._change);var n=this.bindings.value.get();this._valueIsObservableObject=!i.valuePrimitive&&(null==n||n instanceof a),this._valueIsObservableArray=n instanceof r,this._initChange=!1},_source:function(){var e;return this.widget.dataItem&&(e=this.widget.dataItem())&&e instanceof a?[e]:(this.bindings.source&&(e=this.bindings.source.get()),(!e||e instanceof i.data.DataSource)&&(e=this.widget.dataSource.flatView()),e)},change:function(){var e,t,i,n,s,a,r,o=this.widget.value(),h=this.options.dataValueField||this.options.dataTextField,l="[object Array]"===d.call(o),c=this._valueIsObservableObject,g=[];if(this._initChange=!0,h)if(""===o&&(c||this.options.valuePrimitive))o=null;else{for(r=this._source(),l&&(t=o.length,g=o.slice(0)),s=0,a=r.length;s<a;s++)if(n=(i=r[s]).get(h),l){for(e=0;e<t;e++)if(n==g[e]){g[e]=i;break}}else if(n==o){o=c?i:n;break}g[0]&&(o=this._valueIsObservableArray?g:c||!h?g[0]:g[0].get(h))}this.bindings.value.set(o),this._initChange=!1},refresh:function(){if(!this._initChange){var e,i=this.widget,n=i.options,s=n.dataTextField,d=n.dataValueField||s,o=this.bindings.value.get(),h=n.text||"",l=0,c=[];if(o===t&&(o=null),d)if(o instanceof r){for(e=o.length;l<e;l++)c[l]=o[l].get(d);o=c}else o instanceof a&&(h=o.get(s),o=o.get(d));!1!==n.autoBind||n.cascadeFrom||!i.listView||i.listView.bound()?i.value(o):(s!==d||h||(h=o),h||!o&&0!==o||!n.valuePrimitive?i._preselect(o,h):i.value(o))}this._initChange=!1},destroy:function(){this.widget.unbind(b,this._change)}}),dropdowntree:{value:y.extend({init:function(e,t,i){y.fn.init.call(this,e.element[0],t,i),this.widget=e,this._change=this.change.bind(this),this.widget.first(b,this._change),this._initChange=!1},change:function(){var e=this,i=e.bindings[l].get(),n=e.options.valuePrimitive,s=e.widget.treeview.select(),a=e.widget._isMultipleSelection()?e.widget._getAllChecked():e.widget.treeview.dataItem(s)||e.widget.value(),d=n||!1===e.widget.options.autoBind?e.widget.value():a,o=this.options.dataValueField||this.options.dataTextField;if(d=d.slice?d.slice(0):d,e._initChange=!0,i instanceof r){for(var h,c,g,u=[],f=d.length,b=0,v=0,p=i[b];p!==t;){for(g=!1,v=0;v<f;v++)if(n?d[v]==p:(c=(c=d[v]).get?c.get(o):c)==(p.get?p.get(o):p)){d.splice(v,1),f-=1,g=!0;break}g?b+=1:(u.push(p),x(i,b,1),h=b),p=i[b]}x(i,i.length,0,d),u.length&&i.trigger("change",{action:"remove",items:u,index:h}),d.length&&i.trigger("change",{action:"add",items:d,index:i.length-1})}else e.bindings[l].set(d);e._initChange=!1},refresh:function(){if(!this._initChange){var e,t,i=this.options,n=this.widget,s=i.dataValueField||i.dataTextField,d=this.bindings.value.get(),o=d,h=0,l=[];if(s)if(d instanceof r){for(e=d.length;h<e;h++)t=d[h],l[h]=t.get?t.get(s):t;d=l}else d instanceof a&&(d=d.get(s));!1===i.autoBind&&!0!==i.valuePrimitive?n._preselect(o,d):n.value(d)}},destroy:function(){this.widget.unbind(b,this._change)}})},gantt:{dependencies:_("dependencies","dependencies","setDependenciesDataSource")},multiselect:{value:y.extend({init:function(e,t,i){y.fn.init.call(this,e.element[0],t,i),this.widget=e,this._change=this.change.bind(this),this.widget.first(b,this._change),this._initChange=!1},change:function(){var e=this,i=e.bindings[l].get(),n=e.options.valuePrimitive,s=n?e.widget.value():e.widget.dataItems(),a=this.options.dataValueField||this.options.dataTextField;if(s=s.slice(0),e._initChange=!0,i instanceof r){for(var d,o,h,c=[],g=s.length,u=0,f=0,b=i[u];b!==t;){for(h=!1,f=0;f<g;f++)if(n?s[f]==b:(o=(o=s[f]).get?o.get(a):o)==(b.get?b.get(a):b)){s.splice(f,1),g-=1,h=!0;break}h?u+=1:(c.push(b),x(i,u,1),d=u),b=i[u]}x(i,i.length,0,s),c.length&&i.trigger("change",{action:"remove",items:c,index:d}),s.length&&i.trigger("change",{action:"add",items:s,index:i.length-1})}else e.bindings[l].set(s);e._initChange=!1},refresh:function(){if(!this._initChange){var e,i,n=this.options,s=this.widget,d=n.dataValueField||n.dataTextField,o=this.bindings.value.get(),h=o,l=0,c=[];if(o===t&&(o=null),d)if(o instanceof r){for(e=o.length;l<e;l++)i=o[l],c[l]=i.get?i.get(d):i;o=c}else o instanceof a&&(o=o.get(d));!1!==n.autoBind||!0===n.valuePrimitive||s._isBound()?s.value(o):s._preselect(h,o)}},destroy:function(){this.widget.unbind(b,this._change)}})},scheduler:{source:_("source","dataSource","setDataSource").extend({dataBound:function(e){var t,i,n,s,a=this.widget,r=e.addedItems||a.items();if(r.length)for(n=e.addedDataItems||a.dataItems(),s=this.bindings.source._parents(),t=0,i=n.length;t<i;t++)T(r[t],n[t],this._ns(e.ns),[n[t]].concat(s))}})},grid:{source:_("source","dataSource","setDataSource").extend({dataBound:function(e){var t,i,n,s,a=this.widget,r=e.addedItems||a.items();if(r.length)for(s=e.addedDataItems||a.dataItems(),n=this.bindings.source._parents(),t=0,i=s.length;t<i;t++)T(r[t],s[t],this._ns(e.ns),[s[t]].concat(n))}})},badge:{text:y.extend({init:function(e,t,i){y.fn.init.call(this,e.element[0],t,i),this.widget=e},refresh:function(){var e=this.bindings.text.get();null==e&&(e=""),this.widget.text(e)}})}};var x=function(e,t,i,n){i=i||0;var s,a=(n=n||[]).length,r=e.length,d=[].slice.call(e,t+i),o=d.length;if(a){for(a=t+a,s=0;t<a;t++)e[t]=n[s],s++;e.length=a}else if(i)for(e.length=t,i+=t;t<i;)delete e[--i];if(o){for(o=t+o,s=0;t<o;t++)e[t]=d[s],s++;e.length=o}for(t=e.length;t<r;)delete e[t],t++},k=h.extend({init:function(e,t){this.target=e,this.options=t,this.toDestroy=[]},bind:function(e){var t,i,n,s,a,r,d=this instanceof B,o=this.binders();for(t in e)t==l?i=!0:t==c?n=!0:t!=g||d?t==u?a=!0:"css"==t?r=!0:this.applyBinding(t,e,o):s=!0;n&&this.applyBinding(c,e,o),i&&this.applyBinding(l,e,o),a&&this.applyBinding(u,e,o),s&&!d&&this.applyBinding(g,e,o),r&&!d&&this.applyBinding("css",e,o),d&&this.target&&this.target.floatingLabel&&this.applyBinding("floatingLabel",e,o)},binders:function(){return o[this.target.nodeName.toLowerCase()]||{}},applyBinding:function(e,t,i){var n,s=i[e]||o[e],a=this.toDestroy,r=t[e];if(s)if(s=new s(this.target,t,this.options),a.push(s),r instanceof v)s.bind(r),a.push(r);else for(n in r)s.bind(r,n),a.push(r[n]);else if("template"!==e)throw new Error("The "+e+" binding is not supported by the "+this.target.nodeName.toLowerCase()+" element")},destroy:function(){var e,t,i=this.toDestroy;for(e=0,t=i.length;e<t;e++)i[e].destroy()}}),B=k.extend({binders:function(){return o.widget[this.target.options.name.toLowerCase()]||{}},applyBinding:function(e,t,i){var n,s=i[e]||o.widget[e],a=this.toDestroy,r=t[e];if(!s)throw new Error("The "+e+" binding is not supported by the "+this.target.options.name+" widget");if(s=new s(this.target,t,this.target.options),a.push(s),r instanceof v)s.bind(r),a.push(r);else for(n in r)s.bind(r,n),a.push(r[n])}});var S=/[A-Za-z0-9_\-]+:(\{([^}]*)\}|[^,}]+)/g,C=/\s/g;function D(e){var t,i,n,s,a,r,d,o={};for(t=0,i=(d=e.match(S)).length;t<i;t++)s=(n=d[t]).indexOf(":"),a=n.substring(0,s),"{"==(r=n.substring(s+1)).charAt(0)&&(r=D(r)),o[a]=r;return o}function F(e,t,i){var n,s={};for(n in e)s[n]=new i(t,e[n]);return s}function T(e,t,n,s){if(e&&!e.getAttribute("data-"+i.ns+"stop")){var a,r,d,o=e.getAttribute("data-"+i.ns+"role"),h=e.getAttribute("data-"+i.ns+"bind"),l=[],c=!0,g={};s=s||[t],(o||h)&&V(e,!1),o&&(d=function(e,t,n){var s=i.initWidget(e,{},t,n);if(s)return new B(s)}(e,n,t)),h&&(h=D(h.replace(C,"")),d||((g=i.parseOptions(e,{textField:"",valueField:"",template:"",valueUpdate:b,valuePrimitive:!1,autoBind:!0},t)).roles=n,d=new k(e,g)),d.source=t,r=F(h,s,v),g.template&&(r.template=new m(s,"",g.template)),r.click&&(h.events=h.events||{},h.events.click=h.click,r.click.destroy(),delete r.click),r.source&&(c=!1),h.attr&&(r.attr=F(h.attr,s,v)),h.style&&(r.style=F(h.style,s,v)),h.events&&(r.events=F(h.events,s,p)),h.css&&(r.css=F(h.css,s,v)),d.bind(r)),d&&(e.kendoBindingTarget=d);var u=e.children;if(c&&u&&!e.getAttribute("data-"+i.ns+"stop")){for(a=0;a<u.length;a++)l[a]=u[a];for(a=0;a<l.length;a++)T(l[a],t,n,s)}}}function M(t,n){var s,a,r,d=i.rolesFromNamespaces([].slice.call(arguments,2));for(n=i.observable(n),s=0,a=(t=e(t)).length;s<a;s++)1===(r=t[s]).nodeType&&T(r,n,d)}function V(t,n){var s=t.kendoBindingTarget;if(s&&(s.destroy(),f?delete t.kendoBindingTarget:t.removeAttribute?t.removeAttribute("kendoBindingTarget"):t.kendoBindingTarget=null),n){var a=i.widgetInstance(e(t));a&&"function"==typeof a.destroy&&a.destroy()}}function A(e,t){e&&(V(e,t),I(e,t))}function I(e,t){var i=e.children;if(i)for(var n=0,s=i.length;n<s;n++)A(i[n],t)}function O(e,t){var i,n,s=[],d=0;if(!t)return e;if(e instanceof r){for(i=e.length;d<i;d++)n=e[d],s[d]=n.get?n.get(t):n[t];e=s}else e instanceof a&&(e=e.get(t));return e}i.unbind=function(t){var i,n;for(i=0,n=(t=e(t)).length;i<n;i++)A(t[i],!1)},i.bind=M,i.data.binders=o,i.data.Binder=y,i.notify=function(e,t){var i=e.element,n=i[0].kendoBindingTarget;n&&M(i,n.source,t)},i.observable=function(e){return e instanceof a||(e=new a(e)),e},i.observableHierarchy=function(e){var t=i.data.HierarchicalDataSource.create(e);return t.fetch(),function e(t){var i,n;for(i=0;i<t.length;i++)t[i]._initChildren(),(n=t[i].children).fetch(),t[i].items=n.data(),e(t[i].items)}(t.data()),t._data._dataSource=t,t._data}}(window.kendo.jQuery);var t=kendo;e.__meta__={id:"binder",name:"MVVM",category:"framework",description:"Model View ViewModel (MVVM) is a design pattern which helps developers separate the Model (the data) from the View (the UI).",depends:["core","data"]},e.default=t,Object.defineProperty(e,"__esModule",{value:!0})})); //# sourceMappingURL=kendo.binder.min.js.map