/** * Kendo UI v2016.1.112 (http://www.telerik.com/kendo-ui) * Copyright 2016 Telerik AD. All rights reserved. * * Kendo UI commercial licenses may be obtained at * http://www.telerik.com/purchase/license-agreement/kendo-ui-complete * If you do not own a commercial license, this file shall be governed by the trial license terms. */ (function (f, define) { define('kendo.editable', [ 'kendo.datepicker', 'kendo.numerictextbox', 'kendo.validator', 'kendo.binder' ], f); }(function () { var __meta__ = { id: 'editable', name: 'Editable', category: 'framework', depends: [ 'datepicker', 'numerictextbox', 'validator', 'binder' ], hidden: true }; (function ($, undefined) { var kendo = window.kendo, ui = kendo.ui, Widget = ui.Widget, extend = $.extend, oldIE = kendo.support.browser.msie && kendo.support.browser.version < 9, isFunction = kendo.isFunction, isPlainObject = $.isPlainObject, inArray = $.inArray, nameSpecialCharRegExp = /("|\%|'|\[|\]|\$|\.|\,|\:|\;|\+|\*|\&|\!|\#|\(|\)|<|>|\=|\?|\@|\^|\{|\}|\~|\/|\||`)/g, ERRORTEMPLATE = '
' + '#=message#
', CHANGE = 'change'; var specialRules = [ 'url', 'email', 'number', 'date', 'boolean' ]; function fieldType(field) { field = field != null ? field : ''; return field.type || $.type(field) || 'string'; } function convertToValueBinding(container) { container.find(':input:not(:button, [' + kendo.attr('role') + '=upload], [' + kendo.attr('skip') + '], [type=file]), select').each(function () { var bindAttr = kendo.attr('bind'), binding = this.getAttribute(bindAttr) || '', bindingName = this.type === 'checkbox' || this.type === 'radio' ? 'checked:' : 'value:', fieldName = this.name; if (binding.indexOf(bindingName) === -1 && fieldName) { binding += (binding.length ? ',' : '') + bindingName + fieldName; $(this).attr(bindAttr, binding); } }); } function createAttributes(options) { var field = (options.model.fields || options.model)[options.field], type = fieldType(field), validation = field ? field.validation : {}, ruleName, DATATYPE = kendo.attr('type'), BINDING = kendo.attr('bind'), rule, attr = { name: options.field }; for (ruleName in validation) { rule = validation[ruleName]; if (inArray(ruleName, specialRules) >= 0) { attr[DATATYPE] = ruleName; } else if (!isFunction(rule)) { attr[ruleName] = isPlainObject(rule) ? rule.value || ruleName : rule; } attr[kendo.attr(ruleName + '-msg')] = rule.message; } if (inArray(type, specialRules) >= 0) { attr[DATATYPE] = type; } attr[BINDING] = (type === 'boolean' ? 'checked:' : 'value:') + options.field; return attr; } function convertItems(items) { var idx, length, item, value, text, result; if (items && items.length) { result = []; for (idx = 0, length = items.length; idx < length; idx++) { item = items[idx]; text = item.text || item.value || item; value = item.value == null ? item.text || item : item.value; result[idx] = { text: text, value: value }; } } return result; } var editors = { 'number': function (container, options) { var attr = createAttributes(options); $('').attr(attr).appendTo(container).kendoNumericTextBox({ format: options.format }); $('').hide().appendTo(container); }, 'date': function (container, options) { var attr = createAttributes(options), format = options.format; if (format) { format = kendo._extractFormat(format); } attr[kendo.attr('format')] = format; $('').attr(attr).appendTo(container).kendoDatePicker({ format: options.format }); $('').hide().appendTo(container); }, 'string': function (container, options) { var attr = createAttributes(options); $('').attr(attr).appendTo(container); }, 'boolean': function (container, options) { var attr = createAttributes(options); $('').attr(attr).appendTo(container); }, 'values': function (container, options) { var attr = createAttributes(options); var items = kendo.stringify(convertItems(options.values)); $('