UNPKG

@progress/telerik-jquery-report-viewer

Version:

Progress® Telerik® Report Viewer for jQuery

312 lines (307 loc) 11.8 kB
'use strict'; 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;