@progress/telerik-jquery-report-viewer
Version:
Progress® Telerik® Report Viewer for jQuery
312 lines (307 loc) • 11.8 kB
JavaScript
Object.defineProperty(exports, '__esModule', { value: true });
var utils = require('./utils.js');
var __defProp = Object.defineProperty;
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __propIsEnum = Object.prototype.propertyIsEnumerable;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues = (a, b) => {
for (var prop in b || (b = {}))
if (__hasOwnProp.call(b, prop))
__defNormalProp(a, prop, b[prop]);
if (__getOwnPropSymbols)
for (var prop of __getOwnPropSymbols(b)) {
if (__propIsEnum.call(b, prop))
__defNormalProp(a, prop, b[prop]);
}
return a;
};
var JSON_CONTENT_TYPE = "application/json; charset=UTF-8";
var URLENCODED_CONTENT_TYPE = "application/x-www-form-urlencoded; charset=UTF-8";
var HTTP_GET = "GET";
var HTTP_POST = "POST";
var HTTP_DELETE = "DELETE";
var defaultOptions = {};
function getHeaders(authorizationToken) {
const headers = {
"Accept": "application/json, text/javascript, */*; q=0.01"
};
if (authorizationToken) {
headers["Authorization"] = "Bearer " + authorizationToken;
}
return headers;
}
function ServiceClient(options) {
options = $.extend({}, defaultOptions, options);
var baseUrl = utils.rTrim(options.serviceUrl || options.baseUrl, "\\/");
var loginPromise;
var _ajax = utils.$ajax;
function validateClientID(clientID) {
if (!clientID) {
throw "Invalid clientID";
}
}
function urlFromTemplate(template, args) {
args = $.extend({}, { baseUrl }, args);
return utils.stringFormat(template, args);
}
function login() {
if (!loginPromise) {
var loginInfo = options.loginInfo;
if (loginInfo && loginInfo.url && (loginInfo.username || loginInfo.password)) {
const endPoint = loginInfo.url;
loginPromise = _ajax(endPoint, {
method: HTTP_POST,
data: {
grant_type: "password",
username: loginInfo.username,
password: loginInfo.password
},
dataType: "json",
contentType: URLENCODED_CONTENT_TYPE
}).then(function(result) {
return result.access_token;
});
} else {
loginPromise = Promise.resolve();
}
}
return loginPromise;
}
return {
_urlFromTemplate: urlFromTemplate,
registerClient: function(settings) {
const endPoint = `${baseUrl}/clients`;
return login().then(function(authorizationToken) {
return _ajax(endPoint, __spreadValues({
headers: getHeaders(authorizationToken),
method: HTTP_POST,
dataType: "json",
// Used to avoid Chrome caching functionality for simple async requests
// when the first request is not completed the second request is not send
// and the same response is used for both of the request. In this case the
// second client is not registered to the service and the same clientId is used.
data: JSON.stringify({ timeStamp: Date.now() })
}, settings));
}).then(function(clientData) {
if (clientData.Message) {
throw clientData.Message;
}
return clientData.clientId;
});
},
unregisterClient: function(clientID, settings) {
validateClientID(clientID);
const endPoint = `${baseUrl}/clients/${clientID}`;
return login().then(function(authorizationToken) {
return _ajax(endPoint, __spreadValues({
headers: getHeaders(authorizationToken),
method: HTTP_DELETE
}, settings));
});
},
getParameters: function(clientID, report, parameterValues, settings) {
validateClientID(clientID);
const endPoint = `${baseUrl}/clients/${clientID}/parameters`;
return login().then(function(authorizationToken) {
return _ajax(endPoint, __spreadValues({
headers: getHeaders(authorizationToken),
method: HTTP_POST,
contentType: JSON_CONTENT_TYPE,
dataType: "json",
data: JSON.stringify({ report, parameterValues })
}, settings));
});
},
createReportInstance: function(clientID, report, parameterValues, settings) {
validateClientID(clientID);
const endPoint = `${baseUrl}/clients/${clientID}/instances`;
return login().then(function(authorizationToken) {
return _ajax(endPoint, __spreadValues({
headers: getHeaders(authorizationToken),
method: HTTP_POST,
contentType: JSON_CONTENT_TYPE,
dataType: "json",
data: JSON.stringify({ report, parameterValues })
}, settings));
}).then(function(instanceData) {
return instanceData.instanceId;
});
},
deleteReportInstance: function(clientID, instanceID, settings) {
validateClientID(clientID);
const endPoint = `${baseUrl}/clients/${clientID}/instances/${instanceID}`;
return login().then(function(authorizationToken) {
return _ajax(endPoint, __spreadValues({
headers: getHeaders(authorizationToken),
method: HTTP_DELETE
}, settings));
});
},
// eslint-disable-next-line max-params
createReportDocument: function(clientID, instanceID, format, deviceInfo, useCache, baseDocumentID, actionID, settings) {
validateClientID(clientID);
const endPoint = `${baseUrl}/clients/${clientID}/instances/${instanceID}/documents`;
return login().then(function(authorizationToken) {
deviceInfo = deviceInfo || {};
deviceInfo["BasePath"] = baseUrl;
return _ajax(endPoint, __spreadValues({
headers: getHeaders(authorizationToken),
method: HTTP_POST,
contentType: JSON_CONTENT_TYPE,
dataType: "json",
data: JSON.stringify({
format,
deviceInfo,
useCache,
baseDocumentID,
actionID
})
}, settings));
}).then(function(documentData) {
return documentData.documentId;
});
},
// eslint-disable-next-line max-params
sendDocument: function(clientID, instanceID, documentID, mailArgs, settings) {
validateClientID(clientID);
const endPoint = `${baseUrl}/clients/${clientID}/instances/${instanceID}/documents/${documentID}/send`;
return login().then(function(authorizationToken) {
return _ajax(endPoint, __spreadValues({
headers: getHeaders(authorizationToken),
method: HTTP_POST,
contentType: JSON_CONTENT_TYPE,
data: JSON.stringify({
from: mailArgs.from,
to: mailArgs.to,
cc: mailArgs.cc,
subject: mailArgs.subject,
body: mailArgs.body
})
}, settings));
});
},
deleteReportDocument: function(clientID, instanceID, documentID, settings) {
validateClientID(clientID);
const endPoint = `${baseUrl}/clients/${clientID}/instances/${instanceID}/documents/${documentID}`;
return login().then(function(authorizationToken) {
return _ajax(endPoint, __spreadValues({
headers: getHeaders(authorizationToken),
method: HTTP_DELETE
}, settings));
});
},
getDocumentInfo: function(clientID, instanceID, documentID, settings) {
validateClientID(clientID);
const endPoint = `${baseUrl}/clients/${clientID}/instances/${instanceID}/documents/${documentID}/info`;
return login().then(function(authorizationToken) {
return _ajax(endPoint, __spreadValues({
headers: getHeaders(authorizationToken),
method: HTTP_GET,
dataType: "json"
}, settings));
});
},
// eslint-disable-next-line max-params
getPage: function(clientID, instanceID, documentID, pageNumber, settings) {
validateClientID(clientID);
const endPoint = `${baseUrl}/clients/${clientID}/instances/${instanceID}/documents/${documentID}/pages/${pageNumber}`;
return login().then(function(authorizationToken) {
return _ajax(endPoint, __spreadValues({
headers: getHeaders(authorizationToken),
method: HTTP_GET,
dataType: "json"
}, settings));
});
},
get: function(url) {
return _ajax(url, {
method: HTTP_GET
});
},
formatDocumentUrl: function(clientID, instanceID, documentID, queryString) {
var url = `${baseUrl}/clients/${clientID}/instances/${instanceID}/documents/${documentID}`;
if (queryString) {
url += "?" + queryString;
}
return url;
},
getDocumentFormats: function(settings) {
const endPoint = `${baseUrl}/formats`;
return login().then(function(authorizationToken) {
return _ajax(endPoint, __spreadValues({
headers: getHeaders(authorizationToken),
method: HTTP_GET,
dataType: "json"
}, settings));
});
},
getServiceVersion: function(settings) {
const endPoint = `${baseUrl}/version`;
return login().then(function(authorizationToken) {
return _ajax(endPoint, __spreadValues({
headers: getHeaders(authorizationToken),
method: HTTP_GET,
dataType: "json"
}, settings));
});
},
// eslint-disable-next-line max-params
getResource: function(clientID, instanceID, documentID, resourceID, settings) {
validateClientID(clientID);
const endPoint = `${baseUrl}/clients/${clientID}/instances/${instanceID}/documents/${documentID}/resources/${resourceID}`;
return login().then(function(authorizationToken) {
return _ajax(endPoint, __spreadValues({
headers: getHeaders(authorizationToken),
method: HTTP_GET,
dataType: (settings == null ? void 0 : settings.dataType) || "json"
}, settings));
});
},
// eslint-disable-next-line max-params
getSearchResults: function(clientID, instanceID, documentID, searchToken, matchCase, matchWholeWord, useRegex, settings) {
validateClientID(clientID);
const endPoint = `${baseUrl}/clients/${clientID}/instances/${instanceID}/documents/${documentID}/search`;
return login().then(function(authorizationToken) {
return _ajax(endPoint, __spreadValues({
headers: getHeaders(authorizationToken),
method: HTTP_POST,
contentType: JSON_CONTENT_TYPE,
dataType: "json",
data: JSON.stringify({
searchToken,
matchCase,
matchWholeWord,
useRegularExpressions: useRegex
})
}, settings));
});
},
setAccessToken: function(accessToken) {
loginPromise = Promise.resolve(accessToken);
},
login,
keepClientAlive: function(clientID, settings) {
const endPoint = `${baseUrl}/clients/keepAlive/${clientID}`;
return login().then(function(authorizationToken) {
return _ajax(endPoint, __spreadValues({
headers: getHeaders(authorizationToken),
method: HTTP_POST
}, settings));
});
},
getClientsSessionTimeoutSeconds: function(settings) {
const endPoint = `${baseUrl}/clients/sessionTimeout`;
return login().then(function(authorizationToken) {
return _ajax(endPoint, __spreadValues({
headers: getHeaders(authorizationToken),
method: HTTP_GET
}, settings));
}).then(function(sessionTimeoutData) {
return sessionTimeoutData.clientSessionTimeout;
});
}
};
}
exports.ServiceClient = ServiceClient;
;