UNPKG

sparnatural

Version:

Visual client-side SPARQL query builder and knowledge graph exploration tool

145 lines 6.61 kB
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