/*! * DevExtreme (dx.aspnet.mvc.js) * Version: 25.1.3 * Build date: Wed Jun 25 2025 * * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/ */ ! function(factory) { if ("function" === typeof define && define.amd) { define((function(require, exports, module) { module.exports = factory(require("jquery"), require("./core/templates/template_engine_registry").setTemplateEngine, require("./core/templates/template_base").renderedCallbacks, require("./core/guid"), require("./ui/validation_engine"), require("./core/utils/iterator"), require("./core/utils/dom").extractTemplateMarkup, require("./core/utils/string").encodeHtml, require("./core/utils/ajax")) })) } else { DevExpress.aspnet = factory(window.jQuery, DevExpress.setTemplateEngine, DevExpress.templateRendered, DevExpress.data.Guid, DevExpress.validationEngine, DevExpress.utils.iterator, DevExpress.utils.dom.extractTemplateMarkup, DevExpress.utils.string.encodeHtml, DevExpress.utils.ajax) } }((function($, setTemplateEngine, templateRendered, Guid, validationEngine, iteratorUtils, extractTemplateMarkup, encodeHtml, ajax) { var templateCompiler = function() { var EXTENDED_OPEN_TAG = /[<[]%/g, EXTENDED_CLOSE_TAG = /%[>\]]/g; function acceptText(bag, text) { if (text) { bag.push("_.push(", JSON.stringify(text), ");") } } function acceptCode(bag, code) { var encode = "-" === code.charAt(0), value = code.substr(1), interpolate = "=" === code.charAt(0); if (encode || interpolate) { bag.push("_.push("); var expression = value; if (encode) { expression = "encodeHtml((" + value + " !== null && " + value + " !== undefined) ? " + value + ' : "")'; if (/^\s*$/.test(value)) { expression = "encodeHtml(" + value + ")" } } bag.push(expression); bag.push(");") } else { bag.push(code + "\n") } } return function(element) { var text = extractTemplateMarkup(element); var bag = ["var _ = [];", "with(obj||{}) {"], chunks = text.split(EXTENDED_OPEN_TAG); acceptText(bag, chunks.shift()); for (var i = 0; i < chunks.length; i++) { var tmp = chunks[i].split(EXTENDED_CLOSE_TAG); if (2 !== tmp.length) { throw "Template syntax error" } acceptCode(bag, tmp[0]); acceptText(bag, tmp[1]) } bag.push("}", "return _.join('')"); var code = bag.join(""); try { return new Function("obj", "encodeHtml", code) } catch (e) { var src = element[0]; if ("SCRIPT" === src.tagName) { var funcName = src.id.replaceAll("-", ""); var func = "function " + funcName + "(obj,encodeHtml){\n" + code + "\n}"; $.globalEval(func, src, window.document); return funcName } else { return text } } } }(); var pendingCreateComponentRoutines = []; function createComponent(name, options, id, validatorOptions) { var selector = "#" + String(id).replace(/[^\w-]/g, "\\$&"); pendingCreateComponentRoutines.push((function() { var $element = $(selector); if ($element.length) { var $component = $(selector)[name](options); if ($.isPlainObject(validatorOptions)) { $component.dxValidator(validatorOptions) } return true } return false })) } templateRendered.add((function() { var snapshot = pendingCreateComponentRoutines.slice(); var leftover = []; pendingCreateComponentRoutines = []; snapshot.forEach((function(func) { if (!func()) { leftover.push(func) } })); pendingCreateComponentRoutines = pendingCreateComponentRoutines.concat(leftover) })); return { createComponent: createComponent, renderComponent: function(name, options, id, validatorOptions) { id = id || "dx-" + new Guid; createComponent(name, options, id, validatorOptions); return '
' }, getEditorValue: function(inputName) { var $widget = $("input[name='" + inputName + "']").closest(".dx-widget"); if ($widget.length) { var dxComponents = $widget.data("dxComponents"), widget = $widget.data(dxComponents[0]); if (widget) { return widget.option("value") } } }, setTemplateEngine: function() { if (setTemplateEngine) { setTemplateEngine({ compile: function(element) { return templateCompiler(element) }, render: function(template, data) { if (template instanceof Function) { var html = template(data, encodeHtml); var dxMvcExtensionsObj = window.MVCx; if (dxMvcExtensionsObj && !dxMvcExtensionsObj.isDXScriptInitializedOnLoad) { html = html.replace(/(