{"version":3,"sources":["kendo.data.odata.js"],"names":["f","define","$","undefined","toOdataFilter","filter","useOdataFour","idx","length","field","type","format","operator","value","ignoreCase","result","logic","filters","replace","odataFilters","odataFiltersVersionFour","kendo","timezone","apply","push","join","stripMetadata","obj","name","indexOf","window","extend","eq","neq","gt","gte","lt","lte","contains","doesnotcontain","endswith","startswith","isnull","isnotnull","isempty","isnotempty","mappers","pageSize","noop","page","params","useVersionFour","$filter","sort","orderby","expr","map","order","dir","$orderby","skip","$skip","take","$top","defaultDataType","read","dataType","data","schemas","odata","d","results","total","transports","cache","jsonp","update","contentType","create","destroy","parameterMap","options","option","this","$inlinecount","$format","Error","stringify","odata-v4","$count","jQuery","amd","a1","a2","a3"],"mappings":"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","file":"kendo.data.odata.min.js","sourcesContent":["/*!\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n\n*/\n(function (f, define) {\n define('kendo.data.odata', ['kendo.core'], f);\n}(function () {\n var __meta__ = {\n id: 'data.odata',\n name: 'OData',\n category: 'framework',\n depends: ['core'],\n hidden: true\n };\n (function ($, undefined) {\n var kendo = window.kendo, extend = $.extend, odataFilters = {\n eq: 'eq',\n neq: 'ne',\n gt: 'gt',\n gte: 'ge',\n lt: 'lt',\n lte: 'le',\n contains: 'substringof',\n doesnotcontain: 'substringof',\n endswith: 'endswith',\n startswith: 'startswith',\n isnull: 'eq',\n isnotnull: 'ne',\n isempty: 'eq',\n isnotempty: 'ne'\n }, odataFiltersVersionFour = extend({}, odataFilters, { contains: 'contains' }), mappers = {\n pageSize: $.noop,\n page: $.noop,\n filter: function (params, filter, useVersionFour) {\n if (filter) {\n filter = toOdataFilter(filter, useVersionFour);\n if (filter) {\n params.$filter = filter;\n }\n }\n },\n sort: function (params, orderby) {\n var expr = $.map(orderby, function (value) {\n var order = value.field.replace(/\\./g, '/');\n if (value.dir === 'desc') {\n order += ' desc';\n }\n return order;\n }).join(',');\n if (expr) {\n params.$orderby = expr;\n }\n },\n skip: function (params, skip) {\n if (skip) {\n params.$skip = skip;\n }\n },\n take: function (params, take) {\n if (take) {\n params.$top = take;\n }\n }\n }, defaultDataType = { read: { dataType: 'jsonp' } };\n function toOdataFilter(filter, useOdataFour) {\n var result = [], logic = filter.logic || 'and', idx, length, field, type, format, operator, value, ignoreCase, filters = filter.filters;\n for (idx = 0, length = filters.length; idx < length; idx++) {\n filter = filters[idx];\n field = filter.field;\n value = filter.value;\n operator = filter.operator;\n if (filter.filters) {\n filter = toOdataFilter(filter, useOdataFour);\n } else {\n ignoreCase = filter.ignoreCase;\n field = field.replace(/\\./g, '/');\n filter = odataFilters[operator];\n if (useOdataFour) {\n filter = odataFiltersVersionFour[operator];\n }\n if (operator === 'isnull' || operator === 'isnotnull') {\n filter = kendo.format('{0} {1} null', field, filter);\n } else if (operator === 'isempty' || operator === 'isnotempty') {\n filter = kendo.format('{0} {1} \\'\\'', field, filter);\n } else if (filter && value !== undefined) {\n type = $.type(value);\n if (type === 'string') {\n format = '\\'{1}\\'';\n value = value.replace(/'/g, '\\'\\'');\n if (ignoreCase === true) {\n field = 'tolower(' + field + ')';\n }\n } else if (type === 'date') {\n if (useOdataFour) {\n format = '{1:yyyy-MM-ddTHH:mm:ss+00:00}';\n value = kendo.timezone.apply(value, 'Etc/UTC');\n } else {\n format = 'datetime\\'{1:yyyy-MM-ddTHH:mm:ss}\\'';\n }\n } else {\n format = '{1}';\n }\n if (filter.length > 3) {\n if (filter !== 'substringof') {\n format = '{0}({2},' + format + ')';\n } else {\n format = '{0}(' + format + ',{2})';\n if (operator === 'doesnotcontain') {\n if (useOdataFour) {\n format = '{0}({2},\\'{1}\\') eq -1';\n filter = 'indexof';\n } else {\n format += ' eq false';\n }\n }\n }\n } else {\n format = '{2} {0} ' + format;\n }\n filter = kendo.format(format, filter, value, field);\n }\n }\n result.push(filter);\n }\n filter = result.join(' ' + logic + ' ');\n if (result.length > 1) {\n filter = '(' + filter + ')';\n }\n return filter;\n }\n function stripMetadata(obj) {\n for (var name in obj) {\n if (name.indexOf('@odata') === 0) {\n delete obj[name];\n }\n }\n }\n extend(true, kendo.data, {\n schemas: {\n odata: {\n type: 'json',\n data: function (data) {\n return data.d.results || [data.d];\n },\n total: 'd.__count'\n }\n },\n transports: {\n odata: {\n read: {\n cache: true,\n dataType: 'jsonp',\n jsonp: '$callback'\n },\n update: {\n cache: true,\n dataType: 'json',\n contentType: 'application/json',\n type: 'PUT'\n },\n create: {\n cache: true,\n dataType: 'json',\n contentType: 'application/json',\n type: 'POST'\n },\n destroy: {\n cache: true,\n dataType: 'json',\n type: 'DELETE'\n },\n parameterMap: function (options, type, useVersionFour) {\n var params, value, option, dataType;\n options = options || {};\n type = type || 'read';\n dataType = (this.options || defaultDataType)[type];\n dataType = dataType ? dataType.dataType : 'json';\n if (type === 'read') {\n params = { $inlinecount: 'allpages' };\n if (dataType != 'json') {\n params.$format = 'json';\n }\n for (option in options) {\n if (mappers[option]) {\n mappers[option](params, options[option], useVersionFour);\n } else {\n params[option] = options[option];\n }\n }\n } else {\n if (dataType !== 'json') {\n throw new Error('Only json dataType can be used for ' + type + ' operation.');\n }\n if (type !== 'destroy') {\n for (option in options) {\n value = options[option];\n if (typeof value === 'number') {\n options[option] = value + '';\n }\n }\n params = kendo.stringify(options);\n }\n }\n return params;\n }\n }\n }\n });\n extend(true, kendo.data, {\n schemas: {\n 'odata-v4': {\n type: 'json',\n data: function (data) {\n data = $.extend({}, data);\n stripMetadata(data);\n if (data.value) {\n return data.value;\n }\n return [data];\n },\n total: function (data) {\n return data['@odata.count'];\n }\n }\n },\n transports: {\n 'odata-v4': {\n read: {\n cache: true,\n dataType: 'json'\n },\n update: {\n cache: true,\n dataType: 'json',\n contentType: 'application/json;IEEE754Compatible=true',\n type: 'PUT'\n },\n create: {\n cache: true,\n dataType: 'json',\n contentType: 'application/json;IEEE754Compatible=true',\n type: 'POST'\n },\n destroy: {\n cache: true,\n dataType: 'json',\n type: 'DELETE'\n },\n parameterMap: function (options, type) {\n var result = kendo.data.transports.odata.parameterMap(options, type, true);\n if (type == 'read') {\n result.$count = true;\n delete result.$inlinecount;\n }\n return result;\n }\n }\n }\n });\n }(window.kendo.jQuery));\n return window.kendo;\n}, typeof define == 'function' && define.amd ? define : function (a1, a2, a3) {\n (a3 || a2)();\n}));"]}