{"version":3,"file":"kendo.form.min.js","names":["global","factory","exports","module","require","define","amd","globalThis","self","kendoform","js","this","$","undefined$1","kendo","window","ui","NS","Widget","extend","encode","htmlEncode","VALIDATE","VALIDATEFIELD","CHANGE","SUBMIT","CLEAR","EQUAL_SET","GROUP","ARIA_DESCRIBEDBY","DATA_STOP","DATA_ROLE","DOT","formStyles","form","horizontal","vertical","field","fieldsContainer","fieldWrap","fieldError","fieldHint","fieldset","layout","legend","label","emptyLabel","optional","buttonsContainer","buttonsEnd","submit","clear","invalid","hidden","formOrientation","Form","init","element","options","that","fn","call","deepExtend","formData","_wrapper","_setFields","_setModel","_renderContainers","renderButtons","_renderButtons","_editable","_renderBoolLabels","_renderFieldsHints","_setEvents","_applyCssClasses","events","name","orientation","validatable","validateOnBlur","validationSummary","errorTemplate","buttonsTemplate","messages","grid","items","formatLabel","focusFirst","size","_noLabelfieldTemplate","ref","styles","colSpan","_fieldTemplate","id","encoded","text","_boolLabelTemplate","_groupTemplate","_errorTemplate","message","_hintTemplate","width","height","wrapper","addClass","css","layoutWrapper","_setupLayoutContainer","_flattenFields","fields","concat","item","shift","result","push","apply","_defaultLabel","fieldName","customFormat","length","isFunction","split","join","trim","_formatLabel","isPlainObject","_defaultFields","formDataFields","Object","keys","itemFields","defaultFormDataFields","i","fieldInfo","fieldValue","type","editor","attributes","defaultFields","_fields","parseDate","toString","Editable","editors","_isHidden","optionalText","isHidden","_isAntiForgeryToken","data","ObservableObject","_model","MyModel","Model","validatorOptions","_addEditableMvvmAttributes","editable","kendoEditable","model","clearContainer","skipFocus","target","getKendoEditable","validator","_removeEditableMvvmAttributes","attr","_getItemTemplate","antiForgeryTokenName","_renderField","fieldTemplate","isHorizontal","fieldType","isBoolField","template","_toggleFieldErrorState","state","closest","toggleClass","fieldElement","find","after","fieldWidgetInstance","nextLabelElement","hint","_associateHintContainer","widgetInstance","next","_errorsByName","removeAttribute","insertAfter","input","hintId","nextFocusable","getWidgetFocusableElement","toggleAttribute","_toggleHint","_renderGroup","child","renderedGroup","append","container","targetContainer","_buttonsTemplate","buttons","kendoButton","themeColor","add","appendTarget","layoutContainer","rowsGap","colsGap","layoutClassNames","appendTo","cols","gutter","rows","bind","_validateField","_validate","on","_submit","_clear","_changeHandler","_change","ev","toJSON","valid","error","trigger","preventDefault","errors","value","jsonModel","validate","reset","unbind","isHiddenInput","is","val","hasClass","Upload","clearAllFiles","set","removeClass","_validateProxy","setOptions","newOptions","destroy","removeAttr","empty","off","cssProperties","registerPrefix","plugin","jQuery"],"sources":["kendo.form.js"],"mappings":"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","sourcesContent":["(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('kendo.editable.js'), require('kendo.button.js')) :\n typeof define === 'function' && define.amd ? define(['kendo.editable', 'kendo.button'], factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, (global.kendoform = global.kendoform || {}, global.kendoform.js = factory()));\n})(this, (function () {\n var __meta__ = {\n id: \"form\",\n name: \"Form\",\n category: \"web\",\n description: \"The Form widget.\",\n depends: [ \"editable\", \"button\" ],\n features: [{\n id: \"form-dropdowns\",\n name: \"DropDowns\",\n description: \"Support for DropDown editors\",\n depends: [ \"autocomplete\", \"combobox\", \"multiselect\", \"dropdowntree\", \"multicolumncombobox\" ]\n }, {\n id: \"form-datepickers\",\n name: \"DatePickers\",\n description: \"Support for DatePicker editors\",\n depends: [ \"dateinput\", \"datepicker\", \"datetimepicker\", \"timepicker\" ]\n }, {\n id: \"form-inputs\",\n name: \"Inputs\",\n description: \"Support for Input editors\",\n depends: [ \"numerictextbox\", \"maskedtextbox\", \"switch\", \"rating\", \"slider\", \"colorpicker\", \"radiogroup\", \"checkboxgroup\", \"textbox\", \"textarea\", \"checkbox\" ]\n }, {\n id: \"form-editor\",\n name: \"Editor\",\n description: \"Support for Editor editor\",\n depends: [ \"editor\" ]\n }]\n };\n\n (function($, undefined$1) {\n var kendo = window.kendo,\n ui = kendo.ui,\n NS = \".kendoForm\",\n Widget = ui.Widget,\n extend = $.extend,\n encode = kendo.htmlEncode,\n VALIDATE = \"validate\",\n VALIDATEFIELD = \"validateField\",\n VALIDATEINPUT = \"validateInput\",\n CHANGE = \"change\",\n CLICK = \"click\" + NS,\n SUBMIT = \"submit\",\n CLEAR = \"clear\",\n MAX_WIDTH = \"max-width\",\n SET = \"set\",\n EQUAL_SET = \"equalSet\",\n GROUP = \"group\",\n ARIA_DESCRIBEDBY = \"aria-describedby\",\n DATA_STOP = \"data-stop\",\n DATA_ROLE = \"data-role\",\n EDITABLE = \"editable\",\n FORM = \"form\",\n DOT = \".\",\n DATA_ROLE_RADIO_GROUP = \"[data-role='radiogroup']\",\n DATA_ROLE_CHECKBOX_GROUP = \"[data-role='checkboxgroup']\";\n\n var formStyles = {\n form: \"k-form\",\n horizontal: \"k-form-horizontal\",\n vertical: \"\",\n field: \"k-form-field\",\n fieldsContainer: \"k-form-fields-container\",\n fieldWrap: \"k-form-field-wrap\",\n fieldError: \"k-form-field-error\",\n fieldHint: \"k-form-hint\",\n fieldset: \"k-form-fieldset\",\n layout: \"k-form-layout\",\n legend: \"k-form-legend\",\n label: \"k-label k-form-label\",\n emptyLabel: \"k-label-empty\",\n optional: \"k-label-optional\",\n buttonsContainer: \"k-form-buttons\",\n buttonsEnd: \"k-buttons-end\",\n submit: \"k-form-submit\",\n clear: \"k-form-clear\",\n invalid: \"k-invalid\",\n hidden: \"k-hidden\"\n };\n\n var formOrientation = {\n horizontal: \"horizontal\",\n vertical: \"vertical\"\n };\n\n var Form = Widget.extend({\n init: function(element, options) {\n var that = this;\n\n Widget.fn.init.call(that, element, options);\n\n that.options = kendo.deepExtend({}, that.options, options);\n\n if (options && options.formData) {\n that.options.formData = options.formData;\n }\n\n that._wrapper();\n\n that._setFields();\n\n that._setModel();\n\n that._renderContainers();\n\n if (that.options.renderButtons) {\n that._renderButtons();\n }\n\n that._editable();\n\n that._renderBoolLabels();\n\n that._renderFieldsHints();\n\n that._setEvents();\n\n that._applyCssClasses();\n },\n\n events: [\n VALIDATEFIELD,\n VALIDATE,\n CHANGE,\n SUBMIT,\n CLEAR\n ],\n\n options: {\n name: \"Form\",\n orientation: formOrientation.vertical,\n validatable: {\n validateOnBlur: true,\n validationSummary: false,\n errorTemplate: null\n },\n buttonsTemplate: null,\n messages: {\n submit: \"Submit\",\n clear: \"Clear\",\n optional: \"(Optional)\"\n },\n layout: \"\",\n grid: {},\n formData: {},\n items: [],\n formatLabel: null,\n focusFirst: false,\n renderButtons: true,\n size: \"medium\"\n },\n\n _noLabelfieldTemplate: function (ref){\n var styles = ref.styles;\n var colSpan = ref.colSpan;\n var hidden = ref.hidden;\n var field = ref.field;\n\n return \"
\" +\n \"\" +\n \"
\" +\n \"
\";\n },\n\n _fieldTemplate: function (ref) {\n var styles = ref.styles;\n var colSpan = ref.colSpan;\n var hidden = ref.hidden;\n var field = ref.field;\n var label = ref.label;\n var id = ref.id;\n var optional = ref.optional;\n\n return \"
\" +\n ((label && !hidden) ?\n \"\"\n : '' ) +\n \"
\" +\n \"
\";\n },\n\n _boolLabelTemplate: function (ref) {\n var styles = ref.styles;\n var colSpan = ref.colSpan;\n var hidden = ref.hidden;\n var field = ref.field;\n var label = ref.label;\n var id = ref.id;\n var optional = ref.optional;\n\n return \"\";\n },\n\n _groupTemplate: function (ref) {\n var styles = ref.styles;\n var colSpan = ref.colSpan;\n var label = ref.label;\n\n return \"
\" +\n \"\" + (encode(label.text || label)) + \"\" +\n \"
\";\n },\n\n _errorTemplate: function (ref) {\n var field = ref.field;\n var message = ref.message;\n\n return (\"
\" + message + \"
\");\n },\n\n _hintTemplate: function (ref) {\n var id = ref.id;\n var message = ref.message;\n\n return (\"
\" + message + \"
\");\n },\n\n _wrapper: function() {\n var that = this,\n options = that.options,\n formStyles = Form.styles,\n width = options.width,\n height = options.height;\n\n that.wrapper = that.element\n .addClass(formStyles.form)\n .addClass(formStyles[options.orientation]);\n\n if (height) {\n that.wrapper.height(height);\n }\n\n if (width) {\n that.wrapper.css(MAX_WIDTH, width);\n }\n\n that.layoutWrapper = that._setupLayoutContainer(that.wrapper, {\n grid: options.grid,\n layout: options.layout\n });\n },\n\n _flattenFields: function(fields) {\n var items = [].concat(fields),\n item = items.shift(),\n result = [],\n push = [].push;\n\n while (item) {\n if (item.items) {\n push.apply(items, item.items);\n } else {\n push.call(result, item);\n }\n\n item = items.shift();\n }\n\n return result;\n },\n\n _defaultLabel: function(fieldName) {\n var that = this,\n customFormat = that.options.formatLabel;\n\n if (!fieldName.length) {\n return;\n }\n\n if (kendo.isFunction(customFormat)) {\n return customFormat(fieldName);\n }\n\n return fieldName.split(/(.*[a-z])(?=[A-Z])/).join(\" \").trim() + \":\";\n },\n\n _formatLabel: function(field, label) {\n var that = this,\n text = $.isPlainObject(label) ? label.text : label;\n\n if (text !== undefined$1) {\n return label;\n }\n\n return that._defaultLabel(field);\n },\n\n _defaultFields: function() {\n var that = this,\n options = that.options,\n formDataFields = Object.keys(options.formData || {}),\n itemFields = options.items || {},\n defaultFormDataFields = [],\n field;\n\n if (itemFields.length) {\n return itemFields;\n }\n\n for (var i = 0; i < formDataFields.length; i += 1) {\n field = formDataFields[i];\n\n defaultFormDataFields.push({\n field: field,\n id: field\n });\n }\n\n return defaultFormDataFields;\n },\n\n _setFields: function() {\n var that = this,\n defaultFields = that._flattenFields(that._defaultFields()),\n formData = that.options.formData || {},\n fieldInfo, fieldValue, type, editor, attributes;\n\n that._fields = [];\n\n for (var field in defaultFields) {\n fieldInfo = defaultFields[field];\n fieldValue = formData[fieldInfo.field];\n\n type = typeof fieldInfo.editor === \"string\" ? fieldInfo.editor :\n kendo.type(fieldValue ? kendo.parseDate(fieldValue.toString()) || fieldValue : fieldValue);\n\n editor = kendo.isFunction(fieldInfo.editor) ? fieldInfo.editor :\n ui.Editable.fn.options.editors[type] ? \"\" : fieldInfo.editor;\n\n if (!that._isHidden(fieldInfo.editor)) {\n if (fieldInfo.label) {\n attributes = {\n \"aria-labelledby\": fieldInfo.id || fieldInfo.field + \"-form-label\"\n };\n } else if (!fieldInfo.attributes || !fieldInfo.attributes[\"aria-label\"]) {\n attributes = {\n \"aria-label\": fieldInfo.name || fieldInfo.field\n };\n }\n }\n\n fieldInfo = extend(true, {\n label: fieldInfo.label || fieldInfo.name || fieldInfo.field,\n optionalText: that.options.messages.optional\n }, fieldInfo, {\n id: fieldInfo.id || fieldInfo.field,\n name: fieldInfo.name || fieldInfo.field,\n type: type,\n editor: editor,\n attributes: attributes,\n isHidden: that._isHidden(fieldInfo.editor) || that._isAntiForgeryToken(fieldInfo.name || fieldInfo.field)\n });\n\n that._fields[field] = fieldInfo;\n }\n },\n\n _setModel: function() {\n var that = this,\n options = that.options,\n formData = options.formData || {};\n\n if (options.formData instanceof kendo.data.ObservableObject) {\n that._model = formData;\n return;\n }\n\n var MyModel = kendo.data.Model.define({ fields: that._fields });\n\n that._model = new MyModel(formData);\n },\n\n _editable: function() {\n var that = this,\n options = that.options,\n validatorOptions = that.options.validatable;\n\n that._addEditableMvvmAttributes();\n\n that.editable = that.wrapper.kendoEditable({\n model: that._model,\n fields: that._fields || [],\n validateOnBlur: validatorOptions.validateOnBlur,\n validationSummary: validatorOptions.validationSummary,\n errorTemplate: validatorOptions.errorTemplate || that._errorTemplate,\n clearContainer: false,\n skipFocus: !options.focusFirst,\n target: that,\n size: options.size\n }).getKendoEditable();\n\n that.validator = that.editable.validatable;\n\n that._removeEditableMvvmAttributes();\n },\n\n _addEditableMvvmAttributes: function() {\n // required for two mvvm bindable widgets on one element\n this.wrapper.attr(DATA_ROLE, EDITABLE);\n },\n\n _removeEditableMvvmAttributes: function() {\n // required for two mvvm bindable widgets on one element\n this.wrapper\n .attr(DATA_STOP, true)\n .attr(DATA_ROLE, FORM);\n },\n\n _getItemTemplate: function(type) {\n var that = this,\n template;\n\n if (type === GROUP) {\n template = that._groupTemplate;\n } else {\n template = that._fieldTemplate;\n }\n\n return template;\n },\n\n _isHidden: function(editor) {\n return typeof editor === \"string\" && editor === \"hidden\";\n },\n\n _isAntiForgeryToken: function(field) {\n return field === ui.Editable.antiForgeryTokenName;\n\n },\n\n _renderField: function(item) {\n var that = this,\n formStyles = Form.styles,\n isHorizontal = that.options.orientation === formOrientation.horizontal,\n fieldType = that._model.fields && that._model.fields[item.field] && that._model.fields[item.field].type,\n isBoolField = fieldType && fieldType === \"boolean\",\n fieldTemplate, renderedField;\n\n if (isBoolField && isHorizontal && !item.editor) {\n fieldTemplate = that._noLabelfieldTemplate;\n } else {\n fieldTemplate = that._fieldTemplate;\n }\n\n renderedField = (kendo.template(fieldTemplate)({\n styles: formStyles,\n id: item.id || item.field || \"\",\n field: item.field || \"\",\n label: isBoolField && !item.editor ? null : that._formatLabel(item.field, item.label),\n colSpan: item.colSpan || \"\",\n optional: that.options.messages.optional,\n hidden: that._isHidden(item.editor) || that._isAntiForgeryToken(item.field)\n }));\n\n return renderedField;\n },\n\n _toggleFieldErrorState: function(element, state) {\n var field = element.closest(DOT + formStyles.field);\n\n if (field.length) {\n field.toggleClass(formStyles.fieldError, state);\n }\n },\n\n _renderBoolLabels: function() {\n var that = this,\n formStyles = Form.styles,\n fields = that._fields,\n field, fieldElement;\n\n for (var i = 0; i < fields.length; i += 1) {\n field = fields[i];\n fieldElement = that.wrapper.find(\"[name='\" + field.name + \"']:not([type='hidden'])\");\n\n if (!fieldElement || !field.label || field.isHidden || field.type !== \"boolean\" || field.editor) {\n continue;\n }\n\n fieldElement.after(kendo.template(that._boolLabelTemplate)({\n styles: formStyles,\n id: field.id || field.field || \"\",\n optional: that.options.messages.optional,\n label: that._formatLabel(field.field, field.label)\n }));\n }\n },\n\n _renderFieldsHints: function() {\n var that = this,\n fields = that._fields,\n field, fieldWidgetInstance, fieldElement, nextLabelElement, hint;\n\n for (var i = 0; i < fields.length; i += 1) {\n field = fields[i];\n fieldElement = that.wrapper.find((\"[name='\" + (field.name) + \"'],[id='\" + (field.name) + \"']\"));\n\n if (!fieldElement || !field.hint || field.isHidden) {\n continue;\n }\n\n hint = $(kendo.template(that._hintTemplate)({ message: field.hint || \"\", id: field.id }));\n\n that._associateHintContainer(fieldElement, hint.attr(\"id\"));\n\n fieldWidgetInstance = kendo.widgetInstance(fieldElement);\n\n if (fieldWidgetInstance) {\n nextLabelElement = fieldWidgetInstance.element.next(\"label[for='\" + fieldWidgetInstance.element.attr(\"id\") + \"']\");\n fieldElement = nextLabelElement.length ? nextLabelElement : fieldWidgetInstance.wrapper;\n }\n\n if (that.validator._errorsByName(field.name).length) {\n hint.toggleClass(formStyles.hidden);\n kendo.removeAttribute(fieldElement, ARIA_DESCRIBEDBY, hint.attr(\"id\"));\n }\n\n hint.insertAfter(fieldElement);\n }\n },\n\n _associateHintContainer: function(input, hintId) {\n var nextFocusable = kendo.getWidgetFocusableElement(input);\n\n if (!nextFocusable || !hintId) {\n return;\n }\n\n kendo.toggleAttribute(nextFocusable, ARIA_DESCRIBEDBY, hintId);\n },\n\n _toggleHint: function(element, state) {\n var that = this,\n field = element.closest(DOT + formStyles.field),\n hint;\n\n if (field.length) {\n hint = field.find(DOT + formStyles.fieldHint);\n\n if (hint.length) {\n hint.toggleClass(formStyles.hidden, state);\n that._associateHintContainer(element, hint.attr(\"id\"));\n }\n }\n },\n\n _renderGroup: function(item) {\n var that = this,\n type = item.type,\n child, renderedGroup, fieldsContainer;\n\n fieldsContainer = renderedGroup = $(kendo.template(that._getItemTemplate(type))({\n styles: formStyles,\n label: item.label || \"\",\n colSpan: item.colSpan\n }));\n\n fieldsContainer = that._setupLayoutContainer(renderedGroup, {\n grid: item.grid,\n layout: item.layout\n }) || renderedGroup;\n\n for (var i = 0; i < item.items.length; i += 1) {\n child = item.items[i];\n fieldsContainer.append(that._renderField(child));\n }\n\n return renderedGroup;\n },\n\n _renderContainers: function() {\n var that = this,\n defaultFields = that._defaultFields(),\n columnsLayout = that.options.layout === \"grid\",\n targetContainer = columnsLayout ? that.layoutWrapper : that.wrapper,\n item, type, container;\n\n for (var i = 0; i < defaultFields.length; i += 1) {\n item = defaultFields[i];\n type = item.type;\n\n if (type === GROUP) {\n container = that._renderGroup(item);\n } else {\n container = that._renderField(item);\n }\n\n targetContainer.append(container);\n }\n },\n\n _buttonsTemplate: function() {\n var options = this.options,\n messages = options.messages,\n formStyles = Form.styles,\n buttons, submit, clear;\n\n if (options.buttonsTemplate !== null) {\n buttons = kendo.template(options.buttonsTemplate)({\n styles: formStyles,\n messages: messages\n });\n } else {\n submit = $(\"\").kendoButton({\n type: \"submit\",\n themeColor: \"primary\",\n size: options.size\n });\n clear = $(\"\").kendoButton({\n size: options.size\n });\n\n buttons = submit.add(clear);\n }\n\n return buttons;\n },\n\n _renderButtons: function() {\n var that = this,\n wrapper = that.wrapper,\n options = that.options,\n formStyles = Form.styles,\n isHorizontal = options.orientation === formOrientation.horizontal,\n buttonsContainer = wrapper.find(DOT + formStyles.buttonsContainer),\n buttons;\n\n if (!buttonsContainer.length) {\n buttonsContainer = $(\"
\")\n .addClass(formStyles.buttonsContainer)\n .addClass(isHorizontal ? formStyles.buttonsEnd : \"\");\n }\n\n buttons = that._buttonsTemplate();\n\n buttonsContainer.append(buttons);\n\n that.element.append(buttonsContainer);\n },\n\n _setupLayoutContainer: function(appendTarget, options) {\n var layout = options.layout,\n grid = options.grid,\n layoutClassNames = [],\n layoutContainer, rowsGap, colsGap;\n\n if (typeof layout === \"string\" && layout !== \"\") {\n layoutContainer = $(\"
\")\n .appendTo(appendTarget)\n .addClass(formStyles.layout);\n\n layoutClassNames.push(\"k-d-\" + layout);\n }\n\n if (layout === \"grid\" && typeof grid === \"object\") {\n if (typeof grid.cols === \"number\") {\n layoutClassNames.push(\"k-grid-cols-\" + grid.cols);\n } else if (typeof grid.cols === \"string\") {\n layoutContainer.css(\"grid-template-columns\", grid.cols);\n }\n\n if (typeof grid.gutter === \"number\" || typeof grid.gutter === \"string\") {\n layoutContainer.css(\"grid-gap\", grid.gutter);\n } else if ($.isPlainObject(grid.gutter)) {\n rowsGap = grid.gutter.rows;\n colsGap = grid.gutter.cols;\n\n if (typeof rowsGap === \"number\") {\n rowsGap = rowsGap + \"px\";\n }\n if (typeof colsGap === \"number\") {\n colsGap = colsGap + \"px\";\n }\n\n layoutContainer.css(\"grid-gap\", rowsGap + \" \" + colsGap);\n }\n }\n\n if (layoutContainer) {\n layoutContainer.addClass(layoutClassNames.join(\" \"));\n }\n\n return layoutContainer;\n },\n\n _setEvents: function() {\n var that = this,\n validator = that.validator;\n\n validator\n .bind(VALIDATEINPUT, that._validateField.bind(that))\n .bind(VALIDATE, that._validate.bind(that));\n\n that.wrapper\n .on(SUBMIT + NS, that._submit.bind(that))\n .on(CLEAR + NS, that._clear.bind(that))\n .on(CLICK + NS, DOT + formStyles.clear, that._clear.bind(that));\n\n if (!that._changeHandler) {\n that._changeHandler = that._change.bind(that);\n }\n\n that._model.bind(CHANGE, that._changeHandler);\n },\n\n _validateField: function(ev) {\n var that = this,\n data = {\n model: that._model.toJSON(),\n valid: ev.valid,\n field: ev.field,\n error: ev.error,\n input: ev.input\n };\n\n that._toggleFieldErrorState(data.input, !data.valid);\n\n that._toggleHint(data.input, !data.valid);\n\n if (that.trigger(VALIDATEFIELD, data)) {\n ev.preventDefault();\n }\n },\n\n _validate: function(ev) {\n var that = this,\n data = {\n model: that._model.toJSON(),\n valid: ev.valid,\n errors: ev.errors\n };\n\n that.trigger(VALIDATE, data);\n },\n\n _change: function(ev) {\n var that = this,\n field = ev.field,\n data = {\n field: field,\n value: that._model[field]\n };\n\n that.trigger(CHANGE, data);\n },\n\n _submit: function(ev) {\n var that = this,\n jsonModel = that._model.toJSON();\n\n if (that.trigger(SUBMIT, { model: jsonModel })) {\n ev.preventDefault();\n }\n },\n\n _clear: function(ev) {\n var that = this;\n\n ev.preventDefault();\n\n that.clear();\n\n that.trigger(CLEAR);\n },\n\n validate: function() {\n var that = this,\n validator = that.validator;\n\n if (!validator) {\n return;\n }\n\n return validator.validate();\n },\n\n clear: function() {\n var that = this,\n fields = that._fields,\n model = that._model,\n editable = that.editable,\n validateOnBlur = that.validator.options.validateOnBlur;\n\n that.validator.reset();\n\n if (validateOnBlur) {\n model\n .unbind(SET)\n .unbind(EQUAL_SET);\n }\n\n for (var i = 0; i < fields.length; i += 1) {\n var field = fields[i].field;\n var element = that.wrapper.find(\"[name='\" + field + \"']\");\n var widgetInstance = kendo.widgetInstance(element);\n var isHiddenInput = element.is(\"input[type=hidden]\");\n\n if (!element.is(DATA_ROLE_CHECKBOX_GROUP) && !element.is(DATA_ROLE_RADIO_GROUP) && !isHiddenInput) {\n element.val(\"\");\n }\n\n if (!widgetInstance && element.hasClass(\"k-hidden\")) {\n widgetInstance = kendo.widgetInstance(element.closest(\".k-signature\"));\n }\n\n if (widgetInstance) {\n if (kendo.ui.Upload && widgetInstance instanceof kendo.ui.Upload) {\n widgetInstance.clearAllFiles();\n } else {\n widgetInstance.value(null);\n }\n }\n\n that._toggleHint(element, false);\n\n if (typeof model[field] === \"boolean\") {\n element.val(\"false\");\n model.set(field, false);\n } else if (!isHiddenInput) {\n model.set(field, null);\n }\n }\n\n that.wrapper.find(DOT + formStyles.fieldError)\n .removeClass(formStyles.fieldError);\n\n if (validateOnBlur) {\n model\n .bind(SET, editable._validateProxy)\n .bind(EQUAL_SET, editable._validateProxy);\n }\n },\n\n setOptions: function(newOptions) {\n var that = this;\n\n that.destroy();\n\n that.wrapper\n .removeClass(formStyles.horizontal)\n .removeAttr(DATA_STOP)\n .empty();\n\n that.init(that.element, newOptions);\n },\n\n destroy: function() {\n var that = this;\n\n that.wrapper.off(NS);\n\n if (that._model) {\n that._model.unbind(CHANGE, that._changeHandler);\n that._changeHandler = null;\n }\n\n Widget.fn.destroy.call(that.editable);\n\n Widget.fn.destroy.call(that);\n\n if (that.editable) {\n that.editable.destroy();\n that.editable = null;\n }\n }\n });\n\n kendo.cssProperties.registerPrefix(\"Form\", \"k-form-\");\n\n ui.plugin(Form);\n\n extend(true, Form, { styles: formStyles });\n\n })(window.kendo.jQuery);\n var kendo$1 = kendo;\n\n return kendo$1;\n\n}));\n"]}