Add project files.

This commit is contained in:
OlgunR
2026-05-21 14:35:02 +02:00
parent b315aead20
commit dc551c2313
106 changed files with 303666 additions and 0 deletions

View File

@@ -0,0 +1,433 @@
// Version: 5.1.0
// https://github.com/DevExpress/DevExtreme.AspNet.Data
// Copyright (c) Developer Express Inc.
/* global DevExpress:false, jQuery:false */
(function(factory) {
"use strict";
function unwrapESModule(module) {
return module && module.__esModule && module.default ? module.default : module;
}
if(typeof define === "function" && define.amd) {
define(function(require, exports, module) {
module.exports = factory(
unwrapESModule(require("devextreme/core/utils/ajax")),
require("jquery").Deferred,
require("jquery").extend,
unwrapESModule(require("devextreme/data/custom_store")),
unwrapESModule(require("devextreme/data/utils"))
);
});
} else if (typeof module === "object" && module.exports) {
module.exports = factory(
unwrapESModule(require("devextreme/core/utils/ajax")),
require("jquery").Deferred,
require("jquery").extend,
unwrapESModule(require("devextreme/data/custom_store")),
unwrapESModule(require("devextreme/data/utils"))
);
} else {
DevExpress.data.AspNet = factory(
DevExpress.utils.ajax || { sendRequest: jQuery.ajax },
jQuery.Deferred,
jQuery.extend,
DevExpress.data.CustomStore,
DevExpress.data.utils
);
}
})(function(ajaxUtility, Deferred, extend, CustomStore, dataUtils) {
"use strict";
var CUSTOM_STORE_OPTIONS = [
"onLoading", "onLoaded",
"onInserting", "onInserted",
"onUpdating", "onUpdated",
"onRemoving", "onRemoved",
"onModifying", "onModified",
"onPush",
"loadMode", "cacheRawData",
"errorHandler"
];
function createStoreConfig(options) {
var keyExpr = options.key,
loadUrl = options.loadUrl,
loadMethod = options.loadMethod || "GET",
loadParams = options.loadParams,
isRawLoadMode = options.loadMode === "raw",
updateUrl = options.updateUrl,
insertUrl = options.insertUrl,
deleteUrl = options.deleteUrl,
onBeforeSend = options.onBeforeSend,
onAjaxError = options.onAjaxError;
function send(operation, requiresKey, ajaxSettings, customSuccessHandler) {
var d = Deferred(),
thenable,
beforeSendResult;
function sendCore() {
ajaxUtility.sendRequest(ajaxSettings).then(
function(res, textStatus, xhr) {
if(customSuccessHandler)
customSuccessHandler(d, res, xhr);
else
d.resolve();
},
function(xhr, textStatus) {
var error = getErrorMessageFromXhr(xhr);
if(onAjaxError) {
var e = { xhr: xhr, error: error };
onAjaxError(e);
error = e.error;
}
if(error)
d.reject(error);
else
d.reject(xhr, textStatus);
}
);
}
if(requiresKey && !keyExpr) {
d.reject(new Error("Primary key is not specified (operation: '" + operation + "', url: '" + ajaxSettings.url + "')"));
} else {
if(operation === "load") {
ajaxSettings.cache = false;
ajaxSettings.dataType = "json";
} else {
ajaxSettings.dataType = "text";
}
if(onBeforeSend) {
beforeSendResult = onBeforeSend(operation, ajaxSettings);
if(beforeSendResult && typeof beforeSendResult.then === "function")
thenable = beforeSendResult;
}
if(thenable)
thenable.then(sendCore, function(error) { d.reject(error); });
else
sendCore();
}
return d.promise();
}
function filterByKey(keyValue) {
if(!Array.isArray(keyExpr))
return [keyExpr, keyValue];
return keyExpr.map(function(i) {
return [i, keyValue[i]];
});
}
function loadOptionsToActionParams(options, isCountQuery) {
var result = {};
if(isCountQuery)
result.isCountQuery = isCountQuery;
if(options) {
["skip", "take", "requireTotalCount", "requireGroupCount"].forEach(function(i) {
if(options[i] !== undefined)
result[i] = options[i];
});
var normalizeSorting = dataUtils.normalizeSortingInfo,
group = options.group,
filter = options.filter,
select = options.select;
if(options.sort)
result.sort = JSON.stringify(normalizeSorting(options.sort));
if(group) {
if(!isAdvancedGrouping(group))
group = normalizeSorting(group);
result.group = JSON.stringify(group);
}
if(Array.isArray(filter)) {
filter = extend(true, [], filter);
stringifyDatesInFilter(filter);
result.filter = JSON.stringify(filter);
}
if(options.totalSummary)
result.totalSummary = JSON.stringify(options.totalSummary);
if(options.groupSummary)
result.groupSummary = JSON.stringify(options.groupSummary);
if(select) {
if(!Array.isArray(select))
select = [ select ];
result.select = JSON.stringify(select);
}
}
extend(result, loadParams);
return result;
}
function handleInsertUpdateSuccess(d, res, xhr) {
var mime = xhr.getResponseHeader("Content-Type"),
isJSON = mime && mime.indexOf("application/json") > -1;
d.resolve(isJSON ? JSON.parse(res) : res);
}
var result = {
key: keyExpr,
useDefaultSearch: true,
load: function(loadOptions) {
return send(
"load",
false,
{
url: loadUrl,
method: loadMethod,
data: loadOptionsToActionParams(loadOptions)
},
function(d, res) {
processLoadResponse(d, res, function(res) {
return [ res.data, createLoadExtra(res) ];
});
}
);
},
totalCount: !isRawLoadMode && function(loadOptions) {
return send(
"load",
false,
{
url: loadUrl,
method: loadMethod,
data: loadOptionsToActionParams(loadOptions, true)
},
function(d, res) {
processLoadResponse(d, res, function(res) {
return [ res.totalCount ];
});
}
);
},
byKey: !isRawLoadMode && function(key) {
return send(
"load",
true,
{
url: loadUrl,
method: loadMethod,
data: loadOptionsToActionParams({ filter: filterByKey(key) })
},
function(d, res) {
processLoadResponse(d, res, function(res) {
return [ res.data[0] ];
});
}
);
},
update: updateUrl && function(key, values) {
return send(
"update",
true,
{
url: updateUrl,
method: options.updateMethod || "PUT",
data: {
key: serializeKey(key),
values: JSON.stringify(values)
}
},
handleInsertUpdateSuccess
);
},
insert: insertUrl && function(values) {
return send(
"insert",
true,
{
url: insertUrl,
method: options.insertMethod || "POST",
data: { values: JSON.stringify(values) }
},
handleInsertUpdateSuccess
);
},
remove: deleteUrl && function(key) {
return send("delete", true, {
url: deleteUrl,
method: options.deleteMethod || "DELETE",
data: { key: serializeKey(key) }
});
}
};
CUSTOM_STORE_OPTIONS.forEach(function(name) {
var value = options[name];
if(value !== undefined)
result[name] = value;
});
return result;
}
function processLoadResponse(d, res, getResolveArgs) {
res = expandLoadResponse(res);
if(!res || typeof res !== "object")
d.reject(new Error("Unexpected response received"));
else
d.resolve.apply(d, getResolveArgs(res));
}
function expandLoadResponse(value) {
if(Array.isArray(value))
return { data: value };
if(typeof value === "number")
return { totalCount: value };
return value;
}
function createLoadExtra(res) {
return {
totalCount: "totalCount" in res ? res.totalCount : -1,
groupCount: "groupCount" in res ? res.groupCount : -1,
summary: res.summary || null
};
}
function serializeKey(key) {
if(typeof key === "object")
return JSON.stringify(key);
return key;
}
function serializeDate(date) {
function zpad(text, len) {
text = String(text);
while(text.length < len)
text = "0" + text;
return text;
}
var builder = [1 + date.getMonth(), "/", date.getDate(), "/", date.getFullYear()],
h = date.getHours(),
m = date.getMinutes(),
s = date.getSeconds(),
f = date.getMilliseconds();
if(h + m + s + f > 0)
builder.push(" ", zpad(h, 2), ":", zpad(m, 2), ":", zpad(s, 2), ".", zpad(f, 3));
return builder.join("");
}
function stringifyDatesInFilter(crit) {
crit.forEach(function(v, k) {
if(Array.isArray(v)) {
stringifyDatesInFilter(v);
} else if(Object.prototype.toString.call(v) === "[object Date]") {
crit[k] = serializeDate(v);
}
});
}
function isAdvancedGrouping(expr) {
if(!Array.isArray(expr))
return false;
for(var i = 0; i < expr.length; i++) {
if("groupInterval" in expr[i] || "isExpanded" in expr[i])
return true;
}
return false;
}
function getErrorMessageFromXhr(xhr) {
var mime = xhr.getResponseHeader("Content-Type"),
responseText = xhr.responseText,
candidate;
if(!mime)
return null;
if(mime.indexOf("text/plain") === 0)
return responseText;
if(mime.indexOf("application/json") === 0) {
var jsonObj = safeParseJSON(responseText);
if(typeof jsonObj === "string")
return jsonObj;
if(typeof jsonObj === "object") {
for(var key in jsonObj) {
if(typeof jsonObj[key] === "string")
return jsonObj[key];
}
}
return responseText;
}
if(mime.indexOf("application/problem+json") === 0) {
var jsonObj = safeParseJSON(responseText);
var candidate;
if(typeof jsonObj === "object") {
candidate = jsonObj.title;
if(isNonEmptyString(candidate))
return candidate;
candidate = jsonObj.detail;
if(isNonEmptyString(candidate))
return candidate;
}
return responseText;
}
return null;
}
function safeParseJSON(json) {
try {
return JSON.parse(json);
} catch(x) {
return null;
}
}
function isNonEmptyString(value) {
return typeof value === "string" && value.length > 0;
}
return {
createStore: function(options) {
return new CustomStore(createStoreConfig(options));
}
};
});

View File

@@ -0,0 +1,210 @@
/*!
* DevExtreme (dx.aspnet.mvc.js)
* Version: 25.2.7
* Build date: Tue May 05 2026
*
* Copyright (c) 2012 - 2026 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 '<div id="' + id + '"></div>'
},
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(/(<script[^>]+)id="dxss_.+?"/g, "$1")
}
return html
} else if (window[template] instanceof Function) {
return window[template](data, encodeHtml)
} else if ("string" === typeof template) {
return template
} else {
throw "Unknown template type"
}
}
})
}
},
createValidationSummaryItems: function(validationGroup, editorNames) {
var groupConfig, items, summary = function(validationGroup) {
var result;
$(".dx-validationsummary").each(function(_, element) {
var summary = $(element).data("dxValidationSummary");
if (summary && summary.option("validationGroup") === validationGroup) {
result = summary;
return false
}
});
return result
}(validationGroup);
if (summary) {
groupConfig = validationEngine.getGroupConfig(validationGroup);
if (groupConfig) {
items = function(validators, editorNames) {
var items = [];
iteratorUtils.each(validators, function(_, validator) {
var widget = validator.$element().data("dx-validation-target");
if (widget && $.inArray(widget.option("name"), editorNames) > -1) {
items.push({
text: widget.option("validationError.message"),
validator: validator
})
}
});
return items
}(groupConfig.validators, editorNames);
items.length && summary.option("items", items)
}
}
},
sendValidationRequest: function(propertyName, params, url, method, additionalFields) {
var d = $.Deferred();
var data = {};
data[propertyName] = params.value;
if (additionalFields.length && params.data) {
additionalFields.forEach(function(field) {
data[field] = params.data[field]
})
}
ajax.sendRequest({
url: url,
dataType: "json",
method: method || "GET",
data: data
}).then(function(response) {
if ("string" === typeof response) {
d.resolve({
isValid: false,
message: response
})
} else {
d.resolve(response)
}
}, function(xhr) {
d.reject({
isValid: false,
message: xhr.responseText
})
});
return d.promise()
}
}
});

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long