sparnatural
Version:
Visual client-side SPARQL query builder and knowledge graph exploration tool
145 lines • 6.61 kB
JavaScript
var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
};
var _SparnaturalJsonGeneratorV13_instances, _SparnaturalJsonGeneratorV13_toVariables, _SparnaturalJsonGeneratorV13_buildWhere, _SparnaturalJsonGeneratorV13_collectPairs, _SparnaturalJsonGeneratorV13_buildPair, _SparnaturalJsonGeneratorV13_solutionModifiers;
import { OptionTypes } from "../../components/builder-section/groupwrapper/criteriagroup/optionsgroup/OptionsGroup";
import { labelledCriteriaToFilters, labelledCriteriaToFlatValues, } from "../../querypreloading/QueryAdapterFunc";
import { Order } from "../../SparnaturalQueryIfc";
export class SparnaturalJsonGeneratorV13 {
constructor(sparnatural) {
_SparnaturalJsonGeneratorV13_instances.add(this);
this.sparnatural = sparnatural;
}
generateQuery(distinct, limit) {
return {
type: "query",
subType: "SELECT",
variables: __classPrivateFieldGet(this, _SparnaturalJsonGeneratorV13_instances, "m", _SparnaturalJsonGeneratorV13_toVariables).call(this, this.sparnatural.variableSection.listVariables()),
distinct: distinct || undefined,
solutionModifiers: __classPrivateFieldGet(this, _SparnaturalJsonGeneratorV13_instances, "m", _SparnaturalJsonGeneratorV13_solutionModifiers).call(this, this.sparnatural.variableSection.getOrder(), limit),
where: __classPrivateFieldGet(this, _SparnaturalJsonGeneratorV13_instances, "m", _SparnaturalJsonGeneratorV13_buildWhere).call(this, this.sparnatural.BgWrapper.componentsList.rootGroupWrapper),
};
}
}
_SparnaturalJsonGeneratorV13_instances = new WeakSet(), _SparnaturalJsonGeneratorV13_toVariables = function _SparnaturalJsonGeneratorV13_toVariables(vars) {
return vars.map((v) => {
if (v.aggregateFunction) {
const expr = {
type: "expression",
subType: "aggregate",
aggregation: v.aggregateFunction,
distinct: false,
expression: [
{
type: "term",
subType: "variable",
value: v.originalVariable.variable,
},
],
};
return {
type: "pattern",
subType: "bind",
expression: expr,
variable: {
type: "term",
subType: "variable",
value: v.selectedVariable.variable,
},
};
}
return {
type: "term",
subType: "variable",
value: v.selectedVariable.variable,
};
});
}, _SparnaturalJsonGeneratorV13_buildWhere = function _SparnaturalJsonGeneratorV13_buildWhere(root) {
const subject = {
type: "term",
subType: "variable",
value: root.criteriaGroup.startClassGroup.getVarName(),
rdfType: root.criteriaGroup.startClassGroup.getTypeSelected(),
};
return {
type: "pattern",
subType: "bgpSameSubject",
subject,
predicateObjectPairs: __classPrivateFieldGet(this, _SparnaturalJsonGeneratorV13_instances, "m", _SparnaturalJsonGeneratorV13_collectPairs).call(this, root),
};
}, _SparnaturalJsonGeneratorV13_collectPairs = function _SparnaturalJsonGeneratorV13_collectPairs(grp) {
const pairs = [];
const pair = __classPrivateFieldGet(this, _SparnaturalJsonGeneratorV13_instances, "m", _SparnaturalJsonGeneratorV13_buildPair).call(this, grp);
pairs.push(pair);
if (grp.andSibling) {
pairs.push(...__classPrivateFieldGet(this, _SparnaturalJsonGeneratorV13_instances, "m", _SparnaturalJsonGeneratorV13_collectPairs).call(this, grp.andSibling));
}
return pairs;
}, _SparnaturalJsonGeneratorV13_buildPair = function _SparnaturalJsonGeneratorV13_buildPair(grp) {
const cg = grp.criteriaGroup;
const object = {
type: "objectCriteria",
variable: {
type: "term",
subType: "variable",
value: cg.endClassGroup.getVarName(),
rdfType: cg.endClassGroup.getTypeSelected(),
},
};
const widgetValues = cg.endClassWidgetGroup.getWidgetValues();
object.filters = labelledCriteriaToFilters(widgetValues);
const flatValues = labelledCriteriaToFlatValues(widgetValues);
if (flatValues && flatValues.length > 0) {
object.values = flatValues;
}
if (grp.whereChild) {
object.predicateObjectPairs = __classPrivateFieldGet(this, _SparnaturalJsonGeneratorV13_instances, "m", _SparnaturalJsonGeneratorV13_collectPairs).call(this, grp.whereChild);
}
const pair = {
type: "predicateObjectPair",
predicate: {
type: "term",
subType: "namedNode",
value: cg.objectPropertyGroup.getTypeSelected(),
},
object,
};
if (grp.currentOptionState === OptionTypes.OPTIONAL)
pair.subType = "optional";
if (grp.currentOptionState === OptionTypes.NOTEXISTS)
pair.subType = "notExists";
return pair;
}, _SparnaturalJsonGeneratorV13_solutionModifiers = function _SparnaturalJsonGeneratorV13_solutionModifiers(order, limit) {
const res = {};
if (order !== Order.NOORDER) {
const firstVar = this.sparnatural.variableSection.variableOrderMenu.draggables[0]?.state
.selectedVariable.variable;
if (firstVar) {
res.order = {
type: "solutionModifier",
subType: "order",
orderDefs: [
{
descending: order === Order.DESC,
expression: {
type: "term",
subType: "variable",
value: firstVar,
},
},
],
};
}
}
if (limit > 0) {
res.limitOffset = {
type: "solutionModifier",
subType: "limitOffset",
limit,
};
}
return res;
};
//# sourceMappingURL=SparnaturalJson-v13Generator.js.map