UNPKG

sparnatural

Version:

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

82 lines (72 loc) 3.04 kB
import SparnaturalFormComponent from "../components/SparnaturalFormComponent"; import ISparnaturalSpecification from "../../sparnatural/spec-providers/ISparnaturalSpecification"; import { QueryGeneratorForm } from "./actions/GenerateQueryForm"; class ActionStoreForm { sparnaturalForm: SparnaturalFormComponent; specProvider: ISparnaturalSpecification; quiet = false; // Pour éviter d'exécuter des actions quand c'est nécessaire de "garder le silence" constructor( sparnaturalForm: SparnaturalFormComponent, specProvider: ISparnaturalSpecification ) { this.sparnaturalForm = sparnaturalForm; this.specProvider = specProvider; this.#addFormEventListeners(); // Ajout des écouteurs d'événements } // Ajouter les écouteurs d'événements sur les actions du formulaire #addFormEventListeners() { // Quand une valeur est ajoutée à un widget this.sparnaturalForm.html[0].addEventListener( "valueAdded", (event: CustomEvent) => { console.log("Valeur ajoutée dans un widget !"); new QueryGeneratorForm(this).generateQuery("onscreen"); } ); // Quand une valeur est supprimée d'un widget this.sparnaturalForm.html[0].addEventListener( "valueRemoved", (event: CustomEvent) => { console.log("Valeur supprimée d'un widget !"); new QueryGeneratorForm(this).generateQuery("onscreen"); } ); // Ajouter un écouteur pour l'événement "anyValueSelected" dans ActionStoreForm this.sparnaturalForm.html[0].addEventListener( "anyValueSelected", (event: CustomEvent) => { new QueryGeneratorForm(this).generateQuery("onscreen"); // Générer la requête mise à jour } ); // Ajouter un écouteur pour l'événement "defaultValueSelected" dans ActionStoreForm this.sparnaturalForm.html[0].addEventListener( "removeAnyValueOption", (event: CustomEvent) => { new QueryGeneratorForm(this).generateQuery("onscreen"); // Générer la requête mise à jour } ); // Ajouter un écouteur pour l'événement "notExist" dans ActionStoreForm this.sparnaturalForm.html[0].addEventListener( "notExist", (event: CustomEvent) => { new QueryGeneratorForm(this).generateQuery("onscreen"); // Générer la requête mise à jour } ); // Ajouter un écouteur pour l'événement "removeNotExistOption" dans ActionStoreForm this.sparnaturalForm.html[0].addEventListener( "removeNotExistOption", (event: CustomEvent) => { new QueryGeneratorForm(this).generateQuery("onscreen"); // Générer la requête mise à jour } ); this.sparnaturalForm.html[0].addEventListener( "submit", (event: CustomEvent) => { console.log("Submit event received", event.detail); console.log("ActionStoreForm: Submit event received", event.detail.type); new QueryGeneratorForm(this).generateQuery(event.detail.type); } ); } } export default ActionStoreForm;