sparnatural
Version:
Visual client-side SPARQL query builder and knowledge graph exploration tool
80 lines • 2.5 kB
JavaScript
const defaultSettings = {
src: null,
language: "en",
defaultLanguage: "en",
maxDepth: 4,
maxOr: 3,
addDistinct: true,
limit: -1,
typePredicate: "<http://www.w3.org/1999/02/22-rdf-syntax-ns#type>",
endpoints: null,
catalog: null,
sparqlPrefixes: {
rdf: "http://www.w3.org/1999/02/22-rdf-syntax-ns#",
rdfs: "http://www.w3.org/2000/01/rdf-schema#",
xsd: "http://www.w3.org/2001/XMLSchema#",
},
localCacheDataTtl: 1000 * 60 * 60 * 24,
debug: false,
submitButton: true,
customization: {},
};
// the actual settings, result of merge between defaultSettings and settings passed as parameters
let settings = {
src: undefined,
language: "",
defaultLanguage: "",
typePredicate: "",
maxDepth: 0,
maxOr: 0,
debug: false,
};
export function getSettings() {
return settings;
}
// merge given options with default setting values
export function mergeSettings(options) {
// note how settings is used also as starting object so that properties
// that were set are preserved if display is called again
settings = extend(true, settings, defaultSettings, options);
}
// Pass in the objects to merge as arguments.
// For a deep extend, set the first argument to `true`.
const extend = (deep, target, ...src) => {
if (target === undefined)
target = {};
// Merge the object into the target object
var merge = function (obj) {
for (const [key, value] of Object.entries(obj)) {
if (value === undefined)
continue;
if (Object.prototype.hasOwnProperty.call(obj, key)) {
// If deep merge and property is an object, merge properties
if (deep &&
Object.prototype.toString.call(value) === "[object Object]") {
target[key] = extend(true, target[key], obj[key]);
}
else {
target[key] = obj[key];
}
}
}
};
// Loop through each object and conduct a merge
src.forEach((o) => {
merge(o);
});
return target;
};
// tooltip configs are constant
export const TOOLTIP_CONFIG = {
allowHTML: true,
plugins: [],
placement: "right-start",
offset: [5, 5],
theme: "sparnatural",
arrow: false,
delay: [800, 100],
duration: [200, 200], //Duration in ms of the transition animation.
};
//# sourceMappingURL=defaultSettings.js.map