UNPKG

sparnatural

Version:

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

40 lines (36 loc) 1.69 kB
import GroupWrapper from "../../components/builder-section/groupwrapper/GroupWrapper"; import { DraggableComponent } from "../../components/variables-section/variableorder/DraggableComponent"; import ActionStore from "../ActionStore"; /* Traversing trough the building section and read out all the variables. Delete all variables (Draggables) in the variables-section which are not present Can be used when a GrpWrapper got deleted and the variable list needs to be updated */ export function updateVarList(actionStore: ActionStore) { // using a set so we don't have double values in it let varNames = new Set<string>(); actionStore.sparnatural.BgWrapper.componentsList.rootGroupWrapper.traversePreOrder( (grpWrapper: GroupWrapper) => { let startGrp = grpWrapper.CriteriaGroup.StartClassGroup; let endGrp = grpWrapper.CriteriaGroup.EndClassGroup; if(startGrp.isVarSelected() && startGrp.getVarName()) varNames.add(startGrp.getVarName()); if(endGrp.isVarSelected() && endGrp.getVarName()) varNames.add(endGrp.getVarName()); } ); updateDraggables(actionStore, varNames); } function updateDraggables(actionStore: ActionStore, varNames: Set<string>) { let draggables = actionStore.sparnatural.variableSection.variableOrderMenu.draggables; // filter out the variables which don't exist anymore draggables = draggables.filter((d: DraggableComponent) => { if (varNames.has(d.state.selectedVariable.variable.replace("?",""))) { //keep draggable return d; } else { //delete it d.html.remove(); } }); actionStore.sparnatural.variableSection.variableOrderMenu.draggables = draggables; }