@progress/telerik-jquery-report-viewer
Version:
Progress® Telerik® Report Viewer for jQuery
36 lines (33 loc) • 1.17 kB
JavaScript
import { rTrim, replaceAll, trim, filterUniqueLastOccurrence } from './utils.js';
const TemplateCache = function() {
var cache = {};
return {
load: function(url, serviceUrl, client) {
var p = cache[url];
if (!p) {
cache[url] = p = client.get(url).then(function(html) {
var templates = {};
var styleSheets = [];
var baseUri = rTrim(serviceUrl, "\\/") + "/";
html = replaceAll(html, "{service}/", baseUri);
html = replaceAll(html, "{service}", baseUri);
var viewerTemplate = $("<div></div>").html(html);
Array.from(viewerTemplate.find("template")).forEach((element) => {
var $element = $(element);
templates[$element.attr("id")] = trim($element.html(), "\n ");
});
Array.from(viewerTemplate.find("link")).forEach((element) => {
styleSheets.push(trim(element.outerHTML, "\n "));
});
styleSheets = filterUniqueLastOccurrence(styleSheets);
return {
templates,
styleSheets
};
});
}
return p;
}
};
}();
export { TemplateCache };