@rcsb/rcsb-saguaro-app
Version:
RCSB 1D Saguaro Web App
32 lines • 1.47 kB
JavaScript
export var UrlTools;
(function (UrlTools) {
function encodeUrlParameterList(paramList) {
const urlParams = [];
paramList.filter(p => p.value).forEach(p => {
urlParams.push(`${p.key}=${encode(p.value)}`);
});
globalThis === null || globalThis === void 0 ? void 0 : globalThis.history.replaceState(null, "", "?" + urlParams.join("&"));
}
UrlTools.encodeUrlParameterList = encodeUrlParameterList;
function encodeUrlParameter(key, value) {
globalThis === null || globalThis === void 0 ? void 0 : globalThis.history.replaceState(null, "", "?" + (value ? `${key}=${encode(value)}` : ""));
}
UrlTools.encodeUrlParameter = encodeUrlParameter;
function decodeUrlParameters() {
var _a;
return (_a = parseUrlParameters()) === null || _a === void 0 ? void 0 : _a.map(param => ({ key: param.key, value: JSON.parse(decodeURIComponent(param.value)) }));
}
UrlTools.decodeUrlParameters = decodeUrlParameters;
function parseUrlParameters() {
if (globalThis.window.location.search.length === 0)
return;
return globalThis.window.location.search.substring(1)
.split("&")
.map((param) => (param.split("=")))
.map((param) => ({ key: param[0], value: param[1] }));
}
function encode(p) {
return encodeURIComponent(JSON.stringify(p));
}
})(UrlTools || (UrlTools = {}));
//# sourceMappingURL=UrlTools.js.map