diff --git a/.gitignore b/.gitignore index 2514a5de..a19e9b81 100644 Binary files a/.gitignore and b/.gitignore differ diff --git a/RDF_Back/.gitattributes b/Backend/.gitattributes similarity index 100% rename from RDF_Back/.gitattributes rename to Backend/.gitattributes diff --git a/RDF_Back/.gitignore b/Backend/.gitignore similarity index 100% rename from RDF_Back/.gitignore rename to Backend/.gitignore diff --git a/RDF_Back/.mvn/wrapper/maven-wrapper.properties b/Backend/.mvn/wrapper/maven-wrapper.properties similarity index 100% rename from RDF_Back/.mvn/wrapper/maven-wrapper.properties rename to Backend/.mvn/wrapper/maven-wrapper.properties diff --git a/RDF_Back/data/model.ttl b/Backend/data/model.ttl similarity index 100% rename from RDF_Back/data/model.ttl rename to Backend/data/model.ttl diff --git a/RDF_Back/data/tropy/export.ttl b/Backend/data/tropy/export.ttl similarity index 100% rename from RDF_Back/data/tropy/export.ttl rename to Backend/data/tropy/export.ttl diff --git a/RDF_Back/data/tropy/model.ttl b/Backend/data/tropy/model.ttl similarity index 100% rename from RDF_Back/data/tropy/model.ttl rename to Backend/data/tropy/model.ttl diff --git a/RDF_Back/data/tropy/tropy.ttl b/Backend/data/tropy/tropy.ttl similarity index 100% rename from RDF_Back/data/tropy/tropy.ttl rename to Backend/data/tropy/tropy.ttl diff --git a/RDF_Back/data/tropy/tropy1.ttl b/Backend/data/tropy/tropy1.ttl similarity index 100% rename from RDF_Back/data/tropy/tropy1.ttl rename to Backend/data/tropy/tropy1.ttl diff --git a/RDF_Back/data/tropyV1/export.ttl b/Backend/data/tropyV1/export.ttl similarity index 100% rename from RDF_Back/data/tropyV1/export.ttl rename to Backend/data/tropyV1/export.ttl diff --git a/RDF_Back/metadata/testproject/metadata.ttl b/Backend/metadata/testproject/metadata.ttl similarity index 100% rename from RDF_Back/metadata/testproject/metadata.ttl rename to Backend/metadata/testproject/metadata.ttl diff --git a/RDF_Back/mvnw b/Backend/mvnw similarity index 100% rename from RDF_Back/mvnw rename to Backend/mvnw diff --git a/RDF_Back/mvnw.cmd b/Backend/mvnw.cmd similarity index 100% rename from RDF_Back/mvnw.cmd rename to Backend/mvnw.cmd diff --git a/RDF_Back/pom.xml b/Backend/pom.xml similarity index 91% rename from RDF_Back/pom.xml rename to Backend/pom.xml index 88d3bb13..f7142b9d 100644 --- a/RDF_Back/pom.xml +++ b/Backend/pom.xml @@ -9,9 +9,9 @@ com.uspn - RDF_Back + Backend 0.0.1-SNAPSHOT - RDF_Back + Backend RDF_Back @@ -28,6 +28,9 @@ 17 + UTF-8 + UTF-8 + UTF-8 diff --git a/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/RdfBackApplication.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/RdfBackApplication.java new file mode 100644 index 00000000..c578d20a --- /dev/null +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/RdfBackApplication.java @@ -0,0 +1,38 @@ +package fr.cnrs.lacito.fieldarchive; + +import fr.cnrs.lacito.fieldarchive.example.Example; +import org.eclipse.rdf4j.spring.RDF4JConfig; +import org.springframework.boot.SpringApplication; +import org.springframework.boot.autoconfigure.SpringBootApplication; +import org.springframework.context.annotation.Import; + +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Path; +import java.nio.file.Paths; + + +@SpringBootApplication +@Import(RDF4JConfig.class) +public class RdfBackApplication { + + public static void main(String[] args) { + SpringApplication.run(RdfBackApplication.class, args); + String dataPath = System.getenv("FIELD_ARCHIVE_DATA"); + + if (dataPath == null) { + throw new IllegalStateException("FIELD_ARCHIVE_DATA is not defined"); + } + + Path projectsPath = Paths.get(dataPath, "projects"); + + try { + Files.createDirectories(projectsPath); + } catch (IOException e) { + throw new IllegalStateException("Cannot create projects directory : " + projectsPath, e); + } + + System.out.println("Projects directory: " + projectsPath); + } + +} diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/config/Rdf4jConfig.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/config/Rdf4jConfig.java similarity index 95% rename from RDF_Back/src/main/java/com/uspn/rdf_back/config/Rdf4jConfig.java rename to Backend/src/main/java/fr/cnrs/lacito/fieldarchive/config/Rdf4jConfig.java index 7a523499..2925498e 100644 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/config/Rdf4jConfig.java +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/config/Rdf4jConfig.java @@ -1,4 +1,4 @@ -package com.uspn.rdf_back.config; +package fr.cnrs.lacito.fieldarchive.config; import org.eclipse.rdf4j.repository.Repository; import org.eclipse.rdf4j.repository.sail.SailRepository; diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/config/WebConfig.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/config/WebConfig.java similarity index 93% rename from RDF_Back/src/main/java/com/uspn/rdf_back/config/WebConfig.java rename to Backend/src/main/java/fr/cnrs/lacito/fieldarchive/config/WebConfig.java index 4c6c3da8..9ae158d7 100644 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/config/WebConfig.java +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/config/WebConfig.java @@ -1,4 +1,4 @@ -package com.uspn.rdf_back.config; +package fr.cnrs.lacito.fieldarchive.config; import org.springframework.context.annotation.Configuration; import org.springframework.web.servlet.config.annotation.CorsRegistry; diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/controllers/DataSourceController.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/controllers/DataSourceController.java similarity index 84% rename from RDF_Back/src/main/java/com/uspn/rdf_back/controllers/DataSourceController.java rename to Backend/src/main/java/fr/cnrs/lacito/fieldarchive/controllers/DataSourceController.java index d7f21f79..f25b173c 100644 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/controllers/DataSourceController.java +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/controllers/DataSourceController.java @@ -1,10 +1,10 @@ -package com.uspn.rdf_back.controllers; +package fr.cnrs.lacito.fieldarchive.controllers; -import com.uspn.rdf_back.dtos.CreateInternalDataSourceRequest; -import com.uspn.rdf_back.dtos.CreateExternalDataSourceRequest; -import com.uspn.rdf_back.dtos.DataSourceDto; -import com.uspn.rdf_back.dtos.UpdateDataSourceRequest; -import com.uspn.rdf_back.services.DataSourceService; +import fr.cnrs.lacito.fieldarchive.dtos.CreateInternalDataSourceRequest; +import fr.cnrs.lacito.fieldarchive.dtos.CreateExternalDataSourceRequest; +import fr.cnrs.lacito.fieldarchive.dtos.DataSourceDto; +import fr.cnrs.lacito.fieldarchive.dtos.UpdateDataSourceRequest; +import fr.cnrs.lacito.fieldarchive.services.DataSourceService; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/controllers/OntologyController.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/controllers/OntologyController.java similarity index 87% rename from RDF_Back/src/main/java/com/uspn/rdf_back/controllers/OntologyController.java rename to Backend/src/main/java/fr/cnrs/lacito/fieldarchive/controllers/OntologyController.java index ce7a1c0f..79ebd3e6 100644 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/controllers/OntologyController.java +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/controllers/OntologyController.java @@ -1,13 +1,14 @@ -package com.uspn.rdf_back.controllers; +package fr.cnrs.lacito.fieldarchive.controllers; -import com.uspn.rdf_back.dtos.OntologyLabelDto; -import com.uspn.rdf_back.dtos.SaveOntologyLabelRequest; -import com.uspn.rdf_back.services.OntologyService; +import fr.cnrs.lacito.fieldarchive.dtos.OntologyLabelDto; +import fr.cnrs.lacito.fieldarchive.dtos.SaveOntologyLabelRequest; +import fr.cnrs.lacito.fieldarchive.services.OntologyService; import org.springframework.web.bind.annotation.*; import java.util.List; +import java.util.Map; -import com.uspn.rdf_back.dtos.OntologyClassDto; -import com.uspn.rdf_back.services.BuiltinOntologyService; +import fr.cnrs.lacito.fieldarchive.dtos.OntologyClassDto; +import fr.cnrs.lacito.fieldarchive.services.BuiltinOntologyService; @RestController @RequestMapping("/ontology") @@ -26,7 +27,7 @@ public OntologyController(OntologyService ontologyService, // TYPES RDF // ============================= @GetMapping("/types") - public List getTypes() { + public Map getTypes() { return ontologyService.getAllTypes(); } diff --git a/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/controllers/ProjectController.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/controllers/ProjectController.java new file mode 100644 index 00000000..8d43ecc4 --- /dev/null +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/controllers/ProjectController.java @@ -0,0 +1,186 @@ +package fr.cnrs.lacito.fieldarchive.controllers; + +import fr.cnrs.lacito.fieldarchive.dtos.*; +import fr.cnrs.lacito.fieldarchive.dtos.*; +import fr.cnrs.lacito.fieldarchive.exceptions.ImportException; +import fr.cnrs.lacito.fieldarchive.services.FileExportService; +import fr.cnrs.lacito.fieldarchive.services.FileImportService; +import fr.cnrs.lacito.fieldarchive.services.ProjectService; +import jakarta.servlet.http.HttpServletResponse; +import org.springframework.http.HttpStatus; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; + +import java.io.FileNotFoundException; +import java.io.IOException; +import java.io.InputStream; +import java.util.*; +import java.util.Map; + +@RestController +@RequestMapping("/projects") +public class ProjectController { + + private final ProjectService projectService; + private final FileImportService fileImportService; + private final FileExportService fileExportService; + + public ProjectController(ProjectService projectService, FileImportService fileImportService, FileExportService fileExportService) { + this.projectService = projectService; + this.fileImportService = fileImportService; + this.fileExportService = fileExportService; + } + + @PostMapping(value = "/import-backup", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) + public ResponseEntity> importBackup(@RequestParam("file") MultipartFile file) { + try (InputStream is = file.getInputStream()) { + ImportResult result = fileImportService.importBackup(is); + Map body = new HashMap<>(); + body.put("status", "ok"); + body.put("message", "Project is successfully restored !"); + body.put("project", result.message); + return ResponseEntity.ok(body); + + } catch (ImportException e) { + return ResponseEntity.badRequest().body(Map.of("status", "error", "message", e.getMessage())); + } catch (IllegalArgumentException e) { + return ResponseEntity.badRequest().body(Map.of("status", "error", "message", e.getMessage())); + } catch (IOException e) { + return ResponseEntity.internalServerError().body(Map.of("status", "error", "message", "Error while reading file.")); + } + } + + @GetMapping(value = "/export/backup", produces = "application/zip") + public void exportBackup(HttpServletResponse response) throws IOException { + response.setContentType("application/zip"); + response.setHeader("Content-Disposition", "attachment; filename=\"project-backup.zip\""); + fileExportService.exportBackup(response.getOutputStream()); + } + + @GetMapping(value = "/export/internal", produces = "text/turtle") + public void exportInternal(HttpServletResponse response) throws IOException { + response.setContentType("text/turtle"); + response.setHeader("Content-Disposition", "attachment; filename=\"internal-data.ttl\""); + fileExportService.exportInternalDataSource(response.getOutputStream()); + } + + @PostMapping(value = "/import", consumes = MediaType.MULTIPART_FORM_DATA_VALUE) + public ResponseEntity> importExternalTurtle( + @RequestParam("file") MultipartFile file) { + + try (InputStream is = file.getInputStream()) { + String baseURI = projectService.readCurrentProject().prefix; + ImportResult result = fileImportService.importTurtle(is, baseURI); + Map body = new HashMap<>(); + body.put("status", "ok"); + body.put("message", "Internal DataSource was successfully updated !"); + body.put("project", result.message); + return ResponseEntity.ok(body); + } catch (ImportException e) { + return ResponseEntity.badRequest().body(Map.of("status", "error", "message", e.getMessage())); + } catch (IOException e) { + return ResponseEntity.internalServerError().build(); + } + } + + @PostMapping("/open") + public Map open(@RequestBody CreateProjectRequest req) { + ProjectDto dto = projectService.openProject(req.getName(), req.isPersistent(), req.getDescription(), req.getPrefix()); + return Map.of( + "status", "ok", + "project", dto.name + ); + } + + @PostMapping("/create") + public Map create(@RequestBody CreateProjectRequest req) { + ProjectDto dto = projectService.createProject(req.getName(), req.isPersistent(), req.getDescription(), req.getPrefix()); + return Map.of( + "status", "ok", + "project", dto.name + ); + } + + @GetMapping("/current") + public ProjectDto current() { + return projectService.readCurrentProject(); + } + + @DeleteMapping("/{projectName}") + public ResponseEntity deleteProject(@PathVariable String projectName) { + try { + projectService.deleteProject(projectName); + return ResponseEntity.ok("Project deleted successfully"); + + } catch (IllegalArgumentException e) { + return ResponseEntity + .badRequest() + .body(e.getMessage()); + + } catch (FileNotFoundException e) { + return ResponseEntity + .status(HttpStatus.NOT_FOUND) + .body(e.getMessage()); + + } catch (IOException e) { + return ResponseEntity + .status(HttpStatus.INTERNAL_SERVER_ERROR) + .body("Error deleting project"); + } + } + + @PostMapping("/close") + public Map close() { + projectService.closeProject(); + return Map.of("status", "ok"); + } + + @PutMapping("/{oldProjectName}") + public ResponseEntity updateProject( + @PathVariable String oldProjectName, + @RequestBody UpdateProjectObject newProject) { + + try { + + System.out.println("New Description is "+ newProject.description); + projectService.updateProject( + oldProjectName, + newProject.name, + newProject.description + ); + + return ResponseEntity.ok( + new ApiResponse<>(true, "Project updated successfully", null) + ); + + } catch (IllegalArgumentException e) { + return ResponseEntity + .badRequest() + .body(new ApiError(e.getMessage(), "VALIDATION_ERROR")); + + } catch (IOException e) { + return ResponseEntity + .status(HttpStatus.INTERNAL_SERVER_ERROR) + .body(new ApiError("Internal error while updating project", "IO_ERROR")); + + } catch (Exception e) { + return ResponseEntity + .status(HttpStatus.INTERNAL_SERVER_ERROR) + .body(new ApiError("Unexpected error", "UNKNOWN_ERROR")); + } + } + // Liste simple +// @GetMapping("/list") +// public List listProjects() { +// return projectService.listProjects(); +// } + + // Liste détaillée + @GetMapping("/list/details") + public List> listProjectsDetailed() { + return projectService.listProjectsDetailed(); + } + +} diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/controllers/RdfEntityController.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/controllers/RdfEntityController.java similarity index 83% rename from RDF_Back/src/main/java/com/uspn/rdf_back/controllers/RdfEntityController.java rename to Backend/src/main/java/fr/cnrs/lacito/fieldarchive/controllers/RdfEntityController.java index 288ce7c5..3efc9557 100644 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/controllers/RdfEntityController.java +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/controllers/RdfEntityController.java @@ -1,7 +1,11 @@ -package com.uspn.rdf_back.controllers; +package fr.cnrs.lacito.fieldarchive.controllers; -import com.uspn.rdf_back.dtos.*; -import com.uspn.rdf_back.services.RdfEntityService; +import fr.cnrs.lacito.fieldarchive.dtos.*; +import fr.cnrs.lacito.fieldarchive.dtos.CreateRdfEntityRequest; +import fr.cnrs.lacito.fieldarchive.dtos.RdfEntityDto; +import fr.cnrs.lacito.fieldarchive.dtos.RdfEntitySummaryDto; +import fr.cnrs.lacito.fieldarchive.dtos.UpdateRdfEntityRequest; +import fr.cnrs.lacito.fieldarchive.services.RdfEntityService; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/controllers/SparqlController.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/controllers/SparqlController.java similarity index 69% rename from RDF_Back/src/main/java/com/uspn/rdf_back/controllers/SparqlController.java rename to Backend/src/main/java/fr/cnrs/lacito/fieldarchive/controllers/SparqlController.java index 79a20dd6..6087b0cb 100644 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/controllers/SparqlController.java +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/controllers/SparqlController.java @@ -1,6 +1,6 @@ -package com.uspn.rdf_back.controllers; +package fr.cnrs.lacito.fieldarchive.controllers; -import com.uspn.rdf_back.services.SparqlService; +import fr.cnrs.lacito.fieldarchive.services.SparqlService; import org.springframework.web.bind.annotation.*; import java.util.List; @@ -18,7 +18,9 @@ public SparqlController(SparqlService service) { @PostMapping("/select") public List> select(@RequestBody Map body) { - return service.select(body.get("query")); + String query = body.get("query"); +// System.out.println("SPARQL QUERY:\n" + query); + return service.select(query); } @PostMapping("/update") diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/core/ProjectContext.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/core/ProjectContext.java similarity index 94% rename from RDF_Back/src/main/java/com/uspn/rdf_back/core/ProjectContext.java rename to Backend/src/main/java/fr/cnrs/lacito/fieldarchive/core/ProjectContext.java index d27f6021..471519af 100644 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/core/ProjectContext.java +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/core/ProjectContext.java @@ -1,4 +1,4 @@ -package com.uspn.rdf_back.core; +package fr.cnrs.lacito.fieldarchive.core; import org.eclipse.rdf4j.repository.Repository; diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/core/RdfContexts.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/core/RdfContexts.java similarity index 52% rename from RDF_Back/src/main/java/com/uspn/rdf_back/core/RdfContexts.java rename to Backend/src/main/java/fr/cnrs/lacito/fieldarchive/core/RdfContexts.java index 0246427b..f645014c 100644 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/core/RdfContexts.java +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/core/RdfContexts.java @@ -1,14 +1,10 @@ -package com.uspn.rdf_back.core; +package fr.cnrs.lacito.fieldarchive.core; //un contexte = un graphe nommé public final class RdfContexts { private RdfContexts() {} // Contexte où on stocke les METADONNEES des sources (en RDF) // graphe nommé pour les métadonnées (projet, sources de données, etc.) - public static final String CTX_META = RdfNamespaces.APP + "context/metadata"; - - // Contexte éditable interne (source interne) - public static final String CTX_INTERNAL = RdfNamespaces.APP + "context/internal"; - - public static final String CTX_ONTO_RICO = RdfNamespaces.APP + "context/ontology/rico"; + public static final String CTX_META = RdfNamespaces.APP + "/context/metadata"; + public static final String CTX_ONTO_RICO = RdfNamespaces.APP + "/context/ontology/rico"; } diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/core/RdfNamespaces.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/core/RdfNamespaces.java similarity index 57% rename from RDF_Back/src/main/java/com/uspn/rdf_back/core/RdfNamespaces.java rename to Backend/src/main/java/fr/cnrs/lacito/fieldarchive/core/RdfNamespaces.java index ad2b3b99..dad215ca 100644 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/core/RdfNamespaces.java +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/core/RdfNamespaces.java @@ -1,11 +1,10 @@ -package com.uspn.rdf_back.core; +package fr.cnrs.lacito.fieldarchive.core; public final class RdfNamespaces { private RdfNamespaces() {} // Namespace interne de l'application - public static final String APP = "http://uspn.fr/app#"; - //public static final String APP = "http://example.org/app#"; + public static final String APP = "http://cnrs.lacito/app#"; // RIC-O public static final String RICO = "https://www.ica.org/standards/RiC/ontology#"; diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/dtos/ApiError.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/ApiError.java similarity index 65% rename from RDF_Back/src/main/java/com/uspn/rdf_back/dtos/ApiError.java rename to Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/ApiError.java index 01e5f5a5..525b1fa3 100644 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/dtos/ApiError.java +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/ApiError.java @@ -1,4 +1,4 @@ -package com.uspn.rdf_back.dtos; +package fr.cnrs.lacito.fieldarchive.dtos; public record ApiError( String message, diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/dtos/ApiResponse.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/ApiResponse.java similarity index 70% rename from RDF_Back/src/main/java/com/uspn/rdf_back/dtos/ApiResponse.java rename to Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/ApiResponse.java index dda24aa7..46510d94 100644 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/dtos/ApiResponse.java +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/ApiResponse.java @@ -1,4 +1,4 @@ -package com.uspn.rdf_back.dtos; +package fr.cnrs.lacito.fieldarchive.dtos; public record ApiResponse( boolean success, diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/dtos/CreateDataSourceRequest.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/CreateDataSourceRequest.java similarity index 86% rename from RDF_Back/src/main/java/com/uspn/rdf_back/dtos/CreateDataSourceRequest.java rename to Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/CreateDataSourceRequest.java index 6d2b2108..85a1614a 100644 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/dtos/CreateDataSourceRequest.java +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/CreateDataSourceRequest.java @@ -1,4 +1,4 @@ -package com.uspn.rdf_back.dtos; +package fr.cnrs.lacito.fieldarchive.dtos; import lombok.Getter; diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/dtos/CreateExternalDataSourceRequest.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/CreateExternalDataSourceRequest.java similarity index 89% rename from RDF_Back/src/main/java/com/uspn/rdf_back/dtos/CreateExternalDataSourceRequest.java rename to Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/CreateExternalDataSourceRequest.java index 943406ea..fc313312 100644 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/dtos/CreateExternalDataSourceRequest.java +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/CreateExternalDataSourceRequest.java @@ -1,4 +1,4 @@ -package com.uspn.rdf_back.dtos; +package fr.cnrs.lacito.fieldarchive.dtos; import lombok.Getter; import lombok.Setter; diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/dtos/CreateInternalDataSourceRequest.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/CreateInternalDataSourceRequest.java similarity index 74% rename from RDF_Back/src/main/java/com/uspn/rdf_back/dtos/CreateInternalDataSourceRequest.java rename to Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/CreateInternalDataSourceRequest.java index 7e6ee066..4a5ad052 100644 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/dtos/CreateInternalDataSourceRequest.java +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/CreateInternalDataSourceRequest.java @@ -1,10 +1,12 @@ -package com.uspn.rdf_back.dtos; +package fr.cnrs.lacito.fieldarchive.dtos; +import lombok.AllArgsConstructor; import lombok.Getter; import lombok.Setter; @Getter @Setter +@AllArgsConstructor public class CreateInternalDataSourceRequest { private String shortName; // ex: "internal" diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/dtos/CreateProjectRequest.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/CreateProjectRequest.java similarity index 73% rename from RDF_Back/src/main/java/com/uspn/rdf_back/dtos/CreateProjectRequest.java rename to Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/CreateProjectRequest.java index 008bb6e0..bd68a985 100644 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/dtos/CreateProjectRequest.java +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/CreateProjectRequest.java @@ -1,4 +1,4 @@ -package com.uspn.rdf_back.dtos; +package fr.cnrs.lacito.fieldarchive.dtos; public class CreateProjectRequest { public String name; // ex: "archive_2025" @@ -6,6 +6,8 @@ public class CreateProjectRequest { private String description; + private String prefix; + public String getName() { return name; } public void setName(String name) { this.name = name; } @@ -15,6 +17,12 @@ public class CreateProjectRequest { public String getDescription() { return description; } public void setDescription(String description) { this.description = description; } + public String getPrefix() { + return prefix; + } + public void setPrefix(String prefix) { + this.prefix = prefix; + } } diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/dtos/CreateRdfEntityRequest.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/CreateRdfEntityRequest.java similarity index 83% rename from RDF_Back/src/main/java/com/uspn/rdf_back/dtos/CreateRdfEntityRequest.java rename to Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/CreateRdfEntityRequest.java index fdd58922..ea213576 100644 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/dtos/CreateRdfEntityRequest.java +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/CreateRdfEntityRequest.java @@ -1,4 +1,4 @@ -package com.uspn.rdf_back.dtos; +package fr.cnrs.lacito.fieldarchive.dtos; import java.util.ArrayList; import java.util.List; diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/dtos/DataSourceDto.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/DataSourceDto.java similarity index 91% rename from RDF_Back/src/main/java/com/uspn/rdf_back/dtos/DataSourceDto.java rename to Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/DataSourceDto.java index 76330330..8d43c700 100644 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/dtos/DataSourceDto.java +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/DataSourceDto.java @@ -1,4 +1,4 @@ -package com.uspn.rdf_back.dtos; +package fr.cnrs.lacito.fieldarchive.dtos; diff --git a/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/ImportResult.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/ImportResult.java new file mode 100644 index 00000000..c2a26714 --- /dev/null +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/ImportResult.java @@ -0,0 +1,20 @@ +package fr.cnrs.lacito.fieldarchive.dtos; + +import java.time.OffsetDateTime; + +public class ImportResult { + public boolean success; + public String sourceName; + public long tripleCount; + public OffsetDateTime importedAt; + public String message; + + public static ImportResult success(String sourceName, long tripleCount) { + ImportResult r = new ImportResult(); + r.success = true; + r.sourceName = sourceName; + r.tripleCount = tripleCount; + r.importedAt = OffsetDateTime.now(); + return r; + } +} diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/dtos/OntologyClassDto.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/OntologyClassDto.java similarity index 88% rename from RDF_Back/src/main/java/com/uspn/rdf_back/dtos/OntologyClassDto.java rename to Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/OntologyClassDto.java index b117f2ab..c732be95 100644 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/dtos/OntologyClassDto.java +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/OntologyClassDto.java @@ -1,4 +1,4 @@ -package com.uspn.rdf_back.dtos; +package fr.cnrs.lacito.fieldarchive.dtos; public class OntologyClassDto { public String iri; diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/dtos/OntologyLabelDto.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/OntologyLabelDto.java similarity index 92% rename from RDF_Back/src/main/java/com/uspn/rdf_back/dtos/OntologyLabelDto.java rename to Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/OntologyLabelDto.java index 92cdfda4..aeb48524 100644 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/dtos/OntologyLabelDto.java +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/OntologyLabelDto.java @@ -1,4 +1,4 @@ -package com.uspn.rdf_back.dtos; +package fr.cnrs.lacito.fieldarchive.dtos; public class OntologyLabelDto { public String url; diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/dtos/ProjectDto.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/ProjectDto.java similarity index 76% rename from RDF_Back/src/main/java/com/uspn/rdf_back/dtos/ProjectDto.java rename to Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/ProjectDto.java index 4d9fa567..0357ef7d 100644 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/dtos/ProjectDto.java +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/ProjectDto.java @@ -1,4 +1,4 @@ -package com.uspn.rdf_back.dtos; +package fr.cnrs.lacito.fieldarchive.dtos; public class ProjectDto { public String name; @@ -6,4 +6,5 @@ public class ProjectDto { public String created; // ISO date or datetime as string public String modified; // ISO datetime as string public boolean open; + public String prefix; } \ No newline at end of file diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/dtos/RdfEntityDto.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/RdfEntityDto.java similarity index 92% rename from RDF_Back/src/main/java/com/uspn/rdf_back/dtos/RdfEntityDto.java rename to Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/RdfEntityDto.java index 698369ce..2008c6c0 100644 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/dtos/RdfEntityDto.java +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/RdfEntityDto.java @@ -1,4 +1,4 @@ -package com.uspn.rdf_back.dtos; +package fr.cnrs.lacito.fieldarchive.dtos; import java.util.ArrayList; import java.util.List; diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/dtos/RdfEntitySummaryDto.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/RdfEntitySummaryDto.java similarity index 82% rename from RDF_Back/src/main/java/com/uspn/rdf_back/dtos/RdfEntitySummaryDto.java rename to Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/RdfEntitySummaryDto.java index 300a4d35..24fdfccc 100644 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/dtos/RdfEntitySummaryDto.java +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/RdfEntitySummaryDto.java @@ -1,4 +1,4 @@ -package com.uspn.rdf_back.dtos; +package fr.cnrs.lacito.fieldarchive.dtos; public class RdfEntitySummaryDto { public String entityKey; diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/dtos/RdfPropertyDto.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/RdfPropertyDto.java similarity index 73% rename from RDF_Back/src/main/java/com/uspn/rdf_back/dtos/RdfPropertyDto.java rename to Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/RdfPropertyDto.java index 1c1a08b1..39de65ca 100644 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/dtos/RdfPropertyDto.java +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/RdfPropertyDto.java @@ -1,9 +1,10 @@ -package com.uspn.rdf_back.dtos; +package fr.cnrs.lacito.fieldarchive.dtos; public class RdfPropertyDto { public String predicate; // ex: "ric:hasName" ou IRI complet public String kind; // "literal" | "iri" public String value; // valeur littérale ou IRI/curie + public String name ; // when the entity is of type IRI, return its name also. public String datatype; // ex: "xsd:string" (optionnel pour literal) public String lang; // ex: "fr" (optionnel pour literal) } \ No newline at end of file diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/dtos/SaveOntologyLabelRequest.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/SaveOntologyLabelRequest.java similarity index 89% rename from RDF_Back/src/main/java/com/uspn/rdf_back/dtos/SaveOntologyLabelRequest.java rename to Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/SaveOntologyLabelRequest.java index df1baa62..71e98f02 100644 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/dtos/SaveOntologyLabelRequest.java +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/SaveOntologyLabelRequest.java @@ -1,4 +1,4 @@ -package com.uspn.rdf_back.dtos; +package fr.cnrs.lacito.fieldarchive.dtos; public class SaveOntologyLabelRequest { diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/dtos/UpdateDataSourceRequest.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/UpdateDataSourceRequest.java similarity index 79% rename from RDF_Back/src/main/java/com/uspn/rdf_back/dtos/UpdateDataSourceRequest.java rename to Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/UpdateDataSourceRequest.java index 501249ce..36cc54b5 100644 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/dtos/UpdateDataSourceRequest.java +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/UpdateDataSourceRequest.java @@ -1,4 +1,4 @@ -package com.uspn.rdf_back.dtos; +package fr.cnrs.lacito.fieldarchive.dtos; import lombok.Getter; import lombok.Setter; diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/dtos/UpdateProjectObject.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/UpdateProjectObject.java similarity index 68% rename from RDF_Back/src/main/java/com/uspn/rdf_back/dtos/UpdateProjectObject.java rename to Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/UpdateProjectObject.java index a87a33dc..d505ff89 100644 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/dtos/UpdateProjectObject.java +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/UpdateProjectObject.java @@ -1,4 +1,4 @@ -package com.uspn.rdf_back.dtos; +package fr.cnrs.lacito.fieldarchive.dtos; public class UpdateProjectObject { public String name; diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/dtos/UpdateRdfEntityRequest.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/UpdateRdfEntityRequest.java similarity index 70% rename from RDF_Back/src/main/java/com/uspn/rdf_back/dtos/UpdateRdfEntityRequest.java rename to Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/UpdateRdfEntityRequest.java index f5dbc2d2..c8900f76 100644 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/dtos/UpdateRdfEntityRequest.java +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/dtos/UpdateRdfEntityRequest.java @@ -1,4 +1,4 @@ -package com.uspn.rdf_back.dtos; +package fr.cnrs.lacito.fieldarchive.dtos; import java.util.ArrayList; import java.util.List; @@ -6,4 +6,5 @@ public class UpdateRdfEntityRequest { // IMPORTANT: on remplace uniquement les prédicats fournis public List properties = new ArrayList<>(); + public List types = new ArrayList<>(); } diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/example/Example.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/example/Example.java similarity index 93% rename from RDF_Back/src/main/java/com/uspn/rdf_back/example/Example.java rename to Backend/src/main/java/fr/cnrs/lacito/fieldarchive/example/Example.java index 1a27fb5f..94ba822f 100644 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/example/Example.java +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/example/Example.java @@ -1,6 +1,5 @@ -package com.uspn.rdf_back.example; +package fr.cnrs.lacito.fieldarchive.example; -import com.uspn.rdf_back.RdfBackApplication; import org.eclipse.rdf4j.model.*; import org.eclipse.rdf4j.model.impl.DynamicModelFactory; import org.eclipse.rdf4j.model.impl.SimpleValueFactory; @@ -9,7 +8,6 @@ import org.eclipse.rdf4j.model.vocabulary.RDF; import org.eclipse.rdf4j.rio.RDFFormat; import org.eclipse.rdf4j.rio.Rio; -import org.springframework.boot.SpringApplication; import java.io.*; diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/exception/ApiExceptionHandler.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/exception/ApiExceptionHandler.java similarity index 93% rename from RDF_Back/src/main/java/com/uspn/rdf_back/exception/ApiExceptionHandler.java rename to Backend/src/main/java/fr/cnrs/lacito/fieldarchive/exception/ApiExceptionHandler.java index b9c87123..64d77047 100644 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/exception/ApiExceptionHandler.java +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/exception/ApiExceptionHandler.java @@ -1,4 +1,4 @@ -package com.uspn.rdf_back.exception; +package fr.cnrs.lacito.fieldarchive.exception; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.ExceptionHandler; diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/exception/BadRequestException.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/exception/BadRequestException.java similarity index 72% rename from RDF_Back/src/main/java/com/uspn/rdf_back/exception/BadRequestException.java rename to Backend/src/main/java/fr/cnrs/lacito/fieldarchive/exception/BadRequestException.java index 7b46fa2d..bab40536 100644 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/exception/BadRequestException.java +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/exception/BadRequestException.java @@ -1,4 +1,4 @@ -package com.uspn.rdf_back.exception; +package fr.cnrs.lacito.fieldarchive.exception; public class BadRequestException extends RuntimeException { public BadRequestException(String msg) { super(msg); } diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/exception/ConflictException.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/exception/ConflictException.java similarity index 86% rename from RDF_Back/src/main/java/com/uspn/rdf_back/exception/ConflictException.java rename to Backend/src/main/java/fr/cnrs/lacito/fieldarchive/exception/ConflictException.java index 0dade035..3bfd6e91 100644 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/exception/ConflictException.java +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/exception/ConflictException.java @@ -1,4 +1,4 @@ -package com.uspn.rdf_back.exception; +package fr.cnrs.lacito.fieldarchive.exception; import org.springframework.http.HttpStatus; import org.springframework.web.bind.annotation.ResponseStatus; diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/exception/NotFoundException.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/exception/NotFoundException.java similarity index 71% rename from RDF_Back/src/main/java/com/uspn/rdf_back/exception/NotFoundException.java rename to Backend/src/main/java/fr/cnrs/lacito/fieldarchive/exception/NotFoundException.java index 004d1cbf..b840bc54 100644 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/exception/NotFoundException.java +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/exception/NotFoundException.java @@ -1,4 +1,4 @@ -package com.uspn.rdf_back.exception; +package fr.cnrs.lacito.fieldarchive.exception; public class NotFoundException extends RuntimeException { public NotFoundException(String msg) { super(msg); } diff --git a/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/exceptions/ImportException.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/exceptions/ImportException.java new file mode 100644 index 00000000..9dece7df --- /dev/null +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/exceptions/ImportException.java @@ -0,0 +1,21 @@ +package fr.cnrs.lacito.fieldarchive.exceptions; + +public class ImportException extends RuntimeException{ + private final Long lineNumber; + private final Long columnNumber; + + public ImportException(String message) { + super(message); + this.lineNumber = null; + this.columnNumber = null; + } + + public ImportException(long lineNumber, long columnNumber, String message) { + super(message); + this.lineNumber = lineNumber; + this.columnNumber = columnNumber; + } + + public Long getLineNumber() { return lineNumber; } + public Long getColumnNumber() { return columnNumber; } +} diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/services/BuiltinOntologyService.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/services/BuiltinOntologyService.java similarity index 95% rename from RDF_Back/src/main/java/com/uspn/rdf_back/services/BuiltinOntologyService.java rename to Backend/src/main/java/fr/cnrs/lacito/fieldarchive/services/BuiltinOntologyService.java index c45f772b..9936cc73 100644 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/services/BuiltinOntologyService.java +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/services/BuiltinOntologyService.java @@ -1,12 +1,12 @@ -package com.uspn.rdf_back.services; - -import com.uspn.rdf_back.core.ProjectContext; -import com.uspn.rdf_back.core.RdfContexts; -import com.uspn.rdf_back.core.RdfNamespaces; -import com.uspn.rdf_back.dtos.OntologyClassDto; -import com.uspn.rdf_back.dtos.OntologyLabelDto; -import com.uspn.rdf_back.exception.BadRequestException; -import com.uspn.rdf_back.exception.NotFoundException; +package fr.cnrs.lacito.fieldarchive.services; + +import fr.cnrs.lacito.fieldarchive.core.ProjectContext; +import fr.cnrs.lacito.fieldarchive.core.RdfContexts; +import fr.cnrs.lacito.fieldarchive.core.RdfNamespaces; +import fr.cnrs.lacito.fieldarchive.dtos.OntologyClassDto; +import fr.cnrs.lacito.fieldarchive.dtos.OntologyLabelDto; +import fr.cnrs.lacito.fieldarchive.exception.BadRequestException; +import fr.cnrs.lacito.fieldarchive.exception.NotFoundException; import org.eclipse.rdf4j.model.IRI; import org.eclipse.rdf4j.model.Statement; import org.eclipse.rdf4j.model.Value; @@ -115,7 +115,6 @@ public List getKnownOntologies() { } ORDER BY LCASE(STR(?label)) """.formatted(RdfNamespaces.APP, RdfContexts.CTX_META); - List out = new ArrayList<>(); try (RepositoryConnection conn = ProjectContext.getRepository().getConnection()) { diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/services/DataSourceService.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/services/DataSourceService.java similarity index 93% rename from RDF_Back/src/main/java/com/uspn/rdf_back/services/DataSourceService.java rename to Backend/src/main/java/fr/cnrs/lacito/fieldarchive/services/DataSourceService.java index fc7299b4..b57868a1 100644 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/services/DataSourceService.java +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/services/DataSourceService.java @@ -1,15 +1,14 @@ -package com.uspn.rdf_back.services; - -import com.uspn.rdf_back.core.ProjectContext; -import com.uspn.rdf_back.core.RdfContexts; -import com.uspn.rdf_back.core.RdfNamespaces; -import com.uspn.rdf_back.dtos.CreateInternalDataSourceRequest; -import com.uspn.rdf_back.dtos.CreateExternalDataSourceRequest; -import com.uspn.rdf_back.dtos.DataSourceDto; -import com.uspn.rdf_back.dtos.UpdateDataSourceRequest; -import com.uspn.rdf_back.exception.BadRequestException; -import com.uspn.rdf_back.exception.ConflictException; -import com.uspn.rdf_back.exception.NotFoundException; +package fr.cnrs.lacito.fieldarchive.services; + +import fr.cnrs.lacito.fieldarchive.core.ProjectContext; +import fr.cnrs.lacito.fieldarchive.core.RdfContexts; +import fr.cnrs.lacito.fieldarchive.core.RdfNamespaces; +import fr.cnrs.lacito.fieldarchive.dtos.CreateInternalDataSourceRequest; +import fr.cnrs.lacito.fieldarchive.dtos.CreateExternalDataSourceRequest; +import fr.cnrs.lacito.fieldarchive.dtos.DataSourceDto; +import fr.cnrs.lacito.fieldarchive.dtos.UpdateDataSourceRequest; +import fr.cnrs.lacito.fieldarchive.exception.BadRequestException; +import fr.cnrs.lacito.fieldarchive.exception.NotFoundException; import org.eclipse.rdf4j.model.*; import org.eclipse.rdf4j.model.impl.SimpleValueFactory; import org.eclipse.rdf4j.model.vocabulary.DCTERMS; @@ -20,12 +19,10 @@ import org.springframework.stereotype.Service; import java.time.OffsetDateTime; -import java.time.LocalDate; import java.util.ArrayList; import java.util.List; import org.eclipse.rdf4j.rio.RDFFormat; -import org.eclipse.rdf4j.rio.Rio; import org.springframework.web.server.ResponseStatusException; import java.io.InputStream; @@ -44,7 +41,7 @@ private IRI metaCtx() { } private IRI dsIri(String shortName) { - return vf.createIRI(RdfNamespaces.APP + "datasource/" + shortName); + return vf.createIRI(RdfNamespaces.APP + "/datasource/" + shortName); } /** Graphe nommé (contexte) où seront stockés les triplets "contenu" de la source */ @@ -508,4 +505,19 @@ public void synchronizeExternalDataSource(String shortName) { } } + public IRI getGraphIri(String shortName) { + requireProjectOpen(); + validateShortName(shortName); + + IRI ctxMeta = metaCtx(); + IRI ds = dsIri(shortName); + + try (RepositoryConnection conn = ProjectContext.getRepository().getConnection()) { + String graphIri = getIri(conn, ds, pGraph(), ctxMeta); + if (graphIri == null) { + throw new NotFoundException("No graph found for source : " + shortName); + } + return vf.createIRI(graphIri); + } + } } \ No newline at end of file diff --git a/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/services/FileExportService.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/services/FileExportService.java new file mode 100644 index 00000000..3532fb3f --- /dev/null +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/services/FileExportService.java @@ -0,0 +1,109 @@ +package fr.cnrs.lacito.fieldarchive.services; + +import fr.cnrs.lacito.fieldarchive.core.ProjectContext; +import fr.cnrs.lacito.fieldarchive.core.RdfContexts; +import fr.cnrs.lacito.fieldarchive.exceptions.ImportException; +import org.eclipse.rdf4j.model.IRI; +import org.eclipse.rdf4j.model.Statement; +import org.eclipse.rdf4j.model.ValueFactory; +import org.eclipse.rdf4j.model.impl.SimpleValueFactory; +import org.eclipse.rdf4j.repository.Repository; +import org.eclipse.rdf4j.repository.RepositoryConnection; +import org.eclipse.rdf4j.repository.RepositoryResult; +import org.eclipse.rdf4j.rio.RDFFormat; +import org.eclipse.rdf4j.rio.RDFWriter; +import org.eclipse.rdf4j.rio.Rio; +import org.springframework.stereotype.Service; + +import java.io.OutputStream; +import java.util.zip.ZipEntry; +import java.util.zip.ZipOutputStream; + +@Service +public class FileExportService { + private static final ValueFactory vf = SimpleValueFactory.getInstance(); + private final ProjectService projectService; + private final DataSourceService dsService; + + public FileExportService(ProjectService projectService,DataSourceService dsService) { + this.projectService = projectService; + this.dsService = dsService; + } + + /** + * Exports only the InternalDataSource named graph (the data the user + * actually created/imported in the app) as plain Turtle triples. + * The named graph itself is NOT part of the output — Turtle has no + * notion of context, so the statements come out as bare triples, + * ready to be fed into any other RDF-consuming application. + */ + public void exportInternalDataSource(OutputStream out) { + Repository repo = ProjectContext.getRepository(); + if (repo == null) { + throw new ImportException("No project opened"); + } + + String projectName = projectService.readCurrentProject().name; + IRI ctxInternal = dsService.getGraphIri(projectName + "_internal"); // ✅ idem + + try (RepositoryConnection conn = repo.getConnection()) { + RDFWriter writer = Rio.createWriter(RDFFormat.TURTLE, out); + + conn.begin(); + writer.startRDF(); + + try (RepositoryResult statements = + conn.getStatements(null, null, null, false, ctxInternal)) { + for (Statement st : statements) { + // Re-emit as a context-free statement so the writer never + // even sees the graph — belt and braces alongside Turtle's + // own lack of context support. + writer.handleStatement( + vf.createStatement(st.getSubject(), st.getPredicate(), st.getObject())); + } + } + + writer.endRDF(); + conn.commit(); + } catch (Exception e) { + throw new ImportException("Export failed: " + e.getMessage()); + } + } + + public void exportBackup(OutputStream zipOut) { + Repository repo = ProjectContext.getRepository(); + if (repo == null) { + throw new ImportException("No project opened"); + } + + String projectName = projectService.readCurrentProject().name; + IRI ctxInternal = dsService.getGraphIri(projectName + "_internal"); // ✅ + IRI ctxMeta = vf.createIRI(RdfContexts.CTX_META); + IRI ctxProjectMeta = projectService.getMetadataContext(projectName, vf); // ✅ ajouté + + try (RepositoryConnection conn = repo.getConnection()) { + ZipOutputStream zip = new ZipOutputStream(zipOut); + zip.putNextEntry(new ZipEntry(projectName+"/project-backup.trig")); + + RDFWriter writer = Rio.createWriter(RDFFormat.TRIG, zip); + + conn.begin(); + writer.startRDF(); + + try (RepositoryResult statements = + conn.getStatements(null, null, null, false, ctxInternal, ctxMeta,ctxProjectMeta)) { + for (Statement st : statements) { + writer.handleStatement(st); // keep context — this is a quad export + } + } + + writer.endRDF(); + conn.commit(); + + zip.closeEntry(); + zip.finish(); + } catch (Exception e) { + throw new ImportException("Backup export failed: " + e.getMessage()); + } + } +} diff --git a/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/services/FileImportService.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/services/FileImportService.java new file mode 100644 index 00000000..06f6c0f7 --- /dev/null +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/services/FileImportService.java @@ -0,0 +1,144 @@ +package fr.cnrs.lacito.fieldarchive.services; + +import fr.cnrs.lacito.fieldarchive.core.ProjectContext; +import fr.cnrs.lacito.fieldarchive.dtos.ImportResult; +import fr.cnrs.lacito.fieldarchive.exceptions.ImportException; +import org.eclipse.rdf4j.model.IRI; +import org.eclipse.rdf4j.model.ValueFactory; +import org.eclipse.rdf4j.model.impl.SimpleValueFactory; +import org.eclipse.rdf4j.repository.Repository; +import org.eclipse.rdf4j.repository.RepositoryConnection; +import org.eclipse.rdf4j.repository.util.RDFInserter; +import org.eclipse.rdf4j.rio.RDFFormat; +import org.eclipse.rdf4j.rio.RDFParseException; +import org.eclipse.rdf4j.rio.RDFParser; +import org.eclipse.rdf4j.rio.Rio; +import org.eclipse.rdf4j.rio.helpers.BasicParserSettings; +import org.springframework.stereotype.Service; + +import java.io.InputStream; +import java.util.zip.ZipEntry; +import java.util.zip.ZipInputStream; +import java.io.ByteArrayInputStream; +import java.io.ByteArrayOutputStream; + +@Service +public class FileImportService { + + private static final ValueFactory vf = SimpleValueFactory.getInstance(); + private final ProjectService projectService; + private final DataSourceService dsService; + private final BuiltinOntologyService builtinOntologyService; // ✅ pour recharger RICO après restauration + + public FileImportService(ProjectService projectService, + DataSourceService dsService, + BuiltinOntologyService builtinOntologyService + ) { + this.projectService = projectService; + this.dsService = dsService; + this.builtinOntologyService = builtinOntologyService; + } + + public ImportResult importTurtle(InputStream ttlStream, String baseURI) { + Repository repo = ProjectContext.getRepository(); + if (repo == null) { + throw new ImportException("No project opened"); + } +// IRI CTX_INTERNAL = SimpleValueFactory.getInstance() +// .createIRI("http://fieldarchive.local/source/" + sourceName); +// IRI CTX_INTERNAL = vf.createIRI("urn:datasource:"+this.projectService.readCurrentProject().prefix+"_internal"); + String projectName = projectService.readCurrentProject().name; + IRI CTX_INTERNAL = dsService.getGraphIri(projectName + "_internal"); // ✅ lu depuis les métadonnées + + try (RepositoryConnection conn = repo.getConnection()) { + conn.begin(); + + // Re-import semantics: wipe the named graph before reloading +// conn.clear(CTX_INTERNAL); + + RDFInserter inserter = new RDFInserter(conn); + inserter.enforceContext(CTX_INTERNAL); // force every triple into this named graph + + RDFParser parser = Rio.createParser(RDFFormat.TURTLE); + parser.setRDFHandler(inserter); + parser.getParserConfig() + .set(BasicParserSettings.VERIFY_RELATIVE_URIS, false); + + parser.parse(ttlStream, baseURI); + + conn.commit(); + return ImportResult.success(CTX_INTERNAL.stringValue(), conn.size(CTX_INTERNAL)); + } catch (RDFParseException e) { + // line/column info is on the exception — surface it to the frontend + throw new ImportException(e.getLineNumber(), e.getColumnNumber(), e.getMessage()); + } catch (Exception e) { + throw new ImportException("Import failed: " + e.getMessage()); + } + } + + /* Restaure un projet depuis un backup (.zip contenant un .trig avec + * les graphes InternalDataSource + métadonnées projet/datasource). + * Le nom du projet est déduit du chemin interne du zip + * (dossier parent de project-backup.trig), pas du nom de fichier uploadé. + */ + public ImportResult importBackup(InputStream zipStream) { + byte[] trigContent = null; + String projectName = null; + + try (ZipInputStream zip = new ZipInputStream(zipStream)) { + ZipEntry entry; + while ((entry = zip.getNextEntry()) != null) { + if (entry.getName().endsWith("project-backup.trig")) { + // ex: "archive2025/project-backup.trig" → "archive2025" + String entryPath = entry.getName(); + int slash = entryPath.lastIndexOf('/'); + if (slash <= 0) { + throw new ImportException("Invalid Backup Project : Can't find project's name."); + } + projectName = entryPath.substring(0, slash); + + ByteArrayOutputStream buffer = new ByteArrayOutputStream(); + zip.transferTo(buffer); + trigContent = buffer.toByteArray(); + break; + } + } + } catch (Exception e) { + throw new ImportException("Cannot read the archive : " + e.getMessage()); + } + + if (trigContent == null || projectName == null) { + throw new ImportException("No file project-backup.trig found."); + } + + // 1) Create a new empty repo (fails if already exists) + projectService.initEmptyProjectRepository(projectName, true); + + Repository repo = ProjectContext.getRepository(); + + try (RepositoryConnection conn = repo.getConnection()) { + conn.begin(); + + try (InputStream trigStream = new ByteArrayInputStream(trigContent)) { + RDFParser parser = Rio.createParser(RDFFormat.TRIG); + parser.getParserConfig().set(BasicParserSettings.VERIFY_URI_SYNTAX, false); // ✅ tolère les IRIs non strictement conformes (double '#') + parser.getParserConfig().set(BasicParserSettings.VERIFY_RELATIVE_URIS, false); + + RDFInserter inserter = new RDFInserter(conn); // pas de enforceContext() : conserve les graphes tels qu'écrits dans le .trig + parser.setRDFHandler(inserter); + parser.parse(trigStream, ""); + } + + conn.commit(); + } catch (Exception e) { + throw new ImportException("Failed to extract backup project's content: " + e.getMessage()); + } + + // 3) Recharger l'ontologie RICO — absente du backup, l'app en a besoin. + // ensureRicoLoaded() est idempotent : il ne réécrit rien si déjà présent. + builtinOntologyService.ensureRicoLoaded(); + + return ImportResult.success(projectName, repo.getConnection().size()); + } + +} diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/services/OntologyService.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/services/OntologyService.java similarity index 53% rename from RDF_Back/src/main/java/com/uspn/rdf_back/services/OntologyService.java rename to Backend/src/main/java/fr/cnrs/lacito/fieldarchive/services/OntologyService.java index 66b18faf..b2b7b09d 100644 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/services/OntologyService.java +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/services/OntologyService.java @@ -1,16 +1,14 @@ -package com.uspn.rdf_back.services; - -import com.uspn.rdf_back.core.ProjectContext; -import com.uspn.rdf_back.core.RdfContexts; -import com.uspn.rdf_back.core.RdfNamespaces; -import com.uspn.rdf_back.dtos.OntologyLabelDto; -import com.uspn.rdf_back.dtos.SaveOntologyLabelRequest; -import com.uspn.rdf_back.exception.BadRequestException; -import com.uspn.rdf_back.exception.NotFoundException; -import org.eclipse.rdf4j.model.IRI; -import org.eclipse.rdf4j.model.Statement; -import org.eclipse.rdf4j.model.Value; -import org.eclipse.rdf4j.model.ValueFactory; +package fr.cnrs.lacito.fieldarchive.services; + +import com.fasterxml.jackson.databind.ObjectMapper; +import fr.cnrs.lacito.fieldarchive.core.ProjectContext; +import fr.cnrs.lacito.fieldarchive.core.RdfContexts; +import fr.cnrs.lacito.fieldarchive.core.RdfNamespaces; +import fr.cnrs.lacito.fieldarchive.dtos.OntologyLabelDto; +import fr.cnrs.lacito.fieldarchive.dtos.SaveOntologyLabelRequest; +import fr.cnrs.lacito.fieldarchive.exception.BadRequestException; +import fr.cnrs.lacito.fieldarchive.exception.NotFoundException; +import org.eclipse.rdf4j.model.*; import org.eclipse.rdf4j.model.impl.SimpleValueFactory; import org.eclipse.rdf4j.model.vocabulary.RDF; import org.eclipse.rdf4j.model.vocabulary.RDFS; @@ -19,10 +17,16 @@ import org.eclipse.rdf4j.query.TupleQueryResult; import org.eclipse.rdf4j.repository.RepositoryConnection; import org.eclipse.rdf4j.repository.RepositoryResult; +import org.eclipse.rdf4j.rio.RDFFormat; +import org.eclipse.rdf4j.rio.Rio; +import org.springframework.core.io.ClassPathResource; import org.springframework.stereotype.Service; -import java.util.ArrayList; -import java.util.List; +import java.io.InputStream; +import java.util.*; +import java.util.concurrent.ConcurrentHashMap; +import java.util.function.Function; +import java.util.stream.Collectors; @Service public class OntologyService { @@ -37,6 +41,106 @@ private IRI ontologyType() { return vf.createIRI(RdfNamespaces.APP, "OntologyNamespace"); } + private final Map>> definedTypesCache = new ConcurrentHashMap<>(); + + private List> getDefinedTypes(String namespacePrefix, Map ontologyData) { + return definedTypesCache.computeIfAbsent(namespacePrefix, p -> { + String file = (String) ontologyData.get("file"); + if (file == null || file.isBlank()) { + return List.of(); + } + return loadDefinedTypesFromFile(file, namespacePrefix); + }); + } + + private List> loadDefinedTypesFromFile(String classpathFile, String namespacePrefix) { + ClassPathResource resource = new ClassPathResource(classpathFile); + if (!resource.exists()) { + return List.of(); // no local definition shipped for this ontology, nothing to add + } + + Model model; + try (InputStream is = resource.getInputStream()) { + RDFFormat format = Rio.getParserFormatForFileName(classpathFile).orElse(RDFFormat.RDFXML); + model = Rio.parse(is, "", format); + } catch (Exception e) { + e.printStackTrace(); + return List.of(); + } + + IRI owlClass = vf.createIRI("http://www.w3.org/2002/07/owl#Class"); + IRI rdfsClass = vf.createIRI("http://www.w3.org/2000/01/rdf-schema#Class"); + + Set classSubjects = new LinkedHashSet<>(); + classSubjects.addAll(model.filter(null, RDF.TYPE, owlClass).subjects()); + classSubjects.addAll(model.filter(null, RDF.TYPE, rdfsClass).subjects()); + + List> result = new ArrayList<>(); + for (Resource subject : classSubjects) { + if (!(subject instanceof IRI typeIri)) continue; + if (!typeIri.stringValue().startsWith(namespacePrefix)) continue; + + String label = model.filter(typeIri, RDFS.LABEL, null).stream() + .map(Statement::getObject) + .filter(v -> v instanceof Literal) + .map(v -> (Literal) v) + .filter(lit -> { + String lang = lit.getLanguage().orElse(""); + return lang.isEmpty() || lang.equals("en") || lang.equals("fr"); + }) + .findFirst() + .map(Literal::getLabel) + .orElse(extractType(typeIri.stringValue())); + + Map entry = new HashMap<>(); + entry.put("uri", typeIri.stringValue()); + entry.put("localName", extractType(typeIri.stringValue())); + entry.put("label", label); + result.add(entry); + } + + result.sort(Comparator.comparing(m -> m.get("localName"))); + return result; + } + + + public OntologyService() { + loadConfig(); + } + + private Map ontologyConfig; + + private static String extractPrefix(String uri) { + if (uri.contains("#")) { + return uri.substring(0, uri.indexOf("#")); + } else { + int lastSlash = uri.lastIndexOf("/"); + return (lastSlash != -1) ? uri.substring(0, lastSlash) : uri; + } + } + private static String extractType(String uri) { + if (uri.contains("#")) { + return uri.substring(uri.indexOf("#") +1); + } else { + int lastSlash = uri.lastIndexOf("/"); + return (lastSlash != -1) ? uri.substring(lastSlash+1) : uri; + } + } + + private void loadConfig() { + try { + ObjectMapper mapper = new ObjectMapper(); + InputStream is = new ClassPathResource("ontologies/configuration.json").getInputStream(); + + ontologyConfig = mapper.readValue(is, Map.class); + + } catch (Exception e) { + e.printStackTrace(); + } + } + + + private void requireProjectOpen() { if (!ProjectContext.isOpen()) { throw new BadRequestException("Aucun projet ouvert."); @@ -74,9 +178,16 @@ private String getLabel(RepositoryConnection conn, IRI ontology, IRI ctxMeta) { } // ============================= - // TYPES RDF + // ALL USED TYPES GROUPED BY ONTOLOGY // ============================= - public List getAllTypes() { + private static String normalizeNamespace(String ns) { + if (ns != null && (ns.endsWith("#") || ns.endsWith("/"))) { + return ns.substring(0, ns.length() - 1); + } + return ns; + } + + public Map getAllTypes() { String query = """ PREFIX rdf: @@ -103,7 +214,69 @@ public List getAllTypes() { } } - return types; + Map> grouped = types.stream() + .collect(Collectors.groupingBy( + t -> normalizeNamespace(extractPrefix(t)), + Collectors.mapping(Function.identity(), Collectors.toList()) + )); + + // print + grouped.forEach((prefix, list) -> { + System.out.println(prefix + " :"); + list.forEach(v -> System.out.println(" - " + v)); + }); + + + Map ontologies = (Map) ontologyConfig.get("ontologies"); + Map data = new HashMap<>(); + + ontologies.forEach((prefix, rawOntologyData) -> { + String normalizedPrefix = normalizeNamespace(prefix); + Map ontologyData = (Map) rawOntologyData; + Map merged = new HashMap<>(ontologyData); + merged.remove("file"); + + List used = grouped.getOrDefault(normalizedPrefix, List.of()); + merged.put("usedTypes", Map.of("name", "Used Types", "value", used)); + + Set alreadyCovered = new HashSet<>(); + used.forEach(u -> alreadyCovered.add(extractType(u))); + alreadyCovered.addAll(extractConfiguredNames(ontologyData, "mainTypes")); + alreadyCovered.addAll(extractConfiguredNames(ontologyData, "mainTerminologies")); + + List> defined = getDefinedTypes(normalizedPrefix, ontologyData).stream() + .filter(t -> !alreadyCovered.contains(t.get("localName"))) + .collect(Collectors.toList()); + merged.put("definedTypes", Map.of("name", "Defined Types", "value", defined)); + + if (!used.isEmpty() || !defined.isEmpty()) { + data.put(prefix, merged); // keep original config key as the output key + } + }); + + return data; + } + + @SuppressWarnings("unchecked") + private Set extractConfiguredNames(Map ontologyData, String sectionKey) { + Object section = ontologyData.get(sectionKey); + if (section == null) { + return Set.of(); + } + + List rawValues; + if (section instanceof List list) { + rawValues = list; + } else if (section instanceof Map map && map.get("value") instanceof List list) { + rawValues = list; + } else { + return Set.of(); + } + + return rawValues.stream() + .map(String::valueOf) + .map(OntologyService::extractType) + .collect(Collectors.toSet()); } // ============================= diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/services/ProjectService.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/services/ProjectService.java similarity index 73% rename from RDF_Back/src/main/java/com/uspn/rdf_back/services/ProjectService.java rename to Backend/src/main/java/fr/cnrs/lacito/fieldarchive/services/ProjectService.java index 223e446a..543784de 100644 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/services/ProjectService.java +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/services/ProjectService.java @@ -1,10 +1,11 @@ -package com.uspn.rdf_back.services; - -import com.uspn.rdf_back.core.ProjectContext; -import com.uspn.rdf_back.core.RdfContexts; -import com.uspn.rdf_back.core.RdfNamespaces; -import com.uspn.rdf_back.dtos.ProjectDto; -import com.uspn.rdf_back.dtos.UpdateProjectObject; +package fr.cnrs.lacito.fieldarchive.services; + +import fr.cnrs.lacito.fieldarchive.core.ProjectContext; +import fr.cnrs.lacito.fieldarchive.core.RdfContexts; +import fr.cnrs.lacito.fieldarchive.core.RdfNamespaces; +import fr.cnrs.lacito.fieldarchive.dtos.CreateInternalDataSourceRequest; +import fr.cnrs.lacito.fieldarchive.dtos.ProjectDto; +import fr.cnrs.lacito.fieldarchive.utils.ProjectsDirectory; import org.eclipse.rdf4j.model.IRI; import org.eclipse.rdf4j.model.ValueFactory; import org.eclipse.rdf4j.model.vocabulary.DCTERMS; @@ -31,26 +32,95 @@ @Service public class ProjectService { + private final DataSourceService dsService ; + private final ProjectsDirectory projectsDirectory; + private static final IRI TYPE_PROJECT = org.eclipse.rdf4j.model.impl.SimpleValueFactory.getInstance() .createIRI(RdfNamespaces.APP, "Project"); - public ProjectService(BuiltinOntologyService builtinOntologyService) { + private static final IRI PROP_PREFIX = org.eclipse.rdf4j.model.impl.SimpleValueFactory.getInstance() + .createIRI(RdfNamespaces.APP, "prefix"); + + public ProjectService(BuiltinOntologyService builtinOntologyService, + DataSourceService dsService, + ProjectsDirectory projectsDirectory + ) { this.builtinOntologyService = builtinOntologyService; + this.dsService = dsService; + this.projectsDirectory = projectsDirectory; + } + + private IRI projectIri(String projectName, ValueFactory vf) { + return vf.createIRI(RdfNamespaces.APP + "/projects#" + projectName); } - private IRI projectIri(ValueFactory vf, String projectName) { - return vf.createIRI(RdfNamespaces.APP + "project/" + projectName); + private IRI metadataCtx(String projectName, ValueFactory vf) { + return vf.createIRI(RdfNamespaces.APP + "/projects#" +projectName+"/metadata"); } - private IRI metadataCtx(ValueFactory vf) { - return vf.createIRI(RdfContexts.CTX_META); + public IRI getMetadataContext(String projectName, ValueFactory vf) { + return metadataCtx(projectName, vf); } private final BuiltinOntologyService builtinOntologyService; + + public void initEmptyProjectRepository(String name, boolean persistent) { + if (name == null || name.isBlank()) { + throw new IllegalArgumentException("Project's name should not be empty !"); + } + + Path path = projectsDirectory.getPublicPath().resolve(name); + if (Files.exists(path)) { + throw new IllegalArgumentException("A project with name \"" + name + "\" already exists."); + } + + ProjectContext.close(); + + Repository repo = createRepository(name, persistent); + repo.init(); + ProjectContext.set(repo, name); + } + + + public ProjectDto createProject(String name, boolean persistent, String description, String prefix) { + + if (name == null || name.isBlank()) { + throw new IllegalArgumentException("Project's name should not be empty !"); + } + + // 1) Fermer un projet déjà ouvert + ProjectContext.close(); + + // 2) Créer / ouvrir le store + Repository repo = createRepository(name, persistent); + repo.init(); + ProjectContext.set(repo, name); + + try { + // 3) Écrire (ou mettre à jour) les métadonnées RDF du projet + upsertProjectMetadata(name, description, prefix); + + // 4) Charger automatiquement RiC-O dans le projet + builtinOntologyService.ensureRicoLoaded(); + + CreateInternalDataSourceRequest dataSourceCreationRequest = new CreateInternalDataSourceRequest(name+"_internal",name+" internal DataSource ",""); + this.dsService.createInternalDataSource(dataSourceCreationRequest); + + // 5) Retour DTO + return readCurrentProject(); + } + + catch (RuntimeException e) { + ProjectContext.close(); + throw e; + } + + } + /** * Ouvre (ou crée) le repository RDF4J du projet et écrit les métadonnées du projet en RDF. */ - public ProjectDto openProject(String name, boolean persistent, String description) { + public ProjectDto openProject(String name, boolean persistent, String description, String prefix) { if (name == null || name.isBlank()) { throw new IllegalArgumentException("Project's name should not be empty !"); } @@ -65,7 +135,7 @@ public ProjectDto openProject(String name, boolean persistent, String descriptio try { // 3) Écrire (ou mettre à jour) les métadonnées RDF du projet - upsertProjectMetadata(name, description); + upsertProjectMetadata(name, description, prefix ); // 4) Charger automatiquement RiC-O dans le projet builtinOntologyService.ensureRicoLoaded(); @@ -80,8 +150,7 @@ public ProjectDto openProject(String name, boolean persistent, String descriptio private Repository createRepository(String projectName, boolean persistent) { // Ici on persiste sur disque (NativeStore). persistent=false pourrait être MemoryStore, - // mais on garde simple pour vous. - File dir = new File("projects/" + projectName + "/store"); + File dir = projectsDirectory.getPublicPath().resolve(projectName).resolve("store").toFile(); // ✅ dir.mkdirs(); return new SailRepository(new NativeStore(dir)); } @@ -90,8 +159,11 @@ public void deleteProject(String projectName) throws IOException { if (projectName == null || projectName.isBlank()) { throw new IllegalArgumentException("Project name must not be empty"); } + if (projectName.equals(ProjectContext.getProjectName())) { + ProjectContext.close(); + } - Path path = Paths.get("projects", projectName); + Path path = projectsDirectory.getPublicPath().resolve(projectName); if (!Files.exists(path)) { throw new FileNotFoundException("Project not found"); @@ -115,12 +187,12 @@ public void deleteProject(String projectName) throws IOException { } } - private void upsertProjectMetadata(String projectName, String description) { + private void upsertProjectMetadata(String projectName, String description, String prefix) { Repository repo = ProjectContext.getRepository(); try (RepositoryConnection conn = repo.getConnection()) { ValueFactory vf = conn.getValueFactory(); - IRI project = projectIri(vf, projectName); - IRI ctx = metadataCtx(vf); + IRI project = projectIri(projectName,vf); + IRI ctx = metadataCtx(projectName,vf); String now = OffsetDateTime.now().format(DateTimeFormatter.ISO_OFFSET_DATE_TIME); String today = LocalDate.now().toString(); @@ -148,6 +220,11 @@ private void upsertProjectMetadata(String projectName, String description) { conn.add(project, DCTERMS.DESCRIPTION, vf.createLiteral(description), ctx); } + if (prefix != null) { + conn.remove(project, PROP_PREFIX, null, ctx); + conn.add(project, PROP_PREFIX, vf.createLiteral(prefix), ctx); + } + conn.commit(); } } @@ -176,8 +253,8 @@ public void updateProject(String oldName, String newName, String newDescription) // ───────────────────────────────────────────── // 1) Rename folder on disk // ───────────────────────────────────────────── - Path oldPath = Paths.get("projects", oldName); - Path newPath = Paths.get("projects", newName); + Path oldPath = projectsDirectory.getPublicPath().resolve(oldName); + Path newPath = projectsDirectory.getPublicPath().resolve(newName); if (!Files.exists(oldPath)) { throw new FileNotFoundException("Old project not found"); @@ -203,9 +280,9 @@ public void updateProject(String oldName, String newName, String newDescription) try (RepositoryConnection conn = repo.getConnection()) { ValueFactory vf = conn.getValueFactory(); - IRI oldProject = projectIri(vf, oldName); - IRI newProject = projectIri(vf, newName); - IRI ctx = metadataCtx(vf); + IRI oldProject = projectIri(oldName,vf); + IRI newProject = projectIri(newName,vf); + IRI ctx = metadataCtx(newName,vf); conn.begin(); @@ -255,8 +332,8 @@ public ProjectDto readCurrentProject() { try (RepositoryConnection conn = ProjectContext.getRepository().getConnection()) { ValueFactory vf = conn.getValueFactory(); - IRI project = projectIri(vf, name); - IRI ctx = metadataCtx(vf); + IRI project = projectIri(name,vf); + IRI ctx = metadataCtx(name,vf); // read description var descSt = conn.getStatements(project, DCTERMS.DESCRIPTION, null, ctx).stream().findFirst().orElse(null); @@ -267,6 +344,11 @@ public ProjectDto readCurrentProject() { var modifiedSt = conn.getStatements(project, DCTERMS.MODIFIED, null, ctx).stream().findFirst().orElse(null); dto.modified = (modifiedSt != null) ? modifiedSt.getObject().stringValue() : null; + + var prefix = conn.getStatements(project, PROP_PREFIX, null, ctx).stream().findFirst().orElse(null); + dto.prefix = (prefix != null) ? prefix.getObject().stringValue() : null; + + } return dto; @@ -280,7 +362,7 @@ public void closeProject() { * Liste simple : retourne juste les noms des projets existants sur le disque */ public List listProjects() { - File projectsDir = new File("projects"); + File projectsDir = projectsDirectory.getPublicPath().toFile(); if (!projectsDir.exists() || !projectsDir.isDirectory()) { return List.of(); @@ -301,7 +383,7 @@ public List listProjects() { * Liste détaillée : retourne nom + date de modification + si ouvert actuellement */ public List> listProjectsDetailed() { - File projectsDir = new File("projects"); + File projectsDir = projectsDirectory.getPublicPath().toFile(); if (!projectsDir.exists() || !projectsDir.isDirectory()) { return List.of(); @@ -338,6 +420,8 @@ public List> listProjectsDetailed() { info.put("description", null); info.put("created", null); info.put("lastModified", new java.util.Date(dir.lastModified())); + info.put("prefix", "NOT_FOUND"); + } finally { tempRepo.shutDown(); } @@ -354,12 +438,14 @@ public List> listProjectsDetailed() { private void readMetadataFromRepo(Repository repo, String projectName, Map info) { try (RepositoryConnection conn = repo.getConnection()) { ValueFactory vf = conn.getValueFactory(); - IRI project = projectIri(vf, projectName); // même helper que upsertProjectMetadata - IRI ctx = metadataCtx(vf); // même helper que upsertProjectMetadata + IRI project = projectIri(projectName,vf); // même helper que upsertProjectMetadata + IRI ctx = metadataCtx(projectName,vf); // même helper que upsertProjectMetadata info.put("description", getStringValue(conn, project, DCTERMS.DESCRIPTION, ctx)); info.put("created", getStringValue(conn, project, DCTERMS.CREATED, ctx)); info.put("lastModified", getStringValue(conn, project, DCTERMS.MODIFIED, ctx)); + info.put("prefix", getStringValue(conn, project, PROP_PREFIX, ctx)); + } } diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/services/RdfEntityService.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/services/RdfEntityService.java similarity index 68% rename from RDF_Back/src/main/java/com/uspn/rdf_back/services/RdfEntityService.java rename to Backend/src/main/java/fr/cnrs/lacito/fieldarchive/services/RdfEntityService.java index f6a276d1..993be7a1 100644 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/services/RdfEntityService.java +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/services/RdfEntityService.java @@ -1,10 +1,12 @@ -package com.uspn.rdf_back.services; - -import com.uspn.rdf_back.core.ProjectContext; -import com.uspn.rdf_back.core.RdfNamespaces; -import com.uspn.rdf_back.dtos.*; -import com.uspn.rdf_back.exception.BadRequestException; -import com.uspn.rdf_back.exception.NotFoundException; +package fr.cnrs.lacito.fieldarchive.services; + +import fr.cnrs.lacito.fieldarchive.core.ProjectContext; +import fr.cnrs.lacito.fieldarchive.core.RdfContexts; +import fr.cnrs.lacito.fieldarchive.core.RdfNamespaces; +import fr.cnrs.lacito.fieldarchive.dtos.*; +import fr.cnrs.lacito.fieldarchive.dtos.*; +import fr.cnrs.lacito.fieldarchive.exception.BadRequestException; +import fr.cnrs.lacito.fieldarchive.exception.NotFoundException; import org.eclipse.rdf4j.model.*; import org.eclipse.rdf4j.model.impl.SimpleValueFactory; import org.eclipse.rdf4j.model.vocabulary.RDF; @@ -17,24 +19,46 @@ @Service public class RdfEntityService { - private static final String ENTITY_NS = RdfNamespaces.APP + "entity/"; - private IRI iriFromKey(String key) { - return vf.createIRI(ENTITY_NS + key); + private static final ValueFactory vf = SimpleValueFactory.getInstance(); + + private final ProjectService projectService; + private final DataSourceService dsService; + + public RdfEntityService(ProjectService projectService, DataSourceService dsService) { + this.projectService = projectService; + this.dsService = dsService; + } + private IRI internalCtx() { + String projectName = projectService.readCurrentProject().name; + return dsService.getGraphIri(projectName + "_internal"); + } + + private IRI iriFromKey(String entityIri, String key) { + String entityTypeName = entityIri.replace(RdfNamespaces.RICO,""); + ProjectDto currentProject = this.projectService.readCurrentProject(); + return vf.createIRI(currentProject.prefix + '/' + entityTypeName +'/' + key); } private String keyFromIri(IRI iri) { String s = iri.stringValue(); - if (!s.startsWith(ENTITY_NS)) { - throw new IllegalArgumentException("IRI invalide: " + s); + String entityNs = projectService.readCurrentProject().prefix; + +// || !s.startsWith(entityNs) + if (entityNs == null ) { + throw new IllegalArgumentException("invalid IRI: " + s); + } + + int lastSlash = s.lastIndexOf('/'); + + if (lastSlash == -1 || lastSlash == s.length() - 1) { + throw new IllegalArgumentException("IRI mal formée (pas de clé): " + s); } - return s.substring(ENTITY_NS.length()); + + return s.substring(lastSlash + 1); } - private static final ValueFactory vf = SimpleValueFactory.getInstance(); - // Graphe interne éditable (aligné avec ton implémentation actuelle) - private static final IRI CTX_INTERNAL = vf.createIRI("urn:datasource:internal"); // Prefixes acceptés par l’API (CURIE -> IRI) private static final Map PREFIX = Map.of( @@ -71,6 +95,8 @@ private String expand(String iriOrCurie) { private boolean isInternalEntity(RepositoryConnection conn, IRI subject) { // Si l'entité a au moins un triplet dans le graphe interne, on la considère interne/éditable + IRI CTX_INTERNAL = internalCtx(); + try (var stmts = conn.getStatements(subject, null, null, CTX_INTERNAL)) { return stmts.hasNext(); } @@ -123,17 +149,18 @@ public List listTypes() { // ========================= public RdfEntityDto create(CreateRdfEntityRequest req) { requireProjectOpen(); - if (req == null) throw new BadRequestException("Body manquant."); + if (req == null) throw new BadRequestException("Body is missing."); if (req.types == null || req.types.isEmpty()) { - throw new BadRequestException("types obligatoire (au moins 1 rdf:type)."); + throw new BadRequestException("Entity type is mandatory (at least one)"); } String entityKey = UUID.randomUUID().toString(); - IRI subject = iriFromKey(entityKey); + IRI subject = iriFromKey(req.types.get(0),entityKey); try (RepositoryConnection conn = ProjectContext.getRepository().getConnection()) { conn.begin(); + IRI CTX_INTERNAL = internalCtx(); // rdf:type for (String t : req.types) { @@ -151,8 +178,15 @@ public RdfEntityDto create(CreateRdfEntityRequest req) { conn.commit(); } - return getByKey(entityKey); + return getByIri(subject); + + } + private void addType(RepositoryConnection conn, IRI subject, String type){ + if (type == null) return ; + IRI CTX_INTERNAL = internalCtx(); + IRI typeIri = vf.createIRI(expand(type)); + conn.add(subject, RDF.TYPE, typeIri, CTX_INTERNAL); } private void addProperty(RepositoryConnection conn, IRI subject, RdfPropertyDto p) { @@ -163,7 +197,7 @@ private void addProperty(RepositoryConnection conn, IRI subject, RdfPropertyDto if (p.kind == null || p.kind.isBlank()) { throw new BadRequestException("Predicate's kind is mandatory (literal|iri)."); } - + IRI CTX_INTERNAL = internalCtx(); IRI pred = vf.createIRI(expand(p.predicate)); if ("iri".equalsIgnoreCase(p.kind)) { @@ -198,7 +232,7 @@ public List listByType(String typeCurieOrIri) { requireProjectOpen(); if (typeCurieOrIri == null || typeCurieOrIri.isBlank()) { - throw new BadRequestException("Paramètre type obligatoire."); + throw new BadRequestException("Type parameter is mandatory."); } IRI typeIri = vf.createIRI(expand(typeCurieOrIri)); @@ -235,19 +269,66 @@ public List listByType(String typeCurieOrIri) { // ========================= // READ ONE // ========================= +// public RdfEntityDto getByKey(String key) { +// requireProjectOpen(); +// if (key == null || key.isBlank()) { +// throw new BadRequestException("entityKey manquant."); +// } +// IRI subject = iriFromKey(key); +// return getByIri(subject); +// } + + public String getNameOfEntityByIri(IRI subject) { + requireProjectOpen(); + if (subject == null) { + throw new BadRequestException("IRI manquant."); + } + try (RepositoryConnection conn = ProjectContext.getRepository().getConnection()) { + boolean exists; + try (var st = conn.getStatements(subject, null, null)) { + exists = st.hasNext(); + } + if (!exists) throw new NotFoundException("Entité introuvable: " + subject.stringValue()); + IRI CTX_INTERNAL = internalCtx(); + // properties (on renvoie tout ce qu’on trouve) + // Lire toutes les propriétés + try (var stmts = conn.getStatements(subject, null, null, CTX_INTERNAL)) { + while (stmts.hasNext()) { + Statement st = stmts.next(); + IRI pred = st.getPredicate(); + Value obj = st.getObject(); + + // Ignore rdf:type (déjà traité) + String predicateString = pred.stringValue(); + if (!predicateString.equals("https://www.ica.org/standards/RiC/ontology#name") ) continue; + + + if (obj.isLiteral()) { + Literal lit = (Literal) obj; + return lit.getLabel(); + + } + + + } + } + } + return ""; + + } + public RdfEntityDto getByKey(String key) { - requireProjectOpen(); if (key == null || key.isBlank()) { - throw new BadRequestException("entityKey manquant."); + throw new BadRequestException("IRI is missing."); } - IRI subject = iriFromKey(key); - return getByIri(subject); + return getByIri(vf.createIRI(key)); } + public RdfEntityDto getByIri(IRI subject) { requireProjectOpen(); if (subject == null) { - throw new BadRequestException("IRI manquant."); + throw new BadRequestException("IRI is missing."); } try (RepositoryConnection conn = ProjectContext.getRepository().getConnection()) { @@ -273,6 +354,7 @@ public RdfEntityDto getByIri(IRI subject) { // properties (on renvoie tout ce qu’on trouve) // Lire toutes les propriétés + IRI CTX_INTERNAL = internalCtx(); try (var stmts = conn.getStatements(subject, null, null, CTX_INTERNAL)) { while (stmts.hasNext()) { Statement st = stmts.next(); @@ -288,6 +370,7 @@ public RdfEntityDto getByIri(IRI subject) { if (obj.isIRI()) { p.kind = "iri"; p.value = obj.stringValue(); + p.name = this.getNameOfEntityByIri((IRI) obj); } else if (obj.isLiteral()) { Literal lit = (Literal) obj; @@ -316,20 +399,20 @@ public RdfEntityDto getByIri(IRI subject) { // UPDATE // ========================= // ========================= -// UPDATE (interne uniquement) +// UPDATE (Only internal) // ========================= - public RdfEntityDto updateByKey(String key, UpdateRdfEntityRequest req) { + public RdfEntityDto updateByKey(String entityIri, UpdateRdfEntityRequest req) { requireProjectOpen(); - if (key == null || key.isBlank()) { - throw new BadRequestException("entityKey manquant."); + if (entityIri == null || entityIri.isBlank()) { + throw new BadRequestException("entityKey is missing."); } if (req == null) { - throw new BadRequestException("Body manquant."); + throw new BadRequestException("Request Body is missing."); } - IRI subject = iriFromKey(key); + IRI subject = vf.createIRI(entityIri); try (RepositoryConnection conn = ProjectContext.getRepository().getConnection()) { @@ -339,7 +422,7 @@ public RdfEntityDto updateByKey(String key, UpdateRdfEntityRequest req) { exists = st.hasNext(); } if (!exists) { - throw new NotFoundException("Entité introuvable: " + key); + throw new NotFoundException("Entity not found : " + entityIri); } // 2 Vérifier éditable @@ -353,6 +436,8 @@ public RdfEntityDto updateByKey(String key, UpdateRdfEntityRequest req) { // 3 Remplacer uniquement les prédicats fournis if (req.properties != null) { + IRI CTX_INTERNAL = internalCtx(); + for (RdfPropertyDto p : req.properties) { if (p == null || p.predicate == null || p.predicate.isBlank()) { @@ -360,37 +445,47 @@ public RdfEntityDto updateByKey(String key, UpdateRdfEntityRequest req) { } IRI pred = vf.createIRI(expand(p.predicate)); - - // Supprimer anciennes valeurs dans le graphe interne + // Remove old values from internal DS conn.remove(subject, pred, null, CTX_INTERNAL); - // Ajouter la nouvelle valeur si présente if (p.value != null && !p.value.isBlank()) { addProperty(conn, subject, p); } } } + if(req.types != null ){ + IRI CTX_INTERNAL = internalCtx(); + conn.remove(subject, RDF.TYPE, null, CTX_INTERNAL); + + for (String type : req.types) { + + if(type == null) continue; + addType(conn, subject, type); + + } + } + // 4 Mettre à jour lastSync de la source interne touchInternalDataSource(conn); conn.commit(); } - return getByKey(key); + return getByIri(subject); } // DELETE (interne uniquement) // ========================= - public void deleteByKey(String key) { + public void deleteByKey(String entityIri) { requireProjectOpen(); - if (key == null || key.isBlank()) { + if (entityIri == null || entityIri.isBlank()) { throw new BadRequestException("entityKey manquant."); } - IRI subject = iriFromKey(key); + IRI subject = vf.createIRI(entityIri); try (RepositoryConnection conn = ProjectContext.getRepository().getConnection()) { @@ -400,16 +495,16 @@ public void deleteByKey(String key) { exists = st.hasNext(); } if (!exists) { - throw new NotFoundException("Entité introuvable: " + key); + throw new NotFoundException("Entity not found: " + entityIri); } // 2 Vérifier éditable if (!isInternalEntity(conn, subject)) { throw new BadRequestException( - "Suppression interdite : entité provenant d'une source externe." + "Deletion of entity is not allowed : Entity is from an external DataSource" ); } - + IRI CTX_INTERNAL = internalCtx(); conn.begin(); // 3 Supprimer UNIQUEMENT dans la source interne //Supprimer tous les triplets où l'entité est SUJET @@ -428,16 +523,13 @@ public void deleteByKey(String key) { private void touchInternalDataSource(RepositoryConnection conn) { - IRI ctxMeta = vf.createIRI("urn:datasource:meta"); - IRI ds = vf.createIRI("http://uspn.fr/app#datasource/internal"); + IRI ctxMeta = vf.createIRI(RdfContexts.CTX_META); + String projectName = projectService.readCurrentProject().name; + IRI ds = vf.createIRI(RdfNamespaces.APP + "/datasource/" + projectName + "_internal"); String now = OffsetDateTime.now().toString(); - conn.remove(ds, vf.createIRI("http://purl.org/dc/terms/modified"), null, ctxMeta); - conn.add(ds, - vf.createIRI("http://purl.org/dc/terms/modified"), - vf.createLiteral(now), - ctxMeta); + conn.add(ds, vf.createIRI("http://purl.org/dc/terms/modified"), vf.createLiteral(now), ctxMeta); } } \ No newline at end of file diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/services/SparqlService.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/services/SparqlService.java similarity index 94% rename from RDF_Back/src/main/java/com/uspn/rdf_back/services/SparqlService.java rename to Backend/src/main/java/fr/cnrs/lacito/fieldarchive/services/SparqlService.java index 0b0b211f..31f15a8c 100644 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/services/SparqlService.java +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/services/SparqlService.java @@ -1,7 +1,7 @@ -package com.uspn.rdf_back.services; +package fr.cnrs.lacito.fieldarchive.services; -import com.uspn.rdf_back.core.ProjectContext; -import com.uspn.rdf_back.exception.BadRequestException; +import fr.cnrs.lacito.fieldarchive.core.ProjectContext; +import fr.cnrs.lacito.fieldarchive.exception.BadRequestException; import org.eclipse.rdf4j.query.QueryLanguage; import org.eclipse.rdf4j.query.TupleQueryResult; import org.eclipse.rdf4j.query.Update; diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/utils/CsvFileHandler.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/utils/CsvFileHandler.java similarity index 95% rename from RDF_Back/src/main/java/com/uspn/rdf_back/utils/CsvFileHandler.java rename to Backend/src/main/java/fr/cnrs/lacito/fieldarchive/utils/CsvFileHandler.java index e9b08343..e08e2547 100644 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/utils/CsvFileHandler.java +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/utils/CsvFileHandler.java @@ -1,4 +1,4 @@ -package com.uspn.rdf_back.utils; +package fr.cnrs.lacito.fieldarchive.utils; import org.springframework.stereotype.Service; diff --git a/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/utils/ProjectsDirectory.java b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/utils/ProjectsDirectory.java new file mode 100644 index 00000000..2d654522 --- /dev/null +++ b/Backend/src/main/java/fr/cnrs/lacito/fieldarchive/utils/ProjectsDirectory.java @@ -0,0 +1,20 @@ +package fr.cnrs.lacito.fieldarchive.utils; + +import org.springframework.stereotype.Component; + +import java.nio.file.Path; +import java.nio.file.Paths; + +@Component +public class ProjectsDirectory { + + public Path getPublicPath() { + String dataPath = System.getenv("FIELD_ARCHIVE_DATA"); + + if (dataPath == null) { + throw new IllegalStateException("FIELD_ARCHIVE_DATA is not defined"); + } + + return Paths.get(dataPath, "projects"); + } +} diff --git a/RDF_Back/src/main/resources/application.properties b/Backend/src/main/resources/application.properties similarity index 100% rename from RDF_Back/src/main/resources/application.properties rename to Backend/src/main/resources/application.properties diff --git a/Backend/src/main/resources/ontologies/configuration.json b/Backend/src/main/resources/ontologies/configuration.json new file mode 100644 index 00000000..0d5d51b5 --- /dev/null +++ b/Backend/src/main/resources/ontologies/configuration.json @@ -0,0 +1,134 @@ +{ + "ontologies": { + "https://www.ica.org/standards/RiC/ontology": { + "name" : "rico", + "file": "ontologies/rico.rdf", + "mainTypes" : { + "name": "Main Types", + "value": [ + "https://www.ica.org/standards/RiC/ontology#Activity", + "https://www.ica.org/standards/RiC/ontology#Person", + "https://www.ica.org/standards/RiC/ontology#Record", + "https://www.ica.org/standards/RiC/ontology#Instantiation", + "https://www.ica.org/standards/RiC/ontology#Place" + ] + }, + "mainTerminologies" : { + "name": "Main Terminologies", + "value": [ + "https://www.ica.org/standards/RiC/ontology#ActivityType", + "https://www.ica.org/standards/RiC/ontology#DocumentaryFormType", + "https://www.ica.org/standards/RiC/ontology#ContentFormType", + "https://www.ica.org/standards/RiC/ontology#Language", + "https://www.ica.org/standards/RiC/ontology#PlaceType", + "https://www.ica.org/standards/RiC/ontology#RoleType" + ] + }, + "mainProperty": { + "Activity": [ + "https://www.ica.org/standards/RiC/ontology#hasOrHadParticipant", + "https://www.ica.org/standards/RiC/ontology#hasBeginningDate", + "https://www.ica.org/standards/RiC/ontology#hasEndDate" + ], + "Record": [ + "https://www.ica.org/standards/RiC/ontology#isAssociatedWithDate", + "https://www.ica.org/standards/RiC/ontology#hasCreator" + ], + "Agent": [ + "hasName", + "hasOrHadOccupation" + ], + "RecordResource": [ + "hasCreator", + "isAssociatedWithDate" + ] + }, + "removeProperty": [ + "isOrWasParticipantIn", + "isCreatorOf", + "hasSuccessor", + "hasPredecessor" + ], + "contextProperty": { + "PerformanceRelation": { + "displayName": "Participation (with role)", + "mainProperty": ["performanceWithRole"], + "domain": "Activity", + "range": "Agent" + }, + "CreationRelation": { + "displayName": "Creation (with role)", + "mainProperty": ["creationWithRole"], + "domain": "RecordResource", + "range": "Agent" + }, + "SequentialRelation": { + "displayName": "Sequence relation", + "mainProperty": ["follows", "precedes"], + "domain": "Activity", + "range": "Activity" + }, + "TypeRelation": { + "displayName": "Typing relation", + "mainProperty": ["hasType"], + "domain": "Record", + "range": "Type" + }, + "ActivityDocumentationRelation": { + "displayName": "Activity documentation", + "mainProperty": ["documents"], + "domain": "Record", + "range": "Activity" + } + } + }, + + "http://xmlns.com/foaf/0.1/": { + "name" : "foaf", + "file" : "ontologies/foaf.ttl", + "mainTypes": { + "name": "Main Types", + "value": [ + "http://xmlns.com/foaf/0.1/Person", + "http://xmlns.com/foaf/0.1/Organization", + "http://xmlns.com/foaf/0.1/Document" + ] + }, + "mainProperty": { + "Person": [ + "name", + "firstName", + "lastName", + "mbox", + "knows" + ], + "Organization": [ + "name", + "member" + ], + "Document": [ + "title", + "maker" + ] + }, + "removeProperty": [ + "depiction", + "thumbnail" + ], + "contextProperty": { + "MembershipRelation": { + "displayName": "Membership", + "mainProperty": ["member"], + "domain": "Organization", + "range": "Person" + }, + "SocialRelation": { + "displayName": "Knows (with context)", + "mainProperty": ["knows"], + "domain": "Person", + "range": "Person" + } + } + } + } +} \ No newline at end of file diff --git a/Backend/src/main/resources/ontologies/foaf.ttl b/Backend/src/main/resources/ontologies/foaf.ttl new file mode 100644 index 00000000..21769c6f --- /dev/null +++ b/Backend/src/main/resources/ontologies/foaf.ttl @@ -0,0 +1,715 @@ +@prefix dc: . +@prefix wot: . +@prefix rdfs: . +@prefix foaf: . +@prefix owl: . +@prefix rdf: . +@prefix vs: . + + a owl:Ontology ; + dc:title "Friend of a Friend (FOAF) vocabulary" ; + dc:description "The Friend of a Friend (FOAF) RDF vocabulary, described using W3C RDF Schema and the Web Ontology Language." . + +wot:assurance a owl:AnnotationProperty . + +wot:src_assurance a owl:AnnotationProperty . + +vs:term_status a owl:AnnotationProperty . + +dc:description a owl:AnnotationProperty . + +dc:title a owl:AnnotationProperty . + +dc:date a owl:AnnotationProperty . + +rdfs:Class a owl:Class . + +foaf:LabelProperty a rdfs:Class ; + vs:term_status "unstable" ; + rdfs:label "Label Property" ; + rdfs:comment "A foaf:LabelProperty is any RDF property with texual values that serve as labels." ; + a owl:Class ; + rdfs:isDefinedBy . + +foaf:Person a rdfs:Class ; + rdfs:label "Person" ; + rdfs:comment "A person." ; + vs:term_status "stable" ; + a owl:Class ; + owl:equivalentClass , ; + rdfs:subClassOf foaf:Agent . + +foaf:Agent a owl:Class . + +foaf:Person rdfs:subClassOf . + + a owl:Class ; + rdfs:label "Spatial Thing" . + +foaf:Person rdfs:isDefinedBy ; + owl:disjointWith foaf:Organization , foaf:Project . + +foaf:Document a rdfs:Class ; + rdfs:label "Document" ; + rdfs:comment "A document." ; + vs:term_status "stable" ; + a owl:Class ; + owl:equivalentClass ; + rdfs:isDefinedBy ; + owl:disjointWith foaf:Organization , foaf:Project . + +foaf:Organization a rdfs:Class ; + rdfs:label "Organization" ; + rdfs:comment "An organization." ; + vs:term_status "stable" ; + a owl:Class ; + rdfs:subClassOf foaf:Agent ; + rdfs:isDefinedBy ; + owl:disjointWith foaf:Person , foaf:Document . + +foaf:Group a rdfs:Class ; + vs:term_status "stable" ; + rdfs:label "Group" ; + rdfs:comment "A class of Agents." ; + a owl:Class ; + rdfs:subClassOf foaf:Agent . + +foaf:Agent a rdfs:Class ; + vs:term_status "stable" ; + rdfs:label "Agent" ; + rdfs:comment "An agent (eg. person, group, software or physical artifact)." ; + owl:equivalentClass . + +foaf:Project a rdfs:Class ; + vs:term_status "testing" ; + rdfs:label "Project" ; + rdfs:comment "A project (a collective endeavour of some kind)." ; + a owl:Class ; + rdfs:isDefinedBy ; + owl:disjointWith foaf:Person , foaf:Document . + +foaf:Image a rdfs:Class ; + vs:term_status "stable" ; + rdfs:label "Image" ; + rdfs:comment "An image." ; + a owl:Class ; + owl:equivalentClass ; + rdfs:subClassOf foaf:Document ; + rdfs:isDefinedBy . + +foaf:PersonalProfileDocument a rdfs:Class ; + rdfs:label "PersonalProfileDocument" ; + rdfs:comment "A personal profile RDF document." ; + vs:term_status "testing" ; + a owl:Class ; + rdfs:subClassOf foaf:Document . + +foaf:OnlineAccount a rdfs:Class ; + vs:term_status "testing" ; + rdfs:label "Online Account" ; + rdfs:comment "An online account." ; + a owl:Class ; + rdfs:isDefinedBy ; + rdfs:subClassOf owl:Thing . + +owl:Thing rdfs:label "Thing" . + +foaf:OnlineGamingAccount a rdfs:Class ; + vs:term_status "unstable" ; + rdfs:label "Online Gaming Account" ; + rdfs:comment "An online gaming account." ; + a owl:Class ; + rdfs:subClassOf foaf:OnlineAccount ; + rdfs:isDefinedBy . + +foaf:OnlineEcommerceAccount a rdfs:Class ; + vs:term_status "unstable" ; + rdfs:label "Online E-commerce Account" ; + rdfs:comment "An online e-commerce account." ; + a owl:Class ; + rdfs:subClassOf foaf:OnlineAccount ; + rdfs:isDefinedBy . + +foaf:OnlineChatAccount a rdfs:Class ; + vs:term_status "unstable" ; + rdfs:label "Online Chat Account" ; + rdfs:comment "An online chat account." ; + a owl:Class ; + rdfs:subClassOf foaf:OnlineAccount ; + rdfs:isDefinedBy . + +foaf:mbox a rdf:Property ; + vs:term_status "stable" ; + rdfs:label "personal mailbox" ; + rdfs:comment "A personal mailbox, ie. an Internet mailbox associated with exactly one owner, the first owner of this mailbox. This is a 'static inverse functional property', in that there is (across time and change) at most one individual that ever has any particular value for foaf:mbox." ; + a owl:InverseFunctionalProperty , owl:ObjectProperty ; + rdfs:domain foaf:Agent ; + rdfs:range owl:Thing ; + rdfs:isDefinedBy . + +foaf:mbox_sha1sum a rdf:Property ; + vs:term_status "testing" ; + rdfs:label "sha1sum of a personal mailbox URI name" ; + rdfs:comment "The sha1sum of the URI of an Internet mailbox associated with exactly one owner, the first owner of the mailbox." ; + a owl:InverseFunctionalProperty , owl:DatatypeProperty ; + rdfs:domain foaf:Agent ; + rdfs:range rdfs:Literal ; + rdfs:isDefinedBy . + +foaf:gender a rdf:Property ; + vs:term_status "testing" ; + rdfs:label "gender" ; + rdfs:comment "The gender of this Agent (typically but not necessarily 'male' or 'female')." ; + a owl:FunctionalProperty , owl:DatatypeProperty ; + rdfs:domain foaf:Agent ; + rdfs:range rdfs:Literal ; + rdfs:isDefinedBy . + +foaf:geekcode a rdf:Property ; + vs:term_status "archaic" ; + rdfs:label "geekcode" ; + rdfs:comment "A textual geekcode for this person, see http://www.geekcode.com/geek.html" ; + a owl:DatatypeProperty ; + rdfs:domain foaf:Person ; + rdfs:range rdfs:Literal ; + rdfs:isDefinedBy . + +foaf:dnaChecksum a rdf:Property ; + vs:term_status "archaic" ; + rdfs:label "DNA checksum" ; + rdfs:comment "A checksum for the DNA of some thing. Joke." ; + a owl:DatatypeProperty ; + rdfs:isDefinedBy ; + rdfs:range rdfs:Literal . + +foaf:sha1 a rdf:Property ; + vs:term_status "unstable" ; + rdfs:label "sha1sum (hex)" ; + rdfs:comment "A sha1sum hash, in hex." ; + a owl:DatatypeProperty ; + rdfs:domain foaf:Document ; + rdfs:isDefinedBy . + +foaf:based_near a rdf:Property ; + vs:term_status "testing" ; + rdfs:label "based near" ; + rdfs:comment "A location that something is based near, for some broadly human notion of near." ; + a owl:ObjectProperty ; + rdfs:domain ; + rdfs:range ; + rdfs:isDefinedBy . + +foaf:title a rdf:Property ; + vs:term_status "testing" ; + rdfs:label "title" ; + rdfs:comment "Title (Mr, Mrs, Ms, Dr. etc)" ; + a owl:DatatypeProperty ; + rdfs:isDefinedBy . + +foaf:nick a rdf:Property ; + vs:term_status "testing" ; + rdfs:label "nickname" ; + rdfs:comment "A short informal nickname characterising an agent (includes login identifiers, IRC and other chat nicknames)." ; + a owl:DatatypeProperty ; + rdfs:isDefinedBy . + +foaf:jabberID a rdf:Property ; + vs:term_status "testing" ; + rdfs:label "jabber ID" ; + rdfs:comment "A jabber ID for something." ; + rdfs:isDefinedBy ; + rdfs:domain foaf:Agent ; + rdfs:range rdfs:Literal ; + a owl:DatatypeProperty , owl:InverseFunctionalProperty . + +foaf:aimChatID a rdf:Property ; + vs:term_status "testing" ; + rdfs:label "AIM chat ID" ; + rdfs:comment "An AIM chat ID" ; + a owl:DatatypeProperty ; + rdfs:isDefinedBy ; + rdfs:subPropertyOf foaf:nick ; + rdfs:domain foaf:Agent ; + rdfs:range rdfs:Literal ; + a owl:InverseFunctionalProperty . + +foaf:skypeID a rdf:Property ; + vs:term_status "testing" ; + rdfs:label "Skype ID" ; + rdfs:comment "A Skype ID" ; + a owl:DatatypeProperty ; + rdfs:isDefinedBy ; + rdfs:subPropertyOf foaf:nick ; + rdfs:domain foaf:Agent ; + rdfs:range rdfs:Literal . + +foaf:icqChatID a rdf:Property ; + vs:term_status "testing" ; + rdfs:label "ICQ chat ID" ; + rdfs:comment "An ICQ chat ID" ; + a owl:DatatypeProperty ; + rdfs:isDefinedBy ; + rdfs:subPropertyOf foaf:nick ; + rdfs:domain foaf:Agent ; + rdfs:range rdfs:Literal ; + a owl:InverseFunctionalProperty . + +foaf:yahooChatID a rdf:Property ; + vs:term_status "testing" ; + rdfs:label "Yahoo chat ID" ; + rdfs:comment "A Yahoo chat ID" ; + a owl:DatatypeProperty ; + rdfs:isDefinedBy ; + rdfs:subPropertyOf foaf:nick ; + rdfs:domain foaf:Agent ; + rdfs:range rdfs:Literal ; + a owl:InverseFunctionalProperty . + +foaf:msnChatID a rdf:Property ; + vs:term_status "testing" ; + rdfs:label "MSN chat ID" ; + rdfs:comment "An MSN chat ID" ; + a owl:DatatypeProperty ; + rdfs:isDefinedBy ; + rdfs:subPropertyOf foaf:nick ; + rdfs:domain foaf:Agent ; + rdfs:range rdfs:Literal ; + a owl:InverseFunctionalProperty . + +foaf:name a rdf:Property ; + vs:term_status "testing" ; + rdfs:label "name" ; + rdfs:comment "A name for some thing." ; + a owl:DatatypeProperty ; + rdfs:domain owl:Thing ; + rdfs:range rdfs:Literal ; + rdfs:isDefinedBy ; + rdfs:subPropertyOf rdfs:label . + +foaf:firstName a rdf:Property ; + vs:term_status "testing" ; + rdfs:label "firstName" ; + rdfs:comment "The first name of a person." ; + a owl:DatatypeProperty ; + rdfs:domain foaf:Person ; + rdfs:range rdfs:Literal ; + rdfs:isDefinedBy . + +foaf:lastName a rdf:Property ; + vs:term_status "testing" ; + rdfs:label "lastName" ; + rdfs:comment "The last name of a person." ; + a owl:DatatypeProperty ; + rdfs:domain foaf:Person ; + rdfs:range rdfs:Literal ; + rdfs:isDefinedBy . + +foaf:givenName a rdf:Property ; + vs:term_status "testing" ; + rdfs:label "Given name" ; + rdfs:comment "The given name of some person." ; + a owl:DatatypeProperty ; + rdfs:isDefinedBy . + +foaf:givenname a rdf:Property ; + vs:term_status "archaic" ; + rdfs:label "Given name" ; + rdfs:comment "The given name of some person." ; + a owl:DatatypeProperty ; + rdfs:isDefinedBy . + +foaf:surname a rdf:Property ; + vs:term_status "archaic" ; + rdfs:label "Surname" ; + rdfs:comment "The surname of some person." ; + a owl:DatatypeProperty ; + rdfs:domain foaf:Person ; + rdfs:range rdfs:Literal ; + rdfs:isDefinedBy . + +foaf:family_name a rdf:Property ; + vs:term_status "archaic" ; + rdfs:label "family_name" ; + rdfs:comment "The family name of some person." ; + a owl:DatatypeProperty ; + rdfs:domain foaf:Person ; + rdfs:range rdfs:Literal ; + rdfs:isDefinedBy . + +foaf:familyName a rdf:Property ; + vs:term_status "testing" ; + rdfs:label "familyName" ; + rdfs:comment "The family name of some person." ; + a owl:DatatypeProperty ; + rdfs:domain foaf:Person ; + rdfs:range rdfs:Literal ; + rdfs:isDefinedBy . + +foaf:phone a rdf:Property ; + vs:term_status "testing" ; + rdfs:label "phone" ; + rdfs:comment "A phone, specified using fully qualified tel: URI scheme (refs: http://www.w3.org/Addressing/schemes.html#tel)." ; + a owl:ObjectProperty ; + rdfs:isDefinedBy . + +foaf:homepage a rdf:Property ; + vs:term_status "stable" ; + rdfs:label "homepage" ; + rdfs:comment "A homepage for some thing." ; + a owl:ObjectProperty ; + rdfs:subPropertyOf foaf:page , foaf:isPrimaryTopicOf ; + a owl:InverseFunctionalProperty ; + rdfs:domain owl:Thing ; + rdfs:range foaf:Document ; + rdfs:isDefinedBy . + +foaf:weblog a rdf:Property ; + vs:term_status "stable" ; + rdfs:label "weblog" ; + rdfs:comment "A weblog of some thing (whether person, group, company etc.)." ; + a owl:ObjectProperty ; + rdfs:subPropertyOf foaf:page ; + a owl:InverseFunctionalProperty ; + rdfs:domain foaf:Agent ; + rdfs:range foaf:Document ; + rdfs:isDefinedBy . + +foaf:openid a rdf:Property ; + vs:term_status "testing" ; + rdfs:label "openid" ; + rdfs:comment "An OpenID for an Agent." ; + a owl:ObjectProperty ; + rdfs:subPropertyOf foaf:isPrimaryTopicOf ; + a owl:InverseFunctionalProperty ; + rdfs:domain foaf:Agent ; + rdfs:range foaf:Document ; + rdfs:isDefinedBy . + +foaf:tipjar a rdf:Property ; + vs:term_status "testing" ; + rdfs:label "tipjar" ; + rdfs:comment "A tipjar document for this agent, describing means for payment and reward." ; + a owl:ObjectProperty ; + rdfs:subPropertyOf foaf:page ; + rdfs:domain foaf:Agent ; + rdfs:range foaf:Document ; + rdfs:isDefinedBy . + +foaf:plan a rdf:Property ; + vs:term_status "testing" ; + rdfs:label "plan" ; + rdfs:comment "A .plan comment, in the tradition of finger and '.plan' files." ; + a owl:DatatypeProperty ; + rdfs:isDefinedBy ; + rdfs:domain foaf:Person ; + rdfs:range rdfs:Literal . + +foaf:made a rdf:Property ; + vs:term_status "stable" ; + rdfs:label "made" ; + rdfs:comment "Something that was made by this agent." ; + a owl:ObjectProperty ; + rdfs:domain foaf:Agent ; + rdfs:range owl:Thing ; + rdfs:isDefinedBy ; + owl:inverseOf foaf:maker . + +foaf:maker a rdf:Property ; + vs:term_status "stable" ; + rdfs:label "maker" ; + rdfs:comment "An agent that made this thing." ; + owl:equivalentProperty ; + a owl:ObjectProperty ; + rdfs:domain owl:Thing ; + rdfs:range foaf:Agent ; + rdfs:isDefinedBy ; + owl:inverseOf foaf:made . + +foaf:img a rdf:Property ; + vs:term_status "testing" ; + rdfs:label "image" ; + rdfs:comment "An image that can be used to represent some thing (ie. those depictions which are particularly representative of something, eg. one's photo on a homepage)." ; + a owl:ObjectProperty ; + rdfs:domain foaf:Person ; + rdfs:range foaf:Image ; + rdfs:subPropertyOf foaf:depiction ; + rdfs:isDefinedBy . + +foaf:depiction a rdf:Property ; + vs:term_status "testing" ; + rdfs:label "depiction" ; + rdfs:comment "A depiction of some thing." ; + a owl:ObjectProperty ; + rdfs:domain owl:Thing ; + rdfs:range foaf:Image ; + rdfs:isDefinedBy ; + owl:inverseOf foaf:depicts . + +foaf:depicts a rdf:Property ; + vs:term_status "testing" ; + rdfs:label "depicts" ; + rdfs:comment "A thing depicted in this representation." ; + a owl:ObjectProperty ; + rdfs:range owl:Thing ; + rdfs:domain foaf:Image ; + rdfs:isDefinedBy ; + owl:inverseOf foaf:depiction . + +foaf:thumbnail a rdf:Property ; + vs:term_status "testing" ; + rdfs:label "thumbnail" ; + rdfs:comment "A derived thumbnail image." ; + a owl:ObjectProperty ; + rdfs:domain foaf:Image ; + rdfs:range foaf:Image ; + rdfs:isDefinedBy . + +foaf:myersBriggs a rdf:Property ; + vs:term_status "testing" ; + rdfs:label "myersBriggs" ; + rdfs:comment "A Myers Briggs (MBTI) personality classification." ; + a owl:DatatypeProperty ; + rdfs:domain foaf:Person ; + rdfs:range rdfs:Literal ; + rdfs:isDefinedBy . + +foaf:workplaceHomepage a rdf:Property ; + vs:term_status "testing" ; + rdfs:label "workplace homepage" ; + rdfs:comment "A workplace homepage of some person; the homepage of an organization they work for." ; + a owl:ObjectProperty ; + rdfs:domain foaf:Person ; + rdfs:range foaf:Document ; + rdfs:isDefinedBy . + +foaf:workInfoHomepage a rdf:Property ; + vs:term_status "testing" ; + rdfs:label "work info homepage" ; + rdfs:comment "A work info homepage of some person; a page about their work for some organization." ; + a owl:ObjectProperty ; + rdfs:domain foaf:Person ; + rdfs:range foaf:Document ; + rdfs:isDefinedBy . + +foaf:schoolHomepage a rdf:Property ; + vs:term_status "testing" ; + rdfs:label "schoolHomepage" ; + rdfs:comment "A homepage of a school attended by the person." ; + a owl:ObjectProperty ; + rdfs:domain foaf:Person ; + rdfs:range foaf:Document ; + rdfs:isDefinedBy . + +foaf:knows a rdf:Property ; + vs:term_status "stable" ; + rdfs:label "knows" ; + rdfs:comment "A person known by this person (indicating some level of reciprocated interaction between the parties)." ; + a owl:ObjectProperty ; + rdfs:domain foaf:Person ; + rdfs:range foaf:Person ; + rdfs:isDefinedBy . + +foaf:interest a rdf:Property ; + vs:term_status "testing" ; + rdfs:label "interest" ; + rdfs:comment "A page about a topic of interest to this person." ; + a owl:ObjectProperty ; + rdfs:domain foaf:Agent ; + rdfs:range foaf:Document ; + rdfs:isDefinedBy . + +foaf:topic_interest a rdf:Property ; + vs:term_status "testing" ; + rdfs:label "topic_interest" ; + rdfs:comment "A thing of interest to this person." ; + a owl:ObjectProperty ; + rdfs:domain foaf:Agent ; + rdfs:range owl:Thing ; + rdfs:isDefinedBy . + +foaf:publications a rdf:Property ; + vs:term_status "testing" ; + rdfs:label "publications" ; + rdfs:comment "A link to the publications of this person." ; + a owl:ObjectProperty ; + rdfs:domain foaf:Person ; + rdfs:range foaf:Document ; + rdfs:isDefinedBy . + +foaf:currentProject a rdf:Property ; + vs:term_status "testing" ; + rdfs:label "current project" ; + rdfs:comment "A current project this person works on." ; + a owl:ObjectProperty ; + rdfs:domain foaf:Person ; + rdfs:range owl:Thing ; + rdfs:isDefinedBy . + +foaf:pastProject a rdf:Property ; + vs:term_status "testing" ; + rdfs:label "past project" ; + rdfs:comment "A project this person has previously worked on." ; + a owl:ObjectProperty ; + rdfs:domain foaf:Person ; + rdfs:range owl:Thing ; + rdfs:isDefinedBy . + +foaf:fundedBy a rdf:Property ; + vs:term_status "archaic" ; + rdfs:label "funded by" ; + rdfs:comment "An organization funding a project or person." ; + a owl:ObjectProperty ; + rdfs:domain owl:Thing ; + rdfs:range owl:Thing ; + rdfs:isDefinedBy . + +foaf:logo a rdf:Property ; + vs:term_status "testing" ; + rdfs:label "logo" ; + rdfs:comment "A logo representing some thing." ; + a owl:ObjectProperty ; + rdfs:domain owl:Thing ; + rdfs:range owl:Thing ; + a owl:InverseFunctionalProperty ; + rdfs:isDefinedBy . + +foaf:topic a rdf:Property ; + vs:term_status "testing" ; + rdfs:label "topic" ; + rdfs:comment "A topic of some page or document." ; + a owl:ObjectProperty ; + rdfs:domain foaf:Document ; + rdfs:range owl:Thing ; + owl:inverseOf foaf:page ; + rdfs:isDefinedBy . + +foaf:primaryTopic a rdf:Property ; + vs:term_status "stable" ; + rdfs:label "primary topic" ; + rdfs:comment "The primary topic of some page or document." ; + a owl:FunctionalProperty , owl:ObjectProperty ; + rdfs:domain foaf:Document ; + rdfs:range owl:Thing ; + owl:inverseOf foaf:isPrimaryTopicOf ; + rdfs:isDefinedBy . + +foaf:focus a rdf:Property ; + vs:term_status "testing" ; + rdfs:label "focus" ; + rdfs:comment "The underlying or 'focal' entity associated with some SKOS-described concept." ; + a owl:ObjectProperty ; + rdfs:domain . + + rdfs:label "Concept" . + +foaf:focus rdfs:range owl:Thing ; + rdfs:isDefinedBy . + +foaf:isPrimaryTopicOf a rdf:Property ; + vs:term_status "stable" ; + rdfs:label "is primary topic of" ; + rdfs:comment "A document that this thing is the primary topic of." ; + a owl:InverseFunctionalProperty ; + rdfs:subPropertyOf foaf:page ; + owl:inverseOf foaf:primaryTopic ; + rdfs:domain owl:Thing ; + rdfs:range foaf:Document ; + rdfs:isDefinedBy . + +foaf:page a rdf:Property ; + vs:term_status "stable" ; + rdfs:label "page" ; + rdfs:comment "A page or document about this thing." ; + a owl:ObjectProperty ; + rdfs:domain owl:Thing ; + rdfs:range foaf:Document ; + rdfs:isDefinedBy ; + owl:inverseOf foaf:topic . + +foaf:theme a rdf:Property ; + vs:term_status "archaic" ; + rdfs:label "theme" ; + rdfs:comment "A theme." ; + a owl:ObjectProperty ; + rdfs:domain owl:Thing ; + rdfs:range owl:Thing ; + rdfs:isDefinedBy . + +foaf:account a rdf:Property ; + vs:term_status "testing" ; + rdfs:label "account" ; + rdfs:comment "Indicates an account held by this agent." ; + a owl:ObjectProperty ; + rdfs:domain foaf:Agent ; + rdfs:range foaf:OnlineAccount ; + rdfs:isDefinedBy . + +foaf:holdsAccount a rdf:Property ; + vs:term_status "archaic" ; + rdfs:label "account" ; + rdfs:comment "Indicates an account held by this agent." ; + a owl:ObjectProperty ; + rdfs:domain foaf:Agent ; + rdfs:range foaf:OnlineAccount ; + rdfs:isDefinedBy . + +foaf:accountServiceHomepage a rdf:Property ; + vs:term_status "testing" ; + rdfs:label "account service homepage" ; + rdfs:comment "Indicates a homepage of the service provide for this online account." ; + a owl:ObjectProperty ; + rdfs:domain foaf:OnlineAccount ; + rdfs:range foaf:Document ; + rdfs:isDefinedBy . + +foaf:accountName a rdf:Property ; + vs:term_status "testing" ; + rdfs:label "account name" ; + rdfs:comment "Indicates the name (identifier) associated with this online account." ; + a owl:DatatypeProperty ; + rdfs:domain foaf:OnlineAccount ; + rdfs:range rdfs:Literal ; + rdfs:isDefinedBy . + +foaf:member a rdf:Property ; + vs:term_status "stable" ; + rdfs:label "member" ; + rdfs:comment "Indicates a member of a Group" ; + a owl:ObjectProperty ; + rdfs:domain foaf:Group ; + rdfs:range foaf:Agent ; + rdfs:isDefinedBy . + +foaf:membershipClass a rdf:Property ; + vs:term_status "unstable" ; + rdfs:label "membershipClass" ; + rdfs:comment "Indicates the class of individuals that are a member of a Group" ; + a owl:AnnotationProperty ; + rdfs:isDefinedBy . + +foaf:birthday a rdf:Property ; + vs:term_status "unstable" ; + rdfs:label "birthday" ; + rdfs:comment "The birthday of this Agent, represented in mm-dd string form, eg. '12-31'." ; + a owl:FunctionalProperty , owl:DatatypeProperty ; + rdfs:domain foaf:Agent ; + rdfs:range rdfs:Literal ; + rdfs:isDefinedBy . + +foaf:age a rdf:Property ; + vs:term_status "unstable" ; + rdfs:label "age" ; + rdfs:comment "The age in years of some agent." ; + a owl:FunctionalProperty , owl:DatatypeProperty ; + rdfs:domain foaf:Agent ; + rdfs:range rdfs:Literal ; + rdfs:isDefinedBy . + +foaf:status a rdf:Property ; + vs:term_status "unstable" ; + rdfs:label "status" ; + rdfs:comment "A string expressing what the user is happy for the general public (normally) to know about their current activity." ; + a owl:DatatypeProperty ; + rdfs:domain foaf:Agent ; + rdfs:range rdfs:Literal ; + rdfs:isDefinedBy . diff --git a/RDF_Back/src/main/resources/ontologies/rico.rdf b/Backend/src/main/resources/ontologies/rico.rdf similarity index 100% rename from RDF_Back/src/main/resources/ontologies/rico.rdf rename to Backend/src/main/resources/ontologies/rico.rdf diff --git a/RDF_Back/src/test/java/com/uspn/rdf_back/RdfBackApplicationTests.java b/Backend/src/test/java/fr/cnrs/lacito/fieldarchive/RdfBackApplicationTests.java similarity index 83% rename from RDF_Back/src/test/java/com/uspn/rdf_back/RdfBackApplicationTests.java rename to Backend/src/test/java/fr/cnrs/lacito/fieldarchive/RdfBackApplicationTests.java index c5393b19..b83affd2 100644 --- a/RDF_Back/src/test/java/com/uspn/rdf_back/RdfBackApplicationTests.java +++ b/Backend/src/test/java/fr/cnrs/lacito/fieldarchive/RdfBackApplicationTests.java @@ -1,4 +1,4 @@ -package com.uspn.rdf_back; +package fr.cnrs.lacito.fieldarchive; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; diff --git a/data/rdf-store/values.hash b/Doc/.DS_Store similarity index 70% rename from data/rdf-store/values.hash rename to Doc/.DS_Store index 64c96186..d869d0ff 100644 Binary files a/data/rdf-store/values.hash and b/Doc/.DS_Store differ diff --git a/Doc/InverseProperty/.~lock.inverse.csv# b/Doc/InverseProperty/.~lock.inverse.csv# new file mode 100644 index 00000000..3f96e254 --- /dev/null +++ b/Doc/InverseProperty/.~lock.inverse.csv# @@ -0,0 +1 @@ +,sloiseau,macbook-air-de-sylvain-loiseau.home,15.07.2026 18:22,file:///Users/sloiseau/Library/Application%20Support/LibreOffice/4; \ No newline at end of file diff --git a/Doc/InverseProperty/InverseRelation.csv b/Doc/InverseProperty/InverseRelation.csv new file mode 100644 index 00000000..2f0d9b88 --- /dev/null +++ b/Doc/InverseProperty/InverseRelation.csv @@ -0,0 +1,494 @@ +"Relation +ID ",Domain ,"ID of +domain ",Name ,"ID of +range ",Range ,"Inverse relation ID +and name" +"RiC- +R009i ",Thing ,RiC-E01 ,follows in time ,RiC-E01 ,Thing ,"RiC-R009 precedes in +time" +"RiC- +R008i ",Thing ,RiC-E01 ,follows or followed ,RiC-E01 ,Thing ,"RiC-R008 precedes or +preceded" +RiC-R002 ,Thing ,RiC-E01 ,has or had part ,RiC-E01 ,Thing ,"RiC-R002i is or was +part of" +"RiC- +R002i ",Thing ,RiC-E01 ,is or was part of ,RiC-E01 ,Thing ,"RiC-R002 has or had +part" +RiC-R001 ,Thing ,RiC-E01 ,is related to ,RiC-E01 ,Thing ,RiC-R001 is related to +RiC-R009 ,Thing ,RiC-E01 ,precedes in time ,RiC-E01 ,Thing ,"RiC-R009i follows in +time" +RiC-R008 ,Thing ,RiC-E01 ,"precedes or +preceded ",RiC-E01 ,Thing ,"RiC-R008i follows or +followed" +"RiC- +R021i ",Thing ,RiC-E01 ,"is or was described +by ",RiC-E02 ,"Record +Resource","RiC-R021 describes or +described" +"RiC- +R020i ",Thing ,RiC-E01 ,"is or was main +subject of ",RiC-E02 ,"Record +Resource","RiC-R020 has or had +main subject" +"RiC- +R019i ",Thing ,RiC-E01 ,is or was subject of ,RiC-E02 ,"Record +Resource","RiC-R019 has or had +subject" +"RiC- +R036i ",Thing ,RiC-E01 ,"is or was under +authority of ",RiC-E07 ,Agent ,"RiC-R036 has or had +authority over" +"RiC- +R037i ",Thing ,RiC-E01 ,has or had owner,"RiC-E08; +RiC-E09; +RiC-E12","Person; +Group; +Position","RiC-R037 is or was +owner of" +"RiC- +R057i ",Thing ,RiC-E01 ,"is associated with +event",RiC-E14 ,Event ,"RiC-R057 is event +associated with" +"RiC- +R059i ",Thing ,RiC-E01 ,"is or was affected +by ",RiC-E14 ,Event ,"RiC-R059 affects or +affected" +"RiC- +R058i ",Thing ,RiC-E01 ,"is or was +participant in ",RiC-E14 ,Event ,"RiC-R058 has or had +participant" +"RiC- +R061i ",Thing ,RiC-E01 ,"results or resulted +from ",RiC-E14 ,Event ,"RiC-R061 results or +resulted in" +"RiC- +R062i ",Thing ,RiC-E01 ,"is associated with +rule ",RiC-E16 ,Rule ,"RiC-R062 is rule +associated with" +"RiC- +R063i ",Thing ,RiC-E01 ,"is or was regulated +by ",RiC-E16 ,Rule ,"RiC-R063 regulates or +regulated" +"RiC- +R069i ",Thing ,RiC-E01 ,has beginning date ,RiC-E18 ,Date ,"RiC-R069 is beginning +date of" +"RiC- +R071i ",Thing ,RiC-E01 ,has end date ,RiC-E18 ,Date ,"RiC-R071 is end date +of" +"RiC- +R073i ",Thing ,RiC-E01 ,"has modification +date ",RiC-E18 ,Date ,"RiC-R073 is +modification date of" +"RiC- +R068i ",Thing ,RiC-E01 ,"is associated with +date ",RiC-E18 ,Date ,"RiC-R068 is date +associated with" +"RiC- +R075i ",Thing ,RiC-E01 ,has or had location ,RiC-E22 ,Place ,"RiC-R075 is or was +location of" +"RiC- +R074i ",Thing ,RiC-E01 ,"is associated with +place ",RiC-E22 ,Place ,"RiC-R074 is place +associated with" +RiC-R021 ,"Record +Resource ",RiC-E02 ,"describes or +described ",RiC-E01 ,Thing ,"RiC-R021i is or was +described by" +RiC-R020 ,"Record +Resource ",RiC-E02 ,"has or had main +subject ",RiC-E01 ,Thing ,"RiC-R020i is or was +main subject of" +RiC-R019 ,"Record +Resource ",RiC-E02 ,has or had subject ,RiC-E01 ,Thing ,"RiC-R019i is or was +subject of" +RiC-R012 ,"Record +Resource ",RiC-E02 ,has copy ,RiC-E02 ,"Record +Resource ",RiC-R012i is copy of +RiC-R023 ,"Record +Resource ",RiC-E02 ,"has genetic link to +record resource ",RiC-E02 ,"Record +Resource","RiC-R023 has genetic +link to record +resource" +RiC-R013 ,"Record +Resource ",RiC-E02 ,has reply ,RiC-E02 ,"Record +Resource ",RiC-R013i is reply to +"RiC- +R012i","Record +Resource ",RiC-E02 ,is copy of ,RiC-E02 ,"Record +Resource ",RiC-R012 has copy +RiC-R022 ,"Record +Resource ",RiC-E02,"is record resource +associated with +record resource",RiC-E02 ,"Record +Resource","RiC-R022 is record +resource associated +with record resource" +"RiC- +R013i","Record +Resource ",RiC-E02 ,is reply to ,RiC-E02 ,"Record +Resource ",RiC-R013 has reply +RiC-R025 ,"Record +Resource ",RiC-E02 ,"has or had +instantiation ",RiC-E06 ,Instantiation ,"RiC-R025i is or was +instantiation of" +"RiC- +R064i","Record +Resource ",RiC-E02 ,"expresses or +expressed ",RiC-E16 ,Rule ,"RiC-R064 is or was +expressed by" +RiC-R028,"Record +Resource; +Instantiation","RiC-E02; +RiC-E06 ",has accumulator ,RiC-E07 ,Agent ,"RiC-R028i is +accumulator of" +RiC-R032,"Record +Resource; +Instantiation","RiC-E02; +RiC-E06 ",has addressee ,RiC-E07 ,Agent ,"RiC-R032i is +addressee of" +RiC-R030,"Record +Resource; +Instantiation","RiC-E02; +RiC-E06 ",has collector ,RiC-E07 ,Agent ,"RiC-R030i is collector +of" +RiC-R027,"Record +Resource; +Instantiation","RiC-E02; +RiC-E06 ",has creator ,RiC-E07 ,Agent ,"RiC-R027i is creator +of" +"RiC- +R039i","Record +Resource; +Instantiation","RiC-E02; +RiC-E06 ",has or had holder ,RiC-E07 ,Agent ,"RiC-R039 is or was +holder of" +"RiC- +R038i","Record +Resource; +Instantiation","RiC-E02; +RiC-E06","has or had +manager",RiC-E07 ,Agent ,"RiC-R038 is or was +manager of" +RiC-R026,"Record +Resource; +Instantiation","RiC-E02; +RiC-E06 ",has provenance ,RiC-E07 ,Agent ,"RiC-R026i is +provenance of" +RiC-R029,"Record +Resource; +Instantiation","RiC-E02; +RiC-E06 ",has receiver ,RiC-E07 ,Agent ,"RiC-R029i is receiver +of" +RiC-R031,"Record +Resource; +Instantiation","RiC-E02; +RiC-E06 ",has sender ,RiC-E07 ,Agent ,RiC-R031i is sender of +"RiC- +R040i","Record +Resource; +Instantiation","RiC-E02; +RiC-E06","has or had +intellectual +property rights +holder","RiC-E08; +RiC-E09; +RiC-E12",Agent,"RiC-R040 is or was +holder of intellectual +property rights of" +RiC-R033,"Record +Resource; +Instantiation","RiC-E02; +RiC-E06 ",documents ,RiC-E15 ,Activity ,"RiC-R033i +documented by" +RiC-R024 ,Record Set ,RiC-E03 ,"includes or +included","RiC-E03; +RiC-E04","Record Set; +Record","RiC-R024i is or was +included in" +"RiC- +R024i","Record Set; +Record","RiC-E03; +RiC-E04","is or was included +in ",RiC-E03 ,Record Set ,"RiC-R024 includes or +included" +"RiC- +R011i ",Record ,RiC-E04 ,has draft ,RiC-E04 ,Record ,RiC-R011 is draft of +"RiC- +R010i ",Record ,RiC-E04 ,has original ,RiC-E04 ,Record ,RiC-R010 is original of +RiC-R011 ,Record ,RiC-E04 ,is draft of ,RiC-E04 ,Record ,RiC-R011i has draft +RiC-R010 ,Record ,RiC-E04 ,is original of ,RiC-E04 ,Record ,RiC-R010i has original +RiC-R003 ,Record ,RiC-E04 ,"has or had +constituent ",RiC-E05 ,Record Part ,"RiC-R003i is or was +constituent of" +RiC-R079 ,Record ,RiC-E04 ,has author,"RiC-E08; +RiC-E09; +RiC-E012","Person; +Group; +Position",RiC-R079i is author of +"RiC- +R003i ",Record Part ,RiC-E05 ,"is or was +constituent of ",RiC-E04 ,Record ,"RiC-R003 has or had +constituent" +"RiC- +R025i ",Instantiation ,RiC-E06 ,"Is or was +instantiation of ",RiC-E02 ,"Record +Resource","RiC-R025 has or had +instantiation" +RiC-R014 ,Instantiation ,RiC-E06 ,"has or had derived +instantiation ",RiC-E06 ,Instantiation,"RiC-R014i is or was +derived from +instantiation" +RiC-R004 ,Instantiation ,RiC-E06 ,"has or had +component",RiC-E06 ,Instantiation ,"RiC-R004i is or was +component of" +"RiC- +R014i ",Instantiation ,RiC-E06 ,"is or was derived +from instantiation ",RiC-E06 ,Instantiation ,"RiC-R014 has or had +derived instantiation" +RiC-R035 ,Instantiation ,RiC-E06 ,"is functionally +equivalent to ",RiC-E06 ,Instantiation,"RiC-R035 is +functionally +equivalent to" +RiC-R034 ,Instantiation ,RiC-E06,"is instantiation +associated with +instantiation",RiC-E06 ,Instantiation,"RiC-R034 is +instantiation +associated with +instantiation" +"RiC- +R004i ",Instantiation ,RiC-E06 ,"is or was +component of ",RiC-E06 ,Instantiation ,"RiC-R004 has or had +component" +"RiC- +R015i ",Instantiation ,RiC-E06 ,migrated from ,RiC-E06 ,Instantiation ,"RiC-R015 migrated +into" +RiC-R015 ,Instantiation ,RiC-E06 ,migrated into ,RiC-E06 ,Instantiation ,"RiC-R015i migrated +from" +RiC-R036 ,Agent ,RiC-E07 ,"has or had +authority over ",RiC-E01 ,Thing ,"RiC-R036i is or was +under authority of" +"RiC- +R028i ",Agent ,RiC-E07 ,is accumulator of ,"RiC-E02; +RiC-E06","Record +Resource; +Instantiation","RiC-R028 has +accumulator" +"RiC- +R032i ",Agent ,RiC-E07 ,is addressee of ,"RiC-E02; +RiC-E06","Record +Resource; +Instantiation","RiC-R032 has +addressee" +"RiC- +R030i ",Agent ,RiC-E07 ,is collector of ,"RiC-E02; +RiC-E06","Record +Resource; +Instantiation","RiC-R030 has +collector" +"RiC- +R027i ",Agent ,RiC-E07 ,is creator of ,"RiC-E02; +RiC-E06","Record +Resource; +Instantiation",RiC-R027 has creator +RiC-R039 ,Agent ,RiC-E07 ,is or was holder of ,"RiC-E02; +RiC-E06","Record +Resource; +Instantiation","RiC-R039i has or had +holder" +RiC-R038 ,Agent ,RiC-E07 ,"is or was manager +of","RiC-E02; +RiC-E06","Record +Resource; +Instantiation","RiC-R038i has or had +manager" +"RiC- +R026i ",Agent ,RiC-E07 ,is provenance of ,"RiC-E02; +RiC-E06","Record +Resource; +Instantiation","RiC-R026 has +provenance" +"RiC- +R029i ",Agent ,RiC-E07 ,is receiver of ,"RiC-E02; +RiC-E06","Record +Resource; +Instantiation",RiC-R029 has receiver +"RiC- +R031i ",Agent ,RiC-E07 ,is sender of ,"RiC-E02; +RiC-E06","Record +Resource; +Instantiation",RiC-R031 has sender +"RiC- +R041i ",Agent ,RiC-E07 ,"has or had +controller ",RiC-E07 ,Agent ,"RiC-R041 is or was +controller of" +RiC-R045 ,Agent ,RiC-E07 ,"has or had +subordinate ",RiC-E07 ,Agent ,"RiC-R045i is or was +subordinate to" +RiC-R046 ,Agent ,RiC-E07 ,"has or had work +relation with ",RiC-E07 ,Agent ,"RiC-R046 has or had +work relation with" +RiC-R016 ,Agent ,RiC-E07 ,has successor ,RiC-E07 ,Agent ,"RiC-R016i is +successor of" +RiC-R044 ,Agent ,RiC-E07 ,"is agent associated +with agent ",RiC-E07 ,Agent ,"RiC-R044 is agent +associated with agent" +RiC-R041 ,Agent ,RiC-E07 ,"is or was controller +of ",RiC-E07 ,Agent ,"RiC-R041i has or had +controller" +"RiC- +R045i ",Agent ,RiC-E07 ,"is or was +subordinate to ",RiC-E07 ,Agent ,"RiC-R045 has or had +subordinate" +"RiC- +R016i ",Agent ,RiC-E07 ,is successor of ,RiC-E07 ,Agent ,"RiC-R016 has +successor" +"RiC- +R060i ",Agent ,RiC-E07 ,"performs or +performed ",RiC-E15 ,Activity ,"RiC-R060 is or was +performed by" +"RiC- +R066i ",Agent ,RiC-E07,"is or was +responsible for +enforcing",RiC-E16 ,Rule ,"RiC-R066 is or was +enforced by" +"RiC- +R065i ",Agent ,RiC-E07 ,"is responsible for +issuing ",RiC-E16 ,Rule ,RiC-R065 issued by +"RiC- +R067i ",Agent ,RiC-E07 ,authorized by ,RiC-E17 ,Mandate ,RiC-R067 authorizes +"RiC- +R076i ",Agent ,RiC-E07 ,"has or had +jurisdiction ",RiC-E22 ,Place ,"RiC-R076 is or was +jurisdiction of" +"RiC- +R017i ",Person ,RiC-E08 ,has ancestor ,RiC-E08 ,Person ,"RiC-R017 has +descendant" +RiC-R018 ,Person ,RiC-E08 ,has child ,RiC-E08 ,Person ,RiC-R018i is child of +RiC-R017 ,Person ,RiC-E08 ,has descendant ,RiC-E08 ,Person ,"RiC-R017i has +ancestor" +RiC-R047 ,Person ,RiC-E08 ,"has family +association with ",RiC-E08 ,Person ,"RiC-R047 has family +association with" +RiC-R052 ,Person ,RiC-E08 ,"has or had +correspondent ",RiC-E08 ,Person ,"RiC-R052 has or had +correspondent" +RiC-R049 ,Person ,RiC-E08 ,has or had spouse ,RiC-E08 ,Person ,"RiC-R049 has or had +spouse" +"RiC- +R053i ",Person ,RiC-E08 ,has or had student ,RiC-E08 ,Person ,"RiC-R053 has or had +teacher" +RiC-R053 ,Person ,RiC-E08 ,has or had teacher ,RiC-E08 ,Person ,"RiC-R053i has or had +student" +RiC-R048 ,Person ,RiC-E08 ,has sibling ,RiC-E08 ,Person ,RiC-R048 has sibling +"RiC- +R018i ",Person ,RiC-E08 ,is child of ,RiC-E08 ,Person ,RiC-R018 has child +"RiC- +R050i ",Person ,RiC-E08 ,known by ,RiC-E08 ,Person ,RiC-R050 knows of +RiC-R051 ,Person ,RiC-E08 ,knows ,RiC-E08 ,Person ,RiC-R051 knows +RiC-R050 ,Person ,RiC-E08 ,knows of ,RiC-E08 ,Person ,RiC-R050i known by +RiC-R042 ,Person ,RiC-E08 ,is or was leader of ,RiC-E09 ,Group ,"RiC-R042i has or had +leader" +"RiC- +R055i ",Person ,RiC-E08 ,"is or was member +of ",RiC-E09 ,Group ,"RiC-R055 has or had +member" +RiC-R054 ,Person ,RiC-E08 ,"occupies or +occupied ",RiC-E12 ,Position ,"RiC-R054i is or was +occupied by" +"RiC- +R070i ",Person ,RiC-E08 ,has birth date ,RiC-E18 ,Date ,"RiC-R070 is birth date +of" +"RiC- +R072i ",Person ,RiC-E08 ,has death date ,RiC-E18 ,Date ,"RiC-R072 is death +date of" +"RiC- +R079i","Person; +Group; +Position","RiC-E08; +RiC-E09; +RiC-E012",is author of ,RiC-E04 ,Record ,RiC-R079 has author +RiC-R037,"Person; +Group; +Position","RiC-E08; +RiC-E09; +RiC-E12",is or was owner of ,RiC-E01 ,Thing ,"RiC-R037i has or had +owner" +RiC-R040 ,Agent,"RiC-E08; +RiC-E09; +RiC-E12","is or was holder of +intellectual +property rights of","RiC-E02; +RiC-E06","Record +Resource; +Instantiation","RiC-R040i has or had +intellectual property +rights holder" +"RiC- +R042i ",Group ,RiC-E09 ,has or had leader ,RiC-E08 ,Person ,"RiC-R042 is or was +leader of" +RiC-R055 ,Group ,RiC-E09 ,has or had member ,RiC-E08 ,Person ,"RiC-R055i is or was +member of" +RiC-R005 ,Group ,RiC-E09 ,"has or had +subdivision ",RiC-E09 ,Group ,"RiC-R005i is or was +subdivision of" +"RiC- +R005i ",Group ,RiC-E09 ,"is or was +subdivision of ",RiC-E09 ,Group ,"RiC-R005 has or had +subdivision" +"RiC- +R056i ",Group ,RiC-E09 ,has or had position ,RiC-E12 ,Position ,"RiC-R056 exists or +existed in" +"RiC- +R054i ",Position ,RiC-E12 ,"is or was occupied +by ",RiC-E08 ,Person ,"RiC-R054 occupies or +occupied" +RiC-R056 ,Position ,RiC-E12 ,exists or existed in ,RiC-E09 ,Group ,"RiC-R056i had or has +position" +RiC-R059 ,Event ,RiC-E14 ,affects or affected ,RiC-E01 ,Thing ,"RiC-R059i is or was +affected by" +RiC-R058 ,Event ,RiC-E14 ,"has or had +participant ",RiC-E01 ,Thing ,"RiC-R058i is or was +participant in" +RiC-R057 ,Event ,RiC-E14 ,"is event associated +with ",RiC-E01 ,Thing ,"RiC-R057i is +associated with event" +RiC-R061 ,Event ,RiC-E14 ,"results or resulted +in ",RiC-E01 ,Thing ,"RiC-R061i results or +resulted from" +RiC-R006 ,Event ,RiC-E14 ,"has or had +subevent ",RiC-E14 ,Event ,"RiC-R006i is or was +subevent of" +"RiC- +R006i ",Event ,RiC-E14 ,"is or was subevent +of ",RiC-E14 ,Event ,"RiC-R006 has or had +subevent" +"RiC- +R033i ",Activity ,RiC-E15 ,documented by ,"RiC-E02; +RiC-E06","Record +Resource; +Instantiation",RiC-R033 documents +RiC-R060 ,Activity ,RiC-E15 ,"is or was +performed by ",RiC-E07 ,Agent ,"RiC-R060i performs +or performed" +RiC-R062 ,Rule ,RiC-E16 ,"is rule associated +with ",RiC-E01 ,Thing ,"RiC-R062i is +associated with rule" +RiC-R063 ,Rule ,RiC-E16 ,"regulates or +regulated ",RiC-E01 ,Thing ,"RiC-R063i is or was +regulated by" +RiC-R064 ,Rule ,RiC-E16 ,"is or was expressed +by ",RiC-E02 ,"Record +Resource","RiC-R064i expresses +or expressed" +RiC-R066 ,Rule ,RiC-E16 ,"is or was enforced +by ",RiC-E07 ,Agent,"RiC-R066i is or was +responsible for +enforcing" +RiC-R065 ,Rule ,RiC-E16 ,issued by ,RiC-E07 ,Agent,"RiC-R065i is +responsible for +issuing" +RiC-R067 ,Mandate ,RiC-E17 ,authorizes ,RiC-E07 ,Agent ,"RiC-R067i authorized +by" +RiC-R069 ,Date ,RiC-E18 ,is beginning date of ,RiC-E01 ,Thing ,"RiC-R069i has +beginning date" diff --git a/Doc/InverseProperty/inverse.csv b/Doc/InverseProperty/inverse.csv new file mode 100644 index 00000000..9e030a43 --- /dev/null +++ b/Doc/InverseProperty/inverse.csv @@ -0,0 +1,404 @@ +Property;Conceptual model ref;isSecondary;Corresponding inverse relation +https://www.ica.org/standards/RiC/ontology#accumulationRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#activityDocumentationRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#activityIsContextOfRelation ;;; https://www.ica.org/standards/RiC/ontology#asConcernsActivity +https://www.ica.org/standards/RiC/ontology#affectsOrAffected ; RiC-R059 ('affects or affected' relation);; https://www.ica.org/standards/RiC/ontology#isOrWasAffectedBy +https://www.ica.org/standards/RiC/ontology#agentControlRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#agentHasOrHadLocation ;;; https://www.ica.org/standards/RiC/ontology#isOrWasLocationOfAgent +https://www.ica.org/standards/RiC/ontology#agentHierarchicalRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#agentTemporalRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#agentToAgentRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#appellationRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#asConcernsActivity ;;; https://www.ica.org/standards/RiC/ontology#activityIsContextOfRelation +https://www.ica.org/standards/RiC/ontology#authorityRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#authorizedBy ; RiC-R067i ('authorizedBy' relation);inverse; https://www.ica.org/standards/RiC/ontology#authorizes +https://www.ica.org/standards/RiC/ontology#authorizes ; RiC-R067 ('authorizes' relation);; https://www.ica.org/standards/RiC/ontology#authorizedBy +https://www.ica.org/standards/RiC/ontology#authorizingAgent ;;; https://www.ica.org/standards/RiC/ontology#isAuthorizingAgentInMandateRelation +https://www.ica.org/standards/RiC/ontology#authorshipRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#childRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#contained ;;; https://www.ica.org/standards/RiC/ontology#wasContainedBy +https://www.ica.org/standards/RiC/ontology#containsOrContained ; RiC-R007 ('contains or contained' relation);; https://www.ica.org/standards/RiC/ontology#isOrWasContainedBy +https://www.ica.org/standards/RiC/ontology#containsTransitive ;;; https://www.ica.org/standards/RiC/ontology#isContainedByTransitive +https://www.ica.org/standards/RiC/ontology#correspondenceRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#creationRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#creationWithRole ;;; https://www.ica.org/standards/RiC/ontology#roleIsContextOfCreationRelation +https://www.ica.org/standards/RiC/ontology#derivationRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#descendanceRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#describesOrDescribed ; RiC-R021 ('describes or described' relation);; https://www.ica.org/standards/RiC/ontology#isOrWasDescribedBy +https://www.ica.org/standards/RiC/ontology#directlyContains ;;; https://www.ica.org/standards/RiC/ontology#isDirectlyContainedBy +https://www.ica.org/standards/RiC/ontology#directlyFollowsInSequence ;;; https://www.ica.org/standards/RiC/ontology#directlyPrecedesInSequence +https://www.ica.org/standards/RiC/ontology#directlyIncludes ;;; https://www.ica.org/standards/RiC/ontology#isDirectlyIncludedIn +https://www.ica.org/standards/RiC/ontology#directlyPrecedesInSequence ;;; https://www.ica.org/standards/RiC/ontology#directlyFollowsInSequence +https://www.ica.org/standards/RiC/ontology#documentedBy ; RiC-R033i ('documented by' relation);inverse; https://www.ica.org/standards/RiC/ontology#documents +https://www.ica.org/standards/RiC/ontology#documents ; RiC-R033 ('documents' relation);; https://www.ica.org/standards/RiC/ontology#documentedBy +https://www.ica.org/standards/RiC/ontology#eventRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#evidences ; Inverse of 'is evidenced by' object property.;; https://www.ica.org/standards/RiC/ontology#isEvidencedBy +https://www.ica.org/standards/RiC/ontology#existsOrExistedIn ; RiC-R056 ('exists or existed in' relation);; https://www.ica.org/standards/RiC/ontology#hasOrHadPosition +https://www.ica.org/standards/RiC/ontology#expressesOrExpressed ; RiC-R064i ('expresses or expressed' relation);inverse; https://www.ica.org/standards/RiC/ontology#isOrWasExpressedBy +https://www.ica.org/standards/RiC/ontology#familyRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#followedInSequence ;;; https://www.ica.org/standards/RiC/ontology#precededInSequence +https://www.ica.org/standards/RiC/ontology#followsInSequenceTransitive ;;; https://www.ica.org/standards/RiC/ontology#precedesInSequenceTransitive +https://www.ica.org/standards/RiC/ontology#followsInTime ; RiC-R009i ('follows in time' relation);inverse; https://www.ica.org/standards/RiC/ontology#precedesInTime +https://www.ica.org/standards/RiC/ontology#followsOrFollowed ; RiC-R008i ('follows or followed' relation);inverse; https://www.ica.org/standards/RiC/ontology#precedesOrPreceded +https://www.ica.org/standards/RiC/ontology#functionalEquivalenceRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#groupSubdivisionRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#hadComponent ;;; https://www.ica.org/standards/RiC/ontology#wasComponentOf +https://www.ica.org/standards/RiC/ontology#hadConstituent ;;; https://www.ica.org/standards/RiC/ontology#wasConstituentOf +https://www.ica.org/standards/RiC/ontology#hadPart ;;; https://www.ica.org/standards/RiC/ontology#wasPartOf +https://www.ica.org/standards/RiC/ontology#hadSubdivision ;;; https://www.ica.org/standards/RiC/ontology#wasSubdivisionOf +https://www.ica.org/standards/RiC/ontology#hadSubevent ;;; https://www.ica.org/standards/RiC/ontology#wasSubeventOf +https://www.ica.org/standards/RiC/ontology#hadSubordinate ;;; https://www.ica.org/standards/RiC/ontology#wasSubordinateTo +https://www.ica.org/standards/RiC/ontology#hasAccumulator ; RiC-R028 ('has accumulator' relation);; https://www.ica.org/standards/RiC/ontology#isAccumulatorOf +https://www.ica.org/standards/RiC/ontology#hasActivityType ;;; https://www.ica.org/standards/RiC/ontology#isActivityTypeOf +https://www.ica.org/standards/RiC/ontology#hasAddressee ; RiC-R032 ('has addressee' relation);; https://www.ica.org/standards/RiC/ontology#isAddresseeOf +https://www.ica.org/standards/RiC/ontology#hasAncestor ; RiC-R017i (has ancestor relation);inverse; https://www.ica.org/standards/RiC/ontology#hasDescendant +https://www.ica.org/standards/RiC/ontology#hasAuthor ; RiC-R079 ('has author' relation);; https://www.ica.org/standards/RiC/ontology#isAuthorOf +https://www.ica.org/standards/RiC/ontology#hasBeginningDate ; RiC-R069i ('has beginning date' relation);inverse; https://www.ica.org/standards/RiC/ontology#isBeginningDateOf +https://www.ica.org/standards/RiC/ontology#hasBirthDate ; RiC-R070i ('has birth date' relation);inverse; https://www.ica.org/standards/RiC/ontology#isBirthDateOf +https://www.ica.org/standards/RiC/ontology#hasBirthPlace ;;; https://www.ica.org/standards/RiC/ontology#isBirthPlaceOf +https://www.ica.org/standards/RiC/ontology#hasCarrierType ;;; https://www.ica.org/standards/RiC/ontology#isCarrierTypeOf +https://www.ica.org/standards/RiC/ontology#hasChild ; RiC-R018 ('has child' relation);; https://www.ica.org/standards/RiC/ontology#isChildOf +https://www.ica.org/standards/RiC/ontology#hasCollector ; RiC-R030 ('has collector' relation);; https://www.ica.org/standards/RiC/ontology#isCollectorOf +https://www.ica.org/standards/RiC/ontology#hasComponentTransitive ;;; https://www.ica.org/standards/RiC/ontology#isComponentOfTransitive +https://www.ica.org/standards/RiC/ontology#hasConstituentTransitive ;;; https://www.ica.org/standards/RiC/ontology#isConstituentOfTransitive +https://www.ica.org/standards/RiC/ontology#hasContentOfType ;;; https://www.ica.org/standards/RiC/ontology#isContentTypeOf +https://www.ica.org/standards/RiC/ontology#hasCopy ; RiC-R012 ('has copy' relation);; https://www.ica.org/standards/RiC/ontology#isCopyOf +https://www.ica.org/standards/RiC/ontology#hasCreationDate ; RiC-R080i ('has creation date' relation);inverse; https://www.ica.org/standards/RiC/ontology#isCreationDateOf +https://www.ica.org/standards/RiC/ontology#hasCreator ; RiC-R027 ('has creator' relation);; https://www.ica.org/standards/RiC/ontology#isCreatorOf +https://www.ica.org/standards/RiC/ontology#hasDateType ;;; https://www.ica.org/standards/RiC/ontology#isDateTypeOf +https://www.ica.org/standards/RiC/ontology#hasDeathDate ; RiC-R072i ('has death date' relation);inverse; https://www.ica.org/standards/RiC/ontology#isDeathDateOf +https://www.ica.org/standards/RiC/ontology#hasDeathPlace ;;; https://www.ica.org/standards/RiC/ontology#isDeathPlaceOf +https://www.ica.org/standards/RiC/ontology#hasDescendant ; RiC-R017 ('has descendant' relation);; https://www.ica.org/standards/RiC/ontology#hasAncestor +https://www.ica.org/standards/RiC/ontology#hasDestructionDate ;;; https://www.ica.org/standards/RiC/ontology#isDestructionDateOf +https://www.ica.org/standards/RiC/ontology#hasDirectComponent ;;; https://www.ica.org/standards/RiC/ontology#isDirectComponentOf +https://www.ica.org/standards/RiC/ontology#hasDirectConstituent ;;; https://www.ica.org/standards/RiC/ontology#isDirectConstituentOf +https://www.ica.org/standards/RiC/ontology#hasDirectPart ;;; https://www.ica.org/standards/RiC/ontology#isDirectPartOf +https://www.ica.org/standards/RiC/ontology#hasDirectSubdivision ;;; https://www.ica.org/standards/RiC/ontology#isDirectSubdivisionOf +https://www.ica.org/standards/RiC/ontology#hasDirectSubevent ;;; https://www.ica.org/standards/RiC/ontology#isDirectSubeventOf +https://www.ica.org/standards/RiC/ontology#hasDirectSubordinate ;;; https://www.ica.org/standards/RiC/ontology#isDirectSubordinateTo +https://www.ica.org/standards/RiC/ontology#hasDocumentaryFormType ;;; https://www.ica.org/standards/RiC/ontology#isDocumentaryFormTypeOf +https://www.ica.org/standards/RiC/ontology#hasDraft ; RiC-011i ('has draft' relation);inverse; https://www.ica.org/standards/RiC/ontology#isDraftOf +https://www.ica.org/standards/RiC/ontology#hasEndDate ; RiC-R071i ('has end date' relation);inverse; https://www.ica.org/standards/RiC/ontology#isEndDateOf +https://www.ica.org/standards/RiC/ontology#hasEventType ;;; https://www.ica.org/standards/RiC/ontology#isEventTypeOf +https://www.ica.org/standards/RiC/ontology#hasExtent ;;; https://www.ica.org/standards/RiC/ontology#isExtentOf +https://www.ica.org/standards/RiC/ontology#hasExtentType ;;; https://www.ica.org/standards/RiC/ontology#isExtentTypeOf +https://www.ica.org/standards/RiC/ontology#hasFamilyAssociationWith ; RiC-R047 ('has family association with' relation);; +https://www.ica.org/standards/RiC/ontology#hasFamilyType ;;; https://www.ica.org/standards/RiC/ontology#isFamilyTypeOf +https://www.ica.org/standards/RiC/ontology#hasGeneticLinkToRecordResource ; RiC-R023 ('has genetic link to record resource' relation);; +https://www.ica.org/standards/RiC/ontology#hasIdentifierType ;;; https://www.ica.org/standards/RiC/ontology#isIdentifierTypeOf +https://www.ica.org/standards/RiC/ontology#hasModificationDate ; RiC-R073i ('has modification date' relation);inverse; https://www.ica.org/standards/RiC/ontology#isModificationDateOf +https://www.ica.org/standards/RiC/ontology#hasOrHadAgentName ;;; https://www.ica.org/standards/RiC/ontology#isOrWasAgentNameOf +https://www.ica.org/standards/RiC/ontology#hasOrHadAllMembersWithCategory ;;; https://www.ica.org/standards/RiC/ontology#isOrWasCategoryOfAllMembersOf +https://www.ica.org/standards/RiC/ontology#hasOrHadAllMembersWithContentType ;;; https://www.ica.org/standards/RiC/ontology#isOrWasContentTypeOfAllMembersOf +https://www.ica.org/standards/RiC/ontology#hasOrHadAllMembersWithCreationDate ; RiC-R081i ('has or had all members with creation date' relation);inverse; https://www.ica.org/standards/RiC/ontology#isOrWasCreationDateOfAllMembersOf +https://www.ica.org/standards/RiC/ontology#hasOrHadAllMembersWithDocumentaryFormType ;;; https://www.ica.org/standards/RiC/ontology#isOrWasDocumentaryFormTypeOfAllMembersOf +https://www.ica.org/standards/RiC/ontology#hasOrHadAllMembersWithLanguage ;;; https://www.ica.org/standards/RiC/ontology#isOrWasLanguageOfAllMembersOf +https://www.ica.org/standards/RiC/ontology#hasOrHadAllMembersWithLegalStatus ;;; https://www.ica.org/standards/RiC/ontology#isOrWasLegalStatusOfAllMembersOf +https://www.ica.org/standards/RiC/ontology#hasOrHadAllMembersWithRecordState ;;; https://www.ica.org/standards/RiC/ontology#isOrWasRecordStateOfAllMembersOf +https://www.ica.org/standards/RiC/ontology#hasOrHadAnalogueInstantiation ;;; https://www.ica.org/standards/RiC/ontology#isOrWasAnalogueInstantiationOf +https://www.ica.org/standards/RiC/ontology#hasOrHadAppellation ;;; https://www.ica.org/standards/RiC/ontology#isOrWasAppellationOf +https://www.ica.org/standards/RiC/ontology#hasOrHadAuthorityOver ; RiC-R036 ('has or had authority over' relation);; https://www.ica.org/standards/RiC/ontology#isOrWasUnderAuthorityOf +https://www.ica.org/standards/RiC/ontology#hasOrHadCategory ;;; https://www.ica.org/standards/RiC/ontology#isOrWasCategoryOf +https://www.ica.org/standards/RiC/ontology#hasOrHadComponent ; RiC-R004 ('has or had component' relation);; https://www.ica.org/standards/RiC/ontology#isOrWasComponentOf +https://www.ica.org/standards/RiC/ontology#hasOrHadConstituent ; RiC-R003 ('has or had constituent' relation);; https://www.ica.org/standards/RiC/ontology#isOrWasConstituentOf +https://www.ica.org/standards/RiC/ontology#hasOrHadController ; RiC-R041i ('has or had controller' relation);inverse; https://www.ica.org/standards/RiC/ontology#isOrWasControllerOf +https://www.ica.org/standards/RiC/ontology#hasOrHadCoordinates ;;; https://www.ica.org/standards/RiC/ontology#isOrWasCoordinatesOf +https://www.ica.org/standards/RiC/ontology#hasOrHadCorporateBodyType ;;; https://www.ica.org/standards/RiC/ontology#isOrWasCorporateBodyTypeOf +https://www.ica.org/standards/RiC/ontology#hasOrHadCorrespondent ; RiC-R052 ('has or had correspondent' relation);; +https://www.ica.org/standards/RiC/ontology#hasOrHadDemographicGroup ;;; https://www.ica.org/standards/RiC/ontology#isOrWasDemographicGroupOf +https://www.ica.org/standards/RiC/ontology#hasOrHadDerivedInstantiation ; RiC-R014 ('has or had derived instantiation' relation);; https://www.ica.org/standards/RiC/ontology#isOrWasDerivedFromInstantiation +https://www.ica.org/standards/RiC/ontology#hasOrHadDigitalInstantiation ;;; https://www.ica.org/standards/RiC/ontology#isOrWasDigitalInstantiationOf +https://www.ica.org/standards/RiC/ontology#hasOrHadEmployer ;;; https://www.ica.org/standards/RiC/ontology#isOrWasEmployerOf +https://www.ica.org/standards/RiC/ontology#hasOrHadHolder ; RiC-R039i ('has or had holder' relation);inverse; https://www.ica.org/standards/RiC/ontology#isOrWasHolderOf +https://www.ica.org/standards/RiC/ontology#hasOrHadIdentifier ;;; https://www.ica.org/standards/RiC/ontology#isOrWasIdentifierOf +https://www.ica.org/standards/RiC/ontology#hasOrHadInstantiation ; RiC-R025 ('has or had instantiation' relation);; https://www.ica.org/standards/RiC/ontology#isOrWasInstantiationOf +https://www.ica.org/standards/RiC/ontology#hasOrHadIntellectualPropertyRightsHolder ; RiC-R040i ('has or had intellectual property rights holder ' relation);inverse; https://www.ica.org/standards/RiC/ontology#isOrWasHolderOfIntellectualPropertyRightsOf +https://www.ica.org/standards/RiC/ontology#hasOrHadJurisdiction ; RiC-R076i ('has or had jurisdiction' relation);inverse; https://www.ica.org/standards/RiC/ontology#isOrWasJurisdictionOf +https://www.ica.org/standards/RiC/ontology#hasOrHadLanguage ;;; https://www.ica.org/standards/RiC/ontology#isOrWasLanguageOf +https://www.ica.org/standards/RiC/ontology#hasOrHadLeader ; RiC-R042i ('has or had leader' relation);inverse; https://www.ica.org/standards/RiC/ontology#isOrWasLeaderOf +https://www.ica.org/standards/RiC/ontology#hasOrHadLegalStatus ;;; https://www.ica.org/standards/RiC/ontology#isOrWasLegalStatusOf +https://www.ica.org/standards/RiC/ontology#hasOrHadLocation ; RiC-R075i ('has or had location' relation);inverse; https://www.ica.org/standards/RiC/ontology#isOrWasLocationOf +https://www.ica.org/standards/RiC/ontology#hasOrHadMainSubject ; RiC-R020 ('has or had main subject' relation);; https://www.ica.org/standards/RiC/ontology#isOrWasMainSubjectOf +https://www.ica.org/standards/RiC/ontology#hasOrHadManager ; RiC-R038i ('is or was managed by' relation);inverse; https://www.ica.org/standards/RiC/ontology#isOrWasManagerOf +https://www.ica.org/standards/RiC/ontology#hasOrHadMandateType ;;; https://www.ica.org/standards/RiC/ontology#isOrWasMandateTypeOf +https://www.ica.org/standards/RiC/ontology#hasOrHadMember ; RiC-R055 ('has or had member' relation);; https://www.ica.org/standards/RiC/ontology#isOrWasMemberOf +https://www.ica.org/standards/RiC/ontology#hasOrHadMostMembersWithCreationDate ; RiC-R083i ('has or had most members with creation date' relation);inverse; https://www.ica.org/standards/RiC/ontology#isOrWasCreationDateOfMostMembersOf +https://www.ica.org/standards/RiC/ontology#hasOrHadName ;;; https://www.ica.org/standards/RiC/ontology#isOrWasNameOf +https://www.ica.org/standards/RiC/ontology#hasOrHadOccupationOfType ;;; https://www.ica.org/standards/RiC/ontology#isOrWasOccupationTypeOf +https://www.ica.org/standards/RiC/ontology#hasOrHadOwner ; RiC-R037i ('has or had owner' relation);inverse; https://www.ica.org/standards/RiC/ontology#isOrWasOwnerOf +https://www.ica.org/standards/RiC/ontology#hasOrHadPart ; RiC-R002 ('has or had part' relation);; https://www.ica.org/standards/RiC/ontology#isOrWasPartOf +https://www.ica.org/standards/RiC/ontology#hasOrHadParticipant ; RiC-R058 ('has or had participant' relation);; https://www.ica.org/standards/RiC/ontology#isOrWasParticipantIn +https://www.ica.org/standards/RiC/ontology#hasOrHadPhysicalLocation ;;; https://www.ica.org/standards/RiC/ontology#isOrWasPhysicalLocationOf +https://www.ica.org/standards/RiC/ontology#hasOrHadPlaceName ;;; https://www.ica.org/standards/RiC/ontology#isOrWasPlaceNameOf +https://www.ica.org/standards/RiC/ontology#hasOrHadPlaceType ;;; https://www.ica.org/standards/RiC/ontology#isOrWasPlaceTypeOf +https://www.ica.org/standards/RiC/ontology#hasOrHadPosition ; RiC-R056i ('has or had position' relation);inverse; https://www.ica.org/standards/RiC/ontology#existsOrExistedIn +https://www.ica.org/standards/RiC/ontology#hasOrHadRuleType ;;; https://www.ica.org/standards/RiC/ontology#isOrWasRuleTypeOf +https://www.ica.org/standards/RiC/ontology#hasOrHadSomeMembersWithCategory ;;; https://www.ica.org/standards/RiC/ontology#isOrWasCategoryOfSomeMembersOf +https://www.ica.org/standards/RiC/ontology#hasOrHadSomeMembersWithContentType ;;; https://www.ica.org/standards/RiC/ontology#isOrWasContentTypeOfSomeMembersOf +https://www.ica.org/standards/RiC/ontology#hasOrHadSomeMembersWithCreationDate ; RiC-R082i ('has or had some members with creation date' relation);inverse; https://www.ica.org/standards/RiC/ontology#isOrWasCreationDateOfSomeMembersOf +https://www.ica.org/standards/RiC/ontology#hasOrHadSomeMembersWithDocumentaryFormType ;;; https://www.ica.org/standards/RiC/ontology#isOrWasDocumentaryFormTypeOfSomeMembersOf +https://www.ica.org/standards/RiC/ontology#hasOrHadSomeMembersWithLanguage ;;; https://www.ica.org/standards/RiC/ontology#isOrWasLanguageOfSomeMembersOf +https://www.ica.org/standards/RiC/ontology#hasOrHadSomeMembersWithLegalStatus ;;; https://www.ica.org/standards/RiC/ontology#isOrWasLegalStatusOfSomeMembersOf +https://www.ica.org/standards/RiC/ontology#hasOrHadSomeMembersWithRecordState ;;; https://www.ica.org/standards/RiC/ontology#isOrWasRecordStateOfSomeMembersOf +https://www.ica.org/standards/RiC/ontology#hasOrHadSpouse ; RiC-R049 ('has or had spouse' relation);; +https://www.ica.org/standards/RiC/ontology#hasOrHadStudent ; RiC-R053i ('has or had student' relation);inverse; https://www.ica.org/standards/RiC/ontology#hasOrHadTeacher +https://www.ica.org/standards/RiC/ontology#hasOrHadSubdivision ; RiC-R005 ('has or had subdivision' relation);; https://www.ica.org/standards/RiC/ontology#isOrWasSubdivisionOf +https://www.ica.org/standards/RiC/ontology#hasOrHadSubevent ; RiC-R006 ('has or had subevent' relation);; https://www.ica.org/standards/RiC/ontology#isOrWasSubeventOf +https://www.ica.org/standards/RiC/ontology#hasOrHadSubject ; RiC-R019 ('has or had subject' relation);; https://www.ica.org/standards/RiC/ontology#isOrWasSubjectOf +https://www.ica.org/standards/RiC/ontology#hasOrHadSubordinate ; RiC-R045 ('has or had subordinate ' relation);; https://www.ica.org/standards/RiC/ontology#isOrWasSubordinateTo +https://www.ica.org/standards/RiC/ontology#hasOrHadTeacher ; RiC-R053 ('has or had teacher' relation);; https://www.ica.org/standards/RiC/ontology#hasOrHadStudent +https://www.ica.org/standards/RiC/ontology#hasOrHadTitle ;;; https://www.ica.org/standards/RiC/ontology#isOrWasTitleOf +https://www.ica.org/standards/RiC/ontology#hasOrHadWorkRelationWith ; RiC-R046 ('has or had work relation with' relation);; +https://www.ica.org/standards/RiC/ontology#hasOrganicOrFunctionalProvenance ;;; https://www.ica.org/standards/RiC/ontology#isOrganicOrFunctionalProvenanceOf +https://www.ica.org/standards/RiC/ontology#hasOrganicProvenance ; RiC-R026 ('has provenance' relation);; https://www.ica.org/standards/RiC/ontology#isOrganicProvenanceOf +https://www.ica.org/standards/RiC/ontology#hasOriginal ; RiC-R010i ('is original of' relation);inverse; https://www.ica.org/standards/RiC/ontology#isOriginalOf +https://www.ica.org/standards/RiC/ontology#hasPartTransitive ;;; https://www.ica.org/standards/RiC/ontology#isPartOfTransitive +https://www.ica.org/standards/RiC/ontology#hasProductionTechniqueType ;;; https://www.ica.org/standards/RiC/ontology#isProductionTechniqueTypeOf +https://www.ica.org/standards/RiC/ontology#hasPublicationDate ;;; https://www.ica.org/standards/RiC/ontology#isPublicationDateOf +https://www.ica.org/standards/RiC/ontology#hasPublisher ;;; https://www.ica.org/standards/RiC/ontology#isPublisherOf +https://www.ica.org/standards/RiC/ontology#hasReceiver ; RiC-R029 ('has receiver' relation);; https://www.ica.org/standards/RiC/ontology#isReceiverOf +https://www.ica.org/standards/RiC/ontology#hasRecordSetType ;;; https://www.ica.org/standards/RiC/ontology#isRecordSetTypeOf +https://www.ica.org/standards/RiC/ontology#hasRecordState ;;; https://www.ica.org/standards/RiC/ontology#isRecordStateOf +https://www.ica.org/standards/RiC/ontology#hasReply ; RiC-R013 ('has reply' relation);; https://www.ica.org/standards/RiC/ontology#isReplyTo +https://www.ica.org/standards/RiC/ontology#hasRepresentationType ;;; https://www.ica.org/standards/RiC/ontology#isRepresentationTypeOf +https://www.ica.org/standards/RiC/ontology#hasSender ; RiC-R031 ('has sender' relation);; https://www.ica.org/standards/RiC/ontology#isSenderOf +https://www.ica.org/standards/RiC/ontology#hasSibling ; RiC-R048 ('has sibling' relation);; +https://www.ica.org/standards/RiC/ontology#hasSubdivisionTransitive ;;; https://www.ica.org/standards/RiC/ontology#isSubdivisionOfTransitive +https://www.ica.org/standards/RiC/ontology#hasSubeventTransitive ;;; https://www.ica.org/standards/RiC/ontology#isSubeventOfTransitive +https://www.ica.org/standards/RiC/ontology#hasSubordinateTransitive ;;; https://www.ica.org/standards/RiC/ontology#isSubordinateToTransitive +https://www.ica.org/standards/RiC/ontology#hasSuccessor ; RIC-R016 ('has successor' relation);; https://www.ica.org/standards/RiC/ontology#isSuccessorOf +http://www.w3.org/2004/02/skos/core#hasTopConcept ;;; http://www.w3.org/2004/02/skos/core#topConceptOf +https://www.ica.org/standards/RiC/ontology#hasUnitOfMeasurement ;;; https://www.ica.org/standards/RiC/ontology#isUnitOfMeasurementOf +https://www.ica.org/standards/RiC/ontology#hasWithin ; RiC-R085i ('has within' relation);inverse; https://www.ica.org/standards/RiC/ontology#isWithin +https://www.ica.org/standards/RiC/ontology#included ;;; https://www.ica.org/standards/RiC/ontology#wasIncludedIn +https://www.ica.org/standards/RiC/ontology#includesOrIncluded ; RiC-R024 ('includes or included' relation);; https://www.ica.org/standards/RiC/ontology#isOrWasIncludedIn +https://www.ica.org/standards/RiC/ontology#includesTransitive ;;; https://www.ica.org/standards/RiC/ontology#isIncludedInTransitive +http://www.w3.org/2004/02/skos/core#inScheme ;;; +https://www.ica.org/standards/RiC/ontology#instantiationToInstantiationRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#intellectualPropertyRightsRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#intersects ; RiC-R086 ('intersects' relation);; +https://www.ica.org/standards/RiC/ontology#isAccumulatorOf ; RiC-R028i ('is accumulator of' relation);inverse; https://www.ica.org/standards/RiC/ontology#hasAccumulator +https://www.ica.org/standards/RiC/ontology#isActivityTypeOf ;;; https://www.ica.org/standards/RiC/ontology#hasActivityType +https://www.ica.org/standards/RiC/ontology#isAddresseeOf ; RiC-032i ('is addressee of' relation);inverse; https://www.ica.org/standards/RiC/ontology#hasAddressee +https://www.ica.org/standards/RiC/ontology#isAgentAssociatedWithAgent ; RiC-R044 ('is agent associated with agent' relation);; +https://www.ica.org/standards/RiC/ontology#isAgentAssociatedWithPlace ;;; https://www.ica.org/standards/RiC/ontology#isPlaceAssociatedWithAgent +https://www.ica.org/standards/RiC/ontology#isAssociatedWithDate ; RiC-R068i ('is associated with date' relation);inverse; https://www.ica.org/standards/RiC/ontology#isDateAssociatedWith +https://www.ica.org/standards/RiC/ontology#isAssociatedWithEvent ; RiC-R057i ('is associated with event' relation);inverse; https://www.ica.org/standards/RiC/ontology#isEventAssociatedWith +https://www.ica.org/standards/RiC/ontology#isAssociatedWithPlace ; RiC-R074i ('is associated with place' relation);inverse; https://www.ica.org/standards/RiC/ontology#isPlaceAssociatedWith +https://www.ica.org/standards/RiC/ontology#isAssociatedWithRule ; RiC-R062i ('is associated with rule' relation);inverse; https://www.ica.org/standards/RiC/ontology#isRuleAssociatedWith +https://www.ica.org/standards/RiC/ontology#isAuthorOf ; RiC-R079i ('is author of' relation);inverse; https://www.ica.org/standards/RiC/ontology#hasAuthor +https://www.ica.org/standards/RiC/ontology#isAuthorizingAgentInMandateRelation ;;; https://www.ica.org/standards/RiC/ontology#authorizingAgent +https://www.ica.org/standards/RiC/ontology#isBeginningDateOf ; RiC-R069 ('is beginning date of' relation);; https://www.ica.org/standards/RiC/ontology#hasBeginningDate +https://www.ica.org/standards/RiC/ontology#isBirthDateOf ; RiC-R070 ('is birth date of' relation);; https://www.ica.org/standards/RiC/ontology#hasBirthDate +https://www.ica.org/standards/RiC/ontology#isBirthPlaceOf ;;; https://www.ica.org/standards/RiC/ontology#hasBirthPlace +https://www.ica.org/standards/RiC/ontology#isCarrierTypeOf ;;; https://www.ica.org/standards/RiC/ontology#hasCarrierType +https://www.ica.org/standards/RiC/ontology#isChildOf ; RiC-R018i ('is child of' relation);inverse; https://www.ica.org/standards/RiC/ontology#hasChild +https://www.ica.org/standards/RiC/ontology#isCollectorOf ; RiC-R030i ('is collector of' relation);inverse; https://www.ica.org/standards/RiC/ontology#hasCollector +https://www.ica.org/standards/RiC/ontology#isComponentOfTransitive ;;; https://www.ica.org/standards/RiC/ontology#hasComponentTransitive +https://www.ica.org/standards/RiC/ontology#isConstituentOfTransitive ;;; https://www.ica.org/standards/RiC/ontology#hasConstituentTransitive +https://www.ica.org/standards/RiC/ontology#isContainedByTransitive ;;; https://www.ica.org/standards/RiC/ontology#containsTransitive +https://www.ica.org/standards/RiC/ontology#isContentTypeOf ;;; https://www.ica.org/standards/RiC/ontology#hasContentOfType +https://www.ica.org/standards/RiC/ontology#isCopyOf ; RiC-R012i ('is copy of' relation);inverse; https://www.ica.org/standards/RiC/ontology#hasCopy +https://www.ica.org/standards/RiC/ontology#isCreationDateOf ; RiC-R080 ('is creation date of' relation);; https://www.ica.org/standards/RiC/ontology#hasCreationDate +https://www.ica.org/standards/RiC/ontology#isCreatorOf ; RiC-R027i ('is creator of 'relation');inverse; https://www.ica.org/standards/RiC/ontology#hasCreator +https://www.ica.org/standards/RiC/ontology#isDateAssociatedWith ; RiC-R068 ('is date associated with' relation);; https://www.ica.org/standards/RiC/ontology#isAssociatedWithDate +https://www.ica.org/standards/RiC/ontology#isDateOfOccurrenceOf ; RiC-R084 ('is date of occurrence of' relation);; https://www.ica.org/standards/RiC/ontology#occurredAtDate +https://www.ica.org/standards/RiC/ontology#isDateTypeOf ;;; https://www.ica.org/standards/RiC/ontology#hasDateType +https://www.ica.org/standards/RiC/ontology#isDeathDateOf ; RiC-R072 ('is death date of' relation);; https://www.ica.org/standards/RiC/ontology#hasDeathDate +https://www.ica.org/standards/RiC/ontology#isDeathPlaceOf ;;; https://www.ica.org/standards/RiC/ontology#hasDeathPlace +https://www.ica.org/standards/RiC/ontology#isDestructionDateOf ;;; https://www.ica.org/standards/RiC/ontology#hasDestructionDate +https://www.ica.org/standards/RiC/ontology#isDirectComponentOf ;;; https://www.ica.org/standards/RiC/ontology#hasDirectComponent +https://www.ica.org/standards/RiC/ontology#isDirectConstituentOf ;;; https://www.ica.org/standards/RiC/ontology#hasDirectConstituent +https://www.ica.org/standards/RiC/ontology#isDirectPartOf ;;; https://www.ica.org/standards/RiC/ontology#hasDirectPart +https://www.ica.org/standards/RiC/ontology#isDirectSubdivisionOf ;;; https://www.ica.org/standards/RiC/ontology#hasDirectSubdivision +https://www.ica.org/standards/RiC/ontology#isDirectSubeventOf ;;; https://www.ica.org/standards/RiC/ontology#hasDirectSubevent +https://www.ica.org/standards/RiC/ontology#isDirectSubordinateTo ;;; https://www.ica.org/standards/RiC/ontology#hasDirectSubordinate +https://www.ica.org/standards/RiC/ontology#isDirectlyContainedBy ;;; https://www.ica.org/standards/RiC/ontology#directlyContains +https://www.ica.org/standards/RiC/ontology#isDirectlyIncludedIn ;;; https://www.ica.org/standards/RiC/ontology#directlyIncludes +https://www.ica.org/standards/RiC/ontology#isDocumentaryFormTypeOf ;;; https://www.ica.org/standards/RiC/ontology#hasDocumentaryFormType +https://www.ica.org/standards/RiC/ontology#isDraftOf ; RiC-R011 ('is draft of' relation);; https://www.ica.org/standards/RiC/ontology#hasDraft +https://www.ica.org/standards/RiC/ontology#isEndDateOf ; RiC-R071 ('is end date of' relation);; https://www.ica.org/standards/RiC/ontology#hasEndDate +https://www.ica.org/standards/RiC/ontology#isEquivalentTo ;;; +https://www.ica.org/standards/RiC/ontology#isEventAssociatedWith ; RiC-R057 ('is event associated with' relation);; https://www.ica.org/standards/RiC/ontology#isAssociatedWithEvent +https://www.ica.org/standards/RiC/ontology#isEventTypeOf ;;; https://www.ica.org/standards/RiC/ontology#hasEventType +https://www.ica.org/standards/RiC/ontology#isEvidencedBy ; Object property implementation of RiC-RA05 (Source of Relation attribute).;; https://www.ica.org/standards/RiC/ontology#evidences +https://www.ica.org/standards/RiC/ontology#isExtentOf ;;; https://www.ica.org/standards/RiC/ontology#hasExtent +https://www.ica.org/standards/RiC/ontology#isExtentTypeOf ;;; https://www.ica.org/standards/RiC/ontology#hasExtentType +https://www.ica.org/standards/RiC/ontology#isFamilyTypeOf ;;; https://www.ica.org/standards/RiC/ontology#hasFamilyType +https://www.ica.org/standards/RiC/ontology#isFromUseDateOf ;;; https://www.ica.org/standards/RiC/ontology#wasUsedFromDate +https://www.ica.org/standards/RiC/ontology#isFunctionallyEquivalentTo ; RiC-R035 ('is functionally equivalent to' relation);; +https://www.ica.org/standards/RiC/ontology#isIdentifierTypeOf ;;; https://www.ica.org/standards/RiC/ontology#hasIdentifierType +https://www.ica.org/standards/RiC/ontology#isIncludedInTransitive ;;; https://www.ica.org/standards/RiC/ontology#includesTransitive +https://www.ica.org/standards/RiC/ontology#isInstantiationAssociatedWithInstantiation ; RiC-R034 ('is instantiation associated with instantiation' relation);; +https://www.ica.org/standards/RiC/ontology#isLastUpdateDateOf ;;; https://www.ica.org/standards/RiC/ontology#wasLastUpdatedAtDate +https://www.ica.org/standards/RiC/ontology#isModificationDateOf ; RiC-R073 ('is modification date of' relation);; https://www.ica.org/standards/RiC/ontology#hasModificationDate +https://www.ica.org/standards/RiC/ontology#isOrWasAdjacentTo ; RiC-R077 ('is or was adjacent to' relation);; +https://www.ica.org/standards/RiC/ontology#isOrWasAffectedBy ; RiC-R059i ('is or was affected by' relation);inverse; https://www.ica.org/standards/RiC/ontology#affectsOrAffected +https://www.ica.org/standards/RiC/ontology#isOrWasAgentNameOf ;;; https://www.ica.org/standards/RiC/ontology#hasOrHadAgentName +https://www.ica.org/standards/RiC/ontology#isOrWasAnalogueInstantiationOf ;;; https://www.ica.org/standards/RiC/ontology#hasOrHadAnalogueInstantiation +https://www.ica.org/standards/RiC/ontology#isOrWasAppellationOf ;;; https://www.ica.org/standards/RiC/ontology#hasOrHadAppellation +https://www.ica.org/standards/RiC/ontology#isOrWasCategoryOf ;;; https://www.ica.org/standards/RiC/ontology#hasOrHadCategory +https://www.ica.org/standards/RiC/ontology#isOrWasCategoryOfAllMembersOf ;;; https://www.ica.org/standards/RiC/ontology#hasOrHadAllMembersWithCategory +https://www.ica.org/standards/RiC/ontology#isOrWasCategoryOfSomeMembersOf ;;; https://www.ica.org/standards/RiC/ontology#hasOrHadSomeMembersWithCategory +https://www.ica.org/standards/RiC/ontology#isOrWasComponentOf ; RiC-R004i ('is or was component of' relation);inverse; https://www.ica.org/standards/RiC/ontology#hasOrHadComponent +https://www.ica.org/standards/RiC/ontology#isOrWasConstituentOf ; RiC-R003i ('is or was constituent of' relation);inverse; https://www.ica.org/standards/RiC/ontology#hasOrHadConstituent +https://www.ica.org/standards/RiC/ontology#isOrWasContainedBy ; RiC-R007i ('is or was contained by' relation);inverse; https://www.ica.org/standards/RiC/ontology#containsOrContained +https://www.ica.org/standards/RiC/ontology#isOrWasContentTypeOfAllMembersOf ;;; https://www.ica.org/standards/RiC/ontology#hasOrHadAllMembersWithContentType +https://www.ica.org/standards/RiC/ontology#isOrWasContentTypeOfSomeMembersOf ;;; https://www.ica.org/standards/RiC/ontology#hasOrHadSomeMembersWithContentType +https://www.ica.org/standards/RiC/ontology#isOrWasControllerOf ; RiC-R041 ('is or was controller of' relation);; https://www.ica.org/standards/RiC/ontology#hasOrHadController +https://www.ica.org/standards/RiC/ontology#isOrWasCoordinatesOf ;;; https://www.ica.org/standards/RiC/ontology#hasOrHadCoordinates +https://www.ica.org/standards/RiC/ontology#isOrWasCorporateBodyTypeOf ;;; https://www.ica.org/standards/RiC/ontology#hasOrHadCorporateBodyType +https://www.ica.org/standards/RiC/ontology#isOrWasCreationDateOfAllMembersOf ; RiC-R081 ('is or was creation date of all members of' relation);; https://www.ica.org/standards/RiC/ontology#hasOrHadAllMembersWithCreationDate +https://www.ica.org/standards/RiC/ontology#isOrWasCreationDateOfMostMembersOf ; RiC-R083 ('is or was creation date of most members of' relation);; https://www.ica.org/standards/RiC/ontology#hasOrHadMostMembersWithCreationDate +https://www.ica.org/standards/RiC/ontology#isOrWasCreationDateOfSomeMembersOf ; RiC-R082 ('is or was creation date of some members of' relation);; https://www.ica.org/standards/RiC/ontology#hasOrHadSomeMembersWithCreationDate +https://www.ica.org/standards/RiC/ontology#isOrWasDemographicGroupOf ;;; https://www.ica.org/standards/RiC/ontology#hasOrHadDemographicGroup +https://www.ica.org/standards/RiC/ontology#isOrWasDerivedFromInstantiation ; RiC-R014i ('is or was derived from instantiation' relation);inverse; https://www.ica.org/standards/RiC/ontology#hasOrHadDerivedInstantiation +https://www.ica.org/standards/RiC/ontology#isOrWasDescribedBy ; RiC-R021i ('is or was described by' relation);inverse; https://www.ica.org/standards/RiC/ontology#describesOrDescribed +https://www.ica.org/standards/RiC/ontology#isOrWasDigitalInstantiationOf ;;; https://www.ica.org/standards/RiC/ontology#hasOrHadDigitalInstantiation +https://www.ica.org/standards/RiC/ontology#isOrWasDocumentaryFormTypeOfAllMembersOf ;;; https://www.ica.org/standards/RiC/ontology#hasOrHadAllMembersWithDocumentaryFormType +https://www.ica.org/standards/RiC/ontology#isOrWasDocumentaryFormTypeOfSomeMembersOf ;;; https://www.ica.org/standards/RiC/ontology#hasOrHadSomeMembersWithDocumentaryFormType +https://www.ica.org/standards/RiC/ontology#isOrWasEmployerOf ;;; https://www.ica.org/standards/RiC/ontology#hasOrHadEmployer +https://www.ica.org/standards/RiC/ontology#isOrWasEnforcedBy ; RiC-R066 ('is or was enforced by' relation);; https://www.ica.org/standards/RiC/ontology#isOrWasResponsibleForEnforcing +https://www.ica.org/standards/RiC/ontology#isOrWasExpressedBy ; RiC-R064 ('is or was expressed by' relation);; https://www.ica.org/standards/RiC/ontology#expressesOrExpressed +https://www.ica.org/standards/RiC/ontology#isOrWasHolderOf ; RiC-R039 ('is or was holder of' relation);; https://www.ica.org/standards/RiC/ontology#hasOrHadHolder +https://www.ica.org/standards/RiC/ontology#isOrWasHolderOfIntellectualPropertyRightsOf ; RiC-R040 ('is or was holder of intellectual property rights of' relation);; https://www.ica.org/standards/RiC/ontology#hasOrHadIntellectualPropertyRightsHolder +https://www.ica.org/standards/RiC/ontology#isOrWasIdentifierOf ;;; https://www.ica.org/standards/RiC/ontology#hasOrHadIdentifier +https://www.ica.org/standards/RiC/ontology#isOrWasIncludedIn ; RiC-R024i ('is or was included in' relation);inverse; https://www.ica.org/standards/RiC/ontology#includesOrIncluded +https://www.ica.org/standards/RiC/ontology#isOrWasInstantiationOf ; RiC-R025i ('is or was instantiation of' relation);inverse; https://www.ica.org/standards/RiC/ontology#hasOrHadInstantiation +https://www.ica.org/standards/RiC/ontology#isOrWasJurisdictionOf ; RiC-R076 ('is or was jurisdiction of' relation);; https://www.ica.org/standards/RiC/ontology#hasOrHadJurisdiction +https://www.ica.org/standards/RiC/ontology#isOrWasLanguageOf ;;; https://www.ica.org/standards/RiC/ontology#hasOrHadLanguage +https://www.ica.org/standards/RiC/ontology#isOrWasLanguageOfAllMembersOf ;;; https://www.ica.org/standards/RiC/ontology#hasOrHadAllMembersWithLanguage +https://www.ica.org/standards/RiC/ontology#isOrWasLanguageOfSomeMembersOf ;;; https://www.ica.org/standards/RiC/ontology#hasOrHadSomeMembersWithLanguage +https://www.ica.org/standards/RiC/ontology#isOrWasLeaderOf ; RiC-R042 ('is or was leader of' relation);; https://www.ica.org/standards/RiC/ontology#hasOrHadLeader +https://www.ica.org/standards/RiC/ontology#isOrWasLegalStatusOf ;;; https://www.ica.org/standards/RiC/ontology#hasOrHadLegalStatus +https://www.ica.org/standards/RiC/ontology#isOrWasLegalStatusOfAllMembersOf ;;; https://www.ica.org/standards/RiC/ontology#hasOrHadAllMembersWithLegalStatus +https://www.ica.org/standards/RiC/ontology#isOrWasLegalStatusOfSomeMembersOf ;;; https://www.ica.org/standards/RiC/ontology#hasOrHadSomeMembersWithLegalStatus +https://www.ica.org/standards/RiC/ontology#isOrWasLocationOf ; RiC-R075 ('is or was location of' relation);; https://www.ica.org/standards/RiC/ontology#hasOrHadLocation +https://www.ica.org/standards/RiC/ontology#isOrWasLocationOfAgent ;;; https://www.ica.org/standards/RiC/ontology#agentHasOrHadLocation +https://www.ica.org/standards/RiC/ontology#isOrWasMainSubjectOf ; RiC-R020i ('is or was main subject of' relation);inverse; https://www.ica.org/standards/RiC/ontology#hasOrHadMainSubject +https://www.ica.org/standards/RiC/ontology#isOrWasManagerOf ; RiC-R038 ('is or was manager of' relation);; https://www.ica.org/standards/RiC/ontology#hasOrHadManager +https://www.ica.org/standards/RiC/ontology#isOrWasMandateTypeOf ;;; https://www.ica.org/standards/RiC/ontology#hasOrHadMandateType +https://www.ica.org/standards/RiC/ontology#isOrWasMemberOf ; RiC-R055i ('is or was member of' relation);inverse; https://www.ica.org/standards/RiC/ontology#hasOrHadMember +https://www.ica.org/standards/RiC/ontology#isOrWasNameOf ;;; https://www.ica.org/standards/RiC/ontology#hasOrHadName +https://www.ica.org/standards/RiC/ontology#isOrWasOccupationTypeOf ;;; https://www.ica.org/standards/RiC/ontology#hasOrHadOccupationOfType +https://www.ica.org/standards/RiC/ontology#isOrWasOccupiedBy ; RiC-R054i ('is or was occupied by' relation);inverse; https://www.ica.org/standards/RiC/ontology#occupiesOrOccupied +https://www.ica.org/standards/RiC/ontology#isOrWasOwnerOf ; RiC-R037 ('is or was owner of' relation);; https://www.ica.org/standards/RiC/ontology#hasOrHadOwner +https://www.ica.org/standards/RiC/ontology#isOrWasPartOf ; RiC-R002i ('is or was part of' relation);inverse; https://www.ica.org/standards/RiC/ontology#hasOrHadPart +https://www.ica.org/standards/RiC/ontology#isOrWasParticipantIn ; RiC-R058i ('is or was participant in' relation);inverse; https://www.ica.org/standards/RiC/ontology#hasOrHadParticipant +https://www.ica.org/standards/RiC/ontology#isOrWasPerformedBy ; RiC-R060 ('is or was performed by' relation);; https://www.ica.org/standards/RiC/ontology#performsOrPerformed +https://www.ica.org/standards/RiC/ontology#isOrWasPhysicalLocationOf ;;; https://www.ica.org/standards/RiC/ontology#hasOrHadPhysicalLocation +https://www.ica.org/standards/RiC/ontology#isOrWasPlaceNameOf ;;; https://www.ica.org/standards/RiC/ontology#hasOrHadPlaceName +https://www.ica.org/standards/RiC/ontology#isOrWasPlaceTypeOf ;;; https://www.ica.org/standards/RiC/ontology#hasOrHadPlaceType +https://www.ica.org/standards/RiC/ontology#isOrWasRecordStateOfAllMembersOf ;;; https://www.ica.org/standards/RiC/ontology#hasOrHadAllMembersWithRecordState +https://www.ica.org/standards/RiC/ontology#isOrWasRecordStateOfSomeMembersOf ;;; https://www.ica.org/standards/RiC/ontology#hasOrHadSomeMembersWithRecordState +https://www.ica.org/standards/RiC/ontology#isOrWasRegulatedBy ; RiC-R063i ('is or was regulated by' relation);inverse; https://www.ica.org/standards/RiC/ontology#regulatesOrRegulated +https://www.ica.org/standards/RiC/ontology#isOrWasResponsibleForEnforcing ; RiC-R066i ('is or was responsible for enforcing' relation);inverse; https://www.ica.org/standards/RiC/ontology#isOrWasEnforcedBy +https://www.ica.org/standards/RiC/ontology#isOrWasRuleTypeOf ;;; https://www.ica.org/standards/RiC/ontology#hasOrHadRuleType +https://www.ica.org/standards/RiC/ontology#isOrWasSubdivisionOf ; RiC-R005i ('is or was subdivision' relation);inverse; https://www.ica.org/standards/RiC/ontology#hasOrHadSubdivision +https://www.ica.org/standards/RiC/ontology#isOrWasSubeventOf ; RiC-R006i ('is or was subevent of' relation);inverse; https://www.ica.org/standards/RiC/ontology#hasOrHadSubevent +https://www.ica.org/standards/RiC/ontology#isOrWasSubjectOf ; RIc-R019i ('is or was subject of' relation);inverse; https://www.ica.org/standards/RiC/ontology#hasOrHadSubject +https://www.ica.org/standards/RiC/ontology#isOrWasSubordinateTo ; RiC-R045i ('is or was subordinate to' relation);inverse; https://www.ica.org/standards/RiC/ontology#hasOrHadSubordinate +https://www.ica.org/standards/RiC/ontology#isOrWasTitleOf ;;; https://www.ica.org/standards/RiC/ontology#hasOrHadTitle +https://www.ica.org/standards/RiC/ontology#isOrWasUnderAuthorityOf ; RiC-R036i ('is or was under authority of' relation);inverse; https://www.ica.org/standards/RiC/ontology#hasOrHadAuthorityOver +https://www.ica.org/standards/RiC/ontology#isOrganicOrFunctionalProvenanceOf ;;; https://www.ica.org/standards/RiC/ontology#hasOrganicOrFunctionalProvenance +https://www.ica.org/standards/RiC/ontology#isOrganicProvenanceOf ; RiC-R026i ('is provenance of' relation);inverse; https://www.ica.org/standards/RiC/ontology#hasOrganicProvenance +https://www.ica.org/standards/RiC/ontology#isOriginalOf ; RiC-R010 (is original of relation);; https://www.ica.org/standards/RiC/ontology#hasOriginal +https://www.ica.org/standards/RiC/ontology#isPartOfTransitive ;;; https://www.ica.org/standards/RiC/ontology#hasPartTransitive +https://www.ica.org/standards/RiC/ontology#isPlaceAssociatedWith ; RiC-R074 ('is place associated with' relation);; https://www.ica.org/standards/RiC/ontology#isAssociatedWithPlace +https://www.ica.org/standards/RiC/ontology#isPlaceAssociatedWithAgent ;;; https://www.ica.org/standards/RiC/ontology#isAgentAssociatedWithPlace +https://www.ica.org/standards/RiC/ontology#isProductionTechniqueTypeOf ;;; https://www.ica.org/standards/RiC/ontology#hasProductionTechniqueType +https://www.ica.org/standards/RiC/ontology#isPublicationDateOf ;;; https://www.ica.org/standards/RiC/ontology#hasPublicationDate +https://www.ica.org/standards/RiC/ontology#isPublisherOf ;;; https://www.ica.org/standards/RiC/ontology#hasPublisher +https://www.ica.org/standards/RiC/ontology#isReceiverOf ; RiC-R029i ('is receiver of' relation);inverse; https://www.ica.org/standards/RiC/ontology#hasReceiver +https://www.ica.org/standards/RiC/ontology#isRecordResourceAssociatedWithRecordResource ; RiC-R022 ('is record resource associated with record resource' relation);; +https://www.ica.org/standards/RiC/ontology#isRecordSetTypeOf ;;; https://www.ica.org/standards/RiC/ontology#hasRecordSetType +https://www.ica.org/standards/RiC/ontology#isRecordStateOf ;;; https://www.ica.org/standards/RiC/ontology#hasRecordState +https://www.ica.org/standards/RiC/ontology#isRelatedTo ; RiC-R001 ('is related to' relation);; +https://www.ica.org/standards/RiC/ontology#isReplyTo ; RiC-R013i ('is reply to' relation);inverse; https://www.ica.org/standards/RiC/ontology#hasReply +https://www.ica.org/standards/RiC/ontology#isRepresentationTypeOf ;;; https://www.ica.org/standards/RiC/ontology#hasRepresentationType +https://www.ica.org/standards/RiC/ontology#isResponsibleForIssuing ; RiC-R065i ('is responsible for issuing' relation);inverse; https://www.ica.org/standards/RiC/ontology#issuedBy +https://www.ica.org/standards/RiC/ontology#isRuleAssociatedWith ; RiC-R062 ('is rule associated with' relation);; https://www.ica.org/standards/RiC/ontology#isAssociatedWithRule +https://www.ica.org/standards/RiC/ontology#isSenderOf ; RiC-R031i ('is sender of' relation);inverse; https://www.ica.org/standards/RiC/ontology#hasSender +https://www.ica.org/standards/RiC/ontology#isSubdivisionOfTransitive ;;; https://www.ica.org/standards/RiC/ontology#hasSubdivisionTransitive +https://www.ica.org/standards/RiC/ontology#isSubeventOfTransitive ;;; https://www.ica.org/standards/RiC/ontology#hasSubeventTransitive +https://www.ica.org/standards/RiC/ontology#isSubordinateToTransitive ;;; https://www.ica.org/standards/RiC/ontology#hasSubordinateTransitive +https://www.ica.org/standards/RiC/ontology#isSuccessorOf ; RiC-R016i ('is successor of' relation);inverse; https://www.ica.org/standards/RiC/ontology#hasSuccessor +https://www.ica.org/standards/RiC/ontology#isToUseDateOf ;;; https://www.ica.org/standards/RiC/ontology#wasUsedToDate +https://www.ica.org/standards/RiC/ontology#isUnitOfMeasurementOf ;;; https://www.ica.org/standards/RiC/ontology#hasUnitOfMeasurement +https://www.ica.org/standards/RiC/ontology#isWithin ; RiC-R085 ('is within' relation);; https://www.ica.org/standards/RiC/ontology#hasWithin +https://www.ica.org/standards/RiC/ontology#issuedBy ; RiC-R065 ('issued by' relation);; https://www.ica.org/standards/RiC/ontology#isResponsibleForIssuing +https://www.ica.org/standards/RiC/ontology#knowingOfRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#knowingRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#knownBy ; RiC-R050i ('known by' relation);inverse; https://www.ica.org/standards/RiC/ontology#knowsOf +https://www.ica.org/standards/RiC/ontology#knows ; RiC-R051 ('knows' relation);; +https://www.ica.org/standards/RiC/ontology#knowsOf ; RiC-R050 ('knows of' relation);; https://www.ica.org/standards/RiC/ontology#knownBy +https://www.ica.org/standards/RiC/ontology#leadershipRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#leadershipWithPosition ;;; https://www.ica.org/standards/RiC/ontology#positionIsContextOfLeadershipRelation +https://www.ica.org/standards/RiC/ontology#managementRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#mandateRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#membershipRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#membershipWithPosition ;;; https://www.ica.org/standards/RiC/ontology#positionIsContextOfMembershipRelation +https://www.ica.org/standards/RiC/ontology#migratedFrom ; RiC-R015i ('migrated from' relation);inverse; https://www.ica.org/standards/RiC/ontology#migratedInto +https://www.ica.org/standards/RiC/ontology#migratedInto ; RiC-R015 ('migrated into' relation);; https://www.ica.org/standards/RiC/ontology#migratedFrom +https://www.ica.org/standards/RiC/ontology#migrationRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#occupiesOrOccupied ; RiC-R054 ('occupies or occupied' relation);; https://www.ica.org/standards/RiC/ontology#isOrWasOccupiedBy +https://www.ica.org/standards/RiC/ontology#occurredAtDate ; RiC-R084i ('occurred at date' relation);inverse; https://www.ica.org/standards/RiC/ontology#isDateOfOccurrenceOf +https://www.ica.org/standards/RiC/ontology#organicOrFunctionalProvenanceRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#organicProvenanceRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#overlapsOrOverlapped ; RiC-R078 ('overlaps or overlapped' relation);; +https://www.ica.org/standards/RiC/ontology#ownershipRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#performanceRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#performsOrPerformed ; RiC-R060i ('performs or performed' relation);inverse; https://www.ica.org/standards/RiC/ontology#isOrWasPerformedBy +https://www.ica.org/standards/RiC/ontology#placeRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#positionHoldingRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#positionIsContextOfLeadershipRelation ;;; https://www.ica.org/standards/RiC/ontology#leadershipWithPosition +https://www.ica.org/standards/RiC/ontology#positionIsContextOfMembershipRelation ;;; https://www.ica.org/standards/RiC/ontology#membershipWithPosition +https://www.ica.org/standards/RiC/ontology#positionToGroupRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#precededInSequence ;;; https://www.ica.org/standards/RiC/ontology#followedInSequence +https://www.ica.org/standards/RiC/ontology#precedesInSequenceTransitive ;;; https://www.ica.org/standards/RiC/ontology#followsInSequenceTransitive +https://www.ica.org/standards/RiC/ontology#precedesInTime ; RiC-R009 ('precedes in time' relation);; https://www.ica.org/standards/RiC/ontology#followsInTime +https://www.ica.org/standards/RiC/ontology#precedesOrPreceded ; RiC-R008 ('precedes or preceded' relation);; https://www.ica.org/standards/RiC/ontology#followsOrFollowed +https://www.ica.org/standards/RiC/ontology#proxyFor ;;; +https://www.ica.org/standards/RiC/ontology#proxyIn ;;; +https://www.ica.org/standards/RiC/ontology#recordResourceGeneticRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#recordResourceHoldingRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#recordResourceToInstantiationRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#recordResourceToRecordResourceRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#regulatesOrRegulated ; RiC-R063 ('regulates or regulated' relation);; https://www.ica.org/standards/RiC/ontology#isOrWasRegulatedBy +https://www.ica.org/standards/RiC/ontology#relationConnects ;;; https://www.ica.org/standards/RiC/ontology#thingIsConnectedToRelation +https://www.ica.org/standards/RiC/ontology#relationHasContext ;;; https://www.ica.org/standards/RiC/ontology#thingIsContextOfRelation +https://www.ica.org/standards/RiC/ontology#relationHasSource ;;; https://www.ica.org/standards/RiC/ontology#thingIsSourceOfRelation +https://www.ica.org/standards/RiC/ontology#relationHasTarget ;;; https://www.ica.org/standards/RiC/ontology#thingIsTargetOfRelation +https://www.ica.org/standards/RiC/ontology#relation_role ;;; +https://www.ica.org/standards/RiC/ontology#resultedFromTheMergerOf ;;; https://www.ica.org/standards/RiC/ontology#wasMergedInto +https://www.ica.org/standards/RiC/ontology#resultedFromTheSplitOf ;;; https://www.ica.org/standards/RiC/ontology#wasSplitInto +https://www.ica.org/standards/RiC/ontology#resultsOrResultedFrom ; RiC-R061i ('results or resulted from' relation);inverse; https://www.ica.org/standards/RiC/ontology#resultsOrResultedIn +https://www.ica.org/standards/RiC/ontology#resultsOrResultedIn ; RiC-R061 ('results or resulted in' relation);; https://www.ica.org/standards/RiC/ontology#resultsOrResultedFrom +https://www.ica.org/standards/RiC/ontology#roleIsContextOfCreationRelation ;;; https://www.ica.org/standards/RiC/ontology#creationWithRole +https://www.ica.org/standards/RiC/ontology#ruleRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#sequentialRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#siblingRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#spouseRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#teachingRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#temporalRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#thingIsConnectedToRelation ;;; https://www.ica.org/standards/RiC/ontology#relationConnects +https://www.ica.org/standards/RiC/ontology#thingIsContextOfRelation ;;; https://www.ica.org/standards/RiC/ontology#relationHasContext +https://www.ica.org/standards/RiC/ontology#thingIsSourceOfRelation ;;; https://www.ica.org/standards/RiC/ontology#relationHasSource +https://www.ica.org/standards/RiC/ontology#thingIsTargetOfRelation ;;; https://www.ica.org/standards/RiC/ontology#relationHasTarget +http://www.w3.org/2004/02/skos/core#topConceptOf ;;; http://www.w3.org/2004/02/skos/core#hasTopConcept +https://www.ica.org/standards/RiC/ontology#typeRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#wasComponentOf ;;; https://www.ica.org/standards/RiC/ontology#hadComponent +https://www.ica.org/standards/RiC/ontology#wasConstituentOf ;;; https://www.ica.org/standards/RiC/ontology#hadConstituent +https://www.ica.org/standards/RiC/ontology#wasContainedBy ;;; https://www.ica.org/standards/RiC/ontology#contained +https://www.ica.org/standards/RiC/ontology#wasIncludedIn ;;; https://www.ica.org/standards/RiC/ontology#included +https://www.ica.org/standards/RiC/ontology#wasLastUpdatedAtDate ;;; https://www.ica.org/standards/RiC/ontology#isLastUpdateDateOf +https://www.ica.org/standards/RiC/ontology#wasMergedInto ;;; https://www.ica.org/standards/RiC/ontology#resultedFromTheMergerOf +https://www.ica.org/standards/RiC/ontology#wasPartOf ;;; https://www.ica.org/standards/RiC/ontology#hadPart +https://www.ica.org/standards/RiC/ontology#wasSplitInto ;;; https://www.ica.org/standards/RiC/ontology#resultedFromTheSplitOf +https://www.ica.org/standards/RiC/ontology#wasSubdivisionOf ;;; https://www.ica.org/standards/RiC/ontology#hadSubdivision +https://www.ica.org/standards/RiC/ontology#wasSubeventOf ;;; https://www.ica.org/standards/RiC/ontology#hadSubevent +https://www.ica.org/standards/RiC/ontology#wasSubordinateTo ;;; https://www.ica.org/standards/RiC/ontology#hadSubordinate +https://www.ica.org/standards/RiC/ontology#wasUsedFromDate ;;; https://www.ica.org/standards/RiC/ontology#isFromUseDateOf +https://www.ica.org/standards/RiC/ontology#wasUsedToDate ;;; https://www.ica.org/standards/RiC/ontology#isToUseDateOf +https://www.ica.org/standards/RiC/ontology#wholePartRelation_role ;;; +https://www.ica.org/standards/RiC/ontology#workRelation_role ;;; diff --git a/Doc/InverseProperty/inverse.txt b/Doc/InverseProperty/inverse.txt new file mode 100644 index 00000000..11c0fa0c --- /dev/null +++ b/Doc/InverseProperty/inverse.txt @@ -0,0 +1,403 @@ +https://www.ica.org/standards/RiC/ontology#accumulationRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#activityDocumentationRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#activityIsContextOfRelation ; https://www.ica.org/standards/RiC/ontology#asConcernsActivity ; +https://www.ica.org/standards/RiC/ontology#affectsOrAffected ; https://www.ica.org/standards/RiC/ontology#isOrWasAffectedBy ; RiC-R059 ('affects or affected' relation) +https://www.ica.org/standards/RiC/ontology#agentControlRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#agentHasOrHadLocation ; https://www.ica.org/standards/RiC/ontology#isOrWasLocationOfAgent ; +https://www.ica.org/standards/RiC/ontology#agentHierarchicalRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#agentTemporalRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#agentToAgentRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#appellationRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#asConcernsActivity ; https://www.ica.org/standards/RiC/ontology#activityIsContextOfRelation ; +https://www.ica.org/standards/RiC/ontology#authorityRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#authorizedBy ; https://www.ica.org/standards/RiC/ontology#authorizes ; RiC-R067i ('authorizedBy' relation) +https://www.ica.org/standards/RiC/ontology#authorizes ; https://www.ica.org/standards/RiC/ontology#authorizedBy ; RiC-R067 ('authorizes' relation) +https://www.ica.org/standards/RiC/ontology#authorizingAgent ; https://www.ica.org/standards/RiC/ontology#isAuthorizingAgentInMandateRelation ; +https://www.ica.org/standards/RiC/ontology#authorshipRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#childRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#contained ; https://www.ica.org/standards/RiC/ontology#wasContainedBy ; +https://www.ica.org/standards/RiC/ontology#containsOrContained ; https://www.ica.org/standards/RiC/ontology#isOrWasContainedBy ; RiC-R007 ('contains or contained' relation) +https://www.ica.org/standards/RiC/ontology#containsTransitive ; https://www.ica.org/standards/RiC/ontology#isContainedByTransitive ; +https://www.ica.org/standards/RiC/ontology#correspondenceRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#creationRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#creationWithRole ; https://www.ica.org/standards/RiC/ontology#roleIsContextOfCreationRelation ; +https://www.ica.org/standards/RiC/ontology#derivationRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#descendanceRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#describesOrDescribed ; https://www.ica.org/standards/RiC/ontology#isOrWasDescribedBy ; RiC-R021 ('describes or described' relation) +https://www.ica.org/standards/RiC/ontology#directlyContains ; https://www.ica.org/standards/RiC/ontology#isDirectlyContainedBy ; +https://www.ica.org/standards/RiC/ontology#directlyFollowsInSequence ; https://www.ica.org/standards/RiC/ontology#directlyPrecedesInSequence ; +https://www.ica.org/standards/RiC/ontology#directlyIncludes ; https://www.ica.org/standards/RiC/ontology#isDirectlyIncludedIn ; +https://www.ica.org/standards/RiC/ontology#directlyPrecedesInSequence ; https://www.ica.org/standards/RiC/ontology#directlyFollowsInSequence ; +https://www.ica.org/standards/RiC/ontology#documentedBy ; https://www.ica.org/standards/RiC/ontology#documents ; RiC-R033i ('documented by' relation) +https://www.ica.org/standards/RiC/ontology#documents ; https://www.ica.org/standards/RiC/ontology#documentedBy ; RiC-R033 ('documents' relation) +https://www.ica.org/standards/RiC/ontology#eventRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#evidences ; https://www.ica.org/standards/RiC/ontology#isEvidencedBy ; Inverse of 'is evidenced by' object property. +https://www.ica.org/standards/RiC/ontology#existsOrExistedIn ; https://www.ica.org/standards/RiC/ontology#hasOrHadPosition ; RiC-R056 ('exists or existed in' relation) +https://www.ica.org/standards/RiC/ontology#expressesOrExpressed ; https://www.ica.org/standards/RiC/ontology#isOrWasExpressedBy ; RiC-R064i ('expresses or expressed' relation) +https://www.ica.org/standards/RiC/ontology#familyRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#followedInSequence ; https://www.ica.org/standards/RiC/ontology#precededInSequence ; +https://www.ica.org/standards/RiC/ontology#followsInSequenceTransitive ; https://www.ica.org/standards/RiC/ontology#precedesInSequenceTransitive ; +https://www.ica.org/standards/RiC/ontology#followsInTime ; https://www.ica.org/standards/RiC/ontology#precedesInTime ; RiC-R009i ('follows in time' relation) +https://www.ica.org/standards/RiC/ontology#followsOrFollowed ; https://www.ica.org/standards/RiC/ontology#precedesOrPreceded ; RiC-R008i ('follows or followed' relation) +https://www.ica.org/standards/RiC/ontology#functionalEquivalenceRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#groupSubdivisionRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#hadComponent ; https://www.ica.org/standards/RiC/ontology#wasComponentOf ; +https://www.ica.org/standards/RiC/ontology#hadConstituent ; https://www.ica.org/standards/RiC/ontology#wasConstituentOf ; +https://www.ica.org/standards/RiC/ontology#hadPart ; https://www.ica.org/standards/RiC/ontology#wasPartOf ; +https://www.ica.org/standards/RiC/ontology#hadSubdivision ; https://www.ica.org/standards/RiC/ontology#wasSubdivisionOf ; +https://www.ica.org/standards/RiC/ontology#hadSubevent ; https://www.ica.org/standards/RiC/ontology#wasSubeventOf ; +https://www.ica.org/standards/RiC/ontology#hadSubordinate ; https://www.ica.org/standards/RiC/ontology#wasSubordinateTo ; +https://www.ica.org/standards/RiC/ontology#hasAccumulator ; https://www.ica.org/standards/RiC/ontology#isAccumulatorOf ; RiC-R028 ('has accumulator' relation) +https://www.ica.org/standards/RiC/ontology#hasActivityType ; https://www.ica.org/standards/RiC/ontology#isActivityTypeOf ; +https://www.ica.org/standards/RiC/ontology#hasAddressee ; https://www.ica.org/standards/RiC/ontology#isAddresseeOf ; RiC-R032 ('has addressee' relation) +https://www.ica.org/standards/RiC/ontology#hasAncestor ; https://www.ica.org/standards/RiC/ontology#hasDescendant ; RiC-R017i (has ancestor relation) +https://www.ica.org/standards/RiC/ontology#hasAuthor ; https://www.ica.org/standards/RiC/ontology#isAuthorOf ; RiC-R079 ('has author' relation) +https://www.ica.org/standards/RiC/ontology#hasBeginningDate ; https://www.ica.org/standards/RiC/ontology#isBeginningDateOf ; RiC-R069i ('has beginning date' relation) +https://www.ica.org/standards/RiC/ontology#hasBirthDate ; https://www.ica.org/standards/RiC/ontology#isBirthDateOf ; RiC-R070i ('has birth date' relation) +https://www.ica.org/standards/RiC/ontology#hasBirthPlace ; https://www.ica.org/standards/RiC/ontology#isBirthPlaceOf ; +https://www.ica.org/standards/RiC/ontology#hasCarrierType ; https://www.ica.org/standards/RiC/ontology#isCarrierTypeOf ; +https://www.ica.org/standards/RiC/ontology#hasChild ; https://www.ica.org/standards/RiC/ontology#isChildOf ; RiC-R018 ('has child' relation) +https://www.ica.org/standards/RiC/ontology#hasCollector ; https://www.ica.org/standards/RiC/ontology#isCollectorOf ; RiC-R030 ('has collector' relation) +https://www.ica.org/standards/RiC/ontology#hasComponentTransitive ; https://www.ica.org/standards/RiC/ontology#isComponentOfTransitive ; +https://www.ica.org/standards/RiC/ontology#hasConstituentTransitive ; https://www.ica.org/standards/RiC/ontology#isConstituentOfTransitive ; +https://www.ica.org/standards/RiC/ontology#hasContentOfType ; https://www.ica.org/standards/RiC/ontology#isContentTypeOf ; +https://www.ica.org/standards/RiC/ontology#hasCopy ; https://www.ica.org/standards/RiC/ontology#isCopyOf ; RiC-R012 ('has copy' relation) +https://www.ica.org/standards/RiC/ontology#hasCreationDate ; https://www.ica.org/standards/RiC/ontology#isCreationDateOf ; RiC-R080i ('has creation date' relation) +https://www.ica.org/standards/RiC/ontology#hasCreator ; https://www.ica.org/standards/RiC/ontology#isCreatorOf ; RiC-R027 ('has creator' relation) +https://www.ica.org/standards/RiC/ontology#hasDateType ; https://www.ica.org/standards/RiC/ontology#isDateTypeOf ; +https://www.ica.org/standards/RiC/ontology#hasDeathDate ; https://www.ica.org/standards/RiC/ontology#isDeathDateOf ; RiC-R072i ('has death date' relation) +https://www.ica.org/standards/RiC/ontology#hasDeathPlace ; https://www.ica.org/standards/RiC/ontology#isDeathPlaceOf ; +https://www.ica.org/standards/RiC/ontology#hasDescendant ; https://www.ica.org/standards/RiC/ontology#hasAncestor ; RiC-R017 ('has descendant' relation) +https://www.ica.org/standards/RiC/ontology#hasDestructionDate ; https://www.ica.org/standards/RiC/ontology#isDestructionDateOf ; +https://www.ica.org/standards/RiC/ontology#hasDirectComponent ; https://www.ica.org/standards/RiC/ontology#isDirectComponentOf ; +https://www.ica.org/standards/RiC/ontology#hasDirectConstituent ; https://www.ica.org/standards/RiC/ontology#isDirectConstituentOf ; +https://www.ica.org/standards/RiC/ontology#hasDirectPart ; https://www.ica.org/standards/RiC/ontology#isDirectPartOf ; +https://www.ica.org/standards/RiC/ontology#hasDirectSubdivision ; https://www.ica.org/standards/RiC/ontology#isDirectSubdivisionOf ; +https://www.ica.org/standards/RiC/ontology#hasDirectSubevent ; https://www.ica.org/standards/RiC/ontology#isDirectSubeventOf ; +https://www.ica.org/standards/RiC/ontology#hasDirectSubordinate ; https://www.ica.org/standards/RiC/ontology#isDirectSubordinateTo ; +https://www.ica.org/standards/RiC/ontology#hasDocumentaryFormType ; https://www.ica.org/standards/RiC/ontology#isDocumentaryFormTypeOf ; +https://www.ica.org/standards/RiC/ontology#hasDraft ; https://www.ica.org/standards/RiC/ontology#isDraftOf ; RiC-011i ('has draft' relation) +https://www.ica.org/standards/RiC/ontology#hasEndDate ; https://www.ica.org/standards/RiC/ontology#isEndDateOf ; RiC-R071i ('has end date' relation) +https://www.ica.org/standards/RiC/ontology#hasEventType ; https://www.ica.org/standards/RiC/ontology#isEventTypeOf ; +https://www.ica.org/standards/RiC/ontology#hasExtent ; https://www.ica.org/standards/RiC/ontology#isExtentOf ; +https://www.ica.org/standards/RiC/ontology#hasExtentType ; https://www.ica.org/standards/RiC/ontology#isExtentTypeOf ; +https://www.ica.org/standards/RiC/ontology#hasFamilyAssociationWith ; ; RiC-R047 ('has family association with' relation) +https://www.ica.org/standards/RiC/ontology#hasFamilyType ; https://www.ica.org/standards/RiC/ontology#isFamilyTypeOf ; +https://www.ica.org/standards/RiC/ontology#hasGeneticLinkToRecordResource ; ; RiC-R023 ('has genetic link to record resource' relation) +https://www.ica.org/standards/RiC/ontology#hasIdentifierType ; https://www.ica.org/standards/RiC/ontology#isIdentifierTypeOf ; +https://www.ica.org/standards/RiC/ontology#hasModificationDate ; https://www.ica.org/standards/RiC/ontology#isModificationDateOf ; RiC-R073i ('has modification date' relation) +https://www.ica.org/standards/RiC/ontology#hasOrHadAgentName ; https://www.ica.org/standards/RiC/ontology#isOrWasAgentNameOf ; +https://www.ica.org/standards/RiC/ontology#hasOrHadAllMembersWithCategory ; https://www.ica.org/standards/RiC/ontology#isOrWasCategoryOfAllMembersOf ; +https://www.ica.org/standards/RiC/ontology#hasOrHadAllMembersWithContentType ; https://www.ica.org/standards/RiC/ontology#isOrWasContentTypeOfAllMembersOf ; +https://www.ica.org/standards/RiC/ontology#hasOrHadAllMembersWithCreationDate ; https://www.ica.org/standards/RiC/ontology#isOrWasCreationDateOfAllMembersOf ; RiC-R081i ('has or had all members with creation date' relation) +https://www.ica.org/standards/RiC/ontology#hasOrHadAllMembersWithDocumentaryFormType ; https://www.ica.org/standards/RiC/ontology#isOrWasDocumentaryFormTypeOfAllMembersOf ; +https://www.ica.org/standards/RiC/ontology#hasOrHadAllMembersWithLanguage ; https://www.ica.org/standards/RiC/ontology#isOrWasLanguageOfAllMembersOf ; +https://www.ica.org/standards/RiC/ontology#hasOrHadAllMembersWithLegalStatus ; https://www.ica.org/standards/RiC/ontology#isOrWasLegalStatusOfAllMembersOf ; +https://www.ica.org/standards/RiC/ontology#hasOrHadAllMembersWithRecordState ; https://www.ica.org/standards/RiC/ontology#isOrWasRecordStateOfAllMembersOf ; +https://www.ica.org/standards/RiC/ontology#hasOrHadAnalogueInstantiation ; https://www.ica.org/standards/RiC/ontology#isOrWasAnalogueInstantiationOf ; +https://www.ica.org/standards/RiC/ontology#hasOrHadAppellation ; https://www.ica.org/standards/RiC/ontology#isOrWasAppellationOf ; +https://www.ica.org/standards/RiC/ontology#hasOrHadAuthorityOver ; https://www.ica.org/standards/RiC/ontology#isOrWasUnderAuthorityOf ; RiC-R036 ('has or had authority over' relation) +https://www.ica.org/standards/RiC/ontology#hasOrHadCategory ; https://www.ica.org/standards/RiC/ontology#isOrWasCategoryOf ; +https://www.ica.org/standards/RiC/ontology#hasOrHadComponent ; https://www.ica.org/standards/RiC/ontology#isOrWasComponentOf ; RiC-R004 ('has or had component' relation) +https://www.ica.org/standards/RiC/ontology#hasOrHadConstituent ; https://www.ica.org/standards/RiC/ontology#isOrWasConstituentOf ; RiC-R003 ('has or had constituent' relation) +https://www.ica.org/standards/RiC/ontology#hasOrHadController ; https://www.ica.org/standards/RiC/ontology#isOrWasControllerOf ; RiC-R041i ('has or had controller' relation) +https://www.ica.org/standards/RiC/ontology#hasOrHadCoordinates ; https://www.ica.org/standards/RiC/ontology#isOrWasCoordinatesOf ; +https://www.ica.org/standards/RiC/ontology#hasOrHadCorporateBodyType ; https://www.ica.org/standards/RiC/ontology#isOrWasCorporateBodyTypeOf ; +https://www.ica.org/standards/RiC/ontology#hasOrHadCorrespondent ; ; RiC-R052 ('has or had correspondent' relation) +https://www.ica.org/standards/RiC/ontology#hasOrHadDemographicGroup ; https://www.ica.org/standards/RiC/ontology#isOrWasDemographicGroupOf ; +https://www.ica.org/standards/RiC/ontology#hasOrHadDerivedInstantiation ; https://www.ica.org/standards/RiC/ontology#isOrWasDerivedFromInstantiation ; RiC-R014 ('has or had derived instantiation' relation) +https://www.ica.org/standards/RiC/ontology#hasOrHadDigitalInstantiation ; https://www.ica.org/standards/RiC/ontology#isOrWasDigitalInstantiationOf ; +https://www.ica.org/standards/RiC/ontology#hasOrHadEmployer ; https://www.ica.org/standards/RiC/ontology#isOrWasEmployerOf ; +https://www.ica.org/standards/RiC/ontology#hasOrHadHolder ; https://www.ica.org/standards/RiC/ontology#isOrWasHolderOf ; RiC-R039i ('has or had holder' relation) +https://www.ica.org/standards/RiC/ontology#hasOrHadIdentifier ; https://www.ica.org/standards/RiC/ontology#isOrWasIdentifierOf ; +https://www.ica.org/standards/RiC/ontology#hasOrHadInstantiation ; https://www.ica.org/standards/RiC/ontology#isOrWasInstantiationOf ; RiC-R025 ('has or had instantiation' relation) +https://www.ica.org/standards/RiC/ontology#hasOrHadIntellectualPropertyRightsHolder ; https://www.ica.org/standards/RiC/ontology#isOrWasHolderOfIntellectualPropertyRightsOf ; RiC-R040i ('has or had intellectual property rights holder ' relation) +https://www.ica.org/standards/RiC/ontology#hasOrHadJurisdiction ; https://www.ica.org/standards/RiC/ontology#isOrWasJurisdictionOf ; RiC-R076i ('has or had jurisdiction' relation) +https://www.ica.org/standards/RiC/ontology#hasOrHadLanguage ; https://www.ica.org/standards/RiC/ontology#isOrWasLanguageOf ; +https://www.ica.org/standards/RiC/ontology#hasOrHadLeader ; https://www.ica.org/standards/RiC/ontology#isOrWasLeaderOf ; RiC-R042i ('has or had leader' relation) +https://www.ica.org/standards/RiC/ontology#hasOrHadLegalStatus ; https://www.ica.org/standards/RiC/ontology#isOrWasLegalStatusOf ; +https://www.ica.org/standards/RiC/ontology#hasOrHadLocation ; https://www.ica.org/standards/RiC/ontology#isOrWasLocationOf ; RiC-R075i ('has or had location' relation) +https://www.ica.org/standards/RiC/ontology#hasOrHadMainSubject ; https://www.ica.org/standards/RiC/ontology#isOrWasMainSubjectOf ; RiC-R020 ('has or had main subject' relation) +https://www.ica.org/standards/RiC/ontology#hasOrHadManager ; https://www.ica.org/standards/RiC/ontology#isOrWasManagerOf ; RiC-R038i ('is or was managed by' relation) +https://www.ica.org/standards/RiC/ontology#hasOrHadMandateType ; https://www.ica.org/standards/RiC/ontology#isOrWasMandateTypeOf ; +https://www.ica.org/standards/RiC/ontology#hasOrHadMember ; https://www.ica.org/standards/RiC/ontology#isOrWasMemberOf ; RiC-R055 ('has or had member' relation) +https://www.ica.org/standards/RiC/ontology#hasOrHadMostMembersWithCreationDate ; https://www.ica.org/standards/RiC/ontology#isOrWasCreationDateOfMostMembersOf ; RiC-R083i ('has or had most members with creation date' relation) +https://www.ica.org/standards/RiC/ontology#hasOrHadName ; https://www.ica.org/standards/RiC/ontology#isOrWasNameOf ; +https://www.ica.org/standards/RiC/ontology#hasOrHadOccupationOfType ; https://www.ica.org/standards/RiC/ontology#isOrWasOccupationTypeOf ; +https://www.ica.org/standards/RiC/ontology#hasOrHadOwner ; https://www.ica.org/standards/RiC/ontology#isOrWasOwnerOf ; RiC-R037i ('has or had owner' relation) +https://www.ica.org/standards/RiC/ontology#hasOrHadPart ; https://www.ica.org/standards/RiC/ontology#isOrWasPartOf ; RiC-R002 ('has or had part' relation) +https://www.ica.org/standards/RiC/ontology#hasOrHadParticipant ; https://www.ica.org/standards/RiC/ontology#isOrWasParticipantIn ; RiC-R058 ('has or had participant' relation) +https://www.ica.org/standards/RiC/ontology#hasOrHadPhysicalLocation ; https://www.ica.org/standards/RiC/ontology#isOrWasPhysicalLocationOf ; +https://www.ica.org/standards/RiC/ontology#hasOrHadPlaceName ; https://www.ica.org/standards/RiC/ontology#isOrWasPlaceNameOf ; +https://www.ica.org/standards/RiC/ontology#hasOrHadPlaceType ; https://www.ica.org/standards/RiC/ontology#isOrWasPlaceTypeOf ; +https://www.ica.org/standards/RiC/ontology#hasOrHadPosition ; https://www.ica.org/standards/RiC/ontology#existsOrExistedIn ; RiC-R056i ('has or had position' relation) +https://www.ica.org/standards/RiC/ontology#hasOrHadRuleType ; https://www.ica.org/standards/RiC/ontology#isOrWasRuleTypeOf ; +https://www.ica.org/standards/RiC/ontology#hasOrHadSomeMembersWithCategory ; https://www.ica.org/standards/RiC/ontology#isOrWasCategoryOfSomeMembersOf ; +https://www.ica.org/standards/RiC/ontology#hasOrHadSomeMembersWithContentType ; https://www.ica.org/standards/RiC/ontology#isOrWasContentTypeOfSomeMembersOf ; +https://www.ica.org/standards/RiC/ontology#hasOrHadSomeMembersWithCreationDate ; https://www.ica.org/standards/RiC/ontology#isOrWasCreationDateOfSomeMembersOf ; RiC-R082i ('has or had some members with creation date' relation) +https://www.ica.org/standards/RiC/ontology#hasOrHadSomeMembersWithDocumentaryFormType ; https://www.ica.org/standards/RiC/ontology#isOrWasDocumentaryFormTypeOfSomeMembersOf ; +https://www.ica.org/standards/RiC/ontology#hasOrHadSomeMembersWithLanguage ; https://www.ica.org/standards/RiC/ontology#isOrWasLanguageOfSomeMembersOf ; +https://www.ica.org/standards/RiC/ontology#hasOrHadSomeMembersWithLegalStatus ; https://www.ica.org/standards/RiC/ontology#isOrWasLegalStatusOfSomeMembersOf ; +https://www.ica.org/standards/RiC/ontology#hasOrHadSomeMembersWithRecordState ; https://www.ica.org/standards/RiC/ontology#isOrWasRecordStateOfSomeMembersOf ; +https://www.ica.org/standards/RiC/ontology#hasOrHadSpouse ; ; RiC-R049 ('has or had spouse' relation) +https://www.ica.org/standards/RiC/ontology#hasOrHadStudent ; https://www.ica.org/standards/RiC/ontology#hasOrHadTeacher ; RiC-R053i ('has or had student' relation) +https://www.ica.org/standards/RiC/ontology#hasOrHadSubdivision ; https://www.ica.org/standards/RiC/ontology#isOrWasSubdivisionOf ; RiC-R005 ('has or had subdivision' relation) +https://www.ica.org/standards/RiC/ontology#hasOrHadSubevent ; https://www.ica.org/standards/RiC/ontology#isOrWasSubeventOf ; RiC-R006 ('has or had subevent' relation) +https://www.ica.org/standards/RiC/ontology#hasOrHadSubject ; https://www.ica.org/standards/RiC/ontology#isOrWasSubjectOf ; RiC-R019 ('has or had subject' relation) +https://www.ica.org/standards/RiC/ontology#hasOrHadSubordinate ; https://www.ica.org/standards/RiC/ontology#isOrWasSubordinateTo ; RiC-R045 ('has or had subordinate ' relation) +https://www.ica.org/standards/RiC/ontology#hasOrHadTeacher ; https://www.ica.org/standards/RiC/ontology#hasOrHadStudent ; RiC-R053 ('has or had teacher' relation) +https://www.ica.org/standards/RiC/ontology#hasOrHadTitle ; https://www.ica.org/standards/RiC/ontology#isOrWasTitleOf ; +https://www.ica.org/standards/RiC/ontology#hasOrHadWorkRelationWith ; ; RiC-R046 ('has or had work relation with' relation) +https://www.ica.org/standards/RiC/ontology#hasOrganicOrFunctionalProvenance ; https://www.ica.org/standards/RiC/ontology#isOrganicOrFunctionalProvenanceOf ; +https://www.ica.org/standards/RiC/ontology#hasOrganicProvenance ; https://www.ica.org/standards/RiC/ontology#isOrganicProvenanceOf ; RiC-R026 ('has provenance' relation) +https://www.ica.org/standards/RiC/ontology#hasOriginal ; https://www.ica.org/standards/RiC/ontology#isOriginalOf ; RiC-R010i ('is original of' relation) +https://www.ica.org/standards/RiC/ontology#hasPartTransitive ; https://www.ica.org/standards/RiC/ontology#isPartOfTransitive ; +https://www.ica.org/standards/RiC/ontology#hasProductionTechniqueType ; https://www.ica.org/standards/RiC/ontology#isProductionTechniqueTypeOf ; +https://www.ica.org/standards/RiC/ontology#hasPublicationDate ; https://www.ica.org/standards/RiC/ontology#isPublicationDateOf ; +https://www.ica.org/standards/RiC/ontology#hasPublisher ; https://www.ica.org/standards/RiC/ontology#isPublisherOf ; +https://www.ica.org/standards/RiC/ontology#hasReceiver ; https://www.ica.org/standards/RiC/ontology#isReceiverOf ; RiC-R029 ('has receiver' relation) +https://www.ica.org/standards/RiC/ontology#hasRecordSetType ; https://www.ica.org/standards/RiC/ontology#isRecordSetTypeOf ; +https://www.ica.org/standards/RiC/ontology#hasRecordState ; https://www.ica.org/standards/RiC/ontology#isRecordStateOf ; +https://www.ica.org/standards/RiC/ontology#hasReply ; https://www.ica.org/standards/RiC/ontology#isReplyTo ; RiC-R013 ('has reply' relation) +https://www.ica.org/standards/RiC/ontology#hasRepresentationType ; https://www.ica.org/standards/RiC/ontology#isRepresentationTypeOf ; +https://www.ica.org/standards/RiC/ontology#hasSender ; https://www.ica.org/standards/RiC/ontology#isSenderOf ; RiC-R031 ('has sender' relation) +https://www.ica.org/standards/RiC/ontology#hasSibling ; ; RiC-R048 ('has sibling' relation) +https://www.ica.org/standards/RiC/ontology#hasSubdivisionTransitive ; https://www.ica.org/standards/RiC/ontology#isSubdivisionOfTransitive ; +https://www.ica.org/standards/RiC/ontology#hasSubeventTransitive ; https://www.ica.org/standards/RiC/ontology#isSubeventOfTransitive ; +https://www.ica.org/standards/RiC/ontology#hasSubordinateTransitive ; https://www.ica.org/standards/RiC/ontology#isSubordinateToTransitive ; +https://www.ica.org/standards/RiC/ontology#hasSuccessor ; https://www.ica.org/standards/RiC/ontology#isSuccessorOf ; RIC-R016 ('has successor' relation) +http://www.w3.org/2004/02/skos/core#hasTopConcept ; http://www.w3.org/2004/02/skos/core#topConceptOf ; +https://www.ica.org/standards/RiC/ontology#hasUnitOfMeasurement ; https://www.ica.org/standards/RiC/ontology#isUnitOfMeasurementOf ; +https://www.ica.org/standards/RiC/ontology#hasWithin ; https://www.ica.org/standards/RiC/ontology#isWithin ; RiC-R085i ('has within' relation) +https://www.ica.org/standards/RiC/ontology#included ; https://www.ica.org/standards/RiC/ontology#wasIncludedIn ; +https://www.ica.org/standards/RiC/ontology#includesOrIncluded ; https://www.ica.org/standards/RiC/ontology#isOrWasIncludedIn ; RiC-R024 ('includes or included' relation) +https://www.ica.org/standards/RiC/ontology#includesTransitive ; https://www.ica.org/standards/RiC/ontology#isIncludedInTransitive ; +http://www.w3.org/2004/02/skos/core#inScheme ; ; +https://www.ica.org/standards/RiC/ontology#instantiationToInstantiationRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#intellectualPropertyRightsRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#intersects ; ; RiC-R086 ('intersects' relation) +https://www.ica.org/standards/RiC/ontology#isAccumulatorOf ; https://www.ica.org/standards/RiC/ontology#hasAccumulator ; RiC-R028i ('is accumulator of' relation) +https://www.ica.org/standards/RiC/ontology#isActivityTypeOf ; https://www.ica.org/standards/RiC/ontology#hasActivityType ; +https://www.ica.org/standards/RiC/ontology#isAddresseeOf ; https://www.ica.org/standards/RiC/ontology#hasAddressee ; RiC-032i ('is addressee of' relation) +https://www.ica.org/standards/RiC/ontology#isAgentAssociatedWithAgent ; ; RiC-R044 ('is agent associated with agent' relation) +https://www.ica.org/standards/RiC/ontology#isAgentAssociatedWithPlace ; https://www.ica.org/standards/RiC/ontology#isPlaceAssociatedWithAgent ; +https://www.ica.org/standards/RiC/ontology#isAssociatedWithDate ; https://www.ica.org/standards/RiC/ontology#isDateAssociatedWith ; RiC-R068i ('is associated with date' relation) +https://www.ica.org/standards/RiC/ontology#isAssociatedWithEvent ; https://www.ica.org/standards/RiC/ontology#isEventAssociatedWith ; RiC-R057i ('is associated with event' relation) +https://www.ica.org/standards/RiC/ontology#isAssociatedWithPlace ; https://www.ica.org/standards/RiC/ontology#isPlaceAssociatedWith ; RiC-R074i ('is associated with place' relation) +https://www.ica.org/standards/RiC/ontology#isAssociatedWithRule ; https://www.ica.org/standards/RiC/ontology#isRuleAssociatedWith ; RiC-R062i ('is associated with rule' relation) +https://www.ica.org/standards/RiC/ontology#isAuthorOf ; https://www.ica.org/standards/RiC/ontology#hasAuthor ; RiC-R079i ('is author of' relation) +https://www.ica.org/standards/RiC/ontology#isAuthorizingAgentInMandateRelation ; https://www.ica.org/standards/RiC/ontology#authorizingAgent ; +https://www.ica.org/standards/RiC/ontology#isBeginningDateOf ; https://www.ica.org/standards/RiC/ontology#hasBeginningDate ; RiC-R069 ('is beginning date of' relation) +https://www.ica.org/standards/RiC/ontology#isBirthDateOf ; https://www.ica.org/standards/RiC/ontology#hasBirthDate ; RiC-R070 ('is birth date of' relation) +https://www.ica.org/standards/RiC/ontology#isBirthPlaceOf ; https://www.ica.org/standards/RiC/ontology#hasBirthPlace ; +https://www.ica.org/standards/RiC/ontology#isCarrierTypeOf ; https://www.ica.org/standards/RiC/ontology#hasCarrierType ; +https://www.ica.org/standards/RiC/ontology#isChildOf ; https://www.ica.org/standards/RiC/ontology#hasChild ; RiC-R018i ('is child of' relation) +https://www.ica.org/standards/RiC/ontology#isCollectorOf ; https://www.ica.org/standards/RiC/ontology#hasCollector ; RiC-R030i ('is collector of' relation) +https://www.ica.org/standards/RiC/ontology#isComponentOfTransitive ; https://www.ica.org/standards/RiC/ontology#hasComponentTransitive ; +https://www.ica.org/standards/RiC/ontology#isConstituentOfTransitive ; https://www.ica.org/standards/RiC/ontology#hasConstituentTransitive ; +https://www.ica.org/standards/RiC/ontology#isContainedByTransitive ; https://www.ica.org/standards/RiC/ontology#containsTransitive ; +https://www.ica.org/standards/RiC/ontology#isContentTypeOf ; https://www.ica.org/standards/RiC/ontology#hasContentOfType ; +https://www.ica.org/standards/RiC/ontology#isCopyOf ; https://www.ica.org/standards/RiC/ontology#hasCopy ; RiC-R012i ('is copy of' relation) +https://www.ica.org/standards/RiC/ontology#isCreationDateOf ; https://www.ica.org/standards/RiC/ontology#hasCreationDate ; RiC-R080 ('is creation date of' relation) +https://www.ica.org/standards/RiC/ontology#isCreatorOf ; https://www.ica.org/standards/RiC/ontology#hasCreator ; RiC-R027i ('is creator of 'relation') +https://www.ica.org/standards/RiC/ontology#isDateAssociatedWith ; https://www.ica.org/standards/RiC/ontology#isAssociatedWithDate ; RiC-R068 ('is date associated with' relation) +https://www.ica.org/standards/RiC/ontology#isDateOfOccurrenceOf ; https://www.ica.org/standards/RiC/ontology#occurredAtDate ; RiC-R084 ('is date of occurrence of' relation) +https://www.ica.org/standards/RiC/ontology#isDateTypeOf ; https://www.ica.org/standards/RiC/ontology#hasDateType ; +https://www.ica.org/standards/RiC/ontology#isDeathDateOf ; https://www.ica.org/standards/RiC/ontology#hasDeathDate ; RiC-R072 ('is death date of' relation) +https://www.ica.org/standards/RiC/ontology#isDeathPlaceOf ; https://www.ica.org/standards/RiC/ontology#hasDeathPlace ; +https://www.ica.org/standards/RiC/ontology#isDestructionDateOf ; https://www.ica.org/standards/RiC/ontology#hasDestructionDate ; +https://www.ica.org/standards/RiC/ontology#isDirectComponentOf ; https://www.ica.org/standards/RiC/ontology#hasDirectComponent ; +https://www.ica.org/standards/RiC/ontology#isDirectConstituentOf ; https://www.ica.org/standards/RiC/ontology#hasDirectConstituent ; +https://www.ica.org/standards/RiC/ontology#isDirectPartOf ; https://www.ica.org/standards/RiC/ontology#hasDirectPart ; +https://www.ica.org/standards/RiC/ontology#isDirectSubdivisionOf ; https://www.ica.org/standards/RiC/ontology#hasDirectSubdivision ; +https://www.ica.org/standards/RiC/ontology#isDirectSubeventOf ; https://www.ica.org/standards/RiC/ontology#hasDirectSubevent ; +https://www.ica.org/standards/RiC/ontology#isDirectSubordinateTo ; https://www.ica.org/standards/RiC/ontology#hasDirectSubordinate ; +https://www.ica.org/standards/RiC/ontology#isDirectlyContainedBy ; https://www.ica.org/standards/RiC/ontology#directlyContains ; +https://www.ica.org/standards/RiC/ontology#isDirectlyIncludedIn ; https://www.ica.org/standards/RiC/ontology#directlyIncludes ; +https://www.ica.org/standards/RiC/ontology#isDocumentaryFormTypeOf ; https://www.ica.org/standards/RiC/ontology#hasDocumentaryFormType ; +https://www.ica.org/standards/RiC/ontology#isDraftOf ; https://www.ica.org/standards/RiC/ontology#hasDraft ; RiC-R011 ('is draft of' relation) +https://www.ica.org/standards/RiC/ontology#isEndDateOf ; https://www.ica.org/standards/RiC/ontology#hasEndDate ; RiC-R071 ('is end date of' relation) +https://www.ica.org/standards/RiC/ontology#isEquivalentTo ; ; +https://www.ica.org/standards/RiC/ontology#isEventAssociatedWith ; https://www.ica.org/standards/RiC/ontology#isAssociatedWithEvent ; RiC-R057 ('is event associated with' relation) +https://www.ica.org/standards/RiC/ontology#isEventTypeOf ; https://www.ica.org/standards/RiC/ontology#hasEventType ; +https://www.ica.org/standards/RiC/ontology#isEvidencedBy ; https://www.ica.org/standards/RiC/ontology#evidences ; Object property implementation of RiC-RA05 (Source of Relation attribute). +https://www.ica.org/standards/RiC/ontology#isExtentOf ; https://www.ica.org/standards/RiC/ontology#hasExtent ; +https://www.ica.org/standards/RiC/ontology#isExtentTypeOf ; https://www.ica.org/standards/RiC/ontology#hasExtentType ; +https://www.ica.org/standards/RiC/ontology#isFamilyTypeOf ; https://www.ica.org/standards/RiC/ontology#hasFamilyType ; +https://www.ica.org/standards/RiC/ontology#isFromUseDateOf ; https://www.ica.org/standards/RiC/ontology#wasUsedFromDate ; +https://www.ica.org/standards/RiC/ontology#isFunctionallyEquivalentTo ; ; RiC-R035 ('is functionally equivalent to' relation) +https://www.ica.org/standards/RiC/ontology#isIdentifierTypeOf ; https://www.ica.org/standards/RiC/ontology#hasIdentifierType ; +https://www.ica.org/standards/RiC/ontology#isIncludedInTransitive ; https://www.ica.org/standards/RiC/ontology#includesTransitive ; +https://www.ica.org/standards/RiC/ontology#isInstantiationAssociatedWithInstantiation ; ; RiC-R034 ('is instantiation associated with instantiation' relation) +https://www.ica.org/standards/RiC/ontology#isLastUpdateDateOf ; https://www.ica.org/standards/RiC/ontology#wasLastUpdatedAtDate ; +https://www.ica.org/standards/RiC/ontology#isModificationDateOf ; https://www.ica.org/standards/RiC/ontology#hasModificationDate ; RiC-R073 ('is modification date of' relation) +https://www.ica.org/standards/RiC/ontology#isOrWasAdjacentTo ; ; RiC-R077 ('is or was adjacent to' relation) +https://www.ica.org/standards/RiC/ontology#isOrWasAffectedBy ; https://www.ica.org/standards/RiC/ontology#affectsOrAffected ; RiC-R059i ('is or was affected by' relation) +https://www.ica.org/standards/RiC/ontology#isOrWasAgentNameOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadAgentName ; +https://www.ica.org/standards/RiC/ontology#isOrWasAnalogueInstantiationOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadAnalogueInstantiation ; +https://www.ica.org/standards/RiC/ontology#isOrWasAppellationOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadAppellation ; +https://www.ica.org/standards/RiC/ontology#isOrWasCategoryOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadCategory ; +https://www.ica.org/standards/RiC/ontology#isOrWasCategoryOfAllMembersOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadAllMembersWithCategory ; +https://www.ica.org/standards/RiC/ontology#isOrWasCategoryOfSomeMembersOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadSomeMembersWithCategory ; +https://www.ica.org/standards/RiC/ontology#isOrWasComponentOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadComponent ; RiC-R004i ('is or was component of' relation) +https://www.ica.org/standards/RiC/ontology#isOrWasConstituentOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadConstituent ; RiC-R003i ('is or was constituent of' relation) +https://www.ica.org/standards/RiC/ontology#isOrWasContainedBy ; https://www.ica.org/standards/RiC/ontology#containsOrContained ; RiC-R007i ('is or was contained by' relation) +https://www.ica.org/standards/RiC/ontology#isOrWasContentTypeOfAllMembersOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadAllMembersWithContentType ; +https://www.ica.org/standards/RiC/ontology#isOrWasContentTypeOfSomeMembersOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadSomeMembersWithContentType ; +https://www.ica.org/standards/RiC/ontology#isOrWasControllerOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadController ; RiC-R041 ('is or was controller of' relation) +https://www.ica.org/standards/RiC/ontology#isOrWasCoordinatesOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadCoordinates ; +https://www.ica.org/standards/RiC/ontology#isOrWasCorporateBodyTypeOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadCorporateBodyType ; +https://www.ica.org/standards/RiC/ontology#isOrWasCreationDateOfAllMembersOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadAllMembersWithCreationDate ; RiC-R081 ('is or was creation date of all members of' relation) +https://www.ica.org/standards/RiC/ontology#isOrWasCreationDateOfMostMembersOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadMostMembersWithCreationDate ; RiC-R083 ('is or was creation date of most members of' relation) +https://www.ica.org/standards/RiC/ontology#isOrWasCreationDateOfSomeMembersOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadSomeMembersWithCreationDate ; RiC-R082 ('is or was creation date of some members of' relation) +https://www.ica.org/standards/RiC/ontology#isOrWasDemographicGroupOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadDemographicGroup ; +https://www.ica.org/standards/RiC/ontology#isOrWasDerivedFromInstantiation ; https://www.ica.org/standards/RiC/ontology#hasOrHadDerivedInstantiation ; RiC-R014i ('is or was derived from instantiation' relation) +https://www.ica.org/standards/RiC/ontology#isOrWasDescribedBy ; https://www.ica.org/standards/RiC/ontology#describesOrDescribed ; RiC-R021i ('is or was described by' relation) +https://www.ica.org/standards/RiC/ontology#isOrWasDigitalInstantiationOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadDigitalInstantiation ; +https://www.ica.org/standards/RiC/ontology#isOrWasDocumentaryFormTypeOfAllMembersOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadAllMembersWithDocumentaryFormType ; +https://www.ica.org/standards/RiC/ontology#isOrWasDocumentaryFormTypeOfSomeMembersOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadSomeMembersWithDocumentaryFormType ; +https://www.ica.org/standards/RiC/ontology#isOrWasEmployerOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadEmployer ; +https://www.ica.org/standards/RiC/ontology#isOrWasEnforcedBy ; https://www.ica.org/standards/RiC/ontology#isOrWasResponsibleForEnforcing ; RiC-R066 ('is or was enforced by' relation) +https://www.ica.org/standards/RiC/ontology#isOrWasExpressedBy ; https://www.ica.org/standards/RiC/ontology#expressesOrExpressed ; RiC-R064 ('is or was expressed by' relation) +https://www.ica.org/standards/RiC/ontology#isOrWasHolderOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadHolder ; RiC-R039 ('is or was holder of' relation) +https://www.ica.org/standards/RiC/ontology#isOrWasHolderOfIntellectualPropertyRightsOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadIntellectualPropertyRightsHolder ; RiC-R040 ('is or was holder of intellectual property rights of' relation) +https://www.ica.org/standards/RiC/ontology#isOrWasIdentifierOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadIdentifier ; +https://www.ica.org/standards/RiC/ontology#isOrWasIncludedIn ; https://www.ica.org/standards/RiC/ontology#includesOrIncluded ; RiC-R024i ('is or was included in' relation) +https://www.ica.org/standards/RiC/ontology#isOrWasInstantiationOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadInstantiation ; RiC-R025i ('is or was instantiation of' relation) +https://www.ica.org/standards/RiC/ontology#isOrWasJurisdictionOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadJurisdiction ; RiC-R076 ('is or was jurisdiction of' relation) +https://www.ica.org/standards/RiC/ontology#isOrWasLanguageOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadLanguage ; +https://www.ica.org/standards/RiC/ontology#isOrWasLanguageOfAllMembersOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadAllMembersWithLanguage ; +https://www.ica.org/standards/RiC/ontology#isOrWasLanguageOfSomeMembersOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadSomeMembersWithLanguage ; +https://www.ica.org/standards/RiC/ontology#isOrWasLeaderOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadLeader ; RiC-R042 ('is or was leader of' relation) +https://www.ica.org/standards/RiC/ontology#isOrWasLegalStatusOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadLegalStatus ; +https://www.ica.org/standards/RiC/ontology#isOrWasLegalStatusOfAllMembersOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadAllMembersWithLegalStatus ; +https://www.ica.org/standards/RiC/ontology#isOrWasLegalStatusOfSomeMembersOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadSomeMembersWithLegalStatus ; +https://www.ica.org/standards/RiC/ontology#isOrWasLocationOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadLocation ; RiC-R075 ('is or was location of' relation) +https://www.ica.org/standards/RiC/ontology#isOrWasLocationOfAgent ; https://www.ica.org/standards/RiC/ontology#agentHasOrHadLocation ; +https://www.ica.org/standards/RiC/ontology#isOrWasMainSubjectOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadMainSubject ; RiC-R020i ('is or was main subject of' relation) +https://www.ica.org/standards/RiC/ontology#isOrWasManagerOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadManager ; RiC-R038 ('is or was manager of' relation) +https://www.ica.org/standards/RiC/ontology#isOrWasMandateTypeOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadMandateType ; +https://www.ica.org/standards/RiC/ontology#isOrWasMemberOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadMember ; RiC-R055i ('is or was member of' relation) +https://www.ica.org/standards/RiC/ontology#isOrWasNameOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadName ; +https://www.ica.org/standards/RiC/ontology#isOrWasOccupationTypeOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadOccupationOfType ; +https://www.ica.org/standards/RiC/ontology#isOrWasOccupiedBy ; https://www.ica.org/standards/RiC/ontology#occupiesOrOccupied ; RiC-R054i ('is or was occupied by' relation) +https://www.ica.org/standards/RiC/ontology#isOrWasOwnerOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadOwner ; RiC-R037 ('is or was owner of' relation) +https://www.ica.org/standards/RiC/ontology#isOrWasPartOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadPart ; RiC-R002i ('is or was part of' relation) +https://www.ica.org/standards/RiC/ontology#isOrWasParticipantIn ; https://www.ica.org/standards/RiC/ontology#hasOrHadParticipant ; RiC-R058i ('is or was participant in' relation) +https://www.ica.org/standards/RiC/ontology#isOrWasPerformedBy ; https://www.ica.org/standards/RiC/ontology#performsOrPerformed ; RiC-R060 ('is or was performed by' relation) +https://www.ica.org/standards/RiC/ontology#isOrWasPhysicalLocationOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadPhysicalLocation ; +https://www.ica.org/standards/RiC/ontology#isOrWasPlaceNameOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadPlaceName ; +https://www.ica.org/standards/RiC/ontology#isOrWasPlaceTypeOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadPlaceType ; +https://www.ica.org/standards/RiC/ontology#isOrWasRecordStateOfAllMembersOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadAllMembersWithRecordState ; +https://www.ica.org/standards/RiC/ontology#isOrWasRecordStateOfSomeMembersOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadSomeMembersWithRecordState ; +https://www.ica.org/standards/RiC/ontology#isOrWasRegulatedBy ; https://www.ica.org/standards/RiC/ontology#regulatesOrRegulated ; RiC-R063i ('is or was regulated by' relation) +https://www.ica.org/standards/RiC/ontology#isOrWasResponsibleForEnforcing ; https://www.ica.org/standards/RiC/ontology#isOrWasEnforcedBy ; RiC-R066i ('is or was responsible for enforcing' relation) +https://www.ica.org/standards/RiC/ontology#isOrWasRuleTypeOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadRuleType ; +https://www.ica.org/standards/RiC/ontology#isOrWasSubdivisionOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadSubdivision ; RiC-R005i ('is or was subdivision' relation) +https://www.ica.org/standards/RiC/ontology#isOrWasSubeventOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadSubevent ; RiC-R006i ('is or was subevent of' relation) +https://www.ica.org/standards/RiC/ontology#isOrWasSubjectOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadSubject ; RIc-R019i ('is or was subject of' relation) +https://www.ica.org/standards/RiC/ontology#isOrWasSubordinateTo ; https://www.ica.org/standards/RiC/ontology#hasOrHadSubordinate ; RiC-R045i ('is or was subordinate to' relation) +https://www.ica.org/standards/RiC/ontology#isOrWasTitleOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadTitle ; +https://www.ica.org/standards/RiC/ontology#isOrWasUnderAuthorityOf ; https://www.ica.org/standards/RiC/ontology#hasOrHadAuthorityOver ; RiC-R036i ('is or was under authority of' relation) +https://www.ica.org/standards/RiC/ontology#isOrganicOrFunctionalProvenanceOf ; https://www.ica.org/standards/RiC/ontology#hasOrganicOrFunctionalProvenance ; +https://www.ica.org/standards/RiC/ontology#isOrganicProvenanceOf ; https://www.ica.org/standards/RiC/ontology#hasOrganicProvenance ; RiC-R026i ('is provenance of' relation) +https://www.ica.org/standards/RiC/ontology#isOriginalOf ; https://www.ica.org/standards/RiC/ontology#hasOriginal ; RiC-R010 (is original of relation) +https://www.ica.org/standards/RiC/ontology#isPartOfTransitive ; https://www.ica.org/standards/RiC/ontology#hasPartTransitive ; +https://www.ica.org/standards/RiC/ontology#isPlaceAssociatedWith ; https://www.ica.org/standards/RiC/ontology#isAssociatedWithPlace ; RiC-R074 ('is place associated with' relation) +https://www.ica.org/standards/RiC/ontology#isPlaceAssociatedWithAgent ; https://www.ica.org/standards/RiC/ontology#isAgentAssociatedWithPlace ; +https://www.ica.org/standards/RiC/ontology#isProductionTechniqueTypeOf ; https://www.ica.org/standards/RiC/ontology#hasProductionTechniqueType ; +https://www.ica.org/standards/RiC/ontology#isPublicationDateOf ; https://www.ica.org/standards/RiC/ontology#hasPublicationDate ; +https://www.ica.org/standards/RiC/ontology#isPublisherOf ; https://www.ica.org/standards/RiC/ontology#hasPublisher ; +https://www.ica.org/standards/RiC/ontology#isReceiverOf ; https://www.ica.org/standards/RiC/ontology#hasReceiver ; RiC-R029i ('is receiver of' relation) +https://www.ica.org/standards/RiC/ontology#isRecordResourceAssociatedWithRecordResource ; ; RiC-R022 ('is record resource associated with record resource' relation) +https://www.ica.org/standards/RiC/ontology#isRecordSetTypeOf ; https://www.ica.org/standards/RiC/ontology#hasRecordSetType ; +https://www.ica.org/standards/RiC/ontology#isRecordStateOf ; https://www.ica.org/standards/RiC/ontology#hasRecordState ; +https://www.ica.org/standards/RiC/ontology#isRelatedTo ; ; RiC-R001 ('is related to' relation) +https://www.ica.org/standards/RiC/ontology#isReplyTo ; https://www.ica.org/standards/RiC/ontology#hasReply ; RiC-R013i ('is reply to' relation) +https://www.ica.org/standards/RiC/ontology#isRepresentationTypeOf ; https://www.ica.org/standards/RiC/ontology#hasRepresentationType ; +https://www.ica.org/standards/RiC/ontology#isResponsibleForIssuing ; https://www.ica.org/standards/RiC/ontology#issuedBy ; RiC-R065i ('is responsible for issuing' relation) +https://www.ica.org/standards/RiC/ontology#isRuleAssociatedWith ; https://www.ica.org/standards/RiC/ontology#isAssociatedWithRule ; RiC-R062 ('is rule associated with' relation) +https://www.ica.org/standards/RiC/ontology#isSenderOf ; https://www.ica.org/standards/RiC/ontology#hasSender ; RiC-R031i ('is sender of' relation) +https://www.ica.org/standards/RiC/ontology#isSubdivisionOfTransitive ; https://www.ica.org/standards/RiC/ontology#hasSubdivisionTransitive ; +https://www.ica.org/standards/RiC/ontology#isSubeventOfTransitive ; https://www.ica.org/standards/RiC/ontology#hasSubeventTransitive ; +https://www.ica.org/standards/RiC/ontology#isSubordinateToTransitive ; https://www.ica.org/standards/RiC/ontology#hasSubordinateTransitive ; +https://www.ica.org/standards/RiC/ontology#isSuccessorOf ; https://www.ica.org/standards/RiC/ontology#hasSuccessor ; RiC-R016i ('is successor of' relation) +https://www.ica.org/standards/RiC/ontology#isToUseDateOf ; https://www.ica.org/standards/RiC/ontology#wasUsedToDate ; +https://www.ica.org/standards/RiC/ontology#isUnitOfMeasurementOf ; https://www.ica.org/standards/RiC/ontology#hasUnitOfMeasurement ; +https://www.ica.org/standards/RiC/ontology#isWithin ; https://www.ica.org/standards/RiC/ontology#hasWithin ; RiC-R085 ('is within' relation) +https://www.ica.org/standards/RiC/ontology#issuedBy ; https://www.ica.org/standards/RiC/ontology#isResponsibleForIssuing ; RiC-R065 ('issued by' relation) +https://www.ica.org/standards/RiC/ontology#knowingOfRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#knowingRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#knownBy ; https://www.ica.org/standards/RiC/ontology#knowsOf ; RiC-R050i ('known by' relation) +https://www.ica.org/standards/RiC/ontology#knows ; ; RiC-R051 ('knows' relation) +https://www.ica.org/standards/RiC/ontology#knowsOf ; https://www.ica.org/standards/RiC/ontology#knownBy ; RiC-R050 ('knows of' relation) +https://www.ica.org/standards/RiC/ontology#leadershipRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#leadershipWithPosition ; https://www.ica.org/standards/RiC/ontology#positionIsContextOfLeadershipRelation ; +https://www.ica.org/standards/RiC/ontology#managementRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#mandateRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#membershipRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#membershipWithPosition ; https://www.ica.org/standards/RiC/ontology#positionIsContextOfMembershipRelation ; +https://www.ica.org/standards/RiC/ontology#migratedFrom ; https://www.ica.org/standards/RiC/ontology#migratedInto ; RiC-R015i ('migrated from' relation) +https://www.ica.org/standards/RiC/ontology#migratedInto ; https://www.ica.org/standards/RiC/ontology#migratedFrom ; RiC-R015 ('migrated into' relation) +https://www.ica.org/standards/RiC/ontology#migrationRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#occupiesOrOccupied ; https://www.ica.org/standards/RiC/ontology#isOrWasOccupiedBy ; RiC-R054 ('occupies or occupied' relation) +https://www.ica.org/standards/RiC/ontology#occurredAtDate ; https://www.ica.org/standards/RiC/ontology#isDateOfOccurrenceOf ; RiC-R084i ('occurred at date' relation) +https://www.ica.org/standards/RiC/ontology#organicOrFunctionalProvenanceRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#organicProvenanceRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#overlapsOrOverlapped ; ; RiC-R078 ('overlaps or overlapped' relation) +https://www.ica.org/standards/RiC/ontology#ownershipRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#performanceRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#performsOrPerformed ; https://www.ica.org/standards/RiC/ontology#isOrWasPerformedBy ; RiC-R060i ('performs or performed' relation) +https://www.ica.org/standards/RiC/ontology#placeRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#positionHoldingRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#positionIsContextOfLeadershipRelation ; https://www.ica.org/standards/RiC/ontology#leadershipWithPosition ; +https://www.ica.org/standards/RiC/ontology#positionIsContextOfMembershipRelation ; https://www.ica.org/standards/RiC/ontology#membershipWithPosition ; +https://www.ica.org/standards/RiC/ontology#positionToGroupRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#precededInSequence ; https://www.ica.org/standards/RiC/ontology#followedInSequence ; +https://www.ica.org/standards/RiC/ontology#precedesInSequenceTransitive ; https://www.ica.org/standards/RiC/ontology#followsInSequenceTransitive ; +https://www.ica.org/standards/RiC/ontology#precedesInTime ; https://www.ica.org/standards/RiC/ontology#followsInTime ; RiC-R009 ('precedes in time' relation) +https://www.ica.org/standards/RiC/ontology#precedesOrPreceded ; https://www.ica.org/standards/RiC/ontology#followsOrFollowed ; RiC-R008 ('precedes or preceded' relation) +https://www.ica.org/standards/RiC/ontology#proxyFor ; ; +https://www.ica.org/standards/RiC/ontology#proxyIn ; ; +https://www.ica.org/standards/RiC/ontology#recordResourceGeneticRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#recordResourceHoldingRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#recordResourceToInstantiationRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#recordResourceToRecordResourceRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#regulatesOrRegulated ; https://www.ica.org/standards/RiC/ontology#isOrWasRegulatedBy ; RiC-R063 ('regulates or regulated' relation) +https://www.ica.org/standards/RiC/ontology#relationConnects ; https://www.ica.org/standards/RiC/ontology#thingIsConnectedToRelation ; +https://www.ica.org/standards/RiC/ontology#relationHasContext ; https://www.ica.org/standards/RiC/ontology#thingIsContextOfRelation ; +https://www.ica.org/standards/RiC/ontology#relationHasSource ; https://www.ica.org/standards/RiC/ontology#thingIsSourceOfRelation ; +https://www.ica.org/standards/RiC/ontology#relationHasTarget ; https://www.ica.org/standards/RiC/ontology#thingIsTargetOfRelation ; +https://www.ica.org/standards/RiC/ontology#relation_role ; ; +https://www.ica.org/standards/RiC/ontology#resultedFromTheMergerOf ; https://www.ica.org/standards/RiC/ontology#wasMergedInto ; +https://www.ica.org/standards/RiC/ontology#resultedFromTheSplitOf ; https://www.ica.org/standards/RiC/ontology#wasSplitInto ; +https://www.ica.org/standards/RiC/ontology#resultsOrResultedFrom ; https://www.ica.org/standards/RiC/ontology#resultsOrResultedIn ; RiC-R061i ('results or resulted from' relation) +https://www.ica.org/standards/RiC/ontology#resultsOrResultedIn ; https://www.ica.org/standards/RiC/ontology#resultsOrResultedFrom ; RiC-R061 ('results or resulted in' relation) +https://www.ica.org/standards/RiC/ontology#roleIsContextOfCreationRelation ; https://www.ica.org/standards/RiC/ontology#creationWithRole ; +https://www.ica.org/standards/RiC/ontology#ruleRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#sequentialRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#siblingRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#spouseRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#teachingRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#temporalRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#thingIsConnectedToRelation ; https://www.ica.org/standards/RiC/ontology#relationConnects ; +https://www.ica.org/standards/RiC/ontology#thingIsContextOfRelation ; https://www.ica.org/standards/RiC/ontology#relationHasContext ; +https://www.ica.org/standards/RiC/ontology#thingIsSourceOfRelation ; https://www.ica.org/standards/RiC/ontology#relationHasSource ; +https://www.ica.org/standards/RiC/ontology#thingIsTargetOfRelation ; https://www.ica.org/standards/RiC/ontology#relationHasTarget ; +http://www.w3.org/2004/02/skos/core#topConceptOf ; http://www.w3.org/2004/02/skos/core#hasTopConcept ; +https://www.ica.org/standards/RiC/ontology#typeRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#wasComponentOf ; https://www.ica.org/standards/RiC/ontology#hadComponent ; +https://www.ica.org/standards/RiC/ontology#wasConstituentOf ; https://www.ica.org/standards/RiC/ontology#hadConstituent ; +https://www.ica.org/standards/RiC/ontology#wasContainedBy ; https://www.ica.org/standards/RiC/ontology#contained ; +https://www.ica.org/standards/RiC/ontology#wasIncludedIn ; https://www.ica.org/standards/RiC/ontology#included ; +https://www.ica.org/standards/RiC/ontology#wasLastUpdatedAtDate ; https://www.ica.org/standards/RiC/ontology#isLastUpdateDateOf ; +https://www.ica.org/standards/RiC/ontology#wasMergedInto ; https://www.ica.org/standards/RiC/ontology#resultedFromTheMergerOf ; +https://www.ica.org/standards/RiC/ontology#wasPartOf ; https://www.ica.org/standards/RiC/ontology#hadPart ; +https://www.ica.org/standards/RiC/ontology#wasSplitInto ; https://www.ica.org/standards/RiC/ontology#resultedFromTheSplitOf ; +https://www.ica.org/standards/RiC/ontology#wasSubdivisionOf ; https://www.ica.org/standards/RiC/ontology#hadSubdivision ; +https://www.ica.org/standards/RiC/ontology#wasSubeventOf ; https://www.ica.org/standards/RiC/ontology#hadSubevent ; +https://www.ica.org/standards/RiC/ontology#wasSubordinateTo ; https://www.ica.org/standards/RiC/ontology#hadSubordinate ; +https://www.ica.org/standards/RiC/ontology#wasUsedFromDate ; https://www.ica.org/standards/RiC/ontology#isFromUseDateOf ; +https://www.ica.org/standards/RiC/ontology#wasUsedToDate ; https://www.ica.org/standards/RiC/ontology#isToUseDateOf ; +https://www.ica.org/standards/RiC/ontology#wholePartRelation_role ; ; +https://www.ica.org/standards/RiC/ontology#workRelation_role ; ; diff --git a/Doc/InverseProperty/run.sh b/Doc/InverseProperty/run.sh new file mode 100644 index 00000000..2fdb286b --- /dev/null +++ b/Doc/InverseProperty/run.sh @@ -0,0 +1,2 @@ +xml sel -I -N rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" -N rico="https://www.ica.org/standards/RiC/ontology#" -N owl="http://www.w3.org/2002/07/owl#" -t -m "//owl:ObjectProperty" -v 'concat(@rdf:about, " ; ", owl:inverseOf/@rdf:resource, " ; ", rico:RiCCMCorrespondingComponent, " +")' Backend/src/main/resources/ontologies/rico.rdf > Doc/inverse.txt diff --git a/Frontend/angular.json b/Frontend/angular.json index 68c47fff..da5eb2bd 100644 --- a/Frontend/angular.json +++ b/Frontend/angular.json @@ -20,36 +20,24 @@ "outputPath": "dist/frontend", "index": "src/index.html", "browser": "src/main.ts", - "polyfills": [ - "zone.js" - ], + "polyfills": ["zone.js"], "tsConfig": "tsconfig.app.json", "inlineStyleLanguage": "scss", - "assets": [ - { - "glob": "**/*", - "input": "public" - } - ], + "assets": [{ "glob": "**/*", "input": "public" }], "styles": [ "@angular/material/prebuilt-themes/azure-blue.css", "src/tailwind.css", "src/styles.scss" ], - "scripts": [], - "server": "src/main.server.ts", - "outputMode": "server", - "ssr": { - "entry": "src/server.ts" - } + "scripts": [] }, "configurations": { "production": { "budgets": [ { "type": "initial", - "maximumWarning": "500kB", - "maximumError": "1MB" + "maximumWarning": "1MB", + "maximumError": "2MB" }, { "type": "anyComponentStyle", diff --git a/Frontend/src/app/components/create-entity/create-entity.component.html b/Frontend/src/app/components/create-entity/create-entity.component.html new file mode 100644 index 00000000..b4776f5f --- /dev/null +++ b/Frontend/src/app/components/create-entity/create-entity.component.html @@ -0,0 +1,158 @@ +
+
+ + +
+ +
+ +
+ + + + {{selectedType.label}} + + + + + +
+ +
+ @if(dialogData.ontologiesData && !dialogData.type){ + + + + {{ getName(ontology) }} + + + + Other ontologies + + + + } +
+ + +
+ + +

Types are fetched from the RDF graph base.

+
+ + +
+ In Developement ... +
+ +
+ Entity type is required. +
+ +
+ + + +
+ + @if (dialogData.type || inputData ){ +
+ + +

+ {{ availableTypes }} +

+
+ } + + +
+ +
+
+ + +
+
+
+ + +
+ + +
+ +
+
\ No newline at end of file diff --git a/RDF_Back/projects/Test_Mehrez/store/txn-status b/Frontend/src/app/components/create-entity/create-entity.component.scss similarity index 100% rename from RDF_Back/projects/Test_Mehrez/store/txn-status rename to Frontend/src/app/components/create-entity/create-entity.component.scss diff --git a/Frontend/src/app/components/create-entity/create-entity.component.ts b/Frontend/src/app/components/create-entity/create-entity.component.ts new file mode 100644 index 00000000..48f57c9c --- /dev/null +++ b/Frontend/src/app/components/create-entity/create-entity.component.ts @@ -0,0 +1,317 @@ +import { Component, OnInit, Inject, Input, Output, EventEmitter, Optional, ChangeDetectorRef, inject } from '@angular/core'; +import { FormsModule, ReactiveFormsModule, FormBuilder, FormGroup, FormArray, Validators } from '@angular/forms'; +import { CommonModule } from '@angular/common'; +import { Entity } from '../../models/ressource'; + +import { EntityDetailsComponent } from '../entity-details/entity-details.component'; +import { GestionRessourcesService } from '../../services/gestion-ressources.service'; +import { RicoPropertiesComponent } from '../rico-properties/rico-properties.component'; +import {MatButtonToggleModule} from '@angular/material/button-toggle'; +import {MatIconModule} from '@angular/material/icon'; + +import { debounceTime } from 'rxjs'; +import { MatSnackBar, MatSnackBarModule } from '@angular/material/snack-bar'; +import { FileViewerComponent } from '../file-viewer/file-viewer.component'; +import { MatDialog } from '@angular/material/dialog'; + +import {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog'; +import {MatChipInputEvent, MatChipsModule} from '@angular/material/chips'; + +export type OntologyLabels = Record; + +export let ONTOLOGY_LABELS: OntologyLabels = { + "https://www.ica.org/standards/RiC/ontology#": "RIC-O", + "http://uspn.fr/app#": "Application", + "http://www.w3.org/2002/07/owl#": "OWL", + "http://www.w3.org/2000/01/rdf-schema#": "RDFS", + "http://purl.org/dc/terms/": "Dublin Core", + "https://schema.org/": "schema", + "http://purl.org/dc/elements/1.1/" : "dc" +}; + +@Component({ + selector: 'app-create-entity', + imports: [FormsModule, + ReactiveFormsModule, + CommonModule, + EntityDetailsComponent, + MatSnackBarModule, + FileViewerComponent, + MatButtonToggleModule, + MatChipsModule, + MatIconModule + ], + + templateUrl: './create-entity.component.html', + standalone: true, + styleUrl: './create-entity.component.scss' +}) +export class CreateEntityComponent implements OnInit { + + entityForm: FormGroup; + + selectedEntity: Entity | null = null; + + typeMode: string =""; + selectedOntology : any = null; + + customSource: 'url' | 'full' = 'url'; + availableTypes: string[] = []; + + listSelectedTypes : any[] = []; + + allPossibleRanges : any[] = []; + + newAssociation: { + mode: 'existing' | 'new' | null; + predicate: any; + ontologyUrl: string; + customPredicate: string; + valueKind: 'literal' | 'iri'; + value: string; + } | null = null; + + ontologyList: { name: string; iri: string }[] = []; + + // Used only when opened as a dialog + public dialogData: any = inject(MAT_DIALOG_DATA, { optional: true }); + private dialogRef: MatDialogRef | null = inject(MatDialogRef, { optional: true }); + + // Used only when used as a child component tag + @Input() inputData: any; + + //let the parent know when created inline (no dialogRef to close) + @Output() closed = new EventEmitter(); + + // The single source of truth + public data: any; + + constructor( + private fb: FormBuilder, + private ontologyService: GestionRessourcesService, + private snackBar : MatSnackBar, + private cdr: ChangeDetectorRef, + private dialog: MatDialog + ) { + + + this.entityForm = this.fb.group({ + entityType: ['',Validators.required], + propertyValue: ['',Validators.required], + customTypeUri: [''], + customTypeUrl: this.fb.group({ + selectedIri: [''], + typeName: [''] + }), + associatedWith: this.fb.array([]), + customFields: this.fb.array([]), + properties: this.fb.array([]) + }); + + this.ontologyList = this.getOntologyList(); + } + + extractEntityTypeFromIRI(iri :string ) : string { + if (iri.includes('#')) return iri.substring(iri.lastIndexOf('#') + 1) + else if (iri.includes('/')) return iri.substring(iri.lastIndexOf('/') + 1); + else return iri; + } + + removeChip(typeName: string) { + this.listSelectedTypes = this.listSelectedTypes.filter(t => t.label !== typeName); + this.setSelectedOntology(this.selectedOntology); + } + + getName(ontology: any): string { + return ontology?.value?.name; + } + + checkOneTypePerOntology(ontologyName : string) : boolean { + return (this.listSelectedTypes.some(item => item.label.startsWith(ontologyName+':'))); + } + + ngOnInit(): void { + + console.log("Ontologies Data recieved : ", this.dialogData.ontologiesData); + + this.entityForm.get('entityType')?.valueChanges + .subscribe(value => { + console.log('Selected type:', value); + + if (value && !this.entityForm.get('entityType')?.disabled){ + this.listSelectedTypes.push( + { + label: this.typeMode+':'+this.extractEntityTypeFromIRI(value), + iri :value + } + ); + this.entityForm.get('entityType')?.disable(); + } + + }); + + + // else if (this.dialogData.type && this.dialogData.ontology || this.inputData.type && this.inputData.ontology ) { + if (this.dialogData || this.inputData) { + + this.data = this.inputData ?? this.dialogData; + + console.log("RECEIVED DATA : ", this.data); + + this.availableTypes = this.data?.type && this.data?.ontology + ? [this.ontologyService.getTypeUrlByName(this.data?.ontology)+this.data.type] + : []; + } + + if (this.data) { + this.entityForm.get('entityType')?.patchValue(this.data?.type, { emitEvent: true }); + } + + } + + + // ─── Ontology helpers ─────────────────────────────────────────────────────── + + getOntologyList(): { name: string; iri: string }[] { + return Object.entries(ONTOLOGY_LABELS).map(([iri, name]) => ({ name, iri })); + } + + get resolvedTypeUri(): string { + const { selectedIri, typeName } = this.entityForm.get('customTypeUrl')?.value ?? {}; + if (!selectedIri || !typeName) return ''; + const sep = selectedIri.endsWith('#') || selectedIri.endsWith('/') ? '' : '#'; + return `${selectedIri}${sep}${typeName}`; + } + + setSelectedOntology(ontology : any ){ + console.log("Selected ontology" ,ontology); + this.selectedOntology = ontology; + if (ontology === null ) { + this.setTypeMode("custom"); + return ; + } + else this.setTypeMode(ontology.name); + + if (this.checkOneTypePerOntology(ontology.name)) { + this.entityForm?.get('entityType')?.disable(); + } + else this.entityForm?.get('entityType')?.enable(); + } + + setTypeMode(mode: string) { + this.typeMode = mode; + this.entityForm.get('entityType')?.reset(); + this.entityForm.get('customTypeUri')?.reset(); + this.entityForm.get('customTypeUrl')?.reset(); + } + + setCustomSource(src: 'url' | 'full') { + this.customSource = src; + this.entityForm.get('customTypeUri')?.reset(); + this.entityForm.get('customTypeUrl')?.reset(); + } + + // ─── Custom fields ─────────────────────────────────────────────────────────── + + get customFieldsArray(): FormArray { + return this.entityForm.get('customFields') as FormArray; + } + + addCustomField() { + const fieldGroup = this.fb.group({ + name: [''], + value: [''] + }); + this.customFieldsArray.push(fieldGroup); + } + + removeCustomField(index: number) { + this.customFieldsArray.removeAt(index); + } + + // ─── Form actions ──────────────────────────────────────────────────────────── + + cancelNewEntity() { + this.entityForm.reset(); + this.dialogRef?.close(); + } + + saveNewEntity() { + let types: string[] = this.listSelectedTypes.map(t => t.iri); + + if (!this.selectedOntology) { + const customType = this.customSource === 'url' + ? this.resolvedTypeUri + : this.entityForm.get('customTypeUri')?.value; + + if (customType) { + types.push(customType); + } + } + + // 2. Build properties (remove "key" and add lang if literal) + // const formattedProperties = this.properties.map(prop => { + // const base: any = { + // predicate: prop.predicate, + // kind: prop.kind, + // value: prop.value + // }; + + // // Add lang only for literals + // if (prop.kind === 'literal') { + // base.lang = ''; // you can make this dynamic later + // } + + // return base; + // }); + const property: any = { + predicate: "https://www.ica.org/standards/RiC/ontology#name", + kind: 'literal', + value: this.entityForm.get('propertyValue')?.value + }; + + // 3. Final payload + const payload = { + types: types, + properties: [property] + }; + + console.log('Final payload:', payload); + + this.ontologyService.createEntity(payload).subscribe({ + next: (res) => { + console.log('✅ Entity created:', res); + + this.snackBar.open( + "✅ Entity created: was successfully created.", + 'Close', + { + duration: 5000, + horizontalPosition: 'center', + verticalPosition: 'top', + panelClass: ['snackbar-success'] + } + ); + // const dataToSend = { status: 'closed', reason: 'user clicked button' }; + this.closed.emit(true); + // optional UX improvements + this.entityForm.reset(); + }, + error: (err) => { + this.snackBar.open( + "❌ Error creating entity.", + 'Close', + { + duration: 5000, + horizontalPosition: 'center', + verticalPosition: 'top', + panelClass: ['snackbar-error'] + } + ); + } + }); + + + } + +} \ No newline at end of file diff --git a/Frontend/src/app/components/create-ressource/create-ressource.component.html b/Frontend/src/app/components/create-ressource/create-ressource.component.html index b6cb55b8..03d23461 100644 --- a/Frontend/src/app/components/create-ressource/create-ressource.component.html +++ b/Frontend/src/app/components/create-ressource/create-ressource.component.html @@ -4,108 +4,140 @@
-
-
- - -
+ @if(dialogData === null && inputData === undefined) { +
+ + +
- -
- - -

Types are fetched from the RDF graph base.

-
+ +
+ + +

Types are fetched from the RDF graph base.

+
- -
+ +
- -
- -
- - + +
+ +
+ + +
-
- -
- -
- - / - + +
+ +
+ + / + +
+

+ Resolved URI: {{ resolvedTypeUri }} +

+
+ + +
+ + +

Enter the complete, fully qualified URI for this type.

-

- Resolved URI: {{ resolvedTypeUri }} -

-
- -
- - -

Enter the complete, fully qualified URI for this type.

-
+
+ Entity type is required. +
+ } + @else if (dialogData || inputData ){ +
+ + +

+ {{ availableTypes }} +

+
-
- Entity type is required. -
+ }
@@ -142,7 +174,7 @@ - Ajouter une association + Add property
@@ -151,10 +183,10 @@
- +
- -
- - -
@@ -228,30 +246,6 @@ - -
- -
- - -
-
@@ -277,21 +271,6 @@
- Range : {{ newAssociation.predicate.range }} - - -
- - -
@@ -304,7 +283,7 @@ (filePathChange)="receiveFilePath($event)"> } - @else { + @else if (newAssociation.mode === 'new') {
@@ -312,7 +291,7 @@ type="text" [(ngModel)]="newAssociation.value" [ngModelOptions]="{standalone: true}" - [placeholder]="newAssociation.valueKind === 'iri' ? 'https://...' : 'Enter a value'" + [placeholder]="'Enter a value'" class="w-full text-sm border border-gray-300 rounded-md px-2 py-1.5 bg-white focus:outline-none focus:ring-2 focus:ring-blue-400"/>
} @@ -320,13 +299,12 @@
-
+
-
-

{{ selectedEntity?.titre }}

-
- -
- -
- -
- -
- - -
- -
- {{ selectedEntity?.entityKey }} - -
-
- - -
- -
- {{ selectedEntity?.iri }} - -
-
+
+ + +
+ + + + {{ type.label }} + + + + + + +
+ + + +
- - -
+ +
+ -
- - -
- - -
+ +
+
-
+
- -
+ +
- -
+ +
-
+
- - + > - +
- -
- +
+ -
+
- -
- +
+
- + {{ newAssociation.ontologyUrl }} - - + + />
-

- → {{ newAssociation.ontologyUrl }}{{ newAssociation.customPredicate }} + class="mt-1 text-xs text-gray-400 font-mono truncate"> + → {{ newAssociation.ontologyUrl }}{{ newAssociation.customPredicate }}

-
+
- +
- -
+ +
-
+
- +
- - Value + + />
- - +
+
-
+ +
+ +
+ + {{ selectedEntity?.iri }} + + +
+
-
- - -
-
+ +
+ +
+ +
+ + + +
\ No newline at end of file diff --git a/Frontend/src/app/components/entity-details/entity-details.component.scss b/Frontend/src/app/components/entity-details/entity-details.component.scss index b33c3da3..6cf4bc8d 100644 --- a/Frontend/src/app/components/entity-details/entity-details.component.scss +++ b/Frontend/src/app/components/entity-details/entity-details.component.scss @@ -9,4 +9,8 @@ background-color: #dc2626 !important; // red-600 color: white !important; } +} + +button { + cursor : pointer ; } \ No newline at end of file diff --git a/Frontend/src/app/components/entity-details/entity-details.component.ts b/Frontend/src/app/components/entity-details/entity-details.component.ts index 15d62334..8488adc6 100644 --- a/Frontend/src/app/components/entity-details/entity-details.component.ts +++ b/Frontend/src/app/components/entity-details/entity-details.component.ts @@ -1,8 +1,8 @@ -import { Component, OnInit, Input, OnChanges, SimpleChanges, inject, ChangeDetectorRef, Output, EventEmitter } from '@angular/core'; +import { Component, OnInit, Input, OnChanges, SimpleChanges, Inject, inject, ChangeDetectorRef, Output, EventEmitter } from '@angular/core'; import { CommonModule } from '@angular/common'; import { Entity } from '../../models/ressource'; -import { allEntities } from '../../models/ressource'; import { FormsModule, ReactiveFormsModule, FormBuilder, FormGroup, FormArray, Validators } from '@angular/forms'; +import {MatTabsModule} from '@angular/material/tabs'; import {GestionRessourcesService} from '../../services/gestion-ressources.service'; import { MatDialogModule, MatDialogRef, MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog'; @@ -13,25 +13,39 @@ import { ConfirmDeletePropertyData, ConfirmDeletePropertyComponent } from '../co import { MatSnackBar, MatSnackBarModule } from '@angular/material/snack-bar'; import {ONTOLOGY_LABELS} from '../../models/ontology-labels'; +import { FileViewerComponent } from '../file-viewer/file-viewer.component'; + +import {MatChipsModule} from '@angular/material/chips'; +import {MatIconModule} from '@angular/material/icon'; +import { KeyValue } from '@angular/common'; @Component({ selector: 'app-entity-details', standalone: true, - imports: [CommonModule, FormsModule, ReactiveFormsModule, MatDialogModule, MatSnackBarModule], + imports: [ + CommonModule, + FormsModule, + MatTabsModule, + ReactiveFormsModule, + MatDialogModule, + MatSnackBarModule, + FileViewerComponent, + MatChipsModule, + MatIconModule + ], templateUrl: './entity-details.component.html', styleUrl: './entity-details.component.scss' }) -export class EntityDetailsComponent implements OnInit, OnChanges { +export class EntityDetailsComponent implements OnInit { - @Input() selectedEntityId: string = ""; - @Input() ontologyLabels: Record[] = []; + selectedEntityId: string = ""; + ontologyLabels: Record[] = []; @Output() close = new EventEmitter(); stack = new Stack(); selectedEntity : any = null ; entityPropertiesDict : any[] = []; - detailTab: string = 'rico'; myNewEntites : Entity[] = []; newAssociation: { mode: 'existing' | 'new' | null; // which sub-mode @@ -42,13 +56,18 @@ export class EntityDetailsComponent implements OnInit, OnChanges { value: string; } | null = null; + allEntityTypesChips : any[] = []; + private gestionRessourceService = inject(GestionRessourcesService); private cdr = inject(ChangeDetectorRef); private dialog = inject(MatDialog); private snackBar = inject(MatSnackBar); - // constructor(private gestionRessourceService : GestionRessourcesService ) {} + constructor(@Inject(MAT_DIALOG_DATA) public data: any) { + this.ontologyLabels = data.ontologyLabels; + this.selectedEntityId = data.selectedEntityId; + } copyToClipboard(text: string | undefined) { if (text && navigator.clipboard) { @@ -61,58 +80,16 @@ export class EntityDetailsComponent implements OnInit, OnChanges { } } - ngOnChanges(changes: SimpleChanges) { - - if (changes['selectedEntityId'] && this.selectedEntityId) { - this.gestionRessourceService - .getEntityDetails(this.selectedEntityId) - .subscribe({ - next: (data) => { - console.log("DATA:", data); - this.selectedEntity = data; - this.getEntityPropertiesDict(); - this.cdr.markForCheck(); - }, - error: (err) => console.error("ERROR:", err) - }); - } - } - - getEntityPropertiesDict() : void { - const entityProperties = this.selectedEntity.properties || []; - let entityPropertiesDict : any [] = []; - if (entityProperties.length > 0) { - for (let prop of entityProperties) { - if (prop.predicate.includes('#')) { - let ontologyUrl = prop.predicate.substring(0, prop.predicate.lastIndexOf('#') + 1); - let ontologyName = this.gestionRessourceService.getTypeNameByUrl(ontologyUrl); - console.log("ONTOLOGYy NAME : ", ontologyName); - - let propertyName = prop.predicate.substring(prop.predicate.lastIndexOf('#') + 1, prop.predicate.length); - entityPropertiesDict.push({ key: propertyName, value: prop.value, kind: prop.kind, predicate : prop.predicate, ontology: ontologyName }); - } - else { - let propertyName = prop.predicate.substring(prop.predicate.lastIndexOf('/') + 1, prop.predicate.length); - entityPropertiesDict.push({ key: propertyName, value: prop.value, kind : prop.kind, predicate : prop.predicate }); - } - } - - } - console.log("I'm here ", entityPropertiesDict); - this.entityPropertiesDict = entityPropertiesDict; - } - changeSelectedEntity(entityIri : string) { if (entityIri) { - const entityKey = entityIri.substring(entityIri.lastIndexOf('/') + 1, entityIri.length); - console.log("Reference entity key : ",entityKey); - // this.previousSelectedEntity = this.selectedEntity; this.stack.push(this.selectedEntity); - this.gestionRessourceService.getEntityDetails(entityKey).subscribe({ + this.gestionRessourceService.getEntityDetails(entityIri).subscribe({ next: (data) => { console.log("DATA:", data); this.selectedEntity = data; - this.getEntityPropertiesDict(); + // this.getEntityPropertiesDict(); + this.buildEntityDetails(this.selectedEntity.properties, this.ontologyLabels); + this.cdr.markForCheck(); }, error: (err) => console.error("ERROR:", err) @@ -121,13 +98,91 @@ export class EntityDetailsComponent implements OnInit, OnChanges { } + extractPropertyNameFromIRI(iri :string ) : string { + if (iri.includes('#')) return iri.substring(iri.lastIndexOf('#') + 1) + else if (iri.includes('/')) return iri.substring(iri.lastIndexOf('/') + 1); + else return iri; + } + + // Chips + + buildTypesChips(entityTypes : string[], ontologies : any[]) : void { + + for (let type of entityTypes) { + for (const [key, value] of Object.entries(ontologies)) { + if (type.startsWith(key)) { + this.allEntityTypesChips.push( + { + "label" : value.name+":"+this.extractPropertyNameFromIRI(type), + "iri" : type + } + + ); + } + } + } + + } + + removeChip(typeUrl: string) { + this.allEntityTypesChips = this.allEntityTypesChips.filter(t => t.iri !== typeUrl); + this.editEntity(); + } + + buildEntityDetails(properties : any[], ontologyLabels : any[]) : void { + + for (const [key, value] of Object.entries(ontologyLabels)) { + value.entities = []; + } + + + for (const property of properties) { + + for(const [key, value] of Object.entries(ontologyLabels)){ + if (property.predicate.startsWith(key)){ + property.key = this.extractPropertyNameFromIRI(property.predicate); + value.entities.push(property); + } + + } + } + + console.log("ONTOLOGY LABELS NEW :" ,ontologyLabels); + } + + ontologyOrderComparator = ( + a: KeyValue, + b: KeyValue + ): number => { + const priorityKey = 'https://www.ica.org/standards/RiC/ontology'; + + if (a.key === priorityKey) return -1; + if (b.key === priorityKey) return 1; + + return a.value.name.localeCompare(b.value.name); + }; + ngOnInit(): void { + this.ontologyLabels = this.data.ontologyLabels; + this.selectedEntityId = this.data.selectedEntityId; - this.detailTab = 'rico'; - this.myNewEntites = allEntities; + console.log("Dialog data:", this.data); + if (this.selectedEntityId) { + this.gestionRessourceService + .getEntityDetails(this.selectedEntityId) + .subscribe({ + next: (data) => { + console.log("Entity Details Data:", data); + this.buildEntityDetails(data.properties, this.ontologyLabels); + this.selectedEntity = data; + this.buildTypesChips(data.types, this.ontologyLabels); + this.cdr.markForCheck(); + }, + error: (err) => console.error("ERROR:", err) + }); + } - console.log("All ontology labels : ", this.ontologyLabels); } @@ -146,21 +201,16 @@ export class EntityDetailsComponent implements OnInit, OnChanges { } } - getEntityById(id: number): Entity | undefined { - const id_str = id.toString(); - return allEntities.find(entity => entity.id === id_str); - } - selectEntity(entity: any) { this.selectedEntity = entity; - this.getEntityPropertiesDict(); // ← ajouter - this.detailTab = 'rico'; + // this.getEntityPropertiesDict(); // ← ajouter + this.buildEntityDetails(this.selectedEntity.properties, this.ontologyLabels); this.cdr.markForCheck(); } closeDetail() { console.log("CLOSING Details view "); - this.close.emit(); + // this.close.emit(); } @@ -178,19 +228,19 @@ export class EntityDetailsComponent implements OnInit, OnChanges { dialogRef.afterClosed().subscribe((confirmed: boolean) => { if (confirmed) { - this.gestionRessourceService.deleteEntity(this.selectedEntity.entityKey).subscribe({ + this.gestionRessourceService.deleteEntity(this.selectedEntity.iri).subscribe({ next: () => { this.snackBar.open( - `"${this.selectedEntity.titre}" was successfully deleted.`, + `Entity was successfully deleted.`, 'Close', { duration: 5000, - horizontalPosition: 'right', - verticalPosition: 'bottom', + horizontalPosition: 'center', + verticalPosition: 'top', panelClass: ['snackbar-success'] } ); - console.log('Entity deleted:', this.selectedEntity.entityKey); + console.log('Entity deleted:', this.selectedEntity.iri); this.closeDetail(); }, error: (err : any) => { @@ -212,14 +262,20 @@ export class EntityDetailsComponent implements OnInit, OnChanges { } editEntity() : void { + const payload = { - properties: this.entityPropertiesDict.map(({ value, predicate, kind }) => ({ - value, - predicate, - kind - })) + types : this.allEntityTypesChips.map(type => type.iri), + properties: this.selectedEntity.properties.map( + ({ value, predicate, kind }: { value: string; predicate: string; kind: 'iri' | 'literal' }) => ({ + value, + predicate, + kind + }) + ) }; - this.gestionRessourceService.editEntity(this.selectedEntity.entityKey, payload).subscribe({ + console.log("ENTITY TO BE UPDATED : ", payload); + + this.gestionRessourceService.editEntity(this.selectedEntity.iri, payload).subscribe({ next: () => { this.snackBar.open( `"${this.selectedEntity.iri}" was successfully updated.`, @@ -231,7 +287,7 @@ export class EntityDetailsComponent implements OnInit, OnChanges { panelClass: ['snackbar-success'] } ); - console.log('Entity updated:', this.selectedEntity.entityKey); + console.log('Entity updated:', this.selectedEntity.iri); }, error: (err) => { console.error('Edit failed:', err); @@ -247,7 +303,6 @@ export class EntityDetailsComponent implements OnInit, OnChanges { ); } }); - console.log("Edited properties : ", payload); } @@ -282,54 +337,97 @@ export class EntityDetailsComponent implements OnInit, OnChanges { } } + addAssociation() { + this.newAssociation = { + mode: null, + predicate: '', + ontologyUrl: '', + customPredicate: '', + kind: 'literal', + value: '' + }; + } -// Computed list of ontology entries for the dropdown -get ontologyEntries(): { label: string; url: string }[] { - return Object.entries(ONTOLOGY_LABELS).map(([url, label]) => ({ url, label: label as string })); -} + confirmAddAssociation() { + if (!this.newAssociation || !this.newAssociation.value) return; -addAssociation() { - this.newAssociation = { - mode: null, - predicate: '', - ontologyUrl: '', - customPredicate: '', - kind: 'literal', - value: '' - }; -} + let fullPredicate: string; + let propertyName: string; + let ontologyUrl: string; + + if (this.newAssociation.mode === 'existing') { + if (!this.newAssociation.predicate) return; + fullPredicate = this.newAssociation.predicate; + + if (fullPredicate.includes('#')) { + ontologyUrl = fullPredicate.substring(0, fullPredicate.lastIndexOf('#') + 1); + propertyName = fullPredicate.substring(fullPredicate.lastIndexOf('#') + 1); + } else { + ontologyUrl = fullPredicate.substring(0, fullPredicate.lastIndexOf('/') + 1); + propertyName = fullPredicate.substring(fullPredicate.lastIndexOf('/') + 1); + } + } else { + if (!this.newAssociation.ontologyUrl || !this.newAssociation.customPredicate) return; + ontologyUrl = this.newAssociation.ontologyUrl; // already ends with # or / + fullPredicate = ontologyUrl + this.newAssociation.customPredicate; + propertyName = this.newAssociation.customPredicate; + } + + const ontologyName = this.gestionRessourceService.getTypeNameByUrl(ontologyUrl); -confirmAddAssociation() { - if (!this.newAssociation || !this.newAssociation.value) return; - - let fullPredicate: string; - let propertyName: string; - - if (this.newAssociation.mode === 'existing') { - if (!this.newAssociation.predicate) return; - fullPredicate = this.newAssociation.predicate; - fullPredicate.includes('#') - ? propertyName = fullPredicate.substring(fullPredicate.lastIndexOf('#') + 1) - : propertyName = fullPredicate.substring(fullPredicate.lastIndexOf('/') + 1); - } else { - if (!this.newAssociation.ontologyUrl || !this.newAssociation.customPredicate) return; - const base = this.newAssociation.ontologyUrl; // already ends with # or / - fullPredicate = base + this.newAssociation.customPredicate; - propertyName = this.newAssociation.customPredicate; + this.entityPropertiesDict.push({ + key: propertyName, + value: this.newAssociation.value, + kind: this.newAssociation.kind, + predicate: fullPredicate, + ontology: ontologyName // matches detailTab + }); + + this.newAssociation = null; + this.cdr.markForCheck(); + } + + cancelAddAssociation() { + this.newAssociation = null; } - this.entityPropertiesDict.push({ - key: propertyName, - value: this.newAssociation.value, - kind: this.newAssociation.kind, - predicate: fullPredicate - }); + isFilePath(path: string): boolean { - this.newAssociation = null; -} + if (!path) return false; -cancelAddAssociation() { - this.newAssociation = null; -} + const windowsPath = /^[a-zA-Z]:\\.*$/; // C:\... + const windowsUNC = /^\\\\[^\\]+\\[^\\]+/; // \\Server\Share + const unixPath = /^\/(Users|home|tmp|var|etc|opt)/; // /Users/... or /home/... + const fileUrl = /^file:\/\/\/.+/; // file:///... + + return ( + windowsPath.test(path) || + windowsUNC.test(path) || + unixPath.test(path) || + fileUrl.test(path) + ); + } + + openFileViewer(property: any, filePath: string) { + if (!filePath ) return ; + + console.log("Opening file viewer for property: ", property); + + const dialogRef = this.dialog.open(FileViewerComponent, { + width: '1000px', + data: filePath + }); + + dialogRef.afterClosed().subscribe((newFilePath) => { + if (newFilePath) { + console.log('Received from File Viewer dialog:', newFilePath); + property.value = newFilePath; // Update the property value with the new file path + this.cdr.markForCheck(); + + } else { + console.log('File ViewerDialog closed without selection'); + } + }); + } } diff --git a/Frontend/src/app/components/file-viewer/file-viewer.component.html b/Frontend/src/app/components/file-viewer/file-viewer.component.html index 6aa9360b..d245a06e 100644 --- a/Frontend/src/app/components/file-viewer/file-viewer.component.html +++ b/Frontend/src/app/components/file-viewer/file-viewer.component.html @@ -1,14 +1,14 @@ -
+
-
+

Full Path:

{{ filePath }}

@@ -31,4 +31,12 @@
+ +
\ No newline at end of file diff --git a/Frontend/src/app/components/file-viewer/file-viewer.component.ts b/Frontend/src/app/components/file-viewer/file-viewer.component.ts index 870641ae..4d628913 100644 --- a/Frontend/src/app/components/file-viewer/file-viewer.component.ts +++ b/Frontend/src/app/components/file-viewer/file-viewer.component.ts @@ -1,4 +1,4 @@ -import { Component, Output, EventEmitter } from '@angular/core'; +import { Component, Output, EventEmitter, Inject, OnInit, inject } from '@angular/core'; import { CommonModule } from '@angular/common'; import { FormsModule } from '@angular/forms'; @@ -6,16 +6,22 @@ import { DomSanitizer, SafeResourceUrl } from '@angular/platform-browser'; type FileType = 'image' | 'video' | 'audio' | 'pdf' | 'unknown'; +import {MAT_DIALOG_DATA, MatDialogRef} from '@angular/material/dialog'; + @Component({ selector: 'app-file-viewer', imports: [CommonModule, FormsModule], templateUrl: './file-viewer.component.html', styleUrl: './file-viewer.component.scss' }) -export class FileViewerComponent { +export class FileViewerComponent implements OnInit { filePath: string = ''; + public data: any = inject(MAT_DIALOG_DATA, { optional: true }); + private dialogRef: MatDialogRef | null = inject(MatDialogRef, { optional: true }); + public isDialogRoot: boolean = false; + @Output() filePathChange = new EventEmitter(); fileUrl: string = ''; @@ -23,7 +29,19 @@ export class FileViewerComponent { fileType: FileType = 'unknown'; - constructor(private sanitizer: DomSanitizer) {} + constructor(private sanitizer: DomSanitizer, + // @Inject(MAT_DIALOG_DATA) public data: any, + // private dialogRef: MatDialogRef, + + ) {} + + ngOnInit() { + this.isDialogRoot = this.dialogRef?.componentInstance === this; + + if (this.isDialogRoot) { + this.openFile(this.data); + } + } detectFileType(path: string): FileType { const ext = path.split('.').pop()?.toLowerCase(); @@ -38,19 +56,30 @@ export class FileViewerComponent { return 'unknown'; } - async openFile() { - const path = await window.electronAPI.selectFile(); + async openFile(pathParam: string) { + + let path = pathParam !== '' ? pathParam : await window.electronAPI.selectFile(); if (path) { this.filePathChange.emit(path); this.filePath = path; - this.fileUrl = `file:///${path.replace(/\\/g, '/')}`; - + // this.fileUrl = `file:///${path.replace(/\\/g, '/')}`; + this.fileUrl = `file://${encodeURI(path.replace(/\\/g, '/'))}`; //sanitize for iframe/video/audio usage this.safeUrl = this.sanitizer.bypassSecurityTrustResourceUrl(this.fileUrl); this.fileType = this.detectFileType(path); + } } + + closeAndReturn() { + console.log('closeAndReturn CALLED, dialogRef:', this.dialogRef, 'filePath:', this.filePath); + if (this.dialogRef) { + this.dialogRef.close(this.filePath); + } + } + + } \ No newline at end of file diff --git a/Frontend/src/app/components/gestion-projets/gestion-projets.component.html b/Frontend/src/app/components/gestion-projets/gestion-projets.component.html index 0542c5fa..27dae9e6 100644 --- a/Frontend/src/app/components/gestion-projets/gestion-projets.component.html +++ b/Frontend/src/app/components/gestion-projets/gestion-projets.component.html @@ -6,9 +6,6 @@ HEADER ══════════════════════════════════════════════════════════ -->
-
@@ -83,6 +80,22 @@

RDF Project Management New Project + +
@@ -250,6 +263,18 @@

Delete + +

@@ -334,6 +359,13 @@

Aucun projet

} +
New Project RDF placeholder="ex: archive_2025" class="w-full px-3 py-2.5 border border-gray-300 rounded-lg focus:outline-none focus:ring-2 focus:ring-blue-500 focus:border-transparent text-sm transition-all" [class.border-red-300]="projectForm.get('name')?.invalid && projectForm.get('name')?.touched"> -

Lettres, chiffres, tirets et underscores uniquement

+

Must contain only letters, numbers, dashes, and underscores.

@if (projectForm.get('name')?.invalid && projectForm.get('name')?.touched) {
- Nom requis — lettres, chiffres, tirets et underscores uniquement + Name is required and must contain only letters, numbers, dashes, and underscores. +
+ } +
+ + +
+ + + + @if (projectForm.get('prefix')?.invalid && projectForm.get('prefix')?.touched) { +
+ A URL is required for the project prefix.
}
@@ -397,8 +452,9 @@

New Project RDF

+ -
+
@@ -523,6 +579,22 @@

{{ selectedProject.name

+
+ +
+ + +
+
+
@@ -575,6 +647,7 @@

{{ selectedProject.name Update Project + @if (selectedProject?.name === originalProject!.name) { + } + + @if (activeProject?.name === originalProject!.name ) { - @if (activeProject?.name === originalProject!.name) { - @if (activeProject?.name === originalProject!.name) { - } + + + + - - - - - - - - - + - + +

+ +
-
- + - RIC-O + {{ ontology.value.name }} - {{allRicoClasses?.length}} + {{ getLength(ontology.value)}} - -
-
- -
-
-
+ @if (accordionItem.expanded) { + + } + + } + - - - - - {{ getKey(ontology_type) }} - - - {{ getValuesOfKey(ontology_type)?.length }} - - - -
-
- -
-
+
@@ -233,7 +209,7 @@

- +
@@ -243,14 +219,6 @@

- - \ No newline at end of file diff --git a/Frontend/src/app/components/gestion-ressources/gestion-ressources.component.scss b/Frontend/src/app/components/gestion-ressources/gestion-ressources.component.scss index 27887aba..d25bcc08 100644 --- a/Frontend/src/app/components/gestion-ressources/gestion-ressources.component.scss +++ b/Frontend/src/app/components/gestion-ressources/gestion-ressources.component.scss @@ -1,14 +1,398 @@ -@import 'tailwindcss'; -@import url('https://fonts.googleapis.com/css2?family=Manrope:wght@300;400;500;600;700;800&display=swap'); +// src/app/components/gestion-sources/gestion-sources.component.scss -* { - margin: 0; - padding: 0; - box-sizing: border-box; +// Animations +@keyframes fade-in { + from { + opacity: 0; + } + to { + opacity: 1; + } } -body { - font-family: 'Manrope', -apple-system, BlinkMacSystemFont, 'Segoe UI', 'Roboto', sans-serif; - -webkit-font-smoothing: antialiased; - -moz-osx-font-smoothing: grayscale; -} \ No newline at end of file +@keyframes slide-in { + from { + transform: translateX(100%); + opacity: 0; + } + to { + transform: translateX(0); + opacity: 1; + } +} + +@keyframes slide-down { + from { + transform: translateY(-10px); + opacity: 0; + } + to { + transform: translateY(0); + opacity: 1; + } +} + +// Utility classes +.animate-fade-in { + animation: fade-in 0.3s ease-in-out; +} + +.animate-slide-in { + animation: slide-in 0.3s ease-out; +} + +// Snackbar styles +::ng-deep { + .snackbar-success { + background: #10b981 !important; + color: white !important; + } + + .snackbar-error { + background: #ef4444 !important; + color: white !important; + } + + .snackbar-warning { + background: #f59e0b !important; + color: white !important; + } + + .snackbar-info { + background: #3b82f6 !important; + color: white !important; + } +} + +// Custom scrollbar +::-webkit-scrollbar { + width: 8px; + height: 8px; +} + +::-webkit-scrollbar-track { + background: #f1f5f9; +} + +::-webkit-scrollbar-thumb { + background: #cbd5e1; + border-radius: 4px; +} + +::-webkit-scrollbar-thumb:hover { + background: #94a3b8; +} + +// Hover effects for table rows +tr.group:hover { + .opacity-0 { + opacity: 1; + } +} + +// Responsive adjustments +@media (max-width: 768px) { + .hidden-mobile { + display: none; + } +} + +.filter-container { + position: relative; + + .filter-button.active { + background-color: rgba(63, 81, 181, 0.1); + color: #3f51b5; + } +} + +.filter-menu { + position: absolute; + top: 50px; + right: 0; + background: white; + border-radius: 8px; + box-shadow: 0 4px 12px rgba(0, 0, 0, 0.15); + padding: 16px; + min-width: 300px; + z-index: 1000; + + .filter-section { + margin-bottom: 16px; + + h4 { + font-size: 12px; + font-weight: 600; + text-transform: uppercase; + color: #666; + margin: 0 0 8px 0; + } + + .filter-options { + display: flex; + flex-wrap: wrap; + gap: 8px; + + button { + font-size: 13px; + padding: 6px 12px; + border: 1px solid #ddd; + border-radius: 4px; + background: white; + transition: all 0.2s; + + &.active { + background-color: #3f51b5; + color: white; + border-color: #3f51b5; + } + + &:hover:not(.active) { + background-color: #f5f5f5; + } + } + } + + .search-field { + width: 100%; + margin-top: 8px; + } + } + + .filter-actions { + border-top: 1px solid #eee; + padding-top: 12px; + text-align: right; + + button { + color: #666; + font-size: 13px; + } + } +} + +// ===== 2. DIALOGUE STATISTIQUES ===== +.stats-dialog-overlay { + position: fixed; + top: 0; + left: 0; + right: 0; + bottom: 0; + background: rgba(0, 0, 0, 0.5); + display: flex; + align-items: center; + justify-content: center; + z-index: 2000; + animation: fadeIn 0.2s; +} + +.stats-dialog { + background: white; + border-radius: 12px; + padding: 24px; + max-width: 600px; + width: 90%; + max-height: 80vh; + overflow-y: auto; + box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2); + animation: slideUp 0.3s; + + .stats-header { + display: flex; + justify-content: space-between; + align-items: center; + margin-bottom: 24px; + padding-bottom: 16px; + border-bottom: 2px solid #f0f0f0; + + h2 { + margin: 0; + font-size: 24px; + font-weight: 600; + color: #333; + } + } + + .stats-content { + display: grid; + grid-template-columns: repeat(auto-fit, minmax(200px, 1fr)); + gap: 16px; + } + + .stat-card { + background: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%); + border-radius: 12px; + padding: 20px; + display: flex; + align-items: center; + gap: 16px; + transition: transform 0.2s; + + &:hover { + transform: translateY(-4px); + } + + &.full-width { + grid-column: 1 / -1; + } + + .stat-icon { + width: 48px; + height: 48px; + border-radius: 50%; + display: flex; + align-items: center; + justify-content: center; + background: white; + color: #3f51b5; + + &.internal { + background: #e3f2fd; + color: #1976d2; + } + + &.external { + background: #f3e5f5; + color: #7b1fa2; + } + + &.editable { + background: #e8f5e9; + color: #388e3c; + } + + &.readonly { + background: #ffebee; + color: #d32f2f; + } + + &.tools { + background: #fff3e0; + color: #f57c00; + } + + mat-icon { + font-size: 28px; + width: 28px; + height: 28px; + } + } + + .stat-info { + flex: 1; + + .stat-value { + font-size: 32px; + font-weight: 700; + color: #333; + line-height: 1; + margin-bottom: 4px; + } + + .stat-label { + font-size: 13px; + color: #666; + text-transform: uppercase; + letter-spacing: 0.5px; + } + + .tools-list { + display: flex; + flex-wrap: wrap; + gap: 8px; + margin-top: 8px; + + .tool-chip { + background: white; + padding: 4px 12px; + border-radius: 16px; + font-size: 12px; + font-weight: 500; + color: #333; + } + } + } + } +} + +// ===== 3. ANIMATIONS ===== +@keyframes fadeIn { + from { + opacity: 0; + } + to { + opacity: 1; + } +} + +@keyframes slideUp { + from { + transform: translateY(20px); + opacity: 0; + } + to { + transform: translateY(0); + opacity: 1; + } +} + +// ===== 4. BOUTONS ACTIFS ===== +.stats-button, .filter-button, .export-button { + &:hover { + background-color: rgba(63, 81, 181, 0.08); + } +} + +.example-accordion { + display: block; + max-width: 500px; +} + +.example-accordion-item { + display: block; + border: solid 1px #ccc; +} + +.example-accordion-item + .example-accordion-item { + border-top: none; +} + +.example-accordion-item-header { + display: flex; + align-items: center; + justify-content: space-between; + width: 100%; + height : 100%; + background: none; + border: none; + padding: 10px; + text-align: center; + color : #16079e !important; + text-weight: bold; + +} + +.example-accordion-item-description { + font-size: 0.85em; + color: #999; +} + +.example-accordion-item-body { + padding: 10px; + +} + +.example-accordion-item-header:hover { + cursor: pointer; + background-color: #eee; +} + +.example-accordion-item:first-child { + border-top-left-radius: 4px; + border-top-right-radius: 4px; +} + +.example-accordion-item:last-child { + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; +} diff --git a/Frontend/src/app/components/gestion-ressources/gestion-ressources.component.ts b/Frontend/src/app/components/gestion-ressources/gestion-ressources.component.ts index 5fca24dc..3580258d 100644 --- a/Frontend/src/app/components/gestion-ressources/gestion-ressources.component.ts +++ b/Frontend/src/app/components/gestion-ressources/gestion-ressources.component.ts @@ -19,10 +19,10 @@ import { GestionProjetsComponent } from '../gestion-projets/gestion-projets.comp import { GestionProjetsService } from '../../services/gestion-projets.service'; import { error } from 'console'; -import { OntologyManagerDialogComponent } from '../ontology-manager-dialog/ontology-manager-dialog.component'; import { Router } from '@angular/router'; import { MatDialogRef } from '@angular/material/dialog'; +import {CdkAccordionModule} from '@angular/cdk/accordion'; @Component({ selector: 'app-gestion-ressources', @@ -34,6 +34,7 @@ import { MatDialogRef } from '@angular/material/dialog'; MatDividerModule, MatListModule, MatDialogModule, + CdkAccordionModule, EntityDetailsComponent, ListeEntitesComponent, SparqlComponent], templateUrl: './gestion-ressources.component.html', styleUrl: './gestion-ressources.component.scss', @@ -74,6 +75,23 @@ export class GestionRessourcesComponent implements OnInit { showPersonForm: boolean = false; + expandedIndex = 0; + + openEntityDetailsDialog() { + + this.dialog.open(EntityDetailsComponent, { + width: '95vw', + maxWidth: '100vw', + maxHeight: '80vh', + height: '80vh', + data : { + "ontologyLabels" : this.ontologyLabels, + "selectedEntityId" : this.selectedEntity.iri + } + }); + } + + constructor(public dialog: MatDialog, private ontologyService: GestionRessourcesService, private projetService: GestionProjetsService, private cdr: ChangeDetectorRef, @@ -81,43 +99,28 @@ export class GestionRessourcesComponent implements OnInit { ) {} - openOntologyManagerDialog() { - // this.dialog.open(OntologyManagerDialogComponent, { - // width: '1500px' - // }); + getOntologySections(ontology: any) { + return [ontology.mainTypes, ontology.usedTypes, ontology.mainTerminologies] + .filter(section => section) + .map(section => Array.isArray(section) ? { name: '', value: section } : section) + .filter(section => section.value?.length); } - ngOnInit() { - - this.ontologyService.getAllRicoClasses().subscribe({ - next: (data) => { - try { - // Step 1: Map to type strings - const allRicoClassesNotFormatted = this.ontologyService.getOntologyLabel( - data.map((d: any) => d.type) - ); - - // Step 2: Extract the RIC-O array - let ricOClasses = allRicoClassesNotFormatted[0]['rico']; - - // Step 3: Remove duplicates - // Assuming each element is a string; if it's an object, use a key like `type` - ricOClasses = Array.from(new Set(ricOClasses)); - - this.allRicoClasses = ricOClasses; - console.log("Classes RICO (no duplicates) ", this.allRicoClasses); - - } catch (e) { - console.error("ERROR in getOntologyLabel:", e); - } + extractEntityTypeFromIRI(iri : any ) : string { + if (iri === null ) return "" ; + if (iri.includes('#')) return iri.substring(iri.lastIndexOf('#') + 1) + else if (iri.includes('/')) return iri.substring(iri.lastIndexOf('/') + 1); + else return iri; + } - this.cdr.markForCheck(); - }, - error: (err) => { - console.error(err); - } - }); + getLength(ontology: any): number { + return (ontology.mainTypes?.value?.length ?? 0) + + (ontology.mainTerminologies?.value?.length ?? 0) + + (ontology.usedTypes?.value?.length ?? 0); + } + ngOnInit() { + // this.filteredEntities = [...this.allEntities]; // this.filteredEntityTypes = [...this.entityTypes]; // this.updateEntityTypeCounts(); @@ -125,56 +128,35 @@ export class GestionRessourcesComponent implements OnInit { this.ontologyService.getTypes().subscribe({ - next: (data) => { - console.log("Types d'ontology ", data); - this.ontologyLabels = this.ontologyService.getOntologyLabel(data); - console.log("Labels d'ontology ", this.ontologyLabels); - this.cdr.markForCheck(); - } + next: (data) => { + console.log("Ontology Config and Data ", data); + this.ontologyLabels = data; + this.cdr.markForCheck(); + } }); this.projetService.getProject().subscribe({ - next: (data) => { - this.projectName = data.name; - this.cdr.markForCheck(); - }, + next: (data) => { + this.projectName = data.name; + this.cdr.markForCheck(); + }, error: (err) => { console.error(err); } - } + } ); - - } - getKey(obj: Record): string { - return Object.keys(obj)[0]; - } - handleChildData(data: any) { console.log('Received from child:', data); - this.selectedEntity = { ...data }; // nouvelle ref + this.selectedEntity = { ...data }; // nouvelle ref + this.openEntityDetailsDialog(); this.detailTab = 'ric'; this.cdr.markForCheck(); } - getValuesOfKey(obj: Record): any[] { - const key = this.getKey(obj); - return obj[key]; - } - // Update entity type counts based on actual data - // updateEntityTypeCounts() { - // this.entityTypes.forEach(entityType => { - // entityType.count = this.allEntities.filter(e => e.type === entityType.type).length; - // }); - // } - - // Get total count of entities - // getTotalCount(): number { - // return this.allEntities.length; - // } backToPreviousEntity() { if (this.previousSelectedEntity) { @@ -184,20 +166,13 @@ export class GestionRessourcesComponent implements OnInit { } } - // to be returned to the child component - // get formattedEntities(): Record { - // return this.selectedType - // ? { [this.selectedType]: this.allEntities } - // : {}; - // } - - getAllEntitiesByPath(ontology_name : string ,entity_type: string) : void { this.selectedType = entity_type; + console.log("ENTITTTTTY :", entity_type); this.selectedOntology = ontology_name; const typeUrl = this.ontologyService.getTypeUrlByName(ontology_name ?? ''); - if (typeUrl) { - this.ontologyService.getAllEntitiesByType(typeUrl+entity_type).subscribe({ + //if (typeUrl) { + this.ontologyService.getAllEntitiesByType(entity_type).subscribe({ next: (data : any) => { console.log("Entities for type ", entity_type, " : ", data); // this.allEntities = data; @@ -210,14 +185,9 @@ export class GestionRessourcesComponent implements OnInit { console.error(err); } }); - } + //} } - // getEntityById(id: number): Entity | undefined { - // const id_str = id.toString(); - // return this.allEntities.find(entity => entity.id === id_str); - // } - // Select entity selectEntity(entity: Entity) { this.selectedEntity = entity; diff --git a/Frontend/src/app/components/gestion-sources/datasource.model.ts b/Frontend/src/app/components/gestion-sources/datasource.model.ts index af6e4632..00e1e8f2 100644 --- a/Frontend/src/app/components/gestion-sources/datasource.model.ts +++ b/Frontend/src/app/components/gestion-sources/datasource.model.ts @@ -1,11 +1,11 @@ -export type SourceType = 'INTERNAL' | 'EXTERNAL'; +// export type SourceType = 'INTERNAL' | 'EXTERNAL'; -export interface DataSource { - id: string; //ex: graph_importe_1 - type: SourceType; - name: string; - description?: string; - url?: string; //useful for external sources - lastImportAt?: string; //ISO date string - editable: boolean; //internal true, external false -} +// export interface DataSource { +// id: string; //ex: graph_importe_1 +// type: SourceType; +// name: string; +// description?: string; +// url?: string; //useful for external sources +// lastImportAt?: string; //ISO date string +// editable: boolean; //internal true, external false +// } diff --git a/Frontend/src/app/components/gestion-sources/gestion-sources.component.html b/Frontend/src/app/components/gestion-sources/gestion-sources.component.html index 2f33e251..f074ad4c 100644 --- a/Frontend/src/app/components/gestion-sources/gestion-sources.component.html +++ b/Frontend/src/app/components/gestion-sources/gestion-sources.component.html @@ -17,18 +17,18 @@

RDF Data Sources Managem
- + Projects +
@@ -20,8 +20,8 @@ - Type: {{ selectedType }} - + @@ -62,13 +70,13 @@ + aria-label="Search entities"> - @@ -148,8 +156,8 @@ - - + @@ -196,13 +204,6 @@ {{ entity.date }} - - - - {{ entity.source }} - - -

Aucun résultat trouvé

-

Essayez de modifier vos critères de recherche ou de supprimer les filtres.

+

No results found

+

Try adjusting your search criteria or clearing the filters.

diff --git a/Frontend/src/app/components/liste-entites/liste-entites.component.ts b/Frontend/src/app/components/liste-entites/liste-entites.component.ts index 64219d20..40329cc6 100644 --- a/Frontend/src/app/components/liste-entites/liste-entites.component.ts +++ b/Frontend/src/app/components/liste-entites/liste-entites.component.ts @@ -1,12 +1,17 @@ import { Component, OnInit, Input, Output, EventEmitter } from '@angular/core'; import { Entity } from '../../models/ressource'; import { CommonModule } from '@angular/common'; -import { CreateRessourceComponent } from '../create-ressource/create-ressource.component'; +// import { CreateRessourceComponent } from '../create-ressource/create-ressource.component'; +import { CreateEntityComponent } from '../create-entity/create-entity.component'; import { MatDialogModule, MatDialog } from '@angular/material/dialog'; @Component({ selector: 'app-liste-entites', - imports: [CommonModule,MatDialogModule], + imports: [ + CommonModule, + MatDialogModule + ], + standalone : true, templateUrl: './liste-entites.component.html', styleUrl: './liste-entites.component.scss' }) @@ -14,6 +19,7 @@ export class ListeEntitesComponent { // selectedType: string | null = ''; @Input() allEntities: any [] = []; + @Input() ontologiesData: any; @Input() selectedType: string | null = ''; @Output() selectedEntity = new EventEmitter(); @@ -28,16 +34,30 @@ export class ListeEntitesComponent { constructor(private dialog: MatDialog) {} - openCreateRessourceDialog() { + openCreateEntityDialog_withType() { if (!this.selectedType) return; const [ontology, type] = this.selectedType.split(':'); - this.dialog.open(CreateRessourceComponent, { + this.dialog.open(CreateEntityComponent, { width: '600px', data: { ontology, - type + type, + ontologiesData: this.ontologiesData + } + }); + } + + openCreateEntityDialog_withoutType() { + // if (!this.selectedType) return; + + // const [ontology, type] = this.selectedType.split(':'); + + this.dialog.open(CreateEntityComponent, { + width: '600px', + data: { + ontologiesData: this.ontologiesData } }); } @@ -144,4 +164,11 @@ export class ListeEntitesComponent { this.applyAllFilters(); } } + + extractEntityTypeFromIRI(iri : any ) : string { + if (iri === null ) return "" ; + if (iri.includes('#')) return iri.substring(iri.lastIndexOf('#') + 1) + else if (iri.includes('/')) return iri.substring(iri.lastIndexOf('/') + 1); + else return iri; + } } \ No newline at end of file diff --git a/Frontend/src/app/components/nav-bar/nav-bar.component.html b/Frontend/src/app/components/nav-bar/nav-bar.component.html new file mode 100644 index 00000000..108f6fd4 --- /dev/null +++ b/Frontend/src/app/components/nav-bar/nav-bar.component.html @@ -0,0 +1 @@ +

nav-bar works!

diff --git a/RDF_Back/projects/Test_Mehrez/store/txncache.alloc b/Frontend/src/app/components/nav-bar/nav-bar.component.scss similarity index 100% rename from RDF_Back/projects/Test_Mehrez/store/txncache.alloc rename to Frontend/src/app/components/nav-bar/nav-bar.component.scss diff --git a/Frontend/src/app/components/gestion-sources/gestion-sources.component.spec.ts b/Frontend/src/app/components/nav-bar/nav-bar.component.spec.ts similarity index 50% rename from Frontend/src/app/components/gestion-sources/gestion-sources.component.spec.ts rename to Frontend/src/app/components/nav-bar/nav-bar.component.spec.ts index 83f5bd8b..0f6b475e 100644 --- a/Frontend/src/app/components/gestion-sources/gestion-sources.component.spec.ts +++ b/Frontend/src/app/components/nav-bar/nav-bar.component.spec.ts @@ -1,18 +1,18 @@ import { ComponentFixture, TestBed } from '@angular/core/testing'; -import { GestionSourcesComponent } from './gestion-sources.component'; +import { NavBarComponent } from './nav-bar.component'; -describe('GestionSourcesComponent', () => { - let component: GestionSourcesComponent; - let fixture: ComponentFixture; +describe('NavBarComponent', () => { + let component: NavBarComponent; + let fixture: ComponentFixture; beforeEach(async () => { await TestBed.configureTestingModule({ - imports: [GestionSourcesComponent] + imports: [NavBarComponent] }) .compileComponents(); - fixture = TestBed.createComponent(GestionSourcesComponent); + fixture = TestBed.createComponent(NavBarComponent); component = fixture.componentInstance; fixture.detectChanges(); }); diff --git a/Frontend/src/app/components/nav-bar/nav-bar.component.ts b/Frontend/src/app/components/nav-bar/nav-bar.component.ts new file mode 100644 index 00000000..7d11afea --- /dev/null +++ b/Frontend/src/app/components/nav-bar/nav-bar.component.ts @@ -0,0 +1,11 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-nav-bar', + imports: [], + templateUrl: './nav-bar.component.html', + styleUrl: './nav-bar.component.scss' +}) +export class NavBarComponent { + +} diff --git a/Frontend/src/app/components/rico-properties/rico-properties.component.html b/Frontend/src/app/components/rico-properties/rico-properties.component.html new file mode 100644 index 00000000..52b771ab --- /dev/null +++ b/Frontend/src/app/components/rico-properties/rico-properties.component.html @@ -0,0 +1,156 @@ +
+ + + + + {{filter}} + + + + + +
+ + +
+ + + +
+ +
+ + {{ getIconFor(predefinedRange) }} + {{ predefinedRange }} + +
+
+ +
+ + +
+ + + +
+ +
+ + +
+ + + + + {{ prop.label || prop.p }} + + + + + + + + + + + +
+ + +
+ +
+ + + +
+ + + + +
+ +
+ +
+ +
+ + +
+
+ +
+
+ + + +
\ No newline at end of file diff --git a/Frontend/src/app/components/rico-properties/rico-properties.component.scss b/Frontend/src/app/components/rico-properties/rico-properties.component.scss new file mode 100644 index 00000000..7ac2d388 --- /dev/null +++ b/Frontend/src/app/components/rico-properties/rico-properties.component.scss @@ -0,0 +1,33 @@ +::ng-deep .iri-badge .mat-badge-content { + background-color: #3b82f6; + color: white; + margin-left : 20px; +} + +::ng-deep .literal-badge .mat-badge-content { + background-color: #10b981; + color: white; + margin-left : 20px; +} + +mat-chip-row.big-chip { + --mdc-chip-outline-color: #3f51b5; + --mdc-chip-label-text-color: #3f51b5; + --mdc-chip-elevated-container-color: transparent; + border: 1px solid var(--mdc-chip-outline-color); +} +mat-chip-row.big-chip { + transition: transform 0.15s ease, box-shadow 0.15s ease; + cursor: pointer; + + &:hover { + transform: translateY(-1px); + box-shadow: 0 2px 6px rgba(0, 0, 0, 0.15); + } +} + +mat-chip-grid { + display: flex; + flex-wrap: wrap; + gap: 8px; +} \ No newline at end of file diff --git a/Frontend/src/app/components/rico-properties/rico-properties.component.ts b/Frontend/src/app/components/rico-properties/rico-properties.component.ts new file mode 100644 index 00000000..60513b9d --- /dev/null +++ b/Frontend/src/app/components/rico-properties/rico-properties.component.ts @@ -0,0 +1,241 @@ +import { Component, Input,Inject, OnInit, OnDestroy, + ViewChild, ViewContainerRef, ComponentRef } from '@angular/core'; +import { CommonModule, NgComponentOutlet } from '@angular/common'; +import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; +import {MatCheckboxModule} from '@angular/material/checkbox'; +import {MatButtonModule} from '@angular/material/button'; +import {MatChipInputEvent, MatChipsModule} from '@angular/material/chips'; +import {MatIconModule} from '@angular/material/icon'; +import {MatBadgeModule} from '@angular/material/badge'; +import { MatRadioModule } from '@angular/material/radio'; +import {MatDividerModule} from '@angular/material/divider'; + +import { Subscription } from 'rxjs'; + +import { FormsModule, ReactiveFormsModule, FormBuilder, FormGroup, FormArray, Validators } from '@angular/forms'; +import { GestionRessourcesService } from '../../services/gestion-ressources.service'; + +@Component({ + selector: 'app-rico-properties', + imports: [ + CommonModule, + FormsModule, + ReactiveFormsModule, + MatCheckboxModule, + MatButtonModule, + MatChipsModule, + MatIconModule, + MatBadgeModule, + MatRadioModule, + MatDividerModule, + NgComponentOutlet + ], + templateUrl: './rico-properties.component.html', + styleUrl: './rico-properties.component.scss' +}) +export class RicoPropertiesComponent implements OnInit { + + constructor(@Inject(MAT_DIALOG_DATA) public data: any, + private ontologyService: GestionRessourcesService, + private dialogRef: MatDialogRef + ) { + this.predicates = data.predicates; + this.association = data.association; + } + + ngOnInit() { + console.log("All predicates : ", this.predicates); + this.filteredPredicates = this.predicates; + this.allRanges = this.predicates.map((predicate : any) => predicate.range); + this.allRanges = [...new Set(this.allRanges)]; + // this.allRangesLabels = this.ontologyService.getOntologyLabel_v2(this.allRanges); + + this.predefinedRanges = this.predefinedRanges.filter(range => + this.allRanges.includes( + "https://www.ica.org/standards/RiC/ontology#" + range + ) + ); + this.allRanges = this.allRanges.filter((range : string) => + !this.predefinedRanges.includes(this.getNameOfRicoTypeFromURL(range)) + ); + console.log("All possibles ranges for all predicates ", this.allRanges); + + } + + // anchor from the template — 'read: ViewContainerRef' gives us where to insert the component + @ViewChild('subEntityAnchor', { read: ViewContainerRef }) + subEntityAnchor?: ViewContainerRef; + + createSubEntity = false; + private subEntityRef?: ComponentRef; + private childClosedSub?: Subscription; + + + allRanges : any[] = [] + + allPossibleRanges : any[] = []; + + filters : string[] = []; + + filterByKindValue : string = ""; + + predicates: any[] = []; + + filteredPredicates: any[] = []; + + allRangesLabels : any[] = []; + + predefinedRanges = ['Activity', 'Person', 'Record', 'Instantiation', 'Place']; + + rangeIcons: Record = { + Activity: 'task', + Person: 'person', + Record: 'description', + Instantiation: 'category', + Place: 'place', + }; + + association : any ; +async createSubEntityToggle() { + if (!this.subEntityAnchor) return; + + // clear out any previous instance first + this.destroySubEntity(); + + const { CreateRessourceComponent } = await import('../create-ressource/create-ressource.component'); + + this.subEntityRef = this.subEntityAnchor.createComponent(CreateRessourceComponent); + + // set the @Input() + this.subEntityRef.instance.inputData = { + ontology: 'rico', + type: this.getNameOfRicoTypeFromURL(this.association.predicate.range) + }; + + // subscribe directly to the real @Output(), no ambiguity + this.childClosedSub = this.subEntityRef.instance.closed.subscribe((event: any) => { + this.onChildClosed(event); + }); + + this.createSubEntity = true; + this.subEntityRef.changeDetectorRef.detectChanges(); + } + + onChildClosed(event: any) { + if (event === true) { + this.getEntitiesByType(this.association.predicate.range); + } + this.destroySubEntity(); + } + + private destroySubEntity() { + this.childClosedSub?.unsubscribe(); + this.subEntityRef?.destroy(); + this.subEntityRef = undefined; + this.createSubEntity = false; + } + + ngOnDestroy() { + this.destroySubEntity(); + } + + + removeFilter(filter: string) { + if (filter === 'iri' || filter === 'literal'){ + const updated = this.filters.filter( + item => item !== 'iri' && item !== 'literal' + ); + this.filters = updated; + this.filteredPredicates = this.predicates; + } + else{ + this.filters = this.filters.filter(f => !f.startsWith('range :')); + } + } + + getIconFor(range: string): string { + return this.rangeIcons[range] ?? 'label'; + } + + getNameOfRicoTypeFromURL(url : string | any) { + if (url.includes('#')){ + return url.split('#').pop(); + } + else return url; + } + + onRangeChange(event : any) { + const filterUrl = (event.target as HTMLSelectElement)?.value; + const entityType = this.getNameOfRicoTypeFromURL(filterUrl); + this.addRangeFilter(entityType); + } + + filterRangesByFilters() : void { + for (let filter of this.filters) { + if (filter.startsWith("range : ")){ + let rangeName = filter.substring('range : '.length).trim(); + this.filteredPredicates = this.predicates.filter( + p => this.getNameOfRicoTypeFromURL(p.range) === rangeName + ); + } + } + } + + addRangeFilter(range : any) : void { + if (this.filters.some(f => f.startsWith('range :'))) { + this.filters = this.filters.filter(f => !f.startsWith('range :')); + } + this.filters.push('range : '+range); + this.filterRangesByFilters(); + } + + filterPropertiesByKindValue(kindValue : string) { + this.filterByKindValue = kindValue; + const otherKindValue = kindValue === 'literal' ? 'iri' : 'literal'; + if (!this.filters.includes(kindValue) && this.filters.includes(otherKindValue)) { + const updated = this.filters.filter(item => item !== otherKindValue); + this.filters = updated; + this.filters.push(kindValue); + this.filteredPredicates = this.predicates.filter(predicate => predicate.valueKind === kindValue); + } + if(!this.filters.includes(kindValue) && !this.filters.includes(otherKindValue)) { + this.filters.push(kindValue); + this.filteredPredicates = this.predicates.filter(predicate => predicate.valueKind === kindValue); + } + + } + + getEntitiesByType(rangeUrl : string) { + if (!this.association) return; + + this.ontologyService.getAllEntitiesByType(rangeUrl).subscribe({ + next: (res) => { + this.allPossibleRanges = res; + console.log("All possible ranges for this predicate : ", res); + }, + error: (err) => { + console.error("Error fetching possible ranges: ", err); + } + }); + + } + onCheckboxChange(prop: any) { + // if (prop.selected) { + this.association.predicate = prop; + this.association.valueKind = this.association.predicate?.valueKind || 'literal'; + + console.log("Selected predicate: ", prop); + this.getEntitiesByType(prop.range); + // this.onPredicateChange(null); + // } + } + cancelAddAssociation() { + this.association.predicate = null; + } + + confirm() { + this.dialogRef.close(this.data.association); + } + + +} diff --git a/Frontend/src/app/components/type-selector/type-selector.component.html b/Frontend/src/app/components/type-selector/type-selector.component.html new file mode 100644 index 00000000..defac479 --- /dev/null +++ b/Frontend/src/app/components/type-selector/type-selector.component.html @@ -0,0 +1 @@ +

type-selector works!

diff --git a/RDF_Back/projects/archive/store/txn-status b/Frontend/src/app/components/type-selector/type-selector.component.scss similarity index 100% rename from RDF_Back/projects/archive/store/txn-status rename to Frontend/src/app/components/type-selector/type-selector.component.scss diff --git a/Frontend/src/app/components/type-selector/type-selector.component.spec.ts b/Frontend/src/app/components/type-selector/type-selector.component.spec.ts new file mode 100644 index 00000000..4404e117 --- /dev/null +++ b/Frontend/src/app/components/type-selector/type-selector.component.spec.ts @@ -0,0 +1,23 @@ +import { ComponentFixture, TestBed } from '@angular/core/testing'; + +import { TypeSelectorComponent } from './type-selector.component'; + +describe('TypeSelectorComponent', () => { + let component: TypeSelectorComponent; + let fixture: ComponentFixture; + + beforeEach(async () => { + await TestBed.configureTestingModule({ + imports: [TypeSelectorComponent] + }) + .compileComponents(); + + fixture = TestBed.createComponent(TypeSelectorComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it('should create', () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/Frontend/src/app/components/type-selector/type-selector.component.ts b/Frontend/src/app/components/type-selector/type-selector.component.ts new file mode 100644 index 00000000..bb3a1b70 --- /dev/null +++ b/Frontend/src/app/components/type-selector/type-selector.component.ts @@ -0,0 +1,11 @@ +import { Component } from '@angular/core'; + +@Component({ + selector: 'app-type-selector', + imports: [], + templateUrl: './type-selector.component.html', + styleUrl: './type-selector.component.scss' +}) +export class TypeSelectorComponent { + +} diff --git a/Frontend/src/app/models/project.model.ts b/Frontend/src/app/models/project.model.ts index 2c7888f8..0eb0815e 100644 --- a/Frontend/src/app/models/project.model.ts +++ b/Frontend/src/app/models/project.model.ts @@ -14,6 +14,8 @@ export interface ProjectDto { created: string | null; /** Date de dernière modification (format ISO) */ lastModified: string | null; + + prefix : string; } /** @@ -23,6 +25,7 @@ export interface OpenProjectRequest { name: string; persistent?: boolean; description?: string; + prefix : string; } /** diff --git a/Frontend/src/app/models/ressource.ts b/Frontend/src/app/models/ressource.ts index b270db19..892619e3 100644 --- a/Frontend/src/app/models/ressource.ts +++ b/Frontend/src/app/models/ressource.ts @@ -23,118 +23,3 @@ export interface Association { object : string; } -export const allEntities: Entity[] = [ - { - id: '1', - titre: 'Marie Curie', - date: '1867-11-07', - source: 'Manuel', - statut: 'complet', - type: 'Person', - birthDate: '07/11/1867', - deathDate: '04/07/1934', - associatedWith: [2, 11] - }, - { - id: '2', - titre: 'Pierre Curie', - date: '1859-05-15', - source: 'Manuel', - statut: 'partiel', - type: 'Person', - birthDate: '15/05/1859', - deathDate: '19/04/1906', - associatedWith: [1] - }, - { - id: '3', - titre: 'Découverte du Radium', - date: '1898-12-26', - source: 'Archives scientifiques', - statut: 'complet', - type: 'Event' - }, - { - id: '4', - titre: 'Laboratoire Curie', - date: '1914-07-31', - source: 'Archives institutionnelles', - statut: 'complet', - type: 'Place' - }, - { - id: '5', - titre: 'Notes de recherche 1898', - date: '1898-01-01', - source: 'Automatique', - statut: 'partiel', - type: 'Record' - }, - { - id: '6', - titre: 'Prix Nobel de Physique', - date: '1903-12-10', - source: 'Archives Nobel', - statut: 'complet', - type: 'Event' - }, - { - id: '7', - titre: 'Institut Curie', - date: '1909-01-01', - source: 'Archives institutionnelles', - statut: 'complet', - type: 'Agent' - }, - { - id: '8', - titre: 'Manuscrit original - Radioactivité', - date: '1902-05-15', - source: 'Bibliothèque nationale', - statut: 'complet', - type: 'Instantiation' - }, - { - id: '9', - titre: 'Correspondance scientifique', - date: '1900-01-01', - source: 'Automatique', - statut: 'partiel', - type: 'Record Resource' - }, - { - id: '10', - titre: 'Photographie de laboratoire', - date: '1905-03-20', - source: 'Manuel', - statut: 'complet', - type: 'Instantiation' - }, - { - id: '11', - titre: 'Irène Joliot-Curie', - date: '1897-09-12', - source: 'Manuel', - statut: 'complet', - type: 'Person', - birthDate: '12/09/1897', - deathDate: '17/03/1956', - associatedWith: ['Marie Curie', 'Frédéric Joliot-Curie'] - }, - { - id: '12', - titre: 'Université de Paris', - date: '1896-01-01', - source: 'Archives universitaires', - statut: 'complet', - type: 'Place' - }, - { - id: '13', - titre: 'Journal de recherche 1903', - date: '1903-06-15', - source: 'Automatique', - statut: 'partiel', - type: 'Record' - } - ]; \ No newline at end of file diff --git a/Frontend/src/app/services/gestion-projet.service.ts b/Frontend/src/app/services/gestion-projet.service.ts index 5a1078e0..d2019012 100644 --- a/Frontend/src/app/services/gestion-projet.service.ts +++ b/Frontend/src/app/services/gestion-projet.service.ts @@ -4,6 +4,7 @@ import { Observable, throwError, BehaviorSubject } from 'rxjs'; import { catchError, tap } from 'rxjs/operators'; import { ProjectDto, OpenProjectRequest } from '../models/project.model'; import { MatSnackBar } from '@angular/material/snack-bar'; +import { firstValueFrom } from 'rxjs'; @Injectable({ providedIn: 'root' @@ -61,6 +62,18 @@ export class GestionProjetService { ); } + createProject(request: OpenProjectRequest): Observable { + return this.http.post(`${this.API_BASE}/create`, request).pipe( + tap(project => { + this._activeProject$.next(project); + this.snackBar.open(`Project created`, 'Close', { + duration: 3000, panelClass: ['snackbar-success'] + }); + }), + catchError(err => this.handleError(err, 'Error while creating the project')) + ); + } + deleteProject(projectName: string): Observable { return this.http.delete(`${this.API_BASE}/${projectName}`, { responseType: 'text' @@ -87,7 +100,7 @@ export class GestionProjetService { * Close the active project. The data remains on disk. */ - closeProject(): Observable { + closeProject(): Observable { return this.http.post(`${this.API_BASE}/close`, {}).pipe( tap(() => { this._activeProject$.next(null); @@ -124,5 +137,44 @@ export class GestionProjetService { return throwError(() => new Error(errorMessage)); } + importBackUpProject(file: File): Observable { + const formData = new FormData(); + formData.append('file', file); + + return this.http.post(`${this.API_BASE}/import-backup`, formData, + // { + // reportProgress: true, + // observe: 'events' + // } + ); + } + + importTurtleSource(file: File): Observable { + const formData = new FormData(); + formData.append('file', file); + + return this.http.post(`${this.API_BASE}/import`, formData, + // { + // reportProgress: true, + // observe: 'events' + // } + ); + } + + async exportInternalDataSource(): Promise { + return firstValueFrom( + this.http.get(`${this.API_BASE}/export/internal`, { + responseType: 'blob', + }) + ); + } + async exportBackup(): Promise { + return firstValueFrom( + this.http.get(`${this.API_BASE}/export/backup`, { + responseType: 'blob', + }) + ); + } + } \ No newline at end of file diff --git a/Frontend/src/app/services/gestion-ressources.service.ts b/Frontend/src/app/services/gestion-ressources.service.ts index 34c46f56..99483e13 100644 --- a/Frontend/src/app/services/gestion-ressources.service.ts +++ b/Frontend/src/app/services/gestion-ressources.service.ts @@ -11,6 +11,7 @@ export class GestionRessourcesService { private apiUrl = 'http://localhost:8080/sparql'; private ontologyUrl = 'http://localhost:8080/ontology'; private rdfUrl = 'http://localhost:8080/rdf'; + private ricoGraphIri = 'http://cnrs.lacito/app#/context/ontology/rico'; // ⚠️ à vérifier exactement contre RdfContexts.CTX_ONTO_RICO constructor( private http: HttpClient, @@ -23,7 +24,12 @@ export class GestionRessourcesService { getOntologyLabel(listeIris: string[]): any[] { // ❌ Remove all types from this namespace - listeIris = listeIris.filter(iri => !iri.startsWith('http://uspn.fr/app#') && !iri.startsWith("http://purl.org/vocommons/voaf#") && !iri.startsWith("http://www.w3.org/2004/02/skos/core#")); + listeIris = listeIris.filter(iri => + !iri.startsWith('http://uspn.fr/app#') + && !iri.startsWith("http://purl.org/vocommons/voaf#") + && !iri.startsWith("http://www.w3.org/2004/02/skos/core#") + && !iri.startsWith('http://www.w3.org/2002/07/owl#') + ); const ontology_types: any[] = []; const labels = this.ontologyLabelsService.getLabels(); @@ -130,14 +136,16 @@ export class GestionRessourcesService { getAllRicoClasses(): Observable { const objt = { - "query": "PREFIX owl: PREFIX rdfs: SELECT ?type ?label WHERE { GRAPH { { ?type a owl:Class . } UNION { ?type a rdfs:Class . } FILTER(STRSTARTS(STR(?type), \"https://www.ica.org/standards/RiC/ontology#\")) OPTIONAL { ?type rdfs:label ?label . FILTER(lang(?label) = \"\" || langMatches(lang(?label), \"en\") || langMatches(lang(?label), \"fr\")) } } } ORDER BY ?type" - }; + query: `PREFIX owl: PREFIX rdfs: SELECT ?type ?label WHERE { GRAPH <${this.ricoGraphIri}> { { ?type a owl:Class . } UNION { ?type a rdfs:Class . } FILTER(STRSTARTS(STR(?type), "https://www.ica.org/standards/RiC/ontology#")) OPTIONAL { ?type rdfs:label ?label . FILTER(lang(?label) = "" || langMatches(lang(?label), "en") || langMatches(lang(?label), "fr")) } } } ORDER BY ?type` + };1 return this.http.post(`${this.apiUrl}/select`, objt); } + // BIND(IRI(CONCAT("https://www.ica.org/standards/RiC/ontology#", "${type}")) AS ?selectedClass) + getPredicatesByTypeRico(type: string): Observable { const objt = { - query: `PREFIX rico: PREFIX rdf: PREFIX rdfs: PREFIX owl: SELECT DISTINCT ?p ?label ?domain ?range ?valueKind WHERE { GRAPH { BIND(rico:${type} AS ?selectedClass) ?selectedClass rdfs:subClassOf* ?domain . ?p rdfs:domain ?domain . FILTER(STRSTARTS(STR(?p), "https://www.ica.org/standards/RiC/ontology#")) OPTIONAL { ?p rdfs:label ?label . FILTER(lang(?label) = "" || langMatches(lang(?label), "en") || langMatches(lang(?label), "fr")) } OPTIONAL { ?p rdfs:range ?range . } BIND(IF(EXISTS { ?p a owl:ObjectProperty . }, "iri", IF(EXISTS { ?p a owl:DatatypeProperty . }, "literal", "unknown")) AS ?valueKind) } } ORDER BY ?p` + query: `PREFIX rico: PREFIX rdf: PREFIX rdfs: PREFIX owl: SELECT DISTINCT ?p ?label ?domain ?range ?valueKind WHERE { GRAPH <${this.ricoGraphIri}> { BIND(rico:${type} AS ?selectedClass) ?selectedClass rdfs:subClassOf* ?domain . ?p rdfs:domain ?domain . FILTER(STRSTARTS(STR(?p), "https://www.ica.org/standards/RiC/ontology#")) OPTIONAL { ?p rdfs:label ?label . FILTER(lang(?label) = "" || langMatches(lang(?label), "en") || langMatches(lang(?label), "fr")) } OPTIONAL { ?p rdfs:range ?range . } BIND(IF(EXISTS { ?p a owl:ObjectProperty . }, "iri", IF(EXISTS { ?p a owl:DatatypeProperty . }, "literal", "unknown")) AS ?valueKind) } } ORDER BY ?p` }; return this.http.post(`${this.apiUrl}/select`, objt); diff --git a/RDF_Back/projects/Test_Mehrez/store/contexts.dat b/RDF_Back/projects/Test_Mehrez/store/contexts.dat deleted file mode 100644 index 50ab6f1a..00000000 Binary files a/RDF_Back/projects/Test_Mehrez/store/contexts.dat and /dev/null differ diff --git a/RDF_Back/projects/Test_Mehrez/store/namespaces.dat b/RDF_Back/projects/Test_Mehrez/store/namespaces.dat deleted file mode 100644 index b1ec9998..00000000 --- a/RDF_Back/projects/Test_Mehrez/store/namespaces.dat +++ /dev/null @@ -1 +0,0 @@ -nnf \ No newline at end of file diff --git a/RDF_Back/projects/Test_Mehrez/store/nativerdf.ver b/RDF_Back/projects/Test_Mehrez/store/nativerdf.ver deleted file mode 100644 index fb467b15..00000000 --- a/RDF_Back/projects/Test_Mehrez/store/nativerdf.ver +++ /dev/null @@ -1 +0,0 @@ -5.2.2 \ No newline at end of file diff --git a/RDF_Back/projects/Test_Mehrez/store/triples-posc.alloc b/RDF_Back/projects/Test_Mehrez/store/triples-posc.alloc deleted file mode 100644 index 86b2a60a..00000000 Binary files a/RDF_Back/projects/Test_Mehrez/store/triples-posc.alloc and /dev/null differ diff --git a/RDF_Back/projects/Test_Mehrez/store/triples-posc.dat b/RDF_Back/projects/Test_Mehrez/store/triples-posc.dat deleted file mode 100644 index b4c167fc..00000000 Binary files a/RDF_Back/projects/Test_Mehrez/store/triples-posc.dat and /dev/null differ diff --git a/RDF_Back/projects/Test_Mehrez/store/triples-spoc.alloc b/RDF_Back/projects/Test_Mehrez/store/triples-spoc.alloc deleted file mode 100644 index 86b2a60a..00000000 Binary files a/RDF_Back/projects/Test_Mehrez/store/triples-spoc.alloc and /dev/null differ diff --git a/RDF_Back/projects/Test_Mehrez/store/triples-spoc.dat b/RDF_Back/projects/Test_Mehrez/store/triples-spoc.dat deleted file mode 100644 index c1ddc956..00000000 Binary files a/RDF_Back/projects/Test_Mehrez/store/triples-spoc.dat and /dev/null differ diff --git a/RDF_Back/projects/Test_Mehrez/store/triples.prop b/RDF_Back/projects/Test_Mehrez/store/triples.prop deleted file mode 100644 index caa81a7b..00000000 --- a/RDF_Back/projects/Test_Mehrez/store/triples.prop +++ /dev/null @@ -1,4 +0,0 @@ -#triple indexes meta-data, DO NOT EDIT! -#Sun Mar 29 12:59:07 CEST 2026 -triple-indexes=spoc,posc -version=10 diff --git a/RDF_Back/projects/Test_Mehrez/store/txncache.dat b/RDF_Back/projects/Test_Mehrez/store/txncache.dat deleted file mode 100644 index 4b88b8b3..00000000 Binary files a/RDF_Back/projects/Test_Mehrez/store/txncache.dat and /dev/null differ diff --git a/RDF_Back/projects/Test_Mehrez/store/values.dat b/RDF_Back/projects/Test_Mehrez/store/values.dat deleted file mode 100644 index 09e3f2d0..00000000 Binary files a/RDF_Back/projects/Test_Mehrez/store/values.dat and /dev/null differ diff --git a/RDF_Back/projects/Test_Mehrez/store/values.hash b/RDF_Back/projects/Test_Mehrez/store/values.hash deleted file mode 100644 index 5eb48c89..00000000 Binary files a/RDF_Back/projects/Test_Mehrez/store/values.hash and /dev/null differ diff --git a/RDF_Back/projects/Test_Mehrez/store/values.id b/RDF_Back/projects/Test_Mehrez/store/values.id deleted file mode 100644 index b60099b4..00000000 Binary files a/RDF_Back/projects/Test_Mehrez/store/values.id and /dev/null differ diff --git a/RDF_Back/projects/archive/store/contexts.dat b/RDF_Back/projects/archive/store/contexts.dat deleted file mode 100644 index 9b94c369..00000000 Binary files a/RDF_Back/projects/archive/store/contexts.dat and /dev/null differ diff --git a/RDF_Back/projects/archive/store/namespaces.dat b/RDF_Back/projects/archive/store/namespaces.dat deleted file mode 100644 index d8865401..00000000 Binary files a/RDF_Back/projects/archive/store/namespaces.dat and /dev/null differ diff --git a/RDF_Back/projects/archive/store/nativerdf.ver b/RDF_Back/projects/archive/store/nativerdf.ver deleted file mode 100644 index fb467b15..00000000 --- a/RDF_Back/projects/archive/store/nativerdf.ver +++ /dev/null @@ -1 +0,0 @@ -5.2.2 \ No newline at end of file diff --git a/RDF_Back/projects/archive/store/triples-posc.alloc b/RDF_Back/projects/archive/store/triples-posc.alloc deleted file mode 100644 index ffd70af6..00000000 Binary files a/RDF_Back/projects/archive/store/triples-posc.alloc and /dev/null differ diff --git a/RDF_Back/projects/archive/store/triples-posc.dat b/RDF_Back/projects/archive/store/triples-posc.dat deleted file mode 100644 index 4265f621..00000000 Binary files a/RDF_Back/projects/archive/store/triples-posc.dat and /dev/null differ diff --git a/RDF_Back/projects/archive/store/triples-spoc.alloc b/RDF_Back/projects/archive/store/triples-spoc.alloc deleted file mode 100644 index 9fa4e28f..00000000 Binary files a/RDF_Back/projects/archive/store/triples-spoc.alloc and /dev/null differ diff --git a/RDF_Back/projects/archive/store/triples-spoc.dat b/RDF_Back/projects/archive/store/triples-spoc.dat deleted file mode 100644 index ef7e9ddf..00000000 Binary files a/RDF_Back/projects/archive/store/triples-spoc.dat and /dev/null differ diff --git a/RDF_Back/projects/archive/store/triples.prop b/RDF_Back/projects/archive/store/triples.prop deleted file mode 100644 index 4eb8a8a1..00000000 --- a/RDF_Back/projects/archive/store/triples.prop +++ /dev/null @@ -1,4 +0,0 @@ -#triple indexes meta-data, DO NOT EDIT! -#Thu Mar 19 11:22:37 CET 2026 -triple-indexes=spoc,posc -version=10 diff --git a/RDF_Back/projects/archive/store/values.dat b/RDF_Back/projects/archive/store/values.dat deleted file mode 100644 index afbf55e8..00000000 Binary files a/RDF_Back/projects/archive/store/values.dat and /dev/null differ diff --git a/RDF_Back/projects/archive/store/values.hash b/RDF_Back/projects/archive/store/values.hash deleted file mode 100644 index 76fc7ced..00000000 Binary files a/RDF_Back/projects/archive/store/values.hash and /dev/null differ diff --git a/RDF_Back/projects/archive/store/values.id b/RDF_Back/projects/archive/store/values.id deleted file mode 100644 index 40514f13..00000000 Binary files a/RDF_Back/projects/archive/store/values.id and /dev/null differ diff --git a/RDF_Back/projects/archive_khaouala/store/contexts.dat b/RDF_Back/projects/archive_khaouala/store/contexts.dat deleted file mode 100644 index 48791cb7..00000000 Binary files a/RDF_Back/projects/archive_khaouala/store/contexts.dat and /dev/null differ diff --git a/RDF_Back/projects/archive_khaouala/store/namespaces.dat b/RDF_Back/projects/archive_khaouala/store/namespaces.dat deleted file mode 100644 index d8865401..00000000 Binary files a/RDF_Back/projects/archive_khaouala/store/namespaces.dat and /dev/null differ diff --git a/RDF_Back/projects/archive_khaouala/store/nativerdf.ver b/RDF_Back/projects/archive_khaouala/store/nativerdf.ver deleted file mode 100644 index fb467b15..00000000 --- a/RDF_Back/projects/archive_khaouala/store/nativerdf.ver +++ /dev/null @@ -1 +0,0 @@ -5.2.2 \ No newline at end of file diff --git a/RDF_Back/projects/archive_khaouala/store/triples-posc.alloc b/RDF_Back/projects/archive_khaouala/store/triples-posc.alloc deleted file mode 100644 index d8d3ff45..00000000 Binary files a/RDF_Back/projects/archive_khaouala/store/triples-posc.alloc and /dev/null differ diff --git a/RDF_Back/projects/archive_khaouala/store/triples-posc.dat b/RDF_Back/projects/archive_khaouala/store/triples-posc.dat deleted file mode 100644 index f88f530f..00000000 Binary files a/RDF_Back/projects/archive_khaouala/store/triples-posc.dat and /dev/null differ diff --git a/RDF_Back/projects/archive_khaouala/store/triples-spoc.alloc b/RDF_Back/projects/archive_khaouala/store/triples-spoc.alloc deleted file mode 100644 index 37721048..00000000 Binary files a/RDF_Back/projects/archive_khaouala/store/triples-spoc.alloc and /dev/null differ diff --git a/RDF_Back/projects/archive_khaouala/store/triples-spoc.dat b/RDF_Back/projects/archive_khaouala/store/triples-spoc.dat deleted file mode 100644 index 65c26cac..00000000 Binary files a/RDF_Back/projects/archive_khaouala/store/triples-spoc.dat and /dev/null differ diff --git a/RDF_Back/projects/archive_khaouala/store/triples.prop b/RDF_Back/projects/archive_khaouala/store/triples.prop deleted file mode 100644 index fe446934..00000000 --- a/RDF_Back/projects/archive_khaouala/store/triples.prop +++ /dev/null @@ -1,4 +0,0 @@ -#triple indexes meta-data, DO NOT EDIT! -#Thu Mar 19 11:31:37 CET 2026 -triple-indexes=spoc,posc -version=10 diff --git a/RDF_Back/projects/archive_khaouala/store/txn-status b/RDF_Back/projects/archive_khaouala/store/txn-status deleted file mode 100644 index e69de29b..00000000 diff --git a/RDF_Back/projects/archive_khaouala/store/txncache.alloc b/RDF_Back/projects/archive_khaouala/store/txncache.alloc deleted file mode 100644 index e69de29b..00000000 diff --git a/RDF_Back/projects/archive_khaouala/store/txncache.dat b/RDF_Back/projects/archive_khaouala/store/txncache.dat deleted file mode 100644 index 4b88b8b3..00000000 Binary files a/RDF_Back/projects/archive_khaouala/store/txncache.dat and /dev/null differ diff --git a/RDF_Back/projects/archive_khaouala/store/values.dat b/RDF_Back/projects/archive_khaouala/store/values.dat deleted file mode 100644 index 259c6864..00000000 Binary files a/RDF_Back/projects/archive_khaouala/store/values.dat and /dev/null differ diff --git a/RDF_Back/projects/archive_khaouala/store/values.hash b/RDF_Back/projects/archive_khaouala/store/values.hash deleted file mode 100644 index 518e12a1..00000000 Binary files a/RDF_Back/projects/archive_khaouala/store/values.hash and /dev/null differ diff --git a/RDF_Back/projects/archive_khaouala/store/values.id b/RDF_Back/projects/archive_khaouala/store/values.id deleted file mode 100644 index 83093564..00000000 Binary files a/RDF_Back/projects/archive_khaouala/store/values.id and /dev/null differ diff --git a/RDF_Back/projects/archive_khaoula/store/contexts.dat b/RDF_Back/projects/archive_khaoula/store/contexts.dat deleted file mode 100644 index 67c441ca..00000000 Binary files a/RDF_Back/projects/archive_khaoula/store/contexts.dat and /dev/null differ diff --git a/RDF_Back/projects/archive_khaoula/store/lock/locked b/RDF_Back/projects/archive_khaoula/store/lock/locked deleted file mode 100644 index e69de29b..00000000 diff --git a/RDF_Back/projects/archive_khaoula/store/lock/process b/RDF_Back/projects/archive_khaoula/store/lock/process deleted file mode 100644 index 3ab386aa..00000000 --- a/RDF_Back/projects/archive_khaoula/store/lock/process +++ /dev/null @@ -1 +0,0 @@ -8308@LAPTOP-6K16SHPP \ No newline at end of file diff --git a/RDF_Back/projects/archive_khaoula/store/namespaces.dat b/RDF_Back/projects/archive_khaoula/store/namespaces.dat deleted file mode 100644 index d8865401..00000000 Binary files a/RDF_Back/projects/archive_khaoula/store/namespaces.dat and /dev/null differ diff --git a/RDF_Back/projects/archive_khaoula/store/nativerdf.ver b/RDF_Back/projects/archive_khaoula/store/nativerdf.ver deleted file mode 100644 index fb467b15..00000000 --- a/RDF_Back/projects/archive_khaoula/store/nativerdf.ver +++ /dev/null @@ -1 +0,0 @@ -5.2.2 \ No newline at end of file diff --git a/RDF_Back/projects/archive_khaoula/store/triples-posc.alloc b/RDF_Back/projects/archive_khaoula/store/triples-posc.alloc deleted file mode 100644 index 22480a96..00000000 Binary files a/RDF_Back/projects/archive_khaoula/store/triples-posc.alloc and /dev/null differ diff --git a/RDF_Back/projects/archive_khaoula/store/triples-posc.dat b/RDF_Back/projects/archive_khaoula/store/triples-posc.dat deleted file mode 100644 index 2a633a6a..00000000 Binary files a/RDF_Back/projects/archive_khaoula/store/triples-posc.dat and /dev/null differ diff --git a/RDF_Back/projects/archive_khaoula/store/triples-spoc.alloc b/RDF_Back/projects/archive_khaoula/store/triples-spoc.alloc deleted file mode 100644 index c6f78b67..00000000 Binary files a/RDF_Back/projects/archive_khaoula/store/triples-spoc.alloc and /dev/null differ diff --git a/RDF_Back/projects/archive_khaoula/store/triples-spoc.dat b/RDF_Back/projects/archive_khaoula/store/triples-spoc.dat deleted file mode 100644 index bad0fe2a..00000000 Binary files a/RDF_Back/projects/archive_khaoula/store/triples-spoc.dat and /dev/null differ diff --git a/RDF_Back/projects/archive_khaoula/store/triples.prop b/RDF_Back/projects/archive_khaoula/store/triples.prop deleted file mode 100644 index 8e10a362..00000000 --- a/RDF_Back/projects/archive_khaoula/store/triples.prop +++ /dev/null @@ -1,4 +0,0 @@ -#triple indexes meta-data, DO NOT EDIT! -#Thu Mar 19 11:33:34 CET 2026 -triple-indexes=spoc,posc -version=10 diff --git a/RDF_Back/projects/archive_khaoula/store/txn-status b/RDF_Back/projects/archive_khaoula/store/txn-status deleted file mode 100644 index e69de29b..00000000 diff --git a/RDF_Back/projects/archive_khaoula/store/txncache.alloc b/RDF_Back/projects/archive_khaoula/store/txncache.alloc deleted file mode 100644 index e69de29b..00000000 diff --git a/RDF_Back/projects/archive_khaoula/store/txncache.dat b/RDF_Back/projects/archive_khaoula/store/txncache.dat deleted file mode 100644 index e69de29b..00000000 diff --git a/RDF_Back/projects/archive_khaoula/store/values.dat b/RDF_Back/projects/archive_khaoula/store/values.dat deleted file mode 100644 index bdbf5cb8..00000000 Binary files a/RDF_Back/projects/archive_khaoula/store/values.dat and /dev/null differ diff --git a/RDF_Back/projects/archive_khaoula/store/values.hash b/RDF_Back/projects/archive_khaoula/store/values.hash deleted file mode 100644 index 991a7d92..00000000 Binary files a/RDF_Back/projects/archive_khaoula/store/values.hash and /dev/null differ diff --git a/RDF_Back/projects/archive_khaoula/store/values.id b/RDF_Back/projects/archive_khaoula/store/values.id deleted file mode 100644 index e2b060b6..00000000 Binary files a/RDF_Back/projects/archive_khaoula/store/values.id and /dev/null differ diff --git a/RDF_Back/projects/archive_test/store/contexts.dat b/RDF_Back/projects/archive_test/store/contexts.dat deleted file mode 100644 index 39aca6ec..00000000 Binary files a/RDF_Back/projects/archive_test/store/contexts.dat and /dev/null differ diff --git a/RDF_Back/projects/archive_test/store/namespaces.dat b/RDF_Back/projects/archive_test/store/namespaces.dat deleted file mode 100644 index b1ec9998..00000000 --- a/RDF_Back/projects/archive_test/store/namespaces.dat +++ /dev/null @@ -1 +0,0 @@ -nnf \ No newline at end of file diff --git a/RDF_Back/projects/archive_test/store/nativerdf.ver b/RDF_Back/projects/archive_test/store/nativerdf.ver deleted file mode 100644 index fb467b15..00000000 --- a/RDF_Back/projects/archive_test/store/nativerdf.ver +++ /dev/null @@ -1 +0,0 @@ -5.2.2 \ No newline at end of file diff --git a/RDF_Back/projects/archive_test/store/triples-posc.alloc b/RDF_Back/projects/archive_test/store/triples-posc.alloc deleted file mode 100644 index 86b2a60a..00000000 Binary files a/RDF_Back/projects/archive_test/store/triples-posc.alloc and /dev/null differ diff --git a/RDF_Back/projects/archive_test/store/triples-posc.dat b/RDF_Back/projects/archive_test/store/triples-posc.dat deleted file mode 100644 index 47826e09..00000000 Binary files a/RDF_Back/projects/archive_test/store/triples-posc.dat and /dev/null differ diff --git a/RDF_Back/projects/archive_test/store/triples-spoc.alloc b/RDF_Back/projects/archive_test/store/triples-spoc.alloc deleted file mode 100644 index 86b2a60a..00000000 Binary files a/RDF_Back/projects/archive_test/store/triples-spoc.alloc and /dev/null differ diff --git a/RDF_Back/projects/archive_test/store/triples-spoc.dat b/RDF_Back/projects/archive_test/store/triples-spoc.dat deleted file mode 100644 index 47826e09..00000000 Binary files a/RDF_Back/projects/archive_test/store/triples-spoc.dat and /dev/null differ diff --git a/RDF_Back/projects/archive_test/store/triples.prop b/RDF_Back/projects/archive_test/store/triples.prop deleted file mode 100644 index 7c342ddf..00000000 --- a/RDF_Back/projects/archive_test/store/triples.prop +++ /dev/null @@ -1,4 +0,0 @@ -#triple indexes meta-data, DO NOT EDIT! -#Sat Mar 21 12:47:29 CET 2026 -triple-indexes=spoc,posc -version=10 diff --git a/RDF_Back/projects/archive_test/store/txn-status b/RDF_Back/projects/archive_test/store/txn-status deleted file mode 100644 index e69de29b..00000000 diff --git a/RDF_Back/projects/archive_test/store/txncache.alloc b/RDF_Back/projects/archive_test/store/txncache.alloc deleted file mode 100644 index e69de29b..00000000 diff --git a/RDF_Back/projects/archive_test/store/txncache.dat b/RDF_Back/projects/archive_test/store/txncache.dat deleted file mode 100644 index 4b88b8b3..00000000 Binary files a/RDF_Back/projects/archive_test/store/txncache.dat and /dev/null differ diff --git a/RDF_Back/projects/archive_test/store/values.dat b/RDF_Back/projects/archive_test/store/values.dat deleted file mode 100644 index 8589f42f..00000000 Binary files a/RDF_Back/projects/archive_test/store/values.dat and /dev/null differ diff --git a/RDF_Back/projects/archive_test/store/values.hash b/RDF_Back/projects/archive_test/store/values.hash deleted file mode 100644 index 72710d24..00000000 Binary files a/RDF_Back/projects/archive_test/store/values.hash and /dev/null differ diff --git a/RDF_Back/projects/archive_test/store/values.id b/RDF_Back/projects/archive_test/store/values.id deleted file mode 100644 index e323bb44..00000000 Binary files a/RDF_Back/projects/archive_test/store/values.id and /dev/null differ diff --git a/RDF_Back/projects/my-project/store/contexts.dat b/RDF_Back/projects/my-project/store/contexts.dat deleted file mode 100644 index da921d66..00000000 Binary files a/RDF_Back/projects/my-project/store/contexts.dat and /dev/null differ diff --git a/RDF_Back/projects/my-project/store/namespaces.dat b/RDF_Back/projects/my-project/store/namespaces.dat deleted file mode 100644 index b2ae4dd7..00000000 Binary files a/RDF_Back/projects/my-project/store/namespaces.dat and /dev/null differ diff --git a/RDF_Back/projects/my-project/store/nativerdf.ver b/RDF_Back/projects/my-project/store/nativerdf.ver deleted file mode 100644 index fb467b15..00000000 --- a/RDF_Back/projects/my-project/store/nativerdf.ver +++ /dev/null @@ -1 +0,0 @@ -5.2.2 \ No newline at end of file diff --git a/RDF_Back/projects/my-project/store/triples-posc.alloc b/RDF_Back/projects/my-project/store/triples-posc.alloc deleted file mode 100644 index d8d3ff45..00000000 Binary files a/RDF_Back/projects/my-project/store/triples-posc.alloc and /dev/null differ diff --git a/RDF_Back/projects/my-project/store/triples-posc.dat b/RDF_Back/projects/my-project/store/triples-posc.dat deleted file mode 100644 index b0bfe076..00000000 Binary files a/RDF_Back/projects/my-project/store/triples-posc.dat and /dev/null differ diff --git a/RDF_Back/projects/my-project/store/triples-spoc.alloc b/RDF_Back/projects/my-project/store/triples-spoc.alloc deleted file mode 100644 index ac59bd8d..00000000 Binary files a/RDF_Back/projects/my-project/store/triples-spoc.alloc and /dev/null differ diff --git a/RDF_Back/projects/my-project/store/triples-spoc.dat b/RDF_Back/projects/my-project/store/triples-spoc.dat deleted file mode 100644 index d16f1e3d..00000000 Binary files a/RDF_Back/projects/my-project/store/triples-spoc.dat and /dev/null differ diff --git a/RDF_Back/projects/my-project/store/triples.prop b/RDF_Back/projects/my-project/store/triples.prop deleted file mode 100644 index 74e7651f..00000000 --- a/RDF_Back/projects/my-project/store/triples.prop +++ /dev/null @@ -1,4 +0,0 @@ -#triple indexes meta-data, DO NOT EDIT! -#Sat Mar 14 15:54:26 CET 2026 -triple-indexes=spoc,posc -version=10 diff --git a/RDF_Back/projects/my-project/store/txn-status b/RDF_Back/projects/my-project/store/txn-status deleted file mode 100644 index e69de29b..00000000 diff --git a/RDF_Back/projects/my-project/store/values.dat b/RDF_Back/projects/my-project/store/values.dat deleted file mode 100644 index 50593a5a..00000000 Binary files a/RDF_Back/projects/my-project/store/values.dat and /dev/null differ diff --git a/RDF_Back/projects/my-project/store/values.hash b/RDF_Back/projects/my-project/store/values.hash deleted file mode 100644 index bcd2d209..00000000 Binary files a/RDF_Back/projects/my-project/store/values.hash and /dev/null differ diff --git a/RDF_Back/projects/my-project/store/values.id b/RDF_Back/projects/my-project/store/values.id deleted file mode 100644 index 7a168ded..00000000 Binary files a/RDF_Back/projects/my-project/store/values.id and /dev/null differ diff --git a/RDF_Back/projects/test_projet_01/store/contexts.dat b/RDF_Back/projects/test_projet_01/store/contexts.dat deleted file mode 100644 index 55478c79..00000000 Binary files a/RDF_Back/projects/test_projet_01/store/contexts.dat and /dev/null differ diff --git a/RDF_Back/projects/test_projet_01/store/namespaces.dat b/RDF_Back/projects/test_projet_01/store/namespaces.dat deleted file mode 100644 index b1ec9998..00000000 --- a/RDF_Back/projects/test_projet_01/store/namespaces.dat +++ /dev/null @@ -1 +0,0 @@ -nnf \ No newline at end of file diff --git a/RDF_Back/projects/test_projet_01/store/nativerdf.ver b/RDF_Back/projects/test_projet_01/store/nativerdf.ver deleted file mode 100644 index fb467b15..00000000 --- a/RDF_Back/projects/test_projet_01/store/nativerdf.ver +++ /dev/null @@ -1 +0,0 @@ -5.2.2 \ No newline at end of file diff --git a/RDF_Back/projects/test_projet_01/store/triples-posc.alloc b/RDF_Back/projects/test_projet_01/store/triples-posc.alloc deleted file mode 100644 index 86b2a60a..00000000 Binary files a/RDF_Back/projects/test_projet_01/store/triples-posc.alloc and /dev/null differ diff --git a/RDF_Back/projects/test_projet_01/store/triples-posc.dat b/RDF_Back/projects/test_projet_01/store/triples-posc.dat deleted file mode 100644 index e5127a82..00000000 Binary files a/RDF_Back/projects/test_projet_01/store/triples-posc.dat and /dev/null differ diff --git a/RDF_Back/projects/test_projet_01/store/triples-spoc.alloc b/RDF_Back/projects/test_projet_01/store/triples-spoc.alloc deleted file mode 100644 index 86b2a60a..00000000 Binary files a/RDF_Back/projects/test_projet_01/store/triples-spoc.alloc and /dev/null differ diff --git a/RDF_Back/projects/test_projet_01/store/triples-spoc.dat b/RDF_Back/projects/test_projet_01/store/triples-spoc.dat deleted file mode 100644 index f80d38b3..00000000 Binary files a/RDF_Back/projects/test_projet_01/store/triples-spoc.dat and /dev/null differ diff --git a/RDF_Back/projects/test_projet_01/store/triples.prop b/RDF_Back/projects/test_projet_01/store/triples.prop deleted file mode 100644 index 49c07768..00000000 --- a/RDF_Back/projects/test_projet_01/store/triples.prop +++ /dev/null @@ -1,4 +0,0 @@ -#triple indexes meta-data, DO NOT EDIT! -#Sat Mar 21 14:02:31 CET 2026 -triple-indexes=spoc,posc -version=10 diff --git a/RDF_Back/projects/test_projet_01/store/txn-status b/RDF_Back/projects/test_projet_01/store/txn-status deleted file mode 100644 index e69de29b..00000000 diff --git a/RDF_Back/projects/test_projet_01/store/values.dat b/RDF_Back/projects/test_projet_01/store/values.dat deleted file mode 100644 index b89769d5..00000000 Binary files a/RDF_Back/projects/test_projet_01/store/values.dat and /dev/null differ diff --git a/RDF_Back/projects/test_projet_01/store/values.hash b/RDF_Back/projects/test_projet_01/store/values.hash deleted file mode 100644 index dcbe1e25..00000000 Binary files a/RDF_Back/projects/test_projet_01/store/values.hash and /dev/null differ diff --git a/RDF_Back/projects/test_projet_01/store/values.id b/RDF_Back/projects/test_projet_01/store/values.id deleted file mode 100644 index 15d34529..00000000 Binary files a/RDF_Back/projects/test_projet_01/store/values.id and /dev/null differ diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/RdfBackApplication.java b/RDF_Back/src/main/java/com/uspn/rdf_back/RdfBackApplication.java deleted file mode 100644 index b9861a40..00000000 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/RdfBackApplication.java +++ /dev/null @@ -1,20 +0,0 @@ -package com.uspn.rdf_back; - -import com.uspn.rdf_back.example.Example; -import org.eclipse.rdf4j.spring.RDF4JConfig; -import org.springframework.boot.SpringApplication; -import org.springframework.boot.autoconfigure.SpringBootApplication; -import org.springframework.context.annotation.Import; - - - -@SpringBootApplication -@Import(RDF4JConfig.class) -public class RdfBackApplication { - - public static void main(String[] args) { - SpringApplication.run(RdfBackApplication.class, args); - Example.example(); - } - -} diff --git a/RDF_Back/src/main/java/com/uspn/rdf_back/controllers/ProjectController.java b/RDF_Back/src/main/java/com/uspn/rdf_back/controllers/ProjectController.java deleted file mode 100644 index 9545d819..00000000 --- a/RDF_Back/src/main/java/com/uspn/rdf_back/controllers/ProjectController.java +++ /dev/null @@ -1,113 +0,0 @@ -package com.uspn.rdf_back.controllers; - -import com.uspn.rdf_back.dtos.*; -import com.uspn.rdf_back.services.ProjectService; -import org.springframework.http.HttpStatus; -import org.springframework.http.ResponseEntity; -import org.springframework.web.bind.annotation.*; - -import java.io.FileNotFoundException; -import java.io.IOException; -import java.util.*; -import java.util.Map; - -@RestController -@RequestMapping("/projects") -public class ProjectController { - - private final ProjectService projectService; - - public ProjectController(ProjectService projectService) { - this.projectService = projectService; - } - - @PostMapping("/open") - public Map open(@RequestBody CreateProjectRequest req) { - ProjectDto dto = projectService.openProject(req.getName(), req.isPersistent(), req.getDescription()); - return Map.of( - "status", "ok", - "project", dto.name - ); - } - - @GetMapping("/current") - public ProjectDto current() { - return projectService.readCurrentProject(); - } - - @DeleteMapping("/{projectName}") - public ResponseEntity deleteProject(@PathVariable String projectName) { - try { - projectService.deleteProject(projectName); - return ResponseEntity.ok("Project deleted successfully"); - - } catch (IllegalArgumentException e) { - return ResponseEntity - .badRequest() - .body(e.getMessage()); - - } catch (FileNotFoundException e) { - return ResponseEntity - .status(HttpStatus.NOT_FOUND) - .body(e.getMessage()); - - } catch (IOException e) { - return ResponseEntity - .status(HttpStatus.INTERNAL_SERVER_ERROR) - .body("Error deleting project"); - } - } - - @PostMapping("/close") - public Map close() { - projectService.closeProject(); - return Map.of("status", "ok"); - } - - @PutMapping("/{oldProjectName}") - public ResponseEntity updateProject( - @PathVariable String oldProjectName, - @RequestBody UpdateProjectObject newProject) { - - try { - - System.out.println("New Description is "+ newProject.description); - projectService.updateProject( - oldProjectName, - newProject.name, - newProject.description - ); - - return ResponseEntity.ok( - new ApiResponse<>(true, "Project updated successfully", null) - ); - - } catch (IllegalArgumentException e) { - return ResponseEntity - .badRequest() - .body(new ApiError(e.getMessage(), "VALIDATION_ERROR")); - - } catch (IOException e) { - return ResponseEntity - .status(HttpStatus.INTERNAL_SERVER_ERROR) - .body(new ApiError("Internal error while updating project", "IO_ERROR")); - - } catch (Exception e) { - return ResponseEntity - .status(HttpStatus.INTERNAL_SERVER_ERROR) - .body(new ApiError("Unexpected error", "UNKNOWN_ERROR")); - } - } - // Liste simple -// @GetMapping("/list") -// public List listProjects() { -// return projectService.listProjects(); -// } - - // Liste détaillée - @GetMapping("/list/details") - public List> listProjectsDetailed() { - return projectService.listProjectsDetailed(); - } - -} diff --git a/data/model.ttl b/data/model.ttl deleted file mode 100644 index f9255ee0..00000000 --- a/data/model.ttl +++ /dev/null @@ -1,3 +0,0 @@ - - a ; - "Bob" . diff --git a/data/rdf-store/contexts.dat b/data/rdf-store/contexts.dat deleted file mode 100644 index deab0dd2..00000000 Binary files a/data/rdf-store/contexts.dat and /dev/null differ diff --git a/data/rdf-store/namespaces.dat b/data/rdf-store/namespaces.dat deleted file mode 100644 index b1ec9998..00000000 --- a/data/rdf-store/namespaces.dat +++ /dev/null @@ -1 +0,0 @@ -nnf \ No newline at end of file diff --git a/data/rdf-store/nativerdf.ver b/data/rdf-store/nativerdf.ver deleted file mode 100644 index fb467b15..00000000 --- a/data/rdf-store/nativerdf.ver +++ /dev/null @@ -1 +0,0 @@ -5.2.2 \ No newline at end of file diff --git a/data/rdf-store/triples-posc.alloc b/data/rdf-store/triples-posc.alloc deleted file mode 100644 index e69de29b..00000000 diff --git a/data/rdf-store/triples-posc.dat b/data/rdf-store/triples-posc.dat deleted file mode 100644 index be88d339..00000000 Binary files a/data/rdf-store/triples-posc.dat and /dev/null differ diff --git a/data/rdf-store/triples-spoc.alloc b/data/rdf-store/triples-spoc.alloc deleted file mode 100644 index e69de29b..00000000 diff --git a/data/rdf-store/triples-spoc.dat b/data/rdf-store/triples-spoc.dat deleted file mode 100644 index be88d339..00000000 Binary files a/data/rdf-store/triples-spoc.dat and /dev/null differ diff --git a/data/rdf-store/triples.prop b/data/rdf-store/triples.prop deleted file mode 100644 index 99f73cf2..00000000 --- a/data/rdf-store/triples.prop +++ /dev/null @@ -1,4 +0,0 @@ -#triple indexes meta-data, DO NOT EDIT! -#Wed Mar 04 17:05:41 CET 2026 -triple-indexes=spoc,posc -version=10 diff --git a/data/rdf-store/txn-status b/data/rdf-store/txn-status deleted file mode 100644 index e69de29b..00000000 diff --git a/data/rdf-store/values.dat b/data/rdf-store/values.dat deleted file mode 100644 index dacabf9c..00000000 --- a/data/rdf-store/values.dat +++ /dev/null @@ -1 +0,0 @@ -ndf \ No newline at end of file diff --git a/data/rdf-store/values.id b/data/rdf-store/values.id deleted file mode 100644 index 7b5347da..00000000 Binary files a/data/rdf-store/values.id and /dev/null differ diff --git a/electron/dist/frontend/3rdpartylicenses.txt b/electron/dist/frontend/3rdpartylicenses.txt new file mode 100644 index 00000000..69f36c0a --- /dev/null +++ b/electron/dist/frontend/3rdpartylicenses.txt @@ -0,0 +1,459 @@ + +-------------------------------------------------------------------------------- +Package: @angular/router +License: "MIT" + +The MIT License + +Copyright (c) 2010-2025 Google LLC. https://angular.dev/license + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +-------------------------------------------------------------------------------- +Package: @angular/animations +License: "MIT" + +The MIT License + +Copyright (c) 2010-2025 Google LLC. https://angular.dev/license + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +-------------------------------------------------------------------------------- +Package: @angular/platform-browser +License: "MIT" + +The MIT License + +Copyright (c) 2010-2025 Google LLC. https://angular.dev/license + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +-------------------------------------------------------------------------------- +Package: @angular/material +License: "MIT" + +The MIT License + +Copyright (c) 2025 Google LLC. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +-------------------------------------------------------------------------------- +Package: @angular/cdk +License: "MIT" + +The MIT License + +Copyright (c) 2025 Google LLC. + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +-------------------------------------------------------------------------------- +Package: rxjs +License: "Apache-2.0" + + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright (c) 2015-2018 Google, Inc., Netflix, Inc., Microsoft Corp. and contributors + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. + + +-------------------------------------------------------------------------------- +Package: tslib +License: "0BSD" + +Copyright (c) Microsoft Corporation. + +Permission to use, copy, modify, and/or distribute this software for any +purpose with or without fee is hereby granted. + +THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH +REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY +AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, +INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM +LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR +OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR +PERFORMANCE OF THIS SOFTWARE. +-------------------------------------------------------------------------------- +Package: @angular/core +License: "MIT" + +The MIT License + +Copyright (c) 2010-2025 Google LLC. https://angular.dev/license + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +-------------------------------------------------------------------------------- +Package: @angular/common +License: "MIT" + +The MIT License + +Copyright (c) 2010-2025 Google LLC. https://angular.dev/license + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +-------------------------------------------------------------------------------- +Package: @angular/forms +License: "MIT" + +The MIT License + +Copyright (c) 2010-2025 Google LLC. https://angular.dev/license + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +-------------------------------------------------------------------------------- +Package: zone.js +License: "MIT" + +The MIT License + +Copyright (c) 2010-2025 Google LLC. https://angular.dev/license + +Permission is hereby granted, free of charge, to any person obtaining a copy +of this software and associated documentation files (the "Software"), to deal +in the Software without restriction, including without limitation the rights +to use, copy, modify, merge, publish, distribute, sublicense, and/or sell +copies of the Software, and to permit persons to whom the Software is +furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in +all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE +AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER +LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, +OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN +THE SOFTWARE. + +-------------------------------------------------------------------------------- diff --git a/electron/dist/frontend/browser/chunk-C6OTSZAM.js b/electron/dist/frontend/browser/chunk-C6OTSZAM.js new file mode 100644 index 00000000..9a5d571f --- /dev/null +++ b/electron/dist/frontend/browser/chunk-C6OTSZAM.js @@ -0,0 +1,7 @@ +import{Ac as pt,Bb as st,Bc as Kt,Cb as g,D as St,Db as mt,Dc as $t,E as Et,Ea as v,Eb as A,Ec as ft,Fa as V,Fc as Yt,Ga as M,Gc as I,Ha as J,Hc as Zt,Ia as C,J as kt,K as Z,L as Mt,M as S,N as X,Na as d,Oa as G,Pb as Pt,Q as P,Qa as b,R as N,Ra as tt,Sa as w,T as x,Tb as Nt,V as Q,W as r,Wa as s,Xa as u,Ya as D,Zb as Bt,_b as Ht,bb as et,bc as Vt,cb as R,da as Dt,db as ct,e as Ct,ea as Rt,eb as E,ec as jt,fa as Tt,fb as m,gb as _,hb as it,i as q,ia as B,ib as h,ja as At,jb as p,ka as U,lb as lt,m as O,ma as k,mb as dt,n as wt,oa as Lt,oc as qt,pa as Ot,pc as ht,qc as Qt,r as z,sa as zt,sb as T,ta as H,w as It,wa as f,wc as Ut,x as Y,xc as Gt,yc as Wt,z as Ft}from"./chunk-D7GXM5CJ.js";var ot;function de(){if(ot===void 0&&(ot=null,typeof window<"u")){let o=window;o.trustedTypes!==void 0&&(ot=o.trustedTypes.createPolicy("angular#components",{createHTML:c=>c}))}return ot}function W(o){return de()?.createHTML(o)||o}function Xt(o){return Error(`Unable to find icon with the name "${o}"`)}function se(){return Error("Could not find HttpClient for use with Angular Material icons. Please add provideHttpClient() to your providers.")}function Jt(o){return Error(`The URL provided to MatIconRegistry was not trusted as a resource URL via Angular's DomSanitizer. Attempted URL was "${o}".`)}function te(o){return Error(`The literal provided to MatIconRegistry was not trusted as safe HTML by Angular's DomSanitizer. Attempted literal was "${o}".`)}var F=class{url;svgText;options;svgElement;constructor(c,t,e){this.url=c,this.svgText=t,this.options=e}},ie=(()=>{class o{_httpClient;_sanitizer;_errorHandler;_document;_svgIconConfigs=new Map;_iconSetConfigs=new Map;_cachedIconsByUrl=new Map;_inProgressUrlFetches=new Map;_fontCssClassesByAlias=new Map;_resolvers=[];_defaultFontSetClass=["material-icons","mat-ligature-font"];constructor(t,e,i,a){this._httpClient=t,this._sanitizer=e,this._errorHandler=a,this._document=i}addSvgIcon(t,e,i){return this.addSvgIconInNamespace("",t,e,i)}addSvgIconLiteral(t,e,i){return this.addSvgIconLiteralInNamespace("",t,e,i)}addSvgIconInNamespace(t,e,i,a){return this._addSvgIconConfig(t,e,new F(i,null,a))}addSvgIconResolver(t){return this._resolvers.push(t),this}addSvgIconLiteralInNamespace(t,e,i,a){let n=this._sanitizer.sanitize(H.HTML,i);if(!n)throw te(i);let l=W(n);return this._addSvgIconConfig(t,e,new F("",l,a))}addSvgIconSet(t,e){return this.addSvgIconSetInNamespace("",t,e)}addSvgIconSetLiteral(t,e){return this.addSvgIconSetLiteralInNamespace("",t,e)}addSvgIconSetInNamespace(t,e,i){return this._addSvgIconSetConfig(t,new F(e,null,i))}addSvgIconSetLiteralInNamespace(t,e,i){let a=this._sanitizer.sanitize(H.HTML,e);if(!a)throw te(e);let n=W(a);return this._addSvgIconSetConfig(t,new F("",n,i))}registerFontClassAlias(t,e=t){return this._fontCssClassesByAlias.set(t,e),this}classNameForFontAlias(t){return this._fontCssClassesByAlias.get(t)||t}setDefaultFontSetClass(...t){return this._defaultFontSetClass=t,this}getDefaultFontSetClass(){return this._defaultFontSetClass}getSvgIconFromUrl(t){let e=this._sanitizer.sanitize(H.RESOURCE_URL,t);if(!e)throw Jt(t);let i=this._cachedIconsByUrl.get(e);return i?O(at(i)):this._loadSvgIconFromConfig(new F(t,null)).pipe(X(a=>this._cachedIconsByUrl.set(e,a)),z(a=>at(a)))}getNamedSvgIcon(t,e=""){let i=ee(e,t),a=this._svgIconConfigs.get(i);if(a)return this._getSvgFromConfig(a);if(a=this._getIconConfigFromResolvers(e,t),a)return this._svgIconConfigs.set(i,a),this._getSvgFromConfig(a);let n=this._iconSetConfigs.get(e);return n?this._getSvgFromIconSetConfigs(t,n):wt(Xt(i))}ngOnDestroy(){this._resolvers=[],this._svgIconConfigs.clear(),this._iconSetConfigs.clear(),this._cachedIconsByUrl.clear()}_getSvgFromConfig(t){return t.svgText?O(at(this._svgElementFromConfig(t))):this._loadSvgIconFromConfig(t).pipe(z(e=>at(e)))}_getSvgFromIconSetConfigs(t,e){let i=this._extractIconWithNameFromAnySet(t,e);if(i)return O(i);let a=e.filter(n=>!n.svgText).map(n=>this._loadSvgIconSetFromConfig(n).pipe(Ft(l=>{let L=`Loading icon set URL: ${this._sanitizer.sanitize(H.RESOURCE_URL,n.url)} failed: ${l.message}`;return this._errorHandler.handleError(new Error(L)),O(null)})));return It(a).pipe(z(()=>{let n=this._extractIconWithNameFromAnySet(t,e);if(!n)throw Xt(t);return n}))}_extractIconWithNameFromAnySet(t,e){for(let i=e.length-1;i>=0;i--){let a=e[i];if(a.svgText&&a.svgText.toString().indexOf(t)>-1){let n=this._svgElementFromConfig(a),l=this._extractSvgIconFromSet(n,t,a.options);if(l)return l}}return null}_loadSvgIconFromConfig(t){return this._fetchIcon(t).pipe(X(e=>t.svgText=e),z(()=>this._svgElementFromConfig(t)))}_loadSvgIconSetFromConfig(t){return t.svgText?O(null):this._fetchIcon(t).pipe(X(e=>t.svgText=e))}_extractSvgIconFromSet(t,e,i){let a=t.querySelector(`[id="${e}"]`);if(!a)return null;let n=a.cloneNode(!0);if(n.removeAttribute("id"),n.nodeName.toLowerCase()==="svg")return this._setSvgAttributes(n,i);if(n.nodeName.toLowerCase()==="symbol")return this._setSvgAttributes(this._toSvgElement(n),i);let l=this._svgElementFromString(W(""));return l.appendChild(n),this._setSvgAttributes(l,i)}_svgElementFromString(t){let e=this._document.createElement("DIV");e.innerHTML=t;let i=e.querySelector("svg");if(!i)throw Error(" tag not found");return i}_toSvgElement(t){let e=this._svgElementFromString(W("")),i=t.attributes;for(let a=0;aW(L)),Et(()=>this._inProgressUrlFetches.delete(n)),kt());return this._inProgressUrlFetches.set(n,y),y}_addSvgIconConfig(t,e,i){return this._svgIconConfigs.set(ee(t,e),i),this}_addSvgIconSetConfig(t,e){let i=this._iconSetConfigs.get(t);return i?i.push(e):this._iconSetConfigs.set(t,[e]),this}_svgElementFromConfig(t){if(!t.svgElement){let e=this._svgElementFromString(t.svgText);this._setSvgAttributes(e,t.options),t.svgElement=e}return t.svgElement}_getIconConfigFromResolvers(t,e){for(let i=0;ic?c.pathname+c.search:""}}var oe=["clip-path","color-profile","src","cursor","fill","filter","marker","marker-start","marker-mid","marker-end","mask","stroke"],_e=oe.map(o=>`[${o}]`).join(", "),ge=/^url\(['"]?#(.*?)['"]?\)$/,di=(()=>{class o{_elementRef=r(k);_iconRegistry=r(ie);_location=r(fe);_errorHandler=r(U);_defaultColor;get color(){return this._color||this._defaultColor}set color(t){this._color=t}_color;inline=!1;get svgIcon(){return this._svgIcon}set svgIcon(t){t!==this._svgIcon&&(t?this._updateSvgIcon(t):this._svgIcon&&this._clearSvgElement(),this._svgIcon=t)}_svgIcon;get fontSet(){return this._fontSet}set fontSet(t){let e=this._cleanupFontValue(t);e!==this._fontSet&&(this._fontSet=e,this._updateFontIconClasses())}_fontSet;get fontIcon(){return this._fontIcon}set fontIcon(t){let e=this._cleanupFontValue(t);e!==this._fontIcon&&(this._fontIcon=e,this._updateFontIconClasses())}_fontIcon;_previousFontSetClass=[];_previousFontIconClass;_svgName;_svgNamespace;_previousPath;_elementsWithExternalReferences;_currentIconFetch=Ct.EMPTY;constructor(){let t=r(new Tt("aria-hidden"),{optional:!0}),e=r(pe,{optional:!0});e&&(e.color&&(this.color=this._defaultColor=e.color),e.fontSet&&(this.fontSet=e.fontSet)),t||this._elementRef.nativeElement.setAttribute("aria-hidden","true")}_splitIconName(t){if(!t)return["",""];let e=t.split(":");switch(e.length){case 1:return["",e[0]];case 2:return e;default:throw Error(`Invalid icon name: "${t}"`)}}ngOnInit(){this._updateFontIconClasses()}ngAfterViewChecked(){let t=this._elementsWithExternalReferences;if(t&&t.size){let e=this._location.getPathname();e!==this._previousPath&&(this._previousPath=e,this._prependPathToReferences(e))}}ngOnDestroy(){this._currentIconFetch.unsubscribe(),this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear()}_usingFontIcon(){return!this.svgIcon}_setSvgElement(t){this._clearSvgElement();let e=this._location.getPathname();this._previousPath=e,this._cacheChildrenWithExternalReferences(t),this._prependPathToReferences(e),this._elementRef.nativeElement.appendChild(t)}_clearSvgElement(){let t=this._elementRef.nativeElement,e=t.childNodes.length;for(this._elementsWithExternalReferences&&this._elementsWithExternalReferences.clear();e--;){let i=t.childNodes[e];(i.nodeType!==1||i.nodeName.toLowerCase()==="svg")&&i.remove()}}_updateFontIconClasses(){if(!this._usingFontIcon())return;let t=this._elementRef.nativeElement,e=(this.fontSet?this._iconRegistry.classNameForFontAlias(this.fontSet).split(/ +/):this._iconRegistry.getDefaultFontSetClass()).filter(i=>i.length>0);this._previousFontSetClass.forEach(i=>t.classList.remove(i)),e.forEach(i=>t.classList.add(i)),this._previousFontSetClass=e,this.fontIcon!==this._previousFontIconClass&&!e.includes("mat-ligature-font")&&(this._previousFontIconClass&&t.classList.remove(this._previousFontIconClass),this.fontIcon&&t.classList.add(this.fontIcon),this._previousFontIconClass=this.fontIcon)}_cleanupFontValue(t){return typeof t=="string"?t.trim().split(" ")[0]:t}_prependPathToReferences(t){let e=this._elementsWithExternalReferences;e&&e.forEach((i,a)=>{i.forEach(n=>{a.setAttribute(n.name,`url('${t}#${n.value}')`)})})}_cacheChildrenWithExternalReferences(t){let e=t.querySelectorAll(_e),i=this._elementsWithExternalReferences=this._elementsWithExternalReferences||new Map;for(let a=0;a{let l=e[a],y=l.getAttribute(n),L=y?y.match(ge):null;if(L){let $=i.get(l);$||($=[],i.set(l,$)),$.push({name:n,value:L[1]})}})}_updateSvgIcon(t){if(this._svgNamespace=null,this._svgName=null,this._currentIconFetch.unsubscribe(),t){let[e,i]=this._splitIconName(t);e&&(this._svgNamespace=e),i&&(this._svgName=i),this._currentIconFetch=this._iconRegistry.getNamedSvgIcon(i,e).pipe(St(1)).subscribe(a=>this._setSvgElement(a),a=>{let n=`Error retrieving icon ${e}:${i}! ${a.message}`;this._errorHandler.handleError(new Error(n))})}}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=v({type:o,selectors:[["mat-icon"]],hostAttrs:["role","img",1,"mat-icon","notranslate"],hostVars:10,hostBindings:function(e,i){e&2&&(d("data-mat-icon-type",i._usingFontIcon()?"font":"svg")("data-mat-icon-name",i._svgName||i.fontIcon)("data-mat-icon-namespace",i._svgNamespace||i.fontSet)("fontIcon",i._usingFontIcon()?i.fontIcon:null),tt(i.color?"mat-"+i.color:""),b("mat-icon-inline",i.inline)("mat-icon-no-color",i.color!=="primary"&&i.color!=="accent"&&i.color!=="warn"))},inputs:{color:"color",inline:[2,"inline","inline",g],svgIcon:"svgIcon",fontSet:"fontSet",fontIcon:"fontIcon"},exportAs:["matIcon"],ngContentSelectors:he,decls:1,vars:0,template:function(e,i){e&1&&(E(),m(0))},styles:[`mat-icon,mat-icon.mat-primary,mat-icon.mat-accent,mat-icon.mat-warn{color:var(--mat-icon-color, inherit)}.mat-icon{-webkit-user-select:none;user-select:none;background-repeat:no-repeat;display:inline-block;fill:currentColor;height:24px;width:24px;overflow:hidden}.mat-icon.mat-icon-inline{font-size:inherit;height:inherit;line-height:inherit;width:inherit}.mat-icon.mat-ligature-font[fontIcon]::before{content:attr(fontIcon)}[dir=rtl] .mat-icon-rtl-mirror{transform:scale(-1, 1)}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon{display:block}.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-prefix .mat-icon-button .mat-icon,.mat-form-field:not(.mat-form-field-appearance-legacy) .mat-form-field-suffix .mat-icon-button .mat-icon{margin:auto} +`],encapsulation:2,changeDetection:0})}return o})(),si=(()=>{class o{static \u0275fac=function(e){return new(e||o)};static \u0275mod=V({type:o});static \u0275inj=N({imports:[I,I]})}return o})();var ut=(()=>{class o{isErrorState(t,e){return!!(t&&t.invalid&&(t.touched||e&&e.submitted))}static \u0275fac=function(e){return new(e||o)};static \u0275prov=P({token:o,factory:o.\u0275fac,providedIn:"root"})}return o})();var nt=class{_defaultMatcher;ngControl;_parentFormGroup;_parentForm;_stateChanges;errorState=!1;matcher;constructor(c,t,e,i,a){this._defaultMatcher=c,this.ngControl=t,this._parentFormGroup=e,this._parentForm=i,this._stateChanges=a}updateErrorState(){let c=this.errorState,t=this._parentFormGroup||this._parentForm,e=this.matcher||this._defaultMatcher,i=this.ngControl?this.ngControl.control:null,a=e?.isErrorState(i,t)??!1;a!==c&&(this.errorState=a,this._stateChanges.next())}};var ae=(()=>{class o{value;stateChanges;id;placeholder;ngControl;focused;empty;shouldLabelFloat;required;disabled;errorState;controlType;autofilled;userAriaDescribedBy;disableAutomaticLabeling;static \u0275fac=function(e){return new(e||o)};static \u0275dir=M({type:o})}return o})();var Ce=["*",[["mat-chip-avatar"],["","matChipAvatar",""]],[["mat-chip-trailing-icon"],["","matChipRemove",""],["","matChipTrailingIcon",""]]],we=["*","mat-chip-avatar, [matChipAvatar]","mat-chip-trailing-icon,[matChipRemove],[matChipTrailingIcon]"];function Ie(o,c){o&1&&(s(0,"span",3),m(1,1),u())}function Fe(o,c){o&1&&(s(0,"span",6),m(1,2),u())}var Se=`.mdc-evolution-chip,.mdc-evolution-chip__cell,.mdc-evolution-chip__action{display:inline-flex;align-items:center}.mdc-evolution-chip{position:relative;max-width:100%}.mdc-evolution-chip__cell,.mdc-evolution-chip__action{height:100%}.mdc-evolution-chip__cell--primary{flex-basis:100%;overflow-x:hidden}.mdc-evolution-chip__cell--trailing{flex:1 0 auto}.mdc-evolution-chip__action{align-items:center;background:none;border:none;box-sizing:content-box;cursor:pointer;display:inline-flex;justify-content:center;outline:none;padding:0;text-decoration:none;color:inherit}.mdc-evolution-chip__action--presentational{cursor:auto}.mdc-evolution-chip--disabled,.mdc-evolution-chip__action:disabled{pointer-events:none}@media(forced-colors: active){.mdc-evolution-chip--disabled,.mdc-evolution-chip__action:disabled{forced-color-adjust:none}}.mdc-evolution-chip__action--primary{font:inherit;letter-spacing:inherit;white-space:inherit;overflow-x:hidden}.mat-mdc-standard-chip .mdc-evolution-chip__action--primary::before{border-width:var(--mdc-chip-outline-width, 1px);border-radius:var(--mdc-chip-container-shape-radius, 8px);box-sizing:border-box;content:"";height:100%;left:0;position:absolute;pointer-events:none;top:0;width:100%;z-index:1;border-style:solid}.mat-mdc-standard-chip .mdc-evolution-chip__action--primary{padding-left:12px;padding-right:12px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary{padding-left:0;padding-right:12px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary{padding-left:12px;padding-right:0}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__action--primary::before{border-color:var(--mdc-chip-outline-color, var(--mat-sys-outline))}.mdc-evolution-chip__action--primary:not(.mdc-evolution-chip__action--presentational):not(.mdc-ripple-upgraded):focus::before{border-color:var(--mdc-chip-focus-outline-color, var(--mat-sys-on-surface-variant))}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__action--primary::before{border-color:var(--mdc-chip-disabled-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-standard-chip.mdc-evolution-chip--selected .mdc-evolution-chip__action--primary::before{border-width:var(--mdc-chip-flat-selected-outline-width, 0)}.mat-mdc-basic-chip .mdc-evolution-chip__action--primary{font:inherit}.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:12px;padding-right:0}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:0;padding-right:12px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:0;padding-right:0}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:0;padding-right:0}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary{padding-left:0;padding-right:12px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary{padding-left:12px;padding-right:0}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:0;padding-right:0}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:0;padding-right:0}.mdc-evolution-chip__action--trailing{position:relative;overflow:visible}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__action--trailing{color:var(--mdc-chip-with-trailing-icon-trailing-icon-color, var(--mat-sys-on-surface-variant))}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__action--trailing{color:var(--mdc-chip-with-trailing-icon-disabled-trailing-icon-color, var(--mat-sys-on-surface))}.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing{padding-left:8px;padding-right:8px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing{padding-left:8px;padding-right:8px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing{padding-left:8px;padding-right:8px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing{padding-left:8px;padding-right:8px}.mdc-evolution-chip__text-label{-webkit-user-select:none;user-select:none;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.mat-mdc-standard-chip .mdc-evolution-chip__text-label{font-family:var(--mdc-chip-label-text-font, var(--mat-sys-label-large-font));line-height:var(--mdc-chip-label-text-line-height, var(--mat-sys-label-large-line-height));font-size:var(--mdc-chip-label-text-size, var(--mat-sys-label-large-size));font-weight:var(--mdc-chip-label-text-weight, var(--mat-sys-label-large-weight));letter-spacing:var(--mdc-chip-label-text-tracking, var(--mat-sys-label-large-tracking))}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__text-label{color:var(--mdc-chip-label-text-color, var(--mat-sys-on-surface-variant))}.mat-mdc-standard-chip.mdc-evolution-chip--selected:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__text-label{color:var(--mdc-chip-selected-label-text-color, var(--mat-sys-on-secondary-container))}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__text-label,.mat-mdc-standard-chip.mdc-evolution-chip--selected.mdc-evolution-chip--disabled .mdc-evolution-chip__text-label{color:var(--mdc-chip-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-evolution-chip__graphic{align-items:center;display:inline-flex;justify-content:center;overflow:hidden;pointer-events:none;position:relative;flex:1 0 auto}.mat-mdc-standard-chip .mdc-evolution-chip__graphic{width:var(--mdc-chip-with-avatar-avatar-size, 24px);height:var(--mdc-chip-with-avatar-avatar-size, 24px);font-size:var(--mdc-chip-with-avatar-avatar-size, 24px)}.mdc-evolution-chip--selecting .mdc-evolution-chip__graphic{transition:width 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--selectable:not(.mdc-evolution-chip--selected):not(.mdc-evolution-chip--with-primary-icon) .mdc-evolution-chip__graphic{width:0}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic{padding-left:6px;padding-right:6px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic{padding-left:4px;padding-right:8px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic{padding-left:8px;padding-right:4px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic{padding-left:6px;padding-right:6px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic{padding-left:4px;padding-right:8px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic{padding-left:8px;padding-right:4px}.mdc-evolution-chip__checkmark{position:absolute;opacity:0;top:50%;left:50%;height:20px;width:20px}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__checkmark{color:var(--mdc-chip-with-icon-selected-icon-color, var(--mat-sys-on-secondary-container))}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__checkmark{color:var(--mdc-chip-with-icon-disabled-icon-color, var(--mat-sys-on-surface))}.mdc-evolution-chip--selecting .mdc-evolution-chip__checkmark{transition:transform 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1);transform:translate(-75%, -50%)}.mdc-evolution-chip--selected .mdc-evolution-chip__checkmark{transform:translate(-50%, -50%);opacity:1}.mdc-evolution-chip__checkmark-svg{display:block}.mdc-evolution-chip__checkmark-path{stroke-width:2px;stroke-dasharray:29.7833385;stroke-dashoffset:29.7833385;stroke:currentColor}.mdc-evolution-chip--selecting .mdc-evolution-chip__checkmark-path{transition:stroke-dashoffset 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--selected .mdc-evolution-chip__checkmark-path{stroke-dashoffset:0}@media(forced-colors: active){.mdc-evolution-chip__checkmark-path{stroke:CanvasText !important}}.mat-mdc-standard-chip .mdc-evolution-chip__icon--trailing{height:18px;width:18px;font-size:18px}.mdc-evolution-chip--disabled .mdc-evolution-chip__icon--trailing.mat-mdc-chip-remove{opacity:calc(var(--mat-chip-trailing-action-opacity, 1)*var(--mdc-chip-with-trailing-icon-disabled-trailing-icon-opacity, 0.38))}.mdc-evolution-chip--disabled .mdc-evolution-chip__icon--trailing.mat-mdc-chip-remove:focus{opacity:calc(var(--mat-chip-trailing-action-focus-opacity, 1)*var(--mdc-chip-with-trailing-icon-disabled-trailing-icon-opacity, 0.38))}.mat-mdc-standard-chip{border-radius:var(--mdc-chip-container-shape-radius, 8px);height:var(--mdc-chip-container-height, 32px)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled){background-color:var(--mdc-chip-elevated-container-color, transparent)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled{background-color:var(--mdc-chip-elevated-disabled-container-color)}.mat-mdc-standard-chip.mdc-evolution-chip--selected:not(.mdc-evolution-chip--disabled){background-color:var(--mdc-chip-elevated-selected-container-color, var(--mat-sys-secondary-container))}.mat-mdc-standard-chip.mdc-evolution-chip--selected.mdc-evolution-chip--disabled{background-color:var(--mdc-chip-flat-disabled-selected-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}@media(forced-colors: active){.mat-mdc-standard-chip{outline:solid 1px}}.mat-mdc-standard-chip .mdc-evolution-chip__icon--primary{border-radius:var(--mdc-chip-with-avatar-avatar-shape-radius, 24px);width:var(--mdc-chip-with-icon-icon-size, 18px);height:var(--mdc-chip-with-icon-icon-size, 18px);font-size:var(--mdc-chip-with-icon-icon-size, 18px)}.mdc-evolution-chip--selected .mdc-evolution-chip__icon--primary{opacity:0}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__icon--primary{color:var(--mdc-chip-with-icon-icon-color, var(--mat-sys-on-surface-variant))}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__icon--primary{color:var(--mdc-chip-with-icon-disabled-icon-color, var(--mat-sys-on-surface))}.mat-mdc-chip-highlighted{--mdc-chip-with-icon-icon-color:var(--mdc-chip-with-icon-selected-icon-color, var(--mat-sys-on-secondary-container));--mdc-chip-elevated-container-color:var(--mdc-chip-elevated-selected-container-color, var(--mat-sys-secondary-container));--mdc-chip-label-text-color:var(--mdc-chip-selected-label-text-color, var(--mat-sys-on-secondary-container));--mdc-chip-outline-width:var(--mdc-chip-flat-selected-outline-width, 0)}.mat-mdc-chip-focus-overlay{background:var(--mdc-chip-focus-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-chip-selected .mat-mdc-chip-focus-overlay,.mat-mdc-chip-highlighted .mat-mdc-chip-focus-overlay{background:var(--mdc-chip-selected-focus-state-layer-color, var(--mat-sys-on-secondary-container))}.mat-mdc-chip:hover .mat-mdc-chip-focus-overlay{background:var(--mdc-chip-hover-state-layer-color, var(--mat-sys-on-surface-variant));opacity:var(--mdc-chip-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-chip-focus-overlay .mat-mdc-chip-selected:hover,.mat-mdc-chip-highlighted:hover .mat-mdc-chip-focus-overlay{background:var(--mdc-chip-selected-hover-state-layer-color, var(--mat-sys-on-secondary-container));opacity:var(--mdc-chip-selected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-chip.cdk-focused .mat-mdc-chip-focus-overlay{background:var(--mdc-chip-focus-state-layer-color, var(--mat-sys-on-surface-variant));opacity:var(--mdc-chip-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-chip-selected.cdk-focused .mat-mdc-chip-focus-overlay,.mat-mdc-chip-highlighted.cdk-focused .mat-mdc-chip-focus-overlay{background:var(--mdc-chip-selected-focus-state-layer-color, var(--mat-sys-on-secondary-container));opacity:var(--mdc-chip-selected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mdc-evolution-chip--disabled:not(.mdc-evolution-chip--selected) .mat-mdc-chip-avatar{opacity:var(--mdc-chip-with-avatar-disabled-avatar-opacity, 0.38)}.mdc-evolution-chip--disabled .mdc-evolution-chip__icon--trailing{opacity:var(--mdc-chip-with-trailing-icon-disabled-trailing-icon-opacity, 0.38)}.mdc-evolution-chip--disabled.mdc-evolution-chip--selected .mdc-evolution-chip__checkmark{opacity:var(--mdc-chip-with-icon-disabled-icon-opacity, 0.38)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled{opacity:var(--mat-chip-disabled-container-opacity, 1)}.mat-mdc-standard-chip.mdc-evolution-chip--selected .mdc-evolution-chip__icon--trailing,.mat-mdc-standard-chip.mat-mdc-chip-highlighted .mdc-evolution-chip__icon--trailing{color:var(--mat-chip-selected-trailing-icon-color, var(--mat-sys-on-secondary-container))}.mat-mdc-standard-chip.mdc-evolution-chip--selected.mdc-evolution-chip--disabled .mdc-evolution-chip__icon--trailing,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mdc-evolution-chip--disabled .mdc-evolution-chip__icon--trailing{color:var(--mat-chip-selected-disabled-trailing-icon-color, var(--mat-sys-on-surface))}.mat-mdc-chip-remove{opacity:var(--mat-chip-trailing-action-opacity, 1)}.mat-mdc-chip-remove:focus{opacity:var(--mat-chip-trailing-action-focus-opacity, 1)}.mat-mdc-chip-remove::after{background-color:var(--mat-chip-trailing-action-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-chip-remove:hover::after{opacity:var(--mat-chip-trailing-action-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-chip-remove:focus::after{opacity:var(--mat-chip-trailing-action-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-chip-selected .mat-mdc-chip-remove::after,.mat-mdc-chip-highlighted .mat-mdc-chip-remove::after{background-color:var(--mat-chip-selected-trailing-action-state-layer-color, var(--mat-sys-on-secondary-container))}.mat-mdc-standard-chip{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-standard-chip .mdc-evolution-chip__cell--primary,.mat-mdc-standard-chip .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip .mat-mdc-chip-action-label{overflow:visible}.mat-mdc-standard-chip .mat-mdc-chip-graphic,.mat-mdc-standard-chip .mat-mdc-chip-trailing-icon{box-sizing:content-box}.mat-mdc-standard-chip._mat-animation-noopable,.mat-mdc-standard-chip._mat-animation-noopable .mdc-evolution-chip__graphic,.mat-mdc-standard-chip._mat-animation-noopable .mdc-evolution-chip__checkmark,.mat-mdc-standard-chip._mat-animation-noopable .mdc-evolution-chip__checkmark-path{transition-duration:1ms;animation-duration:1ms}.mat-mdc-chip-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;opacity:0;border-radius:inherit;transition:opacity 150ms linear}._mat-animation-noopable .mat-mdc-chip-focus-overlay{transition:none}.mat-mdc-basic-chip .mat-mdc-chip-focus-overlay{display:none}.mat-mdc-chip .mat-ripple.mat-mdc-chip-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-chip-avatar{text-align:center;line-height:1;color:var(--mdc-chip-with-icon-icon-color, currentColor)}.mat-mdc-chip{position:relative;z-index:0}.mat-mdc-chip-action-label{text-align:left;z-index:1}[dir=rtl] .mat-mdc-chip-action-label{text-align:right}.mat-mdc-chip.mdc-evolution-chip--with-trailing-action .mat-mdc-chip-action-label{position:relative}.mat-mdc-chip-action-label .mat-mdc-chip-primary-focus-indicator{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.mat-mdc-chip-action-label .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-chip-remove::before{margin:calc(var(--mat-focus-indicator-border-width, 3px)*-1);left:8px;right:8px}.mat-mdc-chip-remove::after{content:"";display:block;opacity:0;position:absolute;top:-3px;bottom:-3px;left:5px;right:5px;border-radius:50%;box-sizing:border-box;padding:12px;margin:-12px;background-clip:content-box}.mat-mdc-chip-remove .mat-icon{width:18px;height:18px;font-size:18px;box-sizing:content-box}.mat-chip-edit-input{cursor:text;display:inline-block;color:inherit;outline:0}@media(forced-colors: active){.mat-mdc-chip-selected:not(.mat-mdc-chip-multiple){outline-width:3px}}.mat-mdc-chip-action:focus .mat-focus-indicator::before{content:""}.mdc-evolution-chip__icon,.mat-mdc-chip-remove .mat-icon{min-height:fit-content} +`,Ee=[[["mat-chip-avatar"],["","matChipAvatar",""]],[["","matChipEditInput",""]],"*",[["mat-chip-trailing-icon"],["","matChipRemove",""],["","matChipTrailingIcon",""]]],ke=["mat-chip-avatar, [matChipAvatar]","[matChipEditInput]","*","mat-chip-trailing-icon,[matChipRemove],[matChipTrailingIcon]"];function Me(o,c){o&1&&D(0,"span",0)}function De(o,c){o&1&&(s(0,"span",2),m(1),u())}function Re(o,c){o&1&&m(0,1)}function Te(o,c){o&1&&D(0,"span",7)}function Ae(o,c){if(o&1&&C(0,Re,1,0)(1,Te,1,0,"span",7),o&2){let t=ct();w(t.contentEditInput?0:1)}}function Le(o,c){o&1&&m(0,2)}function Oe(o,c){o&1&&(s(0,"span",5),m(1,3),u())}var le=["*"],ze=`.mat-mdc-chip-set{display:flex}.mat-mdc-chip-set:focus{outline:none}.mat-mdc-chip-set .mdc-evolution-chip-set__chips{min-width:100%;margin-left:-8px;margin-right:0}.mat-mdc-chip-set .mdc-evolution-chip{margin:4px 0 4px 8px}[dir=rtl] .mat-mdc-chip-set .mdc-evolution-chip-set__chips{margin-left:0;margin-right:-8px}[dir=rtl] .mat-mdc-chip-set .mdc-evolution-chip{margin-left:0;margin-right:8px}.mdc-evolution-chip-set__chips{display:flex;flex-flow:wrap;min-width:0}.mat-mdc-chip-set-stacked{flex-direction:column;align-items:flex-start}.mat-mdc-chip-set-stacked .mat-mdc-chip{width:100%}.mat-mdc-chip-set-stacked .mdc-evolution-chip__graphic{flex-grow:0}.mat-mdc-chip-set-stacked .mdc-evolution-chip__action--primary{flex-basis:100%;justify-content:start}input.mat-mdc-chip-input{flex:1 0 150px;margin-left:8px}[dir=rtl] input.mat-mdc-chip-input{margin-left:0;margin-right:8px} +`,Pe=new x("mat-chips-default-options",{providedIn:"root",factory:()=>({separatorKeyCodes:[13]})}),gt=new x("MatChipAvatar"),re=new x("MatChipTrailingIcon"),vt=new x("MatChipRemove"),xt=new x("MatChip"),rt=(()=>{class o{_elementRef=r(k);_parentChip=r(xt);isInteractive=!0;_isPrimary=!0;get disabled(){return this._disabled||this._parentChip?.disabled||!1}set disabled(t){this._disabled=t}_disabled=!1;tabIndex=-1;_allowFocusWhenDisabled=!1;_getDisabledAttribute(){return this.disabled&&!this._allowFocusWhenDisabled?"":null}_getTabindex(){return this.disabled&&!this._allowFocusWhenDisabled||!this.isInteractive?null:this.tabIndex.toString()}constructor(){r(ht).load(ft),this._elementRef.nativeElement.nodeName==="BUTTON"&&this._elementRef.nativeElement.setAttribute("type","button")}focus(){this._elementRef.nativeElement.focus()}_handleClick(t){!this.disabled&&this.isInteractive&&this._isPrimary&&(t.preventDefault(),this._parentChip._handlePrimaryActionInteraction())}_handleKeydown(t){(t.keyCode===13||t.keyCode===32)&&!this.disabled&&this.isInteractive&&this._isPrimary&&!this._parentChip._isEditing&&(t.preventDefault(),this._parentChip._handlePrimaryActionInteraction())}static \u0275fac=function(e){return new(e||o)};static \u0275dir=M({type:o,selectors:[["","matChipAction",""]],hostAttrs:[1,"mdc-evolution-chip__action","mat-mdc-chip-action"],hostVars:9,hostBindings:function(e,i){e&1&&R("click",function(n){return i._handleClick(n)})("keydown",function(n){return i._handleKeydown(n)}),e&2&&(d("tabindex",i._getTabindex())("disabled",i._getDisabledAttribute())("aria-disabled",i.disabled),b("mdc-evolution-chip__action--primary",i._isPrimary)("mdc-evolution-chip__action--presentational",!i.isInteractive)("mdc-evolution-chip__action--trailing",!i._isPrimary))},inputs:{isInteractive:"isInteractive",disabled:[2,"disabled","disabled",g],tabIndex:[2,"tabIndex","tabIndex",t=>t==null?-1:mt(t)],_allowFocusWhenDisabled:"_allowFocusWhenDisabled"}})}return o})(),eo=(()=>{class o{static \u0275fac=function(e){return new(e||o)};static \u0275dir=M({type:o,selectors:[["mat-chip-avatar"],["","matChipAvatar",""]],hostAttrs:["role","img",1,"mat-mdc-chip-avatar","mdc-evolution-chip__icon","mdc-evolution-chip__icon--primary"],features:[T([{provide:gt,useExisting:o}])]})}return o})();var io=(()=>{class o extends rt{_isPrimary=!1;_handleClick(t){this.disabled||(t.stopPropagation(),t.preventDefault(),this._parentChip.remove())}_handleKeydown(t){(t.keyCode===13||t.keyCode===32)&&!this.disabled&&(t.stopPropagation(),t.preventDefault(),this._parentChip.remove())}static \u0275fac=(()=>{let t;return function(i){return(t||(t=Dt(o)))(i||o)}})();static \u0275dir=M({type:o,selectors:[["","matChipRemove",""]],hostAttrs:["role","button",1,"mat-mdc-chip-remove","mat-mdc-chip-trailing-icon","mat-focus-indicator","mdc-evolution-chip__icon","mdc-evolution-chip__icon--trailing"],hostVars:1,hostBindings:function(e,i){e&2&&d("aria-hidden",null)},features:[T([{provide:vt,useExisting:o}]),J]})}return o})(),bt=(()=>{class o{_changeDetectorRef=r(st);_elementRef=r(k);_ngZone=r(At);_focusMonitor=r(qt);_globalRippleOptions=r(Kt,{optional:!0});_document=r(A);_onFocus=new q;_onBlur=new q;_isBasicChip;role=null;_hasFocusInternal=!1;_pendingFocus;_actionChanges;_animationsDisabled;_allLeadingIcons;_allTrailingIcons;_allRemoveIcons;_hasFocus(){return this._hasFocusInternal}id=r(Ut).getId("mat-mdc-chip-");ariaLabel=null;ariaDescription=null;_ariaDescriptionId=`${this.id}-aria-description`;_chipListDisabled=!1;_textElement;get value(){return this._value!==void 0?this._value:this._textElement.textContent.trim()}set value(t){this._value=t}_value;color;removable=!0;highlighted=!1;disableRipple=!1;get disabled(){return this._disabled||this._chipListDisabled}set disabled(t){this._disabled=t}_disabled=!1;removed=new B;destroyed=new B;basicChipAttrName="mat-basic-chip";leadingIcon;trailingIcon;removeIcon;primaryAction;_rippleLoader=r($t);_injector=r(Rt);constructor(){let t=r(ht);t.load(ft),t.load(Qt);let e=r(Ot,{optional:!0});this._animationsDisabled=e==="NoopAnimations",this._monitorFocus(),this._rippleLoader?.configureRipple(this._elementRef.nativeElement,{className:"mat-mdc-chip-ripple",disabled:this._isRippleDisabled()})}ngOnInit(){let t=this._elementRef.nativeElement;this._isBasicChip=t.hasAttribute(this.basicChipAttrName)||t.tagName.toLowerCase()===this.basicChipAttrName}ngAfterViewInit(){this._textElement=this._elementRef.nativeElement.querySelector(".mat-mdc-chip-action-label"),this._pendingFocus&&(this._pendingFocus=!1,this.focus())}ngAfterContentInit(){this._actionChanges=Y(this._allLeadingIcons.changes,this._allTrailingIcons.changes,this._allRemoveIcons.changes).subscribe(()=>this._changeDetectorRef.markForCheck())}ngDoCheck(){this._rippleLoader.setDisabled(this._elementRef.nativeElement,this._isRippleDisabled())}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._rippleLoader?.destroyRipple(this._elementRef.nativeElement),this._actionChanges?.unsubscribe(),this.destroyed.emit({chip:this}),this.destroyed.complete()}remove(){this.removable&&this.removed.emit({chip:this})}_isRippleDisabled(){return this.disabled||this.disableRipple||this._animationsDisabled||this._isBasicChip||!!this._globalRippleOptions?.disabled}_hasTrailingIcon(){return!!(this.trailingIcon||this.removeIcon)}_handleKeydown(t){(t.keyCode===8&&!t.repeat||t.keyCode===46)&&(t.preventDefault(),this.remove())}focus(){this.disabled||(this.primaryAction?this.primaryAction.focus():this._pendingFocus=!0)}_getSourceAction(t){return this._getActions().find(e=>{let i=e._elementRef.nativeElement;return i===t||i.contains(t)})}_getActions(){let t=[];return this.primaryAction&&t.push(this.primaryAction),this.removeIcon&&t.push(this.removeIcon),this.trailingIcon&&t.push(this.trailingIcon),t}_handlePrimaryActionInteraction(){}_monitorFocus(){this._focusMonitor.monitor(this._elementRef,!0).subscribe(t=>{let e=t!==null;e!==this._hasFocusInternal&&(this._hasFocusInternal=e,e?this._onFocus.next({chip:this}):(this._changeDetectorRef.markForCheck(),setTimeout(()=>this._ngZone.run(()=>this._onBlur.next({chip:this})))))})}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=v({type:o,selectors:[["mat-basic-chip"],["","mat-basic-chip",""],["mat-chip"],["","mat-chip",""]],contentQueries:function(e,i,a){if(e&1&&(_(a,gt,5),_(a,re,5),_(a,vt,5),_(a,gt,5),_(a,re,5),_(a,vt,5)),e&2){let n;h(n=p())&&(i.leadingIcon=n.first),h(n=p())&&(i.trailingIcon=n.first),h(n=p())&&(i.removeIcon=n.first),h(n=p())&&(i._allLeadingIcons=n),h(n=p())&&(i._allTrailingIcons=n),h(n=p())&&(i._allRemoveIcons=n)}},viewQuery:function(e,i){if(e&1&&it(rt,5),e&2){let a;h(a=p())&&(i.primaryAction=a.first)}},hostAttrs:[1,"mat-mdc-chip"],hostVars:31,hostBindings:function(e,i){e&1&&R("keydown",function(n){return i._handleKeydown(n)}),e&2&&(et("id",i.id),d("role",i.role)("aria-label",i.ariaLabel),tt("mat-"+(i.color||"primary")),b("mdc-evolution-chip",!i._isBasicChip)("mdc-evolution-chip--disabled",i.disabled)("mdc-evolution-chip--with-trailing-action",i._hasTrailingIcon())("mdc-evolution-chip--with-primary-graphic",i.leadingIcon)("mdc-evolution-chip--with-primary-icon",i.leadingIcon)("mdc-evolution-chip--with-avatar",i.leadingIcon)("mat-mdc-chip-with-avatar",i.leadingIcon)("mat-mdc-chip-highlighted",i.highlighted)("mat-mdc-chip-disabled",i.disabled)("mat-mdc-basic-chip",i._isBasicChip)("mat-mdc-standard-chip",!i._isBasicChip)("mat-mdc-chip-with-trailing-icon",i._hasTrailingIcon())("_mat-animation-noopable",i._animationsDisabled))},inputs:{role:"role",id:"id",ariaLabel:[0,"aria-label","ariaLabel"],ariaDescription:[0,"aria-description","ariaDescription"],value:"value",color:"color",removable:[2,"removable","removable",g],highlighted:[2,"highlighted","highlighted",g],disableRipple:[2,"disableRipple","disableRipple",g],disabled:[2,"disabled","disabled",g]},outputs:{removed:"removed",destroyed:"destroyed"},exportAs:["matChip"],features:[T([{provide:xt,useExisting:o}])],ngContentSelectors:we,decls:8,vars:3,consts:[[1,"mat-mdc-chip-focus-overlay"],[1,"mdc-evolution-chip__cell","mdc-evolution-chip__cell--primary"],["matChipAction","",3,"isInteractive"],[1,"mdc-evolution-chip__graphic","mat-mdc-chip-graphic"],[1,"mdc-evolution-chip__text-label","mat-mdc-chip-action-label"],[1,"mat-mdc-chip-primary-focus-indicator","mat-focus-indicator"],[1,"mdc-evolution-chip__cell","mdc-evolution-chip__cell--trailing"]],template:function(e,i){e&1&&(E(Ce),D(0,"span",0),s(1,"span",1)(2,"span",2),C(3,Ie,2,0,"span",3),s(4,"span",4),m(5),D(6,"span",5),u()()(),C(7,Fe,2,0,"span",6)),e&2&&(f(2),G("isInteractive",!1),f(),w(i.leadingIcon?3:-1),f(4),w(i._hasTrailingIcon()?7:-1))},dependencies:[rt],styles:[`.mdc-evolution-chip,.mdc-evolution-chip__cell,.mdc-evolution-chip__action{display:inline-flex;align-items:center}.mdc-evolution-chip{position:relative;max-width:100%}.mdc-evolution-chip__cell,.mdc-evolution-chip__action{height:100%}.mdc-evolution-chip__cell--primary{flex-basis:100%;overflow-x:hidden}.mdc-evolution-chip__cell--trailing{flex:1 0 auto}.mdc-evolution-chip__action{align-items:center;background:none;border:none;box-sizing:content-box;cursor:pointer;display:inline-flex;justify-content:center;outline:none;padding:0;text-decoration:none;color:inherit}.mdc-evolution-chip__action--presentational{cursor:auto}.mdc-evolution-chip--disabled,.mdc-evolution-chip__action:disabled{pointer-events:none}@media(forced-colors: active){.mdc-evolution-chip--disabled,.mdc-evolution-chip__action:disabled{forced-color-adjust:none}}.mdc-evolution-chip__action--primary{font:inherit;letter-spacing:inherit;white-space:inherit;overflow-x:hidden}.mat-mdc-standard-chip .mdc-evolution-chip__action--primary::before{border-width:var(--mdc-chip-outline-width, 1px);border-radius:var(--mdc-chip-container-shape-radius, 8px);box-sizing:border-box;content:"";height:100%;left:0;position:absolute;pointer-events:none;top:0;width:100%;z-index:1;border-style:solid}.mat-mdc-standard-chip .mdc-evolution-chip__action--primary{padding-left:12px;padding-right:12px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary{padding-left:0;padding-right:12px}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary{padding-left:12px;padding-right:0}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__action--primary::before{border-color:var(--mdc-chip-outline-color, var(--mat-sys-outline))}.mdc-evolution-chip__action--primary:not(.mdc-evolution-chip__action--presentational):not(.mdc-ripple-upgraded):focus::before{border-color:var(--mdc-chip-focus-outline-color, var(--mat-sys-on-surface-variant))}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__action--primary::before{border-color:var(--mdc-chip-disabled-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-standard-chip.mdc-evolution-chip--selected .mdc-evolution-chip__action--primary::before{border-width:var(--mdc-chip-flat-selected-outline-width, 0)}.mat-mdc-basic-chip .mdc-evolution-chip__action--primary{font:inherit}.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:12px;padding-right:0}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:0;padding-right:12px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:0;padding-right:0}[dir=rtl] .mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:0;padding-right:0}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary{padding-left:0;padding-right:12px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__action--primary{padding-left:12px;padding-right:0}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:0;padding-right:0}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--primary{padding-left:0;padding-right:0}.mdc-evolution-chip__action--trailing{position:relative;overflow:visible}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__action--trailing{color:var(--mdc-chip-with-trailing-icon-trailing-icon-color, var(--mat-sys-on-surface-variant))}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__action--trailing{color:var(--mdc-chip-with-trailing-icon-disabled-trailing-icon-color, var(--mat-sys-on-surface))}.mat-mdc-standard-chip.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing{padding-left:8px;padding-right:8px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing{padding-left:8px;padding-right:8px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing{padding-left:8px;padding-right:8px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__action--trailing{padding-left:8px;padding-right:8px}.mdc-evolution-chip__text-label{-webkit-user-select:none;user-select:none;white-space:nowrap;text-overflow:ellipsis;overflow:hidden}.mat-mdc-standard-chip .mdc-evolution-chip__text-label{font-family:var(--mdc-chip-label-text-font, var(--mat-sys-label-large-font));line-height:var(--mdc-chip-label-text-line-height, var(--mat-sys-label-large-line-height));font-size:var(--mdc-chip-label-text-size, var(--mat-sys-label-large-size));font-weight:var(--mdc-chip-label-text-weight, var(--mat-sys-label-large-weight));letter-spacing:var(--mdc-chip-label-text-tracking, var(--mat-sys-label-large-tracking))}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__text-label{color:var(--mdc-chip-label-text-color, var(--mat-sys-on-surface-variant))}.mat-mdc-standard-chip.mdc-evolution-chip--selected:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__text-label{color:var(--mdc-chip-selected-label-text-color, var(--mat-sys-on-secondary-container))}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__text-label,.mat-mdc-standard-chip.mdc-evolution-chip--selected.mdc-evolution-chip--disabled .mdc-evolution-chip__text-label{color:var(--mdc-chip-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-evolution-chip__graphic{align-items:center;display:inline-flex;justify-content:center;overflow:hidden;pointer-events:none;position:relative;flex:1 0 auto}.mat-mdc-standard-chip .mdc-evolution-chip__graphic{width:var(--mdc-chip-with-avatar-avatar-size, 24px);height:var(--mdc-chip-with-avatar-avatar-size, 24px);font-size:var(--mdc-chip-with-avatar-avatar-size, 24px)}.mdc-evolution-chip--selecting .mdc-evolution-chip__graphic{transition:width 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--selectable:not(.mdc-evolution-chip--selected):not(.mdc-evolution-chip--with-primary-icon) .mdc-evolution-chip__graphic{width:0}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic{padding-left:6px;padding-right:6px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic{padding-left:4px;padding-right:8px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic .mdc-evolution-chip__graphic{padding-left:8px;padding-right:4px}.mat-mdc-standard-chip.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic{padding-left:6px;padding-right:6px}.mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic{padding-left:4px;padding-right:8px}[dir=rtl] .mdc-evolution-chip--with-avatar.mdc-evolution-chip--with-primary-graphic.mdc-evolution-chip--with-trailing-action .mdc-evolution-chip__graphic{padding-left:8px;padding-right:4px}.mdc-evolution-chip__checkmark{position:absolute;opacity:0;top:50%;left:50%;height:20px;width:20px}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__checkmark{color:var(--mdc-chip-with-icon-selected-icon-color, var(--mat-sys-on-secondary-container))}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__checkmark{color:var(--mdc-chip-with-icon-disabled-icon-color, var(--mat-sys-on-surface))}.mdc-evolution-chip--selecting .mdc-evolution-chip__checkmark{transition:transform 150ms 0ms cubic-bezier(0.4, 0, 0.2, 1);transform:translate(-75%, -50%)}.mdc-evolution-chip--selected .mdc-evolution-chip__checkmark{transform:translate(-50%, -50%);opacity:1}.mdc-evolution-chip__checkmark-svg{display:block}.mdc-evolution-chip__checkmark-path{stroke-width:2px;stroke-dasharray:29.7833385;stroke-dashoffset:29.7833385;stroke:currentColor}.mdc-evolution-chip--selecting .mdc-evolution-chip__checkmark-path{transition:stroke-dashoffset 150ms 45ms cubic-bezier(0.4, 0, 0.2, 1)}.mdc-evolution-chip--selected .mdc-evolution-chip__checkmark-path{stroke-dashoffset:0}@media(forced-colors: active){.mdc-evolution-chip__checkmark-path{stroke:CanvasText !important}}.mat-mdc-standard-chip .mdc-evolution-chip__icon--trailing{height:18px;width:18px;font-size:18px}.mdc-evolution-chip--disabled .mdc-evolution-chip__icon--trailing.mat-mdc-chip-remove{opacity:calc(var(--mat-chip-trailing-action-opacity, 1)*var(--mdc-chip-with-trailing-icon-disabled-trailing-icon-opacity, 0.38))}.mdc-evolution-chip--disabled .mdc-evolution-chip__icon--trailing.mat-mdc-chip-remove:focus{opacity:calc(var(--mat-chip-trailing-action-focus-opacity, 1)*var(--mdc-chip-with-trailing-icon-disabled-trailing-icon-opacity, 0.38))}.mat-mdc-standard-chip{border-radius:var(--mdc-chip-container-shape-radius, 8px);height:var(--mdc-chip-container-height, 32px)}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled){background-color:var(--mdc-chip-elevated-container-color, transparent)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled{background-color:var(--mdc-chip-elevated-disabled-container-color)}.mat-mdc-standard-chip.mdc-evolution-chip--selected:not(.mdc-evolution-chip--disabled){background-color:var(--mdc-chip-elevated-selected-container-color, var(--mat-sys-secondary-container))}.mat-mdc-standard-chip.mdc-evolution-chip--selected.mdc-evolution-chip--disabled{background-color:var(--mdc-chip-flat-disabled-selected-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}@media(forced-colors: active){.mat-mdc-standard-chip{outline:solid 1px}}.mat-mdc-standard-chip .mdc-evolution-chip__icon--primary{border-radius:var(--mdc-chip-with-avatar-avatar-shape-radius, 24px);width:var(--mdc-chip-with-icon-icon-size, 18px);height:var(--mdc-chip-with-icon-icon-size, 18px);font-size:var(--mdc-chip-with-icon-icon-size, 18px)}.mdc-evolution-chip--selected .mdc-evolution-chip__icon--primary{opacity:0}.mat-mdc-standard-chip:not(.mdc-evolution-chip--disabled) .mdc-evolution-chip__icon--primary{color:var(--mdc-chip-with-icon-icon-color, var(--mat-sys-on-surface-variant))}.mat-mdc-standard-chip.mdc-evolution-chip--disabled .mdc-evolution-chip__icon--primary{color:var(--mdc-chip-with-icon-disabled-icon-color, var(--mat-sys-on-surface))}.mat-mdc-chip-highlighted{--mdc-chip-with-icon-icon-color:var(--mdc-chip-with-icon-selected-icon-color, var(--mat-sys-on-secondary-container));--mdc-chip-elevated-container-color:var(--mdc-chip-elevated-selected-container-color, var(--mat-sys-secondary-container));--mdc-chip-label-text-color:var(--mdc-chip-selected-label-text-color, var(--mat-sys-on-secondary-container));--mdc-chip-outline-width:var(--mdc-chip-flat-selected-outline-width, 0)}.mat-mdc-chip-focus-overlay{background:var(--mdc-chip-focus-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-chip-selected .mat-mdc-chip-focus-overlay,.mat-mdc-chip-highlighted .mat-mdc-chip-focus-overlay{background:var(--mdc-chip-selected-focus-state-layer-color, var(--mat-sys-on-secondary-container))}.mat-mdc-chip:hover .mat-mdc-chip-focus-overlay{background:var(--mdc-chip-hover-state-layer-color, var(--mat-sys-on-surface-variant));opacity:var(--mdc-chip-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-chip-focus-overlay .mat-mdc-chip-selected:hover,.mat-mdc-chip-highlighted:hover .mat-mdc-chip-focus-overlay{background:var(--mdc-chip-selected-hover-state-layer-color, var(--mat-sys-on-secondary-container));opacity:var(--mdc-chip-selected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-chip.cdk-focused .mat-mdc-chip-focus-overlay{background:var(--mdc-chip-focus-state-layer-color, var(--mat-sys-on-surface-variant));opacity:var(--mdc-chip-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-chip-selected.cdk-focused .mat-mdc-chip-focus-overlay,.mat-mdc-chip-highlighted.cdk-focused .mat-mdc-chip-focus-overlay{background:var(--mdc-chip-selected-focus-state-layer-color, var(--mat-sys-on-secondary-container));opacity:var(--mdc-chip-selected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mdc-evolution-chip--disabled:not(.mdc-evolution-chip--selected) .mat-mdc-chip-avatar{opacity:var(--mdc-chip-with-avatar-disabled-avatar-opacity, 0.38)}.mdc-evolution-chip--disabled .mdc-evolution-chip__icon--trailing{opacity:var(--mdc-chip-with-trailing-icon-disabled-trailing-icon-opacity, 0.38)}.mdc-evolution-chip--disabled.mdc-evolution-chip--selected .mdc-evolution-chip__checkmark{opacity:var(--mdc-chip-with-icon-disabled-icon-opacity, 0.38)}.mat-mdc-standard-chip.mdc-evolution-chip--disabled{opacity:var(--mat-chip-disabled-container-opacity, 1)}.mat-mdc-standard-chip.mdc-evolution-chip--selected .mdc-evolution-chip__icon--trailing,.mat-mdc-standard-chip.mat-mdc-chip-highlighted .mdc-evolution-chip__icon--trailing{color:var(--mat-chip-selected-trailing-icon-color, var(--mat-sys-on-secondary-container))}.mat-mdc-standard-chip.mdc-evolution-chip--selected.mdc-evolution-chip--disabled .mdc-evolution-chip__icon--trailing,.mat-mdc-standard-chip.mat-mdc-chip-highlighted.mdc-evolution-chip--disabled .mdc-evolution-chip__icon--trailing{color:var(--mat-chip-selected-disabled-trailing-icon-color, var(--mat-sys-on-surface))}.mat-mdc-chip-remove{opacity:var(--mat-chip-trailing-action-opacity, 1)}.mat-mdc-chip-remove:focus{opacity:var(--mat-chip-trailing-action-focus-opacity, 1)}.mat-mdc-chip-remove::after{background-color:var(--mat-chip-trailing-action-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-chip-remove:hover::after{opacity:var(--mat-chip-trailing-action-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-chip-remove:focus::after{opacity:var(--mat-chip-trailing-action-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-chip-selected .mat-mdc-chip-remove::after,.mat-mdc-chip-highlighted .mat-mdc-chip-remove::after{background-color:var(--mat-chip-selected-trailing-action-state-layer-color, var(--mat-sys-on-secondary-container))}.mat-mdc-standard-chip{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-standard-chip .mdc-evolution-chip__cell--primary,.mat-mdc-standard-chip .mdc-evolution-chip__action--primary,.mat-mdc-standard-chip .mat-mdc-chip-action-label{overflow:visible}.mat-mdc-standard-chip .mat-mdc-chip-graphic,.mat-mdc-standard-chip .mat-mdc-chip-trailing-icon{box-sizing:content-box}.mat-mdc-standard-chip._mat-animation-noopable,.mat-mdc-standard-chip._mat-animation-noopable .mdc-evolution-chip__graphic,.mat-mdc-standard-chip._mat-animation-noopable .mdc-evolution-chip__checkmark,.mat-mdc-standard-chip._mat-animation-noopable .mdc-evolution-chip__checkmark-path{transition-duration:1ms;animation-duration:1ms}.mat-mdc-chip-focus-overlay{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;opacity:0;border-radius:inherit;transition:opacity 150ms linear}._mat-animation-noopable .mat-mdc-chip-focus-overlay{transition:none}.mat-mdc-basic-chip .mat-mdc-chip-focus-overlay{display:none}.mat-mdc-chip .mat-ripple.mat-mdc-chip-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-chip-avatar{text-align:center;line-height:1;color:var(--mdc-chip-with-icon-icon-color, currentColor)}.mat-mdc-chip{position:relative;z-index:0}.mat-mdc-chip-action-label{text-align:left;z-index:1}[dir=rtl] .mat-mdc-chip-action-label{text-align:right}.mat-mdc-chip.mdc-evolution-chip--with-trailing-action .mat-mdc-chip-action-label{position:relative}.mat-mdc-chip-action-label .mat-mdc-chip-primary-focus-indicator{position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none}.mat-mdc-chip-action-label .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-chip-remove::before{margin:calc(var(--mat-focus-indicator-border-width, 3px)*-1);left:8px;right:8px}.mat-mdc-chip-remove::after{content:"";display:block;opacity:0;position:absolute;top:-3px;bottom:-3px;left:5px;right:5px;border-radius:50%;box-sizing:border-box;padding:12px;margin:-12px;background-clip:content-box}.mat-mdc-chip-remove .mat-icon{width:18px;height:18px;font-size:18px;box-sizing:content-box}.mat-chip-edit-input{cursor:text;display:inline-block;color:inherit;outline:0}@media(forced-colors: active){.mat-mdc-chip-selected:not(.mat-mdc-chip-multiple){outline-width:3px}}.mat-mdc-chip-action:focus .mat-focus-indicator::before{content:""}.mdc-evolution-chip__icon,.mat-mdc-chip-remove .mat-icon{min-height:fit-content} +`],encapsulation:2,changeDetection:0})}return o})();var _t=(()=>{class o{_elementRef=r(k);_document=r(A);constructor(){}initialize(t){this.getNativeElement().focus(),this.setValue(t)}getNativeElement(){return this._elementRef.nativeElement}setValue(t){this.getNativeElement().textContent=t,this._moveCursorToEndOfInput()}getValue(){return this.getNativeElement().textContent||""}_moveCursorToEndOfInput(){let t=this._document.createRange();t.selectNodeContents(this.getNativeElement()),t.collapse(!1);let e=window.getSelection();e.removeAllRanges(),e.addRange(t)}static \u0275fac=function(e){return new(e||o)};static \u0275dir=M({type:o,selectors:[["span","matChipEditInput",""]],hostAttrs:["role","textbox","tabindex","-1","contenteditable","true",1,"mat-chip-edit-input"]})}return o})(),Ne=(()=>{class o extends bt{basicChipAttrName="mat-basic-chip-row";_editStartPending=!1;editable=!1;edited=new B;defaultEditInput;contentEditInput;_isEditing=!1;constructor(){super(),this.role="row",this._onBlur.pipe(S(this.destroyed)).subscribe(()=>{this._isEditing&&!this._editStartPending&&this._onEditFinish()})}_hasTrailingIcon(){return!this._isEditing&&super._hasTrailingIcon()}_handleFocus(){!this._isEditing&&!this.disabled&&this.focus()}_handleKeydown(t){t.keyCode===13&&!this.disabled?this._isEditing?(t.preventDefault(),this._onEditFinish()):this.editable&&this._startEditing(t):this._isEditing?t.stopPropagation():super._handleKeydown(t)}_handleDoubleclick(t){!this.disabled&&this.editable&&this._startEditing(t)}_startEditing(t){if(!this.primaryAction||this.removeIcon&&this._getSourceAction(t.target)===this.removeIcon)return;let e=this.value;this._isEditing=this._editStartPending=!0,zt(()=>{this._getEditInput().initialize(e),this._editStartPending=!1},{injector:this._injector})}_onEditFinish(){this._isEditing=this._editStartPending=!1,this.edited.emit({chip:this,value:this._getEditInput().getValue()}),(this._document.activeElement===this._getEditInput().getNativeElement()||this._document.activeElement===this._document.body)&&this.primaryAction.focus()}_isRippleDisabled(){return super._isRippleDisabled()||this._isEditing}_getEditInput(){return this.contentEditInput||this.defaultEditInput}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=v({type:o,selectors:[["mat-chip-row"],["","mat-chip-row",""],["mat-basic-chip-row"],["","mat-basic-chip-row",""]],contentQueries:function(e,i,a){if(e&1&&_(a,_t,5),e&2){let n;h(n=p())&&(i.contentEditInput=n.first)}},viewQuery:function(e,i){if(e&1&&it(_t,5),e&2){let a;h(a=p())&&(i.defaultEditInput=a.first)}},hostAttrs:[1,"mat-mdc-chip","mat-mdc-chip-row","mdc-evolution-chip"],hostVars:27,hostBindings:function(e,i){e&1&&R("focus",function(){return i._handleFocus()})("dblclick",function(n){return i._handleDoubleclick(n)}),e&2&&(et("id",i.id),d("tabindex",i.disabled?null:-1)("aria-label",null)("aria-description",null)("role",i.role),b("mat-mdc-chip-with-avatar",i.leadingIcon)("mat-mdc-chip-disabled",i.disabled)("mat-mdc-chip-editing",i._isEditing)("mat-mdc-chip-editable",i.editable)("mdc-evolution-chip--disabled",i.disabled)("mdc-evolution-chip--with-trailing-action",i._hasTrailingIcon())("mdc-evolution-chip--with-primary-graphic",i.leadingIcon)("mdc-evolution-chip--with-primary-icon",i.leadingIcon)("mdc-evolution-chip--with-avatar",i.leadingIcon)("mat-mdc-chip-highlighted",i.highlighted)("mat-mdc-chip-with-trailing-icon",i._hasTrailingIcon()))},inputs:{editable:"editable"},outputs:{edited:"edited"},features:[T([{provide:bt,useExisting:o},{provide:xt,useExisting:o}]),J],ngContentSelectors:ke,decls:10,vars:9,consts:[[1,"mat-mdc-chip-focus-overlay"],["role","gridcell","matChipAction","",1,"mdc-evolution-chip__cell","mdc-evolution-chip__cell--primary",3,"disabled"],[1,"mdc-evolution-chip__graphic","mat-mdc-chip-graphic"],[1,"mdc-evolution-chip__text-label","mat-mdc-chip-action-label"],["aria-hidden","true",1,"mat-mdc-chip-primary-focus-indicator","mat-focus-indicator"],["role","gridcell",1,"mdc-evolution-chip__cell","mdc-evolution-chip__cell--trailing"],[1,"cdk-visually-hidden",3,"id"],["matChipEditInput",""]],template:function(e,i){e&1&&(E(Ee),C(0,Me,1,0,"span",0),s(1,"span",1),C(2,De,2,0,"span",2),s(3,"span",3),C(4,Ae,2,1)(5,Le,1,0),D(6,"span",4),u()(),C(7,Oe,2,0,"span",5),s(8,"span",6),lt(9),u()),e&2&&(w(i._isEditing?-1:0),f(),G("disabled",i.disabled),d("aria-label",i.ariaLabel)("aria-describedby",i._ariaDescriptionId),f(),w(i.leadingIcon?2:-1),f(2),w(i._isEditing?4:5),f(3),w(i._hasTrailingIcon()?7:-1),f(),G("id",i._ariaDescriptionId),f(),dt(i.ariaDescription))},dependencies:[rt,_t],styles:[Se],encapsulation:2,changeDetection:0})}return o})(),Be=(()=>{class o{_elementRef=r(k);_changeDetectorRef=r(st);_dir=r(Yt,{optional:!0});_lastDestroyedFocusedChipIndex=null;_keyManager;_destroyed=new q;_defaultRole="presentation";get chipFocusChanges(){return this._getChipStream(t=>t._onFocus)}get chipDestroyedChanges(){return this._getChipStream(t=>t.destroyed)}get chipRemovedChanges(){return this._getChipStream(t=>t.removed)}get disabled(){return this._disabled}set disabled(t){this._disabled=t,this._syncChipsState()}_disabled=!1;get empty(){return!this._chips||this._chips.length===0}get role(){return this._explicitRole?this._explicitRole:this.empty?null:this._defaultRole}tabIndex=0;set role(t){this._explicitRole=t}_explicitRole=null;get focused(){return this._hasFocusedChip()}_chips;_chipActions=new Lt;constructor(){}ngAfterViewInit(){this._setUpFocusManagement(),this._trackChipSetChanges(),this._trackDestroyedFocusedChip()}ngOnDestroy(){this._keyManager?.destroy(),this._chipActions.destroy(),this._destroyed.next(),this._destroyed.complete()}_hasFocusedChip(){return this._chips&&this._chips.some(t=>t._hasFocus())}_syncChipsState(){this._chips?.forEach(t=>{t._chipListDisabled=this._disabled,t._changeDetectorRef.markForCheck()})}focus(){}_handleKeydown(t){this._originatesFromChip(t)&&this._keyManager.onKeydown(t)}_isValidIndex(t){return t>=0&&tthis._elementRef.nativeElement.tabIndex=t))}_getChipStream(t){return this._chips.changes.pipe(Z(null),Mt(()=>Y(...this._chips.map(t))))}_originatesFromChip(t){let e=t.target;for(;e&&e!==this._elementRef.nativeElement;){if(e.classList.contains("mat-mdc-chip"))return!0;e=e.parentElement}return!1}_setUpFocusManagement(){this._chips.changes.pipe(Z(this._chips)).subscribe(t=>{let e=[];t.forEach(i=>i._getActions().forEach(a=>e.push(a))),this._chipActions.reset(e),this._chipActions.notifyOnChanges()}),this._keyManager=new Wt(this._chipActions).withVerticalOrientation().withHorizontalOrientation(this._dir?this._dir.value:"ltr").withHomeAndEnd().skipPredicate(t=>this._skipPredicate(t)),this.chipFocusChanges.pipe(S(this._destroyed)).subscribe(({chip:t})=>{let e=t._getSourceAction(document.activeElement);e&&this._keyManager.updateActiveItem(e)}),this._dir?.change.pipe(S(this._destroyed)).subscribe(t=>this._keyManager.withHorizontalOrientation(t))}_skipPredicate(t){return!t.isInteractive||t.disabled}_trackChipSetChanges(){this._chips.changes.pipe(Z(null),S(this._destroyed)).subscribe(()=>{this.disabled&&Promise.resolve().then(()=>this._syncChipsState()),this._redirectDestroyedChipFocus()})}_trackDestroyedFocusedChip(){this.chipDestroyedChanges.pipe(S(this._destroyed)).subscribe(t=>{let i=this._chips.toArray().indexOf(t.chip);this._isValidIndex(i)&&t.chip._hasFocus()&&(this._lastDestroyedFocusedChipIndex=i)})}_redirectDestroyedChipFocus(){if(this._lastDestroyedFocusedChipIndex!=null){if(this._chips.length){let t=Math.min(this._lastDestroyedFocusedChipIndex,this._chips.length-1),e=this._chips.toArray()[t];e.disabled?this._chips.length===1?this.focus():this._keyManager.setPreviousItemActive():e.focus()}else this.focus();this._lastDestroyedFocusedChipIndex=null}}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=v({type:o,selectors:[["mat-chip-set"]],contentQueries:function(e,i,a){if(e&1&&_(a,bt,5),e&2){let n;h(n=p())&&(i._chips=n)}},hostAttrs:[1,"mat-mdc-chip-set","mdc-evolution-chip-set"],hostVars:1,hostBindings:function(e,i){e&1&&R("keydown",function(n){return i._handleKeydown(n)}),e&2&&d("role",i.role)},inputs:{disabled:[2,"disabled","disabled",g],role:"role",tabIndex:[2,"tabIndex","tabIndex",t=>t==null?0:mt(t)]},ngContentSelectors:le,decls:2,vars:0,consts:[["role","presentation",1,"mdc-evolution-chip-set__chips"]],template:function(e,i){e&1&&(E(),s(0,"div",0),m(1),u())},styles:[`.mat-mdc-chip-set{display:flex}.mat-mdc-chip-set:focus{outline:none}.mat-mdc-chip-set .mdc-evolution-chip-set__chips{min-width:100%;margin-left:-8px;margin-right:0}.mat-mdc-chip-set .mdc-evolution-chip{margin:4px 0 4px 8px}[dir=rtl] .mat-mdc-chip-set .mdc-evolution-chip-set__chips{margin-left:0;margin-right:-8px}[dir=rtl] .mat-mdc-chip-set .mdc-evolution-chip{margin-left:0;margin-right:8px}.mdc-evolution-chip-set__chips{display:flex;flex-flow:wrap;min-width:0}.mat-mdc-chip-set-stacked{flex-direction:column;align-items:flex-start}.mat-mdc-chip-set-stacked .mat-mdc-chip{width:100%}.mat-mdc-chip-set-stacked .mdc-evolution-chip__graphic{flex-grow:0}.mat-mdc-chip-set-stacked .mdc-evolution-chip__action--primary{flex-basis:100%;justify-content:start}input.mat-mdc-chip-input{flex:1 0 150px;margin-left:8px}[dir=rtl] input.mat-mdc-chip-input{margin-left:0;margin-right:8px} +`],encapsulation:2,changeDetection:0})}return o})();var yt=class{source;value;constructor(c,t){this.source=c,this.value=t}},oo=(()=>{class o extends Be{ngControl=r(Ht,{optional:!0,self:!0});controlType="mat-chip-grid";_chipInput;_defaultRole="grid";_errorStateTracker;_ariaDescribedbyIds=[];_onTouched=()=>{};_onChange=()=>{};get disabled(){return this.ngControl?!!this.ngControl.disabled:this._disabled}set disabled(t){this._disabled=t,this._syncChipsState(),this.stateChanges.next()}get id(){return this._chipInput.id}get empty(){return(!this._chipInput||this._chipInput.empty)&&(!this._chips||this._chips.length===0)}get placeholder(){return this._chipInput?this._chipInput.placeholder:this._placeholder}set placeholder(t){this._placeholder=t,this.stateChanges.next()}_placeholder;get focused(){return this._chipInput.focused||this._hasFocusedChip()}get required(){return this._required??this.ngControl?.control?.hasValidator(Bt.required)??!1}set required(t){this._required=t,this.stateChanges.next()}_required;get shouldLabelFloat(){return!this.empty||this.focused}get value(){return this._value}set value(t){this._value=t}_value=[];get errorStateMatcher(){return this._errorStateTracker.matcher}set errorStateMatcher(t){this._errorStateTracker.matcher=t}get chipBlurChanges(){return this._getChipStream(t=>t._onBlur)}change=new B;valueChange=new B;_chips=void 0;stateChanges=new q;get errorState(){return this._errorStateTracker.errorState}set errorState(t){this._errorStateTracker.errorState=t}constructor(){super();let t=r(Vt,{optional:!0}),e=r(jt,{optional:!0}),i=r(ut);this.ngControl&&(this.ngControl.valueAccessor=this),this._errorStateTracker=new nt(i,this.ngControl,e,t,this.stateChanges)}ngAfterContentInit(){this.chipBlurChanges.pipe(S(this._destroyed)).subscribe(()=>{this._blur(),this.stateChanges.next()}),Y(this.chipFocusChanges,this._chips.changes).pipe(S(this._destroyed)).subscribe(()=>this.stateChanges.next())}ngAfterViewInit(){super.ngAfterViewInit(),this._chipInput}ngDoCheck(){this.ngControl&&this.updateErrorState()}ngOnDestroy(){super.ngOnDestroy(),this.stateChanges.complete()}registerInput(t){this._chipInput=t,this._chipInput.setDescribedByIds(this._ariaDescribedbyIds)}onContainerClick(t){!this.disabled&&!this._originatesFromChip(t)&&this.focus()}focus(){if(!(this.disabled||this._chipInput.focused)){if(!this._chips.length||this._chips.first.disabled)Promise.resolve().then(()=>this._chipInput.focus());else{let t=this._keyManager.activeItem;t?t.focus():this._keyManager.setFirstItemActive()}this.stateChanges.next()}}setDescribedByIds(t){this._ariaDescribedbyIds=t,this._chipInput?.setDescribedByIds(t)}writeValue(t){this._value=t}registerOnChange(t){this._onChange=t}registerOnTouched(t){this._onTouched=t}setDisabledState(t){this.disabled=t,this.stateChanges.next()}updateErrorState(){this._errorStateTracker.updateErrorState()}_blur(){this.disabled||setTimeout(()=>{this.focused||(this._propagateChanges(),this._markAsTouched())})}_allowFocusEscape(){this._chipInput.focused||super._allowFocusEscape()}_handleKeydown(t){let e=t.keyCode,i=this._keyManager.activeItem;if(e===9)this._chipInput.focused&&Gt(t,"shiftKey")&&this._chips.length&&!this._chips.last.disabled?(t.preventDefault(),i?this._keyManager.setActiveItem(i):this._focusLastChip()):super._allowFocusEscape();else if(!this._chipInput.focused)if((e===38||e===40)&&i){let a=this._chipActions.filter(y=>y._isPrimary===i._isPrimary&&!this._skipPredicate(y)),n=a.indexOf(i),l=t.keyCode===38?-1:1;t.preventDefault(),n>-1&&this._isValidIndex(n+l)&&this._keyManager.setActiveItem(a[n+l])}else super._handleKeydown(t);this.stateChanges.next()}_focusLastChip(){this._chips.length&&this._chips.last.focus()}_propagateChanges(){let t=this._chips.length?this._chips.toArray().map(e=>e.value):[];this._value=t,this.change.emit(new yt(this,t)),this.valueChange.emit(t),this._onChange(t),this._changeDetectorRef.markForCheck()}_markAsTouched(){this._onTouched(),this._changeDetectorRef.markForCheck(),this.stateChanges.next()}static \u0275fac=function(e){return new(e||o)};static \u0275cmp=v({type:o,selectors:[["mat-chip-grid"]],contentQueries:function(e,i,a){if(e&1&&_(a,Ne,5),e&2){let n;h(n=p())&&(i._chips=n)}},hostAttrs:[1,"mat-mdc-chip-set","mat-mdc-chip-grid","mdc-evolution-chip-set"],hostVars:10,hostBindings:function(e,i){e&1&&R("focus",function(){return i.focus()})("blur",function(){return i._blur()}),e&2&&(d("role",i.role)("tabindex",i.disabled||i._chips&&i._chips.length===0?-1:i.tabIndex)("aria-disabled",i.disabled.toString())("aria-invalid",i.errorState),b("mat-mdc-chip-list-disabled",i.disabled)("mat-mdc-chip-list-invalid",i.errorState)("mat-mdc-chip-list-required",i.required))},inputs:{disabled:[2,"disabled","disabled",g],placeholder:"placeholder",required:[2,"required","required",g],value:"value",errorStateMatcher:"errorStateMatcher"},outputs:{change:"change",valueChange:"valueChange"},features:[T([{provide:ae,useExisting:o}]),J],ngContentSelectors:le,decls:2,vars:0,consts:[["role","presentation",1,"mdc-evolution-chip-set__chips"]],template:function(e,i){e&1&&(E(),s(0,"div",0),m(1),u())},styles:[ze],encapsulation:2,changeDetection:0})}return o})();var ao=(()=>{class o{static \u0275fac=function(e){return new(e||o)};static \u0275mod=V({type:o});static \u0275inj=N({providers:[ut,{provide:Pe,useValue:{separatorKeyCodes:[13]}}],imports:[I,Zt,I]})}return o})();var lo=(()=>{class o{get vertical(){return this._vertical}set vertical(t){this._vertical=pt(t)}_vertical=!1;get inset(){return this._inset}set inset(t){this._inset=pt(t)}_inset=!1;static \u0275fac=function(e){return new(e||o)};static \u0275cmp=v({type:o,selectors:[["mat-divider"]],hostAttrs:["role","separator",1,"mat-divider"],hostVars:7,hostBindings:function(e,i){e&2&&(d("aria-orientation",i.vertical?"vertical":"horizontal"),b("mat-divider-vertical",i.vertical)("mat-divider-horizontal",!i.vertical)("mat-divider-inset",i.inset))},inputs:{vertical:"vertical",inset:"inset"},decls:0,vars:0,template:function(e,i){},styles:[`.mat-divider{display:block;margin:0;border-top-style:solid;border-top-color:var(--mat-divider-color, var(--mat-sys-outline));border-top-width:var(--mat-divider-width, 1px)}.mat-divider.mat-divider-vertical{border-top:0;border-right-style:solid;border-right-color:var(--mat-divider-color, var(--mat-sys-outline));border-right-width:var(--mat-divider-width, 1px)}.mat-divider.mat-divider-inset{margin-left:80px}[dir=rtl] .mat-divider.mat-divider-inset{margin-left:auto;margin-right:80px} +`],encapsulation:2,changeDetection:0})}return o})(),so=(()=>{class o{static \u0275fac=function(e){return new(e||o)};static \u0275mod=V({type:o});static \u0275inj=N({imports:[I,I]})}return o})();var He=(()=>{class o{_listeners=[];notify(t,e){for(let i of this._listeners)i(t,e)}listen(t){return this._listeners.push(t),()=>{this._listeners=this._listeners.filter(e=>t!==e)}}ngOnDestroy(){this._listeners=[]}static \u0275fac=function(e){return new(e||o)};static \u0275prov=P({token:o,factory:o.\u0275fac,providedIn:"root"})}return o})();export{He as a,di as b,si as c,eo as d,io as e,Ne as f,oo as g,ao as h,lo as i,so as j}; diff --git a/electron/dist/frontend/browser/chunk-D7GXM5CJ.js b/electron/dist/frontend/browser/chunk-D7GXM5CJ.js new file mode 100644 index 00000000..3eda42dc --- /dev/null +++ b/electron/dist/frontend/browser/chunk-D7GXM5CJ.js @@ -0,0 +1,22 @@ +var $D=Object.defineProperty,zD=Object.defineProperties;var GD=Object.getOwnPropertyDescriptors;var Si=Object.getOwnPropertySymbols;var xh=Object.prototype.hasOwnProperty,Ah=Object.prototype.propertyIsEnumerable;var Sh=(e,t,n)=>t in e?$D(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,_=(e,t)=>{for(var n in t||={})xh.call(t,n)&&Sh(e,n,t[n]);if(Si)for(var n of Si(t))Ah.call(t,n)&&Sh(e,n,t[n]);return e},B=(e,t)=>zD(e,GD(t));var Rh=(e,t)=>{var n={};for(var r in e)xh.call(e,r)&&t.indexOf(r)<0&&(n[r]=e[r]);if(e!=null&&Si)for(var r of Si(e))t.indexOf(r)<0&&Ah.call(e,r)&&(n[r]=e[r]);return n};var pt=(e,t,n)=>new Promise((r,o)=>{var i=c=>{try{a(n.next(c))}catch(l){o(l)}},s=c=>{try{a(n.throw(c))}catch(l){o(l)}},a=c=>c.done?r(c.value):Promise.resolve(c.value).then(i,s);a((n=n.apply(e,t)).next())});function R(e){return typeof e=="function"}function ir(e){let n=e(r=>{Error.call(r),r.stack=new Error().stack});return n.prototype=Object.create(Error.prototype),n.prototype.constructor=n,n}var xi=ir(e=>function(n){e(this),this.message=n?`${n.length} errors occurred during unsubscription: +${n.map((r,o)=>`${o+1}) ${r.toString()}`).join(` + `)}`:"",this.name="UnsubscriptionError",this.errors=n});function _n(e,t){if(e){let n=e.indexOf(t);0<=n&&e.splice(n,1)}}var Q=class e{constructor(t){this.initialTeardown=t,this.closed=!1,this._parentage=null,this._finalizers=null}unsubscribe(){let t;if(!this.closed){this.closed=!0;let{_parentage:n}=this;if(n)if(this._parentage=null,Array.isArray(n))for(let i of n)i.remove(this);else n.remove(this);let{initialTeardown:r}=this;if(R(r))try{r()}catch(i){t=i instanceof xi?i.errors:[i]}let{_finalizers:o}=this;if(o){this._finalizers=null;for(let i of o)try{Nh(i)}catch(s){t=t??[],s instanceof xi?t=[...t,...s.errors]:t.push(s)}}if(t)throw new xi(t)}}add(t){var n;if(t&&t!==this)if(this.closed)Nh(t);else{if(t instanceof e){if(t.closed||t._hasParent(this))return;t._addParent(this)}(this._finalizers=(n=this._finalizers)!==null&&n!==void 0?n:[]).push(t)}}_hasParent(t){let{_parentage:n}=this;return n===t||Array.isArray(n)&&n.includes(t)}_addParent(t){let{_parentage:n}=this;this._parentage=Array.isArray(n)?(n.push(t),n):n?[n,t]:t}_removeParent(t){let{_parentage:n}=this;n===t?this._parentage=null:Array.isArray(n)&&_n(n,t)}remove(t){let{_finalizers:n}=this;n&&_n(n,t),t instanceof e&&t._removeParent(this)}};Q.EMPTY=(()=>{let e=new Q;return e.closed=!0,e})();var Xc=Q.EMPTY;function Ai(e){return e instanceof Q||e&&"closed"in e&&R(e.remove)&&R(e.add)&&R(e.unsubscribe)}function Nh(e){R(e)?e():e.unsubscribe()}var Ri=class extends Q{constructor(t,n){super()}schedule(t,n=0){return this}};var ao={setInterval(e,t,...n){let{delegate:r}=ao;return r?.setInterval?r.setInterval(e,t,...n):setInterval(e,t,...n)},clearInterval(e){let{delegate:t}=ao;return(t?.clearInterval||clearInterval)(e)},delegate:void 0};var Ni=class extends Ri{constructor(t,n){super(t,n),this.scheduler=t,this.work=n,this.pending=!1}schedule(t,n=0){var r;if(this.closed)return this;this.state=t;let o=this.id,i=this.scheduler;return o!=null&&(this.id=this.recycleAsyncId(i,o,n)),this.pending=!0,this.delay=n,this.id=(r=this.id)!==null&&r!==void 0?r:this.requestAsyncId(i,this.id,n),this}requestAsyncId(t,n,r=0){return ao.setInterval(t.flush.bind(t,this),r)}recycleAsyncId(t,n,r=0){if(r!=null&&this.delay===r&&this.pending===!1)return n;n!=null&&ao.clearInterval(n)}execute(t,n){if(this.closed)return new Error("executing a cancelled action");this.pending=!1;let r=this._execute(t,n);if(r)return r;this.pending===!1&&this.id!=null&&(this.id=this.recycleAsyncId(this.scheduler,this.id,null))}_execute(t,n){let r=!1,o;try{this.work(t)}catch(i){r=!0,o=i||new Error("Scheduled action threw falsy error")}if(r)return this.unsubscribe(),o}unsubscribe(){if(!this.closed){let{id:t,scheduler:n}=this,{actions:r}=n;this.work=this.state=this.scheduler=null,this.pending=!1,_n(r,this),t!=null&&(this.id=this.recycleAsyncId(n,t,null)),this.delay=null,super.unsubscribe()}}};var Qc={now(){return(Qc.delegate||Date).now()},delegate:void 0};var sr=class e{constructor(t,n=e.now){this.schedulerActionCtor=t,this.now=n}schedule(t,n=0,r){return new this.schedulerActionCtor(this,t).schedule(r,n)}};sr.now=Qc.now;var Oi=class extends sr{constructor(t,n=sr.now){super(t,n),this.actions=[],this._active=!1}flush(t){let{actions:n}=this;if(this._active){n.push(t);return}let r;this._active=!0;do if(r=t.execute(t.state,t.delay))break;while(t=n.shift());if(this._active=!1,r){for(;t=n.shift();)t.unsubscribe();throw r}}};var co=new Oi(Ni),Oh=co;function Jc(e){return R(e?.lift)}function F(e){return t=>{if(Jc(t))return t.lift(function(n){try{return e(n,this)}catch(r){this.error(r)}});throw new TypeError("Unable to lift unknown Observable type")}}var nt={onUnhandledError:null,onStoppedNotification:null,Promise:void 0,useDeprecatedSynchronousErrorHandling:!1,useDeprecatedNextContext:!1};var ar={setTimeout(e,t,...n){let{delegate:r}=ar;return r?.setTimeout?r.setTimeout(e,t,...n):setTimeout(e,t,...n)},clearTimeout(e){let{delegate:t}=ar;return(t?.clearTimeout||clearTimeout)(e)},delegate:void 0};function ki(e){ar.setTimeout(()=>{let{onUnhandledError:t}=nt;if(t)t(e);else throw e})}function lo(){}var kh=el("C",void 0,void 0);function Fh(e){return el("E",void 0,e)}function Ph(e){return el("N",e,void 0)}function el(e,t,n){return{kind:e,value:t,error:n}}var Dn=null;function cr(e){if(nt.useDeprecatedSynchronousErrorHandling){let t=!Dn;if(t&&(Dn={errorThrown:!1,error:null}),e(),t){let{errorThrown:n,error:r}=Dn;if(Dn=null,n)throw r}}else e()}function Lh(e){nt.useDeprecatedSynchronousErrorHandling&&Dn&&(Dn.errorThrown=!0,Dn.error=e)}var En=class extends Q{constructor(t){super(),this.isStopped=!1,t?(this.destination=t,Ai(t)&&t.add(this)):this.destination=YD}static create(t,n,r){return new rt(t,n,r)}next(t){this.isStopped?nl(Ph(t),this):this._next(t)}error(t){this.isStopped?nl(Fh(t),this):(this.isStopped=!0,this._error(t))}complete(){this.isStopped?nl(kh,this):(this.isStopped=!0,this._complete())}unsubscribe(){this.closed||(this.isStopped=!0,super.unsubscribe(),this.destination=null)}_next(t){this.destination.next(t)}_error(t){try{this.destination.error(t)}finally{this.unsubscribe()}}_complete(){try{this.destination.complete()}finally{this.unsubscribe()}}},WD=Function.prototype.bind;function tl(e,t){return WD.call(e,t)}var rl=class{constructor(t){this.partialObserver=t}next(t){let{partialObserver:n}=this;if(n.next)try{n.next(t)}catch(r){Fi(r)}}error(t){let{partialObserver:n}=this;if(n.error)try{n.error(t)}catch(r){Fi(r)}else Fi(t)}complete(){let{partialObserver:t}=this;if(t.complete)try{t.complete()}catch(n){Fi(n)}}},rt=class extends En{constructor(t,n,r){super();let o;if(R(t)||!t)o={next:t??void 0,error:n??void 0,complete:r??void 0};else{let i;this&&nt.useDeprecatedNextContext?(i=Object.create(t),i.unsubscribe=()=>this.unsubscribe(),o={next:t.next&&tl(t.next,i),error:t.error&&tl(t.error,i),complete:t.complete&&tl(t.complete,i)}):o=t}this.destination=new rl(o)}};function Fi(e){nt.useDeprecatedSynchronousErrorHandling?Lh(e):ki(e)}function qD(e){throw e}function nl(e,t){let{onStoppedNotification:n}=nt;n&&ar.setTimeout(()=>n(e,t))}var YD={closed:!0,next:lo,error:qD,complete:lo};function N(e,t,n,r,o){return new ol(e,t,n,r,o)}var ol=class extends En{constructor(t,n,r,o,i,s){super(t),this.onFinalize=i,this.shouldUnsubscribe=s,this._next=n?function(a){try{n(a)}catch(c){t.error(c)}}:super._next,this._error=o?function(a){try{o(a)}catch(c){t.error(c)}finally{this.unsubscribe()}}:super._error,this._complete=r?function(){try{r()}catch(a){t.error(a)}finally{this.unsubscribe()}}:super._complete}unsubscribe(){var t;if(!this.shouldUnsubscribe||this.shouldUnsubscribe()){let{closed:n}=this;super.unsubscribe(),!n&&((t=this.onFinalize)===null||t===void 0||t.call(this))}}};function lr(e,t=co){return F((n,r)=>{let o=null,i=null,s=null,a=()=>{if(o){o.unsubscribe(),o=null;let l=i;i=null,r.next(l)}};function c(){let l=s+e,u=t.now();if(u{i=l,s=t.now(),o||(o=t.schedule(c,e),r.add(o))},()=>{a(),r.complete()},void 0,()=>{i=o=null}))})}var ur=typeof Symbol=="function"&&Symbol.observable||"@@observable";function Ee(e){return e}function ZD(...e){return il(e)}function il(e){return e.length===0?Ee:e.length===1?e[0]:function(n){return e.reduce((r,o)=>o(r),n)}}var P=(()=>{class e{constructor(n){n&&(this._subscribe=n)}lift(n){let r=new e;return r.source=this,r.operator=n,r}subscribe(n,r,o){let i=XD(n)?n:new rt(n,r,o);return cr(()=>{let{operator:s,source:a}=this;i.add(s?s.call(i,a):a?this._subscribe(i):this._trySubscribe(i))}),i}_trySubscribe(n){try{return this._subscribe(n)}catch(r){n.error(r)}}forEach(n,r){return r=Vh(r),new r((o,i)=>{let s=new rt({next:a=>{try{n(a)}catch(c){i(c),s.unsubscribe()}},error:i,complete:o});this.subscribe(s)})}_subscribe(n){var r;return(r=this.source)===null||r===void 0?void 0:r.subscribe(n)}[ur](){return this}pipe(...n){return il(n)(this)}toPromise(n){return n=Vh(n),new n((r,o)=>{let i;this.subscribe(s=>i=s,s=>o(s),()=>r(i))})}}return e.create=t=>new e(t),e})();function Vh(e){var t;return(t=e??nt.Promise)!==null&&t!==void 0?t:Promise}function KD(e){return e&&R(e.next)&&R(e.error)&&R(e.complete)}function XD(e){return e&&e instanceof En||KD(e)&&Ai(e)}function sl(){return F((e,t)=>{let n=null;e._refCount++;let r=N(t,void 0,void 0,void 0,()=>{if(!e||e._refCount<=0||0<--e._refCount){n=null;return}let o=e._connection,i=n;n=null,o&&(!i||o===i)&&o.unsubscribe(),t.unsubscribe()});e.subscribe(r),r.closed||(n=e.connect())})}var al=class extends P{constructor(t,n){super(),this.source=t,this.subjectFactory=n,this._subject=null,this._refCount=0,this._connection=null,Jc(t)&&(this.lift=t.lift)}_subscribe(t){return this.getSubject().subscribe(t)}getSubject(){let t=this._subject;return(!t||t.isStopped)&&(this._subject=this.subjectFactory()),this._subject}_teardown(){this._refCount=0;let{_connection:t}=this;this._subject=this._connection=null,t?.unsubscribe()}connect(){let t=this._connection;if(!t){t=this._connection=new Q;let n=this.getSubject();t.add(this.source.subscribe(N(n,void 0,()=>{this._teardown(),n.complete()},r=>{this._teardown(),n.error(r)},()=>this._teardown()))),t.closed&&(this._connection=null,t=Q.EMPTY)}return t}refCount(){return sl()(this)}};var jh=ir(e=>function(){e(this),this.name="ObjectUnsubscribedError",this.message="object unsubscribed"});var T=(()=>{class e extends P{constructor(){super(),this.closed=!1,this.currentObservers=null,this.observers=[],this.isStopped=!1,this.hasError=!1,this.thrownError=null}lift(n){let r=new Pi(this,this);return r.operator=n,r}_throwIfClosed(){if(this.closed)throw new jh}next(n){cr(()=>{if(this._throwIfClosed(),!this.isStopped){this.currentObservers||(this.currentObservers=Array.from(this.observers));for(let r of this.currentObservers)r.next(n)}})}error(n){cr(()=>{if(this._throwIfClosed(),!this.isStopped){this.hasError=this.isStopped=!0,this.thrownError=n;let{observers:r}=this;for(;r.length;)r.shift().error(n)}})}complete(){cr(()=>{if(this._throwIfClosed(),!this.isStopped){this.isStopped=!0;let{observers:n}=this;for(;n.length;)n.shift().complete()}})}unsubscribe(){this.isStopped=this.closed=!0,this.observers=this.currentObservers=null}get observed(){var n;return((n=this.observers)===null||n===void 0?void 0:n.length)>0}_trySubscribe(n){return this._throwIfClosed(),super._trySubscribe(n)}_subscribe(n){return this._throwIfClosed(),this._checkFinalizedStatuses(n),this._innerSubscribe(n)}_innerSubscribe(n){let{hasError:r,isStopped:o,observers:i}=this;return r||o?Xc:(this.currentObservers=null,i.push(n),new Q(()=>{this.currentObservers=null,_n(i,n)}))}_checkFinalizedStatuses(n){let{hasError:r,thrownError:o,isStopped:i}=this;r?n.error(o):i&&n.complete()}asObservable(){let n=new P;return n.source=this,n}}return e.create=(t,n)=>new Pi(t,n),e})(),Pi=class extends T{constructor(t,n){super(),this.destination=t,this.source=n}next(t){var n,r;(r=(n=this.destination)===null||n===void 0?void 0:n.next)===null||r===void 0||r.call(n,t)}error(t){var n,r;(r=(n=this.destination)===null||n===void 0?void 0:n.error)===null||r===void 0||r.call(n,t)}complete(){var t,n;(n=(t=this.destination)===null||t===void 0?void 0:t.complete)===null||n===void 0||n.call(t)}_subscribe(t){var n,r;return(r=(n=this.source)===null||n===void 0?void 0:n.subscribe(t))!==null&&r!==void 0?r:Xc}};var Ot=class extends T{constructor(t){super(),this._value=t}get value(){return this.getValue()}_subscribe(t){let n=super._subscribe(t);return!n.closed&&t.next(this._value),n}getValue(){let{hasError:t,thrownError:n,_value:r}=this;if(t)throw n;return this._throwIfClosed(),r}next(t){super.next(this._value=t)}};var wn=new P(e=>e.complete());function Li(e){return e&&R(e.schedule)}function cl(e){return e[e.length-1]}function Vi(e){return R(cl(e))?e.pop():void 0}function mt(e){return Li(cl(e))?e.pop():void 0}function Bh(e,t){return typeof cl(e)=="number"?e.pop():t}function Uh(e,t,n,r){function o(i){return i instanceof n?i:new n(function(s){s(i)})}return new(n||(n=Promise))(function(i,s){function a(u){try{l(r.next(u))}catch(f){s(f)}}function c(u){try{l(r.throw(u))}catch(f){s(f)}}function l(u){u.done?i(u.value):o(u.value).then(a,c)}l((r=r.apply(e,t||[])).next())})}function Hh(e){var t=typeof Symbol=="function"&&Symbol.iterator,n=t&&e[t],r=0;if(n)return n.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&r>=e.length&&(e=void 0),{value:e&&e[r++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function Cn(e){return this instanceof Cn?(this.v=e,this):new Cn(e)}function $h(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var r=n.apply(e,t||[]),o,i=[];return o=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),a("next"),a("throw"),a("return",s),o[Symbol.asyncIterator]=function(){return this},o;function s(d){return function(m){return Promise.resolve(m).then(d,f)}}function a(d,m){r[d]&&(o[d]=function(g){return new Promise(function(b,M){i.push([d,g,b,M])>1||c(d,g)})},m&&(o[d]=m(o[d])))}function c(d,m){try{l(r[d](m))}catch(g){p(i[0][3],g)}}function l(d){d.value instanceof Cn?Promise.resolve(d.value.v).then(u,f):p(i[0][2],d)}function u(d){c("next",d)}function f(d){c("throw",d)}function p(d,m){d(m),i.shift(),i.length&&c(i[0][0],i[0][1])}}function zh(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof Hh=="function"?Hh(e):e[Symbol.iterator](),n={},r("next"),r("throw"),r("return"),n[Symbol.asyncIterator]=function(){return this},n);function r(i){n[i]=e[i]&&function(s){return new Promise(function(a,c){s=e[i](s),o(a,c,s.done,s.value)})}}function o(i,s,a,c){Promise.resolve(c).then(function(l){i({value:l,done:a})},s)}}var ji=e=>e&&typeof e.length=="number"&&typeof e!="function";function Bi(e){return R(e?.then)}function Hi(e){return R(e[ur])}function Ui(e){return Symbol.asyncIterator&&R(e?.[Symbol.asyncIterator])}function $i(e){return new TypeError(`You provided ${e!==null&&typeof e=="object"?"an invalid object":`'${e}'`} where a stream was expected. You can provide an Observable, Promise, ReadableStream, Array, AsyncIterable, or Iterable.`)}function QD(){return typeof Symbol!="function"||!Symbol.iterator?"@@iterator":Symbol.iterator}var zi=QD();function Gi(e){return R(e?.[zi])}function Wi(e){return $h(this,arguments,function*(){let n=e.getReader();try{for(;;){let{value:r,done:o}=yield Cn(n.read());if(o)return yield Cn(void 0);yield yield Cn(r)}}finally{n.releaseLock()}})}function qi(e){return R(e?.getReader)}function Y(e){if(e instanceof P)return e;if(e!=null){if(Hi(e))return JD(e);if(ji(e))return eE(e);if(Bi(e))return tE(e);if(Ui(e))return Gh(e);if(Gi(e))return nE(e);if(qi(e))return rE(e)}throw $i(e)}function JD(e){return new P(t=>{let n=e[ur]();if(R(n.subscribe))return n.subscribe(t);throw new TypeError("Provided object does not correctly implement Symbol.observable")})}function eE(e){return new P(t=>{for(let n=0;n{e.then(n=>{t.closed||(t.next(n),t.complete())},n=>t.error(n)).then(null,ki)})}function nE(e){return new P(t=>{for(let n of e)if(t.next(n),t.closed)return;t.complete()})}function Gh(e){return new P(t=>{oE(e,t).catch(n=>t.error(n))})}function rE(e){return Gh(Wi(e))}function oE(e,t){var n,r,o,i;return Uh(this,void 0,void 0,function*(){try{for(n=zh(e);r=yield n.next(),!r.done;){let s=r.value;if(t.next(s),t.closed)return}}catch(s){o={error:s}}finally{try{r&&!r.done&&(i=n.return)&&(yield i.call(n))}finally{if(o)throw o.error}}t.complete()})}function Me(e,t,n,r=0,o=!1){let i=t.schedule(function(){n(),o?e.add(this.schedule(null,r)):this.unsubscribe()},r);if(e.add(i),!o)return i}function Yi(e,t=0){return F((n,r)=>{n.subscribe(N(r,o=>Me(r,e,()=>r.next(o),t),()=>Me(r,e,()=>r.complete(),t),o=>Me(r,e,()=>r.error(o),t)))})}function Zi(e,t=0){return F((n,r)=>{r.add(e.schedule(()=>n.subscribe(r),t))})}function Wh(e,t){return Y(e).pipe(Zi(t),Yi(t))}function qh(e,t){return Y(e).pipe(Zi(t),Yi(t))}function Yh(e,t){return new P(n=>{let r=0;return t.schedule(function(){r===e.length?n.complete():(n.next(e[r++]),n.closed||this.schedule())})})}function Zh(e,t){return new P(n=>{let r;return Me(n,t,()=>{r=e[zi](),Me(n,t,()=>{let o,i;try{({value:o,done:i}=r.next())}catch(s){n.error(s);return}i?n.complete():n.next(o)},0,!0)}),()=>R(r?.return)&&r.return()})}function Ki(e,t){if(!e)throw new Error("Iterable cannot be null");return new P(n=>{Me(n,t,()=>{let r=e[Symbol.asyncIterator]();Me(n,t,()=>{r.next().then(o=>{o.done?n.complete():n.next(o.value)})},0,!0)})})}function Kh(e,t){return Ki(Wi(e),t)}function Xh(e,t){if(e!=null){if(Hi(e))return Wh(e,t);if(ji(e))return Yh(e,t);if(Bi(e))return qh(e,t);if(Ui(e))return Ki(e,t);if(Gi(e))return Zh(e,t);if(qi(e))return Kh(e,t)}throw $i(e)}function Te(e,t){return t?Xh(e,t):Y(e)}function $e(...e){let t=mt(e);return Te(e,t)}function iE(e,t){let n=R(e)?e:()=>e,r=o=>o.error(n());return new P(t?o=>t.schedule(r,0,o):r)}function Qh(e){return!!e&&(e instanceof P||R(e.lift)&&R(e.subscribe))}var kt=ir(e=>function(){e(this),this.name="EmptyError",this.message="no elements in sequence"});function sE(e,t){let n=typeof t=="object";return new Promise((r,o)=>{let i=new rt({next:s=>{r(s),i.unsubscribe()},error:o,complete:()=>{n?r(t.defaultValue):o(new kt)}});e.subscribe(i)})}function Jh(e){return e instanceof Date&&!isNaN(e)}function ue(e,t){return F((n,r)=>{let o=0;n.subscribe(N(r,i=>{r.next(e.call(t,i,o++))}))})}var{isArray:aE}=Array;function cE(e,t){return aE(t)?e(...t):e(t)}function Xi(e){return ue(t=>cE(e,t))}var{isArray:lE}=Array,{getPrototypeOf:uE,prototype:dE,keys:fE}=Object;function Qi(e){if(e.length===1){let t=e[0];if(lE(t))return{args:t,keys:null};if(hE(t)){let n=fE(t);return{args:n.map(r=>t[r]),keys:n}}}return{args:e,keys:null}}function hE(e){return e&&typeof e=="object"&&uE(e)===dE}function Ji(e,t){return e.reduce((n,r,o)=>(n[r]=t[o],n),{})}function ll(...e){let t=mt(e),n=Vi(e),{args:r,keys:o}=Qi(e);if(r.length===0)return Te([],t);let i=new P(pE(r,t,o?s=>Ji(o,s):Ee));return n?i.pipe(Xi(n)):i}function pE(e,t,n=Ee){return r=>{ep(t,()=>{let{length:o}=e,i=new Array(o),s=o,a=o;for(let c=0;c{let l=Te(e[c],t),u=!1;l.subscribe(N(r,f=>{i[c]=f,u||(u=!0,a--),a||r.next(n(i.slice()))},()=>{--s||r.complete()}))},r)},r)}}function ep(e,t,n){e?Me(n,e,t):t()}function tp(e,t,n,r,o,i,s,a){let c=[],l=0,u=0,f=!1,p=()=>{f&&!c.length&&!l&&t.complete()},d=g=>l{i&&t.next(g),l++;let b=!1;Y(n(g,u++)).subscribe(N(t,M=>{o?.(M),i?d(M):t.next(M)},()=>{b=!0},void 0,()=>{if(b)try{for(l--;c.length&&lm(M)):m(M)}p()}catch(M){t.error(M)}}))};return e.subscribe(N(t,d,()=>{f=!0,p()})),()=>{a?.()}}function In(e,t,n=1/0){return R(t)?In((r,o)=>ue((i,s)=>t(r,i,o,s))(Y(e(r,o))),n):(typeof t=="number"&&(n=t),F((r,o)=>tp(r,o,e,n)))}function es(e=1/0){return In(Ee,e)}function np(){return es(1)}function dr(...e){return np()(Te(e,mt(e)))}function uo(e){return new P(t=>{Y(e()).subscribe(t)})}function ul(...e){let t=Vi(e),{args:n,keys:r}=Qi(e),o=new P(i=>{let{length:s}=n;if(!s){i.complete();return}let a=new Array(s),c=s,l=s;for(let u=0;u{f||(f=!0,l--),a[u]=p},()=>c--,void 0,()=>{(!c||!f)&&(l||i.next(r?Ji(r,a):a),i.complete())}))}});return t?o.pipe(Xi(t)):o}function rp(e=0,t,n=Oh){let r=-1;return t!=null&&(Li(t)?n=t:r=t),new P(o=>{let i=Jh(e)?+e-n.now():e;i<0&&(i=0);let s=0;return n.schedule(function(){o.closed||(o.next(s++),0<=r?this.schedule(void 0,r):o.complete())},i)})}function fo(...e){let t=mt(e),n=Bh(e,1/0),r=e;return r.length?r.length===1?Y(r[0]):es(n)(Te(r,t)):wn}function ce(e,t){return F((n,r)=>{let o=0;n.subscribe(N(r,i=>e.call(t,i,o++)&&r.next(i)))})}function op(e){return F((t,n)=>{let r=!1,o=null,i=null,s=!1,a=()=>{if(i?.unsubscribe(),i=null,r){r=!1;let l=o;o=null,n.next(l)}s&&n.complete()},c=()=>{i=null,s&&n.complete()};t.subscribe(N(n,l=>{r=!0,o=l,i||Y(e(l)).subscribe(i=N(n,a,c))},()=>{s=!0,(!r||!i||i.closed)&&n.complete()}))})}function ts(e,t=co){return op(()=>rp(e,t))}function ip(e){return F((t,n)=>{let r=null,o=!1,i;r=t.subscribe(N(n,void 0,void 0,s=>{i=Y(e(s,ip(e)(t))),r?(r.unsubscribe(),r=null,i.subscribe(n)):o=!0})),o&&(r.unsubscribe(),r=null,i.subscribe(n))})}function sp(e,t,n,r,o){return(i,s)=>{let a=n,c=t,l=0;i.subscribe(N(s,u=>{let f=l++;c=a?e(c,u,f):(a=!0,u),r&&s.next(c)},o&&(()=>{a&&s.next(c),s.complete()})))}}function dl(e,t){return R(t)?In(e,t,1):In(e,1)}function ho(e){return F((t,n)=>{let r=!1;t.subscribe(N(n,o=>{r=!0,n.next(o)},()=>{r||n.next(e),n.complete()}))})}function ot(e){return e<=0?()=>wn:F((t,n)=>{let r=0;t.subscribe(N(n,o=>{++r<=e&&(n.next(o),e<=r&&n.complete())}))})}function ns(e,t=Ee){return e=e??mE,F((n,r)=>{let o,i=!0;n.subscribe(N(r,s=>{let a=t(s);(i||!e(o,a))&&(i=!1,o=a,r.next(s))}))})}function mE(e,t){return e===t}function rs(e=gE){return F((t,n)=>{let r=!1;t.subscribe(N(n,o=>{r=!0,n.next(o)},()=>r?n.complete():n.error(e())))})}function gE(){return new kt}function fl(e){return F((t,n)=>{try{t.subscribe(n)}finally{n.add(e)}})}function vE(e,t){let n=arguments.length>=2;return r=>r.pipe(e?ce((o,i)=>e(o,i,r)):Ee,ot(1),n?ho(t):rs(()=>new kt))}function hl(e){return e<=0?()=>wn:F((t,n)=>{let r=[];t.subscribe(N(n,o=>{r.push(o),e{for(let o of r)n.next(o);n.complete()},void 0,()=>{r=null}))})}function yE(e,t){let n=arguments.length>=2;return r=>r.pipe(e?ce((o,i)=>e(o,i,r)):Ee,hl(1),n?ho(t):rs(()=>new kt))}function bE(e,t){return F(sp(e,t,arguments.length>=2,!0))}function _E(e={}){let{connector:t=()=>new T,resetOnError:n=!0,resetOnComplete:r=!0,resetOnRefCountZero:o=!0}=e;return i=>{let s,a,c,l=0,u=!1,f=!1,p=()=>{a?.unsubscribe(),a=void 0},d=()=>{p(),s=c=void 0,u=f=!1},m=()=>{let g=s;d(),g?.unsubscribe()};return F((g,b)=>{l++,!f&&!u&&p();let M=c=c??t();b.add(()=>{l--,l===0&&!f&&!u&&(a=pl(m,o))}),M.subscribe(b),!s&&l>0&&(s=new rt({next:re=>M.next(re),error:re=>{f=!0,p(),a=pl(d,n,re),M.error(re)},complete:()=>{u=!0,p(),a=pl(d,r),M.complete()}}),Y(g).subscribe(s))})(i)}}function pl(e,t,...n){if(t===!0){e();return}if(t===!1)return;let r=new rt({next:()=>{r.unsubscribe(),e()}});return Y(t(...n)).subscribe(r)}function po(e){return ce((t,n)=>e<=n)}function en(...e){let t=mt(e);return F((n,r)=>{(t?dr(e,n,t):dr(e,n)).subscribe(r)})}function os(e,t){return F((n,r)=>{let o=null,i=0,s=!1,a=()=>s&&!o&&r.complete();n.subscribe(N(r,c=>{o?.unsubscribe();let l=0,u=i++;Y(e(c,u)).subscribe(o=N(r,f=>r.next(t?t(c,f,u,l++):f),()=>{o=null,a()}))},()=>{s=!0,a()}))})}function tn(e){return F((t,n)=>{Y(e).subscribe(N(n,()=>n.complete(),lo)),!n.closed&&t.subscribe(n)})}function mo(e,t,n){let r=R(e)||t||n?{next:e,error:t,complete:n}:e;return r?F((o,i)=>{var s;(s=r.subscribe)===null||s===void 0||s.call(r);let a=!0;o.subscribe(N(i,c=>{var l;(l=r.next)===null||l===void 0||l.call(r,c),i.next(c)},()=>{var c;a=!1,(c=r.complete)===null||c===void 0||c.call(r),i.complete()},c=>{var l;a=!1,(l=r.error)===null||l===void 0||l.call(r,c),i.error(c)},()=>{var c,l;a&&((c=r.unsubscribe)===null||c===void 0||c.call(r)),(l=r.finalize)===null||l===void 0||l.call(r)}))}):Ee}function yl(e,t){return Object.is(e,t)}var de=null,is=!1,bl=1,ze=Symbol("SIGNAL");function L(e){let t=de;return de=e,t}function _l(){return de}var fr={version:0,lastCleanEpoch:0,dirty:!1,producerNode:void 0,producerLastReadVersion:void 0,producerIndexOfThis:void 0,nextProducerIndex:0,liveConsumerNode:void 0,liveConsumerIndexOfThis:void 0,consumerAllowSignalWrites:!1,consumerIsAlwaysLive:!1,kind:"unknown",producerMustRecompute:()=>!1,producerRecomputeValue:()=>{},consumerMarkedDirty:()=>{},consumerOnSignalRead:()=>{}};function vo(e){if(is)throw new Error("");if(de===null)return;de.consumerOnSignalRead(e);let t=de.nextProducerIndex++;if(us(de),te.nextProducerIndex;)e.producerNode.pop(),e.producerLastReadVersion.pop(),e.producerIndexOfThis.pop()}}function cs(e){us(e);for(let t=0;t0}function us(e){e.producerNode??=[],e.producerIndexOfThis??=[],e.producerLastReadVersion??=[]}function lp(e){e.liveConsumerNode??=[],e.liveConsumerIndexOfThis??=[]}function up(e){return e.producerNode!==void 0}function Cl(e,t){let n=Object.create(EE);n.computation=e,t!==void 0&&(n.equal=t);let r=()=>{if(Dl(n),vo(n),n.value===ss)throw n.error;return n.value};return r[ze]=n,r}var ml=Symbol("UNSET"),gl=Symbol("COMPUTING"),ss=Symbol("ERRORED"),EE=B(_({},fr),{value:ml,dirty:!0,error:null,equal:yl,kind:"computed",producerMustRecompute(e){return e.value===ml||e.value===gl},producerRecomputeValue(e){if(e.value===gl)throw new Error("Detected cycle in computations.");let t=e.value;e.value=gl;let n=yo(e),r,o=!1;try{r=e.computation(),L(null),o=t!==ml&&t!==ss&&r!==ss&&e.equal(t,r)}catch(i){r=ss,e.error=i}finally{as(e,n)}if(o){e.value=t;return}e.value=r,e.version++}});function wE(){throw new Error}var dp=wE;function fp(e){dp(e)}function Il(e){dp=e}var CE=null;function Ml(e,t){let n=Object.create(ds);n.value=e,t!==void 0&&(n.equal=t);let r=()=>(vo(n),n.value);return r[ze]=n,r}function _o(e,t){wl()||fp(e),e.equal(e.value,t)||(e.value=t,IE(e))}function Tl(e,t){wl()||fp(e),_o(e,t(e.value))}var ds=B(_({},fr),{equal:yl,value:void 0,kind:"signal"});function IE(e){e.version++,ap(),El(e),CE?.()}function Sl(e){let t=L(null);try{return e()}finally{L(t)}}var xl;function Do(){return xl}function Ft(e){let t=xl;return xl=e,t}var fs=Symbol("NotFound");var kl={JSACTION:"jsaction"},Fl={JSACTION:"__jsaction",OWNER:"__owner"},gp={};function xE(e){return e[Fl.JSACTION]}function hp(e,t){e[Fl.JSACTION]=t}function AE(e){return gp[e]}function RE(e,t){gp[e]=t}var w={CLICK:"click",CLICKMOD:"clickmod",DBLCLICK:"dblclick",FOCUS:"focus",FOCUSIN:"focusin",BLUR:"blur",FOCUSOUT:"focusout",SUBMIT:"submit",KEYDOWN:"keydown",KEYPRESS:"keypress",KEYUP:"keyup",MOUSEOVER:"mouseover",MOUSEOUT:"mouseout",MOUSEENTER:"mouseenter",MOUSELEAVE:"mouseleave",POINTEROVER:"pointerover",POINTEROUT:"pointerout",POINTERENTER:"pointerenter",POINTERLEAVE:"pointerleave",ERROR:"error",LOAD:"load",TOUCHSTART:"touchstart",TOUCHEND:"touchend",TOUCHMOVE:"touchmove",TOGGLE:"toggle"},NE=[w.MOUSEENTER,w.MOUSELEAVE,"pointerenter","pointerleave"],bV=[w.CLICK,w.DBLCLICK,w.FOCUSIN,w.FOCUSOUT,w.KEYDOWN,w.KEYUP,w.KEYPRESS,w.MOUSEOVER,w.MOUSEOUT,w.SUBMIT,w.TOUCHSTART,w.TOUCHEND,w.TOUCHMOVE,"touchcancel","auxclick","change","compositionstart","compositionupdate","compositionend","beforeinput","input","select","copy","cut","paste","mousedown","mouseup","wheel","contextmenu","dragover","dragenter","dragleave","drop","dragstart","dragend","pointerdown","pointermove","pointerup","pointercancel","pointerover","pointerout","gotpointercapture","lostpointercapture","ended","loadedmetadata","pagehide","pageshow","visibilitychange","beforematch"],OE=[w.FOCUS,w.BLUR,w.ERROR,w.LOAD,w.TOGGLE],Pl=e=>OE.indexOf(e)>=0;function kE(e){return e===w.MOUSEENTER?w.MOUSEOVER:e===w.MOUSELEAVE?w.MOUSEOUT:e===w.POINTERENTER?w.POINTEROVER:e===w.POINTERLEAVE?w.POINTEROUT:e}function FE(e,t,n,r){let o=!1;Pl(t)&&(o=!0);let i=typeof r=="boolean"?{capture:o,passive:r}:o;return e.addEventListener(t,n,i),{eventType:t,handler:n,capture:o,passive:r}}function PE(e,t){if(e.removeEventListener){let n=typeof t.passive=="boolean"?{capture:t.capture}:t.capture;e.removeEventListener(t.eventType,t.handler,n)}else e.detachEvent&&e.detachEvent(`on${t.eventType}`,t.handler)}function LE(e){e.preventDefault?e.preventDefault():e.returnValue=!1}var pp=typeof navigator<"u"&&/Macintosh/.test(navigator.userAgent);function VE(e){return e.which===2||e.which==null&&e.button===4}function jE(e){return pp&&e.metaKey||!pp&&e.ctrlKey||VE(e)||e.shiftKey}function BE(e,t,n){let r=e.relatedTarget;return(e.type===w.MOUSEOVER&&t===w.MOUSEENTER||e.type===w.MOUSEOUT&&t===w.MOUSELEAVE||e.type===w.POINTEROVER&&t===w.POINTERENTER||e.type===w.POINTEROUT&&t===w.POINTERLEAVE)&&(!r||r!==n&&!n.contains(r))}function HE(e,t){let n={};for(let r in e){if(r==="srcElement"||r==="target")continue;let o=r,i=e[o];typeof i!="function"&&(n[o]=i)}return e.type===w.MOUSEOVER?n.type=w.MOUSEENTER:e.type===w.MOUSEOUT?n.type=w.MOUSELEAVE:e.type===w.POINTEROVER?n.type=w.POINTERENTER:n.type=w.POINTERLEAVE,n.target=n.srcElement=t,n.bubbles=!1,n._originalEvent=e,n}var UE=typeof navigator<"u"&&/iPhone|iPad|iPod/.test(navigator.userAgent),gs=class{element;handlerInfos=[];constructor(t){this.element=t}addEventListener(t,n,r){UE&&(this.element.style.cursor="pointer"),this.handlerInfos.push(FE(this.element,t,n(this.element),r))}cleanUp(){for(let t=0;t{this.eventReplayScheduled=!1,this.eventReplayer(this.replayEventInfoWrappers)}))}};function QE(e,t){return e.tagName==="A"&&(t.getEventType()===w.CLICK||t.getEventType()===w.CLICKMOD)}var Tp=Symbol.for("propagationStopped"),Vl={REPLAY:101};var JE="`preventDefault` called during event replay.";var ew="`composedPath` called during event replay.",vs=class{dispatchDelegate;clickModSupport;actionResolver;dispatcher;constructor(t,n=!0){this.dispatchDelegate=t,this.clickModSupport=n,this.actionResolver=new Nl({clickModSupport:n}),this.dispatcher=new Ol(r=>{this.dispatchToDelegate(r)},{actionResolver:this.actionResolver})}dispatch(t){this.dispatcher.dispatch(t)}dispatchToDelegate(t){for(t.getIsReplay()&&rw(t),tw(t);t.getAction();){if(ow(t),Pl(t.getEventType())&&t.getAction().element!==t.getTargetElement()||(this.dispatchDelegate(t.getEvent(),t.getAction().name),nw(t)))return;this.actionResolver.resolveParentAction(t.eventInfo)}}};function tw(e){let t=e.getEvent(),n=e.getEvent().stopPropagation.bind(t),r=()=>{t[Tp]=!0,n()};Mn(t,"stopPropagation",r),Mn(t,"stopImmediatePropagation",r)}function nw(e){return!!e.getEvent()[Tp]}function rw(e){let t=e.getEvent(),n=e.getTargetElement(),r=t.preventDefault.bind(t);Mn(t,"target",n),Mn(t,"eventPhase",Vl.REPLAY),Mn(t,"preventDefault",()=>{throw r(),new Error(JE+"")}),Mn(t,"composedPath",()=>{throw new Error(ew+"")})}function ow(e){let t=e.getEvent(),n=e.getAction()?.element;n&&Mn(t,"currentTarget",n,{configurable:!0})}function Mn(e,t,n,{configurable:r=!1}={}){Object.defineProperty(e,t,{value:n,configurable:r})}function Sp(e,t){e.ecrd(n=>{t.dispatch(n)},Mp.I_AM_THE_JSACTION_FRAMEWORK)}function iw(e){return e?.q??[]}function sw(e){e&&(mp(e.c,e.et,e.h),mp(e.c,e.etc,e.h,!0))}function mp(e,t,n,r){for(let o=0;o{class e{static MOUSE_SPECIAL_SUPPORT=aw;containerManager;eventHandlers={};browserEventTypeToExtraEventTypes={};dispatcher=null;queuedEventInfos=[];constructor(n){this.containerManager=n}handleEvent(n,r,o){let i=YE(n,r,r.target,o,Date.now());this.handleEventInfo(i)}handleEventInfo(n){if(!this.dispatcher){Ep(n,!0),this.queuedEventInfos?.push(n);return}this.dispatcher(n)}addEvent(n,r,o){if(n in this.eventHandlers||!this.containerManager||!e.MOUSE_SPECIAL_SUPPORT&&NE.indexOf(n)>=0)return;let i=(a,c,l)=>{this.handleEvent(a,c,l)};this.eventHandlers[n]=i;let s=kE(r||n);if(s!==n){let a=this.browserEventTypeToExtraEventTypes[s]||[];a.push(n),this.browserEventTypeToExtraEventTypes[s]=a}this.containerManager.addEventListener(s,a=>c=>{i(n,c,a)},o)}replayEarlyEvents(n=window._ejsa){n&&(this.replayEarlyEventInfos(n.q),sw(n),delete window._ejsa)}replayEarlyEventInfos(n){for(let r=0;r{let r=uw(t);function o(...i){if(this instanceof o)return r.apply(this,i),this;let s=new o(...i);return a.annotation=s,a;function a(c,l,u){let f=c.hasOwnProperty(ys)?c[ys]:Object.defineProperty(c,ys,{value:[]})[ys];for(;f.length<=u;)f.push(null);return(f[u]=f[u]||[]).push(s),c}}return o.prototype.ngMetadataName=e,o.annotationCls=o,o})}var gt=globalThis;function Z(e){for(let t in e)if(e[t]===Z)return t;throw Error("Could not find renamed property on target object.")}function dw(e,t){for(let n in t)t.hasOwnProperty(n)&&!e.hasOwnProperty(n)&&(e[n]=t[n])}function Ae(e){if(typeof e=="string")return e;if(Array.isArray(e))return`[${e.map(Ae).join(", ")}]`;if(e==null)return""+e;let t=e.overriddenName||e.name;if(t)return`${t}`;let n=e.toString();if(n==null)return""+n;let r=n.indexOf(` +`);return r>=0?n.slice(0,r):n}function iu(e,t){return e?t?`${e} ${t}`:e:t||""}var fw=Z({__forward_ref__:Z});function je(e){return e.__forward_ref__=je,e.toString=function(){return Ae(this())},e}function we(e){return Vm(e)?e():e}function Vm(e){return typeof e=="function"&&e.hasOwnProperty(fw)&&e.__forward_ref__===je}function v(e){return{token:e.token,providedIn:e.providedIn||null,factory:e.factory,value:void 0}}function H(e){return{providers:e.providers||[],imports:e.imports||[]}}function aa(e){return Rp(e,jm)||Rp(e,Bm)}function ej(e){return aa(e)!==null}function Rp(e,t){return e.hasOwnProperty(t)?e[t]:null}function hw(e){let t=e&&(e[jm]||e[Bm]);return t||null}function Np(e){return e&&(e.hasOwnProperty(Op)||e.hasOwnProperty(pw))?e[Op]:null}var jm=Z({\u0275prov:Z}),Op=Z({\u0275inj:Z}),Bm=Z({ngInjectableDef:Z}),pw=Z({ngInjectorDef:Z}),y=class{_desc;ngMetadataName="InjectionToken";\u0275prov;constructor(t,n){this._desc=t,this.\u0275prov=void 0,typeof n=="number"?this.__NG_ELEMENT_ID__=n:n!==void 0&&(this.\u0275prov=v({token:this,providedIn:n.providedIn||"root",factory:n.factory}))}get multi(){return this}toString(){return`InjectionToken ${this._desc}`}};function Hm(e){return e&&!!e.\u0275providers}var mw=Z({\u0275cmp:Z}),gw=Z({\u0275dir:Z}),vw=Z({\u0275pipe:Z}),yw=Z({\u0275mod:Z}),Os=Z({\u0275fac:Z}),Io=Z({__NG_ELEMENT_ID__:Z}),kp=Z({__NG_ENV_ID__:Z});function Er(e){return typeof e=="string"?e:e==null?"":String(e)}function bw(e){return typeof e=="function"?e.name||e.toString():typeof e=="object"&&e!=null&&typeof e.type=="function"?e.type.name||e.type.toString():Er(e)}function Um(e,t){throw new D(-200,e)}function yd(e,t){throw new D(-201,!1)}var V=function(e){return e[e.Default=0]="Default",e[e.Host=1]="Host",e[e.Self=2]="Self",e[e.SkipSelf=4]="SkipSelf",e[e.Optional=8]="Optional",e}(V||{}),su;function $m(){return su}function Se(e){let t=su;return su=e,t}function zm(e,t,n){let r=aa(e);if(r&&r.providedIn=="root")return r.value===void 0?r.value=r.factory():r.value;if(n&V.Optional)return null;if(t!==void 0)return t;yd(e,"Injector")}var _w={},Sn=_w,au="__NG_DI_FLAG__",ks=class{injector;constructor(t){this.injector=t}retrieve(t,n){let r=n;return this.injector.get(t,r.optional?fs:Sn,r)}},Fs="ngTempTokenPath",Dw="ngTokenPath",Ew=/\n/gm,ww="\u0275",Fp="__source";function Cw(e,t=V.Default){if(Do()===void 0)throw new D(-203,!1);if(Do()===null)return zm(e,void 0,t);{let n=Do(),r;return n instanceof ks?r=n.injector:r=n,r.get(e,t&V.Optional?null:void 0,t)}}function I(e,t=V.Default){return($m()||Cw)(we(e),t)}function h(e,t=V.Default){return I(e,ca(t))}function ca(e){return typeof e>"u"||typeof e=="number"?e:0|(e.optional&&8)|(e.host&&1)|(e.self&&2)|(e.skipSelf&&4)}function cu(e){let t=[];for(let n=0;n ");else if(typeof t=="object"){let i=[];for(let s in t)if(t.hasOwnProperty(s)){let a=t[s];i.push(s+":"+(typeof a=="string"?JSON.stringify(a):Ae(a)))}o=`{${i.join(", ")}}`}return`${n}${r?"("+r+")":""}[${o}]: ${e.replace(Ew,` + `)}`}var la=Gm(Lm("Optional"),8);var Wm=Gm(Lm("SkipSelf"),4);function An(e,t){let n=e.hasOwnProperty(Os);return n?e[Os]:null}function Sw(e,t,n){if(e.length!==t.length)return!1;for(let r=0;rArray.isArray(n)?bd(n,t):t(n))}function qm(e,t,n){t>=e.length?e.push(n):e.splice(t,0,n)}function Ps(e,t){return t>=e.length-1?e.pop():e.splice(t,1)[0]}function Aw(e,t){let n=[];for(let r=0;rt;){let i=o-2;e[o]=e[i],o--}e[t]=n,e[t+1]=r}}function _d(e,t,n){let r=Po(e,t);return r>=0?e[r|1]=n:(r=~r,Rw(e,r,t,n)),r}function Bl(e,t){let n=Po(e,t);if(n>=0)return e[n|1]}function Po(e,t){return Nw(e,t,1)}function Nw(e,t,n){let r=0,o=e.length>>n;for(;o!==r;){let i=r+(o-r>>1),s=e[i<t?o=i:r=i+1}return~(o<{n.push(s)};return bd(t,s=>{let a=s;lu(a,i,[],r)&&(o||=[],o.push(a))}),o!==void 0&&Jm(o,i),n}function Jm(e,t){for(let n=0;n{t(i,r)})}}function lu(e,t,n,r){if(e=we(e),!e)return!1;let o=null,i=Np(e),s=!i&&on(e);if(!i&&!s){let c=e.ngModule;if(i=Np(c),i)o=c;else return!1}else{if(s&&!s.standalone)return!1;o=e}let a=r.has(o);if(s){if(a)return!1;if(r.add(o),s.dependencies){let c=typeof s.dependencies=="function"?s.dependencies():s.dependencies;for(let l of c)lu(l,t,n,r)}}else if(i){if(i.imports!=null&&!a){r.add(o);let l;try{bd(i.imports,u=>{lu(u,t,n,r)&&(l||=[],l.push(u))})}finally{}l!==void 0&&Jm(l,t)}if(!a){let l=An(o)||(()=>new o);t({provide:o,useFactory:l,deps:xe},o),t({provide:Zm,useValue:o,multi:!0},o),t({provide:Nn,useValue:()=>I(o),multi:!0},o)}let c=i.providers;if(c!=null&&!a){let l=e;Ed(c,u=>{t(u,l)})}}else return!1;return o!==e&&e.providers!==void 0}function Ed(e,t){for(let n of e)Hm(n)&&(n=n.\u0275providers),Array.isArray(n)?Ed(n,t):t(n)}var kw=Z({provide:String,useValue:Z});function eg(e){return e!==null&&typeof e=="object"&&kw in e}function Fw(e){return!!(e&&e.useExisting)}function Pw(e){return!!(e&&e.useFactory)}function wr(e){return typeof e=="function"}function Lw(e){return!!e.useClass}var ua=new y(""),Is={},Pp={},Hl;function da(){return Hl===void 0&&(Hl=new Ls),Hl}var ge=class{},Mo=class extends ge{parent;source;scopes;records=new Map;_ngOnDestroyHooks=new Set;_onDestroyHooks=[];get destroyed(){return this._destroyed}_destroyed=!1;injectorDefTypes;constructor(t,n,r,o){super(),this.parent=n,this.source=r,this.scopes=o,du(t,s=>this.processProvider(s)),this.records.set(Ym,hr(void 0,this)),o.has("environment")&&this.records.set(ge,hr(void 0,this));let i=this.records.get(ua);i!=null&&typeof i.value=="string"&&this.scopes.add(i.value),this.injectorDefTypes=new Set(this.get(Zm,xe,V.Self))}retrieve(t,n){let r=n;return this.get(t,r.optional?fs:Sn,r)}destroy(){wo(this),this._destroyed=!0;let t=L(null);try{for(let r of this._ngOnDestroyHooks)r.ngOnDestroy();let n=this._onDestroyHooks;this._onDestroyHooks=[];for(let r of n)r()}finally{this.records.clear(),this._ngOnDestroyHooks.clear(),this.injectorDefTypes.clear(),L(t)}}onDestroy(t){return wo(this),this._onDestroyHooks.push(t),()=>this.removeOnDestroy(t)}runInContext(t){wo(this);let n=Ft(this),r=Se(void 0),o;try{return t()}finally{Ft(n),Se(r)}}get(t,n=Sn,r=V.Default){if(wo(this),t.hasOwnProperty(kp))return t[kp](this);r=ca(r);let o,i=Ft(this),s=Se(void 0);try{if(!(r&V.SkipSelf)){let c=this.records.get(t);if(c===void 0){let l=Uw(t)&&aa(t);l&&this.injectableDefInScope(l)?c=hr(uu(t),Is):c=null,this.records.set(t,c)}if(c!=null)return this.hydrate(t,c,r)}let a=r&V.Self?da():this.parent;return n=r&V.Optional&&n===Sn?null:n,a.get(t,n)}catch(a){if(a.name==="NullInjectorError"){if((a[Fs]=a[Fs]||[]).unshift(Ae(t)),i)throw a;return Mw(a,t,"R3InjectorError",this.source)}else throw a}finally{Se(s),Ft(i)}}resolveInjectorInitializers(){let t=L(null),n=Ft(this),r=Se(void 0),o;try{let i=this.get(Nn,xe,V.Self);for(let s of i)s()}finally{Ft(n),Se(r),L(t)}}toString(){let t=[],n=this.records;for(let r of n.keys())t.push(Ae(r));return`R3Injector[${t.join(", ")}]`}processProvider(t){t=we(t);let n=wr(t)?t:we(t&&t.provide),r=jw(t);if(!wr(t)&&t.multi===!0){let o=this.records.get(n);o||(o=hr(void 0,Is,!0),o.factory=()=>cu(o.multi),this.records.set(n,o)),n=t,o.multi.push(t)}this.records.set(n,r)}hydrate(t,n,r){let o=L(null);try{return n.value===Pp?Um(Ae(t)):n.value===Is&&(n.value=Pp,n.value=n.factory(void 0,r)),typeof n.value=="object"&&n.value&&Hw(n.value)&&this._ngOnDestroyHooks.add(n.value),n.value}finally{L(o)}}injectableDefInScope(t){if(!t.providedIn)return!1;let n=we(t.providedIn);return typeof n=="string"?n==="any"||this.scopes.has(n):this.injectorDefTypes.has(n)}removeOnDestroy(t){let n=this._onDestroyHooks.indexOf(t);n!==-1&&this._onDestroyHooks.splice(n,1)}};function uu(e){let t=aa(e),n=t!==null?t.factory:An(e);if(n!==null)return n;if(e instanceof y)throw new D(204,!1);if(e instanceof Function)return Vw(e);throw new D(204,!1)}function Vw(e){if(e.length>0)throw new D(204,!1);let n=hw(e);return n!==null?()=>n.factory(e):()=>new e}function jw(e){if(eg(e))return hr(void 0,e.useValue);{let t=tg(e);return hr(t,Is)}}function tg(e,t,n){let r;if(wr(e)){let o=we(e);return An(o)||uu(o)}else if(eg(e))r=()=>we(e.useValue);else if(Pw(e))r=()=>e.useFactory(...cu(e.deps||[]));else if(Fw(e))r=(o,i)=>I(we(e.useExisting),i!==void 0&&i&V.Optional?V.Optional:void 0);else{let o=we(e&&(e.useClass||e.provide));if(Bw(e))r=()=>new o(...cu(e.deps));else return An(o)||uu(o)}return r}function wo(e){if(e.destroyed)throw new D(205,!1)}function hr(e,t,n=!1){return{factory:e,value:t,multi:n?[]:void 0}}function Bw(e){return!!e.deps}function Hw(e){return e!==null&&typeof e=="object"&&typeof e.ngOnDestroy=="function"}function Uw(e){return typeof e=="function"||typeof e=="object"&&e instanceof y}function du(e,t){for(let n of e)Array.isArray(n)?du(n,t):n&&Hm(n)?du(n.\u0275providers,t):t(n)}function fa(e,t){let n;e instanceof Mo?(wo(e),n=e):n=new ks(e);let r,o=Ft(n),i=Se(void 0);try{return t()}finally{Ft(o),Se(i)}}function ng(){return $m()!==void 0||Do()!=null}function ha(e){if(!ng())throw new D(-203,!1)}function $w(e){return typeof e=="function"}var Ve=0,C=1,S=2,pe=3,at=4,Re=5,We=6,Vs=7,he=8,yt=9,Pt=10,W=11,To=12,Lp=13,Rr=14,Ce=15,On=16,pr=17,Lt=18,pa=19,rg=20,rn=21,Ul=22,kn=23,Ge=24,yr=25,K=26,og=1,Vt=6,jt=7,js=8,Cr=9,me=10;function ct(e){return Array.isArray(e)&&typeof e[og]=="object"}function wt(e){return Array.isArray(e)&&e[og]===!0}function wd(e){return(e.flags&4)!==0}function Bn(e){return e.componentOffset>-1}function ma(e){return(e.flags&1)===1}function bt(e){return!!e.template}function So(e){return(e[S]&512)!==0}function Hn(e){return(e[S]&256)===256}var fu=class{previousValue;currentValue;firstChange;constructor(t,n,r){this.previousValue=t,this.currentValue=n,this.firstChange=r}isFirstChange(){return this.firstChange}};function ig(e,t,n,r){t!==null?t.applyValueToInputSignal(t,r):e[n]=r}var $t=(()=>{let e=()=>sg;return e.ngInherit=!0,e})();function sg(e){return e.type.prototype.ngOnChanges&&(e.setInput=Gw),zw}function zw(){let e=cg(this),t=e?.current;if(t){let n=e.previous;if(n===Rn)e.previous=t;else for(let r in t)n[r]=t[r];e.current=null,this.ngOnChanges(t)}}function Gw(e,t,n,r,o){let i=this.declaredInputs[r],s=cg(e)||Ww(e,{previous:Rn,current:null}),a=s.current||(s.current={}),c=s.previous,l=c[i];a[i]=new fu(l&&l.currentValue,n,c===Rn),ig(e,t,o,n)}var ag="__ngSimpleChanges__";function cg(e){return e[ag]||null}function Ww(e,t){return e[ag]=t}var Vp=null;var G=function(e,t=null,n){Vp?.(e,t,n)},lg="svg",qw="math";function lt(e){for(;Array.isArray(e);)e=e[Ve];return e}function ug(e,t){return lt(t[e])}function ut(e,t){return lt(t[e.index])}function Lo(e,t){return e.data[t]}function Cd(e,t){return e[t]}function Yw(e,t,n,r){n>=e.data.length&&(e.data[n]=null,e.blueprint[n]=null),t[n]=r}function _t(e,t){let n=t[e];return ct(n)?n:n[Ve]}function Zw(e){return(e[S]&4)===4}function Id(e){return(e[S]&128)===128}function Kw(e){return wt(e[pe])}function sn(e,t){return t==null?null:e[t]}function dg(e){e[pr]=0}function fg(e){e[S]&1024||(e[S]|=1024,Id(e)&&Nr(e))}function Xw(e,t){for(;e>0;)t=t[Rr],e--;return t}function ga(e){return!!(e[S]&9216||e[Ge]?.dirty)}function hu(e){e[Pt].changeDetectionScheduler?.notify(8),e[S]&64&&(e[S]|=1024),ga(e)&&Nr(e)}function Nr(e){e[Pt].changeDetectionScheduler?.notify(0);let t=Fn(e);for(;t!==null&&!(t[S]&8192||(t[S]|=8192,!Id(t)));)t=Fn(t)}function hg(e,t){if(Hn(e))throw new D(911,!1);e[rn]===null&&(e[rn]=[]),e[rn].push(t)}function Qw(e,t){if(e[rn]===null)return;let n=e[rn].indexOf(t);n!==-1&&e[rn].splice(n,1)}function Fn(e){let t=e[pe];return wt(t)?t[pe]:t}function Md(e){return e[Vs]??=[]}function Td(e){return e.cleanup??=[]}function Jw(e,t,n,r){let o=Md(t);o.push(n),e.firstCreatePass&&Td(e).push(r,o.length-1)}var O={lFrame:bg(null),bindingsEnabled:!0,skipHydrationRootTNode:null};var pu=!1;function eC(){return O.lFrame.elementDepthCount}function tC(){O.lFrame.elementDepthCount++}function nC(){O.lFrame.elementDepthCount--}function Sd(){return O.bindingsEnabled}function Or(){return O.skipHydrationRootTNode!==null}function rC(e){return O.skipHydrationRootTNode===e}function oC(e){O.skipHydrationRootTNode=e}function iC(){O.skipHydrationRootTNode=null}function A(){return O.lFrame.lView}function ie(){return O.lFrame.tView}function tj(e){return O.lFrame.contextLView=e,e[he]}function nj(e){return O.lFrame.contextLView=null,e}function be(){let e=pg();for(;e!==null&&e.type===64;)e=e.parent;return e}function pg(){return O.lFrame.currentTNode}function sC(){let e=O.lFrame,t=e.currentTNode;return e.isParent?t:t.parent}function Un(e,t){let n=O.lFrame;n.currentTNode=e,n.isParent=t}function xd(){return O.lFrame.isParent}function Ad(){O.lFrame.isParent=!1}function aC(){return O.lFrame.contextLView}function mg(){return pu}function Bs(e){let t=pu;return pu=e,t}function va(){let e=O.lFrame,t=e.bindingRootIndex;return t===-1&&(t=e.bindingRootIndex=e.tView.bindingStartIndex),t}function cC(){return O.lFrame.bindingIndex}function lC(e){return O.lFrame.bindingIndex=e}function $n(){return O.lFrame.bindingIndex++}function Rd(e){let t=O.lFrame,n=t.bindingIndex;return t.bindingIndex=t.bindingIndex+e,n}function uC(){return O.lFrame.inI18n}function dC(e,t){let n=O.lFrame;n.bindingIndex=n.bindingRootIndex=e,mu(t)}function fC(){return O.lFrame.currentDirectiveIndex}function mu(e){O.lFrame.currentDirectiveIndex=e}function hC(e){let t=O.lFrame.currentDirectiveIndex;return t===-1?null:e[t]}function gg(){return O.lFrame.currentQueryIndex}function Nd(e){O.lFrame.currentQueryIndex=e}function pC(e){let t=e[C];return t.type===2?t.declTNode:t.type===1?e[Re]:null}function vg(e,t,n){if(n&V.SkipSelf){let o=t,i=e;for(;o=o.parent,o===null&&!(n&V.Host);)if(o=pC(i),o===null||(i=i[Rr],o.type&10))break;if(o===null)return!1;t=o,e=i}let r=O.lFrame=yg();return r.currentTNode=t,r.lView=e,!0}function Od(e){let t=yg(),n=e[C];O.lFrame=t,t.currentTNode=n.firstChild,t.lView=e,t.tView=n,t.contextLView=e,t.bindingIndex=n.bindingStartIndex,t.inI18n=!1}function yg(){let e=O.lFrame,t=e===null?null:e.child;return t===null?bg(e):t}function bg(e){let t={currentTNode:null,isParent:!0,lView:null,tView:null,selectedIndex:-1,contextLView:null,elementDepthCount:0,currentNamespace:null,currentDirectiveIndex:-1,bindingRootIndex:-1,bindingIndex:-1,currentQueryIndex:0,parent:e,child:null,inI18n:!1};return e!==null&&(e.child=t),t}function _g(){let e=O.lFrame;return O.lFrame=e.parent,e.currentTNode=null,e.lView=null,e}var Dg=_g;function kd(){let e=_g();e.isParent=!0,e.tView=null,e.selectedIndex=-1,e.contextLView=null,e.elementDepthCount=0,e.currentDirectiveIndex=-1,e.currentNamespace=null,e.bindingRootIndex=-1,e.bindingIndex=-1,e.currentQueryIndex=0}function mC(e){return(O.lFrame.contextLView=Xw(e,O.lFrame.contextLView))[he]}function zt(){return O.lFrame.selectedIndex}function Pn(e){O.lFrame.selectedIndex=e}function ya(){let e=O.lFrame;return Lo(e.tView,e.selectedIndex)}function rj(){O.lFrame.currentNamespace=lg}function oj(){gC()}function gC(){O.lFrame.currentNamespace=null}function Eg(){return O.lFrame.currentNamespace}var wg=!0;function ba(){return wg}function cn(e){wg=e}function vC(e,t,n){let{ngOnChanges:r,ngOnInit:o,ngDoCheck:i}=t.type.prototype;if(r){let s=sg(t);(n.preOrderHooks??=[]).push(e,s),(n.preOrderCheckHooks??=[]).push(e,s)}o&&(n.preOrderHooks??=[]).push(0-e,o),i&&((n.preOrderHooks??=[]).push(e,i),(n.preOrderCheckHooks??=[]).push(e,i))}function Fd(e,t){for(let n=t.directiveStart,r=t.directiveEnd;n=r)break}else t[c]<0&&(e[pr]+=65536),(a>14>16&&(e[S]&3)===t&&(e[S]+=16384,jp(a,i)):jp(a,i)}var br=-1,Ln=class{factory;injectImpl;resolving=!1;canSeeViewProviders;multi;componentProviders;index;providerFactory;constructor(t,n,r){this.factory=t,this.canSeeViewProviders=n,this.injectImpl=r}};function bC(e){return(e.flags&8)!==0}function _C(e){return(e.flags&16)!==0}function DC(e,t,n){let r=0;for(;rt){s=i-1;break}}}for(;i>16}function Us(e,t){let n=wC(e),r=t;for(;n>0;)r=r[Rr],n--;return r}var gu=!0;function $s(e){let t=gu;return gu=e,t}var CC=256,Tg=CC-1,Sg=5,IC=0,vt={};function MC(e,t,n){let r;typeof n=="string"?r=n.charCodeAt(0)||0:n.hasOwnProperty(Io)&&(r=n[Io]),r==null&&(r=n[Io]=IC++);let o=r&Tg,i=1<>Sg)]|=i}function zs(e,t){let n=xg(e,t);if(n!==-1)return n;let r=t[C];r.firstCreatePass&&(e.injectorIndex=t.length,zl(r.data,e),zl(t,null),zl(r.blueprint,null));let o=Pd(e,t),i=e.injectorIndex;if(Mg(o)){let s=Hs(o),a=Us(o,t),c=a[C].data;for(let l=0;l<8;l++)t[i+l]=a[s+l]|c[s+l]}return t[i+8]=o,i}function zl(e,t){e.push(0,0,0,0,0,0,0,0,t)}function xg(e,t){return e.injectorIndex===-1||e.parent&&e.parent.injectorIndex===e.injectorIndex||t[e.injectorIndex+8]===null?-1:e.injectorIndex}function Pd(e,t){if(e.parent&&e.parent.injectorIndex!==-1)return e.parent.injectorIndex;let n=0,r=null,o=t;for(;o!==null;){if(r=kg(o),r===null)return br;if(n++,o=o[Rr],r.injectorIndex!==-1)return r.injectorIndex|n<<16}return br}function vu(e,t,n){MC(e,t,n)}function TC(e,t){if(t==="class")return e.classes;if(t==="style")return e.styles;let n=e.attrs;if(n){let r=n.length,o=0;for(;o>20,f=r?a:a+u,p=o?a+u:l;for(let d=f;d=c&&m.type===n)return d}if(o){let d=s[c];if(d&&bt(d)&&d.type===n)return c}return null}function xo(e,t,n,r,o){let i=e[n],s=t.data;if(i instanceof Ln){let a=i;a.resolving&&Um(bw(s[n]));let c=$s(a.canSeeViewProviders);a.resolving=!0;let l,u=a.injectImpl?Se(a.injectImpl):null,f=vg(e,r,V.Default);try{i=e[n]=a.factory(void 0,o,s,e,r),t.firstCreatePass&&n>=r.directiveStart&&vC(n,s[n],t)}finally{u!==null&&Se(u),$s(c),a.resolving=!1,Dg()}}return i}function xC(e){if(typeof e=="string")return e.charCodeAt(0)||0;let t=e.hasOwnProperty(Io)?e[Io]:void 0;return typeof t=="number"?t>=0?t&Tg:AC:t}function Hp(e,t,n){let r=1<>Sg)]&r)}function Up(e,t){return!(e&V.Self)&&!(e&V.Host&&t)}var xn=class{_tNode;_lView;constructor(t,n){this._tNode=t,this._lView=n}get(t,n,r){return Ng(this._tNode,this._lView,t,ca(r),n)}};function AC(){return new xn(be(),A())}function Ne(e){return Fo(()=>{let t=e.prototype.constructor,n=t[Os]||yu(t),r=Object.prototype,o=Object.getPrototypeOf(e.prototype).constructor;for(;o&&o!==r;){let i=o[Os]||yu(o);if(i&&i!==n)return i;o=Object.getPrototypeOf(o)}return i=>new i})}function yu(e){return Vm(e)?()=>{let t=yu(we(e));return t&&t()}:An(e)}function RC(e,t,n,r,o){let i=e,s=t;for(;i!==null&&s!==null&&s[S]&2048&&!So(s);){let a=Og(i,s,n,r|V.Self,vt);if(a!==vt)return a;let c=i.parent;if(!c){let l=s[rg];if(l){let u=l.get(n,vt,r);if(u!==vt)return u}c=kg(s),s=s[Rr]}i=c}return o}function kg(e){let t=e[C],n=t.type;return n===2?t.declTNode:n===1?e[Re]:null}function Fg(e){return TC(be(),e)}function $p(e,t=null,n=null,r){let o=Pg(e,t,n,r);return o.resolveInjectorInitializers(),o}function Pg(e,t=null,n=null,r,o=new Set){let i=[n||xe,Ow(e)];return r=r||(typeof e=="object"?void 0:Ae(e)),new Mo(i,t||da(),r||null,o)}var z=class e{static THROW_IF_NOT_FOUND=Sn;static NULL=new Ls;static create(t,n){if(Array.isArray(t))return $p({name:""},n,t,"");{let r=t.name??"";return $p({name:r},t.parent,t.providers,r)}}static \u0275prov=v({token:e,providedIn:"any",factory:()=>I(Ym)});static __NG_ELEMENT_ID__=-1};var zp=class{attributeName;constructor(t){this.attributeName=t}__NG_ELEMENT_ID__=()=>Fg(this.attributeName);toString(){return`HostAttributeToken ${this.attributeName}`}},NC=new y("");NC.__NG_ELEMENT_ID__=e=>{let t=be();if(t===null)throw new D(204,!1);if(t.type&2)return t.value;if(e&V.Optional)return null;throw new D(204,!1)};var Lg=!1,kr=(()=>{class e{static __NG_ELEMENT_ID__=OC;static __NG_ENV_ID__=n=>n}return e})(),Gs=class extends kr{_lView;constructor(t){super(),this._lView=t}onDestroy(t){let n=this._lView;return Hn(n)?(t(),()=>{}):(hg(n,t),()=>Qw(n,t))}};function OC(){return new Gs(A())}var an=class{},_a=new y("",{providedIn:"root",factory:()=>!1});var Vg=new y(""),jg=new y(""),ln=(()=>{class e{taskId=0;pendingTasks=new Set;get _hasPendingTasks(){return this.hasPendingTasks.value}hasPendingTasks=new Ot(!1);add(){this._hasPendingTasks||this.hasPendingTasks.next(!0);let n=this.taskId++;return this.pendingTasks.add(n),n}has(n){return this.pendingTasks.has(n)}remove(n){this.pendingTasks.delete(n),this.pendingTasks.size===0&&this._hasPendingTasks&&this.hasPendingTasks.next(!1)}ngOnDestroy(){this.pendingTasks.clear(),this._hasPendingTasks&&this.hasPendingTasks.next(!1)}static \u0275prov=v({token:e,providedIn:"root",factory:()=>new e})}return e})(),kC=(()=>{class e{internalPendingTasks=h(ln);scheduler=h(an);add(){let n=this.internalPendingTasks.add();return()=>{this.internalPendingTasks.has(n)&&(this.scheduler.notify(11),this.internalPendingTasks.remove(n))}}run(n){return pt(this,null,function*(){let r=this.add();try{return yield n()}finally{r()}})}static \u0275prov=v({token:e,providedIn:"root",factory:()=>new e})}return e})(),bu=class extends T{__isAsync;destroyRef=void 0;pendingTasks=void 0;constructor(t=!1){super(),this.__isAsync=t,ng()&&(this.destroyRef=h(kr,{optional:!0})??void 0,this.pendingTasks=h(ln,{optional:!0})??void 0)}emit(t){let n=L(null);try{super.next(t)}finally{L(n)}}subscribe(t,n,r){let o=t,i=n||(()=>null),s=r;if(t&&typeof t=="object"){let c=t;o=c.next?.bind(c),i=c.error?.bind(c),s=c.complete?.bind(c)}this.__isAsync&&(i=this.wrapInTimeout(i),o&&(o=this.wrapInTimeout(o)),s&&(s=this.wrapInTimeout(s)));let a=super.subscribe({next:o,error:i,complete:s});return t instanceof Q&&t.add(a),a}wrapInTimeout(t){return n=>{let r=this.pendingTasks?.add();setTimeout(()=>{try{t(n)}finally{r!==void 0&&this.pendingTasks?.remove(r)}})}}},oe=bu;function Ao(...e){}function Bg(e){let t,n;function r(){e=Ao;try{n!==void 0&&typeof cancelAnimationFrame=="function"&&cancelAnimationFrame(n),t!==void 0&&clearTimeout(t)}catch{}}return t=setTimeout(()=>{e(),r()}),typeof requestAnimationFrame=="function"&&(n=requestAnimationFrame(()=>{e(),r()})),()=>r()}function Gp(e){return queueMicrotask(()=>e()),()=>{e=Ao}}var Ld="isAngularZone",Ws=Ld+"_ID",FC=0,x=class e{hasPendingMacrotasks=!1;hasPendingMicrotasks=!1;isStable=!0;onUnstable=new oe(!1);onMicrotaskEmpty=new oe(!1);onStable=new oe(!1);onError=new oe(!1);constructor(t){let{enableLongStackTrace:n=!1,shouldCoalesceEventChangeDetection:r=!1,shouldCoalesceRunChangeDetection:o=!1,scheduleInRootZone:i=Lg}=t;if(typeof Zone>"u")throw new D(908,!1);Zone.assertZonePatched();let s=this;s._nesting=0,s._outer=s._inner=Zone.current,Zone.TaskTrackingZoneSpec&&(s._inner=s._inner.fork(new Zone.TaskTrackingZoneSpec)),n&&Zone.longStackTraceZoneSpec&&(s._inner=s._inner.fork(Zone.longStackTraceZoneSpec)),s.shouldCoalesceEventChangeDetection=!o&&r,s.shouldCoalesceRunChangeDetection=o,s.callbackScheduled=!1,s.scheduleInRootZone=i,VC(s)}static isInAngularZone(){return typeof Zone<"u"&&Zone.current.get(Ld)===!0}static assertInAngularZone(){if(!e.isInAngularZone())throw new D(909,!1)}static assertNotInAngularZone(){if(e.isInAngularZone())throw new D(909,!1)}run(t,n,r){return this._inner.run(t,n,r)}runTask(t,n,r,o){let i=this._inner,s=i.scheduleEventTask("NgZoneEvent: "+o,t,PC,Ao,Ao);try{return i.runTask(s,n,r)}finally{i.cancelTask(s)}}runGuarded(t,n,r){return this._inner.runGuarded(t,n,r)}runOutsideAngular(t){return this._outer.run(t)}},PC={};function Vd(e){if(e._nesting==0&&!e.hasPendingMicrotasks&&!e.isStable)try{e._nesting++,e.onMicrotaskEmpty.emit(null)}finally{if(e._nesting--,!e.hasPendingMicrotasks)try{e.runOutsideAngular(()=>e.onStable.emit(null))}finally{e.isStable=!0}}}function LC(e){if(e.isCheckStableRunning||e.callbackScheduled)return;e.callbackScheduled=!0;function t(){Bg(()=>{e.callbackScheduled=!1,_u(e),e.isCheckStableRunning=!0,Vd(e),e.isCheckStableRunning=!1})}e.scheduleInRootZone?Zone.root.run(()=>{t()}):e._outer.run(()=>{t()}),_u(e)}function VC(e){let t=()=>{LC(e)},n=FC++;e._inner=e._inner.fork({name:"angular",properties:{[Ld]:!0,[Ws]:n,[Ws+n]:!0},onInvokeTask:(r,o,i,s,a,c)=>{if(jC(c))return r.invokeTask(i,s,a,c);try{return Wp(e),r.invokeTask(i,s,a,c)}finally{(e.shouldCoalesceEventChangeDetection&&s.type==="eventTask"||e.shouldCoalesceRunChangeDetection)&&t(),qp(e)}},onInvoke:(r,o,i,s,a,c,l)=>{try{return Wp(e),r.invoke(i,s,a,c,l)}finally{e.shouldCoalesceRunChangeDetection&&!e.callbackScheduled&&!BC(c)&&t(),qp(e)}},onHasTask:(r,o,i,s)=>{r.hasTask(i,s),o===i&&(s.change=="microTask"?(e._hasPendingMicrotasks=s.microTask,_u(e),Vd(e)):s.change=="macroTask"&&(e.hasPendingMacrotasks=s.macroTask))},onHandleError:(r,o,i,s)=>(r.handleError(i,s),e.runOutsideAngular(()=>e.onError.emit(s)),!1)})}function _u(e){e._hasPendingMicrotasks||(e.shouldCoalesceEventChangeDetection||e.shouldCoalesceRunChangeDetection)&&e.callbackScheduled===!0?e.hasPendingMicrotasks=!0:e.hasPendingMicrotasks=!1}function Wp(e){e._nesting++,e.isStable&&(e.isStable=!1,e.onUnstable.emit(null))}function qp(e){e._nesting--,Vd(e)}var Du=class{hasPendingMicrotasks=!1;hasPendingMacrotasks=!1;isStable=!0;onUnstable=new oe;onMicrotaskEmpty=new oe;onStable=new oe;onError=new oe;run(t,n,r){return t.apply(n,r)}runGuarded(t,n,r){return t.apply(n,r)}runOutsideAngular(t){return t()}runTask(t,n,r,o){return t.apply(n,r)}};function jC(e){return Hg(e,"__ignore_ng_zone__")}function BC(e){return Hg(e,"__scheduler_tick__")}function Hg(e,t){return!Array.isArray(e)||e.length!==1?!1:e[0]?.data?.[t]===!0}var Dt=class{_console=console;handleError(t){this._console.error("ERROR",t)}},HC=new y("",{providedIn:"root",factory:()=>{let e=h(x),t=h(Dt);return n=>e.runOutsideAngular(()=>t.handleError(n))}});function Yp(e,t){return Pm(e,t)}function UC(e){return Pm(Fm,e)}var ij=(Yp.required=UC,Yp);function $C(){return Fr(be(),A())}function Fr(e,t){return new X(ut(e,t))}var X=(()=>{class e{nativeElement;constructor(n){this.nativeElement=n}static __NG_ELEMENT_ID__=$C}return e})();function zC(e){return e instanceof X?e.nativeElement:e}function Da(e){return typeof e=="function"&&e[ze]!==void 0}function Gt(e,t){let n=Ml(e,t?.equal),r=n[ze];return n.set=o=>_o(r,o),n.update=o=>Tl(r,o),n.asReadonly=GC.bind(n),n}function GC(){let e=this[ze];if(e.readonlyFn===void 0){let t=()=>this();t[ze]=e,e.readonlyFn=t}return e.readonlyFn}function Ug(e){return Da(e)&&typeof e.set=="function"}function WC(){return this._results[Symbol.iterator]()}var Mr=class{_emitDistinctChangesOnly;dirty=!0;_onDirty=void 0;_results=[];_changesDetected=!1;_changes=void 0;length=0;first=void 0;last=void 0;get changes(){return this._changes??=new T}constructor(t=!1){this._emitDistinctChangesOnly=t}get(t){return this._results[t]}map(t){return this._results.map(t)}filter(t){return this._results.filter(t)}find(t){return this._results.find(t)}reduce(t,n){return this._results.reduce(t,n)}forEach(t){this._results.forEach(t)}some(t){return this._results.some(t)}toArray(){return this._results.slice()}toString(){return this._results.toString()}reset(t,n){this.dirty=!1;let r=xw(t);(this._changesDetected=!Sw(this._results,r,n))&&(this._results=r,this.length=r.length,this.last=r[this.length-1],this.first=r[0])}notifyOnChanges(){this._changes!==void 0&&(this._changesDetected||!this._emitDistinctChangesOnly)&&this._changes.next(this)}onDirty(t){this._onDirty=t}setDirty(){this.dirty=!0,this._onDirty?.()}destroy(){this._changes!==void 0&&(this._changes.complete(),this._changes.unsubscribe())}[Symbol.iterator]=WC},qC="ngSkipHydration",YC="ngskiphydration";function $g(e){let t=e.mergedAttrs;if(t===null)return!1;for(let n=0;nJC}),JC="ng",jd=new y(""),zn=new y("",{providedIn:"platform",factory:()=>"unknown"});var Ct=new y(""),Vo=new y("",{providedIn:"root",factory:()=>Ea().body?.querySelector("[ngCspNonce]")?.getAttribute("ngCspNonce")||null});function eI(){let e=new Lr;return e.store=tI(Ea(),h(Le)),e}var Lr=(()=>{class e{static \u0275prov=v({token:e,providedIn:"root",factory:eI});store={};onSerializeCallbacks={};get(n,r){return this.store[n]!==void 0?this.store[n]:r}set(n,r){this.store[n]=r}remove(n){delete this.store[n]}hasKey(n){return this.store.hasOwnProperty(n)}get isEmpty(){return Object.keys(this.store).length===0}onSerialize(n,r){this.onSerializeCallbacks[n]=r}toJson(){for(let n in this.onSerializeCallbacks)if(this.onSerializeCallbacks.hasOwnProperty(n))try{this.store[n]=this.onSerializeCallbacks[n]()}catch(r){console.warn("Exception in onSerialize callback: ",r)}return JSON.stringify(this.store).replace(/tv});var rv=new y(""),dI=!1,fI=new y(""),Kp=new y("",{providedIn:"root",factory:()=>new Map}),Hd=function(e){return e[e.CHANGE_DETECTION=0]="CHANGE_DETECTION",e[e.AFTER_NEXT_RENDER=1]="AFTER_NEXT_RENDER",e}(Hd||{}),Vr=new y(""),Xp=new Set;function It(e){Xp.has(e)||(Xp.add(e),performance?.mark?.("mark_feature_usage",{detail:{feature:e}}))}var Ud=(()=>{class e{view;node;constructor(n,r){this.view=n,this.node=r}static __NG_ELEMENT_ID__=hI}return e})();function hI(){return new Ud(A(),be())}var mr=function(e){return e[e.EarlyRead=0]="EarlyRead",e[e.Write=1]="Write",e[e.MixedReadWrite=2]="MixedReadWrite",e[e.Read=3]="Read",e}(mr||{}),ov=(()=>{class e{impl=null;execute(){this.impl?.execute()}static \u0275prov=v({token:e,providedIn:"root",factory:()=>new e})}return e})(),pI=[mr.EarlyRead,mr.Write,mr.MixedReadWrite,mr.Read],mI=(()=>{class e{ngZone=h(x);scheduler=h(an);errorHandler=h(Dt,{optional:!0});sequences=new Set;deferredRegistrations=new Set;executing=!1;constructor(){h(Vr,{optional:!0})}execute(){let n=this.sequences.size>0;n&&G(16),this.executing=!0;for(let r of pI)for(let o of this.sequences)if(!(o.erroredOrDestroyed||!o.hooks[r]))try{o.pipelinedValue=this.ngZone.runOutsideAngular(()=>this.maybeTrace(()=>{let i=o.hooks[r];return i(o.pipelinedValue)},o.snapshot))}catch(i){o.erroredOrDestroyed=!0,this.errorHandler?.handleError(i)}this.executing=!1;for(let r of this.sequences)r.afterRun(),r.once&&(this.sequences.delete(r),r.destroy());for(let r of this.deferredRegistrations)this.sequences.add(r);this.deferredRegistrations.size>0&&this.scheduler.notify(7),this.deferredRegistrations.clear(),n&&G(17)}register(n){let{view:r}=n;r!==void 0?((r[yr]??=[]).push(n),Nr(r),r[S]|=8192):this.executing?this.deferredRegistrations.add(n):this.addSequence(n)}addSequence(n){this.sequences.add(n),this.scheduler.notify(7)}unregister(n){this.executing&&this.sequences.has(n)?(n.erroredOrDestroyed=!0,n.pipelinedValue=void 0,n.once=!0):(this.sequences.delete(n),this.deferredRegistrations.delete(n))}maybeTrace(n,r){return r?r.run(Hd.AFTER_NEXT_RENDER,n):n()}static \u0275prov=v({token:e,providedIn:"root",factory:()=>new e})}return e})(),Cu=class{impl;hooks;view;once;snapshot;erroredOrDestroyed=!1;pipelinedValue=void 0;unregisterOnDestroy;constructor(t,n,r,o,i,s=null){this.impl=t,this.hooks=n,this.view=r,this.once=o,this.snapshot=s,this.unregisterOnDestroy=i?.onDestroy(()=>this.destroy())}afterRun(){this.erroredOrDestroyed=!1,this.pipelinedValue=void 0,this.snapshot?.dispose(),this.snapshot=null}destroy(){this.impl.unregister(this),this.unregisterOnDestroy?.();let t=this.view?.[yr];t&&(this.view[yr]=t.filter(n=>n!==this))}};function $d(e,t){!t?.injector&&ha($d);let n=t?.injector??h(z);return It("NgAfterRender"),iv(e,n,t,!1)}function Wt(e,t){!t?.injector&&ha(Wt);let n=t?.injector??h(z);return It("NgAfterNextRender"),iv(e,n,t,!0)}function gI(e,t){if(e instanceof Function){let n=[void 0,void 0,void 0,void 0];return n[t]=e,n}else return[e.earlyRead,e.write,e.mixedReadWrite,e.read]}function iv(e,t,n,r){let o=t.get(ov);o.impl??=t.get(mI);let i=t.get(Vr,null,{optional:!0}),s=n?.phase??mr.MixedReadWrite,a=n?.manualCleanup!==!0?t.get(kr):null,c=t.get(Ud,null,{optional:!0}),l=new Cu(o.impl,gI(e,s),c?.view,r,a,i?.snapshot(null));return o.impl.register(l),l}var Pe=function(e){return e[e.NOT_STARTED=0]="NOT_STARTED",e[e.IN_PROGRESS=1]="IN_PROGRESS",e[e.COMPLETE=2]="COMPLETE",e[e.FAILED=3]="FAILED",e}(Pe||{}),Qp=0,vI=1,fe=function(e){return e[e.Placeholder=0]="Placeholder",e[e.Loading=1]="Loading",e[e.Complete=2]="Complete",e[e.Error=3]="Error",e}(fe||{});var yI=0,wa=1;var bI=4,_I=5;var DI=7,_r=8,EI=9,sv=function(e){return e[e.Manual=0]="Manual",e[e.Playthrough=1]="Playthrough",e}(sv||{});function xs(e,t){let n=CI(e),r=t[n];if(r!==null){for(let o of r)o();t[n]=null}}function wI(e){xs(1,e),xs(0,e),xs(2,e)}function CI(e){let t=bI;return e===1?t=_I:e===2&&(t=EI),t}function av(e){return e+1}function jo(e,t){let n=e[C],r=av(t.index);return e[r]}function Ca(e,t){let n=av(t.index);return e.data[n]}function II(e,t,n){let r=t[C],o=Ca(r,n);switch(e){case fe.Complete:return o.primaryTmplIndex;case fe.Loading:return o.loadingTmplIndex;case fe.Error:return o.errorTmplIndex;case fe.Placeholder:return o.placeholderTmplIndex;default:return null}}function Jp(e,t){return t===fe.Placeholder?e.placeholderBlockConfig?.[Qp]??null:t===fe.Loading?e.loadingBlockConfig?.[Qp]??null:null}function MI(e){return e.loadingBlockConfig?.[vI]??null}function em(e,t){if(!e||e.length===0)return t;let n=new Set(e);for(let r of t)n.add(r);return e.length===n.size?e:Array.from(n)}function TI(e,t){let n=t.primaryTmplIndex+K;return Lo(e,n)}var Ia="ngb";var SI=(e,t,n)=>{let r=e,o=r.__jsaction_fns??new Map,i=o.get(t)??[];i.push(n),o.set(t,i),r.__jsaction_fns=o},xI=(e,t)=>{let n=e,r=n.getAttribute(Ia)??"",o=t.get(r)??new Set;o.has(n)||o.add(n),t.set(r,o)};var AI=e=>{e.removeAttribute(kl.JSACTION),e.removeAttribute(Ia),e.__jsaction_fns=void 0},RI=new y("",{providedIn:"root",factory:()=>({})});function cv(e,t){let n=t?.__jsaction_fns?.get(e.type);if(!(!n||!t?.isConnected))for(let r of n)r(e)}var Iu=new Map;function NI(e,t){return Iu.set(e,t),()=>Iu.delete(e)}var tm=!1,lv=(e,t,n,r)=>{};function OI(e,t,n,r){lv(e,t,n,r)}function kI(){tm||(lv=(e,t,n,r)=>{let o=e[yt].get(Le);Iu.get(o)?.(t,n,r)},tm=!0)}var zd=new y("");var FI="__nghData__",uv=FI,PI="__nghDeferData__",LI=PI,Gl="ngh",VI="nghm",dv=()=>null;function jI(e,t,n=!1){let r=e.getAttribute(Gl);if(r==null)return null;let[o,i]=r.split("|");if(r=n?i:o,!r)return null;let s=i?`|${i}`:"",a=n?o:s,c={};if(r!==""){let u=t.get(Lr,null,{optional:!0});u!==null&&(c=u.get(uv,[])[Number(r)])}let l={data:c,firstChild:e.firstChild??null};return n&&(l.firstChild=e,Ma(l,0,e.nextSibling)),a?e.setAttribute(Gl,a):e.removeAttribute(Gl),l}function BI(){dv=jI}function fv(e,t,n=!1){return dv(e,t,n)}function HI(e){let t=e._lView;return t[C].type===2?null:(So(t)&&(t=t[K]),t)}function UI(e){return e.textContent?.replace(/\s/gm,"")}function $I(e){let t=Ea(),n=t.createNodeIterator(e,NodeFilter.SHOW_COMMENT,{acceptNode(i){let s=UI(i);return s==="ngetn"||s==="ngtns"?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT}}),r,o=[];for(;r=n.nextNode();)o.push(r);for(let i of o)i.textContent==="ngetn"?i.replaceWith(t.createTextNode("")):i.remove()}function Ma(e,t,n){e.segmentHeads??={},e.segmentHeads[t]=n}function Mu(e,t){return e.segmentHeads?.[t]??null}function zI(e){return e.get(fI,!1,{optional:!0})}function GI(e,t){let n=e.data,r=n[oI]?.[t]??null;return r===null&&n[Bd]?.[t]&&(r=Gd(e,t)),r}function hv(e,t){return e.data[Bd]?.[t]??null}function Gd(e,t){let n=hv(e,t)??[],r=0;for(let o of n)r+=o[Ys]*(o[Jg]??1);return r}function WI(e){if(typeof e.disconnectedNodes>"u"){let t=e.data[ev];e.disconnectedNodes=t?new Set(t):null}return e.disconnectedNodes}function Bo(e,t){if(typeof e.disconnectedNodes>"u"){let n=e.data[ev];e.disconnectedNodes=n?new Set(n):null}return!!WI(e)?.has(t)}function qI(e,t){let n=t.get(zd),o=t.get(Lr).get(LI,{}),i=!1,s=e,a=null,c=[];for(;!i&&s;){i=n.has(s);let l=n.hydrating.get(s);if(a===null&&l!=null){a=l.promise;break}c.unshift(s),s=o[s][uI]}return{parentBlockPromise:a,hydrationQueue:c}}function Wl(e){return!!e&&e.nodeType===Node.COMMENT_NODE&&e.textContent?.trim()===VI}function nm(e){for(;e&&e.nodeType===Node.TEXT_NODE;)e=e.previousSibling;return e}function YI(e){for(let r of e.body.childNodes)if(Wl(r))return;let t=nm(e.body.previousSibling);if(Wl(t))return;let n=nm(e.head.lastChild);if(!Wl(n))throw new D(-507,!1)}function pv(e,t){let n=e.contentQueries;if(n!==null){let r=L(null);try{for(let o=0;oe,createScript:e=>e,createScriptURL:e=>e})}catch{}return _s}function Ta(e){return ZI()?.createHTML(e)||e}var Ds;function KI(){if(Ds===void 0&&(Ds=null,gt.trustedTypes))try{Ds=gt.trustedTypes.createPolicy("angular#unsafe-bypass",{createHTML:e=>e,createScript:e=>e,createScriptURL:e=>e})}catch{}return Ds}function rm(e){return KI()?.createScriptURL(e)||e}var Bt=class{changingThisBreaksApplicationSecurity;constructor(t){this.changingThisBreaksApplicationSecurity=t}toString(){return`SafeValue must use [property]=binding: ${this.changingThisBreaksApplicationSecurity} (see ${km})`}},Su=class extends Bt{getTypeName(){return"HTML"}},xu=class extends Bt{getTypeName(){return"Style"}},Au=class extends Bt{getTypeName(){return"Script"}},Ru=class extends Bt{getTypeName(){return"URL"}},Nu=class extends Bt{getTypeName(){return"ResourceURL"}};function Mt(e){return e instanceof Bt?e.changingThisBreaksApplicationSecurity:e}function un(e,t){let n=XI(e);if(n!=null&&n!==t){if(n==="ResourceURL"&&t==="URL")return!0;throw new Error(`Required a safe ${t}, got a ${n} (see ${km})`)}return n===t}function XI(e){return e instanceof Bt&&e.getTypeName()||null}function mv(e){return new Su(e)}function gv(e){return new xu(e)}function vv(e){return new Au(e)}function yv(e){return new Ru(e)}function bv(e){return new Nu(e)}function QI(e){let t=new ku(e);return JI()?new Ou(t):t}var Ou=class{inertDocumentHelper;constructor(t){this.inertDocumentHelper=t}getInertBodyElement(t){t=""+t;try{let n=new window.DOMParser().parseFromString(Ta(t),"text/html").body;return n===null?this.inertDocumentHelper.getInertBodyElement(t):(n.firstChild?.remove(),n)}catch{return null}}},ku=class{defaultDoc;inertDocument;constructor(t){this.defaultDoc=t,this.inertDocument=this.defaultDoc.implementation.createHTMLDocument("sanitization-inert")}getInertBodyElement(t){let n=this.inertDocument.createElement("template");return n.innerHTML=Ta(t),n}};function JI(){try{return!!new window.DOMParser().parseFromString(Ta(""),"text/html")}catch{return!1}}var e0=/^(?!javascript:)(?:[a-z0-9+.-]+:|[^&:\/?#]*(?:[\/?#]|$))/i;function Sa(e){return e=String(e),e.match(e0)?e:"unsafe:"+e}function qt(e){let t={};for(let n of e.split(","))t[n]=!0;return t}function Ho(...e){let t={};for(let n of e)for(let r in n)n.hasOwnProperty(r)&&(t[r]=!0);return t}var _v=qt("area,br,col,hr,img,wbr"),Dv=qt("colgroup,dd,dt,li,p,tbody,td,tfoot,th,thead,tr"),Ev=qt("rp,rt"),t0=Ho(Ev,Dv),n0=Ho(Dv,qt("address,article,aside,blockquote,caption,center,del,details,dialog,dir,div,dl,figure,figcaption,footer,h1,h2,h3,h4,h5,h6,header,hgroup,hr,ins,main,map,menu,nav,ol,pre,section,summary,table,ul")),r0=Ho(Ev,qt("a,abbr,acronym,audio,b,bdi,bdo,big,br,cite,code,del,dfn,em,font,i,img,ins,kbd,label,map,mark,picture,q,ruby,rp,rt,s,samp,small,source,span,strike,strong,sub,sup,time,track,tt,u,var,video")),om=Ho(_v,n0,r0,t0),wv=qt("background,cite,href,itemtype,longdesc,poster,src,xlink:href"),o0=qt("abbr,accesskey,align,alt,autoplay,axis,bgcolor,border,cellpadding,cellspacing,class,clear,color,cols,colspan,compact,controls,coords,datetime,default,dir,download,face,headers,height,hidden,hreflang,hspace,ismap,itemscope,itemprop,kind,label,lang,language,loop,media,muted,nohref,nowrap,open,preload,rel,rev,role,rows,rowspan,rules,scope,scrolling,shape,size,sizes,span,srclang,srcset,start,summary,tabindex,target,title,translate,type,usemap,valign,value,vspace,width"),i0=qt("aria-activedescendant,aria-atomic,aria-autocomplete,aria-busy,aria-checked,aria-colcount,aria-colindex,aria-colspan,aria-controls,aria-current,aria-describedby,aria-details,aria-disabled,aria-dropeffect,aria-errormessage,aria-expanded,aria-flowto,aria-grabbed,aria-haspopup,aria-hidden,aria-invalid,aria-keyshortcuts,aria-label,aria-labelledby,aria-level,aria-live,aria-modal,aria-multiline,aria-multiselectable,aria-orientation,aria-owns,aria-placeholder,aria-posinset,aria-pressed,aria-readonly,aria-relevant,aria-required,aria-roledescription,aria-rowcount,aria-rowindex,aria-rowspan,aria-selected,aria-setsize,aria-sort,aria-valuemax,aria-valuemin,aria-valuenow,aria-valuetext"),s0=Ho(wv,o0,i0),a0=qt("script,style,template");var Fu=class{sanitizedSomething=!1;buf=[];sanitizeChildren(t){let n=t.firstChild,r=!0,o=[];for(;n;){if(n.nodeType===Node.ELEMENT_NODE?r=this.startElement(n):n.nodeType===Node.TEXT_NODE?this.chars(n.nodeValue):this.sanitizedSomething=!0,r&&n.firstChild){o.push(n),n=u0(n);continue}for(;n;){n.nodeType===Node.ELEMENT_NODE&&this.endElement(n);let i=l0(n);if(i){n=i;break}n=o.pop()}}return this.buf.join("")}startElement(t){let n=im(t).toLowerCase();if(!om.hasOwnProperty(n))return this.sanitizedSomething=!0,!a0.hasOwnProperty(n);this.buf.push("<"),this.buf.push(n);let r=t.attributes;for(let o=0;o"),!0}endElement(t){let n=im(t).toLowerCase();om.hasOwnProperty(n)&&!_v.hasOwnProperty(n)&&(this.buf.push(""))}chars(t){this.buf.push(sm(t))}};function c0(e,t){return(e.compareDocumentPosition(t)&Node.DOCUMENT_POSITION_CONTAINED_BY)!==Node.DOCUMENT_POSITION_CONTAINED_BY}function l0(e){let t=e.nextSibling;if(t&&e!==t.previousSibling)throw Cv(t);return t}function u0(e){let t=e.firstChild;if(t&&c0(e,t))throw Cv(t);return t}function im(e){let t=e.nodeName;return typeof t=="string"?t:"FORM"}function Cv(e){return new Error(`Failed to sanitize html because the element is clobbered: ${e.outerHTML}`)}var d0=/[\uD800-\uDBFF][\uDC00-\uDFFF]/g,f0=/([^\#-~ |!])/g;function sm(e){return e.replace(/&/g,"&").replace(d0,function(t){let n=t.charCodeAt(0),r=t.charCodeAt(1);return"&#"+((n-55296)*1024+(r-56320)+65536)+";"}).replace(f0,function(t){return"&#"+t.charCodeAt(0)+";"}).replace(//g,">")}var Es;function Iv(e,t){let n=null;try{Es=Es||QI(e);let r=t?String(t):"";n=Es.getInertBodyElement(r);let o=5,i=r;do{if(o===0)throw new Error("Failed to sanitize html because the input is unstable");o--,r=i,i=n.innerHTML,n=Es.getInertBodyElement(r)}while(r!==i);let a=new Fu().sanitizeChildren(am(n)||n);return Ta(a)}finally{if(n){let r=am(n)||n;for(;r.firstChild;)r.firstChild.remove()}}}function am(e){return"content"in e&&h0(e)?e.content:null}function h0(e){return e.nodeType===Node.ELEMENT_NODE&&e.nodeName==="TEMPLATE"}var p0=/^>|^->||--!>|)/g,g0="\u200B$1\u200B";function v0(e){return e.replace(p0,t=>t.replace(m0,g0))}function Mv(e,t){return e.createText(t)}function y0(e,t,n){e.setValue(t,n)}function Tv(e,t){return e.createComment(v0(t))}function qd(e,t,n){return e.createElement(t,n)}function Zs(e,t,n,r,o){e.insertBefore(t,n,r,o)}function Sv(e,t,n){e.appendChild(t,n)}function cm(e,t,n,r,o){r!==null?Zs(e,t,n,r,o):Sv(e,t,n)}function Yd(e,t,n){e.removeChild(null,t,n)}function xv(e){e.textContent=""}function b0(e,t,n){e.setAttribute(t,"style",n)}function _0(e,t,n){n===""?e.removeAttribute(t,"class"):e.setAttribute(t,"class",n)}function Av(e,t,n){let{mergedAttrs:r,classes:o,styles:i}=n;r!==null&&DC(e,t,r),o!==null&&_0(e,t,o),i!==null&&b0(e,t,i)}var Tt=function(e){return e[e.NONE=0]="NONE",e[e.HTML=1]="HTML",e[e.STYLE=2]="STYLE",e[e.SCRIPT=3]="SCRIPT",e[e.URL=4]="URL",e[e.RESOURCE_URL=5]="RESOURCE_URL",e}(Tt||{});function sj(e){let t=Rv();return t?t.sanitize(Tt.URL,e)||"":un(e,"URL")?Mt(e):Sa(Er(e))}function aj(e){let t=Rv();if(t)return rm(t.sanitize(Tt.RESOURCE_URL,e)||"");if(un(e,"ResourceURL"))return rm(Mt(e));throw new D(904,!1)}function Rv(){let e=A();return e&&e[Pt].sanitizer}function D0(e){return e.ownerDocument.body}function Nv(e){return e instanceof Function?e():e}function E0(e,t,n){let r=e.length;for(;;){let o=e.indexOf(t,n);if(o===-1)return o;if(o===0||e.charCodeAt(o-1)<=32){let i=t.length;if(o+i===r||e.charCodeAt(o+i)<=32)return o}n=o+1}}var Ov="ng-template";function w0(e,t,n,r){let o=0;if(r){for(;o-1){let i;for(;++oi?f="":f=o[u+1].toLowerCase(),r&2&&l!==f){if(it(r))return!1;s=!0}}}}return it(r)||s}function it(e){return(e&1)===0}function M0(e,t,n,r){if(t===null)return-1;let o=0;if(r||!n){let i=!1;for(;o-1)for(n++;n0?'="'+a+'"':"")+"]"}else r&8?o+="."+s:r&4&&(o+=" "+s);else o!==""&&!it(s)&&(t+=lm(i,o),o=""),r=s,i=i||!it(r);n++}return o!==""&&(t+=lm(i,o)),t}function N0(e){return e.map(R0).join(",")}function O0(e){let t=[],n=[],r=1,o=2;for(;rK&&Lv(e,t,K,!1),G(s?2:0,o),n(r,o)}finally{Pn(i),G(s?3:1,o)}}function Aa(e,t,n){z0(e,t,n),(n.flags&64)===64&&G0(e,t,n)}function Jd(e,t,n=ut){let r=t.localNames;if(r!==null){let o=t.index+1;for(let i=0;inull;function B0(e){zg(e)?xv(e):$I(e)}function H0(){jv=B0}function U0(e){return e==="class"?"className":e==="for"?"htmlFor":e==="formaction"?"formAction":e==="innerHtml"?"innerHTML":e==="readonly"?"readOnly":e==="tabindex"?"tabIndex":e}function ef(e,t,n,r,o,i,s,a){if(!a&&rf(t,e,n,r,o)){Bn(t)&&$0(n,t.index);return}if(t.type&3){let c=ut(t,n);r=U0(r),o=s!=null?s(o,t.value||"",r):o,i.setProperty(c,r,o)}else t.type&12}function $0(e,t){let n=_t(t,e);n[S]&16||(n[S]|=64)}function z0(e,t,n){let r=n.directiveStart,o=n.directiveEnd;Bn(n)&&P0(t,n,e.data[r+n.componentOffset]),e.firstCreatePass||zs(n,t);let i=n.initialInputs;for(let s=r;s=0?r[a]():r[-a].unsubscribe(),s+=2}else{let a=r[n[s+1]];n[s].call(a)}r!==null&&(t[Vs]=null);let o=t[rn];if(o!==null){t[rn]=null;for(let s=0;s{Nr(e.lView)},consumerOnSignalRead(){this.lView[Ge]=this}});function gM(e){let t=e[Ge]??Object.create(vM);return t.lView=e,t}var vM=B(_({},fr),{consumerIsAlwaysLive:!0,kind:"template",consumerMarkedDirty:e=>{let t=Fn(e.lView);for(;t&&!qv(t[C]);)t=Fn(t);t&&fg(t)},consumerOnSignalRead(){this.lView[Ge]=this}});function qv(e){return e.type!==2}function Yv(e){if(e[kn]===null)return;let t=!0;for(;t;){let n=!1;for(let r of e[kn])r.dirty&&(n=!0,r.zone===null||Zone.current===r.zone?r.run():r.zone.run(()=>r.run()));t=n&&!!(e[S]&8192)}}var yM=100;function Zv(e,t=!0,n=0){let o=e[Pt].rendererFactory,i=!1;i||o.begin?.();try{bM(e,n)}catch(s){throw t&&nf(e,s),s}finally{i||o.end?.()}}function bM(e,t){let n=mg();try{Bs(!0),Vu(e,t);let r=0;for(;ga(e);){if(r===yM)throw new D(103,!1);r++,Vu(e,1)}}finally{Bs(n)}}function _M(e,t,n,r){if(Hn(t))return;let o=t[S],i=!1,s=!1;Od(t);let a=!0,c=null,l=null;i||(qv(e)?(l=fM(t),c=yo(l)):_l()===null?(a=!1,l=gM(t),c=yo(l)):t[Ge]&&(bo(t[Ge]),t[Ge]=null));try{dg(t),lC(e.bindingStartIndex),n!==null&&Vv(e,t,n,2,r);let u=(o&3)===3;if(!i)if(u){let d=e.preOrderCheckHooks;d!==null&&Ms(t,d,null)}else{let d=e.preOrderHooks;d!==null&&Ts(t,d,0,null),$l(t,0)}if(s||DM(t),Yv(t),Kv(t,0),e.contentQueries!==null&&pv(e,t),!i)if(u){let d=e.contentCheckHooks;d!==null&&Ms(t,d)}else{let d=e.contentHooks;d!==null&&Ts(t,d,1),$l(t,1)}wM(e,t);let f=e.components;f!==null&&Qv(t,f,0);let p=e.viewQuery;if(p!==null&&Tu(2,p,r),!i)if(u){let d=e.viewCheckHooks;d!==null&&Ms(t,d)}else{let d=e.viewHooks;d!==null&&Ts(t,d,2),$l(t,2)}if(e.firstUpdatePass===!0&&(e.firstUpdatePass=!1),t[Ul]){for(let d of t[Ul])d();t[Ul]=null}i||(Gv(t),t[S]&=-73)}catch(u){throw i||Nr(t),u}finally{l!==null&&(as(l,c),a&&pM(l)),kd()}}function Kv(e,t){for(let n=qg(e);n!==null;n=Yg(n))for(let r=me;r0&&(e[n-1][at]=r[at]);let i=Ps(e,me+t);eM(r[C],r);let s=i[Lt];s!==null&&s.detachView(i[C]),r[pe]=null,r[at]=null,r[S]&=-129}return r}function CM(e,t,n,r){let o=me+r,i=n.length;r>0&&(n[o-1][at]=t),r-1&&(Ro(t,r),Ps(n,r))}this._attachedToViewContainer=!1}Ra(this._lView[C],this._lView)}onDestroy(t){hg(this._lView,t)}markForCheck(){ka(this._cdRefInjectingView||this._lView,4)}detach(){this._lView[S]&=-129}reattach(){hu(this._lView),this._lView[S]|=128}detectChanges(){this._lView[S]|=1024,Zv(this._lView,this.notifyErrorHandler)}checkNoChanges(){}attachToViewContainerRef(){if(this._appRef)throw new D(902,!1);this._attachedToViewContainer=!0}detachFromAppRef(){this._appRef=null;let t=So(this._lView),n=this._lView[On];n!==null&&!t&&af(n,this._lView),Bv(this._lView[C],this._lView)}attachToAppRef(t){if(this._attachedToViewContainer)throw new D(902,!1);this._appRef=t;let n=So(this._lView),r=this._lView[On];r!==null&&!n&&ty(r,this._lView),hu(this._lView)}};var qe=(()=>{class e{static __NG_ELEMENT_ID__=TM}return e})(),IM=qe,MM=class extends IM{_declarationLView;_declarationTContainer;elementRef;constructor(t,n,r){super(),this._declarationLView=t,this._declarationTContainer=n,this.elementRef=r}get ssrId(){return this._declarationTContainer.tView?.ssrId||null}createEmbeddedView(t,n){return this.createEmbeddedViewImpl(t,n)}createEmbeddedViewImpl(t,n,r){let o=jr(this._declarationLView,this._declarationTContainer,t,{embeddedViewInjector:n,dehydratedView:r});return new No(o)}};function TM(){return Fa(be(),A())}function Fa(e,t){return e.type&4?new MM(t,e,Fr(e,t)):null}function Uo(e,t,n,r,o){let i=e.data[t];if(i===null)i=SM(e,t,n,r,o),uC()&&(i.flags|=32);else if(i.type&64){i.type=n,i.value=r,i.attrs=o;let s=sC();i.injectorIndex=s===null?-1:s.injectorIndex}return Un(i,!0),i}function SM(e,t,n,r,o){let i=pg(),s=xd(),a=s?i:i&&i.parent,c=e.data[t]=AM(e,a,n,t,r,o);return xM(e,c,i,s),c}function xM(e,t,n,r){e.firstChild===null&&(e.firstChild=t),n!==null&&(r?n.child==null&&t.parent!==null&&(n.child=t):n.next===null&&(n.next=t,t.prev=n))}function AM(e,t,n,r,o,i){let s=t?t.injectorIndex:-1,a=0;return Or()&&(a|=128),{type:n,index:r,insertBeforeIndex:null,injectorIndex:s,directiveStart:-1,directiveEnd:-1,directiveStylingLast:-1,componentOffset:-1,propertyBindings:null,flags:a,providerIndexes:0,value:o,attrs:i,mergedAttrs:null,localNames:null,initialInputs:null,inputs:null,hostDirectiveInputs:null,outputs:null,hostDirectiveOutputs:null,directiveToIndex:null,tView:null,next:null,prev:null,projectionNext:null,child:null,parent:t,projection:null,styles:null,stylesWithoutHost:null,residualStyles:void 0,classes:null,classesWithoutHost:null,residualClasses:void 0,classBindings:0,styleBindings:0}}var RM=new RegExp(`^(\\d+)*(${Qg}|${Xg})*(.*)`);function NM(e){let t=e.match(RM),[n,r,o,i]=t,s=r?parseInt(r,10):o,a=[];for(let[c,l,u]of i.matchAll(/(f|n)(\d*)/g)){let f=parseInt(u,10)||1;a.push(l,f)}return[s,...a]}function OM(e){return!e.prev&&e.parent?.type===8}function Yl(e){return e.index-K}function kM(e,t){let n=e.i18nNodes;if(n)return n.get(t)}function Pa(e,t,n,r){let o=Yl(r),i=kM(e,o);if(i===void 0){let s=e.data[aI];if(s?.[o])i=PM(s[o],n);else if(t.firstChild===r)i=e.firstChild;else{let a=r.prev===null,c=r.prev??r.parent;if(OM(r)){let l=Yl(r.parent);i=Mu(e,l)}else{let l=ut(c,n);if(a)i=l.firstChild;else{let u=Yl(c),f=Mu(e,u);if(c.type===2&&f){let d=Gd(e,u)+1;i=La(d,f)}else i=l.nextSibling}}}}return i}function La(e,t){let n=t;for(let r=0;r0&&(i.firstChild=e,e=La(r[Ys],e)),n.push(i)}return[e,n]}var iy=()=>null;function zM(e,t){let n=e[Vt];return!t||n===null||n.length===0?null:n[0].data[sI]===t?n.shift():(ny(e),null)}function GM(){iy=zM}function Tr(e,t){return iy(e,t)}var WM=class{},sy=class{},ju=class{resolveComponentFactory(t){throw Error(`No component factory found for ${Ae(t)}.`)}},ja=class{static NULL=new ju},ve=class{},dt=(()=>{class e{destroyNode=null;static __NG_ELEMENT_ID__=()=>qM()}return e})();function qM(){let e=A(),t=be(),n=_t(t.index,e);return(ct(n)?n:e)[W]}var YM=(()=>{class e{static \u0275prov=v({token:e,providedIn:"root",factory:()=>null})}return e})();var Zl={},Dr=class{injector;parentInjector;constructor(t,n){this.injector=t,this.parentInjector=n}get(t,n,r){r=ca(r);let o=this.injector.get(t,Zl,r);return o!==Zl||n===Zl?o:this.parentInjector.get(t,n,r)}};function Bu(e,t,n){let r=n?e.styles:null,o=n?e.classes:null,i=0;if(t!==null)for(let s=0;s0&&(n.directiveToIndex=new Map);for(let p=0;p0;){let n=e[--t];if(typeof n=="number"&&n<0)return n}return 0}function oT(e,t,n){if(n){if(t.exportAs)for(let r=0;r{let[n,r,o]=e[t],i={propName:n,templateName:t,isSignal:(r&xa.SignalBased)!==0};return o&&(i.transform=o),i})}function aT(e){return Object.keys(e).map(t=>({propName:e[t],templateName:t}))}function cT(e,t,n){let r=t instanceof ge?t:t?.injector;return r&&e.getStandaloneInjector!==null&&(r=e.getStandaloneInjector(r)||r),r?new Dr(n,r):n}function lT(e){let t=e.get(ve,null);if(t===null)throw new D(407,!1);let n=e.get(YM,null),r=e.get(an,null);return{rendererFactory:t,sanitizer:n,changeDetectionScheduler:r}}function uT(e,t){let n=(e.selectors[0][0]||"div").toLowerCase();return qd(t,n,n==="svg"?lg:n==="math"?qw:null)}var Sr=class extends sy{componentDef;ngModule;selector;componentType;ngContentSelectors;isBoundToModule;cachedInputs=null;cachedOutputs=null;get inputs(){return this.cachedInputs??=sT(this.componentDef.inputs),this.cachedInputs}get outputs(){return this.cachedOutputs??=aT(this.componentDef.outputs),this.cachedOutputs}constructor(t,n){super(),this.componentDef=t,this.ngModule=n,this.componentType=t.type,this.selector=N0(t.selectors),this.ngContentSelectors=t.ngContentSelectors??[],this.isBoundToModule=!!n}create(t,n,r,o){G(22);let i=L(null);try{let s=this.componentDef,a=r?["ng-version","19.2.20"]:O0(this.componentDef.selectors[0]),c=Kd(0,null,null,1,0,null,null,null,null,[a],null),l=cT(s,o||this.ngModule,t),u=lT(l),f=u.rendererFactory.createRenderer(null,s),p=r?V0(f,r,s.encapsulation,l):uT(s,f),d=Xd(null,c,null,512|Fv(s),null,null,u,f,l,null,fv(p,l,!0));d[K]=p,Od(d);let m=null;try{let g=cy(K,c,d,"#host",()=>[this.componentDef],!0,0);p&&(Av(f,p,g),Pr(p,d)),Aa(c,d,g),Wd(c,g,d),ly(c,g),n!==void 0&&dT(g,this.ngContentSelectors,n),m=_t(g.index,d),d[he]=m[he],of(c,d,null)}catch(g){throw m!==null&&Eu(m),Eu(d),g}finally{G(23),kd()}return new Hu(this.componentType,d)}finally{L(i)}}},Hu=class extends WM{_rootLView;instance;hostView;changeDetectorRef;componentType;location;previousInputValues=null;_tNode;constructor(t,n){super(),this._rootLView=n,this._tNode=Lo(n[C],K),this.location=Fr(this._tNode,n),this.instance=_t(this._tNode.index,n)[he],this.hostView=this.changeDetectorRef=new No(n,void 0,!1),this.componentType=t}setInput(t,n){let r=this._tNode;if(this.previousInputValues??=new Map,this.previousInputValues.has(t)&&Object.is(this.previousInputValues.get(t),n))return;let o=this._rootLView,i=rf(r,o[C],o,t,n);this.previousInputValues.set(t,n);let s=_t(r.index,o);ka(s,1)}get injector(){return new xn(this._tNode,this._rootLView)}destroy(){this.hostView.destroy()}onDestroy(t){this.hostView.onDestroy(t)}};function dT(e,t,n){let r=e.projection=[];for(let o=0;o{class e{static __NG_ELEMENT_ID__=fT}return e})();function fT(){let e=be();return dy(e,A())}var hT=St,uy=class extends hT{_lContainer;_hostTNode;_hostLView;constructor(t,n,r){super(),this._lContainer=t,this._hostTNode=n,this._hostLView=r}get element(){return Fr(this._hostTNode,this._hostLView)}get injector(){return new xn(this._hostTNode,this._hostLView)}get parentInjector(){let t=Pd(this._hostTNode,this._hostLView);if(Mg(t)){let n=Us(t,this._hostLView),r=Hs(t),o=n[C].data[r+8];return new xn(o,n)}else return new xn(null,this._hostLView)}clear(){for(;this.length>0;)this.remove(this.length-1)}get(t){let n=pm(this._lContainer);return n!==null&&n[t]||null}get length(){return this._lContainer.length-me}createEmbeddedView(t,n,r){let o,i;typeof r=="number"?o=r:r!=null&&(o=r.index,i=r.injector);let s=Tr(this._lContainer,t.ssrId),a=t.createEmbeddedViewImpl(n||{},i,s);return this.insertImpl(a,o,Vn(this._hostTNode,s)),a}createComponent(t,n,r,o,i){let s=t&&!$w(t),a;if(s)a=n;else{let m=n||{};a=m.index,r=m.injector,o=m.projectableNodes,i=m.environmentInjector||m.ngModuleRef}let c=s?t:new Sr(on(t)),l=r||this.parentInjector;if(!i&&c.ngModule==null){let g=(s?l:this.parentInjector).get(ge,null);g&&(i=g)}let u=on(c.componentType??{}),f=Tr(this._lContainer,u?.id??null),p=f?.firstChild??null,d=c.create(l,o,p,i);return this.insertImpl(d.hostView,a,Vn(this._hostTNode,f)),d}insert(t,n){return this.insertImpl(t,n,!0)}insertImpl(t,n,r){let o=t._lView;if(Kw(o)){let a=this.indexOf(t);if(a!==-1)this.detach(a);else{let c=o[pe],l=new uy(c,c[Re],c[pe]);l.detach(l.indexOf(t))}}let i=this._adjustIndex(n),s=this._lContainer;return Br(s,o,i,r),t.attachToViewContainerRef(),qm(Kl(s),i,t),t}move(t,n){return this.insert(t,n)}indexOf(t){let n=pm(this._lContainer);return n!==null?n.indexOf(t):-1}remove(t){let n=this._adjustIndex(t,-1),r=Ro(this._lContainer,n);r&&(Ps(Kl(this._lContainer),n),Ra(r[C],r))}detach(t){let n=this._adjustIndex(t,-1),r=Ro(this._lContainer,n);return r&&Ps(Kl(this._lContainer),n)!=null?new No(r):null}_adjustIndex(t,n=0){return t??this.length+n}};function pm(e){return e[js]}function Kl(e){return e[js]||(e[js]=[])}function dy(e,t){let n,r=t[e.index];return wt(r)?n=r:(n=Jv(r,t,null,e),t[e.index]=n,Qd(t,n)),fy(n,t,e,r),new uy(n,e,t)}function pT(e,t){let n=e[W],r=n.createComment(""),o=ut(t,e),i=n.parentNode(o);return Zs(n,i,r,n.nextSibling(o),!1),r}var fy=hy,df=()=>!1;function mT(e,t,n){return df(e,t,n)}function hy(e,t,n,r){if(e[jt])return;let o;n.type&8?o=lt(r):o=pT(t,n),e[jt]=o}function gT(e,t,n){if(e[jt]&&e[Vt])return!0;let r=n[We],o=t.index-K;if(!r||ZC(t)||Bo(r,o))return!1;let s=Mu(r,o),a=r.data[Bd]?.[o],[c,l]=$M(s,a);return e[jt]=c,e[Vt]=l,!0}function vT(e,t,n,r){df(e,n,t)||hy(e,t,n,r)}function yT(){fy=vT,df=gT}var Uu=class e{queryList;matches=null;constructor(t){this.queryList=t}clone(){return new e(this.queryList)}setDirty(){this.queryList.setDirty()}},$u=class e{queries;constructor(t=[]){this.queries=t}createEmbeddedView(t){let n=t.queries;if(n!==null){let r=t.contentQueries!==null?t.contentQueries[0]:n.length,o=[];for(let i=0;i0)r.push(s[a/2]);else{let l=i[a+1],u=t[-c];for(let f=me;ft.trim())}function gy(e,t,n){e.queries===null&&(e.queries=new zu),e.queries.track(new Gu(t,n))}function TT(e,t){let n=e.contentQueries||(e.contentQueries=[]),r=n.length?n[n.length-1]:-1;t!==r&&n.push(e.queries.length-1,t)}function ff(e,t){return e.queries.getByIndex(t)}function ST(e,t){let n=e[C],r=ff(n,t);return r.crossesNgTemplate?Wu(n,e,t,[]):py(n,e,r,t)}var Ut=class{},xT=class{};var qu=class extends Ut{ngModuleType;_parent;_bootstrapComponents=[];_r3Injector;instance;destroyCbs=[];componentFactoryResolver=new Qs(this);constructor(t,n,r,o=!0){super(),this.ngModuleType=t,this._parent=n;let i=Km(t);this._bootstrapComponents=Nv(i.bootstrap),this._r3Injector=Pg(t,n,[{provide:Ut,useValue:this},{provide:ja,useValue:this.componentFactoryResolver},...r],Ae(t),new Set(["environment"])),o&&this.resolveInjectorInitializers()}resolveInjectorInitializers(){this._r3Injector.resolveInjectorInitializers(),this.instance=this._r3Injector.get(this.ngModuleType)}get injector(){return this._r3Injector}destroy(){let t=this._r3Injector;!t.destroyed&&t.destroy(),this.destroyCbs.forEach(n=>n()),this.destroyCbs=null}onDestroy(t){this.destroyCbs.push(t)}},Yu=class extends xT{moduleType;constructor(t){super(),this.moduleType=t}create(t){return new qu(this.moduleType,t,[])}};var ea=class extends Ut{injector;componentFactoryResolver=new Qs(this);instance=null;constructor(t){super();let n=new Mo([...t.providers,{provide:Ut,useValue:this},{provide:ja,useValue:this.componentFactoryResolver}],t.parent||da(),t.debugName,new Set(["environment"]));this.injector=n,t.runEnvironmentInitializers&&n.resolveInjectorInitializers()}destroy(){this.injector.destroy()}onDestroy(t){this.injector.onDestroy(t)}};function vy(e,t,n=null){return new ea({providers:e,parent:t,debugName:n,runEnvironmentInitializers:!0}).injector}var AT=(()=>{class e{_injector;cachedInjectors=new Map;constructor(n){this._injector=n}getOrCreateStandaloneInjector(n){if(!n.standalone)return null;if(!this.cachedInjectors.has(n)){let r=Dd(!1,n.type),o=r.length>0?vy([r],this._injector,`Standalone[${n.type.name}]`):null;this.cachedInjectors.set(n,o)}return this.cachedInjectors.get(n)}ngOnDestroy(){try{for(let n of this.cachedInjectors.values())n!==null&&n.destroy()}finally{this.cachedInjectors.clear()}}static \u0275prov=v({token:e,providedIn:"environment",factory:()=>new e(I(ge))})}return e})();function _e(e){return Fo(()=>{let t=yy(e),n=B(_({},t),{decls:e.decls,vars:e.vars,template:e.template,consts:e.consts||null,ngContentSelectors:e.ngContentSelectors,onPush:e.changeDetection===Gg.OnPush,directiveDefs:null,pipeDefs:null,dependencies:t.standalone&&e.dependencies||null,getStandaloneInjector:t.standalone?o=>o.get(AT).getOrCreateStandaloneInjector(n):null,getExternalStyles:null,signals:e.signals??!1,data:e.data||{},encapsulation:e.encapsulation||Et.Emulated,styles:e.styles||xe,_:null,schemas:e.schemas||null,tView:null,id:""});t.standalone&&It("NgStandalone"),by(n);let r=e.dependencies;return n.directiveDefs=mm(r,!1),n.pipeDefs=mm(r,!0),n.id=FT(n),n})}function RT(e){return on(e)||Xm(e)}function NT(e){return e!==null}function U(e){return Fo(()=>({type:e.type,bootstrap:e.bootstrap||xe,declarations:e.declarations||xe,imports:e.imports||xe,exports:e.exports||xe,transitiveCompileScopes:null,schemas:e.schemas||null,id:e.id||null}))}function OT(e,t){if(e==null)return Rn;let n={};for(let r in e)if(e.hasOwnProperty(r)){let o=e[r],i,s,a,c;Array.isArray(o)?(a=o[0],i=o[1],s=o[2]??i,c=o[3]||null):(i=o,s=o,a=xa.None,c=null),n[i]=[r,a,c],t[i]=s}return n}function kT(e){if(e==null)return Rn;let t={};for(let n in e)e.hasOwnProperty(n)&&(t[e[n]]=n);return t}function j(e){return Fo(()=>{let t=yy(e);return by(t),t})}function Ba(e){return{type:e.type,name:e.name,factory:null,pure:e.pure!==!1,standalone:e.standalone??!0,onDestroy:e.type.prototype.ngOnDestroy||null}}function yy(e){let t={};return{type:e.type,providersResolver:null,factory:null,hostBindings:e.hostBindings||null,hostVars:e.hostVars||0,hostAttrs:e.hostAttrs||null,contentQueries:e.contentQueries||null,declaredInputs:t,inputConfig:e.inputs||Rn,exportAs:e.exportAs||null,standalone:e.standalone??!0,signals:e.signals===!0,selectors:e.selectors||xe,viewQuery:e.viewQuery||null,features:e.features||null,setInput:null,findHostDirectiveDefs:null,hostDirectives:null,inputs:OT(e.inputs,t),outputs:kT(e.outputs),debugInfo:null}}function by(e){e.features?.forEach(t=>t(e))}function mm(e,t){if(!e)return null;let n=t?Qm:RT;return()=>(typeof e=="function"?e():e).map(r=>n(r)).filter(NT)}function FT(e){let t=0,n=typeof e.consts=="function"?"":e.consts,r=[e.selectors,e.ngContentSelectors,e.hostVars,e.hostAttrs,n,e.vars,e.decls,e.encapsulation,e.standalone,e.signals,e.exportAs,JSON.stringify(e.inputs),JSON.stringify(e.outputs),Object.getOwnPropertyNames(e.type.prototype),!!e.contentQueries,!!e.viewQuery];for(let i of r.join("|"))t=Math.imul(31,t)+i.charCodeAt(0)<<0;return t+=2147483648,"c"+t}function PT(e){return Object.getPrototypeOf(e.prototype).constructor}function ee(e){let t=PT(e.type),n=!0,r=[e];for(;t;){let o;if(bt(e))o=t.\u0275cmp||t.\u0275dir;else{if(t.\u0275cmp)throw new D(903,!1);o=t.\u0275dir}if(o){if(n){r.push(o);let s=e;s.inputs=Xl(e.inputs),s.declaredInputs=Xl(e.declaredInputs),s.outputs=Xl(e.outputs);let a=o.hostBindings;a&&HT(e,a);let c=o.viewQuery,l=o.contentQueries;if(c&&jT(e,c),l&&BT(e,l),LT(e,o),dw(e.outputs,o.outputs),bt(o)&&o.data.animation){let u=e.data;u.animation=(u.animation||[]).concat(o.data.animation)}}let i=o.features;if(i)for(let s=0;s=0;r--){let o=e[r];o.hostVars=t+=o.hostVars,o.hostAttrs=Ir(o.hostAttrs,n=Ir(n,o.hostAttrs))}}function Xl(e){return e===Rn?{}:e===xe?[]:e}function jT(e,t){let n=e.viewQuery;n?e.viewQuery=(r,o)=>{t(r,o),n(r,o)}:e.viewQuery=t}function BT(e,t){let n=e.contentQueries;n?e.contentQueries=(r,o,i)=>{t(r,o,i),n(r,o,i)}:e.contentQueries=t}function HT(e,t){let n=e.hostBindings;n?e.hostBindings=(r,o)=>{t(r,o),n(r,o)}:e.hostBindings=t}function _y(e){return hf(e)?Array.isArray(e)||!(e instanceof Map)&&Symbol.iterator in e:!1}function UT(e,t){if(Array.isArray(e))for(let n=0;n{class e{cachedInjectors=new Map;getOrCreateInjector(n,r,o,i){if(!this.cachedInjectors.has(n)){let s=o.length>0?vy(o,r,i):null;this.cachedInjectors.set(n,s)}return this.cachedInjectors.get(n)}ngOnDestroy(){try{for(let n of this.cachedInjectors.values())n!==null&&n.destroy()}finally{this.cachedInjectors.clear()}}static \u0275prov=v({token:e,providedIn:"environment",factory:()=>new e})}return e})();var YT=new y("");function Ql(e,t,n){return e.get(qT).getOrCreateInjector(t,e,n,"")}function ZT(e,t,n){if(e instanceof Dr){let o=e.injector,i=e.parentInjector,s=Ql(i,t,n);return new Dr(o,s)}let r=e.get(ge);if(r!==e){let o=Ql(r,t,n);return new Dr(e,o)}return Ql(e,t,n)}function vr(e,t,n,r=!1){let o=n[pe],i=o[C];if(Hn(o))return;let s=jo(o,t),a=s[wa],c=s[DI];if(!(c!==null&&eo.data[lI]===t[wa])??-1;return{dehydratedView:n>-1?e[Vt][n]:null,dehydratedViewIx:n}}function XT(e,t,n,r,o){G(20);let i=II(e,o,r);if(i!==null){t[wa]=e;let s=o[C],a=i+K,c=Lo(s,a),l=0;lf(n,l);let u;if(e===fe.Complete){let m=Ca(s,r),g=m.providers;g&&g.length>0&&(u=ZT(o[yt],m,g))}let{dehydratedView:f,dehydratedViewIx:p}=KT(n,t),d=jr(o,c,null,{injector:u,dehydratedView:f});if(Br(n,d,l,Vn(c,f)),ka(d,2),p>-1&&n[Vt]?.splice(p,1),(e===fe.Complete||e===fe.Error)&&Array.isArray(t[_r])){for(let m of t[_r])m();t[_r]=null}}G(21)}function gm(e,t){return e{e.loadingState===Pe.COMPLETE?vr(fe.Complete,t,n):e.loadingState===Pe.FAILED&&vr(fe.Error,t,n)})}var QT=null;var JT=(()=>{class e{log(n){console.log(n)}warn(n){console.warn(n)}static \u0275fac=function(r){return new(r||e)};static \u0275prov=v({token:e,factory:e.\u0275fac,providedIn:"platform"})}return e})();var Cy=new y("");var Iy=(()=>{class e{static \u0275prov=v({token:e,providedIn:"root",factory:()=>new Zu})}return e})(),Zu=class{queuedEffectCount=0;queues=new Map;schedule(t){this.enqueue(t)}remove(t){let n=t.zone,r=this.queues.get(n);r.has(t)&&(r.delete(t),this.queuedEffectCount--)}enqueue(t){let n=t.zone;this.queues.has(n)||this.queues.set(n,new Set);let r=this.queues.get(n);r.has(t)||(this.queuedEffectCount++,r.add(t))}flush(){for(;this.queuedEffectCount>0;)for(let[t,n]of this.queues)t===null?this.flushQueue(n):t.run(()=>this.flushQueue(n))}flushQueue(t){for(let n of t)t.delete(n),this.queuedEffectCount--,n.run()}};function zo(e){return!!e&&typeof e.then=="function"}function My(e){return!!e&&typeof e.subscribe=="function"}var eS=new y("");var Ty=(()=>{class e{resolve;reject;initialized=!1;done=!1;donePromise=new Promise((n,r)=>{this.resolve=n,this.reject=r});appInits=h(eS,{optional:!0})??[];injector=h(z);constructor(){}runInitializers(){if(this.initialized)return;let n=[];for(let o of this.appInits){let i=fa(this.injector,o);if(zo(i))n.push(i);else if(My(i)){let s=new Promise((a,c)=>{i.subscribe({complete:a,error:c})});n.push(s)}}let r=()=>{this.done=!0,this.resolve()};Promise.all(n).then(()=>{r()}).catch(o=>{this.reject(o)}),n.length===0&&r(),this.initialized=!0}static \u0275fac=function(r){return new(r||e)};static \u0275prov=v({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),Go=new y("");function tS(){Il(()=>{throw new D(600,!1)})}function nS(e){return e.isBoundToModule}var rS=10;var ye=(()=>{class e{_runningTick=!1;_destroyed=!1;_destroyListeners=[];_views=[];internalErrorHandler=h(HC);afterRenderManager=h(ov);zonelessEnabled=h(_a);rootEffectScheduler=h(Iy);dirtyFlags=0;tracingSnapshot=null;externalTestViews=new Set;afterTick=new T;get allViews(){return[...this.externalTestViews.keys(),...this._views]}get destroyed(){return this._destroyed}componentTypes=[];components=[];isStable=h(ln).hasPendingTasks.pipe(ue(n=>!n));constructor(){h(Vr,{optional:!0})}whenStable(){let n;return new Promise(r=>{n=this.isStable.subscribe({next:o=>{o&&r()}})}).finally(()=>{n.unsubscribe()})}_injector=h(ge);_rendererFactory=null;get injector(){return this._injector}bootstrap(n,r){return this.bootstrapImpl(n,r)}bootstrapImpl(n,r,o=z.NULL){G(10);let i=n instanceof sy;if(!this._injector.get(Ty).done){let d="";throw new D(405,d)}let a;i?a=n:a=this._injector.get(ja).resolveComponentFactory(n),this.componentTypes.push(a.componentType);let c=nS(a)?void 0:this._injector.get(Ut),l=r||a.selector,u=a.create(o,[],l,c),f=u.location.nativeElement,p=u.injector.get(Cy,null);return p?.registerApplication(f),u.onDestroy(()=>{this.detachView(u.hostView),As(this.components,u),p?.unregisterApplication(f)}),this._loadComponent(u),G(11,u),u}tick(){this.zonelessEnabled||(this.dirtyFlags|=1),this._tick()}_tick(){G(12),this.tracingSnapshot!==null?this.tracingSnapshot.run(Hd.CHANGE_DETECTION,this.tickImpl):this.tickImpl()}tickImpl=()=>{if(this._runningTick)throw new D(101,!1);let n=L(null);try{this._runningTick=!0,this.synchronize()}catch(r){this.internalErrorHandler(r)}finally{this._runningTick=!1,this.tracingSnapshot?.dispose(),this.tracingSnapshot=null,L(n),this.afterTick.next(),G(13)}};synchronize(){this._rendererFactory===null&&!this._injector.destroyed&&(this._rendererFactory=this._injector.get(ve,null,{optional:!0}));let n=0;for(;this.dirtyFlags!==0&&n++ga(n))){this.dirtyFlags|=2;return}else this.dirtyFlags&=-8}attachView(n){let r=n;this._views.push(r),r.attachToAppRef(this)}detachView(n){let r=n;As(this._views,r),r.detachFromAppRef()}_loadComponent(n){this.attachView(n.hostView),this.tick(),this.components.push(n),this._injector.get(Go,[]).forEach(o=>o(n))}ngOnDestroy(){if(!this._destroyed)try{this._destroyListeners.forEach(n=>n()),this._views.slice().forEach(n=>n.destroy())}finally{this._destroyed=!0,this._views=[],this._destroyListeners=[]}}onDestroy(n){return this._destroyListeners.push(n),()=>As(this._destroyListeners,n)}destroy(){if(this._destroyed)throw new D(406,!1);let n=this._injector;n.destroy&&!n.destroyed&&n.destroy()}get viewCount(){return this._views.length}static \u0275fac=function(r){return new(r||e)};static \u0275prov=v({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function As(e,t){let n=e.indexOf(t);n>-1&&e.splice(n,1)}function oS(e,t,n,r){if(!n&&!ga(e))return;Zv(e,t,n&&!r?0:1)}function iS(e,t,n){let r=t[yt],o=t[C];if(e.loadingState!==Pe.NOT_STARTED)return e.loadingPromise??Promise.resolve();let i=jo(t,n),s=TI(o,e);e.loadingState=Pe.IN_PROGRESS,xs(1,i);let a=e.dependencyResolverFn,c=r.get(kC).add();return a?(e.loadingPromise=Promise.allSettled(a()).then(l=>{let u=!1,f=[],p=[];for(let d of l)if(d.status==="fulfilled"){let m=d.value,g=on(m)||Xm(m);if(g)f.push(g);else{let b=Qm(m);b&&p.push(b)}}else{u=!0;break}if(u){if(e.loadingState=Pe.FAILED,e.errorTmplIndex===null){let d="",m=new D(-750,!1);nf(t,m)}}else{e.loadingState=Pe.COMPLETE;let d=s.tView;if(f.length>0){d.directiveRegistry=em(d.directiveRegistry,f);let m=f.map(b=>b.type),g=Dd(!1,...m);e.providers=g}p.length>0&&(d.pipeRegistry=em(d.pipeRegistry,p))}}),e.loadingPromise.finally(()=>{e.loadingPromise=null,c()})):(e.loadingPromise=Promise.resolve().then(()=>{e.loadingPromise=null,e.loadingState=Pe.COMPLETE,c()}),e.loadingPromise)}function sS(e,t){return t[yt].get(YT,null,{optional:!0})?.behavior!==sv.Manual}function aS(e,t,n){let r=t[C],o=t[n.index];if(!sS(e,t))return;let i=jo(t,n),s=Ca(r,n);switch(wI(i),s.loadingState){case Pe.NOT_STARTED:vr(fe.Loading,n,o),iS(s,t,n),s.loadingState===Pe.IN_PROGRESS&&vm(s,n,o);break;case Pe.IN_PROGRESS:vr(fe.Loading,n,o),vm(s,n,o);break;case Pe.COMPLETE:vr(fe.Complete,n,o);break;case Pe.FAILED:vr(fe.Error,n,o);break;default:}}function cS(e,t,n){return pt(this,null,function*(){let r=e.get(zd);if(r.hydrating.has(t))return;let{parentBlockPromise:i,hydrationQueue:s}=qI(t,e);if(s.length===0)return;i!==null&&s.shift(),dS(r,s),i!==null&&(yield i);let a=s[0];r.has(a)?yield ym(e,s,n):r.awaitParentBlock(a,()=>pt(null,null,function*(){return yield ym(e,s,n)}))})}function ym(e,t,n){return pt(this,null,function*(){let r=e.get(zd),o=r.hydrating,i=e.get(ln),s=i.add();for(let c=0;c-1?n.get(t[r]):null;o&&Va(o.lContainer)}function bm(e,t){let n=t.hydrating;for(let r in e)n.get(r)?.reject();t.cleanup(e)}function dS(e,t){for(let n of t)e.hydrating.set(n,Promise.withResolvers())}function fS(e){return new Promise(t=>Wt(t,{injector:e}))}function hS(e){return pt(this,null,function*(){let{tNode:t,lView:n}=e,r=jo(n,t);return new Promise(o=>{pS(r,o),aS(2,n,t)})})}function pS(e,t){Array.isArray(e[_r])||(e[_r]=[]),e[_r].push(t)}function xt(e,t,n,r){let o=A(),i=$n();if(Ye(o,i,t)){let s=ie(),a=ya();q0(a,o,e,t,n,r)}return xt}function mS(e,t,n,r){return Ye(e,$n(),n)?t+Er(n)+r:Be}function gS(e,t,n,r,o,i){let s=cC(),a=Dy(e,s,n,o);return Rd(2),a?t+Er(n)+r+Er(o)+i:Be}function ws(e,t){return e<<17|t<<2}function jn(e){return e>>17&32767}function vS(e){return(e&2)==2}function yS(e,t){return e&131071|t<<17}function Ku(e){return e|2}function xr(e){return(e&131068)>>2}function Jl(e,t){return e&-131069|t<<2}function bS(e){return(e&1)===1}function Xu(e){return e|1}function _S(e,t,n,r,o,i){let s=i?t.classBindings:t.styleBindings,a=jn(s),c=xr(s);e[r]=n;let l=!1,u;if(Array.isArray(n)){let f=n;u=f[1],(u===null||Po(f,u)>0)&&(l=!0)}else u=n;if(o)if(c!==0){let p=jn(e[a+1]);e[r+1]=ws(p,a),p!==0&&(e[p+1]=Jl(e[p+1],r)),e[a+1]=yS(e[a+1],r)}else e[r+1]=ws(a,0),a!==0&&(e[a+1]=Jl(e[a+1],r)),a=r;else e[r+1]=ws(c,0),a===0?a=r:e[c+1]=Jl(e[c+1],r),c=r;l&&(e[r+1]=Ku(e[r+1])),_m(e,u,r,!0),_m(e,u,r,!1),DS(t,u,e,r,i),s=ws(a,c),i?t.classBindings=s:t.styleBindings=s}function DS(e,t,n,r,o){let i=o?e.residualClasses:e.residualStyles;i!=null&&typeof t=="string"&&Po(i,t)>=0&&(n[r+1]=Xu(n[r+1]))}function _m(e,t,n,r){let o=e[n+1],i=t===null,s=r?jn(o):xr(o),a=!1;for(;s!==0&&(a===!1||i);){let c=e[s],l=e[s+1];ES(c,t)&&(a=!0,e[s+1]=r?Xu(l):Ku(l)),s=r?jn(l):xr(l)}a&&(e[n+1]=r?Ku(o):Xu(o))}function ES(e,t){return e===null||t==null||(Array.isArray(e)?e[1]:e)===t?!0:Array.isArray(e)&&typeof t=="string"?Po(e,t)>=0:!1}var st={textEnd:0,key:0,keyEnd:0,value:0,valueEnd:0};function wS(e){return e.substring(st.key,st.keyEnd)}function CS(e){return IS(e),Sy(e,xy(e,0,st.textEnd))}function Sy(e,t){let n=st.textEnd;return n===t?-1:(t=st.keyEnd=MS(e,st.key=t,n),xy(e,t,n))}function IS(e){st.key=0,st.keyEnd=0,st.value=0,st.valueEnd=0,st.textEnd=e.length}function xy(e,t,n){for(;t32;)t++;return t}function TS(e,t,n){let r=A(),o=$n();if(Ye(r,o,t)){let i=ie(),s=ya();ef(i,s,r,e,t,r[W],n,!1)}return TS}function Qu(e,t,n,r,o){rf(t,e,n,o?"class":"style",r)}function Ay(e,t,n){return Ry(e,t,n,!1),Ay}function He(e,t){return Ry(e,t,null,!0),He}function mf(e){xS(FS,SS,e,!0)}function SS(e,t){for(let n=CS(t);n>=0;n=Sy(t,n))_d(e,wS(t),!0)}function Ry(e,t,n,r){let o=A(),i=ie(),s=Rd(2);if(i.firstUpdatePass&&Oy(i,e,s,r),t!==Be&&Ye(o,s,t)){let a=i.data[zt()];ky(i,a,o,o[W],e,o[s+1]=LS(t,n),r,s)}}function xS(e,t,n,r){let o=ie(),i=Rd(2);o.firstUpdatePass&&Oy(o,null,i,r);let s=A();if(n!==Be&&Ye(s,i,n)){let a=o.data[zt()];if(Fy(a,r)&&!Ny(o,i)){let c=r?a.classesWithoutHost:a.stylesWithoutHost;c!==null&&(n=iu(c,n||"")),Qu(o,a,s,n,r)}else PS(o,a,s,s[W],s[i+1],s[i+1]=kS(e,t,n),r,i)}}function Ny(e,t){return t>=e.expandoStartIndex}function Oy(e,t,n,r){let o=e.data;if(o[n+1]===null){let i=o[zt()],s=Ny(e,n);Fy(i,r)&&t===null&&!s&&(t=!1),t=AS(o,i,t,r),_S(o,i,t,n,s,r)}}function AS(e,t,n,r){let o=hC(e),i=r?t.residualClasses:t.residualStyles;if(o===null)(r?t.classBindings:t.styleBindings)===0&&(n=eu(null,e,t,n,r),n=Oo(n,t.attrs,r),i=null);else{let s=t.directiveStylingLast;if(s===-1||e[s]!==o)if(n=eu(o,e,t,n,r),i===null){let c=RS(e,t,r);c!==void 0&&Array.isArray(c)&&(c=eu(null,e,t,c[1],r),c=Oo(c,t.attrs,r),NS(e,t,r,c))}else i=OS(e,t,r)}return i!==void 0&&(r?t.residualClasses=i:t.residualStyles=i),n}function RS(e,t,n){let r=n?t.classBindings:t.styleBindings;if(xr(r)!==0)return e[jn(r)]}function NS(e,t,n,r){let o=n?t.classBindings:t.styleBindings;e[jn(o)]=r}function OS(e,t,n){let r,o=t.directiveEnd;for(let i=1+t.directiveStylingLast;i0;){let c=e[o],l=Array.isArray(c),u=l?c[1]:c,f=u===null,p=n[o+1];p===Be&&(p=f?xe:void 0);let d=f?Bl(p,r):u===r?p:void 0;if(l&&!na(d)&&(d=Bl(c,r)),na(d)&&(a=d,s))return a;let m=e[o+1];o=s?jn(m):xr(m)}if(t!==null){let c=i?t.residualClasses:t.residualStyles;c!=null&&(a=Bl(c,r))}return a}function na(e){return e!==void 0}function LS(e,t){return e==null||e===""||(typeof t=="string"?e=e+t:typeof e=="object"&&(e=Ae(Mt(e)))),e}function Fy(e,t){return(e.flags&(t?8:16))!==0}var Ju=class{destroy(t){}updateValue(t,n){}swap(t,n){let r=Math.min(t,n),o=Math.max(t,n),i=this.detach(o);if(o-r>1){let s=this.detach(r);this.attach(r,i),this.attach(o,s)}else this.attach(r,i)}move(t,n){this.attach(n,this.detach(t))}};function tu(e,t,n,r,o){return e===n&&Object.is(t,r)?1:Object.is(o(e,t),o(n,r))?-1:0}function VS(e,t,n){let r,o,i=0,s=e.length-1,a=void 0;if(Array.isArray(t)){let c=t.length-1;for(;i<=s&&i<=c;){let l=e.at(i),u=t[i],f=tu(i,l,i,u,n);if(f!==0){f<0&&e.updateValue(i,u),i++;continue}let p=e.at(s),d=t[c],m=tu(s,p,c,d,n);if(m!==0){m<0&&e.updateValue(s,d),s--,c--;continue}let g=n(i,l),b=n(s,p),M=n(i,u);if(Object.is(M,b)){let re=n(c,d);Object.is(re,g)?(e.swap(i,s),e.updateValue(s,d),c--,s--):e.move(s,i),e.updateValue(i,u),i++;continue}if(r??=new ra,o??=wm(e,i,s,n),ed(e,r,i,M))e.updateValue(i,u),i++,s++;else if(o.has(M))r.set(g,e.detach(i)),s--;else{let re=e.create(i,t[i]);e.attach(i,re),i++,s++}}for(;i<=c;)Em(e,r,n,i,t[i]),i++}else if(t!=null){let c=t[Symbol.iterator](),l=c.next();for(;!l.done&&i<=s;){let u=e.at(i),f=l.value,p=tu(i,u,i,f,n);if(p!==0)p<0&&e.updateValue(i,f),i++,l=c.next();else{r??=new ra,o??=wm(e,i,s,n);let d=n(i,f);if(ed(e,r,i,d))e.updateValue(i,f),i++,s++,l=c.next();else if(!o.has(d))e.attach(i,e.create(i,f)),i++,s++,l=c.next();else{let m=n(i,u);r.set(m,e.detach(i)),s--}}}for(;!l.done;)Em(e,r,n,e.length,l.value),l=c.next()}for(;i<=s;)e.destroy(e.detach(s--));r?.forEach(c=>{e.destroy(c)})}function ed(e,t,n,r){return t!==void 0&&t.has(r)?(e.attach(n,t.get(r)),t.delete(r),!0):!1}function Em(e,t,n,r,o){if(ed(e,t,r,n(r,o)))e.updateValue(r,o);else{let i=e.create(r,o);e.attach(r,i)}}function wm(e,t,n,r){let o=new Set;for(let i=t;i<=n;i++)o.add(r(i,e.at(i)));return o}var ra=class{kvMap=new Map;_vMap=void 0;has(t){return this.kvMap.has(t)}delete(t){if(!this.has(t))return!1;let n=this.kvMap.get(t);return this._vMap!==void 0&&this._vMap.has(n)?(this.kvMap.set(t,this._vMap.get(n)),this._vMap.delete(n)):this.kvMap.delete(t),!0}get(t){return this.kvMap.get(t)}set(t,n){if(this.kvMap.has(t)){let r=this.kvMap.get(t);this._vMap===void 0&&(this._vMap=new Map);let o=this._vMap;for(;o.has(r);)r=o.get(r);o.set(r,n)}else this.kvMap.set(t,n)}forEach(t){for(let[n,r]of this.kvMap)if(t(r,n),this._vMap!==void 0){let o=this._vMap;for(;o.has(r);)r=o.get(r),t(r,n)}}};function gj(e,t){It("NgControlFlow");let n=A(),r=$n(),o=n[r]!==Be?n[r]:-1,i=o!==-1?oa(n,K+o):void 0,s=0;if(Ye(n,r,e)){let a=L(null);try{if(i!==void 0&&lf(i,s),e!==-1){let c=K+e,l=oa(n,c),u=od(n[C],c),f=Tr(l,u.tView.ssrId),p=jr(n,u,t,{dehydratedView:f});Br(l,p,s,Vn(u,f))}}finally{L(a)}}else if(i!==void 0){let a=ey(i,s);a!==void 0&&(a[he]=t)}}var td=class{lContainer;$implicit;$index;constructor(t,n,r){this.lContainer=t,this.$implicit=n,this.$index=r}get $count(){return this.lContainer.length-me}};function vj(e,t){return t}var nd=class{hasEmptyBlock;trackByFn;liveCollection;constructor(t,n,r){this.hasEmptyBlock=t,this.trackByFn=n,this.liveCollection=r}};function yj(e,t,n,r,o,i,s,a,c,l,u,f,p){It("NgControlFlow");let d=A(),m=ie(),g=c!==void 0,b=A(),M=a?s.bind(b[Ce][he]):s,re=new nd(g,M);b[K+e]=re,ta(d,m,e+1,t,n,r,o,sn(m.consts,i)),g&&ta(d,m,e+2,c,l,u,f,sn(m.consts,p))}var rd=class extends Ju{lContainer;hostLView;templateTNode;operationsCounter=void 0;needsIndexUpdate=!1;constructor(t,n,r){super(),this.lContainer=t,this.hostLView=n,this.templateTNode=r}get length(){return this.lContainer.length-me}at(t){return this.getLView(t)[he].$implicit}attach(t,n){let r=n[We];this.needsIndexUpdate||=t!==this.length,Br(this.lContainer,n,t,Vn(this.templateTNode,r))}detach(t){return this.needsIndexUpdate||=t!==this.length-1,jS(this.lContainer,t)}create(t,n){let r=Tr(this.lContainer,this.templateTNode.tView.ssrId),o=jr(this.hostLView,this.templateTNode,new td(this.lContainer,n,t),{dehydratedView:r});return this.operationsCounter?.recordCreate(),o}destroy(t){Ra(t[C],t),this.operationsCounter?.recordDestroy()}updateValue(t,n){this.getLView(t)[he].$implicit=n}reset(){this.needsIndexUpdate=!1,this.operationsCounter?.reset()}updateIndexes(){if(this.needsIndexUpdate)for(let t=0;t(cn(!0),qd(r,o,Eg()));function HS(e,t,n,r,o,i){let s=t[We],a=!s||Or()||Gn(n)||Bo(s,i);if(cn(a),a)return qd(r,o,Eg());let c=Pa(s,e,t,n);return hv(s,i)&&Ma(s,i,c.nextSibling),s&&($g(n)||zg(c))&&Bn(n)&&(oC(n),xv(c)),c}function US(){Py=HS}function $S(e,t,n,r,o){let i=t.consts,s=sn(i,r),a=Uo(t,e,8,"ng-container",s);s!==null&&Bu(a,s,!0);let c=sn(i,o);return Sd()&&uf(t,n,a,c,tf),a.mergedAttrs=Ir(a.mergedAttrs,a.attrs),t.queries!==null&&t.queries.elementStart(t,a),a}function Ly(e,t,n){let r=A(),o=ie(),i=e+K,s=o.firstCreatePass?$S(i,o,r,t,n):o.data[i];Un(s,!0);let a=jy(o,r,s,e);return r[i]=a,ba()&&Na(o,r,a,s),Pr(a,r),ma(s)&&(Aa(o,r,s),Wd(o,s,r)),n!=null&&Jd(r,s),Ly}function Vy(){let e=be(),t=ie();return xd()?Ad():(e=e.parent,Un(e,!1)),t.firstCreatePass&&(Fd(t,e),wd(e)&&t.queries.elementEnd(e)),Vy}function zS(e,t,n){return Ly(e,t,n),Vy(),zS}var jy=(e,t,n,r)=>(cn(!0),Tv(t[W],""));function GS(e,t,n,r){let o,i=t[We],s=!i||Or()||Bo(i,r)||Gn(n);if(cn(s),s)return Tv(t[W],"");let a=Pa(i,e,t,n),c=GI(i,r);return Ma(i,r,a),o=La(c,a),o}function WS(){jy=GS}function _j(){return A()}function gf(e,t,n){let r=A(),o=$n();if(Ye(r,o,t)){let i=ie(),s=ya();ef(i,s,r,e,t,r[W],n,!0)}return gf}var Tn=void 0;function qS(e){let t=Math.floor(Math.abs(e)),n=e.toString().replace(/^[^.]*\.?/,"").length;return t===1&&n===0?1:5}var YS=["en",[["a","p"],["AM","PM"],Tn],[["AM","PM"],Tn,Tn],[["S","M","T","W","T","F","S"],["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],["Su","Mo","Tu","We","Th","Fr","Sa"]],Tn,[["J","F","M","A","M","J","J","A","S","O","N","D"],["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],["January","February","March","April","May","June","July","August","September","October","November","December"]],Tn,[["B","A"],["BC","AD"],["Before Christ","Anno Domini"]],0,[6,0],["M/d/yy","MMM d, y","MMMM d, y","EEEE, MMMM d, y"],["h:mm a","h:mm:ss a","h:mm:ss a z","h:mm:ss a zzzz"],["{1}, {0}",Tn,"{1} 'at' {0}",Tn],[".",",",";","%","+","-","E","\xD7","\u2030","\u221E","NaN",":"],["#,##0.###","#,##0%","\xA4#,##0.00","#E0"],"USD","$","US Dollar",{},"ltr",qS],nu={};function Ze(e){let t=ZS(e),n=Cm(t);if(n)return n;let r=t.split("-")[0];if(n=Cm(r),n)return n;if(r==="en")return YS;throw new D(701,!1)}function Cm(e){return e in nu||(nu[e]=gt.ng&>.ng.common&>.ng.common.locales&>.ng.common.locales[e]),nu[e]}var se=function(e){return e[e.LocaleId=0]="LocaleId",e[e.DayPeriodsFormat=1]="DayPeriodsFormat",e[e.DayPeriodsStandalone=2]="DayPeriodsStandalone",e[e.DaysFormat=3]="DaysFormat",e[e.DaysStandalone=4]="DaysStandalone",e[e.MonthsFormat=5]="MonthsFormat",e[e.MonthsStandalone=6]="MonthsStandalone",e[e.Eras=7]="Eras",e[e.FirstDayOfWeek=8]="FirstDayOfWeek",e[e.WeekendRange=9]="WeekendRange",e[e.DateFormat=10]="DateFormat",e[e.TimeFormat=11]="TimeFormat",e[e.DateTimeFormat=12]="DateTimeFormat",e[e.NumberSymbols=13]="NumberSymbols",e[e.NumberFormats=14]="NumberFormats",e[e.CurrencyCode=15]="CurrencyCode",e[e.CurrencySymbol=16]="CurrencySymbol",e[e.CurrencyName=17]="CurrencyName",e[e.Currencies=18]="Currencies",e[e.Directionality=19]="Directionality",e[e.PluralCase=20]="PluralCase",e[e.ExtraData=21]="ExtraData",e}(se||{});function ZS(e){return e.toLowerCase().replace(/_/g,"-")}var ia="en-US";var KS=ia;function XS(e){typeof e=="string"&&(KS=e.toLowerCase().replace(/_/g,"-"))}function Im(e,t,n){return function r(o){if(o===Function)return n;let i=Bn(e)?_t(e.index,t):t;ka(i,5);let s=t[he],a=Mm(t,s,n,o),c=r.__ngNextListenerFn__;for(;c;)a=Mm(t,s,c,o)&&a,c=c.__ngNextListenerFn__;return a}}function Mm(e,t,n,r){let o=L(null);try{return G(6,t,n),n(r)!==!1}catch(i){return QS(e,i),!1}finally{G(7,t,n),L(o)}}function QS(e,t){let n=e[yt],r=n?n.get(Dt,null):null;r&&r.handleError(t)}function Tm(e,t,n,r,o,i){let s=t[n],a=t[C],l=a.data[n].outputs[r],u=s[l],f=a.firstCreatePass?Td(a):null,p=Md(t),d=u.subscribe(i),m=p.length;p.push(i,d),f&&f.push(o,e.index,m,-(m+1))}function dn(e,t,n,r){let o=A(),i=ie(),s=be();return By(i,o,o[W],s,e,t,r),dn}function JS(e,t,n,r){let o=e.cleanup;if(o!=null)for(let i=0;ic?a[c]:null}typeof s=="string"&&(i+=2)}return null}function By(e,t,n,r,o,i,s){let a=ma(r),l=e.firstCreatePass?Td(e):null,u=Md(t),f=!0;if(r.type&3||s){let p=ut(r,t),d=s?s(p):p,m=u.length,g=s?M=>s(lt(M[r.index])):r.index,b=null;if(!s&&a&&(b=JS(e,t,o,r.index)),b!==null){let M=b.__ngLastListenerFn__||b;M.__ngNextListenerFn__=i,b.__ngLastListenerFn__=i,f=!1}else{i=Im(r,t,i),OI(t,d,o,i);let M=n.listen(d,o,i);u.push(i,M),l&&l.push(o,g,m,m+1)}}else i=Im(r,t,i);if(f){let p=r.outputs?.[o],d=r.hostDirectiveOutputs?.[o];if(d&&d.length)for(let m=0;m(cn(!0),Mv(t[W],r));function nx(e,t,n,r,o){let i=t[We],s=!i||Or()||Gn(n)||Bo(i,o);return cn(s),s?Mv(t[W],r):Pa(i,e,t,n)}function rx(){Hy=nx}function ox(e){return Uy("",e,""),ox}function Uy(e,t,n){let r=A(),o=mS(r,e,t,n);return o!==Be&&$y(r,zt(),o),Uy}function ix(e,t,n,r,o){let i=A(),s=gS(i,e,t,n,r,o);return s!==Be&&$y(i,zt(),s),ix}function $y(e,t,n){let r=ug(t,e);y0(e[W],r,n)}function sx(e,t,n){Ug(t)&&(t=t());let r=A(),o=$n();if(Ye(r,o,t)){let i=ie(),s=ya();ef(i,s,r,e,t,r[W],n,!1)}return sx}function Ij(e,t){let n=Ug(e);return n&&e.set(t),n}function ax(e,t){let n=A(),r=ie(),o=be();return By(r,n,n[W],o,e,t),ax}function cx(e,t,n){let r=ie();if(r.firstCreatePass){let o=bt(e);id(n,r.data,r.blueprint,o,!0),id(t,r.data,r.blueprint,o,!1)}}function id(e,t,n,r,o){if(e=we(e),Array.isArray(e))for(let i=0;i>20;if(wr(e)||!e.multi){let d=new Ln(l,o,E),m=ou(c,t,o?u:u+p,f);m===-1?(vu(zs(a,s),i,c),ru(i,e,t.length),t.push(c),a.directiveStart++,a.directiveEnd++,o&&(a.providerIndexes+=1048576),n.push(d),s.push(d)):(n[m]=d,s[m]=d)}else{let d=ou(c,t,u+p,f),m=ou(c,t,u,u+p),g=d>=0&&n[d],b=m>=0&&n[m];if(o&&!b||!o&&!g){vu(zs(a,s),i,c);let M=dx(o?ux:lx,n.length,o,r,l);!o&&b&&(n[m].providerFactory=M),ru(i,e,t.length,0),t.push(c),a.directiveStart++,a.directiveEnd++,o&&(a.providerIndexes+=1048576),n.push(M),s.push(M)}else{let M=zy(n[o?m:d],l,!o&&r);ru(i,e,d>-1?d:m,M)}!o&&r&&b&&n[m].componentProviders++}}}function ru(e,t,n,r){let o=wr(t),i=Lw(t);if(o||i){let c=(i?we(t.useClass):t).prototype.ngOnDestroy;if(c){let l=e.destroyHooks||(e.destroyHooks=[]);if(!o&&t.multi){let u=l.indexOf(n);u===-1?l.push(n,[r,c]):l[u+1].push(r,c)}else l.push(n,c)}}}function zy(e,t,n){return n&&e.componentProviders++,e.multi.push(t)-1}function ou(e,t,n,r){for(let o=n;o{n.providersResolver=(r,o)=>cx(r,o?o(e):e,t)}}function Mj(e,t,n){let r=va()+e,o=A();return o[r]===Be?pf(o,r,n?t.call(n):t()):$T(o,r)}function Tj(e,t,n,r){return Wy(A(),va(),e,t,n,r)}function Gy(e,t){let n=e[t];return n===Be?void 0:n}function Wy(e,t,n,r,o,i){let s=t+n;return Ye(e,s,o)?pf(e,s+1,i?r.call(i,o):r(o)):Gy(e,s+1)}function fx(e,t,n,r,o,i,s){let a=t+n;return Dy(e,a,o,i)?pf(e,a+2,s?r.call(s,o,i):r(o,i)):Gy(e,a+2)}function Sj(e,t){let n=ie(),r,o=e+K;n.firstCreatePass?(r=hx(t,n.pipeRegistry),n.data[o]=r,r.onDestroy&&(n.destroyHooks??=[]).push(o,r.onDestroy)):r=n.data[o];let i=r.factory||(r.factory=An(r.type,!0)),s,a=Se(E);try{let c=$s(!1),l=i();return $s(c),Yw(n,A(),o,l),l}finally{Se(a)}}function hx(e,t){if(t)for(let n=t.length-1;n>=0;n--){let r=t[n];if(e===r.name)return r}}function xj(e,t,n){let r=e+K,o=A(),i=Cd(o,r);return qy(o,r)?Wy(o,va(),t,i.transform,n,i):i.transform(n)}function Aj(e,t,n,r){let o=e+K,i=A(),s=Cd(i,o);return qy(i,o)?fx(i,va(),t,s.transform,n,r,s):s.transform(n,r)}function qy(e,t){return e[C].data[t].pure}function Rj(e,t){return Fa(e,t)}var ko=class{full;major;minor;patch;constructor(t){this.full=t;let n=t.split(".");this.major=n[0],this.minor=n[1],this.patch=n.slice(2).join(".")}},_f=new ko("19.2.20"),ad=class{ngModuleFactory;componentFactories;constructor(t,n){this.ngModuleFactory=t,this.componentFactories=n}},Nj=(()=>{class e{compileModuleSync(n){return new Yu(n)}compileModuleAsync(n){return Promise.resolve(this.compileModuleSync(n))}compileModuleAndAllComponentsSync(n){let r=this.compileModuleSync(n),o=Km(n),i=Nv(o.declarations).reduce((s,a)=>{let c=on(a);return c&&s.push(new Sr(c)),s},[]);return new ad(r,i)}compileModuleAndAllComponentsAsync(n){return Promise.resolve(this.compileModuleAndAllComponentsSync(n))}clearCache(){}clearCacheFor(n){}getModuleId(n){}static \u0275fac=function(r){return new(r||e)};static \u0275prov=v({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var px=(()=>{class e{zone=h(x);changeDetectionScheduler=h(an);applicationRef=h(ye);_onMicrotaskEmptySubscription;initialize(){this._onMicrotaskEmptySubscription||(this._onMicrotaskEmptySubscription=this.zone.onMicrotaskEmpty.subscribe({next:()=>{this.changeDetectionScheduler.runningTick||this.zone.run(()=>{this.applicationRef.tick()})}}))}ngOnDestroy(){this._onMicrotaskEmptySubscription?.unsubscribe()}static \u0275fac=function(r){return new(r||e)};static \u0275prov=v({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),mx=new y("",{factory:()=>!1});function Yy({ngZoneFactory:e,ignoreChangesOutsideZone:t,scheduleInRootZone:n}){return e??=()=>new x(B(_({},Zy()),{scheduleInRootZone:n})),[{provide:x,useFactory:e},{provide:Nn,multi:!0,useFactory:()=>{let r=h(px,{optional:!0});return()=>r.initialize()}},{provide:Nn,multi:!0,useFactory:()=>{let r=h(gx);return()=>{r.initialize()}}},t===!0?{provide:Vg,useValue:!0}:[],{provide:jg,useValue:n??Lg}]}function Oj(e){let t=e?.ignoreChangesOutsideZone,n=e?.scheduleInRootZone,r=Yy({ngZoneFactory:()=>{let o=Zy(e);return o.scheduleInRootZone=n,o.shouldCoalesceEventChangeDetection&&It("NgZone_CoalesceEvent"),new x(o)},ignoreChangesOutsideZone:t,scheduleInRootZone:n});return Ar([{provide:mx,useValue:!0},{provide:_a,useValue:!1},r])}function Zy(e){return{enableLongStackTrace:!1,shouldCoalesceEventChangeDetection:e?.eventCoalescing??!1,shouldCoalesceRunChangeDetection:e?.runCoalescing??!1}}var gx=(()=>{class e{subscription=new Q;initialized=!1;zone=h(x);pendingTasks=h(ln);initialize(){if(this.initialized)return;this.initialized=!0;let n=null;!this.zone.isStable&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(n=this.pendingTasks.add()),this.zone.runOutsideAngular(()=>{this.subscription.add(this.zone.onStable.subscribe(()=>{x.assertNotInAngularZone(),queueMicrotask(()=>{n!==null&&!this.zone.hasPendingMacrotasks&&!this.zone.hasPendingMicrotasks&&(this.pendingTasks.remove(n),n=null)})}))}),this.subscription.add(this.zone.onUnstable.subscribe(()=>{x.assertInAngularZone(),n??=this.pendingTasks.add()}))}ngOnDestroy(){this.subscription.unsubscribe()}static \u0275fac=function(r){return new(r||e)};static \u0275prov=v({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var vx=(()=>{class e{appRef=h(ye);taskService=h(ln);ngZone=h(x);zonelessEnabled=h(_a);tracing=h(Vr,{optional:!0});disableScheduling=h(Vg,{optional:!0})??!1;zoneIsDefined=typeof Zone<"u"&&!!Zone.root.run;schedulerTickApplyArgs=[{data:{__scheduler_tick__:!0}}];subscriptions=new Q;angularZoneId=this.zoneIsDefined?this.ngZone._inner?.get(Ws):null;scheduleInRootZone=!this.zonelessEnabled&&this.zoneIsDefined&&(h(jg,{optional:!0})??!1);cancelScheduledCallback=null;useMicrotaskScheduler=!1;runningTick=!1;pendingRenderTaskId=null;constructor(){this.subscriptions.add(this.appRef.afterTick.subscribe(()=>{this.runningTick||this.cleanup()})),this.subscriptions.add(this.ngZone.onUnstable.subscribe(()=>{this.runningTick||this.cleanup()})),this.disableScheduling||=!this.zonelessEnabled&&(this.ngZone instanceof Du||!this.zoneIsDefined)}notify(n){if(!this.zonelessEnabled&&n===5)return;let r=!1;switch(n){case 0:{this.appRef.dirtyFlags|=2;break}case 3:case 2:case 4:case 5:case 1:{this.appRef.dirtyFlags|=4;break}case 6:{this.appRef.dirtyFlags|=2,r=!0;break}case 12:{this.appRef.dirtyFlags|=16,r=!0;break}case 13:{this.appRef.dirtyFlags|=2,r=!0;break}case 11:{r=!0;break}case 9:case 8:case 7:case 10:default:this.appRef.dirtyFlags|=8}if(this.appRef.tracingSnapshot=this.tracing?.snapshot(this.appRef.tracingSnapshot)??null,!this.shouldScheduleTick(r))return;let o=this.useMicrotaskScheduler?Gp:Bg;this.pendingRenderTaskId=this.taskService.add(),this.scheduleInRootZone?this.cancelScheduledCallback=Zone.root.run(()=>o(()=>this.tick())):this.cancelScheduledCallback=this.ngZone.runOutsideAngular(()=>o(()=>this.tick()))}shouldScheduleTick(n){return!(this.disableScheduling&&!n||this.appRef.destroyed||this.pendingRenderTaskId!==null||this.runningTick||this.appRef._runningTick||!this.zonelessEnabled&&this.zoneIsDefined&&Zone.current.get(Ws+this.angularZoneId))}tick(){if(this.runningTick||this.appRef.destroyed)return;if(this.appRef.dirtyFlags===0){this.cleanup();return}!this.zonelessEnabled&&this.appRef.dirtyFlags&7&&(this.appRef.dirtyFlags|=1);let n=this.taskService.add();try{this.ngZone.run(()=>{this.runningTick=!0,this.appRef._tick()},void 0,this.schedulerTickApplyArgs)}catch(r){throw this.taskService.remove(n),r}finally{this.cleanup()}this.useMicrotaskScheduler=!0,Gp(()=>{this.useMicrotaskScheduler=!1,this.taskService.remove(n)})}ngOnDestroy(){this.subscriptions.unsubscribe(),this.cleanup()}cleanup(){if(this.runningTick=!1,this.cancelScheduledCallback?.(),this.cancelScheduledCallback=null,this.pendingRenderTaskId!==null){let n=this.pendingRenderTaskId;this.pendingRenderTaskId=null,this.taskService.remove(n)}}static \u0275fac=function(r){return new(r||e)};static \u0275prov=v({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function yx(){return typeof $localize<"u"&&$localize.locale||ia}var Ua=new y("",{providedIn:"root",factory:()=>h(Ua,V.Optional|V.SkipSelf)||yx()});var cd=new y(""),bx=new y("");function Eo(e){return!e.moduleRef}function _x(e){let t=Eo(e)?e.r3Injector:e.moduleRef.injector,n=t.get(x);return n.run(()=>{Eo(e)?e.r3Injector.resolveInjectorInitializers():e.moduleRef.resolveInjectorInitializers();let r=t.get(Dt,null),o;if(n.runOutsideAngular(()=>{o=n.onError.subscribe({next:i=>{r.handleError(i)}})}),Eo(e)){let i=()=>t.destroy(),s=e.platformInjector.get(cd);s.add(i),t.onDestroy(()=>{o.unsubscribe(),s.delete(i)})}else{let i=()=>e.moduleRef.destroy(),s=e.platformInjector.get(cd);s.add(i),e.moduleRef.onDestroy(()=>{As(e.allPlatformModules,e.moduleRef),o.unsubscribe(),s.delete(i)})}return Ex(r,n,()=>{let i=t.get(Ty);return i.runInitializers(),i.donePromise.then(()=>{let s=t.get(Ua,ia);if(XS(s||ia),!t.get(bx,!0))return Eo(e)?t.get(ye):(e.allPlatformModules.push(e.moduleRef),e.moduleRef);if(Eo(e)){let c=t.get(ye);return e.rootComponent!==void 0&&c.bootstrap(e.rootComponent),c}else return Dx(e.moduleRef,e.allPlatformModules),e.moduleRef})})})}function Dx(e,t){let n=e.injector.get(ye);if(e._bootstrapComponents.length>0)e._bootstrapComponents.forEach(r=>n.bootstrap(r));else if(e.instance.ngDoBootstrap)e.instance.ngDoBootstrap(n);else throw new D(-403,!1);t.push(e)}function Ex(e,t,n){try{let r=n();return zo(r)?r.catch(o=>{throw t.runOutsideAngular(()=>e.handleError(o)),o}):r}catch(r){throw t.runOutsideAngular(()=>e.handleError(r)),r}}var Rs=null;function wx(e=[],t){return z.create({name:t,providers:[{provide:ua,useValue:"platform"},{provide:cd,useValue:new Set([()=>Rs=null])},...e]})}function Cx(e=[]){if(Rs)return Rs;let t=wx(e);return Rs=t,tS(),Ix(t),t}function Ix(e){let t=e.get(jd,null);fa(e,()=>{t?.forEach(n=>n())})}var $r=(()=>{class e{static __NG_ELEMENT_ID__=Mx}return e})();function Mx(e){return Tx(be(),A(),(e&16)===16)}function Tx(e,t,n){if(Bn(e)&&!n){let r=_t(e.index,t);return new No(r,r)}else if(e.type&175){let r=t[Ce];return new No(r,t)}return null}var ld=class{constructor(){}supports(t){return _y(t)}create(t){return new ud(t)}},Sx=(e,t)=>t,ud=class{length=0;collection;_linkedRecords=null;_unlinkedRecords=null;_previousItHead=null;_itHead=null;_itTail=null;_additionsHead=null;_additionsTail=null;_movesHead=null;_movesTail=null;_removalsHead=null;_removalsTail=null;_identityChangesHead=null;_identityChangesTail=null;_trackByFn;constructor(t){this._trackByFn=t||Sx}forEachItem(t){let n;for(n=this._itHead;n!==null;n=n._next)t(n)}forEachOperation(t){let n=this._itHead,r=this._removalsHead,o=0,i=null;for(;n||r;){let s=!r||n&&n.currentIndex{s=this._trackByFn(o,a),n===null||!Object.is(n.trackById,s)?(n=this._mismatch(n,a,s,o),r=!0):(r&&(n=this._verifyReinsertion(n,a,s,o)),Object.is(n.item,a)||this._addIdentityChange(n,a)),n=n._next,o++}),this.length=o;return this._truncate(n),this.collection=t,this.isDirty}get isDirty(){return this._additionsHead!==null||this._movesHead!==null||this._removalsHead!==null||this._identityChangesHead!==null}_reset(){if(this.isDirty){let t;for(t=this._previousItHead=this._itHead;t!==null;t=t._next)t._nextPrevious=t._next;for(t=this._additionsHead;t!==null;t=t._nextAdded)t.previousIndex=t.currentIndex;for(this._additionsHead=this._additionsTail=null,t=this._movesHead;t!==null;t=t._nextMoved)t.previousIndex=t.currentIndex;this._movesHead=this._movesTail=null,this._removalsHead=this._removalsTail=null,this._identityChangesHead=this._identityChangesTail=null}}_mismatch(t,n,r,o){let i;return t===null?i=this._itTail:(i=t._prev,this._remove(t)),t=this._unlinkedRecords===null?null:this._unlinkedRecords.get(r,null),t!==null?(Object.is(t.item,n)||this._addIdentityChange(t,n),this._reinsertAfter(t,i,o)):(t=this._linkedRecords===null?null:this._linkedRecords.get(r,o),t!==null?(Object.is(t.item,n)||this._addIdentityChange(t,n),this._moveAfter(t,i,o)):t=this._addAfter(new dd(n,r),i,o)),t}_verifyReinsertion(t,n,r,o){let i=this._unlinkedRecords===null?null:this._unlinkedRecords.get(r,null);return i!==null?t=this._reinsertAfter(i,t._prev,o):t.currentIndex!=o&&(t.currentIndex=o,this._addToMoves(t,o)),t}_truncate(t){for(;t!==null;){let n=t._next;this._addToRemovals(this._unlink(t)),t=n}this._unlinkedRecords!==null&&this._unlinkedRecords.clear(),this._additionsTail!==null&&(this._additionsTail._nextAdded=null),this._movesTail!==null&&(this._movesTail._nextMoved=null),this._itTail!==null&&(this._itTail._next=null),this._removalsTail!==null&&(this._removalsTail._nextRemoved=null),this._identityChangesTail!==null&&(this._identityChangesTail._nextIdentityChange=null)}_reinsertAfter(t,n,r){this._unlinkedRecords!==null&&this._unlinkedRecords.remove(t);let o=t._prevRemoved,i=t._nextRemoved;return o===null?this._removalsHead=i:o._nextRemoved=i,i===null?this._removalsTail=o:i._prevRemoved=o,this._insertAfter(t,n,r),this._addToMoves(t,r),t}_moveAfter(t,n,r){return this._unlink(t),this._insertAfter(t,n,r),this._addToMoves(t,r),t}_addAfter(t,n,r){return this._insertAfter(t,n,r),this._additionsTail===null?this._additionsTail=this._additionsHead=t:this._additionsTail=this._additionsTail._nextAdded=t,t}_insertAfter(t,n,r){let o=n===null?this._itHead:n._next;return t._next=o,t._prev=n,o===null?this._itTail=t:o._prev=t,n===null?this._itHead=t:n._next=t,this._linkedRecords===null&&(this._linkedRecords=new sa),this._linkedRecords.put(t),t.currentIndex=r,t}_remove(t){return this._addToRemovals(this._unlink(t))}_unlink(t){this._linkedRecords!==null&&this._linkedRecords.remove(t);let n=t._prev,r=t._next;return n===null?this._itHead=r:n._next=r,r===null?this._itTail=n:r._prev=n,t}_addToMoves(t,n){return t.previousIndex===n||(this._movesTail===null?this._movesTail=this._movesHead=t:this._movesTail=this._movesTail._nextMoved=t),t}_addToRemovals(t){return this._unlinkedRecords===null&&(this._unlinkedRecords=new sa),this._unlinkedRecords.put(t),t.currentIndex=null,t._nextRemoved=null,this._removalsTail===null?(this._removalsTail=this._removalsHead=t,t._prevRemoved=null):(t._prevRemoved=this._removalsTail,this._removalsTail=this._removalsTail._nextRemoved=t),t}_addIdentityChange(t,n){return t.item=n,this._identityChangesTail===null?this._identityChangesTail=this._identityChangesHead=t:this._identityChangesTail=this._identityChangesTail._nextIdentityChange=t,t}},dd=class{item;trackById;currentIndex=null;previousIndex=null;_nextPrevious=null;_prev=null;_next=null;_prevDup=null;_nextDup=null;_prevRemoved=null;_nextRemoved=null;_nextAdded=null;_nextMoved=null;_nextIdentityChange=null;constructor(t,n){this.item=t,this.trackById=n}},fd=class{_head=null;_tail=null;add(t){this._head===null?(this._head=this._tail=t,t._nextDup=null,t._prevDup=null):(this._tail._nextDup=t,t._prevDup=this._tail,t._nextDup=null,this._tail=t)}get(t,n){let r;for(r=this._head;r!==null;r=r._nextDup)if((n===null||n<=r.currentIndex)&&Object.is(r.trackById,t))return r;return null}remove(t){let n=t._prevDup,r=t._nextDup;return n===null?this._head=r:n._nextDup=r,r===null?this._tail=n:r._prevDup=n,this._head===null}},sa=class{map=new Map;put(t){let n=t.trackById,r=this.map.get(n);r||(r=new fd,this.map.set(n,r)),r.add(t)}get(t,n){let r=t,o=this.map.get(r);return o?o.get(t,n):null}remove(t){let n=t.trackById;return this.map.get(n).remove(t)&&this.map.delete(n),t}get isEmpty(){return this.map.size===0}clear(){this.map.clear()}};function Sm(e,t,n){let r=e.previousIndex;if(r===null)return r;let o=0;return n&&r{if(n&&n.key===o)this._maybeAddToChanges(n,r),this._appendAfter=n,n=n._next;else{let i=this._getOrCreateRecordForKey(o,r);n=this._insertBeforeOrAppend(n,i)}}),n){n._prev&&(n._prev._next=null),this._removalsHead=n;for(let r=n;r!==null;r=r._nextRemoved)r===this._mapHead&&(this._mapHead=null),this._records.delete(r.key),r._nextRemoved=r._next,r.previousValue=r.currentValue,r.currentValue=null,r._prev=null,r._next=null}return this._changesTail&&(this._changesTail._nextChanged=null),this._additionsTail&&(this._additionsTail._nextAdded=null),this.isDirty}_insertBeforeOrAppend(t,n){if(t){let r=t._prev;return n._next=t,n._prev=r,t._prev=n,r&&(r._next=n),t===this._mapHead&&(this._mapHead=n),this._appendAfter=t,t}return this._appendAfter?(this._appendAfter._next=n,n._prev=this._appendAfter):this._mapHead=n,this._appendAfter=n,null}_getOrCreateRecordForKey(t,n){if(this._records.has(t)){let o=this._records.get(t);this._maybeAddToChanges(o,n);let i=o._prev,s=o._next;return i&&(i._next=s),s&&(s._prev=i),o._next=null,o._prev=null,o}let r=new md(t);return this._records.set(t,r),r.currentValue=n,this._addToAdditions(r),r}_reset(){if(this.isDirty){let t;for(this._previousMapHead=this._mapHead,t=this._previousMapHead;t!==null;t=t._next)t._nextPrevious=t._next;for(t=this._changesHead;t!==null;t=t._nextChanged)t.previousValue=t.currentValue;for(t=this._additionsHead;t!=null;t=t._nextAdded)t.previousValue=t.currentValue;this._changesHead=this._changesTail=null,this._additionsHead=this._additionsTail=null,this._removalsHead=null}}_maybeAddToChanges(t,n){Object.is(n,t.currentValue)||(t.previousValue=t.currentValue,t.currentValue=n,this._addToChanges(t))}_addToAdditions(t){this._additionsHead===null?this._additionsHead=this._additionsTail=t:(this._additionsTail._nextAdded=t,this._additionsTail=t)}_addToChanges(t){this._changesHead===null?this._changesHead=this._changesTail=t:(this._changesTail._nextChanged=t,this._changesTail=t)}_forEach(t,n){t instanceof Map?t.forEach(n):Object.keys(t).forEach(r=>n(t[r],r))}},md=class{key;previousValue=null;currentValue=null;_nextPrevious=null;_next=null;_prev=null;_nextAdded=null;_nextRemoved=null;_nextChanged=null;constructor(t){this.key=t}};function xm(){return new $a([new ld])}var $a=(()=>{class e{factories;static \u0275prov=v({token:e,providedIn:"root",factory:xm});constructor(n){this.factories=n}static create(n,r){if(r!=null){let o=r.factories.slice();n=n.concat(o)}return new e(n)}static extend(n){return{provide:e,useFactory:r=>e.create(n,r||xm()),deps:[[e,new Wm,new la]]}}find(n){let r=this.factories.find(o=>o.supports(n));if(r!=null)return r;throw new D(901,!1)}}return e})();function Am(){return new Df([new hd])}var Df=(()=>{class e{static \u0275prov=v({token:e,providedIn:"root",factory:Am});factories;constructor(n){this.factories=n}static create(n,r){if(r){let o=r.factories.slice();n=n.concat(o)}return new e(n)}static extend(n){return{provide:e,useFactory:r=>e.create(n,r||Am()),deps:[[e,new Wm,new la]]}}find(n){let r=this.factories.find(o=>o.supports(n));if(r)return r;throw new D(901,!1)}}return e})();function Ky(e){let{rootComponent:t,appProviders:n,platformProviders:r,platformRef:o}=e;G(8);try{let i=o?.injector??Cx(r),s=[Yy({}),{provide:an,useExisting:vx},...n||[]],a=new ea({providers:s,parent:i,debugName:"",runEnvironmentInitializers:!1});return _x({r3Injector:a.injector,platformInjector:i,rootComponent:t})}catch(i){return Promise.reject(i)}finally{G(9)}}var Cs=new WeakSet,Rm="",Ns=[];function Nm(e){return e.get(rv,dI)}function Xy(){let e=[{provide:rv,useFactory:()=>{let t=!0;{let n=h(Le);t=!!window._ejsas?.[n]}return t&&It("NgEventReplay"),t}}];return e.push({provide:Nn,useValue:()=>{let t=h(ye),{injector:n}=t;if(!Cs.has(t)){let r=h(Kp);if(Nm(n)){kI();let o=n.get(Le),i=NI(o,(s,a,c)=>{s.nodeType===Node.ELEMENT_NODE&&(SI(s,a,c),xI(s,r))});t.onDestroy(i)}}},multi:!0},{provide:Go,useFactory:()=>{let t=h(ye),{injector:n}=t;return()=>{!Nm(n)||Cs.has(t)||(Cs.add(t),t.onDestroy(()=>{Cs.delete(t);{let r=n.get(Le);jl(r)}}),t.whenStable().then(()=>{if(t.destroyed)return;let r=n.get(RI);xx(r,n);let o=n.get(Kp);o.get(Rm)?.forEach(AI),o.delete(Rm);let i=r.instance;zI(n)?t.onDestroy(()=>i.cleanUp()):i.cleanUp()}))}},multi:!0}),e}var xx=(e,t)=>{let n=t.get(Le),r=window._ejsas[n],o=e.instance=new xp(new gs(r.c));for(let a of r.et)o.addEvent(a);for(let a of r.etc)o.addEvent(a);let i=Ap(n);o.replayEarlyEventInfos(i),jl(n);let s=new vs(a=>{Ax(t,a,a.currentTarget)});Sp(o,s)};function Ax(e,t,n){let r=(n&&n.getAttribute(Ia))??"";/d\d+/.test(r)?Rx(r,e,t,n):t.eventPhase===Vl.REPLAY&&cv(t,n)}function Rx(e,t,n,r){Ns.push({event:n,currentTarget:r}),cS(t,e,Nx)}function Nx(e){let t=[...Ns],n=new Set(e);Ns=[];for(let{event:r,currentTarget:o}of t){let i=o.getAttribute(Ia);n.has(i)?cv(r,o):Ns.push({event:r,currentTarget:o})}}var Om=!1;function Ox(){Om||(Om=!0,BI(),US(),rx(),WS(),WT(),yT(),GM(),H0())}function kx(e){return e.whenStable()}function Qy(){let e=[{provide:bs,useFactory:()=>{let t=!0;return t=!!h(Lr,{optional:!0})?.get(uv,null),t&&It("NgHydration"),t}},{provide:Nn,useValue:()=>{VM(!1),h(bs)&&(YI(Ea()),Ox())},multi:!0}];return e.push({provide:nv,useFactory:()=>h(bs)},{provide:Go,useFactory:()=>{if(h(bs)){let t=h(ye);return()=>{kx(t).then(()=>{t.destroyed||oy(t)})}}return()=>{}},multi:!0}),Ar(e)}function At(e){return typeof e=="boolean"?e:e!=null&&e!=="false"}function Fx(e,t=NaN){return!isNaN(parseFloat(e))&&!isNaN(Number(e))?Number(e):t}function Ke(e){return Sl(e)}function Yn(e,t){return Cl(e,t?.equal)}var gd=class{[ze];constructor(t){this[ze]=t}destroy(){this[ze].destroy()}};function Ef(e,t){!t?.injector&&ha(Ef);let n=t?.injector??h(z),r=t?.manualCleanup!==!0?n.get(kr):null,o,i=n.get(Ud,null,{optional:!0}),s=n.get(an);return i!==null&&!t?.forceRoot?(o=Vx(i.view,s,e),r instanceof Gs&&r._lView===i.view&&(r=null)):o=jx(e,n.get(Iy),s),o.injector=n,r!==null&&(o.onDestroyFn=r.onDestroy(()=>o.destroy())),new gd(o)}var Jy=B(_({},fr),{consumerIsAlwaysLive:!0,consumerAllowSignalWrites:!0,dirty:!0,hasRun:!1,cleanupFns:void 0,zone:null,kind:"effect",onDestroyFn:Ao,run(){if(this.dirty=!1,this.hasRun&&!cs(this))return;this.hasRun=!0;let e=r=>(this.cleanupFns??=[]).push(r),t=yo(this),n=Bs(!1);try{this.maybeCleanup(),this.fn(e)}finally{Bs(n),as(this,t)}},maybeCleanup(){if(this.cleanupFns?.length)try{for(;this.cleanupFns.length;)this.cleanupFns.pop()()}finally{this.cleanupFns=[]}}}),Px=B(_({},Jy),{consumerMarkedDirty(){this.scheduler.schedule(this),this.notifier.notify(12)},destroy(){bo(this),this.onDestroyFn(),this.maybeCleanup(),this.scheduler.remove(this)}}),Lx=B(_({},Jy),{consumerMarkedDirty(){this.view[S]|=8192,Nr(this.view),this.notifier.notify(13)},destroy(){bo(this),this.onDestroyFn(),this.maybeCleanup(),this.view[kn]?.delete(this)}});function Vx(e,t,n){let r=Object.create(Lx);return r.view=e,r.zone=typeof Zone<"u"?Zone.current:null,r.notifier=t,r.fn=n,e[kn]??=new Set,e[kn].add(r),r.consumerMarkedDirty(r),r}function jx(e,t,n){let r=Object.create(Px);return r.fn=e,r.scheduler=t,r.notifier=n,r.zone=typeof Zone<"u"?Zone.current:null,r.scheduler.schedule(r),r.notifier.notify(12),r}function za(e,t){let n=on(e),r=t.elementInjector||da();return new Sr(n).create(r,t.projectableNodes,t.hostElement,t.environmentInjector)}var k=new y("");var nb=null;function Xe(){return nb}function wf(e){nb??=e}var Wo=class{},Cf=(()=>{class e{historyGo(n){throw new Error("")}static \u0275fac=function(r){return new(r||e)};static \u0275prov=v({token:e,factory:()=>h(rb),providedIn:"platform"})}return e})();var rb=(()=>{class e extends Cf{_location;_history;_doc=h(k);constructor(){super(),this._location=window.location,this._history=window.history}getBaseHrefFromDOM(){return Xe().getBaseHref(this._doc)}onPopState(n){let r=Xe().getGlobalEventTarget(this._doc,"window");return r.addEventListener("popstate",n,!1),()=>r.removeEventListener("popstate",n)}onHashChange(n){let r=Xe().getGlobalEventTarget(this._doc,"window");return r.addEventListener("hashchange",n,!1),()=>r.removeEventListener("hashchange",n)}get href(){return this._location.href}get protocol(){return this._location.protocol}get hostname(){return this._location.hostname}get port(){return this._location.port}get pathname(){return this._location.pathname}get search(){return this._location.search}get hash(){return this._location.hash}set pathname(n){this._location.pathname=n}pushState(n,r,o){this._history.pushState(n,r,o)}replaceState(n,r,o){this._history.replaceState(n,r,o)}forward(){this._history.forward()}back(){this._history.back()}historyGo(n=0){this._history.go(n)}getState(){return this._history.state}static \u0275fac=function(r){return new(r||e)};static \u0275prov=v({token:e,factory:()=>new e,providedIn:"platform"})}return e})();function ob(e,t){return e?t?e.endsWith("/")?t.startsWith("/")?e+t.slice(1):e+t:t.startsWith("/")?e+t:`${e}/${t}`:e:t}function eb(e){let t=e.search(/#|\?|$/);return e[t-1]==="/"?e.slice(0,t-1)+e.slice(t):e}function fn(e){return e&&e[0]!=="?"?`?${e}`:e}var Ga=(()=>{class e{historyGo(n){throw new Error("")}static \u0275fac=function(r){return new(r||e)};static \u0275prov=v({token:e,factory:()=>h(sb),providedIn:"root"})}return e})(),ib=new y(""),sb=(()=>{class e extends Ga{_platformLocation;_baseHref;_removeListenerFns=[];constructor(n,r){super(),this._platformLocation=n,this._baseHref=r??this._platformLocation.getBaseHrefFromDOM()??h(k).location?.origin??""}ngOnDestroy(){for(;this._removeListenerFns.length;)this._removeListenerFns.pop()()}onPopState(n){this._removeListenerFns.push(this._platformLocation.onPopState(n),this._platformLocation.onHashChange(n))}getBaseHref(){return this._baseHref}prepareExternalUrl(n){return ob(this._baseHref,n)}path(n=!1){let r=this._platformLocation.pathname+fn(this._platformLocation.search),o=this._platformLocation.hash;return o&&n?`${r}${o}`:r}pushState(n,r,o,i){let s=this.prepareExternalUrl(o+fn(i));this._platformLocation.pushState(n,r,s)}replaceState(n,r,o,i){let s=this.prepareExternalUrl(o+fn(i));this._platformLocation.replaceState(n,r,s)}forward(){this._platformLocation.forward()}back(){this._platformLocation.back()}getState(){return this._platformLocation.getState()}historyGo(n=0){this._platformLocation.historyGo?.(n)}static \u0275fac=function(r){return new(r||e)(I(Cf),I(ib,8))};static \u0275prov=v({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),Wa=(()=>{class e{_subject=new T;_basePath;_locationStrategy;_urlChangeListeners=[];_urlChangeSubscription=null;constructor(n){this._locationStrategy=n;let r=this._locationStrategy.getBaseHref();this._basePath=Ux(eb(tb(r))),this._locationStrategy.onPopState(o=>{this._subject.next({url:this.path(!0),pop:!0,state:o.state,type:o.type})})}ngOnDestroy(){this._urlChangeSubscription?.unsubscribe(),this._urlChangeListeners=[]}path(n=!1){return this.normalize(this._locationStrategy.path(n))}getState(){return this._locationStrategy.getState()}isCurrentPathEqualTo(n,r=""){return this.path()==this.normalize(n+fn(r))}normalize(n){return e.stripTrailingSlash(Hx(this._basePath,tb(n)))}prepareExternalUrl(n){return n&&n[0]!=="/"&&(n="/"+n),this._locationStrategy.prepareExternalUrl(n)}go(n,r="",o=null){this._locationStrategy.pushState(o,"",n,r),this._notifyUrlChangeListeners(this.prepareExternalUrl(n+fn(r)),o)}replaceState(n,r="",o=null){this._locationStrategy.replaceState(o,"",n,r),this._notifyUrlChangeListeners(this.prepareExternalUrl(n+fn(r)),o)}forward(){this._locationStrategy.forward()}back(){this._locationStrategy.back()}historyGo(n=0){this._locationStrategy.historyGo?.(n)}onUrlChange(n){return this._urlChangeListeners.push(n),this._urlChangeSubscription??=this.subscribe(r=>{this._notifyUrlChangeListeners(r.url,r.state)}),()=>{let r=this._urlChangeListeners.indexOf(n);this._urlChangeListeners.splice(r,1),this._urlChangeListeners.length===0&&(this._urlChangeSubscription?.unsubscribe(),this._urlChangeSubscription=null)}}_notifyUrlChangeListeners(n="",r){this._urlChangeListeners.forEach(o=>o(n,r))}subscribe(n,r,o){return this._subject.subscribe({next:n,error:r??void 0,complete:o??void 0})}static normalizeQueryParams=fn;static joinWithSlash=ob;static stripTrailingSlash=eb;static \u0275fac=function(r){return new(r||e)(I(Ga))};static \u0275prov=v({token:e,factory:()=>Bx(),providedIn:"root"})}return e})();function Bx(){return new Wa(I(Ga))}function Hx(e,t){if(!e||!t.startsWith(e))return t;let n=t.substring(e.length);return n===""||["/",";","?","#"].includes(n[0])?n:t}function tb(e){return e.replace(/\/index.html$/,"")}function Ux(e){if(new RegExp("^(https?:)?//").test(e)){let[,n]=e.split(/\/\/[^\/]+/);return n}return e}var De=function(e){return e[e.Format=0]="Format",e[e.Standalone=1]="Standalone",e}(De||{}),q=function(e){return e[e.Narrow=0]="Narrow",e[e.Abbreviated=1]="Abbreviated",e[e.Wide=2]="Wide",e[e.Short=3]="Short",e}(q||{}),Oe=function(e){return e[e.Short=0]="Short",e[e.Medium=1]="Medium",e[e.Long=2]="Long",e[e.Full=3]="Full",e}(Oe||{}),Zt={Decimal:0,Group:1,List:2,PercentSign:3,PlusSign:4,MinusSign:5,Exponential:6,SuperscriptingExponent:7,PerMille:8,Infinity:9,NaN:10,TimeSeparator:11,CurrencyDecimal:12,CurrencyGroup:13};function fb(e){return Ze(e)[se.LocaleId]}function hb(e,t,n){let r=Ze(e),o=[r[se.DayPeriodsFormat],r[se.DayPeriodsStandalone]],i=Qe(o,t);return Qe(i,n)}function pb(e,t,n){let r=Ze(e),o=[r[se.DaysFormat],r[se.DaysStandalone]],i=Qe(o,t);return Qe(i,n)}function mb(e,t,n){let r=Ze(e),o=[r[se.MonthsFormat],r[se.MonthsStandalone]],i=Qe(o,t);return Qe(i,n)}function gb(e,t){let r=Ze(e)[se.Eras];return Qe(r,t)}function qo(e,t){let n=Ze(e);return Qe(n[se.DateFormat],t)}function Yo(e,t){let n=Ze(e);return Qe(n[se.TimeFormat],t)}function Zo(e,t){let r=Ze(e)[se.DateTimeFormat];return Qe(r,t)}function Ko(e,t){let n=Ze(e),r=n[se.NumberSymbols][t];if(typeof r>"u"){if(t===Zt.CurrencyDecimal)return n[se.NumberSymbols][Zt.Decimal];if(t===Zt.CurrencyGroup)return n[se.NumberSymbols][Zt.Group]}return r}function vb(e){if(!e[se.ExtraData])throw new Error(`Missing extra locale data for the locale "${e[se.LocaleId]}". Use "registerLocaleData" to load new data. See the "I18n guide" on angular.io to know more.`)}function yb(e){let t=Ze(e);return vb(t),(t[se.ExtraData][2]||[]).map(r=>typeof r=="string"?If(r):[If(r[0]),If(r[1])])}function bb(e,t,n){let r=Ze(e);vb(r);let o=[r[se.ExtraData][0],r[se.ExtraData][1]],i=Qe(o,t)||[];return Qe(i,n)||[]}function Qe(e,t){for(let n=t;n>-1;n--)if(typeof e[n]<"u")return e[n];throw new Error("Locale data API: locale data undefined")}function If(e){let[t,n]=e.split(":");return{hours:+t,minutes:+n}}var $x=/^(\d{4,})-?(\d\d)-?(\d\d)(?:T(\d\d)(?::?(\d\d)(?::?(\d\d)(?:\.(\d+))?)?)?(Z|([+-])(\d\d):?(\d\d))?)?$/,qa={},zx=/((?:[^BEGHLMOSWYZabcdhmswyz']+)|(?:'(?:[^']|'')*')|(?:G{1,5}|y{1,4}|Y{1,4}|M{1,5}|L{1,5}|w{1,2}|W{1}|d{1,2}|E{1,6}|c{1,6}|a{1,5}|b{1,5}|B{1,5}|h{1,2}|H{1,2}|m{1,2}|s{1,2}|S{1,3}|z{1,4}|Z{1,5}|O{1,4}))([\s\S]*)/;function _b(e,t,n,r){let o=Jx(e);t=Yt(n,t)||t;let s=[],a;for(;t;)if(a=zx.exec(t),a){s=s.concat(a.slice(1));let u=s.pop();if(!u)break;t=u}else{s.push(t);break}let c=o.getTimezoneOffset();r&&(c=Eb(r,c),o=Qx(o,r));let l="";return s.forEach(u=>{let f=Kx(u);l+=f?f(o,n,c):u==="''"?"'":u.replace(/(^'|'$)/g,"").replace(/''/g,"'")}),l}function Qa(e,t,n){let r=new Date(0);return r.setFullYear(e,t,n),r.setHours(0,0,0),r}function Yt(e,t){let n=fb(e);if(qa[n]??={},qa[n][t])return qa[n][t];let r="";switch(t){case"shortDate":r=qo(e,Oe.Short);break;case"mediumDate":r=qo(e,Oe.Medium);break;case"longDate":r=qo(e,Oe.Long);break;case"fullDate":r=qo(e,Oe.Full);break;case"shortTime":r=Yo(e,Oe.Short);break;case"mediumTime":r=Yo(e,Oe.Medium);break;case"longTime":r=Yo(e,Oe.Long);break;case"fullTime":r=Yo(e,Oe.Full);break;case"short":let o=Yt(e,"shortTime"),i=Yt(e,"shortDate");r=Ya(Zo(e,Oe.Short),[o,i]);break;case"medium":let s=Yt(e,"mediumTime"),a=Yt(e,"mediumDate");r=Ya(Zo(e,Oe.Medium),[s,a]);break;case"long":let c=Yt(e,"longTime"),l=Yt(e,"longDate");r=Ya(Zo(e,Oe.Long),[c,l]);break;case"full":let u=Yt(e,"fullTime"),f=Yt(e,"fullDate");r=Ya(Zo(e,Oe.Full),[u,f]);break}return r&&(qa[n][t]=r),r}function Ya(e,t){return t&&(e=e.replace(/\{([^}]+)}/g,function(n,r){return t!=null&&r in t?t[r]:n})),e}function ft(e,t,n="-",r,o){let i="";(e<0||o&&e<=0)&&(o?e=-e+1:(e=-e,i=n));let s=String(e);for(;s.length0||a>-n)&&(a+=n),e===3)a===0&&n===-12&&(a=12);else if(e===6)return Gx(a,t);let c=Ko(s,Zt.MinusSign);return ft(a,t,c,r,o)}}function Wx(e,t){switch(e){case 0:return t.getFullYear();case 1:return t.getMonth();case 2:return t.getDate();case 3:return t.getHours();case 4:return t.getMinutes();case 5:return t.getSeconds();case 6:return t.getMilliseconds();case 7:return t.getDay();default:throw new Error(`Unknown DateType value "${e}".`)}}function J(e,t,n=De.Format,r=!1){return function(o,i){return qx(o,i,e,t,n,r)}}function qx(e,t,n,r,o,i){switch(n){case 2:return mb(t,o,r)[e.getMonth()];case 1:return pb(t,o,r)[e.getDay()];case 0:let s=e.getHours(),a=e.getMinutes();if(i){let l=yb(t),u=bb(t,o,r),f=l.findIndex(p=>{if(Array.isArray(p)){let[d,m]=p,g=s>=d.hours&&a>=d.minutes,b=s0?Math.floor(o/60):Math.ceil(o/60);switch(e){case 0:return(o>=0?"+":"")+ft(s,2,i)+ft(Math.abs(o%60),2,i);case 1:return"GMT"+(o>=0?"+":"")+ft(s,1,i);case 2:return"GMT"+(o>=0?"+":"")+ft(s,2,i)+":"+ft(Math.abs(o%60),2,i);case 3:return r===0?"Z":(o>=0?"+":"")+ft(s,2,i)+":"+ft(Math.abs(o%60),2,i);default:throw new Error(`Unknown zone width "${e}"`)}}}var Yx=0,Xa=4;function Zx(e){let t=Qa(e,Yx,1).getDay();return Qa(e,0,1+(t<=Xa?Xa:Xa+7)-t)}function Db(e){let t=e.getDay(),n=t===0?-3:Xa-t;return Qa(e.getFullYear(),e.getMonth(),e.getDate()+n)}function Mf(e,t=!1){return function(n,r){let o;if(t){let i=new Date(n.getFullYear(),n.getMonth(),1).getDay()-1,s=n.getDate();o=1+Math.floor((s+i)/7)}else{let i=Db(n),s=Zx(i.getFullYear()),a=i.getTime()-s.getTime();o=1+Math.round(a/6048e5)}return ft(o,e,Ko(r,Zt.MinusSign))}}function Ka(e,t=!1){return function(n,r){let i=Db(n).getFullYear();return ft(i,e,Ko(r,Zt.MinusSign),t)}}var Tf={};function Kx(e){if(Tf[e])return Tf[e];let t;switch(e){case"G":case"GG":case"GGG":t=J(3,q.Abbreviated);break;case"GGGG":t=J(3,q.Wide);break;case"GGGGG":t=J(3,q.Narrow);break;case"y":t=le(0,1,0,!1,!0);break;case"yy":t=le(0,2,0,!0,!0);break;case"yyy":t=le(0,3,0,!1,!0);break;case"yyyy":t=le(0,4,0,!1,!0);break;case"Y":t=Ka(1);break;case"YY":t=Ka(2,!0);break;case"YYY":t=Ka(3);break;case"YYYY":t=Ka(4);break;case"M":case"L":t=le(1,1,1);break;case"MM":case"LL":t=le(1,2,1);break;case"MMM":t=J(2,q.Abbreviated);break;case"MMMM":t=J(2,q.Wide);break;case"MMMMM":t=J(2,q.Narrow);break;case"LLL":t=J(2,q.Abbreviated,De.Standalone);break;case"LLLL":t=J(2,q.Wide,De.Standalone);break;case"LLLLL":t=J(2,q.Narrow,De.Standalone);break;case"w":t=Mf(1);break;case"ww":t=Mf(2);break;case"W":t=Mf(1,!0);break;case"d":t=le(2,1);break;case"dd":t=le(2,2);break;case"c":case"cc":t=le(7,1);break;case"ccc":t=J(1,q.Abbreviated,De.Standalone);break;case"cccc":t=J(1,q.Wide,De.Standalone);break;case"ccccc":t=J(1,q.Narrow,De.Standalone);break;case"cccccc":t=J(1,q.Short,De.Standalone);break;case"E":case"EE":case"EEE":t=J(1,q.Abbreviated);break;case"EEEE":t=J(1,q.Wide);break;case"EEEEE":t=J(1,q.Narrow);break;case"EEEEEE":t=J(1,q.Short);break;case"a":case"aa":case"aaa":t=J(0,q.Abbreviated);break;case"aaaa":t=J(0,q.Wide);break;case"aaaaa":t=J(0,q.Narrow);break;case"b":case"bb":case"bbb":t=J(0,q.Abbreviated,De.Standalone,!0);break;case"bbbb":t=J(0,q.Wide,De.Standalone,!0);break;case"bbbbb":t=J(0,q.Narrow,De.Standalone,!0);break;case"B":case"BB":case"BBB":t=J(0,q.Abbreviated,De.Format,!0);break;case"BBBB":t=J(0,q.Wide,De.Format,!0);break;case"BBBBB":t=J(0,q.Narrow,De.Format,!0);break;case"h":t=le(3,1,-12);break;case"hh":t=le(3,2,-12);break;case"H":t=le(3,1);break;case"HH":t=le(3,2);break;case"m":t=le(4,1);break;case"mm":t=le(4,2);break;case"s":t=le(5,1);break;case"ss":t=le(5,2);break;case"S":t=le(6,1);break;case"SS":t=le(6,2);break;case"SSS":t=le(6,3);break;case"Z":case"ZZ":case"ZZZ":t=Za(0);break;case"ZZZZZ":t=Za(3);break;case"O":case"OO":case"OOO":case"z":case"zz":case"zzz":t=Za(1);break;case"OOOO":case"ZZZZ":case"zzzz":t=Za(2);break;default:return null}return Tf[e]=t,t}function Eb(e,t){e=e.replace(/:/g,"");let n=Date.parse("Jan 01, 1970 00:00:00 "+e)/6e4;return isNaN(n)?t:n}function Xx(e,t){return e=new Date(e.getTime()),e.setMinutes(e.getMinutes()+t),e}function Qx(e,t,n){let o=e.getTimezoneOffset(),i=Eb(t,o);return Xx(e,-1*(i-o))}function Jx(e){if(ab(e))return e;if(typeof e=="number"&&!isNaN(e))return new Date(e);if(typeof e=="string"){if(e=e.trim(),/^(\d{4}(-\d{1,2}(-\d{1,2})?)?)$/.test(e)){let[o,i=1,s=1]=e.split("-").map(a=>+a);return Qa(o,i-1,s)}let n=parseFloat(e);if(!isNaN(e-n))return new Date(n);let r;if(r=e.match($x))return eA(r)}let t=new Date(e);if(!ab(t))throw new Error(`Unable to convert "${e}" into a date`);return t}function eA(e){let t=new Date(0),n=0,r=0,o=e[8]?t.setUTCFullYear:t.setFullYear,i=e[8]?t.setUTCHours:t.setHours;e[9]&&(n=Number(e[9]+e[10]),r=Number(e[9]+e[11])),o.call(t,Number(e[1]),Number(e[2])-1,Number(e[3]));let s=Number(e[4]||0)-n,a=Number(e[5]||0)-r,c=Number(e[6]||0),l=Math.floor(parseFloat("0."+(e[7]||0))*1e3);return i.call(t,s,a,c,l),t}function ab(e){return e instanceof Date&&!isNaN(e.valueOf())}var Sf=/\s+/,cb=[],tA=(()=>{class e{_ngEl;_renderer;initialClasses=cb;rawClass;stateMap=new Map;constructor(n,r){this._ngEl=n,this._renderer=r}set klass(n){this.initialClasses=n!=null?n.trim().split(Sf):cb}set ngClass(n){this.rawClass=typeof n=="string"?n.trim().split(Sf):n}ngDoCheck(){for(let r of this.initialClasses)this._updateState(r,!0);let n=this.rawClass;if(Array.isArray(n)||n instanceof Set)for(let r of n)this._updateState(r,!0);else if(n!=null)for(let r of Object.keys(n))this._updateState(r,!!n[r]);this._applyStateDiff()}_updateState(n,r){let o=this.stateMap.get(n);o!==void 0?(o.enabled!==r&&(o.changed=!0,o.enabled=r),o.touched=!0):this.stateMap.set(n,{enabled:r,changed:!0,touched:!0})}_applyStateDiff(){for(let n of this.stateMap){let r=n[0],o=n[1];o.changed?(this._toggleClass(r,o.enabled),o.changed=!1):o.touched||(o.enabled&&this._toggleClass(r,!1),this.stateMap.delete(r)),o.touched=!1}}_toggleClass(n,r){n=n.trim(),n.length>0&&n.split(Sf).forEach(o=>{r?this._renderer.addClass(this._ngEl.nativeElement,o):this._renderer.removeClass(this._ngEl.nativeElement,o)})}static \u0275fac=function(r){return new(r||e)(E(X),E(dt))};static \u0275dir=j({type:e,selectors:[["","ngClass",""]],inputs:{klass:[0,"class","klass"],ngClass:"ngClass"}})}return e})();var Ja=class{$implicit;ngForOf;index;count;constructor(t,n,r,o){this.$implicit=t,this.ngForOf=n,this.index=r,this.count=o}get first(){return this.index===0}get last(){return this.index===this.count-1}get even(){return this.index%2===0}get odd(){return!this.even}},wb=(()=>{class e{_viewContainer;_template;_differs;set ngForOf(n){this._ngForOf=n,this._ngForOfDirty=!0}set ngForTrackBy(n){this._trackByFn=n}get ngForTrackBy(){return this._trackByFn}_ngForOf=null;_ngForOfDirty=!0;_differ=null;_trackByFn;constructor(n,r,o){this._viewContainer=n,this._template=r,this._differs=o}set ngForTemplate(n){n&&(this._template=n)}ngDoCheck(){if(this._ngForOfDirty){this._ngForOfDirty=!1;let n=this._ngForOf;!this._differ&&n&&(this._differ=this._differs.find(n).create(this.ngForTrackBy))}if(this._differ){let n=this._differ.diff(this._ngForOf);n&&this._applyChanges(n)}}_applyChanges(n){let r=this._viewContainer;n.forEachOperation((o,i,s)=>{if(o.previousIndex==null)r.createEmbeddedView(this._template,new Ja(o.item,this._ngForOf,-1,-1),s===null?void 0:s);else if(s==null)r.remove(i===null?void 0:i);else if(i!==null){let a=r.get(i);r.move(a,s),lb(a,o)}});for(let o=0,i=r.length;o{let i=r.get(o.currentIndex);lb(i,o)})}static ngTemplateContextGuard(n,r){return!0}static \u0275fac=function(r){return new(r||e)(E(St),E(qe),E($a))};static \u0275dir=j({type:e,selectors:[["","ngFor","","ngForOf",""]],inputs:{ngForOf:"ngForOf",ngForTrackBy:"ngForTrackBy",ngForTemplate:"ngForTemplate"}})}return e})();function lb(e,t){e.context.$implicit=t.item}var nA=(()=>{class e{_viewContainer;_context=new ec;_thenTemplateRef=null;_elseTemplateRef=null;_thenViewRef=null;_elseViewRef=null;constructor(n,r){this._viewContainer=n,this._thenTemplateRef=r}set ngIf(n){this._context.$implicit=this._context.ngIf=n,this._updateView()}set ngIfThen(n){ub(n,!1),this._thenTemplateRef=n,this._thenViewRef=null,this._updateView()}set ngIfElse(n){ub(n,!1),this._elseTemplateRef=n,this._elseViewRef=null,this._updateView()}_updateView(){this._context.$implicit?this._thenViewRef||(this._viewContainer.clear(),this._elseViewRef=null,this._thenTemplateRef&&(this._thenViewRef=this._viewContainer.createEmbeddedView(this._thenTemplateRef,this._context))):this._elseViewRef||(this._viewContainer.clear(),this._thenViewRef=null,this._elseTemplateRef&&(this._elseViewRef=this._viewContainer.createEmbeddedView(this._elseTemplateRef,this._context)))}static ngIfUseIfTypeGuard;static ngTemplateGuard_ngIf;static ngTemplateContextGuard(n,r){return!0}static \u0275fac=function(r){return new(r||e)(E(St),E(qe))};static \u0275dir=j({type:e,selectors:[["","ngIf",""]],inputs:{ngIf:"ngIf",ngIfThen:"ngIfThen",ngIfElse:"ngIfElse"}})}return e})(),ec=class{$implicit=null;ngIf=null};function ub(e,t){if(e&&!e.createEmbeddedView)throw new D(2020,!1)}function rA(e,t){return new D(2100,!1)}var oA="mediumDate",Cb=new y(""),Ib=new y(""),iA=(()=>{class e{locale;defaultTimezone;defaultOptions;constructor(n,r,o){this.locale=n,this.defaultTimezone=r,this.defaultOptions=o}transform(n,r,o,i){if(n==null||n===""||n!==n)return null;try{let s=r??this.defaultOptions?.dateFormat??oA,a=o??this.defaultOptions?.timezone??this.defaultTimezone??void 0;return _b(n,s,i||this.locale,a)}catch(s){throw rA(e,s.message)}}static \u0275fac=function(r){return new(r||e)(E(Ua,16),E(Cb,24),E(Ib,24))};static \u0275pipe=Ba({name:"date",type:e,pure:!0})}return e})();var sA=(()=>{class e{transform(n){return JSON.stringify(n,null,2)}static \u0275fac=function(r){return new(r||e)};static \u0275pipe=Ba({name:"json",type:e,pure:!1})}return e})();function aA(e,t){return{key:e,value:t}}var cA=(()=>{class e{differs;constructor(n){this.differs=n}differ;keyValues=[];compareFn=db;transform(n,r=db){if(!n||!(n instanceof Map)&&typeof n!="object")return null;this.differ??=this.differs.find(n).create();let o=this.differ.diff(n),i=r!==this.compareFn;return o&&(this.keyValues=[],o.forEachItem(s=>{this.keyValues.push(aA(s.key,s.currentValue))})),(o||i)&&(r&&this.keyValues.sort(r),this.compareFn=r),this.keyValues}static \u0275fac=function(r){return new(r||e)(E(Df,16))};static \u0275pipe=Ba({name:"keyvalue",type:e,pure:!1})}return e})();function db(e,t){let n=e.key,r=t.key;if(n===r)return 0;if(n==null)return 1;if(r==null)return-1;if(typeof n=="string"&&typeof r=="string")return n{class e{static \u0275fac=function(r){return new(r||e)};static \u0275mod=U({type:e});static \u0275inj=H({})}return e})();function Xo(e,t){t=encodeURIComponent(t);for(let n of e.split(";")){let r=n.indexOf("="),[o,i]=r==-1?[n,""]:[n.slice(0,r),n.slice(r+1)];if(o.trim()===t)return decodeURIComponent(i)}return null}var tc="browser",Tb="server";function xf(e){return e===tc}function nc(e){return e===Tb}var Zn=class{};var ic=new y(""),Of=(()=>{class e{_zone;_plugins;_eventNameToPlugin=new Map;constructor(n,r){this._zone=r,n.forEach(o=>{o.manager=this}),this._plugins=n.slice().reverse()}addEventListener(n,r,o,i){return this._findPluginFor(r).addEventListener(n,r,o,i)}getZone(){return this._zone}_findPluginFor(n){let r=this._eventNameToPlugin.get(n);if(r)return r;if(r=this._plugins.find(i=>i.supports(n)),!r)throw new D(5101,!1);return this._eventNameToPlugin.set(n,r),r}static \u0275fac=function(r){return new(r||e)(I(ic),I(x))};static \u0275prov=v({token:e,factory:e.\u0275fac})}return e})(),Qo=class{_doc;constructor(t){this._doc=t}manager},rc="ng-app-id";function Sb(e){for(let t of e)t.remove()}function xb(e,t){let n=t.createElement("style");return n.textContent=e,n}function lA(e,t,n,r){let o=e.head?.querySelectorAll(`style[${rc}="${t}"],link[${rc}="${t}"]`);if(o)for(let i of o)i.removeAttribute(rc),i instanceof HTMLLinkElement?r.set(i.href.slice(i.href.lastIndexOf("/")+1),{usage:0,elements:[i]}):i.textContent&&n.set(i.textContent,{usage:0,elements:[i]})}function Rf(e,t){let n=t.createElement("link");return n.setAttribute("rel","stylesheet"),n.setAttribute("href",e),n}var kf=(()=>{class e{doc;appId;nonce;inline=new Map;external=new Map;hosts=new Set;isServer;constructor(n,r,o,i={}){this.doc=n,this.appId=r,this.nonce=o,this.isServer=nc(i),lA(n,r,this.inline,this.external),this.hosts.add(n.head)}addStyles(n,r){for(let o of n)this.addUsage(o,this.inline,xb);r?.forEach(o=>this.addUsage(o,this.external,Rf))}removeStyles(n,r){for(let o of n)this.removeUsage(o,this.inline);r?.forEach(o=>this.removeUsage(o,this.external))}addUsage(n,r,o){let i=r.get(n);i?i.usage++:r.set(n,{usage:1,elements:[...this.hosts].map(s=>this.addElement(s,o(n,this.doc)))})}removeUsage(n,r){let o=r.get(n);o&&(o.usage--,o.usage<=0&&(Sb(o.elements),r.delete(n)))}ngOnDestroy(){for(let[,{elements:n}]of[...this.inline,...this.external])Sb(n);this.hosts.clear()}addHost(n){this.hosts.add(n);for(let[r,{elements:o}]of this.inline)o.push(this.addElement(n,xb(r,this.doc)));for(let[r,{elements:o}]of this.external)o.push(this.addElement(n,Rf(r,this.doc)))}removeHost(n){this.hosts.delete(n)}addElement(n,r){return this.nonce&&r.setAttribute("nonce",this.nonce),this.isServer&&r.setAttribute(rc,this.appId),n.appendChild(r)}static \u0275fac=function(r){return new(r||e)(I(k),I(Le),I(Vo,8),I(zn))};static \u0275prov=v({token:e,factory:e.\u0275fac})}return e})(),Af={svg:"http://www.w3.org/2000/svg",xhtml:"http://www.w3.org/1999/xhtml",xlink:"http://www.w3.org/1999/xlink",xml:"http://www.w3.org/XML/1998/namespace",xmlns:"http://www.w3.org/2000/xmlns/",math:"http://www.w3.org/1998/Math/MathML"},Ff=/%COMP%/g;var Rb="%COMP%",uA=`_nghost-${Rb}`,dA=`_ngcontent-${Rb}`,fA=!0,hA=new y("",{providedIn:"root",factory:()=>fA});function pA(e){return dA.replace(Ff,e)}function mA(e){return uA.replace(Ff,e)}function Nb(e,t){return t.map(n=>n.replace(Ff,e))}var Pf=(()=>{class e{eventManager;sharedStylesHost;appId;removeStylesOnCompDestroy;doc;platformId;ngZone;nonce;tracingService;rendererByCompId=new Map;defaultRenderer;platformIsServer;constructor(n,r,o,i,s,a,c,l=null,u=null){this.eventManager=n,this.sharedStylesHost=r,this.appId=o,this.removeStylesOnCompDestroy=i,this.doc=s,this.platformId=a,this.ngZone=c,this.nonce=l,this.tracingService=u,this.platformIsServer=nc(a),this.defaultRenderer=new Jo(n,s,c,this.platformIsServer,this.tracingService)}createRenderer(n,r){if(!n||!r)return this.defaultRenderer;this.platformIsServer&&r.encapsulation===Et.ShadowDom&&(r=B(_({},r),{encapsulation:Et.Emulated}));let o=this.getOrCreateRenderer(n,r);return o instanceof oc?o.applyToHost(n):o instanceof ei&&o.applyStyles(),o}getOrCreateRenderer(n,r){let o=this.rendererByCompId,i=o.get(r.id);if(!i){let s=this.doc,a=this.ngZone,c=this.eventManager,l=this.sharedStylesHost,u=this.removeStylesOnCompDestroy,f=this.platformIsServer,p=this.tracingService;switch(r.encapsulation){case Et.Emulated:i=new oc(c,l,r,this.appId,u,s,a,f,p);break;case Et.ShadowDom:return new Nf(c,l,n,r,s,a,this.nonce,f,p);default:i=new ei(c,l,r,u,s,a,f,p);break}o.set(r.id,i)}return i}ngOnDestroy(){this.rendererByCompId.clear()}componentReplaced(n){this.rendererByCompId.delete(n)}static \u0275fac=function(r){return new(r||e)(I(Of),I(kf),I(Le),I(hA),I(k),I(zn),I(x),I(Vo),I(Vr,8))};static \u0275prov=v({token:e,factory:e.\u0275fac})}return e})(),Jo=class{eventManager;doc;ngZone;platformIsServer;tracingService;data=Object.create(null);throwOnSyntheticProps=!0;constructor(t,n,r,o,i){this.eventManager=t,this.doc=n,this.ngZone=r,this.platformIsServer=o,this.tracingService=i}destroy(){}destroyNode=null;createElement(t,n){return n?this.doc.createElementNS(Af[n]||n,t):this.doc.createElement(t)}createComment(t){return this.doc.createComment(t)}createText(t){return this.doc.createTextNode(t)}appendChild(t,n){(Ab(t)?t.content:t).appendChild(n)}insertBefore(t,n,r){t&&(Ab(t)?t.content:t).insertBefore(n,r)}removeChild(t,n){n.remove()}selectRootElement(t,n){let r=typeof t=="string"?this.doc.querySelector(t):t;if(!r)throw new D(-5104,!1);return n||(r.textContent=""),r}parentNode(t){return t.parentNode}nextSibling(t){return t.nextSibling}setAttribute(t,n,r,o){if(o){n=o+":"+n;let i=Af[o];i?t.setAttributeNS(i,n,r):t.setAttribute(n,r)}else t.setAttribute(n,r)}removeAttribute(t,n,r){if(r){let o=Af[r];o?t.removeAttributeNS(o,n):t.removeAttribute(`${r}:${n}`)}else t.removeAttribute(n)}addClass(t,n){t.classList.add(n)}removeClass(t,n){t.classList.remove(n)}setStyle(t,n,r,o){o&(Ht.DashCase|Ht.Important)?t.style.setProperty(n,r,o&Ht.Important?"important":""):t.style[n]=r}removeStyle(t,n,r){r&Ht.DashCase?t.style.removeProperty(n):t.style[n]=""}setProperty(t,n,r){t!=null&&(t[n]=r)}setValue(t,n){t.nodeValue=n}listen(t,n,r,o){if(typeof t=="string"&&(t=Xe().getGlobalEventTarget(this.doc,t),!t))throw new D(5102,!1);let i=this.decoratePreventDefault(r);return this.tracingService?.wrapEventListener&&(i=this.tracingService.wrapEventListener(t,n,i)),this.eventManager.addEventListener(t,n,i,o)}decoratePreventDefault(t){return n=>{if(n==="__ngUnwrap__")return t;(this.platformIsServer?this.ngZone.runGuarded(()=>t(n)):t(n))===!1&&n.preventDefault()}}};function Ab(e){return e.tagName==="TEMPLATE"&&e.content!==void 0}var Nf=class extends Jo{sharedStylesHost;hostEl;shadowRoot;constructor(t,n,r,o,i,s,a,c,l){super(t,i,s,c,l),this.sharedStylesHost=n,this.hostEl=r,this.shadowRoot=r.attachShadow({mode:"open"}),this.sharedStylesHost.addHost(this.shadowRoot);let u=o.styles;u=Nb(o.id,u);for(let p of u){let d=document.createElement("style");a&&d.setAttribute("nonce",a),d.textContent=p,this.shadowRoot.appendChild(d)}let f=o.getExternalStyles?.();if(f)for(let p of f){let d=Rf(p,i);a&&d.setAttribute("nonce",a),this.shadowRoot.appendChild(d)}}nodeOrShadowRoot(t){return t===this.hostEl?this.shadowRoot:t}appendChild(t,n){return super.appendChild(this.nodeOrShadowRoot(t),n)}insertBefore(t,n,r){return super.insertBefore(this.nodeOrShadowRoot(t),n,r)}removeChild(t,n){return super.removeChild(null,n)}parentNode(t){return this.nodeOrShadowRoot(super.parentNode(this.nodeOrShadowRoot(t)))}destroy(){this.sharedStylesHost.removeHost(this.shadowRoot)}},ei=class extends Jo{sharedStylesHost;removeStylesOnCompDestroy;styles;styleUrls;constructor(t,n,r,o,i,s,a,c,l){super(t,i,s,a,c),this.sharedStylesHost=n,this.removeStylesOnCompDestroy=o;let u=r.styles;this.styles=l?Nb(l,u):u,this.styleUrls=r.getExternalStyles?.(l)}applyStyles(){this.sharedStylesHost.addStyles(this.styles,this.styleUrls)}destroy(){this.removeStylesOnCompDestroy&&this.sharedStylesHost.removeStyles(this.styles,this.styleUrls)}},oc=class extends ei{contentAttr;hostAttr;constructor(t,n,r,o,i,s,a,c,l){let u=o+"-"+r.id;super(t,n,r,i,s,a,c,l,u),this.contentAttr=pA(u),this.hostAttr=mA(u)}applyToHost(t){this.applyStyles(),this.setAttribute(t,this.hostAttr,"")}createElement(t,n){let r=super.createElement(t,n);return super.setAttribute(r,this.contentAttr,""),r}};var sc=class e extends Wo{supportsDOMEvents=!0;static makeCurrent(){wf(new e)}onAndCancel(t,n,r,o){return t.addEventListener(n,r,o),()=>{t.removeEventListener(n,r,o)}}dispatchEvent(t,n){t.dispatchEvent(n)}remove(t){t.remove()}createElement(t,n){return n=n||this.getDefaultDocument(),n.createElement(t)}createHtmlDocument(){return document.implementation.createHTMLDocument("fakeTitle")}getDefaultDocument(){return document}isElementNode(t){return t.nodeType===Node.ELEMENT_NODE}isShadowRoot(t){return t instanceof DocumentFragment}getGlobalEventTarget(t,n){return n==="window"?window:n==="document"?t:n==="body"?t.body:null}getBaseHref(t){let n=gA();return n==null?null:vA(n)}resetBaseElement(){ti=null}getUserAgent(){return window.navigator.userAgent}getCookie(t){return Xo(document.cookie,t)}},ti=null;function gA(){return ti=ti||document.head.querySelector("base"),ti?ti.getAttribute("href"):null}function vA(e){return new URL(e,document.baseURI).pathname}var yA=(()=>{class e{build(){return new XMLHttpRequest}static \u0275fac=function(r){return new(r||e)};static \u0275prov=v({token:e,factory:e.\u0275fac})}return e})(),kb=(()=>{class e extends Qo{constructor(n){super(n)}supports(n){return!0}addEventListener(n,r,o,i){return n.addEventListener(r,o,i),()=>this.removeEventListener(n,r,o,i)}removeEventListener(n,r,o,i){return n.removeEventListener(r,o,i)}static \u0275fac=function(r){return new(r||e)(I(k))};static \u0275prov=v({token:e,factory:e.\u0275fac})}return e})(),Ob=["alt","control","meta","shift"],bA={"\b":"Backspace"," ":"Tab","\x7F":"Delete","\x1B":"Escape",Del:"Delete",Esc:"Escape",Left:"ArrowLeft",Right:"ArrowRight",Up:"ArrowUp",Down:"ArrowDown",Menu:"ContextMenu",Scroll:"ScrollLock",Win:"OS"},_A={alt:e=>e.altKey,control:e=>e.ctrlKey,meta:e=>e.metaKey,shift:e=>e.shiftKey},Fb=(()=>{class e extends Qo{constructor(n){super(n)}supports(n){return e.parseEventName(n)!=null}addEventListener(n,r,o,i){let s=e.parseEventName(r),a=e.eventCallback(s.fullKey,o,this.manager.getZone());return this.manager.getZone().runOutsideAngular(()=>Xe().onAndCancel(n,s.domEventName,a,i))}static parseEventName(n){let r=n.toLowerCase().split("."),o=r.shift();if(r.length===0||!(o==="keydown"||o==="keyup"))return null;let i=e._normalizeKey(r.pop()),s="",a=r.indexOf("code");if(a>-1&&(r.splice(a,1),s="code."),Ob.forEach(l=>{let u=r.indexOf(l);u>-1&&(r.splice(u,1),s+=l+".")}),s+=i,r.length!=0||i.length===0)return null;let c={};return c.domEventName=o,c.fullKey=s,c}static matchEventFullKeyCode(n,r){let o=bA[n.key]||n.key,i="";return r.indexOf("code.")>-1&&(o=n.code,i="code."),o==null||!o?!1:(o=o.toLowerCase(),o===" "?o="space":o==="."&&(o="dot"),Ob.forEach(s=>{if(s!==o){let a=_A[s];a(n)&&(i+=s+".")}}),i+=o,i===r)}static eventCallback(n,r,o){return i=>{e.matchEventFullKeyCode(i,n)&&o.runGuarded(()=>r(i))}}static _normalizeKey(n){return n==="esc"?"escape":n}static \u0275fac=function(r){return new(r||e)(I(k))};static \u0275prov=v({token:e,factory:e.\u0275fac})}return e})();function DA(e,t,n){return Ky(_({rootComponent:e,platformRef:n?.platformRef},EA(t)))}function EA(e){return{appProviders:[...TA,...e?.providers??[]],platformProviders:MA}}function wA(){sc.makeCurrent()}function CA(){return new Dt}function IA(){return Kg(document),document}var MA=[{provide:zn,useValue:tc},{provide:jd,useValue:wA,multi:!0},{provide:k,useFactory:IA}];var TA=[{provide:ua,useValue:"root"},{provide:Dt,useFactory:CA},{provide:ic,useClass:kb,multi:!0,deps:[k]},{provide:ic,useClass:Fb,multi:!0,deps:[k]},Pf,kf,Of,{provide:ve,useExisting:Pf},{provide:Zn,useClass:yA},[]];var Gr=class{},Wr=class{},ht=class e{headers;normalizedNames=new Map;lazyInit;lazyUpdate=null;constructor(t){t?typeof t=="string"?this.lazyInit=()=>{this.headers=new Map,t.split(` +`).forEach(n=>{let r=n.indexOf(":");if(r>0){let o=n.slice(0,r),i=n.slice(r+1).trim();this.addHeaderEntry(o,i)}})}:typeof Headers<"u"&&t instanceof Headers?(this.headers=new Map,t.forEach((n,r)=>{this.addHeaderEntry(r,n)})):this.lazyInit=()=>{this.headers=new Map,Object.entries(t).forEach(([n,r])=>{this.setHeaderEntries(n,r)})}:this.headers=new Map}has(t){return this.init(),this.headers.has(t.toLowerCase())}get(t){this.init();let n=this.headers.get(t.toLowerCase());return n&&n.length>0?n[0]:null}keys(){return this.init(),Array.from(this.normalizedNames.values())}getAll(t){return this.init(),this.headers.get(t.toLowerCase())||null}append(t,n){return this.clone({name:t,value:n,op:"a"})}set(t,n){return this.clone({name:t,value:n,op:"s"})}delete(t,n){return this.clone({name:t,value:n,op:"d"})}maybeSetNormalizedName(t,n){this.normalizedNames.has(n)||this.normalizedNames.set(n,t)}init(){this.lazyInit&&(this.lazyInit instanceof e?this.copyFrom(this.lazyInit):this.lazyInit(),this.lazyInit=null,this.lazyUpdate&&(this.lazyUpdate.forEach(t=>this.applyUpdate(t)),this.lazyUpdate=null))}copyFrom(t){t.init(),Array.from(t.headers.keys()).forEach(n=>{this.headers.set(n,t.headers.get(n)),this.normalizedNames.set(n,t.normalizedNames.get(n))})}clone(t){let n=new e;return n.lazyInit=this.lazyInit&&this.lazyInit instanceof e?this.lazyInit:this,n.lazyUpdate=(this.lazyUpdate||[]).concat([t]),n}applyUpdate(t){let n=t.name.toLowerCase();switch(t.op){case"a":case"s":let r=t.value;if(typeof r=="string"&&(r=[r]),r.length===0)return;this.maybeSetNormalizedName(t.name,n);let o=(t.op==="a"?this.headers.get(n):void 0)||[];o.push(...r),this.headers.set(n,o);break;case"d":let i=t.value;if(!i)this.headers.delete(n),this.normalizedNames.delete(n);else{let s=this.headers.get(n);if(!s)return;s=s.filter(a=>i.indexOf(a)===-1),s.length===0?(this.headers.delete(n),this.normalizedNames.delete(n)):this.headers.set(n,s)}break}}addHeaderEntry(t,n){let r=t.toLowerCase();this.maybeSetNormalizedName(t,r),this.headers.has(r)?this.headers.get(r).push(n):this.headers.set(r,[n])}setHeaderEntries(t,n){let r=(Array.isArray(n)?n:[n]).map(i=>i.toString()),o=t.toLowerCase();this.headers.set(o,r),this.maybeSetNormalizedName(t,o)}forEach(t){this.init(),Array.from(this.normalizedNames.keys()).forEach(n=>t(this.normalizedNames.get(n),this.headers.get(n)))}};var lc=class{encodeKey(t){return Pb(t)}encodeValue(t){return Pb(t)}decodeKey(t){return decodeURIComponent(t)}decodeValue(t){return decodeURIComponent(t)}};function SA(e,t){let n=new Map;return e.length>0&&e.replace(/^\?/,"").split("&").forEach(o=>{let i=o.indexOf("="),[s,a]=i==-1?[t.decodeKey(o),""]:[t.decodeKey(o.slice(0,i)),t.decodeValue(o.slice(i+1))],c=n.get(s)||[];c.push(a),n.set(s,c)}),n}var xA=/%(\d[a-f0-9])/gi,AA={40:"@","3A":":",24:"$","2C":",","3B":";","3D":"=","3F":"?","2F":"/"};function Pb(e){return encodeURIComponent(e).replace(xA,(t,n)=>AA[n]??t)}function ac(e){return`${e}`}var ke=class e{map;encoder;updates=null;cloneFrom=null;constructor(t={}){if(this.encoder=t.encoder||new lc,t.fromString){if(t.fromObject)throw new D(2805,!1);this.map=SA(t.fromString,this.encoder)}else t.fromObject?(this.map=new Map,Object.keys(t.fromObject).forEach(n=>{let r=t.fromObject[n],o=Array.isArray(r)?r.map(ac):[ac(r)];this.map.set(n,o)})):this.map=null}has(t){return this.init(),this.map.has(t)}get(t){this.init();let n=this.map.get(t);return n?n[0]:null}getAll(t){return this.init(),this.map.get(t)||null}keys(){return this.init(),Array.from(this.map.keys())}append(t,n){return this.clone({param:t,value:n,op:"a"})}appendAll(t){let n=[];return Object.keys(t).forEach(r=>{let o=t[r];Array.isArray(o)?o.forEach(i=>{n.push({param:r,value:i,op:"a"})}):n.push({param:r,value:o,op:"a"})}),this.clone(n)}set(t,n){return this.clone({param:t,value:n,op:"s"})}delete(t,n){return this.clone({param:t,value:n,op:"d"})}toString(){return this.init(),this.keys().map(t=>{let n=this.encoder.encodeKey(t);return this.map.get(t).map(r=>n+"="+this.encoder.encodeValue(r)).join("&")}).filter(t=>t!=="").join("&")}clone(t){let n=new e({encoder:this.encoder});return n.cloneFrom=this.cloneFrom||this,n.updates=(this.updates||[]).concat(t),n}init(){this.map===null&&(this.map=new Map),this.cloneFrom!==null&&(this.cloneFrom.init(),this.cloneFrom.keys().forEach(t=>this.map.set(t,this.cloneFrom.map.get(t))),this.updates.forEach(t=>{switch(t.op){case"a":case"s":let n=(t.op==="a"?this.map.get(t.param):void 0)||[];n.push(ac(t.value)),this.map.set(t.param,n);break;case"d":if(t.value!==void 0){let r=this.map.get(t.param)||[],o=r.indexOf(ac(t.value));o!==-1&&r.splice(o,1),r.length>0?this.map.set(t.param,r):this.map.delete(t.param)}else{this.map.delete(t.param);break}}}),this.cloneFrom=this.updates=null)}};var uc=class{map=new Map;set(t,n){return this.map.set(t,n),this}get(t){return this.map.has(t)||this.map.set(t,t.defaultValue()),this.map.get(t)}delete(t){return this.map.delete(t),this}has(t){return this.map.has(t)}keys(){return this.map.keys()}};function RA(e){switch(e){case"DELETE":case"GET":case"HEAD":case"OPTIONS":case"JSONP":return!1;default:return!0}}function Lb(e){return typeof ArrayBuffer<"u"&&e instanceof ArrayBuffer}function Vb(e){return typeof Blob<"u"&&e instanceof Blob}function jb(e){return typeof FormData<"u"&&e instanceof FormData}function NA(e){return typeof URLSearchParams<"u"&&e instanceof URLSearchParams}var ni="Content-Type",dc="Accept",Hf="X-Request-URL",Hb="text/plain",Ub="application/json",$b=`${Ub}, ${Hb}, */*`,zr=class e{url;body=null;headers;context;reportProgress=!1;withCredentials=!1;responseType="json";method;params;urlWithParams;transferCache;constructor(t,n,r,o){this.url=n,this.method=t.toUpperCase();let i;if(RA(this.method)||o?(this.body=r!==void 0?r:null,i=o):i=r,i&&(this.reportProgress=!!i.reportProgress,this.withCredentials=!!i.withCredentials,i.responseType&&(this.responseType=i.responseType),i.headers&&(this.headers=i.headers),i.context&&(this.context=i.context),i.params&&(this.params=i.params),this.transferCache=i.transferCache),this.headers??=new ht,this.context??=new uc,!this.params)this.params=new ke,this.urlWithParams=n;else{let s=this.params.toString();if(s.length===0)this.urlWithParams=n;else{let a=n.indexOf("?"),c=a===-1?"?":ap.set(d,t.setHeaders[d]),l)),t.setParams&&(u=Object.keys(t.setParams).reduce((p,d)=>p.set(d,t.setParams[d]),u)),new e(n,r,s,{params:u,headers:l,context:f,reportProgress:c,responseType:o,withCredentials:a,transferCache:i})}},Xt=function(e){return e[e.Sent=0]="Sent",e[e.UploadProgress=1]="UploadProgress",e[e.ResponseHeader=2]="ResponseHeader",e[e.DownloadProgress=3]="DownloadProgress",e[e.Response=4]="Response",e[e.User=5]="User",e}(Xt||{}),qr=class{headers;status;statusText;url;ok;type;constructor(t,n=200,r="OK"){this.headers=t.headers||new ht,this.status=t.status!==void 0?t.status:n,this.statusText=t.statusText||r,this.url=t.url||null,this.ok=this.status>=200&&this.status<300}},ri=class e extends qr{constructor(t={}){super(t)}type=Xt.ResponseHeader;clone(t={}){return new e({headers:t.headers||this.headers,status:t.status!==void 0?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}},hn=class e extends qr{body;constructor(t={}){super(t),this.body=t.body!==void 0?t.body:null}type=Xt.Response;clone(t={}){return new e({body:t.body!==void 0?t.body:this.body,headers:t.headers||this.headers,status:t.status!==void 0?t.status:this.status,statusText:t.statusText||this.statusText,url:t.url||this.url||void 0})}},Kt=class extends qr{name="HttpErrorResponse";message;error;ok=!1;constructor(t){super(t,0,"Unknown Error"),this.status>=200&&this.status<300?this.message=`Http failure during parsing for ${t.url||"(unknown url)"}`:this.message=`Http failure response for ${t.url||"(unknown url)"}: ${t.status} ${t.statusText}`,this.error=t.error||null}},zb=200,OA=204;function Lf(e,t){return{body:t,headers:e.headers,context:e.context,observe:e.observe,params:e.params,reportProgress:e.reportProgress,responseType:e.responseType,withCredentials:e.withCredentials,transferCache:e.transferCache}}var hc=(()=>{class e{handler;constructor(n){this.handler=n}request(n,r,o={}){let i;if(n instanceof zr)i=n;else{let c;o.headers instanceof ht?c=o.headers:c=new ht(o.headers);let l;o.params&&(o.params instanceof ke?l=o.params:l=new ke({fromObject:o.params})),i=new zr(n,r,o.body!==void 0?o.body:null,{headers:c,context:o.context,params:l,reportProgress:o.reportProgress,responseType:o.responseType||"json",withCredentials:o.withCredentials,transferCache:o.transferCache})}let s=$e(i).pipe(dl(c=>this.handler.handle(c)));if(n instanceof zr||o.observe==="events")return s;let a=s.pipe(ce(c=>c instanceof hn));switch(o.observe||"body"){case"body":switch(i.responseType){case"arraybuffer":return a.pipe(ue(c=>{if(c.body!==null&&!(c.body instanceof ArrayBuffer))throw new D(2806,!1);return c.body}));case"blob":return a.pipe(ue(c=>{if(c.body!==null&&!(c.body instanceof Blob))throw new D(2807,!1);return c.body}));case"text":return a.pipe(ue(c=>{if(c.body!==null&&typeof c.body!="string")throw new D(2808,!1);return c.body}));case"json":default:return a.pipe(ue(c=>c.body))}case"response":return a;default:throw new D(2809,!1)}}delete(n,r={}){return this.request("DELETE",n,r)}get(n,r={}){return this.request("GET",n,r)}head(n,r={}){return this.request("HEAD",n,r)}jsonp(n,r){return this.request("JSONP",n,{params:new ke().append(r,"JSONP_CALLBACK"),observe:"body",responseType:"json"})}options(n,r={}){return this.request("OPTIONS",n,r)}patch(n,r,o={}){return this.request("PATCH",n,Lf(o,r))}post(n,r,o={}){return this.request("POST",n,Lf(o,r))}put(n,r,o={}){return this.request("PUT",n,Lf(o,r))}static \u0275fac=function(r){return new(r||e)(I(Gr))};static \u0275prov=v({token:e,factory:e.\u0275fac})}return e})(),kA=/^\)\]\}',?\n/;function Bb(e){if(e.url)return e.url;let t=Hf.toLocaleLowerCase();return e.headers.get(t)}var Gb=new y(""),cc=(()=>{class e{fetchImpl=h(Vf,{optional:!0})?.fetch??((...n)=>globalThis.fetch(...n));ngZone=h(x);destroyRef=h(kr);destroyed=!1;constructor(){this.destroyRef.onDestroy(()=>{this.destroyed=!0})}handle(n){return new P(r=>{let o=new AbortController;return this.doRequest(n,o.signal,r).then(jf,i=>r.error(new Kt({error:i}))),()=>o.abort()})}doRequest(n,r,o){return pt(this,null,function*(){let i=this.createRequestInit(n),s;try{let d=this.ngZone.runOutsideAngular(()=>this.fetchImpl(n.urlWithParams,_({signal:r},i)));FA(d),o.next({type:Xt.Sent}),s=yield d}catch(d){o.error(new Kt({error:d,status:d.status??0,statusText:d.statusText,url:n.urlWithParams,headers:d.headers}));return}let a=new ht(s.headers),c=s.statusText,l=Bb(s)??n.urlWithParams,u=s.status,f=null;if(n.reportProgress&&o.next(new ri({headers:a,status:u,statusText:c,url:l})),s.body){let d=s.headers.get("content-length"),m=[],g=s.body.getReader(),b=0,M,re,te=typeof Zone<"u"&&Zone.current,Jt=!1;if(yield this.ngZone.runOutsideAngular(()=>pt(this,null,function*(){for(;;){if(this.destroyed){yield g.cancel(),Jt=!0;break}let{done:bn,value:Kc}=yield g.read();if(bn)break;if(m.push(Kc),b+=Kc.length,n.reportProgress){re=n.responseType==="text"?(re??"")+(M??=new TextDecoder).decode(Kc,{stream:!0}):void 0;let Th=()=>o.next({type:Xt.DownloadProgress,total:d?+d:void 0,loaded:b,partialText:re});te?te.run(Th):Th()}}})),Jt){o.complete();return}let Zc=this.concatChunks(m,b);try{let bn=s.headers.get(ni)??"";f=this.parseBody(n,Zc,bn)}catch(bn){o.error(new Kt({error:bn,headers:new ht(s.headers),status:s.status,statusText:s.statusText,url:Bb(s)??n.urlWithParams}));return}}u===0&&(u=f?zb:0),u>=200&&u<300?(o.next(new hn({body:f,headers:a,status:u,statusText:c,url:l})),o.complete()):o.error(new Kt({error:f,headers:a,status:u,statusText:c,url:l}))})}parseBody(n,r,o){switch(n.responseType){case"json":let i=new TextDecoder().decode(r).replace(kA,"");return i===""?null:JSON.parse(i);case"text":return new TextDecoder().decode(r);case"blob":return new Blob([r],{type:o});case"arraybuffer":return r.buffer}}createRequestInit(n){let r={},o=n.withCredentials?"include":void 0;if(n.headers.forEach((i,s)=>r[i]=s.join(",")),n.headers.has(dc)||(r[dc]=$b),!n.headers.has(ni)){let i=n.detectContentTypeHeader();i!==null&&(r[ni]=i)}return{body:n.serializeBody(),method:n.method,headers:r,credentials:o}}concatChunks(n,r){let o=new Uint8Array(r),i=0;for(let s of n)o.set(s,i),i+=s.length;return o}static \u0275fac=function(r){return new(r||e)};static \u0275prov=v({token:e,factory:e.\u0275fac})}return e})(),Vf=class{};function jf(){}function FA(e){e.then(jf,jf)}function PA(e,t){return t(e)}function LA(e,t,n){return(r,o)=>fa(n,()=>t(r,i=>e(i,o)))}var Wb=new y(""),Uf=new y(""),qb=new y("",{providedIn:"root",factory:()=>!0});var fc=(()=>{class e extends Gr{backend;injector;chain=null;pendingTasks=h(ln);contributeToStability=h(qb);constructor(n,r){super(),this.backend=n,this.injector=r}handle(n){if(this.chain===null){let r=Array.from(new Set([...this.injector.get(Wb),...this.injector.get(Uf,[])]));this.chain=r.reduceRight((o,i)=>LA(o,i,this.injector),PA)}if(this.contributeToStability){let r=this.pendingTasks.add();return this.chain(n,o=>this.backend.handle(o)).pipe(fl(()=>this.pendingTasks.remove(r)))}else return this.chain(n,r=>this.backend.handle(r))}static \u0275fac=function(r){return new(r||e)(I(Wr),I(ge))};static \u0275prov=v({token:e,factory:e.\u0275fac})}return e})();var VA=/^\)\]\}',?\n/,jA=RegExp(`^${Hf}:`,"m");function BA(e){return"responseURL"in e&&e.responseURL?e.responseURL:jA.test(e.getAllResponseHeaders())?e.getResponseHeader(Hf):null}var Bf=(()=>{class e{xhrFactory;constructor(n){this.xhrFactory=n}handle(n){if(n.method==="JSONP")throw new D(-2800,!1);let r=this.xhrFactory;return(r.\u0275loadImpl?Te(r.\u0275loadImpl()):$e(null)).pipe(os(()=>new P(i=>{let s=r.build();if(s.open(n.method,n.urlWithParams),n.withCredentials&&(s.withCredentials=!0),n.headers.forEach((g,b)=>s.setRequestHeader(g,b.join(","))),n.headers.has(dc)||s.setRequestHeader(dc,$b),!n.headers.has(ni)){let g=n.detectContentTypeHeader();g!==null&&s.setRequestHeader(ni,g)}if(n.responseType){let g=n.responseType.toLowerCase();s.responseType=g!=="json"?g:"text"}let a=n.serializeBody(),c=null,l=()=>{if(c!==null)return c;let g=s.statusText||"OK",b=new ht(s.getAllResponseHeaders()),M=BA(s)||n.url;return c=new ri({headers:b,status:s.status,statusText:g,url:M}),c},u=()=>{let{headers:g,status:b,statusText:M,url:re}=l(),te=null;b!==OA&&(te=typeof s.response>"u"?s.responseText:s.response),b===0&&(b=te?zb:0);let Jt=b>=200&&b<300;if(n.responseType==="json"&&typeof te=="string"){let Zc=te;te=te.replace(VA,"");try{te=te!==""?JSON.parse(te):null}catch(bn){te=Zc,Jt&&(Jt=!1,te={error:bn,text:te})}}Jt?(i.next(new hn({body:te,headers:g,status:b,statusText:M,url:re||void 0})),i.complete()):i.error(new Kt({error:te,headers:g,status:b,statusText:M,url:re||void 0}))},f=g=>{let{url:b}=l(),M=new Kt({error:g,status:s.status||0,statusText:s.statusText||"Unknown Error",url:b||void 0});i.error(M)},p=!1,d=g=>{p||(i.next(l()),p=!0);let b={type:Xt.DownloadProgress,loaded:g.loaded};g.lengthComputable&&(b.total=g.total),n.responseType==="text"&&s.responseText&&(b.partialText=s.responseText),i.next(b)},m=g=>{let b={type:Xt.UploadProgress,loaded:g.loaded};g.lengthComputable&&(b.total=g.total),i.next(b)};return s.addEventListener("load",u),s.addEventListener("error",f),s.addEventListener("timeout",f),s.addEventListener("abort",f),n.reportProgress&&(s.addEventListener("progress",d),a!==null&&s.upload&&s.upload.addEventListener("progress",m)),s.send(a),i.next({type:Xt.Sent}),()=>{s.removeEventListener("error",f),s.removeEventListener("abort",f),s.removeEventListener("load",u),s.removeEventListener("timeout",f),n.reportProgress&&(s.removeEventListener("progress",d),a!==null&&s.upload&&s.upload.removeEventListener("progress",m)),s.readyState!==s.DONE&&s.abort()}})))}static \u0275fac=function(r){return new(r||e)(I(Zn))};static \u0275prov=v({token:e,factory:e.\u0275fac})}return e})(),Yb=new y(""),HA="XSRF-TOKEN",UA=new y("",{providedIn:"root",factory:()=>HA}),$A="X-XSRF-TOKEN",zA=new y("",{providedIn:"root",factory:()=>$A}),oi=class{},GA=(()=>{class e{doc;cookieName;lastCookieString="";lastToken=null;parseCount=0;constructor(n,r){this.doc=n,this.cookieName=r}getToken(){let n=this.doc.cookie||"";return n!==this.lastCookieString&&(this.parseCount++,this.lastToken=Xo(n,this.cookieName),this.lastCookieString=n),this.lastToken}static \u0275fac=function(r){return new(r||e)(I(k),I(UA))};static \u0275prov=v({token:e,factory:e.\u0275fac})}return e})(),WA=/^(?:https?:)?\/\//i;function qA(e,t){if(!h(Yb)||e.method==="GET"||e.method==="HEAD"||WA.test(e.url))return t(e);let n=h(oi).getToken(),r=h(zA);return n!=null&&!e.headers.has(r)&&(e=e.clone({headers:e.headers.set(r,n)})),t(e)}var $f=function(e){return e[e.Interceptors=0]="Interceptors",e[e.LegacyInterceptors=1]="LegacyInterceptors",e[e.CustomXsrfConfiguration=2]="CustomXsrfConfiguration",e[e.NoXsrfProtection=3]="NoXsrfProtection",e[e.JsonpSupport=4]="JsonpSupport",e[e.RequestsMadeViaParent=5]="RequestsMadeViaParent",e[e.Fetch=6]="Fetch",e}($f||{});function YA(e,t){return{\u0275kind:e,\u0275providers:t}}function ZA(...e){let t=[hc,Bf,fc,{provide:Gr,useExisting:fc},{provide:Wr,useFactory:()=>h(Gb,{optional:!0})??h(Bf)},{provide:Wb,useValue:qA,multi:!0},{provide:Yb,useValue:!0},{provide:oi,useClass:GA}];for(let n of e)t.push(...n.\u0275providers);return Ar(t)}function KA(){return YA($f.Fetch,[cc,{provide:Gb,useExisting:cc},{provide:Wr,useExisting:cc}])}var XA=new y(""),QA="b",JA="h",eR="s",tR="st",nR="u",rR="rt",zf=new y(""),oR=["GET","HEAD"];function iR(e,t){let p=h(zf),{isCacheActive:n}=p,r=Rh(p,["isCacheActive"]),{transferCache:o,method:i}=e;if(!n||o===!1||i==="POST"&&!r.includePostRequests&&!o||i!=="POST"&&!oR.includes(i)||!r.includeRequestsWithAuthHeaders&&sR(e)||r.filter?.(e)===!1)return t(e);let s=h(Lr);if(h(XA,{optional:!0}))throw new D(2803,!1);let c=e.url,l=aR(e,c),u=s.get(l,null),f=r.includeHeaders;if(typeof o=="object"&&o.includeHeaders&&(f=o.includeHeaders),u){let{[QA]:d,[rR]:m,[JA]:g,[eR]:b,[tR]:M,[nR]:re}=u,te=d;switch(m){case"arraybuffer":te=new TextEncoder().encode(d).buffer;break;case"blob":te=new Blob([d]);break}let Jt=new ht(g);return $e(new hn({body:te,headers:Jt,status:b,statusText:M,url:re}))}return t(e).pipe(mo(d=>{d instanceof hn}))}function sR(e){return e.headers.has("authorization")||e.headers.has("proxy-authorization")}function Zb(e){return[...e.keys()].sort().map(t=>`${t}=${e.getAll(t)}`).join("&")}function aR(e,t){let{params:n,method:r,responseType:o}=e,i=Zb(n),s=e.serializeBody();s instanceof URLSearchParams?s=Zb(s):typeof s!="string"&&(s="");let a=[r,o,t,s,i].join("|"),c=cR(a);return c}function cR(e){let t=0;for(let n of e)t=Math.imul(31,t)+n.charCodeAt(0)<<0;return t+=2147483648,t.toString()}function Kb(e){return[{provide:zf,useFactory:()=>(It("NgHttpTransferCache"),_({isCacheActive:!0},e))},{provide:Uf,useValue:iR,multi:!0},{provide:Go,multi:!0,useFactory:()=>{let t=h(ye),n=h(zf);return()=>{t.whenStable().then(()=>{n.isCacheActive=!1})}}}]}var _H=(()=>{class e{_doc;constructor(n){this._doc=n}getTitle(){return this._doc.title}setTitle(n){this._doc.title=n||""}static \u0275fac=function(r){return new(r||e)(I(k))};static \u0275prov=v({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var uR=(()=>{class e{static \u0275fac=function(r){return new(r||e)};static \u0275prov=v({token:e,factory:function(r){let o=null;return r?o=new(r||e):o=I(dR),o},providedIn:"root"})}return e})(),dR=(()=>{class e extends uR{_doc;constructor(n){super(),this._doc=n}sanitize(n,r){if(r==null)return null;switch(n){case Tt.NONE:return r;case Tt.HTML:return un(r,"HTML")?Mt(r):Iv(this._doc,String(r)).toString();case Tt.STYLE:return un(r,"Style")?Mt(r):r;case Tt.SCRIPT:if(un(r,"Script"))return Mt(r);throw new D(5200,!1);case Tt.URL:return un(r,"URL")?Mt(r):Sa(String(r));case Tt.RESOURCE_URL:if(un(r,"ResourceURL"))return Mt(r);throw new D(5201,!1);default:throw new D(5202,!1)}}bypassSecurityTrustHtml(n){return mv(n)}bypassSecurityTrustStyle(n){return gv(n)}bypassSecurityTrustScript(n){return vv(n)}bypassSecurityTrustUrl(n){return yv(n)}bypassSecurityTrustResourceUrl(n){return bv(n)}static \u0275fac=function(r){return new(r||e)(I(k))};static \u0275prov=v({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),pc=function(e){return e[e.NoHttpTransferCache=0]="NoHttpTransferCache",e[e.HttpTransferCacheOptions=1]="HttpTransferCacheOptions",e[e.I18nSupport=2]="I18nSupport",e[e.EventReplay=3]="EventReplay",e[e.IncrementalHydration=4]="IncrementalHydration",e}(pc||{});function fR(e,t=[],n={}){return{\u0275kind:e,\u0275providers:t}}function DH(){return fR(pc.EventReplay,Xy())}function EH(...e){let t=[],n=new Set;for(let{\u0275providers:o,\u0275kind:i}of e)n.add(i),o.length&&t.push(o);let r=n.has(pc.HttpTransferCacheOptions);return Ar([[],Qy(),n.has(pc.NoHttpTransferCache)||r?[]:Kb({}),t])}var a_=(()=>{class e{_renderer;_elementRef;onChange=n=>{};onTouched=()=>{};constructor(n,r){this._renderer=n,this._elementRef=r}setProperty(n,r){this._renderer.setProperty(this._elementRef.nativeElement,n,r)}registerOnTouched(n){this.onTouched=n}registerOnChange(n){this.onChange=n}setDisabledState(n){this.setProperty("disabled",n)}static \u0275fac=function(r){return new(r||e)(E(dt),E(X))};static \u0275dir=j({type:e})}return e})(),Yf=(()=>{class e extends a_{static \u0275fac=(()=>{let n;return function(o){return(n||(n=Ne(e)))(o||e)}})();static \u0275dir=j({type:e,features:[ee]})}return e})(),di=new y("");var hR={provide:di,useExisting:je(()=>c_),multi:!0};function pR(){let e=Xe()?Xe().getUserAgent():"";return/android (\d+)/.test(e.toLowerCase())}var mR=new y(""),c_=(()=>{class e extends a_{_compositionMode;_composing=!1;constructor(n,r,o){super(n,r),this._compositionMode=o,this._compositionMode==null&&(this._compositionMode=!pR())}writeValue(n){let r=n??"";this.setProperty("value",r)}_handleInput(n){(!this._compositionMode||this._compositionMode&&!this._composing)&&this.onChange(n)}_compositionStart(){this._composing=!0}_compositionEnd(n){this._composing=!1,this._compositionMode&&this.onChange(n)}static \u0275fac=function(r){return new(r||e)(E(dt),E(X),E(mR,8))};static \u0275dir=j({type:e,selectors:[["input","formControlName","",3,"type","checkbox"],["textarea","formControlName",""],["input","formControl","",3,"type","checkbox"],["textarea","formControl",""],["input","ngModel","",3,"type","checkbox"],["textarea","ngModel",""],["","ngDefaultControl",""]],hostBindings:function(r,o){r&1&&dn("input",function(s){return o._handleInput(s.target.value)})("blur",function(){return o.onTouched()})("compositionstart",function(){return o._compositionStart()})("compositionend",function(s){return o._compositionEnd(s.target.value)})},standalone:!1,features:[Ue([hR]),ee]})}return e})();function Zf(e){return e==null||Kf(e)===0}function Kf(e){return e==null?null:Array.isArray(e)||typeof e=="string"?e.length:e instanceof Set?e.size:null}var Qr=new y(""),Jr=new y(""),gR=/^(?=.{1,254}$)(?=.{1,64}@)[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-zA-Z0-9!#$%&'*+/=?^_`{|}~-]+)*@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$/,Xb=class{static min(t){return vR(t)}static max(t){return yR(t)}static required(t){return bR(t)}static requiredTrue(t){return _R(t)}static email(t){return DR(t)}static minLength(t){return ER(t)}static maxLength(t){return wR(t)}static pattern(t){return CR(t)}static nullValidator(t){return l_()}static compose(t){return m_(t)}static composeAsync(t){return g_(t)}};function vR(e){return t=>{if(t.value==null||e==null)return null;let n=parseFloat(t.value);return!isNaN(n)&&n{if(t.value==null||e==null)return null;let n=parseFloat(t.value);return!isNaN(n)&&n>e?{max:{max:e,actual:t.value}}:null}}function bR(e){return Zf(e.value)?{required:!0}:null}function _R(e){return e.value===!0?null:{required:!0}}function DR(e){return Zf(e.value)||gR.test(e.value)?null:{email:!0}}function ER(e){return t=>{let n=t.value?.length??Kf(t.value);return n===null||n===0?null:n{let n=t.value?.length??Kf(t.value);return n!==null&&n>e?{maxlength:{requiredLength:e,actualLength:n}}:null}}function CR(e){if(!e)return l_;let t,n;return typeof e=="string"?(n="",e.charAt(0)!=="^"&&(n+="^"),n+=e,e.charAt(e.length-1)!=="$"&&(n+="$"),t=new RegExp(n)):(n=e.toString(),t=e),r=>{if(Zf(r.value))return null;let o=r.value;return t.test(o)?null:{pattern:{requiredPattern:n,actualValue:o}}}}function l_(e){return null}function u_(e){return e!=null}function d_(e){return zo(e)?Te(e):e}function f_(e){let t={};return e.forEach(n=>{t=n!=null?_(_({},t),n):t}),Object.keys(t).length===0?null:t}function h_(e,t){return t.map(n=>n(e))}function IR(e){return!e.validate}function p_(e){return e.map(t=>IR(t)?t:n=>t.validate(n))}function m_(e){if(!e)return null;let t=e.filter(u_);return t.length==0?null:function(n){return f_(h_(n,t))}}function Xf(e){return e!=null?m_(p_(e)):null}function g_(e){if(!e)return null;let t=e.filter(u_);return t.length==0?null:function(n){let r=h_(n,t).map(d_);return ul(r).pipe(ue(f_))}}function Qf(e){return e!=null?g_(p_(e)):null}function Qb(e,t){return e===null?[t]:Array.isArray(e)?[...e,t]:[e,t]}function v_(e){return e._rawValidators}function y_(e){return e._rawAsyncValidators}function Gf(e){return e?Array.isArray(e)?e:[e]:[]}function gc(e,t){return Array.isArray(e)?e.includes(t):e===t}function Jb(e,t){let n=Gf(t);return Gf(e).forEach(o=>{gc(n,o)||n.push(o)}),n}function e_(e,t){return Gf(t).filter(n=>!gc(e,n))}var vc=class{get value(){return this.control?this.control.value:null}get valid(){return this.control?this.control.valid:null}get invalid(){return this.control?this.control.invalid:null}get pending(){return this.control?this.control.pending:null}get disabled(){return this.control?this.control.disabled:null}get enabled(){return this.control?this.control.enabled:null}get errors(){return this.control?this.control.errors:null}get pristine(){return this.control?this.control.pristine:null}get dirty(){return this.control?this.control.dirty:null}get touched(){return this.control?this.control.touched:null}get status(){return this.control?this.control.status:null}get untouched(){return this.control?this.control.untouched:null}get statusChanges(){return this.control?this.control.statusChanges:null}get valueChanges(){return this.control?this.control.valueChanges:null}get path(){return null}_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators=[];_rawAsyncValidators=[];_setValidators(t){this._rawValidators=t||[],this._composedValidatorFn=Xf(this._rawValidators)}_setAsyncValidators(t){this._rawAsyncValidators=t||[],this._composedAsyncValidatorFn=Qf(this._rawAsyncValidators)}get validator(){return this._composedValidatorFn||null}get asyncValidator(){return this._composedAsyncValidatorFn||null}_onDestroyCallbacks=[];_registerOnDestroy(t){this._onDestroyCallbacks.push(t)}_invokeOnDestroyCallbacks(){this._onDestroyCallbacks.forEach(t=>t()),this._onDestroyCallbacks=[]}reset(t=void 0){this.control&&this.control.reset(t)}hasError(t,n){return this.control?this.control.hasError(t,n):!1}getError(t,n){return this.control?this.control.getError(t,n):null}},Ie=class extends vc{name;get formDirective(){return null}get path(){return null}},Kn=class extends vc{_parent=null;name=null;valueAccessor=null},yc=class{_cd;constructor(t){this._cd=t}get isTouched(){return this._cd?.control?._touched?.(),!!this._cd?.control?.touched}get isUntouched(){return!!this._cd?.control?.untouched}get isPristine(){return this._cd?.control?._pristine?.(),!!this._cd?.control?.pristine}get isDirty(){return!!this._cd?.control?.dirty}get isValid(){return this._cd?.control?._status?.(),!!this._cd?.control?.valid}get isInvalid(){return!!this._cd?.control?.invalid}get isPending(){return!!this._cd?.control?.pending}get isSubmitted(){return this._cd?._submitted?.(),!!this._cd?.submitted}},MR={"[class.ng-untouched]":"isUntouched","[class.ng-touched]":"isTouched","[class.ng-pristine]":"isPristine","[class.ng-dirty]":"isDirty","[class.ng-valid]":"isValid","[class.ng-invalid]":"isInvalid","[class.ng-pending]":"isPending"},BH=B(_({},MR),{"[class.ng-submitted]":"isSubmitted"}),HH=(()=>{class e extends yc{constructor(n){super(n)}static \u0275fac=function(r){return new(r||e)(E(Kn,2))};static \u0275dir=j({type:e,selectors:[["","formControlName",""],["","ngModel",""],["","formControl",""]],hostVars:14,hostBindings:function(r,o){r&2&&He("ng-untouched",o.isUntouched)("ng-touched",o.isTouched)("ng-pristine",o.isPristine)("ng-dirty",o.isDirty)("ng-valid",o.isValid)("ng-invalid",o.isInvalid)("ng-pending",o.isPending)},standalone:!1,features:[ee]})}return e})(),UH=(()=>{class e extends yc{constructor(n){super(n)}static \u0275fac=function(r){return new(r||e)(E(Ie,10))};static \u0275dir=j({type:e,selectors:[["","formGroupName",""],["","formArrayName",""],["","ngModelGroup",""],["","formGroup",""],["form",3,"ngNoForm",""],["","ngForm",""]],hostVars:16,hostBindings:function(r,o){r&2&&He("ng-untouched",o.isUntouched)("ng-touched",o.isTouched)("ng-pristine",o.isPristine)("ng-dirty",o.isDirty)("ng-valid",o.isValid)("ng-invalid",o.isInvalid)("ng-pending",o.isPending)("ng-submitted",o.isSubmitted)},standalone:!1,features:[ee]})}return e})();var ii="VALID",mc="INVALID",Yr="PENDING",si="DISABLED",pn=class{},bc=class extends pn{value;source;constructor(t,n){super(),this.value=t,this.source=n}},ci=class extends pn{pristine;source;constructor(t,n){super(),this.pristine=t,this.source=n}},li=class extends pn{touched;source;constructor(t,n){super(),this.touched=t,this.source=n}},Zr=class extends pn{status;source;constructor(t,n){super(),this.status=t,this.source=n}},_c=class extends pn{source;constructor(t){super(),this.source=t}},Dc=class extends pn{source;constructor(t){super(),this.source=t}};function Jf(e){return(Ic(e)?e.validators:e)||null}function TR(e){return Array.isArray(e)?Xf(e):e||null}function eh(e,t){return(Ic(t)?t.asyncValidators:e)||null}function SR(e){return Array.isArray(e)?Qf(e):e||null}function Ic(e){return e!=null&&!Array.isArray(e)&&typeof e=="object"}function b_(e,t,n){let r=e.controls;if(!(t?Object.keys(r):r).length)throw new D(1e3,"");if(!r[n])throw new D(1001,"")}function __(e,t,n){e._forEachChild((r,o)=>{if(n[o]===void 0)throw new D(1002,"")})}var Kr=class{_pendingDirty=!1;_hasOwnPendingAsyncValidator=null;_pendingTouched=!1;_onCollectionChange=()=>{};_updateOn;_parent=null;_asyncValidationSubscription;_composedValidatorFn;_composedAsyncValidatorFn;_rawValidators;_rawAsyncValidators;value;constructor(t,n){this._assignValidators(t),this._assignAsyncValidators(n)}get validator(){return this._composedValidatorFn}set validator(t){this._rawValidators=this._composedValidatorFn=t}get asyncValidator(){return this._composedAsyncValidatorFn}set asyncValidator(t){this._rawAsyncValidators=this._composedAsyncValidatorFn=t}get parent(){return this._parent}get status(){return Ke(this.statusReactive)}set status(t){Ke(()=>this.statusReactive.set(t))}_status=Yn(()=>this.statusReactive());statusReactive=Gt(void 0);get valid(){return this.status===ii}get invalid(){return this.status===mc}get pending(){return this.status==Yr}get disabled(){return this.status===si}get enabled(){return this.status!==si}errors;get pristine(){return Ke(this.pristineReactive)}set pristine(t){Ke(()=>this.pristineReactive.set(t))}_pristine=Yn(()=>this.pristineReactive());pristineReactive=Gt(!0);get dirty(){return!this.pristine}get touched(){return Ke(this.touchedReactive)}set touched(t){Ke(()=>this.touchedReactive.set(t))}_touched=Yn(()=>this.touchedReactive());touchedReactive=Gt(!1);get untouched(){return!this.touched}_events=new T;events=this._events.asObservable();valueChanges;statusChanges;get updateOn(){return this._updateOn?this._updateOn:this.parent?this.parent.updateOn:"change"}setValidators(t){this._assignValidators(t)}setAsyncValidators(t){this._assignAsyncValidators(t)}addValidators(t){this.setValidators(Jb(t,this._rawValidators))}addAsyncValidators(t){this.setAsyncValidators(Jb(t,this._rawAsyncValidators))}removeValidators(t){this.setValidators(e_(t,this._rawValidators))}removeAsyncValidators(t){this.setAsyncValidators(e_(t,this._rawAsyncValidators))}hasValidator(t){return gc(this._rawValidators,t)}hasAsyncValidator(t){return gc(this._rawAsyncValidators,t)}clearValidators(){this.validator=null}clearAsyncValidators(){this.asyncValidator=null}markAsTouched(t={}){let n=this.touched===!1;this.touched=!0;let r=t.sourceControl??this;this._parent&&!t.onlySelf&&this._parent.markAsTouched(B(_({},t),{sourceControl:r})),n&&t.emitEvent!==!1&&this._events.next(new li(!0,r))}markAllAsTouched(t={}){this.markAsTouched({onlySelf:!0,emitEvent:t.emitEvent,sourceControl:this}),this._forEachChild(n=>n.markAllAsTouched(t))}markAsUntouched(t={}){let n=this.touched===!0;this.touched=!1,this._pendingTouched=!1;let r=t.sourceControl??this;this._forEachChild(o=>{o.markAsUntouched({onlySelf:!0,emitEvent:t.emitEvent,sourceControl:r})}),this._parent&&!t.onlySelf&&this._parent._updateTouched(t,r),n&&t.emitEvent!==!1&&this._events.next(new li(!1,r))}markAsDirty(t={}){let n=this.pristine===!0;this.pristine=!1;let r=t.sourceControl??this;this._parent&&!t.onlySelf&&this._parent.markAsDirty(B(_({},t),{sourceControl:r})),n&&t.emitEvent!==!1&&this._events.next(new ci(!1,r))}markAsPristine(t={}){let n=this.pristine===!1;this.pristine=!0,this._pendingDirty=!1;let r=t.sourceControl??this;this._forEachChild(o=>{o.markAsPristine({onlySelf:!0,emitEvent:t.emitEvent})}),this._parent&&!t.onlySelf&&this._parent._updatePristine(t,r),n&&t.emitEvent!==!1&&this._events.next(new ci(!0,r))}markAsPending(t={}){this.status=Yr;let n=t.sourceControl??this;t.emitEvent!==!1&&(this._events.next(new Zr(this.status,n)),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.markAsPending(B(_({},t),{sourceControl:n}))}disable(t={}){let n=this._parentMarkedDirty(t.onlySelf);this.status=si,this.errors=null,this._forEachChild(o=>{o.disable(B(_({},t),{onlySelf:!0}))}),this._updateValue();let r=t.sourceControl??this;t.emitEvent!==!1&&(this._events.next(new bc(this.value,r)),this._events.next(new Zr(this.status,r)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._updateAncestors(B(_({},t),{skipPristineCheck:n}),this),this._onDisabledChange.forEach(o=>o(!0))}enable(t={}){let n=this._parentMarkedDirty(t.onlySelf);this.status=ii,this._forEachChild(r=>{r.enable(B(_({},t),{onlySelf:!0}))}),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent}),this._updateAncestors(B(_({},t),{skipPristineCheck:n}),this),this._onDisabledChange.forEach(r=>r(!1))}_updateAncestors(t,n){this._parent&&!t.onlySelf&&(this._parent.updateValueAndValidity(t),t.skipPristineCheck||this._parent._updatePristine({},n),this._parent._updateTouched({},n))}setParent(t){this._parent=t}getRawValue(){return this.value}updateValueAndValidity(t={}){if(this._setInitialStatus(),this._updateValue(),this.enabled){let r=this._cancelExistingSubscription();this.errors=this._runValidator(),this.status=this._calculateStatus(),(this.status===ii||this.status===Yr)&&this._runAsyncValidator(r,t.emitEvent)}let n=t.sourceControl??this;t.emitEvent!==!1&&(this._events.next(new bc(this.value,n)),this._events.next(new Zr(this.status,n)),this.valueChanges.emit(this.value),this.statusChanges.emit(this.status)),this._parent&&!t.onlySelf&&this._parent.updateValueAndValidity(B(_({},t),{sourceControl:n}))}_updateTreeValidity(t={emitEvent:!0}){this._forEachChild(n=>n._updateTreeValidity(t)),this.updateValueAndValidity({onlySelf:!0,emitEvent:t.emitEvent})}_setInitialStatus(){this.status=this._allControlsDisabled()?si:ii}_runValidator(){return this.validator?this.validator(this):null}_runAsyncValidator(t,n){if(this.asyncValidator){this.status=Yr,this._hasOwnPendingAsyncValidator={emitEvent:n!==!1};let r=d_(this.asyncValidator(this));this._asyncValidationSubscription=r.subscribe(o=>{this._hasOwnPendingAsyncValidator=null,this.setErrors(o,{emitEvent:n,shouldHaveEmitted:t})})}}_cancelExistingSubscription(){if(this._asyncValidationSubscription){this._asyncValidationSubscription.unsubscribe();let t=this._hasOwnPendingAsyncValidator?.emitEvent??!1;return this._hasOwnPendingAsyncValidator=null,t}return!1}setErrors(t,n={}){this.errors=t,this._updateControlsErrors(n.emitEvent!==!1,this,n.shouldHaveEmitted)}get(t){let n=t;return n==null||(Array.isArray(n)||(n=n.split(".")),n.length===0)?null:n.reduce((r,o)=>r&&r._find(o),this)}getError(t,n){let r=n?this.get(n):this;return r&&r.errors?r.errors[t]:null}hasError(t,n){return!!this.getError(t,n)}get root(){let t=this;for(;t._parent;)t=t._parent;return t}_updateControlsErrors(t,n,r){this.status=this._calculateStatus(),t&&this.statusChanges.emit(this.status),(t||r)&&this._events.next(new Zr(this.status,n)),this._parent&&this._parent._updateControlsErrors(t,n,r)}_initObservables(){this.valueChanges=new oe,this.statusChanges=new oe}_calculateStatus(){return this._allControlsDisabled()?si:this.errors?mc:this._hasOwnPendingAsyncValidator||this._anyControlsHaveStatus(Yr)?Yr:this._anyControlsHaveStatus(mc)?mc:ii}_anyControlsHaveStatus(t){return this._anyControls(n=>n.status===t)}_anyControlsDirty(){return this._anyControls(t=>t.dirty)}_anyControlsTouched(){return this._anyControls(t=>t.touched)}_updatePristine(t,n){let r=!this._anyControlsDirty(),o=this.pristine!==r;this.pristine=r,this._parent&&!t.onlySelf&&this._parent._updatePristine(t,n),o&&this._events.next(new ci(this.pristine,n))}_updateTouched(t={},n){this.touched=this._anyControlsTouched(),this._events.next(new li(this.touched,n)),this._parent&&!t.onlySelf&&this._parent._updateTouched(t,n)}_onDisabledChange=[];_registerOnCollectionChange(t){this._onCollectionChange=t}_setUpdateStrategy(t){Ic(t)&&t.updateOn!=null&&(this._updateOn=t.updateOn)}_parentMarkedDirty(t){let n=this._parent&&this._parent.dirty;return!t&&!!n&&!this._parent._anyControlsDirty()}_find(t){return null}_assignValidators(t){this._rawValidators=Array.isArray(t)?t.slice():t,this._composedValidatorFn=TR(this._rawValidators)}_assignAsyncValidators(t){this._rawAsyncValidators=Array.isArray(t)?t.slice():t,this._composedAsyncValidatorFn=SR(this._rawAsyncValidators)}},Xr=class extends Kr{constructor(t,n,r){super(Jf(n),eh(r,n)),this.controls=t,this._initObservables(),this._setUpdateStrategy(n),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;registerControl(t,n){return this.controls[t]?this.controls[t]:(this.controls[t]=n,n.setParent(this),n._registerOnCollectionChange(this._onCollectionChange),n)}addControl(t,n,r={}){this.registerControl(t,n),this.updateValueAndValidity({emitEvent:r.emitEvent}),this._onCollectionChange()}removeControl(t,n={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],this.updateValueAndValidity({emitEvent:n.emitEvent}),this._onCollectionChange()}setControl(t,n,r={}){this.controls[t]&&this.controls[t]._registerOnCollectionChange(()=>{}),delete this.controls[t],n&&this.registerControl(t,n),this.updateValueAndValidity({emitEvent:r.emitEvent}),this._onCollectionChange()}contains(t){return this.controls.hasOwnProperty(t)&&this.controls[t].enabled}setValue(t,n={}){__(this,!0,t),Object.keys(t).forEach(r=>{b_(this,!0,r),this.controls[r].setValue(t[r],{onlySelf:!0,emitEvent:n.emitEvent})}),this.updateValueAndValidity(n)}patchValue(t,n={}){t!=null&&(Object.keys(t).forEach(r=>{let o=this.controls[r];o&&o.patchValue(t[r],{onlySelf:!0,emitEvent:n.emitEvent})}),this.updateValueAndValidity(n))}reset(t={},n={}){this._forEachChild((r,o)=>{r.reset(t?t[o]:null,{onlySelf:!0,emitEvent:n.emitEvent})}),this._updatePristine(n,this),this._updateTouched(n,this),this.updateValueAndValidity(n)}getRawValue(){return this._reduceChildren({},(t,n,r)=>(t[r]=n.getRawValue(),t))}_syncPendingControls(){let t=this._reduceChildren(!1,(n,r)=>r._syncPendingControls()?!0:n);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_forEachChild(t){Object.keys(this.controls).forEach(n=>{let r=this.controls[n];r&&t(r,n)})}_setUpControls(){this._forEachChild(t=>{t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)})}_updateValue(){this.value=this._reduceValue()}_anyControls(t){for(let[n,r]of Object.entries(this.controls))if(this.contains(n)&&t(r))return!0;return!1}_reduceValue(){let t={};return this._reduceChildren(t,(n,r,o)=>((r.enabled||this.disabled)&&(n[o]=r.value),n))}_reduceChildren(t,n){let r=t;return this._forEachChild((o,i)=>{r=n(r,o,i)}),r}_allControlsDisabled(){for(let t of Object.keys(this.controls))if(this.controls[t].enabled)return!1;return Object.keys(this.controls).length>0||this.disabled}_find(t){return this.controls.hasOwnProperty(t)?this.controls[t]:null}};var Wf=class extends Xr{};var fi=new y("",{providedIn:"root",factory:()=>Mc}),Mc="always";function Tc(e,t){return[...t.path,e]}function Ec(e,t,n=Mc){th(e,t),t.valueAccessor.writeValue(e.value),(e.disabled||n==="always")&&t.valueAccessor.setDisabledState?.(e.disabled),AR(e,t),NR(e,t),RR(e,t),xR(e,t)}function t_(e,t,n=!0){let r=()=>{};t.valueAccessor&&(t.valueAccessor.registerOnChange(r),t.valueAccessor.registerOnTouched(r)),Cc(e,t),e&&(t._invokeOnDestroyCallbacks(),e._registerOnCollectionChange(()=>{}))}function wc(e,t){e.forEach(n=>{n.registerOnValidatorChange&&n.registerOnValidatorChange(t)})}function xR(e,t){if(t.valueAccessor.setDisabledState){let n=r=>{t.valueAccessor.setDisabledState(r)};e.registerOnDisabledChange(n),t._registerOnDestroy(()=>{e._unregisterOnDisabledChange(n)})}}function th(e,t){let n=v_(e);t.validator!==null?e.setValidators(Qb(n,t.validator)):typeof n=="function"&&e.setValidators([n]);let r=y_(e);t.asyncValidator!==null?e.setAsyncValidators(Qb(r,t.asyncValidator)):typeof r=="function"&&e.setAsyncValidators([r]);let o=()=>e.updateValueAndValidity();wc(t._rawValidators,o),wc(t._rawAsyncValidators,o)}function Cc(e,t){let n=!1;if(e!==null){if(t.validator!==null){let o=v_(e);if(Array.isArray(o)&&o.length>0){let i=o.filter(s=>s!==t.validator);i.length!==o.length&&(n=!0,e.setValidators(i))}}if(t.asyncValidator!==null){let o=y_(e);if(Array.isArray(o)&&o.length>0){let i=o.filter(s=>s!==t.asyncValidator);i.length!==o.length&&(n=!0,e.setAsyncValidators(i))}}}let r=()=>{};return wc(t._rawValidators,r),wc(t._rawAsyncValidators,r),n}function AR(e,t){t.valueAccessor.registerOnChange(n=>{e._pendingValue=n,e._pendingChange=!0,e._pendingDirty=!0,e.updateOn==="change"&&D_(e,t)})}function RR(e,t){t.valueAccessor.registerOnTouched(()=>{e._pendingTouched=!0,e.updateOn==="blur"&&e._pendingChange&&D_(e,t),e.updateOn!=="submit"&&e.markAsTouched()})}function D_(e,t){e._pendingDirty&&e.markAsDirty(),e.setValue(e._pendingValue,{emitModelToViewChange:!1}),t.viewToModelUpdate(e._pendingValue),e._pendingChange=!1}function NR(e,t){let n=(r,o)=>{t.valueAccessor.writeValue(r),o&&t.viewToModelUpdate(r)};e.registerOnChange(n),t._registerOnDestroy(()=>{e._unregisterOnChange(n)})}function E_(e,t){e==null,th(e,t)}function OR(e,t){return Cc(e,t)}function w_(e,t){if(!e.hasOwnProperty("model"))return!1;let n=e.model;return n.isFirstChange()?!0:!Object.is(t,n.currentValue)}function kR(e){return Object.getPrototypeOf(e.constructor)===Yf}function C_(e,t){e._syncPendingControls(),t.forEach(n=>{let r=n.control;r.updateOn==="submit"&&r._pendingChange&&(n.viewToModelUpdate(r._pendingValue),r._pendingChange=!1)})}function I_(e,t){if(!t)return null;Array.isArray(t);let n,r,o;return t.forEach(i=>{i.constructor===c_?n=i:kR(i)?r=i:o=i}),o||r||n||null}function FR(e,t){let n=e.indexOf(t);n>-1&&e.splice(n,1)}var PR={provide:Ie,useExisting:je(()=>LR)},ai=Promise.resolve(),LR=(()=>{class e extends Ie{callSetDisabledState;get submitted(){return Ke(this.submittedReactive)}_submitted=Yn(()=>this.submittedReactive());submittedReactive=Gt(!1);_directives=new Set;form;ngSubmit=new oe;options;constructor(n,r,o){super(),this.callSetDisabledState=o,this.form=new Xr({},Xf(n),Qf(r))}ngAfterViewInit(){this._setUpdateStrategy()}get formDirective(){return this}get control(){return this.form}get path(){return[]}get controls(){return this.form.controls}addControl(n){ai.then(()=>{let r=this._findContainer(n.path);n.control=r.registerControl(n.name,n.control),Ec(n.control,n,this.callSetDisabledState),n.control.updateValueAndValidity({emitEvent:!1}),this._directives.add(n)})}getControl(n){return this.form.get(n.path)}removeControl(n){ai.then(()=>{let r=this._findContainer(n.path);r&&r.removeControl(n.name),this._directives.delete(n)})}addFormGroup(n){ai.then(()=>{let r=this._findContainer(n.path),o=new Xr({});E_(o,n),r.registerControl(n.name,o),o.updateValueAndValidity({emitEvent:!1})})}removeFormGroup(n){ai.then(()=>{let r=this._findContainer(n.path);r&&r.removeControl(n.name)})}getFormGroup(n){return this.form.get(n.path)}updateModel(n,r){ai.then(()=>{this.form.get(n.path).setValue(r)})}setValue(n){this.control.setValue(n)}onSubmit(n){return this.submittedReactive.set(!0),C_(this.form,this._directives),this.ngSubmit.emit(n),this.form._events.next(new _c(this.control)),n?.target?.method==="dialog"}onReset(){this.resetForm()}resetForm(n=void 0){this.form.reset(n),this.submittedReactive.set(!1),this.form._events.next(new Dc(this.form))}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.form._updateOn=this.options.updateOn)}_findContainer(n){return n.pop(),n.length?this.form.get(n):this.form}static \u0275fac=function(r){return new(r||e)(E(Qr,10),E(Jr,10),E(fi,8))};static \u0275dir=j({type:e,selectors:[["form",3,"ngNoForm","",3,"formGroup",""],["ng-form"],["","ngForm",""]],hostBindings:function(r,o){r&1&&dn("submit",function(s){return o.onSubmit(s)})("reset",function(){return o.onReset()})},inputs:{options:[0,"ngFormOptions","options"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[Ue([PR]),ee]})}return e})();function n_(e,t){let n=e.indexOf(t);n>-1&&e.splice(n,1)}function r_(e){return typeof e=="object"&&e!==null&&Object.keys(e).length===2&&"value"in e&&"disabled"in e}var ui=class extends Kr{defaultValue=null;_onChange=[];_pendingValue;_pendingChange=!1;constructor(t=null,n,r){super(Jf(n),eh(r,n)),this._applyFormState(t),this._setUpdateStrategy(n),this._initObservables(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator}),Ic(n)&&(n.nonNullable||n.initialValueIsDefault)&&(r_(t)?this.defaultValue=t.value:this.defaultValue=t)}setValue(t,n={}){this.value=this._pendingValue=t,this._onChange.length&&n.emitModelToViewChange!==!1&&this._onChange.forEach(r=>r(this.value,n.emitViewToModelChange!==!1)),this.updateValueAndValidity(n)}patchValue(t,n={}){this.setValue(t,n)}reset(t=this.defaultValue,n={}){this._applyFormState(t),this.markAsPristine(n),this.markAsUntouched(n),this.setValue(this.value,n),this._pendingChange=!1}_updateValue(){}_anyControls(t){return!1}_allControlsDisabled(){return this.disabled}registerOnChange(t){this._onChange.push(t)}_unregisterOnChange(t){n_(this._onChange,t)}registerOnDisabledChange(t){this._onDisabledChange.push(t)}_unregisterOnDisabledChange(t){n_(this._onDisabledChange,t)}_forEachChild(t){}_syncPendingControls(){return this.updateOn==="submit"&&(this._pendingDirty&&this.markAsDirty(),this._pendingTouched&&this.markAsTouched(),this._pendingChange)?(this.setValue(this._pendingValue,{onlySelf:!0,emitModelToViewChange:!1}),!0):!1}_applyFormState(t){r_(t)?(this.value=this._pendingValue=t.value,t.disabled?this.disable({onlySelf:!0,emitEvent:!1}):this.enable({onlySelf:!0,emitEvent:!1})):this.value=this._pendingValue=t}};var VR=e=>e instanceof ui,jR=(()=>{class e extends Ie{_parent;ngOnInit(){this._checkParentType(),this.formDirective.addFormGroup(this)}ngOnDestroy(){this.formDirective&&this.formDirective.removeFormGroup(this)}get control(){return this.formDirective.getFormGroup(this)}get path(){return Tc(this.name==null?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_checkParentType(){}static \u0275fac=(()=>{let n;return function(o){return(n||(n=Ne(e)))(o||e)}})();static \u0275dir=j({type:e,standalone:!1,features:[ee]})}return e})();var BR={provide:Kn,useExisting:je(()=>HR)},o_=Promise.resolve(),HR=(()=>{class e extends Kn{_changeDetectorRef;callSetDisabledState;control=new ui;static ngAcceptInputType_isDisabled;_registered=!1;viewModel;name="";isDisabled;model;options;update=new oe;constructor(n,r,o,i,s,a){super(),this._changeDetectorRef=s,this.callSetDisabledState=a,this._parent=n,this._setValidators(r),this._setAsyncValidators(o),this.valueAccessor=I_(this,i)}ngOnChanges(n){if(this._checkForErrors(),!this._registered||"name"in n){if(this._registered&&(this._checkName(),this.formDirective)){let r=n.name.previousValue;this.formDirective.removeControl({name:r,path:this._getPath(r)})}this._setUpControl()}"isDisabled"in n&&this._updateDisabled(n),w_(n,this.viewModel)&&(this._updateValue(this.model),this.viewModel=this.model)}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}get path(){return this._getPath(this.name)}get formDirective(){return this._parent?this._parent.formDirective:null}viewToModelUpdate(n){this.viewModel=n,this.update.emit(n)}_setUpControl(){this._setUpdateStrategy(),this._isStandalone()?this._setUpStandalone():this.formDirective.addControl(this),this._registered=!0}_setUpdateStrategy(){this.options&&this.options.updateOn!=null&&(this.control._updateOn=this.options.updateOn)}_isStandalone(){return!this._parent||!!(this.options&&this.options.standalone)}_setUpStandalone(){Ec(this.control,this,this.callSetDisabledState),this.control.updateValueAndValidity({emitEvent:!1})}_checkForErrors(){this._checkName()}_checkName(){this.options&&this.options.name&&(this.name=this.options.name),!this._isStandalone()&&this.name}_updateValue(n){o_.then(()=>{this.control.setValue(n,{emitViewToModelChange:!1}),this._changeDetectorRef?.markForCheck()})}_updateDisabled(n){let r=n.isDisabled.currentValue,o=r!==0&&At(r);o_.then(()=>{o&&!this.control.disabled?this.control.disable():!o&&this.control.disabled&&this.control.enable(),this._changeDetectorRef?.markForCheck()})}_getPath(n){return this._parent?Tc(n,this._parent):[n]}static \u0275fac=function(r){return new(r||e)(E(Ie,9),E(Qr,10),E(Jr,10),E(di,10),E($r,8),E(fi,8))};static \u0275dir=j({type:e,selectors:[["","ngModel","",3,"formControlName","",3,"formControl",""]],inputs:{name:"name",isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"],options:[0,"ngModelOptions","options"]},outputs:{update:"ngModelChange"},exportAs:["ngModel"],standalone:!1,features:[Ue([BR]),ee,$t]})}return e})();var zH=(()=>{class e{static \u0275fac=function(r){return new(r||e)};static \u0275dir=j({type:e,selectors:[["form",3,"ngNoForm","",3,"ngNativeValidate",""]],hostAttrs:["novalidate",""],standalone:!1})}return e})();var M_=new y("");var UR={provide:Ie,useExisting:je(()=>T_)},T_=(()=>{class e extends Ie{callSetDisabledState;get submitted(){return Ke(this._submittedReactive)}set submitted(n){this._submittedReactive.set(n)}_submitted=Yn(()=>this._submittedReactive());_submittedReactive=Gt(!1);_oldForm;_onCollectionChange=()=>this._updateDomValue();directives=[];form=null;ngSubmit=new oe;constructor(n,r,o){super(),this.callSetDisabledState=o,this._setValidators(n),this._setAsyncValidators(r)}ngOnChanges(n){n.hasOwnProperty("form")&&(this._updateValidators(),this._updateDomValue(),this._updateRegistrations(),this._oldForm=this.form)}ngOnDestroy(){this.form&&(Cc(this.form,this),this.form._onCollectionChange===this._onCollectionChange&&this.form._registerOnCollectionChange(()=>{}))}get formDirective(){return this}get control(){return this.form}get path(){return[]}addControl(n){let r=this.form.get(n.path);return Ec(r,n,this.callSetDisabledState),r.updateValueAndValidity({emitEvent:!1}),this.directives.push(n),r}getControl(n){return this.form.get(n.path)}removeControl(n){t_(n.control||null,n,!1),FR(this.directives,n)}addFormGroup(n){this._setUpFormContainer(n)}removeFormGroup(n){this._cleanUpFormContainer(n)}getFormGroup(n){return this.form.get(n.path)}addFormArray(n){this._setUpFormContainer(n)}removeFormArray(n){this._cleanUpFormContainer(n)}getFormArray(n){return this.form.get(n.path)}updateModel(n,r){this.form.get(n.path).setValue(r)}onSubmit(n){return this._submittedReactive.set(!0),C_(this.form,this.directives),this.ngSubmit.emit(n),this.form._events.next(new _c(this.control)),n?.target?.method==="dialog"}onReset(){this.resetForm()}resetForm(n=void 0){this.form.reset(n),this._submittedReactive.set(!1),this.form._events.next(new Dc(this.form))}_updateDomValue(){this.directives.forEach(n=>{let r=n.control,o=this.form.get(n.path);r!==o&&(t_(r||null,n),VR(o)&&(Ec(o,n,this.callSetDisabledState),n.control=o))}),this.form._updateTreeValidity({emitEvent:!1})}_setUpFormContainer(n){let r=this.form.get(n.path);E_(r,n),r.updateValueAndValidity({emitEvent:!1})}_cleanUpFormContainer(n){if(this.form){let r=this.form.get(n.path);r&&OR(r,n)&&r.updateValueAndValidity({emitEvent:!1})}}_updateRegistrations(){this.form._registerOnCollectionChange(this._onCollectionChange),this._oldForm&&this._oldForm._registerOnCollectionChange(()=>{})}_updateValidators(){th(this.form,this),this._oldForm&&Cc(this._oldForm,this)}static \u0275fac=function(r){return new(r||e)(E(Qr,10),E(Jr,10),E(fi,8))};static \u0275dir=j({type:e,selectors:[["","formGroup",""]],hostBindings:function(r,o){r&1&&dn("submit",function(s){return o.onSubmit(s)})("reset",function(){return o.onReset()})},inputs:{form:[0,"formGroup","form"]},outputs:{ngSubmit:"ngSubmit"},exportAs:["ngForm"],standalone:!1,features:[Ue([UR]),ee,$t]})}return e})(),$R={provide:Ie,useExisting:je(()=>S_)},S_=(()=>{class e extends jR{name=null;constructor(n,r,o){super(),this._parent=n,this._setValidators(r),this._setAsyncValidators(o)}_checkParentType(){A_(this._parent)}static \u0275fac=function(r){return new(r||e)(E(Ie,13),E(Qr,10),E(Jr,10))};static \u0275dir=j({type:e,selectors:[["","formGroupName",""]],inputs:{name:[0,"formGroupName","name"]},standalone:!1,features:[Ue([$R]),ee]})}return e})(),zR={provide:Ie,useExisting:je(()=>x_)},x_=(()=>{class e extends Ie{_parent;name=null;constructor(n,r,o){super(),this._parent=n,this._setValidators(r),this._setAsyncValidators(o)}ngOnInit(){A_(this._parent),this.formDirective.addFormArray(this)}ngOnDestroy(){this.formDirective?.removeFormArray(this)}get control(){return this.formDirective.getFormArray(this)}get formDirective(){return this._parent?this._parent.formDirective:null}get path(){return Tc(this.name==null?this.name:this.name.toString(),this._parent)}static \u0275fac=function(r){return new(r||e)(E(Ie,13),E(Qr,10),E(Jr,10))};static \u0275dir=j({type:e,selectors:[["","formArrayName",""]],inputs:{name:[0,"formArrayName","name"]},standalone:!1,features:[Ue([zR]),ee]})}return e})();function A_(e){return!(e instanceof S_)&&!(e instanceof T_)&&!(e instanceof x_)}var GR={provide:Kn,useExisting:je(()=>WR)},WR=(()=>{class e extends Kn{_ngModelWarningConfig;_added=!1;viewModel;control;name=null;set isDisabled(n){}model;update=new oe;static _ngModelWarningSentOnce=!1;_ngModelWarningSent=!1;constructor(n,r,o,i,s){super(),this._ngModelWarningConfig=s,this._parent=n,this._setValidators(r),this._setAsyncValidators(o),this.valueAccessor=I_(this,i)}ngOnChanges(n){this._added||this._setUpControl(),w_(n,this.viewModel)&&(this.viewModel=this.model,this.formDirective.updateModel(this,this.model))}ngOnDestroy(){this.formDirective&&this.formDirective.removeControl(this)}viewToModelUpdate(n){this.viewModel=n,this.update.emit(n)}get path(){return Tc(this.name==null?this.name:this.name.toString(),this._parent)}get formDirective(){return this._parent?this._parent.formDirective:null}_setUpControl(){this.control=this.formDirective.addControl(this),this._added=!0}static \u0275fac=function(r){return new(r||e)(E(Ie,13),E(Qr,10),E(Jr,10),E(di,10),E(M_,8))};static \u0275dir=j({type:e,selectors:[["","formControlName",""]],inputs:{name:[0,"formControlName","name"],isDisabled:[0,"disabled","isDisabled"],model:[0,"ngModel","model"]},outputs:{update:"ngModelChange"},standalone:!1,features:[Ue([GR]),ee,$t]})}return e})();var qR={provide:di,useExisting:je(()=>N_),multi:!0};function R_(e,t){return e==null?`${t}`:(t&&typeof t=="object"&&(t="Object"),`${e}: ${t}`.slice(0,50))}function YR(e){return e.split(":")[0]}var N_=(()=>{class e extends Yf{value;_optionMap=new Map;_idCounter=0;set compareWith(n){this._compareWith=n}_compareWith=Object.is;writeValue(n){this.value=n;let r=this._getOptionId(n),o=R_(r,n);this.setProperty("value",o)}registerOnChange(n){this.onChange=r=>{this.value=this._getOptionValue(r),n(this.value)}}_registerOption(){return(this._idCounter++).toString()}_getOptionId(n){for(let r of this._optionMap.keys())if(this._compareWith(this._optionMap.get(r),n))return r;return null}_getOptionValue(n){let r=YR(n);return this._optionMap.has(r)?this._optionMap.get(r):n}static \u0275fac=(()=>{let n;return function(o){return(n||(n=Ne(e)))(o||e)}})();static \u0275dir=j({type:e,selectors:[["select","formControlName","",3,"multiple",""],["select","formControl","",3,"multiple",""],["select","ngModel","",3,"multiple",""]],hostBindings:function(r,o){r&1&&dn("change",function(s){return o.onChange(s.target.value)})("blur",function(){return o.onTouched()})},inputs:{compareWith:"compareWith"},standalone:!1,features:[Ue([qR]),ee]})}return e})(),GH=(()=>{class e{_element;_renderer;_select;id;constructor(n,r,o){this._element=n,this._renderer=r,this._select=o,this._select&&(this.id=this._select._registerOption())}set ngValue(n){this._select!=null&&(this._select._optionMap.set(this.id,n),this._setElementValue(R_(this.id,n)),this._select.writeValue(this._select.value))}set value(n){this._setElementValue(n),this._select&&this._select.writeValue(this._select.value)}_setElementValue(n){this._renderer.setProperty(this._element.nativeElement,"value",n)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}static \u0275fac=function(r){return new(r||e)(E(X),E(dt),E(N_,9))};static \u0275dir=j({type:e,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"},standalone:!1})}return e})(),ZR={provide:di,useExisting:je(()=>O_),multi:!0};function i_(e,t){return e==null?`${t}`:(typeof t=="string"&&(t=`'${t}'`),t&&typeof t=="object"&&(t="Object"),`${e}: ${t}`.slice(0,50))}function KR(e){return e.split(":")[0]}var O_=(()=>{class e extends Yf{value;_optionMap=new Map;_idCounter=0;set compareWith(n){this._compareWith=n}_compareWith=Object.is;writeValue(n){this.value=n;let r;if(Array.isArray(n)){let o=n.map(i=>this._getOptionId(i));r=(i,s)=>{i._setSelected(o.indexOf(s.toString())>-1)}}else r=(o,i)=>{o._setSelected(!1)};this._optionMap.forEach(r)}registerOnChange(n){this.onChange=r=>{let o=[],i=r.selectedOptions;if(i!==void 0){let s=i;for(let a=0;a{let n;return function(o){return(n||(n=Ne(e)))(o||e)}})();static \u0275dir=j({type:e,selectors:[["select","multiple","","formControlName",""],["select","multiple","","formControl",""],["select","multiple","","ngModel",""]],hostBindings:function(r,o){r&1&&dn("change",function(s){return o.onChange(s.target)})("blur",function(){return o.onTouched()})},inputs:{compareWith:"compareWith"},standalone:!1,features:[Ue([ZR]),ee]})}return e})(),WH=(()=>{class e{_element;_renderer;_select;id;_value;constructor(n,r,o){this._element=n,this._renderer=r,this._select=o,this._select&&(this.id=this._select._registerOption(this))}set ngValue(n){this._select!=null&&(this._value=n,this._setElementValue(i_(this.id,n)),this._select.writeValue(this._select.value))}set value(n){this._select?(this._value=n,this._setElementValue(i_(this.id,n)),this._select.writeValue(this._select.value)):this._setElementValue(n)}_setElementValue(n){this._renderer.setProperty(this._element.nativeElement,"value",n)}_setSelected(n){this._renderer.setProperty(this._element.nativeElement,"selected",n)}ngOnDestroy(){this._select&&(this._select._optionMap.delete(this.id),this._select.writeValue(this._select.value))}static \u0275fac=function(r){return new(r||e)(E(X),E(dt),E(O_,9))};static \u0275dir=j({type:e,selectors:[["option"]],inputs:{ngValue:"ngValue",value:"value"},standalone:!1})}return e})();var k_=(()=>{class e{static \u0275fac=function(r){return new(r||e)};static \u0275mod=U({type:e});static \u0275inj=H({})}return e})(),qf=class extends Kr{constructor(t,n,r){super(Jf(n),eh(r,n)),this.controls=t,this._initObservables(),this._setUpdateStrategy(n),this._setUpControls(),this.updateValueAndValidity({onlySelf:!0,emitEvent:!!this.asyncValidator})}controls;at(t){return this.controls[this._adjustIndex(t)]}push(t,n={}){this.controls.push(t),this._registerControl(t),this.updateValueAndValidity({emitEvent:n.emitEvent}),this._onCollectionChange()}insert(t,n,r={}){this.controls.splice(t,0,n),this._registerControl(n),this.updateValueAndValidity({emitEvent:r.emitEvent})}removeAt(t,n={}){let r=this._adjustIndex(t);r<0&&(r=0),this.controls[r]&&this.controls[r]._registerOnCollectionChange(()=>{}),this.controls.splice(r,1),this.updateValueAndValidity({emitEvent:n.emitEvent})}setControl(t,n,r={}){let o=this._adjustIndex(t);o<0&&(o=0),this.controls[o]&&this.controls[o]._registerOnCollectionChange(()=>{}),this.controls.splice(o,1),n&&(this.controls.splice(o,0,n),this._registerControl(n)),this.updateValueAndValidity({emitEvent:r.emitEvent}),this._onCollectionChange()}get length(){return this.controls.length}setValue(t,n={}){__(this,!1,t),t.forEach((r,o)=>{b_(this,!1,o),this.at(o).setValue(r,{onlySelf:!0,emitEvent:n.emitEvent})}),this.updateValueAndValidity(n)}patchValue(t,n={}){t!=null&&(t.forEach((r,o)=>{this.at(o)&&this.at(o).patchValue(r,{onlySelf:!0,emitEvent:n.emitEvent})}),this.updateValueAndValidity(n))}reset(t=[],n={}){this._forEachChild((r,o)=>{r.reset(t[o],{onlySelf:!0,emitEvent:n.emitEvent})}),this._updatePristine(n,this),this._updateTouched(n,this),this.updateValueAndValidity(n)}getRawValue(){return this.controls.map(t=>t.getRawValue())}clear(t={}){this.controls.length<1||(this._forEachChild(n=>n._registerOnCollectionChange(()=>{})),this.controls.splice(0),this.updateValueAndValidity({emitEvent:t.emitEvent}))}_adjustIndex(t){return t<0?t+this.length:t}_syncPendingControls(){let t=this.controls.reduce((n,r)=>r._syncPendingControls()?!0:n,!1);return t&&this.updateValueAndValidity({onlySelf:!0}),t}_forEachChild(t){this.controls.forEach((n,r)=>{t(n,r)})}_updateValue(){this.value=this.controls.filter(t=>t.enabled||this.disabled).map(t=>t.value)}_anyControls(t){return this.controls.some(n=>n.enabled&&t(n))}_setUpControls(){this._forEachChild(t=>this._registerControl(t))}_allControlsDisabled(){for(let t of this.controls)if(t.enabled)return!1;return this.controls.length>0||this.disabled}_registerControl(t){t.setParent(this),t._registerOnCollectionChange(this._onCollectionChange)}_find(t){return this.at(t)??null}};function s_(e){return!!e&&(e.asyncValidators!==void 0||e.validators!==void 0||e.updateOn!==void 0)}var qH=(()=>{class e{useNonNullable=!1;get nonNullable(){let n=new e;return n.useNonNullable=!0,n}group(n,r=null){let o=this._reduceControls(n),i={};return s_(r)?i=r:r!==null&&(i.validators=r.validator,i.asyncValidators=r.asyncValidator),new Xr(o,i)}record(n,r=null){let o=this._reduceControls(n);return new Wf(o,r)}control(n,r,o){let i={};return this.useNonNullable?(s_(r)?i=r:(i.validators=r,i.asyncValidators=o),new ui(n,B(_({},i),{nonNullable:!0}))):new ui(n,r,o)}array(n,r,o){let i=n.map(s=>this._createControl(s));return new qf(i,r,o)}_reduceControls(n){let r={};return Object.keys(n).forEach(o=>{r[o]=this._createControl(n[o])}),r}_createControl(n){if(n instanceof ui)return n;if(n instanceof Kr)return n;if(Array.isArray(n)){let r=n[0],o=n.length>1?n[1]:null,i=n.length>2?n[2]:null;return this.control(r,o,i)}else return this.control(n)}static \u0275fac=function(r){return new(r||e)};static \u0275prov=v({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var YH=(()=>{class e{static withConfig(n){return{ngModule:e,providers:[{provide:fi,useValue:n.callSetDisabledState??Mc}]}}static \u0275fac=function(r){return new(r||e)};static \u0275mod=U({type:e});static \u0275inj=H({imports:[k_]})}return e})(),ZH=(()=>{class e{static withConfig(n){return{ngModule:e,providers:[{provide:M_,useValue:n.warnOnNgModelWithFormControl??"always"},{provide:fi,useValue:n.callSetDisabledState??Mc}]}}static \u0275fac=function(r){return new(r||e)};static \u0275mod=U({type:e});static \u0275inj=H({imports:[k_]})}return e})();function hi(e){return e.buttons===0||e.detail===0}function pi(e){let t=e.touches&&e.touches[0]||e.changedTouches&&e.changedTouches[0];return!!t&&t.identifier===-1&&(t.radiusX==null||t.radiusX===1)&&(t.radiusY==null||t.radiusY===1)}var nh;function F_(){if(nh==null){let e=typeof document<"u"?document.head:null;nh=!!(e&&(e.createShadowRoot||e.attachShadow))}return nh}function rh(e){if(F_()){let t=e.getRootNode?e.getRootNode():null;if(typeof ShadowRoot<"u"&&ShadowRoot&&t instanceof ShadowRoot)return t}return null}function mi(){let e=typeof document<"u"&&document?document.activeElement:null;for(;e&&e.shadowRoot;){let t=e.shadowRoot.activeElement;if(t===e)break;e=t}return e}function Fe(e){return e.composedPath?e.composedPath()[0]:e.target}function Je(e,t,n,r,o){let i=parseInt(_f.major),s=parseInt(_f.minor);return i>19||i===19&&s>0||i===0&&s===0?e.listen(t,n,r,o):(t.addEventListener(n,r,o),()=>{t.removeEventListener(n,r,o)})}var oh;try{oh=typeof Intl<"u"&&Intl.v8BreakIterator}catch{oh=!1}var ne=(()=>{class e{_platformId=h(zn);isBrowser=this._platformId?xf(this._platformId):typeof document=="object"&&!!document;EDGE=this.isBrowser&&/(edge)/i.test(navigator.userAgent);TRIDENT=this.isBrowser&&/(msie|trident)/i.test(navigator.userAgent);BLINK=this.isBrowser&&!!(window.chrome||oh)&&typeof CSS<"u"&&!this.EDGE&&!this.TRIDENT;WEBKIT=this.isBrowser&&/AppleWebKit/i.test(navigator.userAgent)&&!this.BLINK&&!this.EDGE&&!this.TRIDENT;IOS=this.isBrowser&&/iPad|iPhone|iPod/.test(navigator.userAgent)&&!("MSStream"in window);FIREFOX=this.isBrowser&&/(firefox|minefield)/i.test(navigator.userAgent);ANDROID=this.isBrowser&&/android/i.test(navigator.userAgent)&&!this.TRIDENT;SAFARI=this.isBrowser&&/safari/i.test(navigator.userAgent)&&this.WEBKIT;constructor(){}static \u0275fac=function(r){return new(r||e)};static \u0275prov=v({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var gi;function P_(){if(gi==null&&typeof window<"u")try{window.addEventListener("test",null,Object.defineProperty({},"passive",{get:()=>gi=!0}))}finally{gi=gi||!1}return gi}function eo(e){return P_()?e:!!e.capture}function vi(e,t=0){return L_(e)?Number(e):arguments.length===2?t:0}function L_(e){return!isNaN(parseFloat(e))&&!isNaN(Number(e))}function Rt(e){return e instanceof X?e.nativeElement:e}var V_=new y("cdk-input-modality-detector-options"),j_={ignoreKeys:[18,17,224,91,16]},B_=650,ih={passive:!0,capture:!0},H_=(()=>{class e{_platform=h(ne);_listenerCleanups;modalityDetected;modalityChanged;get mostRecentModality(){return this._modality.value}_mostRecentTarget=null;_modality=new Ot(null);_options;_lastTouchMs=0;_onKeydown=n=>{this._options?.ignoreKeys?.some(r=>r===n.keyCode)||(this._modality.next("keyboard"),this._mostRecentTarget=Fe(n))};_onMousedown=n=>{Date.now()-this._lastTouchMs{if(pi(n)){this._modality.next("keyboard");return}this._lastTouchMs=Date.now(),this._modality.next("touch"),this._mostRecentTarget=Fe(n)};constructor(){let n=h(x),r=h(k),o=h(V_,{optional:!0});if(this._options=_(_({},j_),o),this.modalityDetected=this._modality.pipe(po(1)),this.modalityChanged=this.modalityDetected.pipe(ns()),this._platform.isBrowser){let i=h(ve).createRenderer(null,null);this._listenerCleanups=n.runOutsideAngular(()=>[Je(i,r,"keydown",this._onKeydown,ih),Je(i,r,"mousedown",this._onMousedown,ih),Je(i,r,"touchstart",this._onTouchstart,ih)])}}ngOnDestroy(){this._modality.complete(),this._listenerCleanups?.forEach(n=>n())}static \u0275fac=function(r){return new(r||e)};static \u0275prov=v({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),yi=function(e){return e[e.IMMEDIATE=0]="IMMEDIATE",e[e.EVENTUAL=1]="EVENTUAL",e}(yi||{}),U_=new y("cdk-focus-monitor-default-options"),Sc=eo({passive:!0,capture:!0}),bi=(()=>{class e{_ngZone=h(x);_platform=h(ne);_inputModalityDetector=h(H_);_origin=null;_lastFocusOrigin;_windowFocused=!1;_windowFocusTimeoutId;_originTimeoutId;_originFromTouchInteraction=!1;_elementInfo=new Map;_monitoredElementCount=0;_rootNodeFocusListenerCount=new Map;_detectionMode;_windowFocusListener=()=>{this._windowFocused=!0,this._windowFocusTimeoutId=setTimeout(()=>this._windowFocused=!1)};_document=h(k,{optional:!0});_stopInputModalityDetector=new T;constructor(){let n=h(U_,{optional:!0});this._detectionMode=n?.detectionMode||yi.IMMEDIATE}_rootNodeFocusAndBlurListener=n=>{let r=Fe(n);for(let o=r;o;o=o.parentElement)n.type==="focus"?this._onFocus(n,o):this._onBlur(n,o)};monitor(n,r=!1){let o=Rt(n);if(!this._platform.isBrowser||o.nodeType!==1)return $e();let i=rh(o)||this._getDocument(),s=this._elementInfo.get(o);if(s)return r&&(s.checkChildren=!0),s.subject;let a={checkChildren:r,subject:new T,rootNode:i};return this._elementInfo.set(o,a),this._registerGlobalListeners(a),a.subject}stopMonitoring(n){let r=Rt(n),o=this._elementInfo.get(r);o&&(o.subject.complete(),this._setClasses(r),this._elementInfo.delete(r),this._removeGlobalListeners(o))}focusVia(n,r,o){let i=Rt(n),s=this._getDocument().activeElement;i===s?this._getClosestElementsInfo(i).forEach(([a,c])=>this._originChanged(a,r,c)):(this._setOrigin(r),typeof i.focus=="function"&&i.focus(o))}ngOnDestroy(){this._elementInfo.forEach((n,r)=>this.stopMonitoring(r))}_getDocument(){return this._document||document}_getWindow(){return this._getDocument().defaultView||window}_getFocusOrigin(n){return this._origin?this._originFromTouchInteraction?this._shouldBeAttributedToTouch(n)?"touch":"program":this._origin:this._windowFocused&&this._lastFocusOrigin?this._lastFocusOrigin:n&&this._isLastInteractionFromInputLabel(n)?"mouse":"program"}_shouldBeAttributedToTouch(n){return this._detectionMode===yi.EVENTUAL||!!n?.contains(this._inputModalityDetector._mostRecentTarget)}_setClasses(n,r){n.classList.toggle("cdk-focused",!!r),n.classList.toggle("cdk-touch-focused",r==="touch"),n.classList.toggle("cdk-keyboard-focused",r==="keyboard"),n.classList.toggle("cdk-mouse-focused",r==="mouse"),n.classList.toggle("cdk-program-focused",r==="program")}_setOrigin(n,r=!1){this._ngZone.runOutsideAngular(()=>{if(this._origin=n,this._originFromTouchInteraction=n==="touch"&&r,this._detectionMode===yi.IMMEDIATE){clearTimeout(this._originTimeoutId);let o=this._originFromTouchInteraction?B_:1;this._originTimeoutId=setTimeout(()=>this._origin=null,o)}})}_onFocus(n,r){let o=this._elementInfo.get(r),i=Fe(n);!o||!o.checkChildren&&r!==i||this._originChanged(r,this._getFocusOrigin(i),o)}_onBlur(n,r){let o=this._elementInfo.get(r);!o||o.checkChildren&&n.relatedTarget instanceof Node&&r.contains(n.relatedTarget)||(this._setClasses(r),this._emitOrigin(o,null))}_emitOrigin(n,r){n.subject.observers.length&&this._ngZone.run(()=>n.subject.next(r))}_registerGlobalListeners(n){if(!this._platform.isBrowser)return;let r=n.rootNode,o=this._rootNodeFocusListenerCount.get(r)||0;o||this._ngZone.runOutsideAngular(()=>{r.addEventListener("focus",this._rootNodeFocusAndBlurListener,Sc),r.addEventListener("blur",this._rootNodeFocusAndBlurListener,Sc)}),this._rootNodeFocusListenerCount.set(r,o+1),++this._monitoredElementCount===1&&(this._ngZone.runOutsideAngular(()=>{this._getWindow().addEventListener("focus",this._windowFocusListener)}),this._inputModalityDetector.modalityDetected.pipe(tn(this._stopInputModalityDetector)).subscribe(i=>{this._setOrigin(i,!0)}))}_removeGlobalListeners(n){let r=n.rootNode;if(this._rootNodeFocusListenerCount.has(r)){let o=this._rootNodeFocusListenerCount.get(r);o>1?this._rootNodeFocusListenerCount.set(r,o-1):(r.removeEventListener("focus",this._rootNodeFocusAndBlurListener,Sc),r.removeEventListener("blur",this._rootNodeFocusAndBlurListener,Sc),this._rootNodeFocusListenerCount.delete(r))}--this._monitoredElementCount||(this._getWindow().removeEventListener("focus",this._windowFocusListener),this._stopInputModalityDetector.next(),clearTimeout(this._windowFocusTimeoutId),clearTimeout(this._originTimeoutId))}_originChanged(n,r,o){this._setClasses(n,r),this._emitOrigin(o,r),this._lastFocusOrigin=r}_getClosestElementsInfo(n){let r=[];return this._elementInfo.forEach((o,i)=>{(i===n||o.checkChildren&&i.contains(n))&&r.push([i,o])}),r}_isLastInteractionFromInputLabel(n){let{_mostRecentTarget:r,mostRecentModality:o}=this._inputModalityDetector;if(o!=="mouse"||!r||r===n||n.nodeName!=="INPUT"&&n.nodeName!=="TEXTAREA"||n.disabled)return!1;let i=n.labels;if(i){for(let s=0;s{class e{_appRef;_injector=h(z);_environmentInjector=h(ge);load(n){let r=this._appRef=this._appRef||this._injector.get(ye),o=xc.get(r);o||(o={loaders:new Set,refs:[]},xc.set(r,o),r.onDestroy(()=>{xc.get(r)?.refs.forEach(i=>i.destroy()),xc.delete(r)})),o.loaders.has(n)||(o.loaders.add(n),o.refs.push(za(n,{environmentInjector:this._environmentInjector})))}static \u0275fac=function(r){return new(r||e)};static \u0275prov=v({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var Ac=(()=>{class e{static \u0275fac=function(r){return new(r||e)};static \u0275cmp=_e({type:e,selectors:[["ng-component"]],exportAs:["cdkVisuallyHidden"],decls:0,vars:0,template:function(r,o){},styles:[`.cdk-visually-hidden{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;white-space:nowrap;outline:0;-webkit-appearance:none;-moz-appearance:none;left:0}[dir=rtl] .cdk-visually-hidden{left:auto;right:0} +`],encapsulation:2,changeDetection:0})}return e})();function to(e){return Array.isArray(e)?e:[e]}var $_=new Set,Xn,XR=(()=>{class e{_platform=h(ne);_nonce=h(Vo,{optional:!0});_matchMedia;constructor(){this._matchMedia=this._platform.isBrowser&&window.matchMedia?window.matchMedia.bind(window):JR}matchMedia(n){return(this._platform.WEBKIT||this._platform.BLINK)&&QR(n,this._nonce),this._matchMedia(n)}static \u0275fac=function(r){return new(r||e)};static \u0275prov=v({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function QR(e,t){if(!$_.has(e))try{Xn||(Xn=document.createElement("style"),t&&Xn.setAttribute("nonce",t),Xn.setAttribute("type","text/css"),document.head.appendChild(Xn)),Xn.sheet&&(Xn.sheet.insertRule(`@media ${e} {body{ }}`,0),$_.add(e))}catch(n){console.error(n)}}function JR(e){return{matches:e==="all"||e==="",media:e,addListener:()=>{},removeListener:()=>{}}}var G_=(()=>{class e{_mediaMatcher=h(XR);_zone=h(x);_queries=new Map;_destroySubject=new T;constructor(){}ngOnDestroy(){this._destroySubject.next(),this._destroySubject.complete()}isMatched(n){return z_(to(n)).some(o=>this._registerQuery(o).mql.matches)}observe(n){let o=z_(to(n)).map(s=>this._registerQuery(s).observable),i=ll(o);return i=dr(i.pipe(ot(1)),i.pipe(po(1),lr(0))),i.pipe(ue(s=>{let a={matches:!1,breakpoints:{}};return s.forEach(({matches:c,query:l})=>{a.matches=a.matches||c,a.breakpoints[l]=c}),a}))}_registerQuery(n){if(this._queries.has(n))return this._queries.get(n);let r=this._mediaMatcher.matchMedia(n),i={observable:new P(s=>{let a=c=>this._zone.run(()=>s.next(c));return r.addListener(a),()=>{r.removeListener(a)}}).pipe(en(r),ue(({matches:s})=>({query:n,matches:s})),tn(this._destroySubject)),mql:r};return this._queries.set(n,i),i}static \u0275fac=function(r){return new(r||e)};static \u0275prov=v({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function z_(e){return e.map(t=>t.split(",")).reduce((t,n)=>t.concat(n)).map(t=>t.trim())}var eN=(()=>{class e{create(n){return typeof MutationObserver>"u"?null:new MutationObserver(n)}static \u0275fac=function(r){return new(r||e)};static \u0275prov=v({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var W_=(()=>{class e{static \u0275fac=function(r){return new(r||e)};static \u0275mod=U({type:e});static \u0275inj=H({providers:[eN]})}return e})();var Nc=(()=>{class e{_platform=h(ne);constructor(){}isDisabled(n){return n.hasAttribute("disabled")}isVisible(n){return nN(n)&&getComputedStyle(n).visibility==="visible"}isTabbable(n){if(!this._platform.isBrowser)return!1;let r=tN(uN(n));if(r&&(q_(r)===-1||!this.isVisible(r)))return!1;let o=n.nodeName.toLowerCase(),i=q_(n);return n.hasAttribute("contenteditable")?i!==-1:o==="iframe"||o==="object"||this._platform.WEBKIT&&this._platform.IOS&&!cN(n)?!1:o==="audio"?n.hasAttribute("controls")?i!==-1:!1:o==="video"?i===-1?!1:i!==null?!0:this._platform.FIREFOX||n.hasAttribute("controls"):n.tabIndex>=0}isFocusable(n,r){return lN(n)&&!this.isDisabled(n)&&(r?.ignoreVisibility||this.isVisible(n))}static \u0275fac=function(r){return new(r||e)};static \u0275prov=v({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function tN(e){try{return e.frameElement}catch{return null}}function nN(e){return!!(e.offsetWidth||e.offsetHeight||typeof e.getClientRects=="function"&&e.getClientRects().length)}function rN(e){let t=e.nodeName.toLowerCase();return t==="input"||t==="select"||t==="button"||t==="textarea"}function oN(e){return sN(e)&&e.type=="hidden"}function iN(e){return aN(e)&&e.hasAttribute("href")}function sN(e){return e.nodeName.toLowerCase()=="input"}function aN(e){return e.nodeName.toLowerCase()=="a"}function K_(e){if(!e.hasAttribute("tabindex")||e.tabIndex===void 0)return!1;let t=e.getAttribute("tabindex");return!!(t&&!isNaN(parseInt(t,10)))}function q_(e){if(!K_(e))return null;let t=parseInt(e.getAttribute("tabindex")||"",10);return isNaN(t)?-1:t}function cN(e){let t=e.nodeName.toLowerCase(),n=t==="input"&&e.type;return n==="text"||n==="password"||t==="select"||t==="textarea"}function lN(e){return oN(e)?!1:rN(e)||iN(e)||e.hasAttribute("contenteditable")||K_(e)}function uN(e){return e.ownerDocument&&e.ownerDocument.defaultView||window}var Rc=class{_element;_checker;_ngZone;_document;_injector;_startAnchor;_endAnchor;_hasAttached=!1;startAnchorListener=()=>this.focusLastTabbableElement();endAnchorListener=()=>this.focusFirstTabbableElement();get enabled(){return this._enabled}set enabled(t){this._enabled=t,this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(t,this._startAnchor),this._toggleAnchorTabIndex(t,this._endAnchor))}_enabled=!0;constructor(t,n,r,o,i=!1,s){this._element=t,this._checker=n,this._ngZone=r,this._document=o,this._injector=s,i||this.attachAnchors()}destroy(){let t=this._startAnchor,n=this._endAnchor;t&&(t.removeEventListener("focus",this.startAnchorListener),t.remove()),n&&(n.removeEventListener("focus",this.endAnchorListener),n.remove()),this._startAnchor=this._endAnchor=null,this._hasAttached=!1}attachAnchors(){return this._hasAttached?!0:(this._ngZone.runOutsideAngular(()=>{this._startAnchor||(this._startAnchor=this._createAnchor(),this._startAnchor.addEventListener("focus",this.startAnchorListener)),this._endAnchor||(this._endAnchor=this._createAnchor(),this._endAnchor.addEventListener("focus",this.endAnchorListener))}),this._element.parentNode&&(this._element.parentNode.insertBefore(this._startAnchor,this._element),this._element.parentNode.insertBefore(this._endAnchor,this._element.nextSibling),this._hasAttached=!0),this._hasAttached)}focusInitialElementWhenReady(t){return new Promise(n=>{this._executeOnStable(()=>n(this.focusInitialElement(t)))})}focusFirstTabbableElementWhenReady(t){return new Promise(n=>{this._executeOnStable(()=>n(this.focusFirstTabbableElement(t)))})}focusLastTabbableElementWhenReady(t){return new Promise(n=>{this._executeOnStable(()=>n(this.focusLastTabbableElement(t)))})}_getRegionBoundary(t){let n=this._element.querySelectorAll(`[cdk-focus-region-${t}], [cdkFocusRegion${t}], [cdk-focus-${t}]`);return t=="start"?n.length?n[0]:this._getFirstTabbableElement(this._element):n.length?n[n.length-1]:this._getLastTabbableElement(this._element)}focusInitialElement(t){let n=this._element.querySelector("[cdk-focus-initial], [cdkFocusInitial]");if(n){if(!this._checker.isFocusable(n)){let r=this._getFirstTabbableElement(n);return r?.focus(t),!!r}return n.focus(t),!0}return this.focusFirstTabbableElement(t)}focusFirstTabbableElement(t){let n=this._getRegionBoundary("start");return n&&n.focus(t),!!n}focusLastTabbableElement(t){let n=this._getRegionBoundary("end");return n&&n.focus(t),!!n}hasAttached(){return this._hasAttached}_getFirstTabbableElement(t){if(this._checker.isFocusable(t)&&this._checker.isTabbable(t))return t;let n=t.children;for(let r=0;r=0;r--){let o=n[r].nodeType===this._document.ELEMENT_NODE?this._getLastTabbableElement(n[r]):null;if(o)return o}return null}_createAnchor(){let t=this._document.createElement("div");return this._toggleAnchorTabIndex(this._enabled,t),t.classList.add("cdk-visually-hidden"),t.classList.add("cdk-focus-trap-anchor"),t.setAttribute("aria-hidden","true"),t}_toggleAnchorTabIndex(t,n){t?n.setAttribute("tabindex","0"):n.removeAttribute("tabindex")}toggleAnchors(t){this._startAnchor&&this._endAnchor&&(this._toggleAnchorTabIndex(t,this._startAnchor),this._toggleAnchorTabIndex(t,this._endAnchor))}_executeOnStable(t){this._injector?Wt(t,{injector:this._injector}):setTimeout(t)}},ah=(()=>{class e{_checker=h(Nc);_ngZone=h(x);_document=h(k);_injector=h(z);constructor(){h(et).load(Ac)}create(n,r=!1){return new Rc(n,this._checker,this._ngZone,this._document,r,this._injector)}static \u0275fac=function(r){return new(r||e)};static \u0275prov=v({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var X_=new y("liveAnnouncerElement",{providedIn:"root",factory:Q_});function Q_(){return null}var J_=new y("LIVE_ANNOUNCER_DEFAULT_OPTIONS"),dN=0,fN=(()=>{class e{_ngZone=h(x);_defaultOptions=h(J_,{optional:!0});_liveElement;_document=h(k);_previousTimeout;_currentPromise;_currentResolve;constructor(){let n=h(X_,{optional:!0});this._liveElement=n||this._createLiveElement()}announce(n,...r){let o=this._defaultOptions,i,s;return r.length===1&&typeof r[0]=="number"?s=r[0]:[i,s]=r,this.clear(),clearTimeout(this._previousTimeout),i||(i=o&&o.politeness?o.politeness:"polite"),s==null&&o&&(s=o.duration),this._liveElement.setAttribute("aria-live",i),this._liveElement.id&&this._exposeAnnouncerToModals(this._liveElement.id),this._ngZone.runOutsideAngular(()=>(this._currentPromise||(this._currentPromise=new Promise(a=>this._currentResolve=a)),clearTimeout(this._previousTimeout),this._previousTimeout=setTimeout(()=>{this._liveElement.textContent=n,typeof s=="number"&&(this._previousTimeout=setTimeout(()=>this.clear(),s)),this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0},100),this._currentPromise))}clear(){this._liveElement&&(this._liveElement.textContent="")}ngOnDestroy(){clearTimeout(this._previousTimeout),this._liveElement?.remove(),this._liveElement=null,this._currentResolve?.(),this._currentPromise=this._currentResolve=void 0}_createLiveElement(){let n="cdk-live-announcer-element",r=this._document.getElementsByClassName(n),o=this._document.createElement("div");for(let i=0;i .cdk-overlay-container [aria-modal="true"]');for(let o=0;o{class e{_platform=h(ne);_hasCheckedHighContrastMode;_document=h(k);_breakpointSubscription;constructor(){this._breakpointSubscription=h(G_).observe("(forced-colors: active)").subscribe(()=>{this._hasCheckedHighContrastMode&&(this._hasCheckedHighContrastMode=!1,this._applyBodyHighContrastModeCssClasses())})}getHighContrastMode(){if(!this._platform.isBrowser)return mn.NONE;let n=this._document.createElement("div");n.style.backgroundColor="rgb(1,2,3)",n.style.position="absolute",this._document.body.appendChild(n);let r=this._document.defaultView||window,o=r&&r.getComputedStyle?r.getComputedStyle(n):null,i=(o&&o.backgroundColor||"").replace(/ /g,"");switch(n.remove(),i){case"rgb(0,0,0)":case"rgb(45,50,54)":case"rgb(32,32,32)":return mn.WHITE_ON_BLACK;case"rgb(255,255,255)":case"rgb(255,250,239)":return mn.BLACK_ON_WHITE}return mn.NONE}ngOnDestroy(){this._breakpointSubscription.unsubscribe()}_applyBodyHighContrastModeCssClasses(){if(!this._hasCheckedHighContrastMode&&this._platform.isBrowser&&this._document.body){let n=this._document.body.classList;n.remove(sh,Y_,Z_),this._hasCheckedHighContrastMode=!0;let r=this.getHighContrastMode();r===mn.BLACK_ON_WHITE?n.add(sh,Y_):r===mn.WHITE_ON_BLACK&&n.add(sh,Z_)}}static \u0275fac=function(r){return new(r||e)};static \u0275prov=v({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),ch=(()=>{class e{constructor(){h(Oc)._applyBodyHighContrastModeCssClasses()}static \u0275fac=function(r){return new(r||e)};static \u0275mod=U({type:e});static \u0275inj=H({imports:[W_]})}return e})();var lh={},Qn=(()=>{class e{_appId=h(Le);getId(n){return this._appId!=="ng"&&(n+=this._appId),lh.hasOwnProperty(n)||(lh[n]=0),`${n}${lh[n]++}`}static \u0275fac=function(r){return new(r||e)};static \u0275prov=v({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var hN=200,kc=class{_letterKeyStream=new T;_items=[];_selectedItemIndex=-1;_pressedLetters=[];_skipPredicateFn;_selectedItem=new T;selectedItem=this._selectedItem;constructor(t,n){let r=typeof n?.debounceInterval=="number"?n.debounceInterval:hN;n?.skipPredicate&&(this._skipPredicateFn=n.skipPredicate),this.setItems(t),this._setupKeyHandler(r)}destroy(){this._pressedLetters=[],this._letterKeyStream.complete(),this._selectedItem.complete()}setCurrentSelectedItemIndex(t){this._selectedItemIndex=t}setItems(t){this._items=t}handleKey(t){let n=t.keyCode;t.key&&t.key.length===1?this._letterKeyStream.next(t.key.toLocaleUpperCase()):(n>=65&&n<=90||n>=48&&n<=57)&&this._letterKeyStream.next(String.fromCharCode(n))}isTyping(){return this._pressedLetters.length>0}reset(){this._pressedLetters=[]}_setupKeyHandler(t){this._letterKeyStream.pipe(mo(n=>this._pressedLetters.push(n)),lr(t),ce(()=>this._pressedLetters.length>0),ue(()=>this._pressedLetters.join("").toLocaleUpperCase())).subscribe(n=>{for(let r=1;re[n]):e.altKey||e.shiftKey||e.ctrlKey||e.metaKey}var Fc=class{_items;_activeItemIndex=-1;_activeItem=Gt(null);_wrap=!1;_typeaheadSubscription=Q.EMPTY;_itemChangesSubscription;_vertical=!0;_horizontal;_allowedModifierKeys=[];_homeAndEnd=!1;_pageUpAndDown={enabled:!1,delta:10};_effectRef;_typeahead;_skipPredicateFn=t=>t.disabled;constructor(t,n){this._items=t,t instanceof Mr?this._itemChangesSubscription=t.changes.subscribe(r=>this._itemsChanged(r.toArray())):Da(t)&&(this._effectRef=Ef(()=>this._itemsChanged(t()),{injector:n}))}tabOut=new T;change=new T;skipPredicate(t){return this._skipPredicateFn=t,this}withWrap(t=!0){return this._wrap=t,this}withVerticalOrientation(t=!0){return this._vertical=t,this}withHorizontalOrientation(t){return this._horizontal=t,this}withAllowedModifierKeys(t){return this._allowedModifierKeys=t,this}withTypeAhead(t=200){this._typeaheadSubscription.unsubscribe();let n=this._getItemsArray();return this._typeahead=new kc(n,{debounceInterval:typeof t=="number"?t:void 0,skipPredicate:r=>this._skipPredicateFn(r)}),this._typeaheadSubscription=this._typeahead.selectedItem.subscribe(r=>{this.setActiveItem(r)}),this}cancelTypeahead(){return this._typeahead?.reset(),this}withHomeAndEnd(t=!0){return this._homeAndEnd=t,this}withPageUpDown(t=!0,n=10){return this._pageUpAndDown={enabled:t,delta:n},this}setActiveItem(t){let n=this._activeItem();this.updateActiveItem(t),this._activeItem()!==n&&this.change.next(this._activeItemIndex)}onKeydown(t){let n=t.keyCode,o=["altKey","ctrlKey","metaKey","shiftKey"].every(i=>!t[i]||this._allowedModifierKeys.indexOf(i)>-1);switch(n){case 9:this.tabOut.next();return;case 40:if(this._vertical&&o){this.setNextItemActive();break}else return;case 38:if(this._vertical&&o){this.setPreviousItemActive();break}else return;case 39:if(this._horizontal&&o){this._horizontal==="rtl"?this.setPreviousItemActive():this.setNextItemActive();break}else return;case 37:if(this._horizontal&&o){this._horizontal==="rtl"?this.setNextItemActive():this.setPreviousItemActive();break}else return;case 36:if(this._homeAndEnd&&o){this.setFirstItemActive();break}else return;case 35:if(this._homeAndEnd&&o){this.setLastItemActive();break}else return;case 33:if(this._pageUpAndDown.enabled&&o){let i=this._activeItemIndex-this._pageUpAndDown.delta;this._setActiveItemByIndex(i>0?i:0,1);break}else return;case 34:if(this._pageUpAndDown.enabled&&o){let i=this._activeItemIndex+this._pageUpAndDown.delta,s=this._getItemsArray().length;this._setActiveItemByIndex(i-1&&r!==this._activeItemIndex&&(this._activeItemIndex=r,this._typeahead?.setCurrentSelectedItemIndex(r))}}};var uh=class extends Fc{_origin="program";setFocusOrigin(t){return this._origin=t,this}setActiveItem(t){super.setActiveItem(t),this.activeItem&&this.activeItem.focus(this._origin)}};var tD=" ";function pN(e,t,n){let r=Lc(e,t);n=n.trim(),!r.some(o=>o.trim()===n)&&(r.push(n),e.setAttribute(t,r.join(tD)))}function mN(e,t,n){let r=Lc(e,t);n=n.trim();let o=r.filter(i=>i!==n);o.length?e.setAttribute(t,o.join(tD)):e.removeAttribute(t)}function Lc(e,t){return e.getAttribute(t)?.match(/\S+/g)??[]}var nD="cdk-describedby-message",Pc="cdk-describedby-host",fh=0,B$=(()=>{class e{_platform=h(ne);_document=h(k);_messageRegistry=new Map;_messagesContainer=null;_id=`${fh++}`;constructor(){h(et).load(Ac),this._id=h(Le)+"-"+fh++}describe(n,r,o){if(!this._canBeDescribed(n,r))return;let i=dh(r,o);typeof r!="string"?(eD(r,this._id),this._messageRegistry.set(i,{messageElement:r,referenceCount:0})):this._messageRegistry.has(i)||this._createMessageElement(r,o),this._isElementDescribedByMessage(n,i)||this._addMessageReference(n,i)}removeDescription(n,r,o){if(!r||!this._isElementNode(n))return;let i=dh(r,o);if(this._isElementDescribedByMessage(n,i)&&this._removeMessageReference(n,i),typeof r=="string"){let s=this._messageRegistry.get(i);s&&s.referenceCount===0&&this._deleteMessageElement(i)}this._messagesContainer?.childNodes.length===0&&(this._messagesContainer.remove(),this._messagesContainer=null)}ngOnDestroy(){let n=this._document.querySelectorAll(`[${Pc}="${this._id}"]`);for(let r=0;ro.indexOf(nD)!=0);n.setAttribute("aria-describedby",r.join(" "))}_addMessageReference(n,r){let o=this._messageRegistry.get(r);pN(n,"aria-describedby",o.messageElement.id),n.setAttribute(Pc,this._id),o.referenceCount++}_removeMessageReference(n,r){let o=this._messageRegistry.get(r);o.referenceCount--,mN(n,"aria-describedby",o.messageElement.id),n.removeAttribute(Pc)}_isElementDescribedByMessage(n,r){let o=Lc(n,"aria-describedby"),i=this._messageRegistry.get(r),s=i&&i.messageElement.id;return!!s&&o.indexOf(s)!=-1}_canBeDescribed(n,r){if(!this._isElementNode(n))return!1;if(r&&typeof r=="object")return!0;let o=r==null?"":`${r}`.trim(),i=n.getAttribute("aria-label");return o?!i||i.trim()!==o:!1}_isElementNode(n){return n.nodeType===this._document.ELEMENT_NODE}static \u0275fac=function(r){return new(r||e)};static \u0275prov=v({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function dh(e,t){return typeof e=="string"?`${t||""}/${e}`:e}function eD(e,t){e.id||(e.id=`${nD}-${t}-${fh++}`)}var Jn;function rD(){if(Jn==null){if(typeof document!="object"||!document||typeof Element!="function"||!Element)return Jn=!1,Jn;if("scrollBehavior"in document.documentElement.style)Jn=!0;else{let e=Element.prototype.scrollTo;e?Jn=!/\{\s*\[native code\]\s*\}/.test(e.toString()):Jn=!1}}return Jn}function hh(){return typeof __karma__<"u"&&!!__karma__||typeof jasmine<"u"&&!!jasmine||typeof jest<"u"&&!!jest||typeof Mocha<"u"&&!!Mocha}function gN(e){return e!=null&&`${e}`!="false"}function ae(e){return e==null?"":typeof e=="string"?e:`${e}px`}var tt=function(e){return e[e.FADING_IN=0]="FADING_IN",e[e.VISIBLE=1]="VISIBLE",e[e.FADING_OUT=2]="FADING_OUT",e[e.HIDDEN=3]="HIDDEN",e}(tt||{}),ph=class{_renderer;element;config;_animationForciblyDisabledThroughCss;state=tt.HIDDEN;constructor(t,n,r,o=!1){this._renderer=t,this.element=n,this.config=r,this._animationForciblyDisabledThroughCss=o}fadeOut(){this._renderer.fadeOutRipple(this)}},oD=eo({passive:!0,capture:!0}),mh=class{_events=new Map;addHandler(t,n,r,o){let i=this._events.get(n);if(i){let s=i.get(r);s?s.add(o):i.set(r,new Set([o]))}else this._events.set(n,new Map([[r,new Set([o])]])),t.runOutsideAngular(()=>{document.addEventListener(n,this._delegateEventHandler,oD)})}removeHandler(t,n,r){let o=this._events.get(t);if(!o)return;let i=o.get(n);i&&(i.delete(r),i.size===0&&o.delete(n),o.size===0&&(this._events.delete(t),document.removeEventListener(t,this._delegateEventHandler,oD)))}_delegateEventHandler=t=>{let n=Fe(t);n&&this._events.get(t.type)?.forEach((r,o)=>{(o===n||o.contains(n))&&r.forEach(i=>i.handleEvent(t))})}},_i={enterDuration:225,exitDuration:150},vN=800,iD=eo({passive:!0,capture:!0}),sD=["mousedown","touchstart"],aD=["mouseup","mouseleave","touchend","touchcancel"],yN=(()=>{class e{static \u0275fac=function(r){return new(r||e)};static \u0275cmp=_e({type:e,selectors:[["ng-component"]],hostAttrs:["mat-ripple-style-loader",""],decls:0,vars:0,template:function(r,o){},styles:[`.mat-ripple{overflow:hidden;position:relative}.mat-ripple:not(:empty){transform:translateZ(0)}.mat-ripple.mat-ripple-unbounded{overflow:visible}.mat-ripple-element{position:absolute;border-radius:50%;pointer-events:none;transition:opacity,transform 0ms cubic-bezier(0, 0, 0.2, 1);transform:scale3d(0, 0, 0);background-color:var(--mat-ripple-color, color-mix(in srgb, var(--mat-sys-on-surface) 10%, transparent))}@media(forced-colors: active){.mat-ripple-element{display:none}}.cdk-drag-preview .mat-ripple-element,.cdk-drag-placeholder .mat-ripple-element{display:none} +`],encapsulation:2,changeDetection:0})}return e})(),Di=class e{_target;_ngZone;_platform;_containerElement;_triggerElement;_isPointerDown=!1;_activeRipples=new Map;_mostRecentTransientRipple;_lastTouchStartEvent;_pointerUpEventsRegistered=!1;_containerRect;static _eventManager=new mh;constructor(t,n,r,o,i){this._target=t,this._ngZone=n,this._platform=o,o.isBrowser&&(this._containerElement=Rt(r)),i&&i.get(et).load(yN)}fadeInRipple(t,n,r={}){let o=this._containerRect=this._containerRect||this._containerElement.getBoundingClientRect(),i=_(_({},_i),r.animation);r.centered&&(t=o.left+o.width/2,n=o.top+o.height/2);let s=r.radius||bN(t,n,o),a=t-o.left,c=n-o.top,l=i.enterDuration,u=document.createElement("div");u.classList.add("mat-ripple-element"),u.style.left=`${a-s}px`,u.style.top=`${c-s}px`,u.style.height=`${s*2}px`,u.style.width=`${s*2}px`,r.color!=null&&(u.style.backgroundColor=r.color),u.style.transitionDuration=`${l}ms`,this._containerElement.appendChild(u);let f=window.getComputedStyle(u),p=f.transitionProperty,d=f.transitionDuration,m=p==="none"||d==="0s"||d==="0s, 0s"||o.width===0&&o.height===0,g=new ph(this,u,r,m);u.style.transform="scale3d(1, 1, 1)",g.state=tt.FADING_IN,r.persistent||(this._mostRecentTransientRipple=g);let b=null;return!m&&(l||i.exitDuration)&&this._ngZone.runOutsideAngular(()=>{let M=()=>{b&&(b.fallbackTimer=null),clearTimeout(te),this._finishRippleTransition(g)},re=()=>this._destroyRipple(g),te=setTimeout(re,l+100);u.addEventListener("transitionend",M),u.addEventListener("transitioncancel",re),b={onTransitionEnd:M,onTransitionCancel:re,fallbackTimer:te}}),this._activeRipples.set(g,b),(m||!l)&&this._finishRippleTransition(g),g}fadeOutRipple(t){if(t.state===tt.FADING_OUT||t.state===tt.HIDDEN)return;let n=t.element,r=_(_({},_i),t.config.animation);n.style.transitionDuration=`${r.exitDuration}ms`,n.style.opacity="0",t.state=tt.FADING_OUT,(t._animationForciblyDisabledThroughCss||!r.exitDuration)&&this._finishRippleTransition(t)}fadeOutAll(){this._getActiveRipples().forEach(t=>t.fadeOut())}fadeOutAllNonPersistent(){this._getActiveRipples().forEach(t=>{t.config.persistent||t.fadeOut()})}setupTriggerEvents(t){let n=Rt(t);!this._platform.isBrowser||!n||n===this._triggerElement||(this._removeTriggerEvents(),this._triggerElement=n,sD.forEach(r=>{e._eventManager.addHandler(this._ngZone,r,n,this)}))}handleEvent(t){t.type==="mousedown"?this._onMousedown(t):t.type==="touchstart"?this._onTouchStart(t):this._onPointerUp(),this._pointerUpEventsRegistered||(this._ngZone.runOutsideAngular(()=>{aD.forEach(n=>{this._triggerElement.addEventListener(n,this,iD)})}),this._pointerUpEventsRegistered=!0)}_finishRippleTransition(t){t.state===tt.FADING_IN?this._startFadeOutTransition(t):t.state===tt.FADING_OUT&&this._destroyRipple(t)}_startFadeOutTransition(t){let n=t===this._mostRecentTransientRipple,{persistent:r}=t.config;t.state=tt.VISIBLE,!r&&(!n||!this._isPointerDown)&&t.fadeOut()}_destroyRipple(t){let n=this._activeRipples.get(t)??null;this._activeRipples.delete(t),this._activeRipples.size||(this._containerRect=null),t===this._mostRecentTransientRipple&&(this._mostRecentTransientRipple=null),t.state=tt.HIDDEN,n!==null&&(t.element.removeEventListener("transitionend",n.onTransitionEnd),t.element.removeEventListener("transitioncancel",n.onTransitionCancel),n.fallbackTimer!==null&&clearTimeout(n.fallbackTimer)),t.element.remove()}_onMousedown(t){let n=hi(t),r=this._lastTouchStartEvent&&Date.now(){let n=t.state===tt.VISIBLE||t.config.terminateOnPointerUp&&t.state===tt.FADING_IN;!t.config.persistent&&n&&t.fadeOut()}))}_getActiveRipples(){return Array.from(this._activeRipples.keys())}_removeTriggerEvents(){let t=this._triggerElement;t&&(sD.forEach(n=>e._eventManager.removeHandler(n,t,this)),this._pointerUpEventsRegistered&&(aD.forEach(n=>t.removeEventListener(n,this,iD)),this._pointerUpEventsRegistered=!1))}};function bN(e,t,n){let r=Math.max(Math.abs(e-n.left),Math.abs(e-n.right)),o=Math.max(Math.abs(t-n.top),Math.abs(t-n.bottom));return Math.sqrt(r*r+o*o)}var gh=new y("mat-ripple-global-options"),mz=(()=>{class e{_elementRef=h(X);_animationMode=h(Ct,{optional:!0});color;unbounded;centered;radius=0;animation;get disabled(){return this._disabled}set disabled(n){n&&this.fadeOutAllNonPersistent(),this._disabled=n,this._setupTriggerEventsIfEnabled()}_disabled=!1;get trigger(){return this._trigger||this._elementRef.nativeElement}set trigger(n){this._trigger=n,this._setupTriggerEventsIfEnabled()}_trigger;_rippleRenderer;_globalOptions;_isInitialized=!1;constructor(){let n=h(x),r=h(ne),o=h(gh,{optional:!0}),i=h(z);this._globalOptions=o||{},this._rippleRenderer=new Di(this,n,this._elementRef,r,i)}ngOnInit(){this._isInitialized=!0,this._setupTriggerEventsIfEnabled()}ngOnDestroy(){this._rippleRenderer._removeTriggerEvents()}fadeOutAll(){this._rippleRenderer.fadeOutAll()}fadeOutAllNonPersistent(){this._rippleRenderer.fadeOutAllNonPersistent()}get rippleConfig(){return{centered:this.centered,radius:this.radius,color:this.color,animation:_(_(_({},this._globalOptions.animation),this._animationMode==="NoopAnimations"?{enterDuration:0,exitDuration:0}:{}),this.animation),terminateOnPointerUp:this._globalOptions.terminateOnPointerUp}}get rippleDisabled(){return this.disabled||!!this._globalOptions.disabled}_setupTriggerEventsIfEnabled(){!this.disabled&&this._isInitialized&&this._rippleRenderer.setupTriggerEvents(this.trigger)}launch(n,r=0,o){return typeof n=="number"?this._rippleRenderer.fadeInRipple(n,r,_(_({},this.rippleConfig),o)):this._rippleRenderer.fadeInRipple(0,0,_(_({},this.rippleConfig),n))}static \u0275fac=function(r){return new(r||e)};static \u0275dir=j({type:e,selectors:[["","mat-ripple",""],["","matRipple",""]],hostAttrs:[1,"mat-ripple"],hostVars:2,hostBindings:function(r,o){r&2&&He("mat-ripple-unbounded",o.unbounded)},inputs:{color:[0,"matRippleColor","color"],unbounded:[0,"matRippleUnbounded","unbounded"],centered:[0,"matRippleCentered","centered"],radius:[0,"matRippleRadius","radius"],animation:[0,"matRippleAnimation","animation"],disabled:[0,"matRippleDisabled","disabled"],trigger:[0,"matRippleTrigger","trigger"]},exportAs:["matRipple"]})}return e})();var _N={capture:!0},DN=["focus","mousedown","mouseenter","touchstart"],vh="mat-ripple-loader-uninitialized",yh="mat-ripple-loader-class-name",cD="mat-ripple-loader-centered",Vc="mat-ripple-loader-disabled",lD=(()=>{class e{_document=h(k);_animationMode=h(Ct,{optional:!0});_globalRippleOptions=h(gh,{optional:!0});_platform=h(ne);_ngZone=h(x);_injector=h(z);_eventCleanups;_hosts=new Map;constructor(){let n=h(ve).createRenderer(null,null);this._eventCleanups=this._ngZone.runOutsideAngular(()=>DN.map(r=>Je(n,this._document,r,this._onInteraction,_N)))}ngOnDestroy(){let n=this._hosts.keys();for(let r of n)this.destroyRipple(r);this._eventCleanups.forEach(r=>r())}configureRipple(n,r){n.setAttribute(vh,this._globalRippleOptions?.namespace??""),(r.className||!n.hasAttribute(yh))&&n.setAttribute(yh,r.className||""),r.centered&&n.setAttribute(cD,""),r.disabled&&n.setAttribute(Vc,"")}setDisabled(n,r){let o=this._hosts.get(n);o?(o.target.rippleDisabled=r,!r&&!o.hasSetUpEvents&&(o.hasSetUpEvents=!0,o.renderer.setupTriggerEvents(n))):r?n.setAttribute(Vc,""):n.removeAttribute(Vc)}_onInteraction=n=>{let r=Fe(n);if(r instanceof HTMLElement){let o=r.closest(`[${vh}="${this._globalRippleOptions?.namespace??""}"]`);o&&this._createRipple(o)}};_createRipple(n){if(!this._document||this._hosts.has(n))return;n.querySelector(".mat-ripple")?.remove();let r=this._document.createElement("span");r.classList.add("mat-ripple",n.getAttribute(yh)),n.append(r);let o=this._animationMode==="NoopAnimations",i=this._globalRippleOptions,s=o?0:i?.animation?.enterDuration??_i.enterDuration,a=o?0:i?.animation?.exitDuration??_i.exitDuration,c={rippleDisabled:o||i?.disabled||n.hasAttribute(Vc),rippleConfig:{centered:n.hasAttribute(cD),terminateOnPointerUp:i?.terminateOnPointerUp,animation:{enterDuration:s,exitDuration:a}}},l=new Di(c,this._ngZone,r,this._platform,this._injector),u=!c.rippleDisabled;u&&l.setupTriggerEvents(n),this._hosts.set(n,{target:c,renderer:l,hasSetUpEvents:u}),n.removeAttribute(vh)}destroyRipple(n){let r=this._hosts.get(n);r&&(r.renderer._removeTriggerEvents(),this._hosts.delete(n))}static \u0275fac=function(r){return new(r||e)};static \u0275prov=v({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var uD=(()=>{class e{static \u0275fac=function(r){return new(r||e)};static \u0275cmp=_e({type:e,selectors:[["structural-styles"]],decls:0,vars:0,template:function(r,o){},styles:[`.mat-focus-indicator{position:relative}.mat-focus-indicator::before{top:0;left:0;right:0;bottom:0;position:absolute;box-sizing:border-box;pointer-events:none;display:var(--mat-focus-indicator-display, none);border-width:var(--mat-focus-indicator-border-width, 3px);border-style:var(--mat-focus-indicator-border-style, solid);border-color:var(--mat-focus-indicator-border-color, transparent);border-radius:var(--mat-focus-indicator-border-radius, 4px)}.mat-focus-indicator:focus::before{content:""}@media(forced-colors: active){html{--mat-focus-indicator-display: block}} +`],encapsulation:2,changeDetection:0})}return e})();var EN=new y("MAT_BUTTON_CONFIG");var wN=[{attribute:"mat-button",mdcClasses:["mdc-button","mat-mdc-button"]},{attribute:"mat-flat-button",mdcClasses:["mdc-button","mdc-button--unelevated","mat-mdc-unelevated-button"]},{attribute:"mat-raised-button",mdcClasses:["mdc-button","mdc-button--raised","mat-mdc-raised-button"]},{attribute:"mat-stroked-button",mdcClasses:["mdc-button","mdc-button--outlined","mat-mdc-outlined-button"]},{attribute:"mat-fab",mdcClasses:["mdc-fab","mat-mdc-fab-base","mat-mdc-fab"]},{attribute:"mat-mini-fab",mdcClasses:["mdc-fab","mat-mdc-fab-base","mdc-fab--mini","mat-mdc-mini-fab"]},{attribute:"mat-icon-button",mdcClasses:["mdc-icon-button","mat-mdc-icon-button"]}],dD=(()=>{class e{_elementRef=h(X);_ngZone=h(x);_animationMode=h(Ct,{optional:!0});_focusMonitor=h(bi);_rippleLoader=h(lD);_isFab=!1;color;get disableRipple(){return this._disableRipple}set disableRipple(n){this._disableRipple=n,this._updateRippleDisabled()}_disableRipple=!1;get disabled(){return this._disabled}set disabled(n){this._disabled=n,this._updateRippleDisabled()}_disabled=!1;ariaDisabled;disabledInteractive;constructor(){h(et).load(uD);let n=h(EN,{optional:!0}),r=this._elementRef.nativeElement,o=r.classList;this.disabledInteractive=n?.disabledInteractive??!1,this.color=n?.color??null,this._rippleLoader?.configureRipple(r,{className:"mat-mdc-button-ripple"});for(let{attribute:i,mdcClasses:s}of wN)r.hasAttribute(i)&&o.add(...s)}ngAfterViewInit(){this._focusMonitor.monitor(this._elementRef,!0)}ngOnDestroy(){this._focusMonitor.stopMonitoring(this._elementRef),this._rippleLoader?.destroyRipple(this._elementRef.nativeElement)}focus(n="program",r){n?this._focusMonitor.focusVia(this._elementRef.nativeElement,n,r):this._elementRef.nativeElement.focus(r)}_getAriaDisabled(){return this.ariaDisabled!=null?this.ariaDisabled:this.disabled&&this.disabledInteractive?!0:null}_getDisabledAttribute(){return this.disabledInteractive||!this.disabled?null:!0}_updateRippleDisabled(){this._rippleLoader?.setDisabled(this._elementRef.nativeElement,this.disableRipple||this.disabled)}static \u0275fac=function(r){return new(r||e)};static \u0275dir=j({type:e,inputs:{color:"color",disableRipple:[2,"disableRipple","disableRipple",At],disabled:[2,"disabled","disabled",At],ariaDisabled:[2,"aria-disabled","ariaDisabled",At],disabledInteractive:[2,"disabledInteractive","disabledInteractive",At]}})}return e})();var CN=new y("cdk-dir-doc",{providedIn:"root",factory:IN});function IN(){return h(k)}var MN=/^(ar|ckb|dv|he|iw|fa|nqo|ps|sd|ug|ur|yi|.*[-_](Adlm|Arab|Hebr|Nkoo|Rohg|Thaa))(?!.*[-_](Latn|Cyrl)($|-|_))($|-|_)/i;function fD(e){let t=e?.toLowerCase()||"";return t==="auto"&&typeof navigator<"u"&&navigator?.language?MN.test(navigator.language)?"rtl":"ltr":t==="rtl"?"rtl":"ltr"}var ro=(()=>{class e{value="ltr";change=new oe;constructor(){let n=h(CN,{optional:!0});if(n){let r=n.body?n.body.dir:null,o=n.documentElement?n.documentElement.dir:null;this.value=fD(r||o||"ltr")}}ngOnDestroy(){this.change.complete()}static \u0275fac=function(r){return new(r||e)};static \u0275prov=v({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var gn=(()=>{class e{static \u0275fac=function(r){return new(r||e)};static \u0275mod=U({type:e});static \u0275inj=H({})}return e})();var Qt=(()=>{class e{constructor(){h(Oc)._applyBodyHighContrastModeCssClasses()}static \u0275fac=function(r){return new(r||e)};static \u0275mod=U({type:e});static \u0275inj=H({imports:[gn,gn]})}return e})();var hD=(()=>{class e{static \u0275fac=function(r){return new(r||e)};static \u0275mod=U({type:e});static \u0275inj=H({imports:[Qt,Qt]})}return e})();var TN=["mat-button",""],SN=[[["",8,"material-icons",3,"iconPositionEnd",""],["mat-icon",3,"iconPositionEnd",""],["","matButtonIcon","",3,"iconPositionEnd",""]],"*",[["","iconPositionEnd","",8,"material-icons"],["mat-icon","iconPositionEnd",""],["","matButtonIcon","","iconPositionEnd",""]]],xN=[".material-icons:not([iconPositionEnd]), mat-icon:not([iconPositionEnd]), [matButtonIcon]:not([iconPositionEnd])","*",".material-icons[iconPositionEnd], mat-icon[iconPositionEnd], [matButtonIcon][iconPositionEnd]"];var r8=(()=>{class e extends dD{static \u0275fac=(()=>{let n;return function(o){return(n||(n=Ne(e)))(o||e)}})();static \u0275cmp=_e({type:e,selectors:[["button","mat-button",""],["button","mat-raised-button",""],["button","mat-flat-button",""],["button","mat-stroked-button",""]],hostVars:14,hostBindings:function(r,o){r&2&&(xt("disabled",o._getDisabledAttribute())("aria-disabled",o._getAriaDisabled()),mf(o.color?"mat-"+o.color:""),He("mat-mdc-button-disabled",o.disabled)("mat-mdc-button-disabled-interactive",o.disabledInteractive)("_mat-animation-noopable",o._animationMode==="NoopAnimations")("mat-unthemed",!o.color)("mat-mdc-button-base",!0))},exportAs:["matButton"],features:[ee],attrs:TN,ngContentSelectors:xN,decls:7,vars:4,consts:[[1,"mat-mdc-button-persistent-ripple"],[1,"mdc-button__label"],[1,"mat-focus-indicator"],[1,"mat-mdc-button-touch-target"]],template:function(r,o){r&1&&(Ha(SN),Hr(0,"span",0),Ur(1),Wn(2,"span",1),Ur(3,1),qn(),Ur(4,2),Hr(5,"span",2)(6,"span",3)),r&2&&He("mdc-button__ripple",!o._isFab)("mdc-fab__ripple",o._isFab)},styles:[`.mat-mdc-button-base{text-decoration:none}.mdc-button{-webkit-user-select:none;user-select:none;position:relative;display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;min-width:64px;border:none;outline:none;line-height:inherit;-webkit-appearance:none;overflow:visible;vertical-align:middle;background:rgba(0,0,0,0);padding:0 8px}.mdc-button::-moz-focus-inner{padding:0;border:0}.mdc-button:active{outline:none}.mdc-button:hover{cursor:pointer}.mdc-button:disabled{cursor:default;pointer-events:none}.mdc-button[hidden]{display:none}.mdc-button .mdc-button__label{position:relative}.mat-mdc-button{padding:0 var(--mat-text-button-horizontal-padding, 12px);height:var(--mdc-text-button-container-height, 40px);font-family:var(--mdc-text-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-text-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-text-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-text-button-label-text-transform);font-weight:var(--mdc-text-button-label-text-weight, var(--mat-sys-label-large-weight))}.mat-mdc-button,.mat-mdc-button .mdc-button__ripple{border-radius:var(--mdc-text-button-container-shape, var(--mat-sys-corner-full))}.mat-mdc-button:not(:disabled){color:var(--mdc-text-button-label-text-color, var(--mat-sys-primary))}.mat-mdc-button[disabled],.mat-mdc-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-text-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-button:has(.material-icons,mat-icon,[matButtonIcon]){padding:0 var(--mat-text-button-with-icon-horizontal-padding, 16px)}.mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, -4px)}[dir=rtl] .mat-mdc-button>.mat-icon{margin-right:var(--mat-text-button-icon-offset, -4px);margin-left:var(--mat-text-button-icon-spacing, 8px)}.mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-offset, -4px);margin-left:var(--mat-text-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-button .mdc-button__label+.mat-icon{margin-right:var(--mat-text-button-icon-spacing, 8px);margin-left:var(--mat-text-button-icon-offset, -4px)}.mat-mdc-button .mat-ripple-element{background-color:var(--mat-text-button-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-state-layer-color, var(--mat-sys-primary))}.mat-mdc-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-text-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-text-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-text-button-touch-target-display, block)}.mat-mdc-unelevated-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mdc-filled-button-container-height, 40px);font-family:var(--mdc-filled-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-filled-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-filled-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-filled-button-label-text-transform);font-weight:var(--mdc-filled-button-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-filled-button-horizontal-padding, 24px)}.mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -8px)}[dir=rtl] .mat-mdc-unelevated-button>.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -8px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}.mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-offset, -8px);margin-left:var(--mat-filled-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-unelevated-button .mdc-button__label+.mat-icon{margin-right:var(--mat-filled-button-icon-spacing, 8px);margin-left:var(--mat-filled-button-icon-offset, -8px)}.mat-mdc-unelevated-button .mat-ripple-element{background-color:var(--mat-filled-button-ripple-color, color-mix(in srgb, var(--mat-sys-on-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-state-layer-color, var(--mat-sys-on-primary))}.mat-mdc-unelevated-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-filled-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-unelevated-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-unelevated-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-unelevated-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-filled-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-unelevated-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-filled-button-touch-target-display, block)}.mat-mdc-unelevated-button:not(:disabled){color:var(--mdc-filled-button-label-text-color, var(--mat-sys-on-primary));background-color:var(--mdc-filled-button-container-color, var(--mat-sys-primary))}.mat-mdc-unelevated-button,.mat-mdc-unelevated-button .mdc-button__ripple{border-radius:var(--mdc-filled-button-container-shape, var(--mat-sys-corner-full))}.mat-mdc-unelevated-button[disabled],.mat-mdc-unelevated-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-filled-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mdc-filled-button-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-unelevated-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-raised-button{transition:box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1);box-shadow:var(--mdc-protected-button-container-elevation-shadow, var(--mat-sys-level1));height:var(--mdc-protected-button-container-height, 40px);font-family:var(--mdc-protected-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-protected-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-protected-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-protected-button-label-text-transform);font-weight:var(--mdc-protected-button-label-text-weight, var(--mat-sys-label-large-weight));padding:0 var(--mat-protected-button-horizontal-padding, 24px)}.mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -8px)}[dir=rtl] .mat-mdc-raised-button>.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -8px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}.mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-offset, -8px);margin-left:var(--mat-protected-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-raised-button .mdc-button__label+.mat-icon{margin-right:var(--mat-protected-button-icon-spacing, 8px);margin-left:var(--mat-protected-button-icon-offset, -8px)}.mat-mdc-raised-button .mat-ripple-element{background-color:var(--mat-protected-button-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-state-layer-color, var(--mat-sys-primary))}.mat-mdc-raised-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-protected-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-raised-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-raised-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-raised-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-protected-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-raised-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-protected-button-touch-target-display, block)}.mat-mdc-raised-button:not(:disabled){color:var(--mdc-protected-button-label-text-color, var(--mat-sys-primary));background-color:var(--mdc-protected-button-container-color, var(--mat-sys-surface))}.mat-mdc-raised-button,.mat-mdc-raised-button .mdc-button__ripple{border-radius:var(--mdc-protected-button-container-shape, var(--mat-sys-corner-full))}.mat-mdc-raised-button:hover{box-shadow:var(--mdc-protected-button-hover-container-elevation-shadow, var(--mat-sys-level2))}.mat-mdc-raised-button:focus{box-shadow:var(--mdc-protected-button-focus-container-elevation-shadow, var(--mat-sys-level1))}.mat-mdc-raised-button:active,.mat-mdc-raised-button:focus:active{box-shadow:var(--mdc-protected-button-pressed-container-elevation-shadow, var(--mat-sys-level1))}.mat-mdc-raised-button[disabled],.mat-mdc-raised-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-protected-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));background-color:var(--mdc-protected-button-disabled-container-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-raised-button[disabled].mat-mdc-button-disabled,.mat-mdc-raised-button.mat-mdc-button-disabled.mat-mdc-button-disabled{box-shadow:var(--mdc-protected-button-disabled-container-elevation-shadow, var(--mat-sys-level0))}.mat-mdc-raised-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-outlined-button{border-style:solid;transition:border 280ms cubic-bezier(0.4, 0, 0.2, 1);height:var(--mdc-outlined-button-container-height, 40px);font-family:var(--mdc-outlined-button-label-text-font, var(--mat-sys-label-large-font));font-size:var(--mdc-outlined-button-label-text-size, var(--mat-sys-label-large-size));letter-spacing:var(--mdc-outlined-button-label-text-tracking, var(--mat-sys-label-large-tracking));text-transform:var(--mdc-outlined-button-label-text-transform);font-weight:var(--mdc-outlined-button-label-text-weight, var(--mat-sys-label-large-weight));border-radius:var(--mdc-outlined-button-container-shape, var(--mat-sys-corner-full));border-width:var(--mdc-outlined-button-outline-width, 1px);padding:0 var(--mat-outlined-button-horizontal-padding, 24px)}.mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -8px)}[dir=rtl] .mat-mdc-outlined-button>.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -8px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}.mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-offset, -8px);margin-left:var(--mat-outlined-button-icon-spacing, 8px)}[dir=rtl] .mat-mdc-outlined-button .mdc-button__label+.mat-icon{margin-right:var(--mat-outlined-button-icon-spacing, 8px);margin-left:var(--mat-outlined-button-icon-offset, -8px)}.mat-mdc-outlined-button .mat-ripple-element{background-color:var(--mat-outlined-button-ripple-color, color-mix(in srgb, var(--mat-sys-primary) calc(var(--mat-sys-pressed-state-layer-opacity) * 100%), transparent))}.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-state-layer-color, var(--mat-sys-primary))}.mat-mdc-outlined-button.mat-mdc-button-disabled .mat-mdc-button-persistent-ripple::before{background-color:var(--mat-outlined-button-disabled-state-layer-color, var(--mat-sys-on-surface-variant))}.mat-mdc-outlined-button:hover>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity))}.mat-mdc-outlined-button.cdk-program-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.cdk-keyboard-focused>.mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive:focus>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity))}.mat-mdc-outlined-button:active>.mat-mdc-button-persistent-ripple::before{opacity:var(--mat-outlined-button-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity))}.mat-mdc-outlined-button .mat-mdc-button-touch-target{position:absolute;top:50%;height:48px;left:0;right:0;transform:translateY(-50%);display:var(--mat-outlined-button-touch-target-display, block)}.mat-mdc-outlined-button:not(:disabled){color:var(--mdc-outlined-button-label-text-color, var(--mat-sys-primary));border-color:var(--mdc-outlined-button-outline-color, var(--mat-sys-outline))}.mat-mdc-outlined-button[disabled],.mat-mdc-outlined-button.mat-mdc-button-disabled{cursor:default;pointer-events:none;color:var(--mdc-outlined-button-disabled-label-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:var(--mdc-outlined-button-disabled-outline-color, color-mix(in srgb, var(--mat-sys-on-surface) 12%, transparent))}.mat-mdc-outlined-button.mat-mdc-button-disabled-interactive{pointer-events:auto}.mat-mdc-button,.mat-mdc-unelevated-button,.mat-mdc-raised-button,.mat-mdc-outlined-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple,.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:inherit}.mat-mdc-button .mat-mdc-button-ripple,.mat-mdc-unelevated-button .mat-mdc-button-ripple,.mat-mdc-raised-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mat-mdc-button-ripple{overflow:hidden}.mat-mdc-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-unelevated-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-raised-button .mat-mdc-button-persistent-ripple::before,.mat-mdc-outlined-button .mat-mdc-button-persistent-ripple::before{content:"";opacity:0}.mat-mdc-button .mdc-button__label,.mat-mdc-button .mat-icon,.mat-mdc-unelevated-button .mdc-button__label,.mat-mdc-unelevated-button .mat-icon,.mat-mdc-raised-button .mdc-button__label,.mat-mdc-raised-button .mat-icon,.mat-mdc-outlined-button .mdc-button__label,.mat-mdc-outlined-button .mat-icon{z-index:1;position:relative}.mat-mdc-button .mat-focus-indicator,.mat-mdc-unelevated-button .mat-focus-indicator,.mat-mdc-raised-button .mat-focus-indicator,.mat-mdc-outlined-button .mat-focus-indicator{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:inherit}.mat-mdc-button:focus>.mat-focus-indicator::before,.mat-mdc-unelevated-button:focus>.mat-focus-indicator::before,.mat-mdc-raised-button:focus>.mat-focus-indicator::before,.mat-mdc-outlined-button:focus>.mat-focus-indicator::before{content:"";border-radius:inherit}.mat-mdc-button._mat-animation-noopable,.mat-mdc-unelevated-button._mat-animation-noopable,.mat-mdc-raised-button._mat-animation-noopable,.mat-mdc-outlined-button._mat-animation-noopable{transition:none !important;animation:none !important}.mat-mdc-button>.mat-icon,.mat-mdc-unelevated-button>.mat-icon,.mat-mdc-raised-button>.mat-icon,.mat-mdc-outlined-button>.mat-icon{display:inline-block;position:relative;vertical-align:top;font-size:1.125rem;height:1.125rem;width:1.125rem}.mat-mdc-outlined-button .mat-mdc-button-ripple,.mat-mdc-outlined-button .mdc-button__ripple{top:-1px;left:-1px;bottom:-1px;right:-1px}.mat-mdc-unelevated-button .mat-focus-indicator::before,.mat-mdc-raised-button .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 2px)*-1)}.mat-mdc-outlined-button .mat-focus-indicator::before{margin:calc(calc(var(--mat-focus-indicator-border-width, 3px) + 3px)*-1)} +`,`@media(forced-colors: active){.mat-mdc-button:not(.mdc-button--outlined),.mat-mdc-unelevated-button:not(.mdc-button--outlined),.mat-mdc-raised-button:not(.mdc-button--outlined),.mat-mdc-outlined-button:not(.mdc-button--outlined),.mat-mdc-icon-button.mat-mdc-icon-button,.mat-mdc-outlined-button .mdc-button__ripple{outline:solid 1px}} +`],encapsulation:2,changeDetection:0})}return e})();var o8=(()=>{class e{static \u0275fac=function(r){return new(r||e)};static \u0275mod=U({type:e});static \u0275inj=H({imports:[Qt,hD,Qt]})}return e})();var oo=class{_attachedHost;attach(t){return this._attachedHost=t,t.attach(this)}detach(){let t=this._attachedHost;t!=null&&(this._attachedHost=null,t.detach())}get isAttached(){return this._attachedHost!=null}setAttachedHost(t){this._attachedHost=t}},er=class extends oo{component;viewContainerRef;injector;componentFactoryResolver;projectableNodes;constructor(t,n,r,o,i){super(),this.component=t,this.viewContainerRef=n,this.injector=r,this.projectableNodes=i}},tr=class extends oo{templateRef;viewContainerRef;context;injector;constructor(t,n,r,o){super(),this.templateRef=t,this.viewContainerRef=n,this.context=r,this.injector=o}get origin(){return this.templateRef.elementRef}attach(t,n=this.context){return this.context=n,super.attach(t)}detach(){return this.context=void 0,super.detach()}},jc=class extends oo{element;constructor(t){super(),this.element=t instanceof X?t.nativeElement:t}},nr=class{_attachedPortal;_disposeFn;_isDisposed=!1;hasAttached(){return!!this._attachedPortal}attach(t){if(t instanceof er)return this._attachedPortal=t,this.attachComponentPortal(t);if(t instanceof tr)return this._attachedPortal=t,this.attachTemplatePortal(t);if(this.attachDomPortal&&t instanceof jc)return this._attachedPortal=t,this.attachDomPortal(t)}attachDomPortal=null;detach(){this._attachedPortal&&(this._attachedPortal.setAttachedHost(null),this._attachedPortal=null),this._invokeDisposeFn()}dispose(){this.hasAttached()&&this.detach(),this._invokeDisposeFn(),this._isDisposed=!0}setDisposeFn(t){this._disposeFn=t}_invokeDisposeFn(){this._disposeFn&&(this._disposeFn(),this._disposeFn=null)}};var Ei=class extends nr{outletElement;_appRef;_defaultInjector;_document;constructor(t,n,r,o,i){super(),this.outletElement=t,this._appRef=r,this._defaultInjector=o,this._document=i}attachComponentPortal(t){let n;if(t.viewContainerRef){let r=t.injector||t.viewContainerRef.injector,o=r.get(Ut,null,{optional:!0})||void 0;n=t.viewContainerRef.createComponent(t.component,{index:t.viewContainerRef.length,injector:r,ngModuleRef:o,projectableNodes:t.projectableNodes||void 0}),this.setDisposeFn(()=>n.destroy())}else{let r=this._appRef,o=t.injector||this._defaultInjector||z.NULL,i=o.get(ge,r.injector);n=za(t.component,{elementInjector:o,environmentInjector:i,projectableNodes:t.projectableNodes||void 0}),r.attachView(n.hostView),this.setDisposeFn(()=>{r.viewCount>0&&r.detachView(n.hostView),n.destroy()})}return this.outletElement.appendChild(this._getComponentRootNode(n)),this._attachedPortal=t,n}attachTemplatePortal(t){let n=t.viewContainerRef,r=n.createEmbeddedView(t.templateRef,t.context,{injector:t.injector});return r.rootNodes.forEach(o=>this.outletElement.appendChild(o)),r.detectChanges(),this.setDisposeFn(()=>{let o=n.indexOf(r);o!==-1&&n.remove(o)}),this._attachedPortal=t,r}attachDomPortal=t=>{let n=t.element;n.parentNode;let r=this._document.createComment("dom-portal");n.parentNode.insertBefore(r,n),this.outletElement.appendChild(n),this._attachedPortal=t,super.setDisposeFn(()=>{r.parentNode&&r.parentNode.replaceChild(n,r)})};dispose(){super.dispose(),this.outletElement.remove()}_getComponentRootNode(t){return t.hostView.rootNodes[0]}};var io=(()=>{class e extends nr{_moduleRef=h(Ut,{optional:!0});_document=h(k);_viewContainerRef=h(St);_isInitialized=!1;_attachedRef;constructor(){super()}get portal(){return this._attachedPortal}set portal(n){this.hasAttached()&&!n&&!this._isInitialized||(this.hasAttached()&&super.detach(),n&&super.attach(n),this._attachedPortal=n||null)}attached=new oe;get attachedRef(){return this._attachedRef}ngOnInit(){this._isInitialized=!0}ngOnDestroy(){super.dispose(),this._attachedRef=this._attachedPortal=null}attachComponentPortal(n){n.setAttachedHost(this);let r=n.viewContainerRef!=null?n.viewContainerRef:this._viewContainerRef,o=r.createComponent(n.component,{index:r.length,injector:n.injector||r.injector,projectableNodes:n.projectableNodes||void 0,ngModuleRef:this._moduleRef||void 0});return r!==this._viewContainerRef&&this._getRootNode().appendChild(o.hostView.rootNodes[0]),super.setDisposeFn(()=>o.destroy()),this._attachedPortal=n,this._attachedRef=o,this.attached.emit(o),o}attachTemplatePortal(n){n.setAttachedHost(this);let r=this._viewContainerRef.createEmbeddedView(n.templateRef,n.context,{injector:n.injector});return super.setDisposeFn(()=>this._viewContainerRef.clear()),this._attachedPortal=n,this._attachedRef=r,this.attached.emit(r),r}attachDomPortal=n=>{let r=n.element;r.parentNode;let o=this._document.createComment("dom-portal");n.setAttachedHost(this),r.parentNode.insertBefore(o,r),this._getRootNode().appendChild(r),this._attachedPortal=n,super.setDisposeFn(()=>{o.parentNode&&o.parentNode.replaceChild(r,o)})};_getRootNode(){let n=this._viewContainerRef.element.nativeElement;return n.nodeType===n.ELEMENT_NODE?n:n.parentNode}static \u0275fac=function(r){return new(r||e)};static \u0275dir=j({type:e,selectors:[["","cdkPortalOutlet",""]],inputs:{portal:[0,"cdkPortalOutlet","portal"]},outputs:{attached:"attached"},exportAs:["cdkPortalOutlet"],features:[ee]})}return e})();var vn=(()=>{class e{static \u0275fac=function(r){return new(r||e)};static \u0275mod=U({type:e});static \u0275inj=H({})}return e})();var AN=20,mD=(()=>{class e{_ngZone=h(x);_platform=h(ne);_renderer=h(ve).createRenderer(null,null);_cleanupGlobalListener;constructor(){}_scrolled=new T;_scrolledCount=0;scrollContainers=new Map;register(n){this.scrollContainers.has(n)||this.scrollContainers.set(n,n.elementScrolled().subscribe(()=>this._scrolled.next(n)))}deregister(n){let r=this.scrollContainers.get(n);r&&(r.unsubscribe(),this.scrollContainers.delete(n))}scrolled(n=AN){return this._platform.isBrowser?new P(r=>{this._cleanupGlobalListener||(this._cleanupGlobalListener=this._ngZone.runOutsideAngular(()=>this._renderer.listen("document","scroll",()=>this._scrolled.next())));let o=n>0?this._scrolled.pipe(ts(n)).subscribe(r):this._scrolled.subscribe(r);return this._scrolledCount++,()=>{o.unsubscribe(),this._scrolledCount--,this._scrolledCount||(this._cleanupGlobalListener?.(),this._cleanupGlobalListener=void 0)}}):$e()}ngOnDestroy(){this._cleanupGlobalListener?.(),this._cleanupGlobalListener=void 0,this.scrollContainers.forEach((n,r)=>this.deregister(r)),this._scrolled.complete()}ancestorScrolled(n,r){let o=this.getAncestorScrollContainers(n);return this.scrolled(r).pipe(ce(i=>!i||o.indexOf(i)>-1))}getAncestorScrollContainers(n){let r=[];return this.scrollContainers.forEach((o,i)=>{this._scrollableContainsElement(i,n)&&r.push(i)}),r}_scrollableContainsElement(n,r){let o=Rt(r),i=n.getElementRef().nativeElement;do if(o==i)return!0;while(o=o.parentElement);return!1}static \u0275fac=function(r){return new(r||e)};static \u0275prov=v({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var RN=20,bh=(()=>{class e{_platform=h(ne);_listeners;_viewportSize;_change=new T;_document=h(k,{optional:!0});constructor(){let n=h(x),r=h(ve).createRenderer(null,null);n.runOutsideAngular(()=>{if(this._platform.isBrowser){let o=i=>this._change.next(i);this._listeners=[r.listen("window","resize",o),r.listen("window","orientationchange",o)]}this.change().subscribe(()=>this._viewportSize=null)})}ngOnDestroy(){this._listeners?.forEach(n=>n()),this._change.complete()}getViewportSize(){this._viewportSize||this._updateViewportSize();let n={width:this._viewportSize.width,height:this._viewportSize.height};return this._platform.isBrowser||(this._viewportSize=null),n}getViewportRect(){let n=this.getViewportScrollPosition(),{width:r,height:o}=this.getViewportSize();return{top:n.top,left:n.left,bottom:n.top+o,right:n.left+r,height:o,width:r}}getViewportScrollPosition(){if(!this._platform.isBrowser)return{top:0,left:0};let n=this._document,r=this._getWindow(),o=n.documentElement,i=o.getBoundingClientRect(),s=-i.top||n.body.scrollTop||r.scrollY||o.scrollTop||0,a=-i.left||n.body.scrollLeft||r.scrollX||o.scrollLeft||0;return{top:s,left:a}}change(n=RN){return n>0?this._change.pipe(ts(n)):this._change}_getWindow(){return this._document.defaultView||window}_updateViewportSize(){let n=this._getWindow();this._viewportSize=this._platform.isBrowser?{width:n.innerWidth,height:n.innerHeight}:{width:0,height:0}}static \u0275fac=function(r){return new(r||e)};static \u0275prov=v({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var pD=(()=>{class e{static \u0275fac=function(r){return new(r||e)};static \u0275mod=U({type:e});static \u0275inj=H({})}return e})(),_h=(()=>{class e{static \u0275fac=function(r){return new(r||e)};static \u0275mod=U({type:e});static \u0275inj=H({imports:[gn,pD,gn,pD]})}return e})();var gD=rD(),Bc=class{_viewportRuler;_previousHTMLStyles={top:"",left:""};_previousScrollPosition;_isEnabled=!1;_document;constructor(t,n){this._viewportRuler=t,this._document=n}attach(){}enable(){if(this._canBeEnabled()){let t=this._document.documentElement;this._previousScrollPosition=this._viewportRuler.getViewportScrollPosition(),this._previousHTMLStyles.left=t.style.left||"",this._previousHTMLStyles.top=t.style.top||"",t.style.left=ae(-this._previousScrollPosition.left),t.style.top=ae(-this._previousScrollPosition.top),t.classList.add("cdk-global-scrollblock"),this._isEnabled=!0}}disable(){if(this._isEnabled){let t=this._document.documentElement,n=this._document.body,r=t.style,o=n.style,i=r.scrollBehavior||"",s=o.scrollBehavior||"";this._isEnabled=!1,r.left=this._previousHTMLStyles.left,r.top=this._previousHTMLStyles.top,t.classList.remove("cdk-global-scrollblock"),gD&&(r.scrollBehavior=o.scrollBehavior="auto"),window.scroll(this._previousScrollPosition.left,this._previousScrollPosition.top),gD&&(r.scrollBehavior=i,o.scrollBehavior=s)}}_canBeEnabled(){if(this._document.documentElement.classList.contains("cdk-global-scrollblock")||this._isEnabled)return!1;let n=this._document.documentElement,r=this._viewportRuler.getViewportSize();return n.scrollHeight>r.height||n.scrollWidth>r.width}};var Hc=class{_scrollDispatcher;_ngZone;_viewportRuler;_config;_scrollSubscription=null;_overlayRef;_initialScrollPosition;constructor(t,n,r,o){this._scrollDispatcher=t,this._ngZone=n,this._viewportRuler=r,this._config=o}attach(t){this._overlayRef,this._overlayRef=t}enable(){if(this._scrollSubscription)return;let t=this._scrollDispatcher.scrolled(0).pipe(ce(n=>!n||!this._overlayRef.overlayElement.contains(n.getElementRef().nativeElement)));this._config&&this._config.threshold&&this._config.threshold>1?(this._initialScrollPosition=this._viewportRuler.getViewportScrollPosition().top,this._scrollSubscription=t.subscribe(()=>{let n=this._viewportRuler.getViewportScrollPosition().top;Math.abs(n-this._initialScrollPosition)>this._config.threshold?this._detach():this._overlayRef.updatePosition()})):this._scrollSubscription=t.subscribe(this._detach)}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}_detach=()=>{this.disable(),this._overlayRef.hasAttached()&&this._ngZone.run(()=>this._overlayRef.detach())}},wi=class{enable(){}disable(){}attach(){}};function Dh(e,t){return t.some(n=>{let r=e.bottomn.bottom,i=e.rightn.right;return r||o||i||s})}function vD(e,t){return t.some(n=>{let r=e.topn.bottom,i=e.leftn.right;return r||o||i||s})}var Uc=class{_scrollDispatcher;_viewportRuler;_ngZone;_config;_scrollSubscription=null;_overlayRef;constructor(t,n,r,o){this._scrollDispatcher=t,this._viewportRuler=n,this._ngZone=r,this._config=o}attach(t){this._overlayRef,this._overlayRef=t}enable(){if(!this._scrollSubscription){let t=this._config?this._config.scrollThrottle:0;this._scrollSubscription=this._scrollDispatcher.scrolled(t).subscribe(()=>{if(this._overlayRef.updatePosition(),this._config&&this._config.autoClose){let n=this._overlayRef.overlayElement.getBoundingClientRect(),{width:r,height:o}=this._viewportRuler.getViewportSize();Dh(n,[{width:r,height:o,bottom:o,right:r,top:0,left:0}])&&(this.disable(),this._ngZone.run(()=>this._overlayRef.detach()))}})}}disable(){this._scrollSubscription&&(this._scrollSubscription.unsubscribe(),this._scrollSubscription=null)}detach(){this.disable(),this._overlayRef=null}},wD=(()=>{class e{_scrollDispatcher=h(mD);_viewportRuler=h(bh);_ngZone=h(x);_document=h(k);constructor(){}noop=()=>new wi;close=n=>new Hc(this._scrollDispatcher,this._ngZone,this._viewportRuler,n);block=()=>new Bc(this._viewportRuler,this._document);reposition=n=>new Uc(this._scrollDispatcher,this._viewportRuler,this._ngZone,n);static \u0275fac=function(r){return new(r||e)};static \u0275prov=v({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),so=class{positionStrategy;scrollStrategy=new wi;panelClass="";hasBackdrop=!1;backdropClass="cdk-overlay-dark-backdrop";width;height;minWidth;minHeight;maxWidth;maxHeight;direction;disposeOnNavigation=!1;constructor(t){if(t){let n=Object.keys(t);for(let r of n)t[r]!==void 0&&(this[r]=t[r])}}};var $c=class{connectionPair;scrollableViewProperties;constructor(t,n){this.connectionPair=t,this.scrollableViewProperties=n}};var CD=(()=>{class e{_attachedOverlays=[];_document=h(k);_isAttached;constructor(){}ngOnDestroy(){this.detach()}add(n){this.remove(n),this._attachedOverlays.push(n)}remove(n){let r=this._attachedOverlays.indexOf(n);r>-1&&this._attachedOverlays.splice(r,1),this._attachedOverlays.length===0&&this.detach()}static \u0275fac=function(r){return new(r||e)};static \u0275prov=v({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),ID=(()=>{class e extends CD{_ngZone=h(x);_renderer=h(ve).createRenderer(null,null);_cleanupKeydown;add(n){super.add(n),this._isAttached||(this._ngZone.runOutsideAngular(()=>{this._cleanupKeydown=this._renderer.listen("body","keydown",this._keydownListener)}),this._isAttached=!0)}detach(){this._isAttached&&(this._cleanupKeydown?.(),this._isAttached=!1)}_keydownListener=n=>{let r=this._attachedOverlays;for(let o=r.length-1;o>-1;o--)if(r[o]._keydownEvents.observers.length>0){this._ngZone.run(()=>r[o]._keydownEvents.next(n));break}};static \u0275fac=(()=>{let n;return function(o){return(n||(n=Ne(e)))(o||e)}})();static \u0275prov=v({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),MD=(()=>{class e extends CD{_platform=h(ne);_ngZone=h(x);_renderer=h(ve).createRenderer(null,null);_cursorOriginalValue;_cursorStyleIsSet=!1;_pointerDownEventTarget;_cleanups;add(n){if(super.add(n),!this._isAttached){let r=this._document.body,o={capture:!0};this._cleanups=this._ngZone.runOutsideAngular(()=>[Je(this._renderer,r,"pointerdown",this._pointerDownListener,o),Je(this._renderer,r,"click",this._clickListener,o),Je(this._renderer,r,"auxclick",this._clickListener,o),Je(this._renderer,r,"contextmenu",this._clickListener,o)]),this._platform.IOS&&!this._cursorStyleIsSet&&(this._cursorOriginalValue=r.style.cursor,r.style.cursor="pointer",this._cursorStyleIsSet=!0),this._isAttached=!0}}detach(){this._isAttached&&(this._cleanups?.forEach(n=>n()),this._cleanups=void 0,this._platform.IOS&&this._cursorStyleIsSet&&(this._document.body.style.cursor=this._cursorOriginalValue,this._cursorStyleIsSet=!1),this._isAttached=!1)}_pointerDownListener=n=>{this._pointerDownEventTarget=Fe(n)};_clickListener=n=>{let r=Fe(n),o=n.type==="click"&&this._pointerDownEventTarget?this._pointerDownEventTarget:r;this._pointerDownEventTarget=null;let i=this._attachedOverlays.slice();for(let s=i.length-1;s>-1;s--){let a=i[s];if(a._outsidePointerEvents.observers.length<1||!a.hasAttached())continue;if(yD(a.overlayElement,r)||yD(a.overlayElement,o))break;let c=a._outsidePointerEvents;this._ngZone?this._ngZone.run(()=>c.next(n)):c.next(n)}};static \u0275fac=(()=>{let n;return function(o){return(n||(n=Ne(e)))(o||e)}})();static \u0275prov=v({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function yD(e,t){let n=typeof ShadowRoot<"u"&&ShadowRoot,r=t;for(;r;){if(r===e)return!0;r=n&&r instanceof ShadowRoot?r.host:r.parentNode}return!1}var TD=(()=>{class e{static \u0275fac=function(r){return new(r||e)};static \u0275cmp=_e({type:e,selectors:[["ng-component"]],hostAttrs:["cdk-overlay-style-loader",""],decls:0,vars:0,template:function(r,o){},styles:[`.cdk-overlay-container,.cdk-global-overlay-wrapper{pointer-events:none;top:0;left:0;height:100%;width:100%}.cdk-overlay-container{position:fixed}@layer cdk-overlay{.cdk-overlay-container{z-index:1000}}.cdk-overlay-container:empty{display:none}.cdk-global-overlay-wrapper{display:flex;position:absolute}@layer cdk-overlay{.cdk-global-overlay-wrapper{z-index:1000}}.cdk-overlay-pane{position:absolute;pointer-events:auto;box-sizing:border-box;display:flex;max-width:100%;max-height:100%}@layer cdk-overlay{.cdk-overlay-pane{z-index:1000}}.cdk-overlay-backdrop{position:absolute;top:0;bottom:0;left:0;right:0;pointer-events:auto;-webkit-tap-highlight-color:rgba(0,0,0,0);opacity:0;touch-action:manipulation}@layer cdk-overlay{.cdk-overlay-backdrop{z-index:1000;transition:opacity 400ms cubic-bezier(0.25, 0.8, 0.25, 1)}}@media(prefers-reduced-motion){.cdk-overlay-backdrop{transition-duration:1ms}}.cdk-overlay-backdrop-showing{opacity:1}@media(forced-colors: active){.cdk-overlay-backdrop-showing{opacity:.6}}@layer cdk-overlay{.cdk-overlay-dark-backdrop{background:rgba(0,0,0,.32)}}.cdk-overlay-transparent-backdrop{transition:visibility 1ms linear,opacity 1ms linear;visibility:hidden;opacity:1}.cdk-overlay-transparent-backdrop.cdk-overlay-backdrop-showing,.cdk-high-contrast-active .cdk-overlay-transparent-backdrop{opacity:0;visibility:visible}.cdk-overlay-backdrop-noop-animation{transition:none}.cdk-overlay-connected-position-bounding-box{position:absolute;display:flex;flex-direction:column;min-width:1px;min-height:1px}@layer cdk-overlay{.cdk-overlay-connected-position-bounding-box{z-index:1000}}.cdk-global-scrollblock{position:fixed;width:100%;overflow-y:scroll} +`],encapsulation:2,changeDetection:0})}return e})(),Wc=(()=>{class e{_platform=h(ne);_containerElement;_document=h(k);_styleLoader=h(et);constructor(){}ngOnDestroy(){this._containerElement?.remove()}getContainerElement(){return this._loadStyles(),this._containerElement||this._createContainer(),this._containerElement}_createContainer(){let n="cdk-overlay-container";if(this._platform.isBrowser||hh()){let o=this._document.querySelectorAll(`.${n}[platform="server"], .${n}[platform="test"]`);for(let i=0;i{let t=this.element;clearTimeout(this._fallbackTimeout),this._cleanupTransitionEnd?.(),this._cleanupTransitionEnd=this._renderer.listen(t,"transitionend",this.dispose),this._fallbackTimeout=setTimeout(this.dispose,500),t.style.pointerEvents="none",t.classList.remove("cdk-overlay-backdrop-showing")})}dispose=()=>{clearTimeout(this._fallbackTimeout),this._cleanupClick?.(),this._cleanupTransitionEnd?.(),this._cleanupClick=this._cleanupTransitionEnd=this._fallbackTimeout=void 0,this.element.remove()}},or=class{_portalOutlet;_host;_pane;_config;_ngZone;_keyboardDispatcher;_document;_location;_outsideClickDispatcher;_animationsDisabled;_injector;_renderer;_backdropClick=new T;_attachments=new T;_detachments=new T;_positionStrategy;_scrollStrategy;_locationChanges=Q.EMPTY;_backdropRef=null;_previousHostParent;_keydownEvents=new T;_outsidePointerEvents=new T;_renders=new T;_afterRenderRef;_afterNextRenderRef;constructor(t,n,r,o,i,s,a,c,l,u=!1,f,p){this._portalOutlet=t,this._host=n,this._pane=r,this._config=o,this._ngZone=i,this._keyboardDispatcher=s,this._document=a,this._location=c,this._outsideClickDispatcher=l,this._animationsDisabled=u,this._injector=f,this._renderer=p,o.scrollStrategy&&(this._scrollStrategy=o.scrollStrategy,this._scrollStrategy.attach(this)),this._positionStrategy=o.positionStrategy,this._afterRenderRef=Ke(()=>$d(()=>{this._renders.next()},{injector:this._injector}))}get overlayElement(){return this._pane}get backdropElement(){return this._backdropRef?.element||null}get hostElement(){return this._host}attach(t){!this._host.parentElement&&this._previousHostParent&&this._previousHostParent.appendChild(this._host);let n=this._portalOutlet.attach(t);return this._positionStrategy&&this._positionStrategy.attach(this),this._updateStackingOrder(),this._updateElementSize(),this._updateElementDirection(),this._scrollStrategy&&this._scrollStrategy.enable(),this._afterNextRenderRef?.destroy(),this._afterNextRenderRef=Wt(()=>{this.hasAttached()&&this.updatePosition()},{injector:this._injector}),this._togglePointerEvents(!0),this._config.hasBackdrop&&this._attachBackdrop(),this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!0),this._attachments.next(),this._keyboardDispatcher.add(this),this._config.disposeOnNavigation&&(this._locationChanges=this._location.subscribe(()=>this.dispose())),this._outsideClickDispatcher.add(this),typeof n?.onDestroy=="function"&&n.onDestroy(()=>{this.hasAttached()&&this._ngZone.runOutsideAngular(()=>Promise.resolve().then(()=>this.detach()))}),n}detach(){if(!this.hasAttached())return;this.detachBackdrop(),this._togglePointerEvents(!1),this._positionStrategy&&this._positionStrategy.detach&&this._positionStrategy.detach(),this._scrollStrategy&&this._scrollStrategy.disable();let t=this._portalOutlet.detach();return this._detachments.next(),this._keyboardDispatcher.remove(this),this._detachContentWhenEmpty(),this._locationChanges.unsubscribe(),this._outsideClickDispatcher.remove(this),t}dispose(){let t=this.hasAttached();this._positionStrategy&&this._positionStrategy.dispose(),this._disposeScrollStrategy(),this._backdropRef?.dispose(),this._locationChanges.unsubscribe(),this._keyboardDispatcher.remove(this),this._portalOutlet.dispose(),this._attachments.complete(),this._backdropClick.complete(),this._keydownEvents.complete(),this._outsidePointerEvents.complete(),this._outsideClickDispatcher.remove(this),this._host?.remove(),this._afterNextRenderRef?.destroy(),this._previousHostParent=this._pane=this._host=this._backdropRef=null,t&&this._detachments.next(),this._detachments.complete(),this._afterRenderRef.destroy(),this._renders.complete()}hasAttached(){return this._portalOutlet.hasAttached()}backdropClick(){return this._backdropClick}attachments(){return this._attachments}detachments(){return this._detachments}keydownEvents(){return this._keydownEvents}outsidePointerEvents(){return this._outsidePointerEvents}getConfig(){return this._config}updatePosition(){this._positionStrategy&&this._positionStrategy.apply()}updatePositionStrategy(t){t!==this._positionStrategy&&(this._positionStrategy&&this._positionStrategy.dispose(),this._positionStrategy=t,this.hasAttached()&&(t.attach(this),this.updatePosition()))}updateSize(t){this._config=_(_({},this._config),t),this._updateElementSize()}setDirection(t){this._config=B(_({},this._config),{direction:t}),this._updateElementDirection()}addPanelClass(t){this._pane&&this._toggleClasses(this._pane,t,!0)}removePanelClass(t){this._pane&&this._toggleClasses(this._pane,t,!1)}getDirection(){let t=this._config.direction;return t?typeof t=="string"?t:t.value:"ltr"}updateScrollStrategy(t){t!==this._scrollStrategy&&(this._disposeScrollStrategy(),this._scrollStrategy=t,this.hasAttached()&&(t.attach(this),t.enable()))}_updateElementDirection(){this._host.setAttribute("dir",this.getDirection())}_updateElementSize(){if(!this._pane)return;let t=this._pane.style;t.width=ae(this._config.width),t.height=ae(this._config.height),t.minWidth=ae(this._config.minWidth),t.minHeight=ae(this._config.minHeight),t.maxWidth=ae(this._config.maxWidth),t.maxHeight=ae(this._config.maxHeight)}_togglePointerEvents(t){this._pane.style.pointerEvents=t?"":"none"}_attachBackdrop(){let t="cdk-overlay-backdrop-showing";this._backdropRef?.dispose(),this._backdropRef=new Eh(this._document,this._renderer,this._ngZone,n=>{this._backdropClick.next(n)}),this._animationsDisabled&&this._backdropRef.element.classList.add("cdk-overlay-backdrop-noop-animation"),this._config.backdropClass&&this._toggleClasses(this._backdropRef.element,this._config.backdropClass,!0),this._host.parentElement.insertBefore(this._backdropRef.element,this._host),!this._animationsDisabled&&typeof requestAnimationFrame<"u"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>this._backdropRef?.element.classList.add(t))}):this._backdropRef.element.classList.add(t)}_updateStackingOrder(){this._host.nextSibling&&this._host.parentNode.appendChild(this._host)}detachBackdrop(){this._animationsDisabled?(this._backdropRef?.dispose(),this._backdropRef=null):this._backdropRef?.detach()}_toggleClasses(t,n,r){let o=to(n||[]).filter(i=>!!i);o.length&&(r?t.classList.add(...o):t.classList.remove(...o))}_detachContentWhenEmpty(){this._ngZone.runOutsideAngular(()=>{let t=this._renders.pipe(tn(fo(this._attachments,this._detachments))).subscribe(()=>{(!this._pane||!this._host||this._pane.children.length===0)&&(this._pane&&this._config.panelClass&&this._toggleClasses(this._pane,this._config.panelClass,!1),this._host&&this._host.parentElement&&(this._previousHostParent=this._host.parentElement,this._host.remove()),t.unsubscribe())})})}_disposeScrollStrategy(){let t=this._scrollStrategy;t?.disable(),t?.detach?.()}},bD="cdk-overlay-connected-position-bounding-box",NN=/([A-Za-z%]+)$/,zc=class{_viewportRuler;_document;_platform;_overlayContainer;_overlayRef;_isInitialRender;_lastBoundingBoxSize={width:0,height:0};_isPushed=!1;_canPush=!0;_growAfterOpen=!1;_hasFlexibleDimensions=!0;_positionLocked=!1;_originRect;_overlayRect;_viewportRect;_containerRect;_viewportMargin=0;_scrollables=[];_preferredPositions=[];_origin;_pane;_isDisposed;_boundingBox;_lastPosition;_lastScrollVisibility;_positionChanges=new T;_resizeSubscription=Q.EMPTY;_offsetX=0;_offsetY=0;_transformOriginSelector;_appliedPanelClasses=[];_previousPushAmount;positionChanges=this._positionChanges;get positions(){return this._preferredPositions}constructor(t,n,r,o,i){this._viewportRuler=n,this._document=r,this._platform=o,this._overlayContainer=i,this.setOrigin(t)}attach(t){this._overlayRef&&this._overlayRef,this._validatePositions(),t.hostElement.classList.add(bD),this._overlayRef=t,this._boundingBox=t.hostElement,this._pane=t.overlayElement,this._isDisposed=!1,this._isInitialRender=!0,this._lastPosition=null,this._resizeSubscription.unsubscribe(),this._resizeSubscription=this._viewportRuler.change().subscribe(()=>{this._isInitialRender=!0,this.apply()})}apply(){if(this._isDisposed||!this._platform.isBrowser)return;if(!this._isInitialRender&&this._positionLocked&&this._lastPosition){this.reapplyLastPosition();return}this._clearPanelClasses(),this._resetOverlayElementStyles(),this._resetBoundingBoxStyles(),this._viewportRect=this._getNarrowedViewportRect(),this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();let t=this._originRect,n=this._overlayRect,r=this._viewportRect,o=this._containerRect,i=[],s;for(let a of this._preferredPositions){let c=this._getOriginPoint(t,o,a),l=this._getOverlayPoint(c,n,a),u=this._getOverlayFit(l,n,r,a);if(u.isCompletelyWithinViewport){this._isPushed=!1,this._applyPosition(a,c);return}if(this._canFitWithFlexibleDimensions(u,l,r)){i.push({position:a,origin:c,overlayRect:n,boundingBoxRect:this._calculateBoundingBoxRect(c,a)});continue}(!s||s.overlayFit.visibleAreac&&(c=u,a=l)}this._isPushed=!1,this._applyPosition(a.position,a.origin);return}if(this._canPush){this._isPushed=!0,this._applyPosition(s.position,s.originPoint);return}this._applyPosition(s.position,s.originPoint)}detach(){this._clearPanelClasses(),this._lastPosition=null,this._previousPushAmount=null,this._resizeSubscription.unsubscribe()}dispose(){this._isDisposed||(this._boundingBox&&rr(this._boundingBox.style,{top:"",left:"",right:"",bottom:"",height:"",width:"",alignItems:"",justifyContent:""}),this._pane&&this._resetOverlayElementStyles(),this._overlayRef&&this._overlayRef.hostElement.classList.remove(bD),this.detach(),this._positionChanges.complete(),this._overlayRef=this._boundingBox=null,this._isDisposed=!0)}reapplyLastPosition(){if(this._isDisposed||!this._platform.isBrowser)return;let t=this._lastPosition;if(t){this._originRect=this._getOriginRect(),this._overlayRect=this._pane.getBoundingClientRect(),this._viewportRect=this._getNarrowedViewportRect(),this._containerRect=this._overlayContainer.getContainerElement().getBoundingClientRect();let n=this._getOriginPoint(this._originRect,this._containerRect,t);this._applyPosition(t,n)}else this.apply()}withScrollableContainers(t){return this._scrollables=t,this}withPositions(t){return this._preferredPositions=t,t.indexOf(this._lastPosition)===-1&&(this._lastPosition=null),this._validatePositions(),this}withViewportMargin(t){return this._viewportMargin=t,this}withFlexibleDimensions(t=!0){return this._hasFlexibleDimensions=t,this}withGrowAfterOpen(t=!0){return this._growAfterOpen=t,this}withPush(t=!0){return this._canPush=t,this}withLockedPosition(t=!0){return this._positionLocked=t,this}setOrigin(t){return this._origin=t,this}withDefaultOffsetX(t){return this._offsetX=t,this}withDefaultOffsetY(t){return this._offsetY=t,this}withTransformOriginOn(t){return this._transformOriginSelector=t,this}_getOriginPoint(t,n,r){let o;if(r.originX=="center")o=t.left+t.width/2;else{let s=this._isRtl()?t.right:t.left,a=this._isRtl()?t.left:t.right;o=r.originX=="start"?s:a}n.left<0&&(o-=n.left);let i;return r.originY=="center"?i=t.top+t.height/2:i=r.originY=="top"?t.top:t.bottom,n.top<0&&(i-=n.top),{x:o,y:i}}_getOverlayPoint(t,n,r){let o;r.overlayX=="center"?o=-n.width/2:r.overlayX==="start"?o=this._isRtl()?-n.width:0:o=this._isRtl()?0:-n.width;let i;return r.overlayY=="center"?i=-n.height/2:i=r.overlayY=="top"?0:-n.height,{x:t.x+o,y:t.y+i}}_getOverlayFit(t,n,r,o){let i=DD(n),{x:s,y:a}=t,c=this._getOffset(o,"x"),l=this._getOffset(o,"y");c&&(s+=c),l&&(a+=l);let u=0-s,f=s+i.width-r.width,p=0-a,d=a+i.height-r.height,m=this._subtractOverflows(i.width,u,f),g=this._subtractOverflows(i.height,p,d),b=m*g;return{visibleArea:b,isCompletelyWithinViewport:i.width*i.height===b,fitsInViewportVertically:g===i.height,fitsInViewportHorizontally:m==i.width}}_canFitWithFlexibleDimensions(t,n,r){if(this._hasFlexibleDimensions){let o=r.bottom-n.y,i=r.right-n.x,s=_D(this._overlayRef.getConfig().minHeight),a=_D(this._overlayRef.getConfig().minWidth),c=t.fitsInViewportVertically||s!=null&&s<=o,l=t.fitsInViewportHorizontally||a!=null&&a<=i;return c&&l}return!1}_pushOverlayOnScreen(t,n,r){if(this._previousPushAmount&&this._positionLocked)return{x:t.x+this._previousPushAmount.x,y:t.y+this._previousPushAmount.y};let o=DD(n),i=this._viewportRect,s=Math.max(t.x+o.width-i.width,0),a=Math.max(t.y+o.height-i.height,0),c=Math.max(i.top-r.top-t.y,0),l=Math.max(i.left-r.left-t.x,0),u=0,f=0;return o.width<=i.width?u=l||-s:u=t.xm&&!this._isInitialRender&&!this._growAfterOpen&&(s=t.y-m/2)}let c=n.overlayX==="start"&&!o||n.overlayX==="end"&&o,l=n.overlayX==="end"&&!o||n.overlayX==="start"&&o,u,f,p;if(l)p=r.width-t.x+this._viewportMargin*2,u=t.x-this._viewportMargin;else if(c)f=t.x,u=r.right-t.x;else{let d=Math.min(r.right-t.x+r.left,t.x),m=this._lastBoundingBoxSize.width;u=d*2,f=t.x-d,u>m&&!this._isInitialRender&&!this._growAfterOpen&&(f=t.x-m/2)}return{top:s,left:f,bottom:a,right:p,width:u,height:i}}_setBoundingBoxStyles(t,n){let r=this._calculateBoundingBoxRect(t,n);!this._isInitialRender&&!this._growAfterOpen&&(r.height=Math.min(r.height,this._lastBoundingBoxSize.height),r.width=Math.min(r.width,this._lastBoundingBoxSize.width));let o={};if(this._hasExactPosition())o.top=o.left="0",o.bottom=o.right=o.maxHeight=o.maxWidth="",o.width=o.height="100%";else{let i=this._overlayRef.getConfig().maxHeight,s=this._overlayRef.getConfig().maxWidth;o.height=ae(r.height),o.top=ae(r.top),o.bottom=ae(r.bottom),o.width=ae(r.width),o.left=ae(r.left),o.right=ae(r.right),n.overlayX==="center"?o.alignItems="center":o.alignItems=n.overlayX==="end"?"flex-end":"flex-start",n.overlayY==="center"?o.justifyContent="center":o.justifyContent=n.overlayY==="bottom"?"flex-end":"flex-start",i&&(o.maxHeight=ae(i)),s&&(o.maxWidth=ae(s))}this._lastBoundingBoxSize=r,rr(this._boundingBox.style,o)}_resetBoundingBoxStyles(){rr(this._boundingBox.style,{top:"0",left:"0",right:"0",bottom:"0",height:"",width:"",alignItems:"",justifyContent:""})}_resetOverlayElementStyles(){rr(this._pane.style,{top:"",left:"",bottom:"",right:"",position:"",transform:""})}_setOverlayElementStyles(t,n){let r={},o=this._hasExactPosition(),i=this._hasFlexibleDimensions,s=this._overlayRef.getConfig();if(o){let u=this._viewportRuler.getViewportScrollPosition();rr(r,this._getExactOverlayY(n,t,u)),rr(r,this._getExactOverlayX(n,t,u))}else r.position="static";let a="",c=this._getOffset(n,"x"),l=this._getOffset(n,"y");c&&(a+=`translateX(${c}px) `),l&&(a+=`translateY(${l}px)`),r.transform=a.trim(),s.maxHeight&&(o?r.maxHeight=ae(s.maxHeight):i&&(r.maxHeight="")),s.maxWidth&&(o?r.maxWidth=ae(s.maxWidth):i&&(r.maxWidth="")),rr(this._pane.style,r)}_getExactOverlayY(t,n,r){let o={top:"",bottom:""},i=this._getOverlayPoint(n,this._overlayRect,t);if(this._isPushed&&(i=this._pushOverlayOnScreen(i,this._overlayRect,r)),t.overlayY==="bottom"){let s=this._document.documentElement.clientHeight;o.bottom=`${s-(i.y+this._overlayRect.height)}px`}else o.top=ae(i.y);return o}_getExactOverlayX(t,n,r){let o={left:"",right:""},i=this._getOverlayPoint(n,this._overlayRect,t);this._isPushed&&(i=this._pushOverlayOnScreen(i,this._overlayRect,r));let s;if(this._isRtl()?s=t.overlayX==="end"?"left":"right":s=t.overlayX==="end"?"right":"left",s==="right"){let a=this._document.documentElement.clientWidth;o.right=`${a-(i.x+this._overlayRect.width)}px`}else o.left=ae(i.x);return o}_getScrollVisibility(){let t=this._getOriginRect(),n=this._pane.getBoundingClientRect(),r=this._scrollables.map(o=>o.getElementRef().nativeElement.getBoundingClientRect());return{isOriginClipped:vD(t,r),isOriginOutsideView:Dh(t,r),isOverlayClipped:vD(n,r),isOverlayOutsideView:Dh(n,r)}}_subtractOverflows(t,...n){return n.reduce((r,o)=>r-Math.max(o,0),t)}_getNarrowedViewportRect(){let t=this._document.documentElement.clientWidth,n=this._document.documentElement.clientHeight,r=this._viewportRuler.getViewportScrollPosition();return{top:r.top+this._viewportMargin,left:r.left+this._viewportMargin,right:r.left+t-this._viewportMargin,bottom:r.top+n-this._viewportMargin,width:t-2*this._viewportMargin,height:n-2*this._viewportMargin}}_isRtl(){return this._overlayRef.getDirection()==="rtl"}_hasExactPosition(){return!this._hasFlexibleDimensions||this._isPushed}_getOffset(t,n){return n==="x"?t.offsetX==null?this._offsetX:t.offsetX:t.offsetY==null?this._offsetY:t.offsetY}_validatePositions(){}_addPanelClasses(t){this._pane&&to(t).forEach(n=>{n!==""&&this._appliedPanelClasses.indexOf(n)===-1&&(this._appliedPanelClasses.push(n),this._pane.classList.add(n))})}_clearPanelClasses(){this._pane&&(this._appliedPanelClasses.forEach(t=>{this._pane.classList.remove(t)}),this._appliedPanelClasses=[])}_getOriginRect(){let t=this._origin;if(t instanceof X)return t.nativeElement.getBoundingClientRect();if(t instanceof Element)return t.getBoundingClientRect();let n=t.width||0,r=t.height||0;return{top:t.y,bottom:t.y+r,left:t.x,right:t.x+n,height:r,width:n}}};function rr(e,t){for(let n in t)t.hasOwnProperty(n)&&(e[n]=t[n]);return e}function _D(e){if(typeof e!="number"&&e!=null){let[t,n]=e.split(NN);return!n||n==="px"?parseFloat(t):null}return e||null}function DD(e){return{top:Math.floor(e.top),right:Math.floor(e.right),bottom:Math.floor(e.bottom),left:Math.floor(e.left),width:Math.floor(e.width),height:Math.floor(e.height)}}function ON(e,t){return e===t?!0:e.isOriginClipped===t.isOriginClipped&&e.isOriginOutsideView===t.isOriginOutsideView&&e.isOverlayClipped===t.isOverlayClipped&&e.isOverlayOutsideView===t.isOverlayOutsideView}var ED="cdk-global-overlay-wrapper",Gc=class{_overlayRef;_cssPosition="static";_topOffset="";_bottomOffset="";_alignItems="";_xPosition="";_xOffset="";_width="";_height="";_isDisposed=!1;attach(t){let n=t.getConfig();this._overlayRef=t,this._width&&!n.width&&t.updateSize({width:this._width}),this._height&&!n.height&&t.updateSize({height:this._height}),t.hostElement.classList.add(ED),this._isDisposed=!1}top(t=""){return this._bottomOffset="",this._topOffset=t,this._alignItems="flex-start",this}left(t=""){return this._xOffset=t,this._xPosition="left",this}bottom(t=""){return this._topOffset="",this._bottomOffset=t,this._alignItems="flex-end",this}right(t=""){return this._xOffset=t,this._xPosition="right",this}start(t=""){return this._xOffset=t,this._xPosition="start",this}end(t=""){return this._xOffset=t,this._xPosition="end",this}width(t=""){return this._overlayRef?this._overlayRef.updateSize({width:t}):this._width=t,this}height(t=""){return this._overlayRef?this._overlayRef.updateSize({height:t}):this._height=t,this}centerHorizontally(t=""){return this.left(t),this._xPosition="center",this}centerVertically(t=""){return this.top(t),this._alignItems="center",this}apply(){if(!this._overlayRef||!this._overlayRef.hasAttached())return;let t=this._overlayRef.overlayElement.style,n=this._overlayRef.hostElement.style,r=this._overlayRef.getConfig(),{width:o,height:i,maxWidth:s,maxHeight:a}=r,c=(o==="100%"||o==="100vw")&&(!s||s==="100%"||s==="100vw"),l=(i==="100%"||i==="100vh")&&(!a||a==="100%"||a==="100vh"),u=this._xPosition,f=this._xOffset,p=this._overlayRef.getConfig().direction==="rtl",d="",m="",g="";c?g="flex-start":u==="center"?(g="center",p?m=f:d=f):p?u==="left"||u==="end"?(g="flex-end",d=f):(u==="right"||u==="start")&&(g="flex-start",m=f):u==="left"||u==="start"?(g="flex-start",d=f):(u==="right"||u==="end")&&(g="flex-end",m=f),t.position=this._cssPosition,t.marginLeft=c?"0":d,t.marginTop=l?"0":this._topOffset,t.marginBottom=this._bottomOffset,t.marginRight=c?"0":m,n.justifyContent=g,n.alignItems=l?"flex-start":this._alignItems}dispose(){if(this._isDisposed||!this._overlayRef)return;let t=this._overlayRef.overlayElement.style,n=this._overlayRef.hostElement,r=n.style;n.classList.remove(ED),r.justifyContent=r.alignItems=t.marginTop=t.marginBottom=t.marginLeft=t.marginRight=t.position="",this._overlayRef=null,this._isDisposed=!0}},SD=(()=>{class e{_viewportRuler=h(bh);_document=h(k);_platform=h(ne);_overlayContainer=h(Wc);constructor(){}global(){return new Gc}flexibleConnectedTo(n){return new zc(n,this._viewportRuler,this._document,this._platform,this._overlayContainer)}static \u0275fac=function(r){return new(r||e)};static \u0275prov=v({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})(),Nt=(()=>{class e{scrollStrategies=h(wD);_overlayContainer=h(Wc);_positionBuilder=h(SD);_keyboardDispatcher=h(ID);_injector=h(z);_ngZone=h(x);_document=h(k);_directionality=h(ro);_location=h(Wa);_outsideClickDispatcher=h(MD);_animationsModuleType=h(Ct,{optional:!0});_idGenerator=h(Qn);_renderer=h(ve).createRenderer(null,null);_appRef;_styleLoader=h(et);constructor(){}create(n){this._styleLoader.load(TD);let r=this._createHostElement(),o=this._createPaneElement(r),i=this._createPortalOutlet(o),s=new so(n);return s.direction=s.direction||this._directionality.value,new or(i,r,o,s,this._ngZone,this._keyboardDispatcher,this._document,this._location,this._outsideClickDispatcher,this._animationsModuleType==="NoopAnimations",this._injector.get(ge),this._renderer)}position(){return this._positionBuilder}_createPaneElement(n){let r=this._document.createElement("div");return r.id=this._idGenerator.getId("cdk-overlay-"),r.classList.add("cdk-overlay-pane"),n.appendChild(r),r}_createHostElement(){let n=this._document.createElement("div");return this._overlayContainer.getContainerElement().appendChild(n),n}_createPortalOutlet(n){return this._appRef||(this._appRef=this._injector.get(ye)),new Ei(n,null,this._appRef,this._injector,this._document)}static \u0275fac=function(r){return new(r||e)};static \u0275prov=v({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var kN=new y("cdk-connected-overlay-scroll-strategy",{providedIn:"root",factory:()=>{let e=h(Nt);return()=>e.scrollStrategies.reposition()}});function FN(e){return()=>e.scrollStrategies.reposition()}var PN={provide:kN,deps:[Nt],useFactory:FN},Ci=(()=>{class e{static \u0275fac=function(r){return new(r||e)};static \u0275mod=U({type:e});static \u0275inj=H({providers:[Nt,PN],imports:[gn,vn,_h,_h]})}return e})();function LN(e,t){}var yn=class{viewContainerRef;injector;id;role="dialog";panelClass="";hasBackdrop=!0;backdropClass="";disableClose=!1;width="";height="";minWidth;minHeight;maxWidth;maxHeight;positionStrategy;data=null;direction;ariaDescribedBy=null;ariaLabelledBy=null;ariaLabel=null;ariaModal=!1;autoFocus="first-tabbable";restoreFocus=!0;scrollStrategy;closeOnNavigation=!0;closeOnDestroy=!0;closeOnOverlayDetachments=!0;componentFactoryResolver;providers;container;templateContext};var Ch=(()=>{class e extends nr{_elementRef=h(X);_focusTrapFactory=h(ah);_config;_interactivityChecker=h(Nc);_ngZone=h(x);_overlayRef=h(or);_focusMonitor=h(bi);_renderer=h(dt);_changeDetectorRef=h($r);_injector=h(z);_platform=h(ne);_document=h(k,{optional:!0});_portalOutlet;_focusTrapped=new T;_focusTrap=null;_elementFocusedBeforeDialogWasOpened=null;_closeInteractionType=null;_ariaLabelledByQueue=[];_isDestroyed=!1;constructor(){super(),this._config=h(yn,{optional:!0})||new yn,this._config.ariaLabelledBy&&this._ariaLabelledByQueue.push(this._config.ariaLabelledBy)}_addAriaLabelledBy(n){this._ariaLabelledByQueue.push(n),this._changeDetectorRef.markForCheck()}_removeAriaLabelledBy(n){let r=this._ariaLabelledByQueue.indexOf(n);r>-1&&(this._ariaLabelledByQueue.splice(r,1),this._changeDetectorRef.markForCheck())}_contentAttached(){this._initializeFocusTrap(),this._handleBackdropClicks(),this._captureInitialFocus()}_captureInitialFocus(){this._trapFocus()}ngOnDestroy(){this._focusTrapped.complete(),this._isDestroyed=!0,this._restoreFocus()}attachComponentPortal(n){this._portalOutlet.hasAttached();let r=this._portalOutlet.attachComponentPortal(n);return this._contentAttached(),r}attachTemplatePortal(n){this._portalOutlet.hasAttached();let r=this._portalOutlet.attachTemplatePortal(n);return this._contentAttached(),r}attachDomPortal=n=>{this._portalOutlet.hasAttached();let r=this._portalOutlet.attachDomPortal(n);return this._contentAttached(),r};_recaptureFocus(){this._containsFocus()||this._trapFocus()}_forceFocus(n,r){this._interactivityChecker.isFocusable(n)||(n.tabIndex=-1,this._ngZone.runOutsideAngular(()=>{let o=()=>{i(),s(),n.removeAttribute("tabindex")},i=this._renderer.listen(n,"blur",o),s=this._renderer.listen(n,"mousedown",o)})),n.focus(r)}_focusByCssSelector(n,r){let o=this._elementRef.nativeElement.querySelector(n);o&&this._forceFocus(o,r)}_trapFocus(n){this._isDestroyed||Wt(()=>{let r=this._elementRef.nativeElement;switch(this._config.autoFocus){case!1:case"dialog":this._containsFocus()||r.focus(n);break;case!0:case"first-tabbable":this._focusTrap?.focusInitialElement(n)||this._focusDialogContainer(n);break;case"first-heading":this._focusByCssSelector('h1, h2, h3, h4, h5, h6, [role="heading"]',n);break;default:this._focusByCssSelector(this._config.autoFocus,n);break}this._focusTrapped.next()},{injector:this._injector})}_restoreFocus(){let n=this._config.restoreFocus,r=null;if(typeof n=="string"?r=this._document.querySelector(n):typeof n=="boolean"?r=n?this._elementFocusedBeforeDialogWasOpened:null:n&&(r=n),this._config.restoreFocus&&r&&typeof r.focus=="function"){let o=mi(),i=this._elementRef.nativeElement;(!o||o===this._document.body||o===i||i.contains(o))&&(this._focusMonitor?(this._focusMonitor.focusVia(r,this._closeInteractionType),this._closeInteractionType=null):r.focus())}this._focusTrap&&this._focusTrap.destroy()}_focusDialogContainer(n){this._elementRef.nativeElement.focus&&this._elementRef.nativeElement.focus(n)}_containsFocus(){let n=this._elementRef.nativeElement,r=mi();return n===r||n.contains(r)}_initializeFocusTrap(){this._platform.isBrowser&&(this._focusTrap=this._focusTrapFactory.create(this._elementRef.nativeElement),this._document&&(this._elementFocusedBeforeDialogWasOpened=mi()))}_handleBackdropClicks(){this._overlayRef.backdropClick().subscribe(()=>{this._config.disableClose&&this._recaptureFocus()})}static \u0275fac=function(r){return new(r||e)};static \u0275cmp=_e({type:e,selectors:[["cdk-dialog-container"]],viewQuery:function(r,o){if(r&1&&vf(io,7),r&2){let i;yf(i=bf())&&(o._portalOutlet=i.first)}},hostAttrs:["tabindex","-1",1,"cdk-dialog-container"],hostVars:6,hostBindings:function(r,o){r&2&&xt("id",o._config.id||null)("role",o._config.role)("aria-modal",o._config.ariaModal)("aria-labelledby",o._config.ariaLabel?null:o._ariaLabelledByQueue[0])("aria-label",o._config.ariaLabel)("aria-describedby",o._config.ariaDescribedBy||null)},features:[ee],decls:1,vars:0,consts:[["cdkPortalOutlet",""]],template:function(r,o){r&1&&$o(0,LN,0,0,"ng-template",0)},dependencies:[io],styles:[`.cdk-dialog-container{display:block;width:100%;height:100%;min-height:inherit;max-height:inherit} +`],encapsulation:2})}return e})(),Ii=class{overlayRef;config;componentInstance;componentRef;containerInstance;disableClose;closed=new T;backdropClick;keydownEvents;outsidePointerEvents;id;_detachSubscription;constructor(t,n){this.overlayRef=t,this.config=n,this.disableClose=n.disableClose,this.backdropClick=t.backdropClick(),this.keydownEvents=t.keydownEvents(),this.outsidePointerEvents=t.outsidePointerEvents(),this.id=n.id,this.keydownEvents.subscribe(r=>{r.keyCode===27&&!this.disableClose&&!no(r)&&(r.preventDefault(),this.close(void 0,{focusOrigin:"keyboard"}))}),this.backdropClick.subscribe(()=>{this.disableClose||this.close(void 0,{focusOrigin:"mouse"})}),this._detachSubscription=t.detachments().subscribe(()=>{n.closeOnOverlayDetachments!==!1&&this.close()})}close(t,n){if(this.containerInstance){let r=this.closed;this.containerInstance._closeInteractionType=n?.focusOrigin||"program",this._detachSubscription.unsubscribe(),this.overlayRef.dispose(),r.next(t),r.complete(),this.componentInstance=this.containerInstance=null}}updatePosition(){return this.overlayRef.updatePosition(),this}updateSize(t="",n=""){return this.overlayRef.updateSize({width:t,height:n}),this}addPanelClass(t){return this.overlayRef.addPanelClass(t),this}removePanelClass(t){return this.overlayRef.removePanelClass(t),this}},VN=new y("DialogScrollStrategy",{providedIn:"root",factory:()=>{let e=h(Nt);return()=>e.scrollStrategies.block()}}),jN=new y("DialogData"),BN=new y("DefaultDialogConfig");var Ih=(()=>{class e{_overlay=h(Nt);_injector=h(z);_defaultOptions=h(BN,{optional:!0});_parentDialog=h(e,{optional:!0,skipSelf:!0});_overlayContainer=h(Wc);_idGenerator=h(Qn);_openDialogsAtThisLevel=[];_afterAllClosedAtThisLevel=new T;_afterOpenedAtThisLevel=new T;_ariaHiddenElements=new Map;_scrollStrategy=h(VN);get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}afterAllClosed=uo(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(en(void 0)));constructor(){}open(n,r){let o=this._defaultOptions||new yn;r=_(_({},o),r),r.id=r.id||this._idGenerator.getId("cdk-dialog-"),r.id&&this.getDialogById(r.id);let i=this._getOverlayConfig(r),s=this._overlay.create(i),a=new Ii(s,r),c=this._attachContainer(s,a,r);if(a.containerInstance=c,!this.openDialogs.length){let l=this._overlayContainer.getContainerElement();c._focusTrapped?c._focusTrapped.pipe(ot(1)).subscribe(()=>{this._hideNonDialogContentFromAssistiveTechnology(l)}):this._hideNonDialogContentFromAssistiveTechnology(l)}return this._attachDialogContent(n,a,c,r),this.openDialogs.push(a),a.closed.subscribe(()=>this._removeOpenDialog(a,!0)),this.afterOpened.next(a),a}closeAll(){wh(this.openDialogs,n=>n.close())}getDialogById(n){return this.openDialogs.find(r=>r.id===n)}ngOnDestroy(){wh(this._openDialogsAtThisLevel,n=>{n.config.closeOnDestroy===!1&&this._removeOpenDialog(n,!1)}),wh(this._openDialogsAtThisLevel,n=>n.close()),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete(),this._openDialogsAtThisLevel=[]}_getOverlayConfig(n){let r=new so({positionStrategy:n.positionStrategy||this._overlay.position().global().centerHorizontally().centerVertically(),scrollStrategy:n.scrollStrategy||this._scrollStrategy(),panelClass:n.panelClass,hasBackdrop:n.hasBackdrop,direction:n.direction,minWidth:n.minWidth,minHeight:n.minHeight,maxWidth:n.maxWidth,maxHeight:n.maxHeight,width:n.width,height:n.height,disposeOnNavigation:n.closeOnNavigation});return n.backdropClass&&(r.backdropClass=n.backdropClass),r}_attachContainer(n,r,o){let i=o.injector||o.viewContainerRef?.injector,s=[{provide:yn,useValue:o},{provide:Ii,useValue:r},{provide:or,useValue:n}],a;o.container?typeof o.container=="function"?a=o.container:(a=o.container.type,s.push(...o.container.providers(o))):a=Ch;let c=new er(a,o.viewContainerRef,z.create({parent:i||this._injector,providers:s}));return n.attach(c).instance}_attachDialogContent(n,r,o,i){if(n instanceof qe){let s=this._createInjector(i,r,o,void 0),a={$implicit:i.data,dialogRef:r};i.templateContext&&(a=_(_({},a),typeof i.templateContext=="function"?i.templateContext():i.templateContext)),o.attachTemplatePortal(new tr(n,null,a,s))}else{let s=this._createInjector(i,r,o,this._injector),a=o.attachComponentPortal(new er(n,i.viewContainerRef,s));r.componentRef=a,r.componentInstance=a.instance}}_createInjector(n,r,o,i){let s=n.injector||n.viewContainerRef?.injector,a=[{provide:jN,useValue:n.data},{provide:Ii,useValue:r}];return n.providers&&(typeof n.providers=="function"?a.push(...n.providers(r,n,o)):a.push(...n.providers)),n.direction&&(!s||!s.get(ro,null,{optional:!0}))&&a.push({provide:ro,useValue:{value:n.direction,change:$e()}}),z.create({parent:s||i,providers:a})}_removeOpenDialog(n,r){let o=this.openDialogs.indexOf(n);o>-1&&(this.openDialogs.splice(o,1),this.openDialogs.length||(this._ariaHiddenElements.forEach((i,s)=>{i?s.setAttribute("aria-hidden",i):s.removeAttribute("aria-hidden")}),this._ariaHiddenElements.clear(),r&&this._getAfterAllClosed().next()))}_hideNonDialogContentFromAssistiveTechnology(n){if(n.parentElement){let r=n.parentElement.children;for(let o=r.length-1;o>-1;o--){let i=r[o];i!==n&&i.nodeName!=="SCRIPT"&&i.nodeName!=="STYLE"&&!i.hasAttribute("aria-live")&&(this._ariaHiddenElements.set(i,i.getAttribute("aria-hidden")),i.setAttribute("aria-hidden","true"))}}}_getAfterAllClosed(){let n=this._parentDialog;return n?n._getAfterAllClosed():this._afterAllClosedAtThisLevel}static \u0275fac=function(r){return new(r||e)};static \u0275prov=v({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();function wh(e,t){let n=e.length;for(;n--;)t(e[n])}var AD=(()=>{class e{static \u0275fac=function(r){return new(r||e)};static \u0275mod=U({type:e});static \u0275inj=H({providers:[Ih],imports:[Ci,vn,ch,vn]})}return e})();function HN(e,t){}var Ti=class{viewContainerRef;injector;id;role="dialog";panelClass="";hasBackdrop=!0;backdropClass="";disableClose=!1;width="";height="";minWidth;minHeight;maxWidth;maxHeight;position;data=null;direction;ariaDescribedBy=null;ariaLabelledBy=null;ariaLabel=null;ariaModal=!1;autoFocus="first-tabbable";restoreFocus=!0;delayFocusTrap=!0;scrollStrategy;closeOnNavigation=!0;componentFactoryResolver;enterAnimationDuration;exitAnimationDuration},Mh="mdc-dialog--open",RD="mdc-dialog--opening",ND="mdc-dialog--closing",UN=150,$N=75,FD=(()=>{class e extends Ch{_animationMode=h(Ct,{optional:!0});_animationStateChanged=new oe;_animationsEnabled=this._animationMode!=="NoopAnimations";_actionSectionCount=0;_hostElement=this._elementRef.nativeElement;_enterAnimationDuration=this._animationsEnabled?kD(this._config.enterAnimationDuration)??UN:0;_exitAnimationDuration=this._animationsEnabled?kD(this._config.exitAnimationDuration)??$N:0;_animationTimer=null;_contentAttached(){super._contentAttached(),this._startOpenAnimation()}_startOpenAnimation(){this._animationStateChanged.emit({state:"opening",totalTime:this._enterAnimationDuration}),this._animationsEnabled?(this._hostElement.style.setProperty(OD,`${this._enterAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(RD,Mh)),this._waitForAnimationToComplete(this._enterAnimationDuration,this._finishDialogOpen)):(this._hostElement.classList.add(Mh),Promise.resolve().then(()=>this._finishDialogOpen()))}_startExitAnimation(){this._animationStateChanged.emit({state:"closing",totalTime:this._exitAnimationDuration}),this._hostElement.classList.remove(Mh),this._animationsEnabled?(this._hostElement.style.setProperty(OD,`${this._exitAnimationDuration}ms`),this._requestAnimationFrame(()=>this._hostElement.classList.add(ND)),this._waitForAnimationToComplete(this._exitAnimationDuration,this._finishDialogClose)):Promise.resolve().then(()=>this._finishDialogClose())}_updateActionSectionCount(n){this._actionSectionCount+=n,this._changeDetectorRef.markForCheck()}_finishDialogOpen=()=>{this._clearAnimationClasses(),this._openAnimationDone(this._enterAnimationDuration)};_finishDialogClose=()=>{this._clearAnimationClasses(),this._animationStateChanged.emit({state:"closed",totalTime:this._exitAnimationDuration})};_clearAnimationClasses(){this._hostElement.classList.remove(RD,ND)}_waitForAnimationToComplete(n,r){this._animationTimer!==null&&clearTimeout(this._animationTimer),this._animationTimer=setTimeout(r,n)}_requestAnimationFrame(n){this._ngZone.runOutsideAngular(()=>{typeof requestAnimationFrame=="function"?requestAnimationFrame(n):n()})}_captureInitialFocus(){this._config.delayFocusTrap||this._trapFocus()}_openAnimationDone(n){this._config.delayFocusTrap&&this._trapFocus(),this._animationStateChanged.next({state:"opened",totalTime:n})}ngOnDestroy(){super.ngOnDestroy(),this._animationTimer!==null&&clearTimeout(this._animationTimer)}attachComponentPortal(n){let r=super.attachComponentPortal(n);return r.location.nativeElement.classList.add("mat-mdc-dialog-component-host"),r}static \u0275fac=(()=>{let n;return function(o){return(n||(n=Ne(e)))(o||e)}})();static \u0275cmp=_e({type:e,selectors:[["mat-dialog-container"]],hostAttrs:["tabindex","-1",1,"mat-mdc-dialog-container","mdc-dialog"],hostVars:10,hostBindings:function(r,o){r&2&&(gf("id",o._config.id),xt("aria-modal",o._config.ariaModal)("role",o._config.role)("aria-labelledby",o._config.ariaLabel?null:o._ariaLabelledByQueue[0])("aria-label",o._config.ariaLabel)("aria-describedby",o._config.ariaDescribedBy||null),He("_mat-animation-noopable",!o._animationsEnabled)("mat-mdc-dialog-container-with-actions",o._actionSectionCount>0))},features:[ee],decls:3,vars:0,consts:[[1,"mat-mdc-dialog-inner-container","mdc-dialog__container"],[1,"mat-mdc-dialog-surface","mdc-dialog__surface"],["cdkPortalOutlet",""]],template:function(r,o){r&1&&(Wn(0,"div",0)(1,"div",1),$o(2,HN,0,0,"ng-template",2),qn()())},dependencies:[io],styles:[`.mat-mdc-dialog-container{width:100%;height:100%;display:block;box-sizing:border-box;max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit;outline:0}.cdk-overlay-pane.mat-mdc-dialog-panel{max-width:var(--mat-dialog-container-max-width, 560px);min-width:var(--mat-dialog-container-min-width, 280px)}@media(max-width: 599px){.cdk-overlay-pane.mat-mdc-dialog-panel{max-width:var(--mat-dialog-container-small-max-width, calc(100vw - 32px))}}.mat-mdc-dialog-inner-container{display:flex;flex-direction:row;align-items:center;justify-content:space-around;box-sizing:border-box;height:100%;opacity:0;transition:opacity linear var(--mat-dialog-transition-duration, 0ms);max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit}.mdc-dialog--closing .mat-mdc-dialog-inner-container{transition:opacity 75ms linear;transform:none}.mdc-dialog--open .mat-mdc-dialog-inner-container{opacity:1}._mat-animation-noopable .mat-mdc-dialog-inner-container{transition:none}.mat-mdc-dialog-surface{display:flex;flex-direction:column;flex-grow:0;flex-shrink:0;box-sizing:border-box;width:100%;height:100%;position:relative;overflow-y:auto;outline:0;transform:scale(0.8);transition:transform var(--mat-dialog-transition-duration, 0ms) cubic-bezier(0, 0, 0.2, 1);max-height:inherit;min-height:inherit;min-width:inherit;max-width:inherit;box-shadow:var(--mat-dialog-container-elevation-shadow, none);border-radius:var(--mdc-dialog-container-shape, var(--mat-sys-corner-extra-large, 4px));background-color:var(--mdc-dialog-container-color, var(--mat-sys-surface, white))}[dir=rtl] .mat-mdc-dialog-surface{text-align:right}.mdc-dialog--open .mat-mdc-dialog-surface,.mdc-dialog--closing .mat-mdc-dialog-surface{transform:none}._mat-animation-noopable .mat-mdc-dialog-surface{transition:none}.mat-mdc-dialog-surface::before{position:absolute;box-sizing:border-box;width:100%;height:100%;top:0;left:0;border:2px solid rgba(0,0,0,0);border-radius:inherit;content:"";pointer-events:none}.mat-mdc-dialog-title{display:block;position:relative;flex-shrink:0;box-sizing:border-box;margin:0 0 1px;padding:var(--mat-dialog-headline-padding, 6px 24px 13px)}.mat-mdc-dialog-title::before{display:inline-block;width:0;height:40px;content:"";vertical-align:0}[dir=rtl] .mat-mdc-dialog-title{text-align:right}.mat-mdc-dialog-container .mat-mdc-dialog-title{color:var(--mdc-dialog-subhead-color, var(--mat-sys-on-surface, rgba(0, 0, 0, 0.87)));font-family:var(--mdc-dialog-subhead-font, var(--mat-sys-headline-small-font, inherit));line-height:var(--mdc-dialog-subhead-line-height, var(--mat-sys-headline-small-line-height, 1.5rem));font-size:var(--mdc-dialog-subhead-size, var(--mat-sys-headline-small-size, 1rem));font-weight:var(--mdc-dialog-subhead-weight, var(--mat-sys-headline-small-weight, 400));letter-spacing:var(--mdc-dialog-subhead-tracking, var(--mat-sys-headline-small-tracking, 0.03125em))}.mat-mdc-dialog-content{display:block;flex-grow:1;box-sizing:border-box;margin:0;overflow:auto;max-height:65vh}.mat-mdc-dialog-content>:first-child{margin-top:0}.mat-mdc-dialog-content>:last-child{margin-bottom:0}.mat-mdc-dialog-container .mat-mdc-dialog-content{color:var(--mdc-dialog-supporting-text-color, var(--mat-sys-on-surface-variant, rgba(0, 0, 0, 0.6)));font-family:var(--mdc-dialog-supporting-text-font, var(--mat-sys-body-medium-font, inherit));line-height:var(--mdc-dialog-supporting-text-line-height, var(--mat-sys-body-medium-line-height, 1.5rem));font-size:var(--mdc-dialog-supporting-text-size, var(--mat-sys-body-medium-size, 1rem));font-weight:var(--mdc-dialog-supporting-text-weight, var(--mat-sys-body-medium-weight, 400));letter-spacing:var(--mdc-dialog-supporting-text-tracking, var(--mat-sys-body-medium-tracking, 0.03125em))}.mat-mdc-dialog-container .mat-mdc-dialog-content{padding:var(--mat-dialog-content-padding, 20px 24px)}.mat-mdc-dialog-container-with-actions .mat-mdc-dialog-content{padding:var(--mat-dialog-with-actions-content-padding, 20px 24px 0)}.mat-mdc-dialog-container .mat-mdc-dialog-title+.mat-mdc-dialog-content{padding-top:0}.mat-mdc-dialog-actions{display:flex;position:relative;flex-shrink:0;flex-wrap:wrap;align-items:center;justify-content:flex-end;box-sizing:border-box;min-height:52px;margin:0;padding:8px;border-top:1px solid rgba(0,0,0,0);padding:var(--mat-dialog-actions-padding, 16px 24px);justify-content:var(--mat-dialog-actions-alignment, flex-end)}@media(forced-colors: active){.mat-mdc-dialog-actions{border-top-color:CanvasText}}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-start,.mat-mdc-dialog-actions[align=start]{justify-content:start}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-center,.mat-mdc-dialog-actions[align=center]{justify-content:center}.mat-mdc-dialog-actions.mat-mdc-dialog-actions-align-end,.mat-mdc-dialog-actions[align=end]{justify-content:flex-end}.mat-mdc-dialog-actions .mat-button-base+.mat-button-base,.mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-mdc-dialog-actions .mat-button-base+.mat-button-base,[dir=rtl] .mat-mdc-dialog-actions .mat-mdc-button-base+.mat-mdc-button-base{margin-left:0;margin-right:8px}.mat-mdc-dialog-component-host{display:contents} +`],encapsulation:2})}return e})(),OD="--mat-dialog-transition-duration";function kD(e){return e==null?null:typeof e=="number"?e:e.endsWith("ms")?vi(e.substring(0,e.length-2)):e.endsWith("s")?vi(e.substring(0,e.length-1))*1e3:e==="0"?0:null}var Mi=function(e){return e[e.OPEN=0]="OPEN",e[e.CLOSING=1]="CLOSING",e[e.CLOSED=2]="CLOSED",e}(Mi||{}),qc=class{_ref;_containerInstance;componentInstance;componentRef;disableClose;id;_afterOpened=new T;_beforeClosed=new T;_result;_closeFallbackTimeout;_state=Mi.OPEN;_closeInteractionType;constructor(t,n,r){this._ref=t,this._containerInstance=r,this.disableClose=n.disableClose,this.id=t.id,t.addPanelClass("mat-mdc-dialog-panel"),r._animationStateChanged.pipe(ce(o=>o.state==="opened"),ot(1)).subscribe(()=>{this._afterOpened.next(),this._afterOpened.complete()}),r._animationStateChanged.pipe(ce(o=>o.state==="closed"),ot(1)).subscribe(()=>{clearTimeout(this._closeFallbackTimeout),this._finishDialogClose()}),t.overlayRef.detachments().subscribe(()=>{this._beforeClosed.next(this._result),this._beforeClosed.complete(),this._finishDialogClose()}),fo(this.backdropClick(),this.keydownEvents().pipe(ce(o=>o.keyCode===27&&!this.disableClose&&!no(o)))).subscribe(o=>{this.disableClose||(o.preventDefault(),PD(this,o.type==="keydown"?"keyboard":"mouse"))})}close(t){this._result=t,this._containerInstance._animationStateChanged.pipe(ce(n=>n.state==="closing"),ot(1)).subscribe(n=>{this._beforeClosed.next(t),this._beforeClosed.complete(),this._ref.overlayRef.detachBackdrop(),this._closeFallbackTimeout=setTimeout(()=>this._finishDialogClose(),n.totalTime+100)}),this._state=Mi.CLOSING,this._containerInstance._startExitAnimation()}afterOpened(){return this._afterOpened}afterClosed(){return this._ref.closed}beforeClosed(){return this._beforeClosed}backdropClick(){return this._ref.backdropClick}keydownEvents(){return this._ref.keydownEvents}updatePosition(t){let n=this._ref.config.positionStrategy;return t&&(t.left||t.right)?t.left?n.left(t.left):n.right(t.right):n.centerHorizontally(),t&&(t.top||t.bottom)?t.top?n.top(t.top):n.bottom(t.bottom):n.centerVertically(),this._ref.updatePosition(),this}updateSize(t="",n=""){return this._ref.updateSize(t,n),this}addPanelClass(t){return this._ref.addPanelClass(t),this}removePanelClass(t){return this._ref.removePanelClass(t),this}getState(){return this._state}_finishDialogClose(){this._state=Mi.CLOSED,this._ref.close(this._result,{focusOrigin:this._closeInteractionType}),this.componentInstance=null}};function PD(e,t,n){return e._closeInteractionType=t,e.close(n)}var LD=new y("MatMdcDialogData"),VD=new y("mat-mdc-dialog-default-options"),jD=new y("mat-mdc-dialog-scroll-strategy",{providedIn:"root",factory:()=>{let e=h(Nt);return()=>e.scrollStrategies.block()}});var BD=(()=>{class e{_overlay=h(Nt);_defaultOptions=h(VD,{optional:!0});_scrollStrategy=h(jD);_parentDialog=h(e,{optional:!0,skipSelf:!0});_idGenerator=h(Qn);_dialog=h(Ih);_openDialogsAtThisLevel=[];_afterAllClosedAtThisLevel=new T;_afterOpenedAtThisLevel=new T;dialogConfigClass=Ti;_dialogRefConstructor;_dialogContainerType;_dialogDataToken;get openDialogs(){return this._parentDialog?this._parentDialog.openDialogs:this._openDialogsAtThisLevel}get afterOpened(){return this._parentDialog?this._parentDialog.afterOpened:this._afterOpenedAtThisLevel}_getAfterAllClosed(){let n=this._parentDialog;return n?n._getAfterAllClosed():this._afterAllClosedAtThisLevel}afterAllClosed=uo(()=>this.openDialogs.length?this._getAfterAllClosed():this._getAfterAllClosed().pipe(en(void 0)));constructor(){this._dialogRefConstructor=qc,this._dialogContainerType=FD,this._dialogDataToken=LD}open(n,r){let o;r=_(_({},this._defaultOptions||new Ti),r),r.id=r.id||this._idGenerator.getId("mat-mdc-dialog-"),r.scrollStrategy=r.scrollStrategy||this._scrollStrategy();let i=this._dialog.open(n,B(_({},r),{positionStrategy:this._overlay.position().global().centerHorizontally().centerVertically(),disableClose:!0,closeOnDestroy:!1,closeOnOverlayDetachments:!1,container:{type:this._dialogContainerType,providers:()=>[{provide:this.dialogConfigClass,useValue:r},{provide:yn,useValue:r}]},templateContext:()=>({dialogRef:o}),providers:(s,a,c)=>(o=new this._dialogRefConstructor(s,r,c),o.updatePosition(r?.position),[{provide:this._dialogContainerType,useValue:c},{provide:this._dialogDataToken,useValue:a.data},{provide:this._dialogRefConstructor,useValue:o}])}));return o.componentRef=i.componentRef,o.componentInstance=i.componentInstance,this.openDialogs.push(o),this.afterOpened.next(o),o.afterClosed().subscribe(()=>{let s=this.openDialogs.indexOf(o);s>-1&&(this.openDialogs.splice(s,1),this.openDialogs.length||this._getAfterAllClosed().next())}),o}closeAll(){this._closeDialogs(this.openDialogs)}getDialogById(n){return this.openDialogs.find(r=>r.id===n)}ngOnDestroy(){this._closeDialogs(this._openDialogsAtThisLevel),this._afterAllClosedAtThisLevel.complete(),this._afterOpenedAtThisLevel.complete()}_closeDialogs(n){let r=n.length;for(;r--;)n[r].close()}static \u0275fac=function(r){return new(r||e)};static \u0275prov=v({token:e,factory:e.\u0275fac,providedIn:"root"})}return e})();var zN=(()=>{class e{static \u0275fac=function(r){return new(r||e)};static \u0275mod=U({type:e});static \u0275inj=H({providers:[BD],imports:[AD,Ci,vn,Qt,Qt]})}return e})();var HD={"https://www.ica.org/standards/RiC/ontology#":"rico","http://uspn.fr/app#":"Application","http://www.w3.org/2002/07/owl#":"OWL","http://www.w3.org/2000/01/rdf-schema#":"RDFS","http://purl.org/dc/terms/":"Dublin Core","https://schema.org/":"schema","http://purl.org/dc/elements/1.1/":"dc"};var Yc=class e{labelsSubject=new Ot(_({},HD));labels$=this.labelsSubject.asObservable();getLabels(){return this.labelsSubject.value}updateLabel(t,n){let r=B(_({},this.getLabels()),{[t]:n});this.labelsSubject.next(r)}addOntology(t,n){let r=B(_({},this.getLabels()),{[t]:n});this.labelsSubject.next(r)}deleteOntology(t){let n=_({},this.getLabels());delete n[t],this.labelsSubject.next(n)}static \u0275fac=function(n){return new(n||e)};static \u0275prov=v({token:e,factory:e.\u0275fac,providedIn:"root"})};var UD=class e{constructor(t,n){this.http=t;this.ontologyLabelsService=n}apiUrl="http://localhost:8080/sparql";ontologyUrl="http://localhost:8080/ontology";rdfUrl="http://localhost:8080/rdf";ricoGraphIri="http://cnrs.lacito/app#/context/ontology/rico";getOntologyLabel(t){t=t.filter(o=>!o.startsWith("http://uspn.fr/app#")&&!o.startsWith("http://purl.org/vocommons/voaf#")&&!o.startsWith("http://www.w3.org/2004/02/skos/core#")&&!o.startsWith("http://www.w3.org/2002/07/owl#"));let n=[],r=this.ontologyLabelsService.getLabels();for(let o of t){let i=o.includes("#")?o.substring(0,o.lastIndexOf("#")+1):o.substring(0,o.lastIndexOf("/")+1),s=i in r?r[i]:i,a=n.find(l=>s in l);a||(a={[s]:[]},n.push(a));let c=o.includes("#")?o.substring(o.lastIndexOf("#")+1):o.substring(o.lastIndexOf("/")+1);a[s].push(c)}return n}getTypeNameByUrl(t){return this.ontologyLabelsService.getLabels()[t]||""}getOntologyLabel_v2(t){let n=this.ontologyLabelsService.getLabels();return t.map(r=>{let o=r.includes("#")?r.substring(0,r.lastIndexOf("#")+1):r.substring(0,r.lastIndexOf("/")+1);return o in n?n[o]:o})}getTypes(){return this.http.get(`${this.ontologyUrl}/types`)}getTypeUrlByName(t){let n=this.ontologyLabelsService.getLabels(),r=Object.entries(n).find(([o,i])=>i===t);return r?r[0]:""}getAllEntitiesByType(t){let n=new ke().set("type",t);return this.http.get(`${this.rdfUrl}/entities`,{params:n})}getEntityDetails(t){let n=new ke().set("key",t);return this.http.get(`${this.rdfUrl}/entity`,{params:n})}createEntity(t){return this.http.post(`${this.rdfUrl}/entities`,t)}deleteEntity(t){let n=new ke().set("key",t);return this.http.delete(`${this.rdfUrl}/entity`,{params:n})}editEntity(t,n){let r=new ke().set("key",t);return this.http.put(`${this.rdfUrl}/entity`,n,{params:r})}getAllRicoClasses(){let t={query:`PREFIX owl: PREFIX rdfs: SELECT ?type ?label WHERE { GRAPH <${this.ricoGraphIri}> { { ?type a owl:Class . } UNION { ?type a rdfs:Class . } FILTER(STRSTARTS(STR(?type), "https://www.ica.org/standards/RiC/ontology#")) OPTIONAL { ?type rdfs:label ?label . FILTER(lang(?label) = "" || langMatches(lang(?label), "en") || langMatches(lang(?label), "fr")) } } } ORDER BY ?type`};return this.http.post(`${this.apiUrl}/select`,t)}getPredicatesByTypeRico(t){let n={query:`PREFIX rico: PREFIX rdf: PREFIX rdfs: PREFIX owl: SELECT DISTINCT ?p ?label ?domain ?range ?valueKind WHERE { GRAPH <${this.ricoGraphIri}> { BIND(rico:${t} AS ?selectedClass) ?selectedClass rdfs:subClassOf* ?domain . ?p rdfs:domain ?domain . FILTER(STRSTARTS(STR(?p), "https://www.ica.org/standards/RiC/ontology#")) OPTIONAL { ?p rdfs:label ?label . FILTER(lang(?label) = "" || langMatches(lang(?label), "en") || langMatches(lang(?label), "fr")) } OPTIONAL { ?p rdfs:range ?range . } BIND(IF(EXISTS { ?p a owl:ObjectProperty . }, "iri", IF(EXISTS { ?p a owl:DatatypeProperty . }, "literal", "unknown")) AS ?valueKind) } } ORDER BY ?p`};return this.http.post(`${this.apiUrl}/select`,n)}getPredicatesByType_V2(t){let n=` + SELECT DISTINCT ?p + WHERE { + ?s rdf:type <${t}> . + ?s ?p ?o . + } + `;return this.http.post(`${this.apiUrl}/select`,{query:n})}runSelectQuery(t){return console.log("QUERY : ",{query:t}),this.http.post(`${this.apiUrl}/select`,{query:t})}static \u0275fac=function(n){return new(n||e)(I(hc),I(Yc))};static \u0275prov=v({token:e,factory:e.\u0275fac,providedIn:"root"})};export{_ as a,B as b,Rh as c,pt as d,Q as e,ZD as f,sl as g,al as h,T as i,Ot as j,wn as k,Te as l,$e as m,iE as n,Qh as o,kt as p,sE as q,ue as r,ll as s,In as t,dr as u,uo as v,ul as w,fo as x,ce as y,ip as z,dl as A,lr as B,ho as C,ot as D,fl as E,vE as F,hl as G,yE as H,bE as I,_E as J,en as K,os as L,tn as M,mo as N,D as O,je as P,v as Q,H as R,ej as S,y as T,V as U,I as V,h as W,Ar as X,ge as Y,fa as Z,$t as _,tj as $,nj as aa,rj as ba,oj as ca,Ne as da,z as ea,zp as fa,kr as ga,ln as ha,oe as ia,x as ja,Dt as ka,ij as la,X as ma,Gt as na,Mr as oa,Ct as pa,It as qa,$d as ra,Wt as sa,Tt as ta,sj as ua,aj as va,L0 as wa,qe as xa,ve as ya,dt as za,E as Aa,St as Ba,xT as Ca,vy as Da,_e as Ea,U as Fa,j as Ga,ee as Ha,$o as Ia,JT as Ja,zo as Ka,Go as La,ye as Ma,xt as Na,TS as Oa,Ay as Pa,He as Qa,mf as Ra,gj as Sa,vj as Ta,yj as Ua,bj as Va,Wn as Wa,qn as Xa,Hr as Ya,Ly as Za,Vy as _a,zS as $a,_j as ab,gf as bb,dn as cb,Dj as db,Ha as eb,Ur as fb,Ej as gb,vf as hb,yf as ib,bf as jb,wj as kb,Cj as lb,ox as mb,Uy as nb,ix as ob,sx as pb,Ij as qb,ax as rb,Ue as sb,Mj as tb,Tj as ub,Sj as vb,xj as wb,Aj as xb,Rj as yb,Nj as zb,Oj as Ab,$r as Bb,At as Cb,Fx as Db,k as Eb,Wa as Fb,tA as Gb,wb as Hb,nA as Ib,iA as Jb,sA as Kb,cA as Lb,Mb,Pf as Nb,DA as Ob,hc as Pb,ZA as Qb,KA as Rb,_H as Sb,uR as Tb,DH as Ub,EH as Vb,di as Wb,c_ as Xb,Qr as Yb,Xb as Zb,Kn as _b,HH as $b,UH as ac,LR as bc,HR as cc,zH as dc,T_ as ec,S_ as fc,WR as gc,N_ as hc,GH as ic,WH as jc,qH as kc,YH as lc,ZH as mc,ne as nc,bi as oc,et as pc,Ac as qc,G_ as rc,W_ as sc,Nc as tc,fN as uc,ch as vc,Qn as wc,no as xc,uh as yc,B$ as zc,gN as Ac,gh as Bc,mz as Cc,lD as Dc,uD as Ec,ro as Fc,Qt as Gc,hD as Hc,r8 as Ic,o8 as Jc,er as Kc,tr as Lc,nr as Mc,io as Nc,vn as Oc,pD as Pc,_h as Qc,so as Rc,Nt as Sc,Ci as Tc,qc as Uc,LD as Vc,BD as Wc,zN as Xc,HD as Yc,UD as Zc}; diff --git a/electron/dist/frontend/browser/chunk-HNLKPVMX.js b/electron/dist/frontend/browser/chunk-HNLKPVMX.js new file mode 100644 index 00000000..e8ee508c --- /dev/null +++ b/electron/dist/frontend/browser/chunk-HNLKPVMX.js @@ -0,0 +1,5 @@ +import{a as Ge,b as Ue,c as je,d as He,e as We,f as Xe,g as Ze,h as $e,i as Ye,j as Je}from"./chunk-C6OTSZAM.js";import{$ as m,$a as ge,$b as Me,Aa as W,Ba as pe,Bb as U,Cb as b,Cc as ee,Db as j,Ea as y,Eb as ye,Ec as te,Fa as B,Ga as G,Gc as I,Hb as Ce,Hc as Ne,Ia as C,Ib as Ee,Jc as qe,Mb as Re,Na as w,Oa as l,P as K,Qa as f,R as z,Ra as _e,T as q,Uc as Ke,Vc as Qe,W as d,Wa as c,Wb as J,Xa as n,Xb as Ie,Ya as v,Yb as we,Zc as et,_ as le,aa as h,ab as x,ba as me,bb as ke,ca as he,cb as p,cc as De,d as se,db as k,ea as be,eb as O,fa as Q,fb as V,gb as fe,hb as M,hc as Te,ia as S,ib as E,ic as Ae,ja as F,jb as R,jc as ze,kb as ve,lb as u,lc as Se,ma as T,mb as xe,mc as Fe,nb as L,oc as Pe,pa as P,pb as X,pc as N,qb as Z,qc as Be,rb as $,sa as ue,sb as Y,tb as ce,tc as Oe,vc as Ve,wa as s,wc as A,za as H,zc as Le}from"./chunk-D7GXM5CJ.js";var ht=["mat-internal-form-field",""],bt=["*"],ae=(()=>{class a{labelPosition;static \u0275fac=function(t){return new(t||a)};static \u0275cmp=y({type:a,selectors:[["div","mat-internal-form-field",""]],hostAttrs:[1,"mdc-form-field","mat-internal-form-field"],hostVars:2,hostBindings:function(t,i){t&2&&f("mdc-form-field--align-end",i.labelPosition==="before")},inputs:{labelPosition:"labelPosition"},attrs:ht,ngContentSelectors:bt,decls:1,vars:0,template:function(t,i){t&1&&(O(),V(0))},styles:[`.mat-internal-form-field{-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:inline-flex;align-items:center;vertical-align:middle}.mat-internal-form-field>label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0;order:0}[dir=rtl] .mat-internal-form-field>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px}.mdc-form-field--align-end>label{margin-left:auto;margin-right:0;padding-left:0;padding-right:4px;order:-1}[dir=rtl] .mdc-form-field--align-end .mdc-form-field--align-end label{margin-left:0;margin-right:auto;padding-left:4px;padding-right:0} +`],encapsulation:2,changeDetection:0})}return a})();var ut=["input"],pt=["label"],_t=["*"],gt=new q("mat-checkbox-default-options",{providedIn:"root",factory:it});function it(){return{color:"accent",clickAction:"check-indeterminate",disabledInteractive:!1}}var _=function(a){return a[a.Init=0]="Init",a[a.Checked=1]="Checked",a[a.Unchecked=2]="Unchecked",a[a.Indeterminate=3]="Indeterminate",a}(_||{}),kt={provide:J,useExisting:K(()=>at),multi:!0},ne=class{source;checked},tt=it(),at=(()=>{class a{_elementRef=d(T);_changeDetectorRef=d(U);_ngZone=d(F);_animationMode=d(P,{optional:!0});_options=d(gt,{optional:!0});focus(){this._inputElement.nativeElement.focus()}_createChangeEvent(e){let t=new ne;return t.source=this,t.checked=e,t}_getAnimationTargetElement(){return this._inputElement?.nativeElement}_animationClasses={uncheckedToChecked:"mdc-checkbox--anim-unchecked-checked",uncheckedToIndeterminate:"mdc-checkbox--anim-unchecked-indeterminate",checkedToUnchecked:"mdc-checkbox--anim-checked-unchecked",checkedToIndeterminate:"mdc-checkbox--anim-checked-indeterminate",indeterminateToChecked:"mdc-checkbox--anim-indeterminate-checked",indeterminateToUnchecked:"mdc-checkbox--anim-indeterminate-unchecked"};ariaLabel="";ariaLabelledby=null;ariaDescribedby;ariaExpanded;ariaControls;ariaOwns;_uniqueId;id;get inputId(){return`${this.id||this._uniqueId}-input`}required;labelPosition="after";name=null;change=new S;indeterminateChange=new S;value;disableRipple;_inputElement;_labelElement;tabIndex;color;disabledInteractive;_onTouched=()=>{};_currentAnimationClass="";_currentCheckState=_.Init;_controlValueAccessorChangeFn=()=>{};_validatorChangeFn=()=>{};constructor(){d(N).load(te);let e=d(new Q("tabindex"),{optional:!0});this._options=this._options||tt,this.color=this._options.color||tt.color,this.tabIndex=e==null?0:parseInt(e)||0,this.id=this._uniqueId=d(A).getId("mat-mdc-checkbox-"),this.disabledInteractive=this._options?.disabledInteractive??!1}ngOnChanges(e){e.required&&this._validatorChangeFn()}ngAfterViewInit(){this._syncIndeterminate(this._indeterminate)}get checked(){return this._checked}set checked(e){e!=this.checked&&(this._checked=e,this._changeDetectorRef.markForCheck())}_checked=!1;get disabled(){return this._disabled}set disabled(e){e!==this.disabled&&(this._disabled=e,this._changeDetectorRef.markForCheck())}_disabled=!1;get indeterminate(){return this._indeterminate}set indeterminate(e){let t=e!=this._indeterminate;this._indeterminate=e,t&&(this._indeterminate?this._transitionCheckState(_.Indeterminate):this._transitionCheckState(this.checked?_.Checked:_.Unchecked),this.indeterminateChange.emit(this._indeterminate)),this._syncIndeterminate(this._indeterminate)}_indeterminate=!1;_isRippleDisabled(){return this.disableRipple||this.disabled}_onLabelTextChange(){this._changeDetectorRef.detectChanges()}writeValue(e){this.checked=!!e}registerOnChange(e){this._controlValueAccessorChangeFn=e}registerOnTouched(e){this._onTouched=e}setDisabledState(e){this.disabled=e}validate(e){return this.required&&e.value!==!0?{required:!0}:null}registerOnValidatorChange(e){this._validatorChangeFn=e}_transitionCheckState(e){let t=this._currentCheckState,i=this._getAnimationTargetElement();if(!(t===e||!i)&&(this._currentAnimationClass&&i.classList.remove(this._currentAnimationClass),this._currentAnimationClass=this._getAnimationClassForCheckStateTransition(t,e),this._currentCheckState=e,this._currentAnimationClass.length>0)){i.classList.add(this._currentAnimationClass);let r=this._currentAnimationClass;this._ngZone.runOutsideAngular(()=>{setTimeout(()=>{i.classList.remove(r)},1e3)})}}_emitChangeEvent(){this._controlValueAccessorChangeFn(this.checked),this.change.emit(this._createChangeEvent(this.checked)),this._inputElement&&(this._inputElement.nativeElement.checked=this.checked)}toggle(){this.checked=!this.checked,this._controlValueAccessorChangeFn(this.checked)}_handleInputClick(){let e=this._options?.clickAction;!this.disabled&&e!=="noop"?(this.indeterminate&&e!=="check"&&Promise.resolve().then(()=>{this._indeterminate=!1,this.indeterminateChange.emit(this._indeterminate)}),this._checked=!this._checked,this._transitionCheckState(this._checked?_.Checked:_.Unchecked),this._emitChangeEvent()):(this.disabled&&this.disabledInteractive||!this.disabled&&e==="noop")&&(this._inputElement.nativeElement.checked=this.checked,this._inputElement.nativeElement.indeterminate=this.indeterminate)}_onInteractionEvent(e){e.stopPropagation()}_onBlur(){Promise.resolve().then(()=>{this._onTouched(),this._changeDetectorRef.markForCheck()})}_getAnimationClassForCheckStateTransition(e,t){if(this._animationMode==="NoopAnimations")return"";switch(e){case _.Init:if(t===_.Checked)return this._animationClasses.uncheckedToChecked;if(t==_.Indeterminate)return this._checked?this._animationClasses.checkedToIndeterminate:this._animationClasses.uncheckedToIndeterminate;break;case _.Unchecked:return t===_.Checked?this._animationClasses.uncheckedToChecked:this._animationClasses.uncheckedToIndeterminate;case _.Checked:return t===_.Unchecked?this._animationClasses.checkedToUnchecked:this._animationClasses.checkedToIndeterminate;case _.Indeterminate:return t===_.Checked?this._animationClasses.indeterminateToChecked:this._animationClasses.indeterminateToUnchecked}return""}_syncIndeterminate(e){let t=this._inputElement;t&&(t.nativeElement.indeterminate=e)}_onInputClick(){this._handleInputClick()}_onTouchTargetClick(){this._handleInputClick(),this.disabled||this._inputElement.nativeElement.focus()}_preventBubblingFromLabel(e){e.target&&this._labelElement.nativeElement.contains(e.target)&&e.stopPropagation()}static \u0275fac=function(t){return new(t||a)};static \u0275cmp=y({type:a,selectors:[["mat-checkbox"]],viewQuery:function(t,i){if(t&1&&(M(ut,5),M(pt,5)),t&2){let r;E(r=R())&&(i._inputElement=r.first),E(r=R())&&(i._labelElement=r.first)}},hostAttrs:[1,"mat-mdc-checkbox"],hostVars:16,hostBindings:function(t,i){t&2&&(ke("id",i.id),w("tabindex",null)("aria-label",null)("aria-labelledby",null),_e(i.color?"mat-"+i.color:"mat-accent"),f("_mat-animation-noopable",i._animationMode==="NoopAnimations")("mdc-checkbox--disabled",i.disabled)("mat-mdc-checkbox-disabled",i.disabled)("mat-mdc-checkbox-checked",i.checked)("mat-mdc-checkbox-disabled-interactive",i.disabledInteractive))},inputs:{ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],ariaExpanded:[2,"aria-expanded","ariaExpanded",b],ariaControls:[0,"aria-controls","ariaControls"],ariaOwns:[0,"aria-owns","ariaOwns"],id:"id",required:[2,"required","required",b],labelPosition:"labelPosition",name:"name",value:"value",disableRipple:[2,"disableRipple","disableRipple",b],tabIndex:[2,"tabIndex","tabIndex",e=>e==null?void 0:j(e)],color:"color",disabledInteractive:[2,"disabledInteractive","disabledInteractive",b],checked:[2,"checked","checked",b],disabled:[2,"disabled","disabled",b],indeterminate:[2,"indeterminate","indeterminate",b]},outputs:{change:"change",indeterminateChange:"indeterminateChange"},exportAs:["matCheckbox"],features:[Y([kt,{provide:we,useExisting:a,multi:!0}]),le],ngContentSelectors:_t,decls:15,vars:23,consts:[["checkbox",""],["input",""],["label",""],["mat-internal-form-field","",3,"click","labelPosition"],[1,"mdc-checkbox"],[1,"mat-mdc-checkbox-touch-target",3,"click"],["type","checkbox",1,"mdc-checkbox__native-control",3,"blur","click","change","checked","indeterminate","disabled","id","required","tabIndex"],[1,"mdc-checkbox__ripple"],[1,"mdc-checkbox__background"],["focusable","false","viewBox","0 0 24 24","aria-hidden","true",1,"mdc-checkbox__checkmark"],["fill","none","d","M1.73,12.91 8.1,19.28 22.79,4.59",1,"mdc-checkbox__checkmark-path"],[1,"mdc-checkbox__mixedmark"],["mat-ripple","",1,"mat-mdc-checkbox-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mdc-label",3,"for"]],template:function(t,i){if(t&1){let r=x();O(),c(0,"div",3),p("click",function(D){return m(r),h(i._preventBubblingFromLabel(D))}),c(1,"div",4,0)(3,"div",5),p("click",function(){return m(r),h(i._onTouchTargetClick())}),n(),c(4,"input",6,1),p("blur",function(){return m(r),h(i._onBlur())})("click",function(){return m(r),h(i._onInputClick())})("change",function(D){return m(r),h(i._onInteractionEvent(D))}),n(),v(6,"div",7),c(7,"div",8),me(),c(8,"svg",9),v(9,"path",10),n(),he(),v(10,"div",11),n(),v(11,"div",12),n(),c(12,"label",13,2),V(14),n()()}if(t&2){let r=ve(2);l("labelPosition",i.labelPosition),s(4),f("mdc-checkbox--selected",i.checked),l("checked",i.checked)("indeterminate",i.indeterminate)("disabled",i.disabled&&!i.disabledInteractive)("id",i.inputId)("required",i.required)("tabIndex",i.disabled&&!i.disabledInteractive?-1:i.tabIndex),w("aria-label",i.ariaLabel||null)("aria-labelledby",i.ariaLabelledby)("aria-describedby",i.ariaDescribedby)("aria-checked",i.indeterminate?"mixed":null)("aria-controls",i.ariaControls)("aria-disabled",i.disabled&&i.disabledInteractive?!0:null)("aria-expanded",i.ariaExpanded)("aria-owns",i.ariaOwns)("name",i.name)("value",i.value),s(7),l("matRippleTrigger",r)("matRippleDisabled",i.disableRipple||i.disabled)("matRippleCentered",!0),s(),l("for",i.inputId)}},dependencies:[ee,ae],styles:[`.mdc-checkbox{display:inline-block;position:relative;flex:0 0 18px;box-sizing:content-box;width:18px;height:18px;line-height:0;white-space:nowrap;cursor:pointer;vertical-align:bottom;padding:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2);margin:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2)}.mdc-checkbox:hover>.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:hover>.mat-mdc-checkbox-ripple>.mat-ripple-element{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control:focus~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-focus-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:active>.mdc-checkbox__native-control+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-unselected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:active>.mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-unselected-pressed-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:hover .mdc-checkbox__native-control:checked+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-hover-state-layer-opacity, var(--mat-sys-hover-state-layer-opacity));background-color:var(--mdc-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:hover .mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-hover-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox .mdc-checkbox__native-control:focus:checked+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-focus-state-layer-opacity, var(--mat-sys-focus-state-layer-opacity));background-color:var(--mdc-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox .mdc-checkbox__native-control:focus:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-focus-state-layer-color, var(--mat-sys-primary))}.mdc-checkbox:active>.mdc-checkbox__native-control:checked+.mdc-checkbox__ripple{opacity:var(--mdc-checkbox-selected-pressed-state-layer-opacity, var(--mat-sys-pressed-state-layer-opacity));background-color:var(--mdc-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox:active>.mdc-checkbox__native-control:checked~.mat-mdc-checkbox-ripple .mat-ripple-element{background-color:var(--mdc-checkbox-selected-pressed-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control~.mat-mdc-checkbox-ripple .mat-ripple-element,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control+.mdc-checkbox__ripple{background-color:var(--mdc-checkbox-unselected-hover-state-layer-color, var(--mat-sys-on-surface))}.mdc-checkbox .mdc-checkbox__native-control{position:absolute;margin:0;padding:0;opacity:0;cursor:inherit;z-index:1;width:var(--mdc-checkbox-state-layer-size, 40px);height:var(--mdc-checkbox-state-layer-size, 40px);top:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2);right:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - var(--mdc-checkbox-state-layer-size, 40px))/2)}.mdc-checkbox--disabled{cursor:default;pointer-events:none}@media(forced-colors: active){.mdc-checkbox--disabled{opacity:.5}}.mdc-checkbox__background{display:inline-flex;position:absolute;align-items:center;justify-content:center;box-sizing:border-box;width:18px;height:18px;border:2px solid currentColor;border-radius:2px;background-color:rgba(0,0,0,0);pointer-events:none;will-change:background-color,border-color;transition:background-color 90ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms cubic-bezier(0.4, 0, 0.6, 1);-webkit-print-color-adjust:exact;color-adjust:exact;border-color:var(--mdc-checkbox-unselected-icon-color, var(--mat-sys-on-surface-variant));top:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2);left:calc((var(--mdc-checkbox-state-layer-size, 40px) - 18px)/2)}.mdc-checkbox__native-control:enabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:enabled:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-icon-color, var(--mat-sys-primary));background-color:var(--mdc-checkbox-selected-icon-color, var(--mat-sys-primary))}.mdc-checkbox--disabled .mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-checkbox__native-control:disabled:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:disabled:indeterminate~.mdc-checkbox__background{background-color:var(--mdc-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:rgba(0,0,0,0)}.mdc-checkbox:hover>.mdc-checkbox__native-control:not(:checked)~.mdc-checkbox__background,.mdc-checkbox:hover>.mdc-checkbox__native-control:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-hover-icon-color, var(--mat-sys-on-surface));background-color:rgba(0,0,0,0)}.mdc-checkbox:hover>.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox:hover>.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mat-sys-primary));background-color:var(--mdc-checkbox-selected-hover-icon-color, var(--mat-sys-primary))}.mdc-checkbox__native-control:focus:focus:not(:checked)~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:not(:indeterminate)~.mdc-checkbox__background{border-color:var(--mdc-checkbox-unselected-focus-icon-color, var(--mat-sys-on-surface))}.mdc-checkbox__native-control:focus:focus:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:focus:focus:indeterminate~.mdc-checkbox__background{border-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mat-sys-primary));background-color:var(--mdc-checkbox-selected-focus-icon-color, var(--mat-sys-primary))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox:hover>.mdc-checkbox__native-control~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox .mdc-checkbox__native-control:focus~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__background{border-color:var(--mdc-checkbox-disabled-unselected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{background-color:var(--mdc-checkbox-disabled-selected-icon-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent));border-color:rgba(0,0,0,0)}.mdc-checkbox__checkmark{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;opacity:0;transition:opacity 180ms cubic-bezier(0.4, 0, 0.6, 1);color:var(--mdc-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}@media(forced-colors: active){.mdc-checkbox__checkmark{color:CanvasText}}.mdc-checkbox--disabled .mdc-checkbox__checkmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:var(--mdc-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}@media(forced-colors: active){.mdc-checkbox--disabled .mdc-checkbox__checkmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__checkmark{color:CanvasText}}.mdc-checkbox__checkmark-path{transition:stroke-dashoffset 180ms cubic-bezier(0.4, 0, 0.6, 1);stroke:currentColor;stroke-width:3.12px;stroke-dashoffset:29.7833385;stroke-dasharray:29.7833385}.mdc-checkbox__mixedmark{width:100%;height:0;transform:scaleX(0) rotate(0deg);border-width:1px;border-style:solid;opacity:0;transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1);border-color:var(--mdc-checkbox-selected-checkmark-color, var(--mat-sys-on-primary))}@media(forced-colors: active){.mdc-checkbox__mixedmark{margin:0 1px}}.mdc-checkbox--disabled .mdc-checkbox__mixedmark,.mdc-checkbox--disabled.mat-mdc-checkbox-disabled-interactive .mdc-checkbox__mixedmark{border-color:var(--mdc-checkbox-disabled-selected-checkmark-color, var(--mat-sys-surface))}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__background,.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__background,.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__background,.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__background{animation-duration:180ms;animation-timing-function:linear}.mdc-checkbox--anim-unchecked-checked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-unchecked-checked-checkmark-path 180ms linear;transition:none}.mdc-checkbox--anim-unchecked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-unchecked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-unchecked .mdc-checkbox__checkmark-path{animation:mdc-checkbox-checked-unchecked-checkmark-path 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__checkmark{animation:mdc-checkbox-checked-indeterminate-checkmark 90ms linear;transition:none}.mdc-checkbox--anim-checked-indeterminate .mdc-checkbox__mixedmark{animation:mdc-checkbox-checked-indeterminate-mixedmark 90ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__checkmark{animation:mdc-checkbox-indeterminate-checked-checkmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-checked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-checked-mixedmark 500ms linear;transition:none}.mdc-checkbox--anim-indeterminate-unchecked .mdc-checkbox__mixedmark{animation:mdc-checkbox-indeterminate-unchecked-mixedmark 300ms linear;transition:none}.mdc-checkbox__native-control:checked~.mdc-checkbox__background,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background{transition:border-color 90ms cubic-bezier(0, 0, 0.2, 1),background-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path,.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path{stroke-dashoffset:0}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__checkmark{transition:opacity 180ms cubic-bezier(0, 0, 0.2, 1),transform 180ms cubic-bezier(0, 0, 0.2, 1);opacity:1}.mdc-checkbox__native-control:checked~.mdc-checkbox__background>.mdc-checkbox__mixedmark{transform:scaleX(1) rotate(-45deg)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__checkmark{transform:rotate(45deg);opacity:0;transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1)}.mdc-checkbox__native-control:indeterminate~.mdc-checkbox__background>.mdc-checkbox__mixedmark{transform:scaleX(1) rotate(0deg);opacity:1}@keyframes mdc-checkbox-unchecked-checked-checkmark-path{0%,50%{stroke-dashoffset:29.7833385}50%{animation-timing-function:cubic-bezier(0, 0, 0.2, 1)}100%{stroke-dashoffset:0}}@keyframes mdc-checkbox-unchecked-indeterminate-mixedmark{0%,68.2%{transform:scaleX(0)}68.2%{animation-timing-function:cubic-bezier(0, 0, 0, 1)}100%{transform:scaleX(1)}}@keyframes mdc-checkbox-checked-unchecked-checkmark-path{from{animation-timing-function:cubic-bezier(0.4, 0, 1, 1);opacity:1;stroke-dashoffset:0}to{opacity:0;stroke-dashoffset:-29.7833385}}@keyframes mdc-checkbox-checked-indeterminate-checkmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(45deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-checked-checkmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(45deg);opacity:0}to{transform:rotate(360deg);opacity:1}}@keyframes mdc-checkbox-checked-indeterminate-mixedmark{from{animation-timing-function:cubic-bezier(0, 0, 0.2, 1);transform:rotate(-45deg);opacity:0}to{transform:rotate(0deg);opacity:1}}@keyframes mdc-checkbox-indeterminate-checked-mixedmark{from{animation-timing-function:cubic-bezier(0.14, 0, 0, 1);transform:rotate(0deg);opacity:1}to{transform:rotate(315deg);opacity:0}}@keyframes mdc-checkbox-indeterminate-unchecked-mixedmark{0%{animation-timing-function:linear;transform:scaleX(1);opacity:1}32.8%,100%{transform:scaleX(0);opacity:0}}.mat-mdc-checkbox{display:inline-block;position:relative;-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mat-mdc-checkbox-touch-target,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__native-control,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__ripple,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mat-mdc-checkbox-ripple::before,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__checkmark,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__checkmark>.mdc-checkbox__checkmark-path,.mat-mdc-checkbox._mat-animation-noopable>.mat-internal-form-field>.mdc-checkbox>.mdc-checkbox__background>.mdc-checkbox__mixedmark{transition:none !important;animation:none !important}.mat-mdc-checkbox label{cursor:pointer}.mat-mdc-checkbox .mat-internal-form-field{color:var(--mat-checkbox-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-checkbox-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-checkbox-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-checkbox-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-checkbox-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-checkbox-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive{pointer-events:auto}.mat-mdc-checkbox.mat-mdc-checkbox-disabled.mat-mdc-checkbox-disabled-interactive input{cursor:default}.mat-mdc-checkbox.mat-mdc-checkbox-disabled label{cursor:default;color:var(--mat-checkbox-disabled-label-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-checkbox label:empty{display:none}.mat-mdc-checkbox .mdc-checkbox__ripple{opacity:0}.mat-mdc-checkbox .mat-mdc-checkbox-ripple,.mdc-checkbox__ripple{top:0;left:0;right:0;bottom:0;position:absolute;border-radius:50%;pointer-events:none}.mat-mdc-checkbox .mat-mdc-checkbox-ripple:not(:empty),.mdc-checkbox__ripple:not(:empty){transform:translateZ(0)}.mat-mdc-checkbox-ripple .mat-ripple-element{opacity:.1}.mat-mdc-checkbox-touch-target{position:absolute;top:50%;left:50%;height:48px;width:48px;transform:translate(-50%, -50%);display:var(--mat-checkbox-touch-target-display, block)}.mat-mdc-checkbox .mat-mdc-checkbox-ripple::before{border-radius:50%}.mdc-checkbox__native-control:focus~.mat-focus-indicator::before{content:""} +`],encapsulation:2,changeDetection:0})}return a})();var ot=(()=>{class a{static \u0275fac=function(t){return new(t||a)};static \u0275mod=B({type:a});static \u0275inj=z({imports:[at,I,I]})}return a})();var rt="mat-badge-content",ft=(()=>{class a{static \u0275fac=function(t){return new(t||a)};static \u0275cmp=y({type:a,selectors:[["ng-component"]],decls:0,vars:0,template:function(t,i){},styles:[`.mat-badge{position:relative}.mat-badge.mat-badge{overflow:visible}.mat-badge-content{position:absolute;text-align:center;display:inline-block;transition:transform 200ms ease-in-out;transform:scale(0.6);overflow:hidden;white-space:nowrap;text-overflow:ellipsis;box-sizing:border-box;pointer-events:none;background-color:var(--mat-badge-background-color, var(--mat-sys-error));color:var(--mat-badge-text-color, var(--mat-sys-on-error));font-family:var(--mat-badge-text-font, var(--mat-sys-label-small-font));font-weight:var(--mat-badge-text-weight, var(--mat-sys-label-small-weight));border-radius:var(--mat-badge-container-shape, var(--mat-sys-corner-full))}.mat-badge-above .mat-badge-content{bottom:100%}.mat-badge-below .mat-badge-content{top:100%}.mat-badge-before .mat-badge-content{right:100%}[dir=rtl] .mat-badge-before .mat-badge-content{right:auto;left:100%}.mat-badge-after .mat-badge-content{left:100%}[dir=rtl] .mat-badge-after .mat-badge-content{left:auto;right:100%}@media(forced-colors: active){.mat-badge-content{outline:solid 1px;border-radius:0}}.mat-badge-disabled .mat-badge-content{background-color:var(--mat-badge-disabled-state-background-color, color-mix(in srgb, var(--mat-sys-error) 38%, transparent));color:var(--mat-badge-disabled-state-text-color, var(--mat-sys-on-error))}.mat-badge-hidden .mat-badge-content{display:none}.ng-animate-disabled .mat-badge-content,.mat-badge-content._mat-animation-noopable{transition:none}.mat-badge-content.mat-badge-active{transform:none}.mat-badge-small .mat-badge-content{width:var(--mat-badge-legacy-small-size-container-size, unset);height:var(--mat-badge-legacy-small-size-container-size, unset);min-width:var(--mat-badge-small-size-container-size, 6px);min-height:var(--mat-badge-small-size-container-size, 6px);line-height:var(--mat-badge-small-size-line-height, 6px);padding:var(--mat-badge-small-size-container-padding, 0);font-size:var(--mat-badge-small-size-text-size, 0);margin:var(--mat-badge-small-size-container-offset, -6px 0)}.mat-badge-small.mat-badge-overlap .mat-badge-content{margin:var(--mat-badge-small-size-container-overlap-offset, -6px)}.mat-badge-medium .mat-badge-content{width:var(--mat-badge-legacy-container-size, unset);height:var(--mat-badge-legacy-container-size, unset);min-width:var(--mat-badge-container-size, 16px);min-height:var(--mat-badge-container-size, 16px);line-height:var(--mat-badge-line-height, 16px);padding:var(--mat-badge-container-padding, 0 4px);font-size:var(--mat-badge-text-size, var(--mat-sys-label-small-size));margin:var(--mat-badge-container-offset, -12px 0)}.mat-badge-medium.mat-badge-overlap .mat-badge-content{margin:var(--mat-badge-container-overlap-offset, -12px)}.mat-badge-large .mat-badge-content{width:var(--mat-badge-legacy-large-size-container-size, unset);height:var(--mat-badge-legacy-large-size-container-size, unset);min-width:var(--mat-badge-large-size-container-size, 16px);min-height:var(--mat-badge-large-size-container-size, 16px);line-height:var(--mat-badge-large-size-line-height, 16px);padding:var(--mat-badge-large-size-container-padding, 0 4px);font-size:var(--mat-badge-large-size-text-size, var(--mat-sys-label-small-size));margin:var(--mat-badge-large-size-container-offset, -12px 0)}.mat-badge-large.mat-badge-overlap .mat-badge-content{margin:var(--mat-badge-large-size-container-overlap-offset, -12px)} +`],encapsulation:2,changeDetection:0})}return a})(),ct=(()=>{class a{_ngZone=d(F);_elementRef=d(T);_ariaDescriber=d(Le);_renderer=d(H);_animationMode=d(P,{optional:!0});_idGenerator=d(A);get color(){return this._color}set color(e){this._setColor(e),this._color=e}_color="primary";overlap=!0;disabled;position="above after";get content(){return this._content}set content(e){this._updateRenderedContent(e)}_content;get description(){return this._description}set description(e){this._updateDescription(e)}_description;size="medium";hidden;_badgeElement;_inlineBadgeDescription;_isInitialized=!1;_interactivityChecker=d(Oe);_document=d(ye);constructor(){let e=d(N);e.load(ft),e.load(Be)}isAbove(){return this.position.indexOf("below")===-1}isAfter(){return this.position.indexOf("before")===-1}getBadgeElement(){return this._badgeElement}ngOnInit(){this._clearExistingBadges(),this.content&&!this._badgeElement&&(this._badgeElement=this._createBadgeElement(),this._updateRenderedContent(this.content)),this._isInitialized=!0}ngOnDestroy(){this._renderer.destroyNode&&(this._renderer.destroyNode(this._badgeElement),this._inlineBadgeDescription?.remove()),this._ariaDescriber.removeDescription(this._elementRef.nativeElement,this.description)}_isHostInteractive(){return this._interactivityChecker.isFocusable(this._elementRef.nativeElement,{ignoreVisibility:!0})}_createBadgeElement(){let e=this._renderer.createElement("span"),t="mat-badge-active";return e.setAttribute("id",this._idGenerator.getId("mat-badge-content-")),e.setAttribute("aria-hidden","true"),e.classList.add(rt),this._animationMode==="NoopAnimations"&&e.classList.add("_mat-animation-noopable"),this._elementRef.nativeElement.appendChild(e),typeof requestAnimationFrame=="function"&&this._animationMode!=="NoopAnimations"?this._ngZone.runOutsideAngular(()=>{requestAnimationFrame(()=>{e.classList.add(t)})}):e.classList.add(t),e}_updateRenderedContent(e){let t=`${e??""}`.trim();this._isInitialized&&t&&!this._badgeElement&&(this._badgeElement=this._createBadgeElement()),this._badgeElement&&(this._badgeElement.textContent=t),this._content=t}_updateDescription(e){this._ariaDescriber.removeDescription(this._elementRef.nativeElement,this.description),(!e||this._isHostInteractive())&&this._removeInlineDescription(),this._description=e,this._isHostInteractive()?this._ariaDescriber.describe(this._elementRef.nativeElement,e):this._updateInlineDescription()}_updateInlineDescription(){this._inlineBadgeDescription||(this._inlineBadgeDescription=this._document.createElement("span"),this._inlineBadgeDescription.classList.add("cdk-visually-hidden")),this._inlineBadgeDescription.textContent=this.description,this._badgeElement?.appendChild(this._inlineBadgeDescription)}_removeInlineDescription(){this._inlineBadgeDescription?.remove(),this._inlineBadgeDescription=void 0}_setColor(e){let t=this._elementRef.nativeElement.classList;t.remove(`mat-badge-${this._color}`),e&&t.add(`mat-badge-${e}`)}_clearExistingBadges(){let e=this._elementRef.nativeElement.querySelectorAll(`:scope > .${rt}`);for(let t of Array.from(e))t!==this._badgeElement&&t.remove()}static \u0275fac=function(t){return new(t||a)};static \u0275dir=G({type:a,selectors:[["","matBadge",""]],hostAttrs:[1,"mat-badge"],hostVars:20,hostBindings:function(t,i){t&2&&f("mat-badge-overlap",i.overlap)("mat-badge-above",i.isAbove())("mat-badge-below",!i.isAbove())("mat-badge-before",!i.isAfter())("mat-badge-after",i.isAfter())("mat-badge-small",i.size==="small")("mat-badge-medium",i.size==="medium")("mat-badge-large",i.size==="large")("mat-badge-hidden",i.hidden||!i.content)("mat-badge-disabled",i.disabled)},inputs:{color:[0,"matBadgeColor","color"],overlap:[2,"matBadgeOverlap","overlap",b],disabled:[2,"matBadgeDisabled","disabled",b],position:[0,"matBadgePosition","position"],content:[0,"matBadge","content"],description:[0,"matBadgeDescription","description"],size:[0,"matBadgeSize","size"],hidden:[2,"matBadgeHidden","hidden",b]}})}return a})(),nt=(()=>{class a{static \u0275fac=function(t){return new(t||a)};static \u0275mod=B({type:a});static \u0275inj=z({imports:[Ve,I,I]})}return a})();var xt=["input"],yt=["formField"],Ct=["*"],oe=class{source;value;constructor(o,e){this.source=o,this.value=e}},Et={provide:J,useExisting:K(()=>de),multi:!0},dt=new q("MatRadioGroup"),Rt=new q("mat-radio-default-options",{providedIn:"root",factory:It});function It(){return{color:"accent",disabledInteractive:!1}}var de=(()=>{class a{_changeDetector=d(U);_value=null;_name=d(A).getId("mat-radio-group-");_selected=null;_isInitialized=!1;_labelPosition="after";_disabled=!1;_required=!1;_buttonChanges;_controlValueAccessorChangeFn=()=>{};onTouched=()=>{};change=new S;_radios;color;get name(){return this._name}set name(e){this._name=e,this._updateRadioButtonNames()}get labelPosition(){return this._labelPosition}set labelPosition(e){this._labelPosition=e==="before"?"before":"after",this._markRadiosForCheck()}get value(){return this._value}set value(e){this._value!==e&&(this._value=e,this._updateSelectedRadioFromValue(),this._checkSelectedRadioButton())}_checkSelectedRadioButton(){this._selected&&!this._selected.checked&&(this._selected.checked=!0)}get selected(){return this._selected}set selected(e){this._selected=e,this.value=e?e.value:null,this._checkSelectedRadioButton()}get disabled(){return this._disabled}set disabled(e){this._disabled=e,this._markRadiosForCheck()}get required(){return this._required}set required(e){this._required=e,this._markRadiosForCheck()}get disabledInteractive(){return this._disabledInteractive}set disabledInteractive(e){this._disabledInteractive=e,this._markRadiosForCheck()}_disabledInteractive=!1;constructor(){}ngAfterContentInit(){this._isInitialized=!0,this._buttonChanges=this._radios.changes.subscribe(()=>{this.selected&&!this._radios.find(e=>e===this.selected)&&(this._selected=null)})}ngOnDestroy(){this._buttonChanges?.unsubscribe()}_touch(){this.onTouched&&this.onTouched()}_updateRadioButtonNames(){this._radios&&this._radios.forEach(e=>{e.name=this.name,e._markForCheck()})}_updateSelectedRadioFromValue(){let e=this._selected!==null&&this._selected.value===this._value;this._radios&&!e&&(this._selected=null,this._radios.forEach(t=>{t.checked=this.value===t.value,t.checked&&(this._selected=t)}))}_emitChangeEvent(){this._isInitialized&&this.change.emit(new oe(this._selected,this._value))}_markRadiosForCheck(){this._radios&&this._radios.forEach(e=>e._markForCheck())}writeValue(e){this.value=e,this._changeDetector.markForCheck()}registerOnChange(e){this._controlValueAccessorChangeFn=e}registerOnTouched(e){this.onTouched=e}setDisabledState(e){this.disabled=e,this._changeDetector.markForCheck()}static \u0275fac=function(t){return new(t||a)};static \u0275dir=G({type:a,selectors:[["mat-radio-group"]],contentQueries:function(t,i,r){if(t&1&&fe(r,re,5),t&2){let g;E(g=R())&&(i._radios=g)}},hostAttrs:["role","radiogroup",1,"mat-mdc-radio-group"],inputs:{color:"color",name:"name",labelPosition:"labelPosition",value:"value",selected:"selected",disabled:[2,"disabled","disabled",b],required:[2,"required","required",b],disabledInteractive:[2,"disabledInteractive","disabledInteractive",b]},outputs:{change:"change"},exportAs:["matRadioGroup"],features:[Y([Et,{provide:dt,useExisting:a}])]})}return a})(),re=(()=>{class a{_elementRef=d(T);_changeDetector=d(U);_focusMonitor=d(Pe);_radioDispatcher=d(Ge);_defaultOptions=d(Rt,{optional:!0});_ngZone=d(F);_renderer=d(H);_uniqueId=d(A).getId("mat-radio-");_cleanupClick;id=this._uniqueId;name;ariaLabel;ariaLabelledby;ariaDescribedby;disableRipple=!1;tabIndex=0;get checked(){return this._checked}set checked(e){this._checked!==e&&(this._checked=e,e&&this.radioGroup&&this.radioGroup.value!==this.value?this.radioGroup.selected=this:!e&&this.radioGroup&&this.radioGroup.value===this.value&&(this.radioGroup.selected=null),e&&this._radioDispatcher.notify(this.id,this.name),this._changeDetector.markForCheck())}get value(){return this._value}set value(e){this._value!==e&&(this._value=e,this.radioGroup!==null&&(this.checked||(this.checked=this.radioGroup.value===e),this.checked&&(this.radioGroup.selected=this)))}get labelPosition(){return this._labelPosition||this.radioGroup&&this.radioGroup.labelPosition||"after"}set labelPosition(e){this._labelPosition=e}_labelPosition;get disabled(){return this._disabled||this.radioGroup!==null&&this.radioGroup.disabled}set disabled(e){this._setDisabled(e)}get required(){return this._required||this.radioGroup&&this.radioGroup.required}set required(e){e!==this._required&&this._changeDetector.markForCheck(),this._required=e}get color(){return this._color||this.radioGroup&&this.radioGroup.color||this._defaultOptions&&this._defaultOptions.color||"accent"}set color(e){this._color=e}_color;get disabledInteractive(){return this._disabledInteractive||this.radioGroup!==null&&this.radioGroup.disabledInteractive}set disabledInteractive(e){this._disabledInteractive=e}_disabledInteractive;change=new S;radioGroup;get inputId(){return`${this.id||this._uniqueId}-input`}_checked=!1;_disabled;_required;_value=null;_removeUniqueSelectionListener=()=>{};_previousTabIndex;_inputElement;_rippleTrigger;_noopAnimations;_injector=d(be);constructor(){d(N).load(te);let e=d(dt,{optional:!0}),t=d(P,{optional:!0}),i=d(new Q("tabindex"),{optional:!0});this.radioGroup=e,this._noopAnimations=t==="NoopAnimations",this._disabledInteractive=this._defaultOptions?.disabledInteractive??!1,i&&(this.tabIndex=j(i,0))}focus(e,t){t?this._focusMonitor.focusVia(this._inputElement,t,e):this._inputElement.nativeElement.focus(e)}_markForCheck(){this._changeDetector.markForCheck()}ngOnInit(){this.radioGroup&&(this.checked=this.radioGroup.value===this._value,this.checked&&(this.radioGroup.selected=this),this.name=this.radioGroup.name),this._removeUniqueSelectionListener=this._radioDispatcher.listen((e,t)=>{e!==this.id&&t===this.name&&(this.checked=!1)})}ngDoCheck(){this._updateTabIndex()}ngAfterViewInit(){this._updateTabIndex(),this._focusMonitor.monitor(this._elementRef,!0).subscribe(e=>{!e&&this.radioGroup&&this.radioGroup._touch()}),this._ngZone.runOutsideAngular(()=>{this._cleanupClick=this._renderer.listen(this._inputElement.nativeElement,"click",this._onInputClick)})}ngOnDestroy(){this._cleanupClick?.(),this._focusMonitor.stopMonitoring(this._elementRef),this._removeUniqueSelectionListener()}_emitChangeEvent(){this.change.emit(new oe(this,this._value))}_isRippleDisabled(){return this.disableRipple||this.disabled}_onInputInteraction(e){if(e.stopPropagation(),!this.checked&&!this.disabled){let t=this.radioGroup&&this.value!==this.radioGroup.value;this.checked=!0,this._emitChangeEvent(),this.radioGroup&&(this.radioGroup._controlValueAccessorChangeFn(this.value),t&&this.radioGroup._emitChangeEvent())}}_onTouchTargetClick(e){this._onInputInteraction(e),(!this.disabled||this.disabledInteractive)&&this._inputElement?.nativeElement.focus()}_setDisabled(e){this._disabled!==e&&(this._disabled=e,this._changeDetector.markForCheck())}_onInputClick=e=>{this.disabled&&this.disabledInteractive&&e.preventDefault()};_updateTabIndex(){let e=this.radioGroup,t;if(!e||!e.selected||this.disabled?t=this.tabIndex:t=e.selected===this?this.tabIndex:-1,t!==this._previousTabIndex){let i=this._inputElement?.nativeElement;i&&(i.setAttribute("tabindex",t+""),this._previousTabIndex=t,ue(()=>{queueMicrotask(()=>{e&&e.selected&&e.selected!==this&&document.activeElement===i&&(e.selected?._inputElement.nativeElement.focus(),document.activeElement===i&&this._inputElement.nativeElement.blur())})},{injector:this._injector}))}}static \u0275fac=function(t){return new(t||a)};static \u0275cmp=y({type:a,selectors:[["mat-radio-button"]],viewQuery:function(t,i){if(t&1&&(M(xt,5),M(yt,7,T)),t&2){let r;E(r=R())&&(i._inputElement=r.first),E(r=R())&&(i._rippleTrigger=r.first)}},hostAttrs:[1,"mat-mdc-radio-button"],hostVars:19,hostBindings:function(t,i){t&1&&p("focus",function(){return i._inputElement.nativeElement.focus()}),t&2&&(w("id",i.id)("tabindex",null)("aria-label",null)("aria-labelledby",null)("aria-describedby",null),f("mat-primary",i.color==="primary")("mat-accent",i.color==="accent")("mat-warn",i.color==="warn")("mat-mdc-radio-checked",i.checked)("mat-mdc-radio-disabled",i.disabled)("mat-mdc-radio-disabled-interactive",i.disabledInteractive)("_mat-animation-noopable",i._noopAnimations))},inputs:{id:"id",name:"name",ariaLabel:[0,"aria-label","ariaLabel"],ariaLabelledby:[0,"aria-labelledby","ariaLabelledby"],ariaDescribedby:[0,"aria-describedby","ariaDescribedby"],disableRipple:[2,"disableRipple","disableRipple",b],tabIndex:[2,"tabIndex","tabIndex",e=>e==null?0:j(e)],checked:[2,"checked","checked",b],value:"value",labelPosition:"labelPosition",disabled:[2,"disabled","disabled",b],required:[2,"required","required",b],color:"color",disabledInteractive:[2,"disabledInteractive","disabledInteractive",b]},outputs:{change:"change"},exportAs:["matRadioButton"],ngContentSelectors:Ct,decls:13,vars:17,consts:[["formField",""],["input",""],["mat-internal-form-field","",3,"labelPosition"],[1,"mdc-radio"],[1,"mat-mdc-radio-touch-target",3,"click"],["type","radio","aria-invalid","false",1,"mdc-radio__native-control",3,"change","id","checked","disabled","required"],[1,"mdc-radio__background"],[1,"mdc-radio__outer-circle"],[1,"mdc-radio__inner-circle"],["mat-ripple","",1,"mat-radio-ripple","mat-focus-indicator",3,"matRippleTrigger","matRippleDisabled","matRippleCentered"],[1,"mat-ripple-element","mat-radio-persistent-ripple"],[1,"mdc-label",3,"for"]],template:function(t,i){if(t&1){let r=x();O(),c(0,"div",2,0)(2,"div",3)(3,"div",4),p("click",function(D){return m(r),h(i._onTouchTargetClick(D))}),n(),c(4,"input",5,1),p("change",function(D){return m(r),h(i._onInputInteraction(D))}),n(),c(6,"div",6),v(7,"div",7)(8,"div",8),n(),c(9,"div",9),v(10,"div",10),n()(),c(11,"label",11),V(12),n()()}t&2&&(l("labelPosition",i.labelPosition),s(2),f("mdc-radio--disabled",i.disabled),s(2),l("id",i.inputId)("checked",i.checked)("disabled",i.disabled&&!i.disabledInteractive)("required",i.required),w("name",i.name)("value",i.value)("aria-label",i.ariaLabel)("aria-labelledby",i.ariaLabelledby)("aria-describedby",i.ariaDescribedby)("aria-disabled",i.disabled&&i.disabledInteractive?"true":null),s(5),l("matRippleTrigger",i._rippleTrigger.nativeElement)("matRippleDisabled",i._isRippleDisabled())("matRippleCentered",!0),s(2),l("for",i.inputId))},dependencies:[ee,ae],styles:[`.mat-mdc-radio-button{-webkit-tap-highlight-color:rgba(0,0,0,0)}.mat-mdc-radio-button .mdc-radio{display:inline-block;position:relative;flex:0 0 auto;box-sizing:content-box;width:20px;height:20px;cursor:pointer;will-change:opacity,transform,border-color,color;padding:calc((var(--mdc-radio-state-layer-size, 40px) - 20px)/2)}.mat-mdc-radio-button .mdc-radio:hover>.mdc-radio__native-control:not([disabled]):not(:focus)~.mdc-radio__background::before{opacity:.04;transform:scale(1)}.mat-mdc-radio-button .mdc-radio:hover>.mdc-radio__native-control:not([disabled])~.mdc-radio__background>.mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-hover-icon-color, var(--mat-sys-on-surface))}.mat-mdc-radio-button .mdc-radio:hover>.mdc-radio__native-control:enabled:checked+.mdc-radio__background>.mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio:hover>.mdc-radio__native-control:enabled:checked+.mdc-radio__background>.mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-hover-icon-color, var(--mat-sys-primary))}.mat-mdc-radio-button .mdc-radio:active>.mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background>.mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-pressed-icon-color, var(--mat-sys-on-surface))}.mat-mdc-radio-button .mdc-radio:active>.mdc-radio__native-control:enabled:checked+.mdc-radio__background>.mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio:active>.mdc-radio__native-control:enabled:checked+.mdc-radio__background>.mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-pressed-icon-color, var(--mat-sys-primary))}.mat-mdc-radio-button .mdc-radio__background{display:inline-block;position:relative;box-sizing:border-box;width:20px;height:20px}.mat-mdc-radio-button .mdc-radio__background::before{position:absolute;transform:scale(0, 0);border-radius:50%;opacity:0;pointer-events:none;content:"";transition:opacity 90ms cubic-bezier(0.4, 0, 0.6, 1),transform 90ms cubic-bezier(0.4, 0, 0.6, 1);width:var(--mdc-radio-state-layer-size, 40px);height:var(--mdc-radio-state-layer-size, 40px);top:calc(-1*(var(--mdc-radio-state-layer-size, 40px) - 20px)/2);left:calc(-1*(var(--mdc-radio-state-layer-size, 40px) - 20px)/2)}.mat-mdc-radio-button .mdc-radio__outer-circle{position:absolute;top:0;left:0;box-sizing:border-box;width:100%;height:100%;border-width:2px;border-style:solid;border-radius:50%;transition:border-color 90ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-radio-button .mdc-radio__inner-circle{position:absolute;top:0;left:0;box-sizing:border-box;width:100%;height:100%;transform:scale(0, 0);border-width:10px;border-style:solid;border-radius:50%;transition:transform 90ms cubic-bezier(0.4, 0, 0.6, 1),border-color 90ms cubic-bezier(0.4, 0, 0.6, 1)}.mat-mdc-radio-button .mdc-radio__native-control{position:absolute;margin:0;padding:0;opacity:0;top:0;right:0;left:0;cursor:inherit;z-index:1;width:var(--mdc-radio-state-layer-size, 40px);height:var(--mdc-radio-state-layer-size, 40px)}.mat-mdc-radio-button .mdc-radio__native-control:checked+.mdc-radio__background,.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background{transition:opacity 90ms cubic-bezier(0, 0, 0.2, 1),transform 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button .mdc-radio__native-control:checked+.mdc-radio__background>.mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background>.mdc-radio__outer-circle{transition:border-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button .mdc-radio__native-control:checked+.mdc-radio__background>.mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background>.mdc-radio__inner-circle{transition:transform 90ms cubic-bezier(0, 0, 0.2, 1),border-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button .mdc-radio__native-control:focus+.mdc-radio__background::before{transform:scale(1);opacity:.12;transition:opacity 90ms cubic-bezier(0, 0, 0.2, 1),transform 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button .mdc-radio__native-control:disabled:not(:checked)+.mdc-radio__background>.mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-unselected-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-radio-disabled-unselected-icon-opacity, 0.38)}.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background{cursor:default}.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background>.mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio__native-control:disabled+.mdc-radio__background>.mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-selected-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-radio-disabled-selected-icon-opacity, 0.38)}.mat-mdc-radio-button .mdc-radio__native-control:enabled:not(:checked)+.mdc-radio__background>.mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-icon-color, var(--mat-sys-on-surface-variant))}.mat-mdc-radio-button .mdc-radio__native-control:enabled:checked+.mdc-radio__background>.mdc-radio__outer-circle,.mat-mdc-radio-button .mdc-radio__native-control:enabled:checked+.mdc-radio__background>.mdc-radio__inner-circle{border-color:var(--mdc-radio-selected-icon-color, var(--mat-sys-primary))}.mat-mdc-radio-button .mdc-radio__native-control:enabled:focus:checked+.mdc-radio__background>.mdc-radio__inner-circle,.mat-mdc-radio-button .mdc-radio__native-control:enabled:focus:checked+.mdc-radio__background>.mdc-radio__outer-circle{border-color:var(--mdc-radio-selected-focus-icon-color, var(--mat-sys-primary))}.mat-mdc-radio-button .mdc-radio__native-control:checked+.mdc-radio__background>.mdc-radio__inner-circle{transform:scale(0.5);transition:transform 90ms cubic-bezier(0, 0, 0.2, 1),border-color 90ms cubic-bezier(0, 0, 0.2, 1)}.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled{pointer-events:auto}.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control:not(:checked)+.mdc-radio__background>.mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-unselected-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-radio-disabled-unselected-icon-opacity, 0.38)}.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled:hover .mdc-radio__native-control:checked+.mdc-radio__background>.mdc-radio__inner-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled:hover .mdc-radio__native-control:checked+.mdc-radio__background>.mdc-radio__outer-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control:checked:focus+.mdc-radio__background>.mdc-radio__inner-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control:checked:focus+.mdc-radio__background>.mdc-radio__outer-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control+.mdc-radio__background>.mdc-radio__inner-circle,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__native-control+.mdc-radio__background>.mdc-radio__outer-circle{border-color:var(--mdc-radio-disabled-selected-icon-color, var(--mat-sys-on-surface));opacity:var(--mdc-radio-disabled-selected-icon-opacity, 0.38)}.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__background::before,.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__outer-circle,.mat-mdc-radio-button._mat-animation-noopable .mdc-radio__inner-circle{transition:none !important}.mat-mdc-radio-button .mdc-radio__background::before{background-color:var(--mat-radio-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-radio-button.mat-mdc-radio-checked .mat-ripple-element,.mat-mdc-radio-button.mat-mdc-radio-checked .mdc-radio__background::before{background-color:var(--mat-radio-checked-ripple-color, var(--mat-sys-primary))}.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mat-ripple-element,.mat-mdc-radio-button.mat-mdc-radio-disabled-interactive .mdc-radio--disabled .mdc-radio__background::before{background-color:var(--mat-radio-ripple-color, var(--mat-sys-on-surface))}.mat-mdc-radio-button .mat-internal-form-field{color:var(--mat-radio-label-text-color, var(--mat-sys-on-surface));font-family:var(--mat-radio-label-text-font, var(--mat-sys-body-medium-font));line-height:var(--mat-radio-label-text-line-height, var(--mat-sys-body-medium-line-height));font-size:var(--mat-radio-label-text-size, var(--mat-sys-body-medium-size));letter-spacing:var(--mat-radio-label-text-tracking, var(--mat-sys-body-medium-tracking));font-weight:var(--mat-radio-label-text-weight, var(--mat-sys-body-medium-weight))}.mat-mdc-radio-button .mdc-radio--disabled+label{color:var(--mat-radio-disabled-label-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-mdc-radio-button .mat-radio-ripple{top:0;left:0;right:0;bottom:0;position:absolute;pointer-events:none;border-radius:50%}.mat-mdc-radio-button .mat-radio-ripple>.mat-ripple-element{opacity:.14}.mat-mdc-radio-button .mat-radio-ripple::before{border-radius:50%}.mat-mdc-radio-button .mdc-radio>.mdc-radio__native-control:focus:enabled:not(:checked)~.mdc-radio__background>.mdc-radio__outer-circle{border-color:var(--mdc-radio-unselected-focus-icon-color, var(--mat-sys-on-surface))}.mat-mdc-radio-button.cdk-focused .mat-focus-indicator::before{content:""}.mat-mdc-radio-disabled{cursor:default;pointer-events:none}.mat-mdc-radio-disabled.mat-mdc-radio-disabled-interactive{pointer-events:auto}.mat-mdc-radio-touch-target{position:absolute;top:50%;left:50%;height:48px;width:48px;transform:translate(-50%, -50%);display:var(--mat-radio-touch-target-display, block)}[dir=rtl] .mat-mdc-radio-touch-target{left:auto;right:50%;transform:translate(50%, -50%)} +`],encapsulation:2,changeDetection:0})}return a})(),st=(()=>{class a{static \u0275fac=function(t){return new(t||a)};static \u0275mod=B({type:a});static \u0275inj=z({imports:[I,Ne,re,I]})}return a})();var Mt=["subEntityAnchor"],mt=()=>({standalone:!0});function Dt(a,o){if(a&1){let e=x();c(0,"mat-chip-row"),u(1),c(2,"button",18),p("click",function(){let i=m(e).$implicit,r=k();return h(r.removeFilter(i))}),c(3,"mat-icon"),u(4,"cancel"),n()()()}if(a&2){let e=o.$implicit;s(),L(" ",e," "),s(),w("aria-label","remove "+e)}}function Tt(a,o){if(a&1){let e=x();c(0,"mat-chip-row",19),p("click",function(){let i=m(e).$implicit,r=k();return h(r.addRangeFilter(i))}),c(1,"mat-icon",20),u(2),n(),u(3),n()}if(a&2){let e=o.$implicit,t=k();s(2),xe(t.getIconFor(e)),s(),L(" ",e," ")}}function At(a,o){if(a&1&&(c(0,"option",21),u(1),n()),a&2){let e=o.$implicit,t=k();l("value",e),s(),L(" ",t.getNameOfRicoTypeFromURL(e)," ")}}function zt(a,o){a&1&&v(0,"span",27)}function St(a,o){a&1&&v(0,"span",28)}function Ft(a,o){if(a&1&&(c(0,"option",39),u(1),n()),a&2){let e=o.$implicit;l("ngValue",e.iri),s(),L(" ",e.label," ")}}function Pt(a,o){if(a&1){let e=x();c(0,"div")(1,"div",34)(2,"button",35),p("click",function(){m(e);let i=k(3);return h(i.createSubEntityToggle())}),u(3," + "),n(),c(4,"select",36),$("ngModelChange",function(i){m(e);let r=k(3);return Z(r.association.value,i)||(r.association.value=i),h(i)}),c(5,"option",37),u(6,"Select a value..."),n(),C(7,Ft,2,2,"option",38),n()(),ge(8,null,1),n()}if(a&2){let e=k(3);s(4),X("ngModel",e.association.value),l("ngModelOptions",ce(3,mt)),s(3),l("ngForOf",e.allPossibleRanges)}}function Bt(a,o){if(a&1){let e=x();c(0,"div")(1,"input",40),$("ngModelChange",function(i){m(e);let r=k(3);return Z(r.association.value,i)||(r.association.value=i),h(i)}),n()()}if(a&2){let e=k(3);s(),X("ngModel",e.association.value),l("ngModelOptions",ce(3,mt))("placeholder","Enter a value")}}function Ot(a,o){if(a&1){let e=x();c(0,"div",29)(1,"label",3),u(2,"Value"),n(),C(3,Pt,10,4,"div",30)(4,Bt,2,4,"div",30),c(5,"div",31)(6,"button",32),p("click",function(){m(e);let i=k(2);return h(i.confirm())}),u(7," Confirm "),n(),c(8,"button",33),p("click",function(){m(e);let i=k(2);return h(i.cancelAddAssociation())}),u(9," Cancel "),n()()()}if(a&2){let e=k(2);s(3),l("ngIf",e.association.valueKind==="iri"),s(),l("ngIf",e.association.valueKind==="literal"),s(2),l("disabled",!e.association.mode||!e.association.value||!e.association.predicate)}}function Vt(a,o){if(a&1){let e=x();c(0,"div",22)(1,"mat-radio-button",23),p("change",function(){let i=m(e).$implicit,r=k();return h(r.onCheckboxChange(i))}),c(2,"span"),u(3),n(),C(4,zt,1,0,"span",24)(5,St,1,0,"span",25),n(),C(6,Ot,10,3,"div",26),n()}if(a&2){let e=o.$implicit,t=k();s(),l("value",e),s(2),L(" ",e.label||e.p," "),s(),l("ngIf",e.valueKind==="iri"),s(),l("ngIf",e.valueKind==="literal"),s(),l("ngIf",t.association.predicate&&t.association.predicate.label===e.label)}}var lt=class a{constructor(o,e,t){this.data=o;this.ontologyService=e;this.dialogRef=t;this.predicates=o.predicates,this.association=o.association}ngOnInit(){console.log("All predicates : ",this.predicates),this.filteredPredicates=this.predicates,this.allRanges=this.predicates.map(o=>o.range),this.allRanges=[...new Set(this.allRanges)],this.predefinedRanges=this.predefinedRanges.filter(o=>this.allRanges.includes("https://www.ica.org/standards/RiC/ontology#"+o)),this.allRanges=this.allRanges.filter(o=>!this.predefinedRanges.includes(this.getNameOfRicoTypeFromURL(o))),console.log("All possibles ranges for all predicates ",this.allRanges)}subEntityAnchor;createSubEntity=!1;subEntityRef;childClosedSub;allRanges=[];allPossibleRanges=[];filters=[];filterByKindValue="";predicates=[];filteredPredicates=[];allRangesLabels=[];predefinedRanges=["Activity","Person","Record","Instantiation","Place"];rangeIcons={Activity:"task",Person:"person",Record:"description",Instantiation:"category",Place:"place"};association;createSubEntityToggle(){return se(this,null,function*(){if(!this.subEntityAnchor)return;this.destroySubEntity();let{CreateRessourceComponent:o}=yield import("./chunk-NUB2U5RT.js");this.subEntityRef=this.subEntityAnchor.createComponent(o),this.subEntityRef.instance.inputData={ontology:"rico",type:this.getNameOfRicoTypeFromURL(this.association.predicate.range)},this.childClosedSub=this.subEntityRef.instance.closed.subscribe(e=>{this.onChildClosed(e)}),this.createSubEntity=!0,this.subEntityRef.changeDetectorRef.detectChanges()})}onChildClosed(o){o===!0&&this.getEntitiesByType(this.association.predicate.range),this.destroySubEntity()}destroySubEntity(){this.childClosedSub?.unsubscribe(),this.subEntityRef?.destroy(),this.subEntityRef=void 0,this.createSubEntity=!1}ngOnDestroy(){this.destroySubEntity()}removeFilter(o){if(o==="iri"||o==="literal"){let e=this.filters.filter(t=>t!=="iri"&&t!=="literal");this.filters=e,this.filteredPredicates=this.predicates}else this.filters=this.filters.filter(e=>!e.startsWith("range :"))}getIconFor(o){return this.rangeIcons[o]??"label"}getNameOfRicoTypeFromURL(o){return o.includes("#")?o.split("#").pop():o}onRangeChange(o){let e=o.target?.value,t=this.getNameOfRicoTypeFromURL(e);this.addRangeFilter(t)}filterRangesByFilters(){for(let o of this.filters)if(o.startsWith("range : ")){let e=o.substring(8).trim();this.filteredPredicates=this.predicates.filter(t=>this.getNameOfRicoTypeFromURL(t.range)===e)}}addRangeFilter(o){this.filters.some(e=>e.startsWith("range :"))&&(this.filters=this.filters.filter(e=>!e.startsWith("range :"))),this.filters.push("range : "+o),this.filterRangesByFilters()}filterPropertiesByKindValue(o){this.filterByKindValue=o;let e=o==="literal"?"iri":"literal";if(!this.filters.includes(o)&&this.filters.includes(e)){let t=this.filters.filter(i=>i!==e);this.filters=t,this.filters.push(o),this.filteredPredicates=this.predicates.filter(i=>i.valueKind===o)}!this.filters.includes(o)&&!this.filters.includes(e)&&(this.filters.push(o),this.filteredPredicates=this.predicates.filter(t=>t.valueKind===o))}getEntitiesByType(o){this.association&&this.ontologyService.getAllEntitiesByType(o).subscribe({next:e=>{this.allPossibleRanges=e,console.log("All possible ranges for this predicate : ",e)},error:e=>{console.error("Error fetching possible ranges: ",e)}})}onCheckboxChange(o){this.association.predicate=o,this.association.valueKind=this.association.predicate?.valueKind||"literal",console.log("Selected predicate: ",o),this.getEntitiesByType(o.range)}cancelAddAssociation(){this.association.predicate=null}confirm(){this.dialogRef.close(this.data.association)}static \u0275fac=function(e){return new(e||a)(W(Qe),W(et),W(Ke))};static \u0275cmp=y({type:a,selectors:[["app-rico-properties"]],viewQuery:function(e,t){if(e&1&&M(Mt,5,pe),e&2){let i;E(i=R())&&(t.subEntityAnchor=i.first)}},decls:30,vars:21,consts:[["chipGrid",""],["subEntityAnchor",""],[1,"p-5","h-full!","w-full","overflow-y-scroll"],[1,"block","text-xs","font-medium","text-gray-600","mb-1"],[4,"ngFor","ngForOf"],[1,"flex","gap-2"],[1,"cursor-pointer!","flex-1","text-sm","py-1.5","rounded-md","border","border-gray-300","transition-colors","font-medium",3,"click"],[1,"my-4!"],[1,"gap-1","mt-4"],[1,"block","text-sm","font-medium","text-gray-600","mb-1"],[1,"flex","gap-1"],["class","big-chip",3,"click",4,"ngFor","ngForOf"],[1,"mt-4","w-full"],[1,"flex-1","w-full","text-sm","border","border-gray-300","rounded-md","px-2","py-1.5","bg-white","focus:outline-none","focus:ring-2","focus:ring-blue-400",3,"change"],["value","","disabled","","selected",""],[3,"value",4,"ngFor","ngForOf"],[1,"flex-col","gap-1",3,"ngModelChange","ngModel"],["class","list-none p-1.5 m-0",4,"ngFor","ngForOf"],["matChipRemove","",3,"click"],[1,"big-chip",3,"click"],["matChipAvatar",""],[3,"value"],[1,"list-none","p-1.5","m-0"],[3,"change","value"],["class","iri-badge ml-2!","matBadge","iri","matBadgeColor","primary","matBadgeSize","large",4,"ngIf"],["class","literal-badge ml-2!","matBadge","literal","matBadgeColor","accent","matBadgeSize","large",4,"ngIf"],["class","border m-2 border-blue-300 p-3",4,"ngIf"],["matBadge","iri","matBadgeColor","primary","matBadgeSize","large",1,"iri-badge","ml-2!"],["matBadge","literal","matBadgeColor","accent","matBadgeSize","large",1,"literal-badge","ml-2!"],[1,"border","m-2","border-blue-300","p-3"],[4,"ngIf"],[1,"flex","mt-2","gap-2","pt-1"],[1,"cursor-pointer!","flex-1","text-sm","py-1.5","bg-blue-600","text-white","rounded-md","hover:bg-blue-700","disabled:opacity-40","disabled:cursor-not-allowed","transition-colors","font-medium",3,"click","disabled"],[1,"cursor-pointer!","flex-1","text-sm","py-1.5","border","border-gray-300","text-gray-600","rounded-md","hover:bg-gray-100","transition-colors","font-medium",3,"click"],[1,"flex","items-center","gap-2"],["type","button",1,"text-xs","px-2","py-1","border","border-gray-300","rounded-md","bg-gray-100","hover:bg-gray-200",3,"click"],[1,"flex-1","text-sm","border","border-gray-300","rounded-md","px-2","py-1.5","bg-white","focus:outline-none","focus:ring-2","focus:ring-blue-400",3,"ngModelChange","ngModel","ngModelOptions"],["value","","disabled",""],[3,"ngValue",4,"ngFor","ngForOf"],[3,"ngValue"],["type","text",1,"w-full","text-sm","border","border-gray-300","rounded-md","px-2","py-1.5","bg-white","focus:outline-none","focus:ring-2","focus:ring-blue-400",3,"ngModelChange","ngModel","ngModelOptions","placeholder"]],template:function(e,t){if(e&1){let i=x();c(0,"div",2)(1,"label",3),u(2,"Filters"),n(),c(3,"mat-chip-grid",null,0),C(5,Dt,5,2,"mat-chip-row",4),n(),c(6,"div",5)(7,"button",6),p("click",function(){return m(i),h(t.filterPropertiesByKindValue("iri"))}),u(8," IRI "),n(),c(9,"button",6),p("click",function(){return m(i),h(t.filterPropertiesByKindValue("literal"))}),u(10," Literal "),n()(),v(11,"mat-divider",7),c(12,"div",8)(13,"label",9),u(14,"The object of the property is : "),n(),c(15,"div",10),C(16,Tt,4,2,"mat-chip-row",11),n()(),c(17,"div",12)(18,"label",9),u(19,"Other types : "),n(),c(20,"select",13),p("change",function(g){return m(i),h(t.onRangeChange(g))}),c(21,"option",14),u(22,"Select a type of object..."),n(),C(23,At,2,2,"option",15),n()(),v(24,"mat-divider",7),c(25,"div",12)(26,"label",9),u(27,"Select a property towards this type : "),n()(),c(28,"mat-radio-group",16),$("ngModelChange",function(g){return m(i),Z(t.association.predicate,g)||(t.association.predicate=g),h(g)}),C(29,Vt,7,5,"div",17),n()()}e&2&&(s(5),l("ngForOf",t.filters),s(2),f("bg-blue-600",t.filterByKindValue==="iri")("text-white",t.filterByKindValue==="iri")("bg-white",t.filterByKindValue!=="iri")("text-gray-600",t.filterByKindValue!=="iri"),s(2),f("bg-blue-600",t.filterByKindValue==="literal")("text-white",t.filterByKindValue==="literal")("bg-white",t.filterByKindValue!=="literal")("text-gray-600",t.filterByKindValue!=="literal"),s(7),l("ngForOf",t.predefinedRanges),s(7),l("ngForOf",t.allRanges),s(5),X("ngModel",t.association.predicate),s(),l("ngForOf",t.filteredPredicates))},dependencies:[Re,Ce,Ee,Se,Ae,ze,Ie,Te,Me,De,Fe,ot,qe,$e,He,Ze,We,Xe,je,Ue,nt,ct,st,de,re,Je,Ye],styles:[".iri-badge .mat-badge-content{background-color:#3b82f6;color:#fff;margin-left:20px} .literal-badge .mat-badge-content{background-color:#10b981;color:#fff;margin-left:20px}mat-chip-row.big-chip[_ngcontent-%COMP%]{--mdc-chip-outline-color: #3f51b5;--mdc-chip-label-text-color: #3f51b5;--mdc-chip-elevated-container-color: transparent;border:1px solid var(--mdc-chip-outline-color)}mat-chip-row.big-chip[_ngcontent-%COMP%]{transition:transform .15s ease,box-shadow .15s ease;cursor:pointer}mat-chip-row.big-chip[_ngcontent-%COMP%]:hover{transform:translateY(-1px);box-shadow:0 2px 6px #00000026}mat-chip-grid[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:8px}"]})};export{lt as RicoPropertiesComponent}; diff --git a/electron/dist/frontend/browser/chunk-IL44X3BM.js b/electron/dist/frontend/browser/chunk-IL44X3BM.js new file mode 100644 index 00000000..a35e7455 --- /dev/null +++ b/electron/dist/frontend/browser/chunk-IL44X3BM.js @@ -0,0 +1,4 @@ +import{$ as _,$b as Me,Aa as k,B as de,Bb as z,D as Q,Ea as A,Eb as Se,Fa as ve,Ga as V,Gc as ie,Ha as we,Hb as Te,Ia as u,Ib as W,Ic as Ke,Jc as He,Kc as ne,Lc as qe,M as me,Mb as G,Mc as Ze,Na as Ce,Nc as oe,Oa as d,Oc as Qe,Q as pe,Qa as v,R as ue,Rc as Xe,Sa as M,Sc as $e,T as X,Tb as Re,Tc as Ye,Uc as H,Vc as q,W as p,Wa as a,Wc as Je,Xa as r,Xb as Ee,Ya as y,Za as ke,Zc as et,_a as Ae,a as S,aa as g,ab as x,ac as Ie,ba as D,ca as fe,cb as f,cc as Fe,d as F,db as m,dc as De,ea as P,ec as Pe,fc as Be,gc as Oe,hb as $,hc as Ve,i as C,ia as B,ib as Y,ic as Ue,ja as _e,jb as J,jc as Ne,kc as Le,lb as l,lc as K,m as ce,ma as ge,mb as w,mc as je,nb as T,nc as ze,ob as ee,pa as he,pb as U,qb as N,ra as xe,rb as L,rc as te,tb as j,ua as O,uc as We,va as ye,wa as s,wc as Ge,xa as be}from"./chunk-D7GXM5CJ.js";var tt={XSmall:"(max-width: 599.98px)",Small:"(min-width: 600px) and (max-width: 959.98px)",Medium:"(min-width: 960px) and (max-width: 1279.98px)",Large:"(min-width: 1280px) and (max-width: 1919.98px)",XLarge:"(min-width: 1920px)",Handset:"(max-width: 599.98px) and (orientation: portrait), (max-width: 959.98px) and (orientation: landscape)",Tablet:"(min-width: 600px) and (max-width: 839.98px) and (orientation: portrait), (min-width: 960px) and (max-width: 1279.98px) and (orientation: landscape)",Web:"(min-width: 840px) and (orientation: portrait), (min-width: 1280px) and (orientation: landscape)",HandsetPortrait:"(max-width: 599.98px) and (orientation: portrait)",TabletPortrait:"(min-width: 600px) and (max-width: 839.98px) and (orientation: portrait)",WebPortrait:"(min-width: 840px) and (orientation: portrait)",HandsetLandscape:"(max-width: 959.98px) and (orientation: landscape)",TabletLandscape:"(min-width: 960px) and (max-width: 1279.98px) and (orientation: landscape)",WebLandscape:"(min-width: 1280px) and (orientation: landscape)"};function ct(i,o){if(i&1){let e=x();a(0,"div",1)(1,"button",2),f("click",function(){_(e);let n=m();return g(n.action())}),l(2),r()()}if(i&2){let e=m();s(2),T(" ",e.data.action," ")}}var dt=["label"];function mt(i,o){}var pt=Math.pow(2,31)-1,I=class{_overlayRef;instance;containerInstance;_afterDismissed=new C;_afterOpened=new C;_onAction=new C;_durationTimeoutId;_dismissedByAction=!1;constructor(o,e){this._overlayRef=e,this.containerInstance=o,o._onExit.subscribe(()=>this._finishDismiss())}dismiss(){this._afterDismissed.closed||this.containerInstance.exit(),clearTimeout(this._durationTimeoutId)}dismissWithAction(){this._onAction.closed||(this._dismissedByAction=!0,this._onAction.next(),this._onAction.complete(),this.dismiss()),clearTimeout(this._durationTimeoutId)}closeWithAction(){this.dismissWithAction()}_dismissAfter(o){this._durationTimeoutId=setTimeout(()=>this.dismiss(),Math.min(o,pt))}_open(){this._afterOpened.closed||(this._afterOpened.next(),this._afterOpened.complete())}_finishDismiss(){this._overlayRef.dispose(),this._onAction.closed||this._onAction.complete(),this._afterDismissed.next({dismissedByAction:this._dismissedByAction}),this._afterDismissed.complete(),this._dismissedByAction=!1}afterDismissed(){return this._afterDismissed}afterOpened(){return this.containerInstance._onEnter}onAction(){return this._onAction}},nt=new X("MatSnackBarData"),R=class{politeness="assertive";announcementMessage="";viewContainerRef;duration=0;panelClass;direction;data=null;horizontalPosition="center";verticalPosition="bottom"},ut=(()=>{class i{static \u0275fac=function(t){return new(t||i)};static \u0275dir=V({type:i,selectors:[["","matSnackBarLabel",""]],hostAttrs:[1,"mat-mdc-snack-bar-label","mdc-snackbar__label"]})}return i})(),ft=(()=>{class i{static \u0275fac=function(t){return new(t||i)};static \u0275dir=V({type:i,selectors:[["","matSnackBarActions",""]],hostAttrs:[1,"mat-mdc-snack-bar-actions","mdc-snackbar__actions"]})}return i})(),_t=(()=>{class i{static \u0275fac=function(t){return new(t||i)};static \u0275dir=V({type:i,selectors:[["","matSnackBarAction",""]],hostAttrs:[1,"mat-mdc-snack-bar-action","mdc-snackbar__action"]})}return i})(),ot=(()=>{class i{snackBarRef=p(I);data=p(nt);constructor(){}action(){this.snackBarRef.dismissWithAction()}get hasAction(){return!!this.data.action}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=A({type:i,selectors:[["simple-snack-bar"]],hostAttrs:[1,"mat-mdc-simple-snack-bar"],exportAs:["matSnackBar"],decls:3,vars:2,consts:[["matSnackBarLabel",""],["matSnackBarActions",""],["mat-button","","matSnackBarAction","",3,"click"]],template:function(t,n){t&1&&(a(0,"div",0),l(1),r(),u(2,ct,3,1,"div",1)),t&2&&(s(),T(" ",n.data.message,` +`),s(),M(n.hasAction?2:-1))},dependencies:[Ke,ut,ft,_t],styles:[`.mat-mdc-simple-snack-bar{display:flex} +`],encapsulation:2,changeDetection:0})}return i})(),re="_mat-snack-bar-enter",ae="_mat-snack-bar-exit",gt=(()=>{class i extends Ze{_ngZone=p(_e);_elementRef=p(ge);_changeDetectorRef=p(z);_platform=p(ze);_rendersRef;_animationsDisabled=p(he,{optional:!0})==="NoopAnimations";snackBarConfig=p(R);_document=p(Se);_trackedModals=new Set;_enterFallback;_exitFallback;_renders=new C;_announceDelay=150;_announceTimeoutId;_destroyed=!1;_portalOutlet;_onAnnounce=new C;_onExit=new C;_onEnter=new C;_animationState="void";_live;_label;_role;_liveElementId=p(Ge).getId("mat-snack-bar-container-live-");constructor(){super();let e=this.snackBarConfig;e.politeness==="assertive"&&!e.announcementMessage?this._live="assertive":e.politeness==="off"?this._live="off":this._live="polite",this._platform.FIREFOX&&(this._live==="polite"&&(this._role="status"),this._live==="assertive"&&(this._role="alert")),this._rendersRef=xe(()=>this._renders.next(),{manualCleanup:!0})}attachComponentPortal(e){this._assertNotAttached();let t=this._portalOutlet.attachComponentPortal(e);return this._afterPortalAttached(),t}attachTemplatePortal(e){this._assertNotAttached();let t=this._portalOutlet.attachTemplatePortal(e);return this._afterPortalAttached(),t}attachDomPortal=e=>{this._assertNotAttached();let t=this._portalOutlet.attachDomPortal(e);return this._afterPortalAttached(),t};onAnimationEnd(e){e===ae?this._completeExit():e===re&&(clearTimeout(this._enterFallback),this._ngZone.run(()=>{this._onEnter.next(),this._onEnter.complete()}))}enter(){this._destroyed||(this._animationState="visible",this._changeDetectorRef.markForCheck(),this._changeDetectorRef.detectChanges(),this._screenReaderAnnounce(),this._animationsDisabled?this._renders.pipe(Q(1)).subscribe(()=>{this._ngZone.run(()=>queueMicrotask(()=>this.onAnimationEnd(re)))}):(clearTimeout(this._enterFallback),this._enterFallback=setTimeout(()=>{this._elementRef.nativeElement.classList.add("mat-snack-bar-fallback-visible"),this.onAnimationEnd(re)},200)))}exit(){return this._destroyed?ce(void 0):(this._ngZone.run(()=>{this._animationState="hidden",this._changeDetectorRef.markForCheck(),this._elementRef.nativeElement.setAttribute("mat-exit",""),clearTimeout(this._announceTimeoutId),this._animationsDisabled?this._renders.pipe(Q(1)).subscribe(()=>{this._ngZone.run(()=>queueMicrotask(()=>this.onAnimationEnd(ae)))}):(clearTimeout(this._exitFallback),this._exitFallback=setTimeout(()=>this.onAnimationEnd(ae),200))}),this._onExit)}ngOnDestroy(){this._destroyed=!0,this._clearFromModals(),this._completeExit(),this._renders.complete(),this._rendersRef.destroy()}_completeExit(){clearTimeout(this._exitFallback),queueMicrotask(()=>{this._onExit.next(),this._onExit.complete()})}_afterPortalAttached(){let e=this._elementRef.nativeElement,t=this.snackBarConfig.panelClass;t&&(Array.isArray(t)?t.forEach(h=>e.classList.add(h)):e.classList.add(t)),this._exposeToModals();let n=this._label.nativeElement,c="mdc-snackbar__label";n.classList.toggle(c,!n.querySelector(`.${c}`))}_exposeToModals(){let e=this._liveElementId,t=this._document.querySelectorAll('body > .cdk-overlay-container [aria-modal="true"]');for(let n=0;n{let t=e.getAttribute("aria-owns");if(t){let n=t.replace(this._liveElementId,"").trim();n.length>0?e.setAttribute("aria-owns",n):e.removeAttribute("aria-owns")}}),this._trackedModals.clear()}_assertNotAttached(){this._portalOutlet.hasAttached()}_screenReaderAnnounce(){this._announceTimeoutId||this._ngZone.runOutsideAngular(()=>{this._announceTimeoutId=setTimeout(()=>{if(this._destroyed)return;let e=this._elementRef.nativeElement,t=e.querySelector("[aria-hidden]"),n=e.querySelector("[aria-live]");if(t&&n){let c=null;this._platform.isBrowser&&document.activeElement instanceof HTMLElement&&t.contains(document.activeElement)&&(c=document.activeElement),t.removeAttribute("aria-hidden"),n.appendChild(t),c?.focus(),this._onAnnounce.next(),this._onAnnounce.complete()}},this._announceDelay)})}static \u0275fac=function(t){return new(t||i)};static \u0275cmp=A({type:i,selectors:[["mat-snack-bar-container"]],viewQuery:function(t,n){if(t&1&&($(oe,7),$(dt,7)),t&2){let c;Y(c=J())&&(n._portalOutlet=c.first),Y(c=J())&&(n._label=c.first)}},hostAttrs:[1,"mdc-snackbar","mat-mdc-snack-bar-container"],hostVars:6,hostBindings:function(t,n){t&1&&f("animationend",function(h){return n.onAnimationEnd(h.animationName)})("animationcancel",function(h){return n.onAnimationEnd(h.animationName)}),t&2&&v("mat-snack-bar-container-enter",n._animationState==="visible")("mat-snack-bar-container-exit",n._animationState==="hidden")("mat-snack-bar-container-animations-enabled",!n._animationsDisabled)},features:[we],decls:6,vars:3,consts:[["label",""],[1,"mdc-snackbar__surface","mat-mdc-snackbar-surface"],[1,"mat-mdc-snack-bar-label"],["aria-hidden","true"],["cdkPortalOutlet",""]],template:function(t,n){t&1&&(a(0,"div",1)(1,"div",2,0)(3,"div",3),u(4,mt,0,0,"ng-template",4),r(),y(5,"div"),r()()),t&2&&(s(5),Ce("aria-live",n._live)("role",n._role)("id",n._liveElementId))},dependencies:[oe],styles:[`@keyframes _mat-snack-bar-enter{from{transform:scale(0.8);opacity:0}to{transform:scale(1);opacity:1}}@keyframes _mat-snack-bar-exit{from{opacity:1}to{opacity:0}}.mat-mdc-snack-bar-container{display:flex;align-items:center;justify-content:center;box-sizing:border-box;-webkit-tap-highlight-color:rgba(0,0,0,0);margin:8px}.mat-mdc-snack-bar-handset .mat-mdc-snack-bar-container{width:100vw}.mat-snack-bar-container-animations-enabled{opacity:0}.mat-snack-bar-container-animations-enabled.mat-snack-bar-fallback-visible{opacity:1}.mat-snack-bar-container-animations-enabled.mat-snack-bar-container-enter{animation:_mat-snack-bar-enter 150ms cubic-bezier(0, 0, 0.2, 1) forwards}.mat-snack-bar-container-animations-enabled.mat-snack-bar-container-exit{animation:_mat-snack-bar-exit 75ms cubic-bezier(0.4, 0, 1, 1) forwards}.mat-mdc-snackbar-surface{box-shadow:0px 3px 5px -1px rgba(0, 0, 0, 0.2), 0px 6px 10px 0px rgba(0, 0, 0, 0.14), 0px 1px 18px 0px rgba(0, 0, 0, 0.12);display:flex;align-items:center;justify-content:flex-start;box-sizing:border-box;padding-left:0;padding-right:8px}[dir=rtl] .mat-mdc-snackbar-surface{padding-right:0;padding-left:8px}.mat-mdc-snack-bar-container .mat-mdc-snackbar-surface{min-width:344px;max-width:672px}.mat-mdc-snack-bar-handset .mat-mdc-snackbar-surface{width:100%;min-width:0}@media(forced-colors: active){.mat-mdc-snackbar-surface{outline:solid 1px}}.mat-mdc-snack-bar-container .mat-mdc-snackbar-surface{color:var(--mdc-snackbar-supporting-text-color, var(--mat-sys-inverse-on-surface));border-radius:var(--mdc-snackbar-container-shape, var(--mat-sys-corner-extra-small));background-color:var(--mdc-snackbar-container-color, var(--mat-sys-inverse-surface))}.mdc-snackbar__label{width:100%;flex-grow:1;box-sizing:border-box;margin:0;padding:14px 8px 14px 16px}[dir=rtl] .mdc-snackbar__label{padding-left:8px;padding-right:16px}.mat-mdc-snack-bar-container .mdc-snackbar__label{font-family:var(--mdc-snackbar-supporting-text-font, var(--mat-sys-body-medium-font));font-size:var(--mdc-snackbar-supporting-text-size, var(--mat-sys-body-medium-size));font-weight:var(--mdc-snackbar-supporting-text-weight, var(--mat-sys-body-medium-weight));line-height:var(--mdc-snackbar-supporting-text-line-height, var(--mat-sys-body-medium-line-height))}.mat-mdc-snack-bar-actions{display:flex;flex-shrink:0;align-items:center;box-sizing:border-box}.mat-mdc-snack-bar-handset,.mat-mdc-snack-bar-container,.mat-mdc-snack-bar-label{flex:1 1 auto}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled).mat-unthemed{color:var(--mat-snack-bar-button-color, var(--mat-sys-inverse-primary))}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled){--mat-text-button-state-layer-color:currentColor;--mat-text-button-ripple-color:currentColor}.mat-mdc-snack-bar-container .mat-mdc-button.mat-mdc-snack-bar-action:not(:disabled) .mat-ripple-element{opacity:.1} +`],encapsulation:2})}return i})();function ht(){return new R}var xt=new X("mat-snack-bar-default-options",{providedIn:"root",factory:ht}),se=(()=>{class i{_overlay=p($e);_live=p(We);_injector=p(P);_breakpointObserver=p(te);_parentSnackBar=p(i,{optional:!0,skipSelf:!0});_defaultConfig=p(xt);_snackBarRefAtThisLevel=null;simpleSnackBarComponent=ot;snackBarContainerComponent=gt;handsetCssClass="mat-mdc-snack-bar-handset";get _openedSnackBarRef(){let e=this._parentSnackBar;return e?e._openedSnackBarRef:this._snackBarRefAtThisLevel}set _openedSnackBarRef(e){this._parentSnackBar?this._parentSnackBar._openedSnackBarRef=e:this._snackBarRefAtThisLevel=e}constructor(){}openFromComponent(e,t){return this._attach(e,t)}openFromTemplate(e,t){return this._attach(e,t)}open(e,t="",n){let c=S(S({},this._defaultConfig),n);return c.data={message:e,action:t},c.announcementMessage===e&&(c.announcementMessage=void 0),this.openFromComponent(this.simpleSnackBarComponent,c)}dismiss(){this._openedSnackBarRef&&this._openedSnackBarRef.dismiss()}ngOnDestroy(){this._snackBarRefAtThisLevel&&this._snackBarRefAtThisLevel.dismiss()}_attachSnackBarContainer(e,t){let n=t&&t.viewContainerRef&&t.viewContainerRef.injector,c=P.create({parent:n||this._injector,providers:[{provide:R,useValue:t}]}),h=new ne(this.snackBarContainerComponent,t.viewContainerRef,c),b=e.attach(h);return b.instance.snackBarConfig=t,b.instance}_attach(e,t){let n=S(S(S({},new R),this._defaultConfig),t),c=this._createOverlay(n),h=this._attachSnackBarContainer(c,n),b=new I(h,c);if(e instanceof be){let E=new qe(e,null,{$implicit:n.data,snackBarRef:b});b.instance=h.attachTemplatePortal(E)}else{let E=this._createInjector(n,b),st=new ne(e,void 0,E),lt=h.attachComponentPortal(st);b.instance=lt.instance}return this._breakpointObserver.observe(tt.HandsetPortrait).pipe(me(c.detachments())).subscribe(E=>{c.overlayElement.classList.toggle(this.handsetCssClass,E.matches)}),n.announcementMessage&&h._onAnnounce.subscribe(()=>{this._live.announce(n.announcementMessage,n.politeness)}),this._animateSnackBar(b,n),this._openedSnackBarRef=b,this._openedSnackBarRef}_animateSnackBar(e,t){e.afterDismissed().subscribe(()=>{this._openedSnackBarRef==e&&(this._openedSnackBarRef=null),t.announcementMessage&&this._live.clear()}),t.duration&&t.duration>0&&e.afterOpened().subscribe(()=>e._dismissAfter(t.duration)),this._openedSnackBarRef?(this._openedSnackBarRef.afterDismissed().subscribe(()=>{e.containerInstance.enter()}),this._openedSnackBarRef.dismiss()):e.containerInstance.enter()}_createOverlay(e){let t=new Xe;t.direction=e.direction;let n=this._overlay.position().global(),c=e.direction==="rtl",h=e.horizontalPosition==="left"||e.horizontalPosition==="start"&&!c||e.horizontalPosition==="end"&&c,b=!h&&e.horizontalPosition!=="center";return h?n.left("0"):b?n.right("0"):n.centerHorizontally(),e.verticalPosition==="top"?n.top("0"):n.bottom("0"),t.positionStrategy=n,this._overlay.create(t)}_createInjector(e,t){let n=e&&e.viewContainerRef&&e.viewContainerRef.injector;return P.create({parent:n||this._injector,providers:[{provide:I,useValue:t},{provide:nt,useValue:e.data}]})}static \u0275fac=function(t){return new(t||i)};static \u0275prov=pe({token:i,factory:i.\u0275fac,providedIn:"root"})}return i})();var rt=(()=>{class i{static \u0275fac=function(t){return new(t||i)};static \u0275mod=ve({type:i});static \u0275inj=ue({providers:[se],imports:[Ye,Qe,He,ie,ot,ie]})}return i})();function wt(i,o){if(i&1&&(a(0,"div",10)(1,"p")(2,"strong"),l(3,"Full Path:"),r()(),a(4,"p",11),l(5),r()()),i&2){let e=m();s(5),w(e.filePath)}}function Ct(i,o){if(i&1&&y(0,"img",12),i&2){let e=m();d("src",e.fileUrl,O)}}function kt(i,o){if(i&1&&y(0,"video",13),i&2){let e=m();d("src",e.safeUrl,O)}}function At(i,o){if(i&1&&y(0,"audio",14),i&2){let e=m();d("src",e.safeUrl,O)}}function St(i,o){if(i&1&&y(0,"iframe",15),i&2){let e=m();d("src",e.safeUrl,ye)}}function Tt(i,o){i&1&&(a(0,"div",16),l(1," Unsupported file type "),r())}function Rt(i,o){i&1&&(a(0,"div",16),l(1," Waiting for file selection... "),r())}function Et(i,o){if(i&1){let e=x();a(0,"button",17),f("click",function(){_(e);let n=m();return g(n.closeAndReturn())}),l(1," Validate "),r()}}var Z=class i{constructor(o){this.sanitizer=o}filePath="";data=p(q,{optional:!0});dialogRef=p(H,{optional:!0});isDialogRoot=!1;filePathChange=new B;fileUrl="";safeUrl=null;fileType="unknown";ngOnInit(){this.isDialogRoot=this.dialogRef?.componentInstance===this,this.isDialogRoot&&this.openFile(this.data)}detectFileType(o){let e=o.split(".").pop()?.toLowerCase();return e?["png","jpg","jpeg","gif","webp"].includes(e)?"image":["mp4","webm","ogg"].includes(e)?"video":["mp3","wav","ogg"].includes(e)?"audio":e==="pdf"?"pdf":"unknown":"unknown"}openFile(o){return F(this,null,function*(){let e=o!==""?o:yield window.electronAPI.selectFile();e&&(this.filePathChange.emit(e),this.filePath=e,this.fileUrl=`file://${encodeURI(e.replace(/\\/g,"/"))}`,this.safeUrl=this.sanitizer.bypassSecurityTrustResourceUrl(this.fileUrl),this.fileType=this.detectFileType(e))})}closeAndReturn(){console.log("closeAndReturn CALLED, dialogRef:",this.dialogRef,"filePath:",this.filePath),this.dialogRef&&this.dialogRef.close(this.filePath)}static \u0275fac=function(e){return new(e||i)(k(Re))};static \u0275cmp=A({type:i,selectors:[["app-file-viewer"]],outputs:{filePathChange:"filePathChange"},decls:12,vars:8,consts:[[1,"p-3","flex","flex-col","gap-1"],[1,"cursor-pointer","px-4","py-2","bg-blue-600","text-white","rounded",3,"click"],["class","p-2 bg-gray-100 rounded text-sm",4,"ngIf"],[1,"border","rounded","p-4","flex","justify-center","items-center","min-h-[200px]"],["class","max-h-[400px]",3,"src",4,"ngIf"],["controls","","class","max-h-[400px]",3,"src",4,"ngIf"],["controls","",3,"src",4,"ngIf"],["class","w-full h-[500px]",3,"src",4,"ngIf"],["class","text-gray-500",4,"ngIf"],["class","cursor-pointer px-4 py-2 bg-green-600 text-white rounded",3,"click",4,"ngIf"],[1,"p-2","bg-gray-100","rounded","text-sm"],[1,"break-all","text-blue-600"],[1,"max-h-[400px]",3,"src"],["controls","",1,"max-h-[400px]",3,"src"],["controls","",3,"src"],[1,"w-full","h-[500px]",3,"src"],[1,"text-gray-500"],[1,"cursor-pointer","px-4","py-2","bg-green-600","text-white","rounded",3,"click"]],template:function(e,t){e&1&&(a(0,"div",0)(1,"button",1),f("click",function(){return t.openFile("")}),l(2," Select File "),r(),u(3,wt,6,1,"div",2),a(4,"div",3),u(5,Ct,1,1,"img",4)(6,kt,1,1,"video",5)(7,At,1,1,"audio",6)(8,St,1,1,"iframe",7)(9,Tt,2,0,"div",8)(10,Rt,2,0,"div",8),r(),u(11,Et,2,0,"button",9),r()),e&2&&(s(3),d("ngIf",t.filePath!==""),s(2),d("ngIf",t.fileType==="image"),s(),d("ngIf",t.fileType==="video"),s(),d("ngIf",t.fileType==="audio"),s(),d("ngIf",t.fileType==="pdf"),s(),d("ngIf",t.fileType==="unknown"&&t.fileUrl!==""),s(),d("ngIf",t.fileUrl===""),s(),d("ngIf",t.isDialogRoot))},dependencies:[G,W,K],encapsulation:2})};var le=()=>({standalone:!0});function Mt(i,o){if(i&1&&(a(0,"option",28),l(1),r()),i&2){let e=o.$implicit;d("value",e),s(),w(e)}}function It(i,o){if(i&1&&(a(0,"div",8)(1,"label",23),l(2,"Select a type"),r(),a(3,"select",24)(4,"option",25),l(5,"Loading types\u2026"),r(),u(6,Mt,2,2,"option",26),r(),a(7,"p",27),l(8,"Types are fetched from the RDF graph base."),r()()),i&2){let e=m(2);s(6),d("ngForOf",e.availableTypes)}}function Ft(i,o){if(i&1&&(a(0,"option",28),l(1),r()),i&2){let e=o.$implicit;d("value",e.iri),s(),w(e.name)}}function Dt(i,o){if(i&1&&(a(0,"p",27),l(1," Resolved URI: "),a(2,"code",40),l(3),r()()),i&2){let e=m(4);s(3),w(e.resolvedTypeUri)}}function Pt(i,o){if(i&1&&(a(0,"div",34)(1,"label",23),l(2,"Ontology"),r(),a(3,"div",35)(4,"select",36)(5,"option",25),l(6,"Select an ontology\u2026"),r(),u(7,Ft,2,2,"option",26),r(),a(8,"span",37),l(9,"/"),r(),y(10,"input",38),r(),u(11,Dt,4,1,"p",39),r()),i&2){let e=m(3);s(7),d("ngForOf",e.ontologyList),s(4),d("ngIf",e.resolvedTypeUri)}}function Bt(i,o){i&1&&(a(0,"div")(1,"label",23),l(2,"Full type URI"),r(),y(3,"input",41),a(4,"p",27),l(5,"Enter the complete, fully qualified URI for this type."),r()())}function Ot(i,o){if(i&1){let e=x();a(0,"div",29)(1,"div")(2,"label",23),l(3,"Type source"),r(),a(4,"div",30)(5,"button",31),f("click",function(){_(e);let n=m(2);return g(n.setCustomSource("url"))}),l(6," Ontology URL + name "),r(),a(7,"button",31),f("click",function(){_(e);let n=m(2);return g(n.setCustomSource("full"))}),l(8," Full URI "),r()()(),u(9,Pt,12,2,"div",32)(10,Bt,6,0,"div",33),r()}if(i&2){let e=m(2);s(5),v("bg-blue-50",e.customSource==="url")("text-blue-700",e.customSource==="url")("border-blue-300",e.customSource==="url")("text-gray-500",e.customSource!=="url"),s(2),v("bg-blue-50",e.customSource==="full")("text-blue-700",e.customSource==="full")("border-blue-300",e.customSource==="full")("text-gray-500",e.customSource!=="full"),s(2),d("ngIf",e.customSource==="url"),s(),d("ngIf",e.customSource==="full")}}function Vt(i,o){i&1&&(a(0,"div",42),l(1," Entity type is required. "),r())}function Ut(i,o){if(i&1){let e=x();a(0,"div",17)(1,"button",18),f("click",function(){_(e);let n=m();return g(n.setTypeMode("rico"))}),l(2," RICO type "),r(),a(3,"button",19),f("click",function(){_(e);let n=m();return g(n.setTypeMode("custom"))}),l(4," Other Ontologies "),r()(),u(5,It,9,1,"div",20)(6,Ot,11,18,"div",21)(7,Vt,2,0,"div",22)}if(i&2){let e,t=m();s(),v("bg-blue-50",t.typeMode==="rico")("text-blue-700",t.typeMode==="rico")("font-medium",t.typeMode==="rico")("text-gray-500",t.typeMode!=="rico"),s(2),v("bg-blue-50",t.typeMode==="custom")("text-blue-700",t.typeMode==="custom")("font-medium",t.typeMode==="custom")("text-gray-500",t.typeMode!=="custom"),s(2),d("ngIf",t.typeMode==="rico"),s(),d("ngIf",t.typeMode==="custom"),s(),d("ngIf",((e=t.personForm.get("entityType"))==null?null:e.invalid)&&((e=t.personForm.get("entityType"))==null?null:e.touched))}}function Nt(i,o){if(i&1&&(a(0,"div",8)(1,"label",23),l(2,"Selected type"),r(),a(3,"p"),l(4),r()()),i&2){let e=m();s(4),T(" ",e.availableTypes," ")}}function Lt(i,o){if(i&1){let e=x();a(0,"div",46)(1,"div",47)(2,"span",48),l(3),r(),a(4,"span",49),l(5),r(),a(6,"div",50)(7,"span",51),l(8),r(),a(9,"span",52),l(10),r()()(),a(11,"button",53),f("click",function(){let n=_(e).index,c=m(2);return g(c.properties.splice(n,1))}),D(),a(12,"svg",54),y(13,"path",55),r()()()}if(i&2){let e=o.$implicit;s(3),w(e.key),s(2),w(e.predicate),s(3),w(e.value),s(2),w(e.kind)}}function jt(i,o){if(i&1&&(a(0,"div",43)(1,"label",44),l(2,"Associations"),r(),u(3,Lt,14,4,"div",45),r()),i&2){let e=m();s(3),d("ngForOf",e.properties)}}function zt(i,o){if(i&1){let e=x();a(0,"button",56),f("click",function(){_(e);let n=m();return g(n.addAssociation())}),D(),a(1,"svg",54),y(2,"path",57),r(),l(3," Add property "),r()}}function Wt(i,o){if(i&1&&(a(0,"option",28),l(1),r()),i&2){let e=o.$implicit;d("value",e.iri),s(),ee(" ",e.name," \u2014 ",e.iri," ")}}function Gt(i,o){if(i&1&&(a(0,"span",69),l(1),r()),i&2){let e=m(3);s(),T(" ",e.newAssociation.ontologyUrl," ")}}function Kt(i,o){if(i&1&&(a(0,"p",70),l(1),r()),i&2){let e=m(3);s(),ee(" \u2192 ",e.newAssociation.ontologyUrl,"",e.newAssociation.customPredicate," ")}}function Ht(i,o){if(i&1){let e=x();ke(0),a(1,"div")(2,"label",59),l(3,"Ontology namespace"),r(),a(4,"select",64),L("ngModelChange",function(n){_(e);let c=m(2);return N(c.newAssociation.ontologyUrl,n)||(c.newAssociation.ontologyUrl=n),g(n)}),a(5,"option",25),l(6,"Select an ontology..."),r(),u(7,Wt,2,3,"option",26),r()(),a(8,"div")(9,"label",59),l(10,"Predicate name"),r(),a(11,"div",65),u(12,Gt,2,1,"span",66),a(13,"input",67),L("ngModelChange",function(n){_(e);let c=m(2);return N(c.newAssociation.customPredicate,n)||(c.newAssociation.customPredicate=n),g(n)}),r()(),u(14,Kt,2,2,"p",68),r(),Ae()}if(i&2){let e=m(2);s(4),U("ngModel",e.newAssociation.ontologyUrl),d("ngModelOptions",j(7,le)),s(3),d("ngForOf",e.ontologyList),s(5),d("ngIf",e.newAssociation.ontologyUrl),s(),U("ngModel",e.newAssociation.customPredicate),d("ngModelOptions",j(8,le)),s(),d("ngIf",e.newAssociation.ontologyUrl&&e.newAssociation.customPredicate)}}function qt(i,o){if(i&1){let e=x();a(0,"div")(1,"label",59),l(2,"Type"),r(),a(3,"div",60)(4,"button",71),f("click",function(){_(e);let n=m(2);return g(n.newAssociation.valueKind="literal")}),l(5," Literal "),r(),a(6,"button",71),f("click",function(){_(e);let n=m(2);return g(n.newAssociation.valueKind="iri")}),l(7," IRI "),r()()()}if(i&2){let e=m(2);s(4),v("bg-blue-600",e.newAssociation.valueKind==="literal")("text-white",e.newAssociation.valueKind==="literal")("bg-white",e.newAssociation.valueKind!=="literal")("text-gray-600",e.newAssociation.valueKind!=="literal"),s(2),v("bg-blue-600",e.newAssociation.valueKind==="iri")("text-white",e.newAssociation.valueKind==="iri")("bg-white",e.newAssociation.valueKind!=="iri")("text-gray-600",e.newAssociation.valueKind!=="iri")}}function Zt(i,o){if(i&1){let e=x();a(0,"app-file-viewer",74),f("filePathChange",function(n){_(e);let c=m(3);return g(c.receiveFilePath(n))}),r()}}function Qt(i,o){if(i&1){let e=x();a(0,"div",73)(1,"label",59),l(2,"Value"),r(),a(3,"input",75),L("ngModelChange",function(n){_(e);let c=m(3);return N(c.newAssociation.value,n)||(c.newAssociation.value=n),g(n)}),r()()}if(i&2){let e=m(3);s(3),U("ngModel",e.newAssociation.value),d("ngModelOptions",j(3,le))("placeholder","Enter a value")}}function Xt(i,o){if(i&1&&(a(0,"div",72),u(1,Zt,1,0,"app-file-viewer",2)(2,Qt,4,4,"div",73),r()),i&2){let e=m(2);s(),M(e.isEntityMediaFile()?1:e.newAssociation.mode==="new"?2:-1)}}function $t(i,o){if(i&1){let e=x();a(0,"div",76)(1,"button",77),f("click",function(){_(e);let n=m(2);return g(n.confirmAddAssociation())}),l(2," Confirm "),r(),a(3,"button",78),f("click",function(){_(e);let n=m(2);return g(n.cancelAddAssociation())}),l(4," Cancel "),r()()}if(i&2){let e=m(2);s(),d("disabled",!e.newAssociation.mode||!e.newAssociation.value||!e.newAssociation.ontologyUrl||!e.newAssociation.customPredicate)}}function Yt(i,o){if(i&1){let e=x();a(0,"div",58)(1,"div")(2,"label",59),l(3,"Entity Properties"),r(),a(4,"div",60)(5,"button",61),f("click",function(){_(e);let n=m();return g(n.openRicoPropertiesDialog())}),l(6," RICO "),r(),a(7,"button",61),f("click",function(){_(e);let n=m();return g(n.newAssociation.mode="new")}),l(8," Other Ontologies "),r()()(),u(9,Ht,15,9,"ng-container",33)(10,qt,8,16,"div",33)(11,Xt,3,1,"div",62)(12,$t,5,1,"div",63),r()}if(i&2){let e=m();s(5),v("bg-blue-600",e.newAssociation.mode==="existing")("text-white",e.newAssociation.mode==="existing")("bg-white",e.newAssociation.mode!=="existing")("text-gray-600",e.newAssociation.mode!=="existing"),s(2),v("bg-blue-600",e.newAssociation.mode==="new")("text-white",e.newAssociation.mode==="new")("bg-white",e.newAssociation.mode!=="new")("text-gray-600",e.newAssociation.mode!=="new"),s(2),d("ngIf",e.newAssociation.mode==="new"),s(),d("ngIf",e.newAssociation.mode==="new"),s(),d("ngIf",e.newAssociation.mode==="new"||e.newAssociation.valueKind==="literal"),s(),d("ngIf",e.newAssociation.mode==="new")}}var Jt={"https://www.ica.org/standards/RiC/ontology#":"RIC-O","http://uspn.fr/app#":"Application","http://www.w3.org/2002/07/owl#":"OWL","http://www.w3.org/2000/01/rdf-schema#":"RDFS","http://purl.org/dc/terms/":"Dublin Core","https://schema.org/":"schema","http://purl.org/dc/elements/1.1/":"dc"},at=class i{constructor(o,e,t,n,c){this.fb=o;this.ontologyService=e;this.snackBar=t;this.cdr=n;this.dialog=c;this.personForm=this.fb.group({entityType:[""],customTypeUri:[""],customTypeUrl:this.fb.group({selectedIri:[""],typeName:[""]}),associatedWith:this.fb.array([]),customFields:this.fb.array([]),properties:this.fb.array([])}),this.ontologyList=this.getOntologyList()}personForm;selectedEntity=null;properties=[];isEntityMediaFile(){return this.newAssociation?.predicate?.p==="https://www.ica.org/standards/RiC/ontology#identifier"}receiveFilePath(o){this.newAssociation.value=o}allPredicatesByType=[];typeMode="rico";customSource="url";availableTypes=[];allPossibleRanges=[];newAssociation=null;ontologyList=[];dialogData=p(q,{optional:!0});dialogRef=p(H,{optional:!0});inputData;closed=new B;data;getFullEntityPath(o,e){return e?this.ontologyService.getTypeUrlByName(e)+o:""}openRicoPropertiesDialog(){return F(this,null,function*(){this.newAssociation.mode="existing";let{RicoPropertiesComponent:o}=yield import("./chunk-HNLKPVMX.js");this.dialog.open(o,{width:"600px",height:"350px",data:{predicates:this.allPredicatesByType,association:this.newAssociation}}).afterClosed().subscribe(t=>{t?(console.log("Dialog result:",t),this.confirmAddAssociation()):console.log("Dialog closed without changes")})})}extractEntityTypeFromIRI(o){return o.includes("#")?o.substring(o.lastIndexOf("#")+1):o.substring(o.lastIndexOf("/")+1)}ngOnInit(){!this.dialogData&&this.inputData===void 0?this.getAllRicoEntities():(this.dialogData||this.inputData)&&(this.data=this.inputData??this.dialogData,console.log("RECEIVED DATA : ",this.data),this.availableTypes=this.data?.type&&this.data?.ontology?[this.ontologyService.getTypeUrlByName(this.data?.ontology)+this.data.type]:[]),this.personForm.get("entityType")?.valueChanges.pipe(de(300)).subscribe(o=>{o&&this.ontologyService.getPredicatesByTypeRico(this.personForm.get("entityType")?.value).subscribe(e=>{console.log("All predicates : ",e),this.allPredicatesByType=Object.values(e.reduce((t,n)=>(t[n.p]||(t[n.p]=n),t),{}))})}),this.data&&this.personForm.get("entityType")?.patchValue(this.data?.type,{emitEvent:!0})}onPredicateChange(o){this.newAssociation&&(this.newAssociation.valueKind=this.newAssociation.predicate?.valueKind||"literal",this.ontologyService.getAllEntitiesByType(this.newAssociation.predicate.range).subscribe({next:e=>{this.allPossibleRanges=e,console.log("All possible ranges for this predicate : ",e)},error:e=>{console.error("Error fetching possible ranges: ",e)}}))}getOntologyList(){return Object.entries(Jt).map(([o,e])=>({name:e,iri:o}))}get resolvedTypeUri(){let{selectedIri:o,typeName:e}=this.personForm.get("customTypeUrl")?.value??{};if(!o||!e)return"";let t=o.endsWith("#")||o.endsWith("/")?"":"#";return`${o}${t}${e}`}setTypeMode(o){this.typeMode=o,this.personForm.get("entityType")?.reset(),this.personForm.get("customTypeUri")?.reset(),this.personForm.get("customTypeUrl")?.reset()}getAllRicoEntities(){this.ontologyService.getAllRicoClasses().subscribe({next:o=>{try{let t=this.ontologyService.getOntologyLabel(o.map(n=>n.type))[0].rico;t=Array.from(new Set(t)),this.availableTypes=t,console.log("Classes RICO (no duplicates) ",this.availableTypes)}catch(e){console.error("ERROR in getOntologyLabel:",e)}this.cdr.markForCheck()},error:o=>{console.error(o)}})}setCustomSource(o){this.customSource=o,this.personForm.get("customTypeUri")?.reset(),this.personForm.get("customTypeUrl")?.reset()}get customFieldsArray(){return this.personForm.get("customFields")}addCustomField(){let o=this.fb.group({name:[""],value:[""]});this.customFieldsArray.push(o)}removeCustomField(o){this.customFieldsArray.removeAt(o)}addNewPerson(){for(this.personForm.reset();this.properties.length!==0;)this.properties.pop();for(;this.customFieldsArray.length!==0;)this.customFieldsArray.removeAt(0)}cancelNewPerson(){this.personForm.reset(),this.dialogRef?.close()}saveNewPerson(){let o="";this.typeMode==="rico"?o=this.getFullEntityPath(this.personForm.get("entityType")?.value,"rico"):o=this.customSource==="url"?this.resolvedTypeUri:this.personForm.get("customTypeUri")?.value;let e=this.properties.map(n=>{let c={predicate:n.predicate,kind:n.kind,value:n.value};return n.kind==="literal"&&(c.lang=""),c}),t={types:[o],properties:e};console.log("Final payload:",t),this.ontologyService.createEntity(t).subscribe({next:n=>{console.log("\u2705 Entity created:",n),this.snackBar.open("\u2705 Entity created: was successfully created.","Close",{duration:5e3,horizontalPosition:"center",verticalPosition:"top",panelClass:["snackbar-success"]}),this.closed.emit(!0),this.personForm.reset(),this.properties=[]},error:n=>{this.snackBar.open("\u274C Error creating entity.","Close",{duration:5e3,horizontalPosition:"center",verticalPosition:"top",panelClass:["snackbar-error"]})}})}addAssociation(){this.newAssociation={mode:null,predicate:"",ontologyUrl:"",customPredicate:"",valueKind:"literal",value:""}}confirmAddAssociation(){if(!this.newAssociation||!this.newAssociation.value)return;let o,e;if(this.newAssociation.mode==="existing"){if(!this.newAssociation.predicate)return;o=this.newAssociation.predicate.p,o.includes("#")?e=o.substring(o.lastIndexOf("#")+1):e=o.substring(o.lastIndexOf("/")+1)}else{if(!this.newAssociation.ontologyUrl||!this.newAssociation.customPredicate)return;o=this.newAssociation.ontologyUrl+this.newAssociation.customPredicate,e=this.newAssociation.customPredicate}this.properties.push({key:e,value:this.newAssociation.value,kind:this.newAssociation.valueKind,predicate:o}),this.newAssociation=null}cancelAddAssociation(){this.newAssociation=null}static \u0275fac=function(e){return new(e||i)(k(Le),k(et),k(se),k(z),k(Je))};static \u0275cmp=A({type:i,selectors:[["app-create-ressource"]],inputs:{inputData:"inputData"},outputs:{closed:"closed"},decls:21,vars:6,consts:[[1,"p-6","overflow-y-auto","max-h-[calc(90vh-100px)]"],[1,"space-y-6",3,"formGroup"],[1,"w-full"],[1,"flex","items-center","justify-between","mb-3"],[1,"flex","items-center","gap-3","text-sm","font-medium","text-gray-700"],["type","button","title","Add new type",1,"grid","place-items-center","w-8","h-8","rounded-lg","bg-blue-600","text-white","hover:bg-blue-700","transition","leading-none"],["viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2.5",1,"w-5","h-5"],["stroke-linecap","round","stroke-linejoin","round","d","M12 6v12M6 12h12"],[1,"p-4","bg-gray-50","border","border-gray-200","rounded-lg"],[1,"flex","flex-col","gap-2"],["class","flex flex-col gap-2 mb-2",4,"ngIf"],[1,"flex","items-center","justify-center"],["class","cursor-pointer! mt-2 flex items-center gap-1 text-sm text-blue-600 hover:text-blue-700 font-medium transition-colors",3,"click",4,"ngIf"],["class","mt-3 p-3 border border-blue-200 bg-blue-50 rounded-lg flex flex-col gap-3!",4,"ngIf"],[1,"flex","justify-end","gap-3","pt-4","border-t","border-gray-200"],["type","button",1,"px-4","py-2.5","border","border-gray-300","text-gray-700","rounded-lg","hover:bg-gray-50","transition-colors","text-sm","font-medium",3,"click"],["type","submit",1,"px-4","py-2.5","bg-blue-600","text-white","rounded-lg","hover:bg-blue-700","transition-colors","text-sm","font-medium","disabled:opacity-50","disabled:cursor-not-allowed","shadow-sm",3,"click","disabled"],[1,"flex","rounded-lg","border","border-gray-300","overflow-hidden","w-fit","mb-4","text-sm"],["type","button",1,"cursor-pointer","px-4","py-2","transition-colors",3,"click"],["type","button",1,"cursor-pointer","px-4","py-2","border-l","border-gray-300","transition-colors",3,"click"],["class","p-4 bg-gray-50 border border-gray-200 rounded-lg",4,"ngIf"],["class","p-4 bg-gray-50 border border-gray-200 rounded-lg space-y-4",4,"ngIf"],["class","mt-1 text-xs text-red-600",4,"ngIf"],[1,"block","text-xs","font-medium","text-gray-700","mb-2"],["formControlName","entityType",1,"cursor-pointer!","w-full","px-3","py-2.5","border","border-gray-300","rounded-lg","focus:outline-none","focus:ring-2","focus:ring-blue-500","focus:border-transparent","text-sm","transition-all"],["value","","disabled",""],[3,"value",4,"ngFor","ngForOf"],[1,"mt-1.5","text-xs","text-gray-400"],[3,"value"],[1,"p-4","bg-gray-50","border","border-gray-200","rounded-lg","space-y-4"],[1,"flex","gap-2","flex-wrap"],["type","button",1,"cursor-pointer","px-3","py-1.5","text-xs","border","border-gray-300","rounded-lg","transition-colors",3,"click"],["formGroupName","customTypeUrl",4,"ngIf"],[4,"ngIf"],["formGroupName","customTypeUrl"],[1,"flex","gap-2","items-center"],["formControlName","selectedIri",1,"cursor-pointer","flex-[1.5]","px-3","py-2","border","border-gray-300","rounded-lg","focus:outline-none","focus:ring-2","focus:ring-blue-500","text-xs"],[1,"text-gray-400","text-xs","shrink-0"],["type","text","formControlName","typeName","placeholder","Entity",1,"flex-1","px-3","py-2","border","border-gray-300","rounded-lg","focus:outline-none","focus:ring-2","focus:ring-blue-500","text-xs"],["class","mt-1.5 text-xs text-gray-400",4,"ngIf"],[1,"text-gray-600"],["type","text","formControlName","customTypeUri","placeholder","https://www.w3.org/ns/prov#Entity",1,"w-full","px-3","py-2","border","border-gray-300","rounded-lg","focus:outline-none","focus:ring-2","focus:ring-blue-500","text-xs"],[1,"mt-1","text-xs","text-red-600"],[1,"flex","flex-col","gap-2","mb-2"],[1,"block","text-sm","font-medium","text-gray-700"],["class","flex items-center justify-between px-3 py-2 bg-gray-50 border border-gray-200 rounded-lg",4,"ngFor","ngForOf"],[1,"flex","items-center","justify-between","px-3","py-2","bg-gray-50","border","border-gray-200","rounded-lg"],[1,"flex","flex-col","gap-0.5","min-w-0"],[1,"text-sm","font-medium","text-gray-700"],[1,"text-xs","font-mono","text-gray-400","truncate"],[1,"flex","items-center","gap-1","mt-0.5"],[1,"text-xs","text-gray-600"],[1,"text-xs","px-1.5","py-0.5","rounded","bg-gray-200","text-gray-500"],["type","button",1,"ml-3","shrink-0","text-red-400","hover:text-red-600","transition-colors",3,"click"],["fill","none","stroke","currentColor","viewBox","0 0 24 24",1,"w-4","h-4"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M6 18L18 6M6 6l12 12"],[1,"cursor-pointer!","mt-2","flex","items-center","gap-1","text-sm","text-blue-600","hover:text-blue-700","font-medium","transition-colors",3,"click"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M12 4v16m8-8H4"],[1,"mt-3","p-3","border","border-blue-200","bg-blue-50","rounded-lg","flex","flex-col","gap-3!"],[1,"block","text-xs","font-medium","text-gray-600","mb-1"],[1,"flex","gap-2"],[1,"cursor-pointer!","flex-1","text-sm","py-1.5","rounded-md","border","border-gray-300","transition-colors","font-medium",3,"click"],["class","flex gap-2 items-end",4,"ngIf"],["class","flex gap-2 pt-1",4,"ngIf"],[1,"w-full","text-sm","border","border-gray-300","rounded-md","px-2","py-1.5","bg-white","focus:outline-none","focus:ring-2","focus:ring-blue-400",3,"ngModelChange","ngModel","ngModelOptions"],[1,"flex","items-center","gap-1","border","border-gray-300","rounded-md","bg-white","px-2","py-1.5","focus-within:ring-2","focus-within:ring-blue-400"],["class","text-xs text-gray-400 font-mono truncate max-w-[120px] shrink-0",4,"ngIf"],["type","text","placeholder","Type predicate name",1,"text-sm","text-gray-900","w-full","bg-transparent","focus:outline-none",3,"ngModelChange","ngModel","ngModelOptions"],["class","mt-1 text-xs text-gray-400 font-mono truncate",4,"ngIf"],[1,"text-xs","text-gray-400","font-mono","truncate","max-w-[120px]","shrink-0"],[1,"mt-1","text-xs","text-gray-400","font-mono","truncate"],[1,"cursor-pointer!","flex-1","text-sm","py-1","rounded-md","border","border-gray-300","transition-colors","font-medium",3,"click"],[1,"flex","gap-2","items-end"],[1,"flex-1"],[1,"w-full",3,"filePathChange"],["type","text",1,"w-full","text-sm","border","border-gray-300","rounded-md","px-2","py-1.5","bg-white","focus:outline-none","focus:ring-2","focus:ring-blue-400",3,"ngModelChange","ngModel","ngModelOptions","placeholder"],[1,"flex","gap-2","pt-1"],[1,"cursor-pointer!","flex-1","text-sm","py-1.5","bg-blue-600","text-white","rounded-md","hover:bg-blue-700","disabled:opacity-40","disabled:cursor-not-allowed","transition-colors","font-medium",3,"click","disabled"],[1,"cursor-pointer!","flex-1","text-sm","py-1.5","border","border-gray-300","text-gray-600","rounded-md","hover:bg-gray-100","transition-colors","font-medium",3,"click"]],template:function(e,t){e&1&&(a(0,"div",0)(1,"form",1)(2,"div",2)(3,"div",3)(4,"label",4),l(5," Entity type(s) * "),a(6,"button",5),D(),a(7,"svg",6),y(8,"path",7),r()()()(),u(9,Ut,8,19)(10,Nt,5,1,"div",8),r(),fe(),a(11,"div",9),u(12,jt,4,1,"div",10),a(13,"div",11),u(14,zt,4,0,"button",12),r(),u(15,Yt,13,20,"div",13),r(),a(16,"div",14)(17,"button",15),f("click",function(){return t.cancelNewPerson()}),l(18," Cancel "),r(),a(19,"button",16),f("click",function(){return t.saveNewPerson()}),l(20," Create "),r()()()()),e&2&&(s(),d("formGroup",t.personForm),s(8),M(t.dialogData===null&&t.inputData===void 0?9:t.dialogData||t.inputData?10:-1),s(3),d("ngIf",t.properties.length>0),s(2),d("ngIf",!t.newAssociation),s(),d("ngIf",t.newAssociation),s(4),d("disabled",t.personForm.invalid))},dependencies:[K,De,Ue,Ne,Ee,Ve,Me,Ie,Fe,je,Pe,Oe,Be,G,Te,W,rt,Z],styles:["button[_ngcontent-%COMP%]{cursor:pointer}"]})};export{se as a,rt as b,Z as c,Jt as d,at as e}; diff --git a/electron/dist/frontend/browser/chunk-NUB2U5RT.js b/electron/dist/frontend/browser/chunk-NUB2U5RT.js new file mode 100644 index 00000000..f280838f --- /dev/null +++ b/electron/dist/frontend/browser/chunk-NUB2U5RT.js @@ -0,0 +1 @@ +import{d as a,e as b}from"./chunk-IL44X3BM.js";import"./chunk-D7GXM5CJ.js";export{b as CreateRessourceComponent,a as ONTOLOGY_LABELS}; diff --git a/electron/dist/frontend/browser/favicon.ico b/electron/dist/frontend/browser/favicon.ico new file mode 100644 index 00000000..57614f9c Binary files /dev/null and b/electron/dist/frontend/browser/favicon.ico differ diff --git a/electron/dist/frontend/browser/index.html b/electron/dist/frontend/browser/index.html new file mode 100644 index 00000000..25d7b692 --- /dev/null +++ b/electron/dist/frontend/browser/index.html @@ -0,0 +1,15 @@ + + + + + FieldArchive + + + + + + + + + + diff --git a/electron/dist/frontend/browser/main-RJFJSO2S.js b/electron/dist/frontend/browser/main-RJFJSO2S.js new file mode 100644 index 00000000..2edc63c8 --- /dev/null +++ b/electron/dist/frontend/browser/main-RJFJSO2S.js @@ -0,0 +1,30 @@ +import{a as Rn,c as ys,h as vs,j as An}from"./chunk-C6OTSZAM.js";import{a as Tt,b as mi,c as On,e as po}from"./chunk-IL44X3BM.js";import{$ as y,$b as St,A as Di,Aa as K,Ab as Za,Ba as Ii,Bb as Se,C as to,Ca as $a,Cb as ht,D as vt,Da as lo,Db as mo,E as Ke,Ea as q,Eb as Fi,Ec as us,F as bt,Fa as X,Fb as vn,G as io,Ga as pe,Gb as bn,Gc as ee,H as Oa,Ha as ni,Hb as nt,Hc as Tn,I as La,Ia as w,Ib as He,Ja as qa,Jb as oi,Jc as ps,K as Ri,Ka as Wa,Kb as Ja,L as je,La as Qa,Lb as es,Lc as hs,M as ue,Ma as Ka,Mb as be,N as Q,Na as he,Nb as ts,Nc as fs,O as N,Oa as f,Ob as is,Oc as gs,Pa as fn,Pb as ai,Pc as Mn,Q as J,Qa as I,Qb as ns,Qc as _s,R as Y,Ra as Ai,Rb as rs,S as Fa,Sa as W,Sb as os,Sc as di,T as ne,Ta as gn,Tc as Dn,U as no,Ua as Oi,Ub as as,Uc as Pn,V as Ce,Va as Li,Vb as ss,Vc as In,W as k,Wa as s,Wc as Mt,X as Na,Xa as l,Xb as Ct,Xc as Ue,Y as hn,Ya as g,Yc as bs,Z as mt,Za as Gt,Zb as Pe,Zc as ui,_ as Ve,_a as Ht,a as L,aa as v,ab as T,ac as xn,b as Le,ba as b,c as Ma,ca as S,cb as _,cc as kt,d as Vt,da as zt,db as h,dc as wn,e as ii,ea as ro,eb as xt,ec as Cn,f as Da,fa as oo,fb as ze,g as Yr,ga as ja,gb as ri,gc as Sn,h as Xr,ha as Va,hb as it,hc as si,i as _e,ia as se,ib as Be,ic as li,j as ve,ja as ut,jb as Ge,jc as ci,k as We,kb as wt,kc as kn,l as Fe,la as za,lb as u,lc as rt,m as z,ma as Pi,mb as j,mc as Et,n as tt,na as Ba,nb as D,o as Ra,oa as Ga,ob as _n,oc as uo,p as Pa,pa as Bt,pb as le,pc as ls,q as Zr,qa as ao,qb as ce,r as U,rb as de,s as Jr,sb as De,sc as En,t as Ne,u as Ia,ub as Ya,v as eo,vb as Re,vc as cs,wa as d,wb as yn,wc as Ni,x as Aa,xa as Ha,xb as pt,xc as ds,y as Qe,ya as Ua,yb as co,yc as ms,z as ae,za as so,zb as Xa}from"./chunk-D7GXM5CJ.js";var B="primary",Xi=Symbol("RouteTitle"),yo=class{params;constructor(t){this.params=t||{}}has(t){return Object.prototype.hasOwnProperty.call(this.params,t)}get(t){if(this.has(t)){let e=this.params[t];return Array.isArray(e)?e[0]:e}return null}getAll(t){if(this.has(t)){let e=this.params[t];return Array.isArray(e)?e:[e]}return[]}get keys(){return Object.keys(this.params)}};function qt(n){return new yo(n)}function Ms(n,t,e){let i=e.path.split("/");if(i.length>n.length||e.pathMatch==="full"&&(t.hasChildren()||i.lengthi[o]===r)}else return n===t}function Rs(n){return n.length>0?n[n.length-1]:null}function Pt(n){return Ra(n)?n:Wa(n)?Fe(Promise.resolve(n)):z(n)}var Oc={exact:Is,subset:As},Ps={exact:Lc,subset:Fc,ignored:()=>!0};function xs(n,t,e){return Oc[e.paths](n.root,t.root,e.matrixParams)&&Ps[e.queryParams](n.queryParams,t.queryParams)&&!(e.fragment==="exact"&&n.fragment!==t.fragment)}function Lc(n,t){return ot(n,t)}function Is(n,t,e){if(!Ut(n.segments,t.segments)||!Nn(n.segments,t.segments,e)||n.numberOfChildren!==t.numberOfChildren)return!1;for(let i in t.children)if(!n.children[i]||!Is(n.children[i],t.children[i],e))return!1;return!0}function Fc(n,t){return Object.keys(t).length<=Object.keys(n).length&&Object.keys(t).every(e=>Ds(n[e],t[e]))}function As(n,t,e){return Os(n,t,t.segments,e)}function Os(n,t,e,i){if(n.segments.length>e.length){let r=n.segments.slice(0,e.length);return!(!Ut(r,e)||t.hasChildren()||!Nn(r,e,i))}else if(n.segments.length===e.length){if(!Ut(n.segments,e)||!Nn(n.segments,e,i))return!1;for(let r in t.children)if(!n.children[r]||!As(n.children[r],t.children[r],i))return!1;return!0}else{let r=e.slice(0,n.segments.length),o=e.slice(n.segments.length);return!Ut(n.segments,r)||!Nn(n.segments,r,i)||!n.children[B]?!1:Os(n.children[B],t,o,i)}}function Nn(n,t,e){return t.every((i,r)=>Ps[e](n[r].parameters,i.parameters))}var st=class{root;queryParams;fragment;_queryParamMap;constructor(t=new $([],{}),e={},i=null){this.root=t,this.queryParams=e,this.fragment=i}get queryParamMap(){return this._queryParamMap??=qt(this.queryParams),this._queryParamMap}toString(){return Vc.serialize(this)}},$=class{segments;children;parent=null;constructor(t,e){this.segments=t,this.children=e,Object.values(e).forEach(i=>i.parent=this)}hasChildren(){return this.numberOfChildren>0}get numberOfChildren(){return Object.keys(this.children).length}toString(){return jn(this)}},Dt=class{path;parameters;_parameterMap;constructor(t,e){this.path=t,this.parameters=e}get parameterMap(){return this._parameterMap??=qt(this.parameters),this._parameterMap}toString(){return Fs(this)}};function Nc(n,t){return Ut(n,t)&&n.every((e,i)=>ot(e.parameters,t[i].parameters))}function Ut(n,t){return n.length!==t.length?!1:n.every((e,i)=>e.path===t[i].path)}function jc(n,t){let e=[];return Object.entries(n.children).forEach(([i,r])=>{i===B&&(e=e.concat(t(r,i)))}),Object.entries(n.children).forEach(([i,r])=>{i!==B&&(e=e.concat(t(r,i)))}),e}var Zi=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275prov=J({token:n,factory:()=>new Wt,providedIn:"root"})}return n})(),Wt=class{parse(t){let e=new xo(t);return new st(e.parseRootSegment(),e.parseQueryParams(),e.parseFragment())}serialize(t){let e=`/${ji(t.root,!0)}`,i=Gc(t.queryParams),r=typeof t.fragment=="string"?`#${zc(t.fragment)}`:"";return`${e}${i}${r}`}},Vc=new Wt;function jn(n){return n.segments.map(t=>Fs(t)).join("/")}function ji(n,t){if(!n.hasChildren())return jn(n);if(t){let e=n.children[B]?ji(n.children[B],!1):"",i=[];return Object.entries(n.children).forEach(([r,o])=>{r!==B&&i.push(`${r}:${ji(o,!1)}`)}),i.length>0?`${e}(${i.join("//")})`:e}else{let e=jc(n,(i,r)=>r===B?[ji(n.children[B],!1)]:[`${r}:${ji(i,!1)}`]);return Object.keys(n.children).length===1&&n.children[B]!=null?`${jn(n)}/${e[0]}`:`${jn(n)}/(${e.join("//")})`}}function Ls(n){return encodeURIComponent(n).replace(/%40/g,"@").replace(/%3A/gi,":").replace(/%24/g,"$").replace(/%2C/gi,",")}function Ln(n){return Ls(n).replace(/%3B/gi,";")}function zc(n){return encodeURI(n)}function bo(n){return Ls(n).replace(/\(/g,"%28").replace(/\)/g,"%29").replace(/%26/gi,"&")}function Vn(n){return decodeURIComponent(n)}function ws(n){return Vn(n.replace(/\+/g,"%20"))}function Fs(n){return`${bo(n.path)}${Bc(n.parameters)}`}function Bc(n){return Object.entries(n).map(([t,e])=>`;${bo(t)}=${bo(e)}`).join("")}function Gc(n){let t=Object.entries(n).map(([e,i])=>Array.isArray(i)?i.map(r=>`${Ln(e)}=${Ln(r)}`).join("&"):`${Ln(e)}=${Ln(i)}`).filter(e=>e);return t.length?`?${t.join("&")}`:""}var Hc=/^[^\/()?;#]+/;function ho(n){let t=n.match(Hc);return t?t[0]:""}var Uc=/^[^\/()?;=#]+/;function $c(n){let t=n.match(Uc);return t?t[0]:""}var qc=/^[^=?&#]+/;function Wc(n){let t=n.match(qc);return t?t[0]:""}var Qc=/^[^&#]+/;function Kc(n){let t=n.match(Qc);return t?t[0]:""}var xo=class{url;remaining;constructor(t){this.url=t,this.remaining=t}parseRootSegment(){return this.consumeOptional("/"),this.remaining===""||this.peekStartsWith("?")||this.peekStartsWith("#")?new $([],{}):new $([],this.parseChildren())}parseQueryParams(){let t={};if(this.consumeOptional("?"))do this.parseQueryParam(t);while(this.consumeOptional("&"));return t}parseFragment(){return this.consumeOptional("#")?decodeURIComponent(this.remaining):null}parseChildren(){if(this.remaining==="")return{};this.consumeOptional("/");let t=[];for(this.peekStartsWith("(")||t.push(this.parseSegment());this.peekStartsWith("/")&&!this.peekStartsWith("//")&&!this.peekStartsWith("/(");)this.capture("/"),t.push(this.parseSegment());let e={};this.peekStartsWith("/(")&&(this.capture("/"),e=this.parseParens(!0));let i={};return this.peekStartsWith("(")&&(i=this.parseParens(!1)),(t.length>0||Object.keys(e).length>0)&&(i[B]=new $(t,e)),i}parseSegment(){let t=ho(this.remaining);if(t===""&&this.peekStartsWith(";"))throw new N(4009,!1);return this.capture(t),new Dt(Vn(t),this.parseMatrixParams())}parseMatrixParams(){let t={};for(;this.consumeOptional(";");)this.parseParam(t);return t}parseParam(t){let e=$c(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){let r=ho(this.remaining);r&&(i=r,this.capture(i))}t[Vn(e)]=Vn(i)}parseQueryParam(t){let e=Wc(this.remaining);if(!e)return;this.capture(e);let i="";if(this.consumeOptional("=")){let a=Kc(this.remaining);a&&(i=a,this.capture(i))}let r=ws(e),o=ws(i);if(t.hasOwnProperty(r)){let a=t[r];Array.isArray(a)||(a=[a],t[r]=a),a.push(o)}else t[r]=o}parseParens(t){let e={};for(this.capture("(");!this.consumeOptional(")")&&this.remaining.length>0;){let i=ho(this.remaining),r=this.remaining[i.length];if(r!=="/"&&r!==")"&&r!==";")throw new N(4010,!1);let o;i.indexOf(":")>-1?(o=i.slice(0,i.indexOf(":")),this.capture(o),this.capture(":")):t&&(o=B);let a=this.parseChildren();e[o]=Object.keys(a).length===1?a[B]:new $([],a),this.consumeOptional("//")}return e}peekStartsWith(t){return this.remaining.startsWith(t)}consumeOptional(t){return this.peekStartsWith(t)?(this.remaining=this.remaining.substring(t.length),!0):!1}capture(t){if(!this.consumeOptional(t))throw new N(4011,!1)}};function Ns(n){return n.segments.length>0?new $([],{[B]:n}):n}function js(n){let t={};for(let[i,r]of Object.entries(n.children)){let o=js(r);if(i===B&&o.segments.length===0&&o.hasChildren())for(let[a,c]of Object.entries(o.children))t[a]=c;else(o.segments.length>0||o.hasChildren())&&(t[i]=o)}let e=new $(n.segments,t);return Yc(e)}function Yc(n){if(n.numberOfChildren===1&&n.children[B]){let t=n.children[B];return new $(n.segments.concat(t.segments),t.children)}return n}function _i(n){return n instanceof st}function Vs(n,t,e=null,i=null){let r=zs(n);return Bs(r,t,e,i)}function zs(n){let t;function e(o){let a={};for(let m of o.children){let p=e(m);a[m.outlet]=p}let c=new $(o.url,a);return o===n&&(t=c),c}let i=e(n.root),r=Ns(i);return t??r}function Bs(n,t,e,i){let r=n;for(;r.parent;)r=r.parent;if(t.length===0)return fo(r,r,r,e,i);let o=Xc(t);if(o.toRoot())return fo(r,r,new $([],{}),e,i);let a=Zc(o,r,n),c=a.processChildren?zi(a.segmentGroup,a.index,o.commands):Hs(a.segmentGroup,a.index,o.commands);return fo(r,a.segmentGroup,c,e,i)}function Bn(n){return typeof n=="object"&&n!=null&&!n.outlets&&!n.segmentPath}function Gi(n){return typeof n=="object"&&n!=null&&n.outlets}function fo(n,t,e,i,r){let o={};i&&Object.entries(i).forEach(([m,p])=>{o[m]=Array.isArray(p)?p.map(x=>`${x}`):`${p}`});let a;n===t?a=e:a=Gs(n,t,e);let c=Ns(js(a));return new st(c,o,r)}function Gs(n,t,e){let i={};return Object.entries(n.children).forEach(([r,o])=>{o===t?i[r]=e:i[r]=Gs(o,t,e)}),new $(n.segments,i)}var Gn=class{isAbsolute;numberOfDoubleDots;commands;constructor(t,e,i){if(this.isAbsolute=t,this.numberOfDoubleDots=e,this.commands=i,t&&i.length>0&&Bn(i[0]))throw new N(4003,!1);let r=i.find(Gi);if(r&&r!==Rs(i))throw new N(4004,!1)}toRoot(){return this.isAbsolute&&this.commands.length===1&&this.commands[0]=="/"}};function Xc(n){if(typeof n[0]=="string"&&n.length===1&&n[0]==="/")return new Gn(!0,0,n);let t=0,e=!1,i=n.reduce((r,o,a)=>{if(typeof o=="object"&&o!=null){if(o.outlets){let c={};return Object.entries(o.outlets).forEach(([m,p])=>{c[m]=typeof p=="string"?p.split("/"):p}),[...r,{outlets:c}]}if(o.segmentPath)return[...r,o.segmentPath]}return typeof o!="string"?[...r,o]:a===0?(o.split("/").forEach((c,m)=>{m==0&&c==="."||(m==0&&c===""?e=!0:c===".."?t++:c!=""&&r.push(c))}),r):[...r,o]},[]);return new Gn(e,t,i)}var fi=class{segmentGroup;processChildren;index;constructor(t,e,i){this.segmentGroup=t,this.processChildren=e,this.index=i}};function Zc(n,t,e){if(n.isAbsolute)return new fi(t,!0,0);if(!e)return new fi(t,!1,NaN);if(e.parent===null)return new fi(e,!0,0);let i=Bn(n.commands[0])?0:1,r=e.segments.length-1+i;return Jc(e,r,n.numberOfDoubleDots)}function Jc(n,t,e){let i=n,r=t,o=e;for(;o>r;){if(o-=r,i=i.parent,!i)throw new N(4005,!1);r=i.segments.length}return new fi(i,!1,r-o)}function ed(n){return Gi(n[0])?n[0].outlets:{[B]:n}}function Hs(n,t,e){if(n??=new $([],{}),n.segments.length===0&&n.hasChildren())return zi(n,t,e);let i=td(n,t,e),r=e.slice(i.commandIndex);if(i.match&&i.pathIndexo!==B)&&n.children[B]&&n.numberOfChildren===1&&n.children[B].segments.length===0){let o=zi(n.children[B],t,e);return new $(n.segments,o.children)}return Object.entries(i).forEach(([o,a])=>{typeof a=="string"&&(a=[a]),a!==null&&(r[o]=Hs(n.children[o],t,a))}),Object.entries(n.children).forEach(([o,a])=>{i[o]===void 0&&(r[o]=a)}),new $(n.segments,r)}}function td(n,t,e){let i=0,r=t,o={match:!1,pathIndex:0,commandIndex:0};for(;r=e.length)return o;let a=n.segments[r],c=e[i];if(Gi(c))break;let m=`${c}`,p=i0&&m===void 0)break;if(m&&p&&typeof p=="object"&&p.outlets===void 0){if(!Ss(m,p,a))return o;i+=2}else{if(!Ss(m,{},a))return o;i++}r++}return{match:!0,pathIndex:r,commandIndex:i}}function wo(n,t,e){let i=n.segments.slice(0,t),r=0;for(;r{typeof i=="string"&&(i=[i]),i!==null&&(t[e]=wo(new $([],{}),0,i))}),t}function Cs(n){let t={};return Object.entries(n).forEach(([e,i])=>t[e]=`${i}`),t}function Ss(n,t,e){return n==e.path&&ot(t,e.parameters)}var zn="imperative",fe=function(n){return n[n.NavigationStart=0]="NavigationStart",n[n.NavigationEnd=1]="NavigationEnd",n[n.NavigationCancel=2]="NavigationCancel",n[n.NavigationError=3]="NavigationError",n[n.RoutesRecognized=4]="RoutesRecognized",n[n.ResolveStart=5]="ResolveStart",n[n.ResolveEnd=6]="ResolveEnd",n[n.GuardsCheckStart=7]="GuardsCheckStart",n[n.GuardsCheckEnd=8]="GuardsCheckEnd",n[n.RouteConfigLoadStart=9]="RouteConfigLoadStart",n[n.RouteConfigLoadEnd=10]="RouteConfigLoadEnd",n[n.ChildActivationStart=11]="ChildActivationStart",n[n.ChildActivationEnd=12]="ChildActivationEnd",n[n.ActivationStart=13]="ActivationStart",n[n.ActivationEnd=14]="ActivationEnd",n[n.Scroll=15]="Scroll",n[n.NavigationSkipped=16]="NavigationSkipped",n}(fe||{}),Ae=class{id;url;constructor(t,e){this.id=t,this.url=e}},Qt=class extends Ae{type=fe.NavigationStart;navigationTrigger;restoredState;constructor(t,e,i="imperative",r=null){super(t,e),this.navigationTrigger=i,this.restoredState=r}toString(){return`NavigationStart(id: ${this.id}, url: '${this.url}')`}},ft=class extends Ae{urlAfterRedirects;type=fe.NavigationEnd;constructor(t,e,i){super(t,e),this.urlAfterRedirects=i}toString(){return`NavigationEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}')`}},ke=function(n){return n[n.Redirect=0]="Redirect",n[n.SupersededByNewNavigation=1]="SupersededByNewNavigation",n[n.NoDataFromResolver=2]="NoDataFromResolver",n[n.GuardRejected=3]="GuardRejected",n}(ke||{}),Hi=function(n){return n[n.IgnoredSameUrlNavigation=0]="IgnoredSameUrlNavigation",n[n.IgnoredByUrlHandlingStrategy=1]="IgnoredByUrlHandlingStrategy",n}(Hi||{}),at=class extends Ae{reason;code;type=fe.NavigationCancel;constructor(t,e,i,r){super(t,e),this.reason=i,this.code=r}toString(){return`NavigationCancel(id: ${this.id}, url: '${this.url}')`}},gt=class extends Ae{reason;code;type=fe.NavigationSkipped;constructor(t,e,i,r){super(t,e),this.reason=i,this.code=r}},yi=class extends Ae{error;target;type=fe.NavigationError;constructor(t,e,i,r){super(t,e),this.error=i,this.target=r}toString(){return`NavigationError(id: ${this.id}, url: '${this.url}', error: ${this.error})`}},Ui=class extends Ae{urlAfterRedirects;state;type=fe.RoutesRecognized;constructor(t,e,i,r){super(t,e),this.urlAfterRedirects=i,this.state=r}toString(){return`RoutesRecognized(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},Hn=class extends Ae{urlAfterRedirects;state;type=fe.GuardsCheckStart;constructor(t,e,i,r){super(t,e),this.urlAfterRedirects=i,this.state=r}toString(){return`GuardsCheckStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},Un=class extends Ae{urlAfterRedirects;state;shouldActivate;type=fe.GuardsCheckEnd;constructor(t,e,i,r,o){super(t,e),this.urlAfterRedirects=i,this.state=r,this.shouldActivate=o}toString(){return`GuardsCheckEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state}, shouldActivate: ${this.shouldActivate})`}},$n=class extends Ae{urlAfterRedirects;state;type=fe.ResolveStart;constructor(t,e,i,r){super(t,e),this.urlAfterRedirects=i,this.state=r}toString(){return`ResolveStart(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},qn=class extends Ae{urlAfterRedirects;state;type=fe.ResolveEnd;constructor(t,e,i,r){super(t,e),this.urlAfterRedirects=i,this.state=r}toString(){return`ResolveEnd(id: ${this.id}, url: '${this.url}', urlAfterRedirects: '${this.urlAfterRedirects}', state: ${this.state})`}},Wn=class{route;type=fe.RouteConfigLoadStart;constructor(t){this.route=t}toString(){return`RouteConfigLoadStart(path: ${this.route.path})`}},Qn=class{route;type=fe.RouteConfigLoadEnd;constructor(t){this.route=t}toString(){return`RouteConfigLoadEnd(path: ${this.route.path})`}},Kn=class{snapshot;type=fe.ChildActivationStart;constructor(t){this.snapshot=t}toString(){return`ChildActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},Yn=class{snapshot;type=fe.ChildActivationEnd;constructor(t){this.snapshot=t}toString(){return`ChildActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},Xn=class{snapshot;type=fe.ActivationStart;constructor(t){this.snapshot=t}toString(){return`ActivationStart(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}},Zn=class{snapshot;type=fe.ActivationEnd;constructor(t){this.snapshot=t}toString(){return`ActivationEnd(path: '${this.snapshot.routeConfig&&this.snapshot.routeConfig.path||""}')`}};var $i=class{},vi=class{url;navigationBehaviorOptions;constructor(t,e){this.url=t,this.navigationBehaviorOptions=e}};function nd(n,t){return n.providers&&!n._injector&&(n._injector=lo(n.providers,t,`Route: ${n.path}`)),n._injector??t}function Ye(n){return n.outlet||B}function rd(n,t){let e=n.filter(i=>Ye(i)===t);return e.push(...n.filter(i=>Ye(i)!==t)),e}function Ji(n){if(!n)return null;if(n.routeConfig?._injector)return n.routeConfig._injector;for(let t=n.parent;t;t=t.parent){let e=t.routeConfig;if(e?._loadedInjector)return e._loadedInjector;if(e?._injector)return e._injector}return null}var Jn=class{rootInjector;outlet=null;route=null;children;attachRef=null;get injector(){return Ji(this.route?.snapshot)??this.rootInjector}constructor(t){this.rootInjector=t,this.children=new wi(this.rootInjector)}},wi=(()=>{class n{rootInjector;contexts=new Map;constructor(e){this.rootInjector=e}onChildOutletCreated(e,i){let r=this.getOrCreateContext(e);r.outlet=i,this.contexts.set(e,r)}onChildOutletDestroyed(e){let i=this.getContext(e);i&&(i.outlet=null,i.attachRef=null)}onOutletDeactivated(){let e=this.contexts;return this.contexts=new Map,e}onOutletReAttached(e){this.contexts=e}getOrCreateContext(e){let i=this.getContext(e);return i||(i=new Jn(this.rootInjector),this.contexts.set(e,i)),i}getContext(e){return this.contexts.get(e)||null}static \u0275fac=function(i){return new(i||n)(Ce(hn))};static \u0275prov=J({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),er=class{_root;constructor(t){this._root=t}get root(){return this._root.value}parent(t){let e=this.pathFromRoot(t);return e.length>1?e[e.length-2]:null}children(t){let e=Co(t,this._root);return e?e.children.map(i=>i.value):[]}firstChild(t){let e=Co(t,this._root);return e&&e.children.length>0?e.children[0].value:null}siblings(t){let e=So(t,this._root);return e.length<2?[]:e[e.length-2].children.map(r=>r.value).filter(r=>r!==t)}pathFromRoot(t){return So(t,this._root).map(e=>e.value)}};function Co(n,t){if(n===t.value)return t;for(let e of t.children){let i=Co(n,e);if(i)return i}return null}function So(n,t){if(n===t.value)return[t];for(let e of t.children){let i=So(n,e);if(i.length)return i.unshift(t),i}return[]}var Ie=class{value;children;constructor(t,e){this.value=t,this.children=e}toString(){return`TreeNode(${this.value})`}};function hi(n){let t={};return n&&n.children.forEach(e=>t[e.value.outlet]=e),t}var qi=class extends er{snapshot;constructor(t,e){super(t),this.snapshot=e,Io(this,t)}toString(){return this.snapshot.toString()}};function Us(n){let t=od(n),e=new ve([new Dt("",{})]),i=new ve({}),r=new ve({}),o=new ve({}),a=new ve(""),c=new Rt(e,i,o,a,r,B,n,t.root);return c.snapshot=t.root,new qi(new Ie(c,[]),t)}function od(n){let t={},e={},i={},r="",o=new $t([],t,i,r,e,B,n,null,{});return new Wi("",new Ie(o,[]))}var Rt=class{urlSubject;paramsSubject;queryParamsSubject;fragmentSubject;dataSubject;outlet;component;snapshot;_futureSnapshot;_routerState;_paramMap;_queryParamMap;title;url;params;queryParams;fragment;data;constructor(t,e,i,r,o,a,c,m){this.urlSubject=t,this.paramsSubject=e,this.queryParamsSubject=i,this.fragmentSubject=r,this.dataSubject=o,this.outlet=a,this.component=c,this._futureSnapshot=m,this.title=this.dataSubject?.pipe(U(p=>p[Xi]))??z(void 0),this.url=t,this.params=e,this.queryParams=i,this.fragment=r,this.data=o}get routeConfig(){return this._futureSnapshot.routeConfig}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=this.params.pipe(U(t=>qt(t))),this._paramMap}get queryParamMap(){return this._queryParamMap??=this.queryParams.pipe(U(t=>qt(t))),this._queryParamMap}toString(){return this.snapshot?this.snapshot.toString():`Future(${this._futureSnapshot})`}};function tr(n,t,e="emptyOnly"){let i,{routeConfig:r}=n;return t!==null&&(e==="always"||r?.path===""||!t.component&&!t.routeConfig?.loadComponent)?i={params:L(L({},t.params),n.params),data:L(L({},t.data),n.data),resolve:L(L(L(L({},n.data),t.data),r?.data),n._resolvedData)}:i={params:L({},n.params),data:L({},n.data),resolve:L(L({},n.data),n._resolvedData??{})},r&&qs(r)&&(i.resolve[Xi]=r.title),i}var $t=class{url;params;queryParams;fragment;data;outlet;component;routeConfig;_resolve;_resolvedData;_routerState;_paramMap;_queryParamMap;get title(){return this.data?.[Xi]}constructor(t,e,i,r,o,a,c,m,p){this.url=t,this.params=e,this.queryParams=i,this.fragment=r,this.data=o,this.outlet=a,this.component=c,this.routeConfig=m,this._resolve=p}get root(){return this._routerState.root}get parent(){return this._routerState.parent(this)}get firstChild(){return this._routerState.firstChild(this)}get children(){return this._routerState.children(this)}get pathFromRoot(){return this._routerState.pathFromRoot(this)}get paramMap(){return this._paramMap??=qt(this.params),this._paramMap}get queryParamMap(){return this._queryParamMap??=qt(this.queryParams),this._queryParamMap}toString(){let t=this.url.map(i=>i.toString()).join("/"),e=this.routeConfig?this.routeConfig.path:"";return`Route(url:'${t}', path:'${e}')`}},Wi=class extends er{url;constructor(t,e){super(e),this.url=t,Io(this,e)}toString(){return $s(this._root)}};function Io(n,t){t.value._routerState=n,t.children.forEach(e=>Io(n,e))}function $s(n){let t=n.children.length>0?` { ${n.children.map($s).join(", ")} } `:"";return`${n.value}${t}`}function go(n){if(n.snapshot){let t=n.snapshot,e=n._futureSnapshot;n.snapshot=e,ot(t.queryParams,e.queryParams)||n.queryParamsSubject.next(e.queryParams),t.fragment!==e.fragment&&n.fragmentSubject.next(e.fragment),ot(t.params,e.params)||n.paramsSubject.next(e.params),Ac(t.url,e.url)||n.urlSubject.next(e.url),ot(t.data,e.data)||n.dataSubject.next(e.data)}else n.snapshot=n._futureSnapshot,n.dataSubject.next(n._futureSnapshot.data)}function ko(n,t){let e=ot(n.params,t.params)&&Nc(n.url,t.url),i=!n.parent!=!t.parent;return e&&!i&&(!n.parent||ko(n.parent,t.parent))}function qs(n){return typeof n.title=="string"||n.title===null}var Ws=new ne(""),en=(()=>{class n{activated=null;get activatedComponentRef(){return this.activated}_activatedRoute=null;name=B;activateEvents=new se;deactivateEvents=new se;attachEvents=new se;detachEvents=new se;routerOutletData=za(void 0);parentContexts=k(wi);location=k(Ii);changeDetector=k(Se);inputBinder=k(or,{optional:!0});supportsBindingToComponentInputs=!0;ngOnChanges(e){if(e.name){let{firstChange:i,previousValue:r}=e.name;if(i)return;this.isTrackedInParentContexts(r)&&(this.deactivate(),this.parentContexts.onChildOutletDestroyed(r)),this.initializeOutletWithName()}}ngOnDestroy(){this.isTrackedInParentContexts(this.name)&&this.parentContexts.onChildOutletDestroyed(this.name),this.inputBinder?.unsubscribeFromRouteData(this)}isTrackedInParentContexts(e){return this.parentContexts.getContext(e)?.outlet===this}ngOnInit(){this.initializeOutletWithName()}initializeOutletWithName(){if(this.parentContexts.onChildOutletCreated(this.name,this),this.activated)return;let e=this.parentContexts.getContext(this.name);e?.route&&(e.attachRef?this.attach(e.attachRef,e.route):this.activateWith(e.route,e.injector))}get isActivated(){return!!this.activated}get component(){if(!this.activated)throw new N(4012,!1);return this.activated.instance}get activatedRoute(){if(!this.activated)throw new N(4012,!1);return this._activatedRoute}get activatedRouteData(){return this._activatedRoute?this._activatedRoute.snapshot.data:{}}detach(){if(!this.activated)throw new N(4012,!1);this.location.detach();let e=this.activated;return this.activated=null,this._activatedRoute=null,this.detachEvents.emit(e.instance),e}attach(e,i){this.activated=e,this._activatedRoute=i,this.location.insert(e.hostView),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.attachEvents.emit(e.instance)}deactivate(){if(this.activated){let e=this.component;this.activated.destroy(),this.activated=null,this._activatedRoute=null,this.deactivateEvents.emit(e)}}activateWith(e,i){if(this.isActivated)throw new N(4013,!1);this._activatedRoute=e;let r=this.location,a=e.snapshot.component,c=this.parentContexts.getOrCreateContext(this.name).children,m=new Eo(e,c,r.injector,this.routerOutletData);this.activated=r.createComponent(a,{index:r.length,injector:m,environmentInjector:i}),this.changeDetector.markForCheck(),this.inputBinder?.bindActivatedRouteToOutletComponent(this),this.activateEvents.emit(this.activated.instance)}static \u0275fac=function(i){return new(i||n)};static \u0275dir=pe({type:n,selectors:[["router-outlet"]],inputs:{name:"name",routerOutletData:[1,"routerOutletData"]},outputs:{activateEvents:"activate",deactivateEvents:"deactivate",attachEvents:"attach",detachEvents:"detach"},exportAs:["outlet"],features:[Ve]})}return n})(),Eo=class{route;childContexts;parent;outletData;constructor(t,e,i,r){this.route=t,this.childContexts=e,this.parent=i,this.outletData=r}get(t,e){return t===Rt?this.route:t===wi?this.childContexts:t===Ws?this.outletData:this.parent.get(t,e)}},or=new ne("");var Ao=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275cmp=q({type:n,selectors:[["ng-component"]],exportAs:["emptyRouterOutlet"],decls:1,vars:0,template:function(i,r){i&1&&g(0,"router-outlet")},dependencies:[en],encapsulation:2})}return n})();function Oo(n){let t=n.children&&n.children.map(Oo),e=t?Le(L({},n),{children:t}):L({},n);return!e.component&&!e.loadComponent&&(t||e.loadChildren)&&e.outlet&&e.outlet!==B&&(e.component=Ao),e}function ad(n,t,e){let i=Qi(n,t._root,e?e._root:void 0);return new qi(i,t)}function Qi(n,t,e){if(e&&n.shouldReuseRoute(t.value,e.value.snapshot)){let i=e.value;i._futureSnapshot=t.value;let r=sd(n,t,e);return new Ie(i,r)}else{if(n.shouldAttach(t.value)){let o=n.retrieve(t.value);if(o!==null){let a=o.route;return a.value._futureSnapshot=t.value,a.children=t.children.map(c=>Qi(n,c)),a}}let i=ld(t.value),r=t.children.map(o=>Qi(n,o));return new Ie(i,r)}}function sd(n,t,e){return t.children.map(i=>{for(let r of e.children)if(n.shouldReuseRoute(i.value,r.value.snapshot))return Qi(n,i,r);return Qi(n,i)})}function ld(n){return new Rt(new ve(n.url),new ve(n.params),new ve(n.queryParams),new ve(n.fragment),new ve(n.data),n.outlet,n.component,n)}var bi=class{redirectTo;navigationBehaviorOptions;constructor(t,e){this.redirectTo=t,this.navigationBehaviorOptions=e}},Qs="ngNavigationCancelingError";function ir(n,t){let{redirectTo:e,navigationBehaviorOptions:i}=_i(t)?{redirectTo:t,navigationBehaviorOptions:void 0}:t,r=Ks(!1,ke.Redirect);return r.url=e,r.navigationBehaviorOptions=i,r}function Ks(n,t){let e=new Error(`NavigationCancelingError: ${n||""}`);return e[Qs]=!0,e.cancellationCode=t,e}function cd(n){return Ys(n)&&_i(n.url)}function Ys(n){return!!n&&n[Qs]}var dd=(n,t,e,i)=>U(r=>(new To(t,r.targetRouterState,r.currentRouterState,e,i).activate(n),r)),To=class{routeReuseStrategy;futureState;currState;forwardEvent;inputBindingEnabled;constructor(t,e,i,r,o){this.routeReuseStrategy=t,this.futureState=e,this.currState=i,this.forwardEvent=r,this.inputBindingEnabled=o}activate(t){let e=this.futureState._root,i=this.currState?this.currState._root:null;this.deactivateChildRoutes(e,i,t),go(this.futureState.root),this.activateChildRoutes(e,i,t)}deactivateChildRoutes(t,e,i){let r=hi(e);t.children.forEach(o=>{let a=o.value.outlet;this.deactivateRoutes(o,r[a],i),delete r[a]}),Object.values(r).forEach(o=>{this.deactivateRouteAndItsChildren(o,i)})}deactivateRoutes(t,e,i){let r=t.value,o=e?e.value:null;if(r===o)if(r.component){let a=i.getContext(r.outlet);a&&this.deactivateChildRoutes(t,e,a.children)}else this.deactivateChildRoutes(t,e,i);else o&&this.deactivateRouteAndItsChildren(e,i)}deactivateRouteAndItsChildren(t,e){t.value.component&&this.routeReuseStrategy.shouldDetach(t.value.snapshot)?this.detachAndStoreRouteSubtree(t,e):this.deactivateRouteAndOutlet(t,e)}detachAndStoreRouteSubtree(t,e){let i=e.getContext(t.value.outlet),r=i&&t.value.component?i.children:e,o=hi(t);for(let a of Object.values(o))this.deactivateRouteAndItsChildren(a,r);if(i&&i.outlet){let a=i.outlet.detach(),c=i.children.onOutletDeactivated();this.routeReuseStrategy.store(t.value.snapshot,{componentRef:a,route:t,contexts:c})}}deactivateRouteAndOutlet(t,e){let i=e.getContext(t.value.outlet),r=i&&t.value.component?i.children:e,o=hi(t);for(let a of Object.values(o))this.deactivateRouteAndItsChildren(a,r);i&&(i.outlet&&(i.outlet.deactivate(),i.children.onOutletDeactivated()),i.attachRef=null,i.route=null)}activateChildRoutes(t,e,i){let r=hi(e);t.children.forEach(o=>{this.activateRoutes(o,r[o.value.outlet],i),this.forwardEvent(new Zn(o.value.snapshot))}),t.children.length&&this.forwardEvent(new Yn(t.value.snapshot))}activateRoutes(t,e,i){let r=t.value,o=e?e.value:null;if(go(r),r===o)if(r.component){let a=i.getOrCreateContext(r.outlet);this.activateChildRoutes(t,e,a.children)}else this.activateChildRoutes(t,e,i);else if(r.component){let a=i.getOrCreateContext(r.outlet);if(this.routeReuseStrategy.shouldAttach(r.snapshot)){let c=this.routeReuseStrategy.retrieve(r.snapshot);this.routeReuseStrategy.store(r.snapshot,null),a.children.onOutletReAttached(c.contexts),a.attachRef=c.componentRef,a.route=c.route.value,a.outlet&&a.outlet.attach(c.componentRef,c.route.value),go(c.route.value),this.activateChildRoutes(t,null,a.children)}else a.attachRef=null,a.route=r,a.outlet&&a.outlet.activateWith(r,a.injector),this.activateChildRoutes(t,null,a.children)}else this.activateChildRoutes(t,null,i)}},nr=class{path;route;constructor(t){this.path=t,this.route=this.path[this.path.length-1]}},gi=class{component;route;constructor(t,e){this.component=t,this.route=e}};function md(n,t,e){let i=n._root,r=t?t._root:null;return Vi(i,r,e,[i.value])}function ud(n){let t=n.routeConfig?n.routeConfig.canActivateChild:null;return!t||t.length===0?null:{node:n,guards:t}}function Ci(n,t){let e=Symbol(),i=t.get(n,e);return i===e?typeof n=="function"&&!Fa(n)?n:t.get(n):i}function Vi(n,t,e,i,r={canDeactivateChecks:[],canActivateChecks:[]}){let o=hi(t);return n.children.forEach(a=>{pd(a,o[a.value.outlet],e,i.concat([a.value]),r),delete o[a.value.outlet]}),Object.entries(o).forEach(([a,c])=>Bi(c,e.getContext(a),r)),r}function pd(n,t,e,i,r={canDeactivateChecks:[],canActivateChecks:[]}){let o=n.value,a=t?t.value:null,c=e?e.getContext(n.value.outlet):null;if(a&&o.routeConfig===a.routeConfig){let m=hd(a,o,o.routeConfig.runGuardsAndResolvers);m?r.canActivateChecks.push(new nr(i)):(o.data=a.data,o._resolvedData=a._resolvedData),o.component?Vi(n,t,c?c.children:null,i,r):Vi(n,t,e,i,r),m&&c&&c.outlet&&c.outlet.isActivated&&r.canDeactivateChecks.push(new gi(c.outlet.component,a))}else a&&Bi(t,c,r),r.canActivateChecks.push(new nr(i)),o.component?Vi(n,null,c?c.children:null,i,r):Vi(n,null,e,i,r);return r}function hd(n,t,e){if(typeof e=="function")return e(n,t);switch(e){case"pathParamsChange":return!Ut(n.url,t.url);case"pathParamsOrQueryParamsChange":return!Ut(n.url,t.url)||!ot(n.queryParams,t.queryParams);case"always":return!0;case"paramsOrQueryParamsChange":return!ko(n,t)||!ot(n.queryParams,t.queryParams);case"paramsChange":default:return!ko(n,t)}}function Bi(n,t,e){let i=hi(n),r=n.value;Object.entries(i).forEach(([o,a])=>{r.component?t?Bi(a,t.children.getContext(o),e):Bi(a,null,e):Bi(a,t,e)}),r.component?t&&t.outlet&&t.outlet.isActivated?e.canDeactivateChecks.push(new gi(t.outlet.component,r)):e.canDeactivateChecks.push(new gi(null,r)):e.canDeactivateChecks.push(new gi(null,r))}function tn(n){return typeof n=="function"}function fd(n){return typeof n=="boolean"}function gd(n){return n&&tn(n.canLoad)}function _d(n){return n&&tn(n.canActivate)}function yd(n){return n&&tn(n.canActivateChild)}function vd(n){return n&&tn(n.canDeactivate)}function bd(n){return n&&tn(n.canMatch)}function Xs(n){return n instanceof Pa||n?.name==="EmptyError"}var Fn=Symbol("INITIAL_VALUE");function xi(){return je(n=>Jr(n.map(t=>t.pipe(vt(1),Ri(Fn)))).pipe(U(t=>{for(let e of t)if(e!==!0){if(e===Fn)return Fn;if(e===!1||xd(e))return e}return!0}),Qe(t=>t!==Fn),vt(1)))}function xd(n){return _i(n)||n instanceof bi}function wd(n,t){return Ne(e=>{let{targetSnapshot:i,currentSnapshot:r,guards:{canActivateChecks:o,canDeactivateChecks:a}}=e;return a.length===0&&o.length===0?z(Le(L({},e),{guardsResult:!0})):Cd(a,i,r,n).pipe(Ne(c=>c&&fd(c)?Sd(i,o,n,t):z(c)),U(c=>Le(L({},e),{guardsResult:c})))})}function Cd(n,t,e,i){return Fe(n).pipe(Ne(r=>Dd(r.component,r.route,e,t,i)),bt(r=>r!==!0,!0))}function Sd(n,t,e,i){return Fe(t).pipe(Di(r=>Ia(Ed(r.route.parent,i),kd(r.route,i),Md(n,r.path,e),Td(n,r.route,e))),bt(r=>r!==!0,!0))}function kd(n,t){return n!==null&&t&&t(new Xn(n)),z(!0)}function Ed(n,t){return n!==null&&t&&t(new Kn(n)),z(!0)}function Td(n,t,e){let i=t.routeConfig?t.routeConfig.canActivate:null;if(!i||i.length===0)return z(!0);let r=i.map(o=>eo(()=>{let a=Ji(t)??e,c=Ci(o,a),m=_d(c)?c.canActivate(t,n):mt(a,()=>c(t,n));return Pt(m).pipe(bt())}));return z(r).pipe(xi())}function Md(n,t,e){let i=t[t.length-1],o=t.slice(0,t.length-1).reverse().map(a=>ud(a)).filter(a=>a!==null).map(a=>eo(()=>{let c=a.guards.map(m=>{let p=Ji(a.node)??e,x=Ci(m,p),C=yd(x)?x.canActivateChild(i,n):mt(p,()=>x(i,n));return Pt(C).pipe(bt())});return z(c).pipe(xi())}));return z(o).pipe(xi())}function Dd(n,t,e,i,r){let o=t&&t.routeConfig?t.routeConfig.canDeactivate:null;if(!o||o.length===0)return z(!0);let a=o.map(c=>{let m=Ji(t)??r,p=Ci(c,m),x=vd(p)?p.canDeactivate(n,t,e,i):mt(m,()=>p(n,t,e,i));return Pt(x).pipe(bt())});return z(a).pipe(xi())}function Rd(n,t,e,i){let r=t.canLoad;if(r===void 0||r.length===0)return z(!0);let o=r.map(a=>{let c=Ci(a,n),m=gd(c)?c.canLoad(t,e):mt(n,()=>c(t,e));return Pt(m)});return z(o).pipe(xi(),Zs(i))}function Zs(n){return Da(Q(t=>{if(typeof t!="boolean")throw ir(n,t)}),U(t=>t===!0))}function Pd(n,t,e,i){let r=t.canMatch;if(!r||r.length===0)return z(!0);let o=r.map(a=>{let c=Ci(a,n),m=bd(c)?c.canMatch(t,e):mt(n,()=>c(t,e));return Pt(m)});return z(o).pipe(xi(),Zs(i))}var Ki=class{segmentGroup;constructor(t){this.segmentGroup=t||null}},Yi=class extends Error{urlTree;constructor(t){super(),this.urlTree=t}};function pi(n){return tt(new Ki(n))}function Id(n){return tt(new N(4e3,!1))}function Ad(n){return tt(Ks(!1,ke.GuardRejected))}var Mo=class{urlSerializer;urlTree;constructor(t,e){this.urlSerializer=t,this.urlTree=e}lineralizeSegments(t,e){let i=[],r=e.root;for(;;){if(i=i.concat(r.segments),r.numberOfChildren===0)return z(i);if(r.numberOfChildren>1||!r.children[B])return Id(`${t.redirectTo}`);r=r.children[B]}}applyRedirectCommands(t,e,i,r,o){if(typeof e!="string"){let c=e,{queryParams:m,fragment:p,routeConfig:x,url:C,outlet:R,params:P,data:E,title:A}=r,G=mt(o,()=>c({params:P,data:E,queryParams:m,fragment:p,routeConfig:x,url:C,outlet:R,title:A}));if(G instanceof st)throw new Yi(G);e=G}let a=this.applyRedirectCreateUrlTree(e,this.urlSerializer.parse(e),t,i);if(e[0]==="/")throw new Yi(a);return a}applyRedirectCreateUrlTree(t,e,i,r){let o=this.createSegmentGroup(t,e.root,i,r);return new st(o,this.createQueryParams(e.queryParams,this.urlTree.queryParams),e.fragment)}createQueryParams(t,e){let i={};return Object.entries(t).forEach(([r,o])=>{if(typeof o=="string"&&o[0]===":"){let c=o.substring(1);i[r]=e[c]}else i[r]=o}),i}createSegmentGroup(t,e,i,r){let o=this.createSegments(t,e.segments,i,r),a={};return Object.entries(e.children).forEach(([c,m])=>{a[c]=this.createSegmentGroup(t,m,i,r)}),new $(o,a)}createSegments(t,e,i,r){return e.map(o=>o.path[0]===":"?this.findPosParam(t,o,r):this.findOrReturn(o,i))}findPosParam(t,e,i){let r=i[e.path.substring(1)];if(!r)throw new N(4001,!1);return r}findOrReturn(t,e){let i=0;for(let r of e){if(r.path===t.path)return e.splice(i),r;i++}return t}},Do={matched:!1,consumedSegments:[],remainingSegments:[],parameters:{},positionalParamSegments:{}};function Od(n,t,e,i,r){let o=Js(n,t,e);return o.matched?(i=nd(t,i),Pd(i,t,e,r).pipe(U(a=>a===!0?o:L({},Do)))):z(o)}function Js(n,t,e){if(t.path==="**")return Ld(e);if(t.path==="")return t.pathMatch==="full"&&(n.hasChildren()||e.length>0)?L({},Do):{matched:!0,consumedSegments:[],remainingSegments:e,parameters:{},positionalParamSegments:{}};let r=(t.matcher||Ms)(e,n,t);if(!r)return L({},Do);let o={};Object.entries(r.posParams??{}).forEach(([c,m])=>{o[c]=m.path});let a=r.consumed.length>0?L(L({},o),r.consumed[r.consumed.length-1].parameters):o;return{matched:!0,consumedSegments:r.consumed,remainingSegments:e.slice(r.consumed.length),parameters:a,positionalParamSegments:r.posParams??{}}}function Ld(n){return{matched:!0,parameters:n.length>0?Rs(n).parameters:{},consumedSegments:n,remainingSegments:[],positionalParamSegments:{}}}function ks(n,t,e,i){return e.length>0&&jd(n,e,i)?{segmentGroup:new $(t,Nd(i,new $(e,n.children))),slicedSegments:[]}:e.length===0&&Vd(n,e,i)?{segmentGroup:new $(n.segments,Fd(n,e,i,n.children)),slicedSegments:e}:{segmentGroup:new $(n.segments,n.children),slicedSegments:e}}function Fd(n,t,e,i){let r={};for(let o of e)if(ar(n,t,o)&&!i[Ye(o)]){let a=new $([],{});r[Ye(o)]=a}return L(L({},i),r)}function Nd(n,t){let e={};e[B]=t;for(let i of n)if(i.path===""&&Ye(i)!==B){let r=new $([],{});e[Ye(i)]=r}return e}function jd(n,t,e){return e.some(i=>ar(n,t,i)&&Ye(i)!==B)}function Vd(n,t,e){return e.some(i=>ar(n,t,i))}function ar(n,t,e){return(n.hasChildren()||t.length>0)&&e.pathMatch==="full"?!1:e.path===""}function zd(n,t,e){return t.length===0&&!n.children[e]}var Ro=class{};function Bd(n,t,e,i,r,o,a="emptyOnly"){return new Po(n,t,e,i,r,a,o).recognize()}var Gd=31,Po=class{injector;configLoader;rootComponentType;config;urlTree;paramsInheritanceStrategy;urlSerializer;applyRedirects;absoluteRedirectCount=0;allowRedirects=!0;constructor(t,e,i,r,o,a,c){this.injector=t,this.configLoader=e,this.rootComponentType=i,this.config=r,this.urlTree=o,this.paramsInheritanceStrategy=a,this.urlSerializer=c,this.applyRedirects=new Mo(this.urlSerializer,this.urlTree)}noMatchError(t){return new N(4002,`'${t.segmentGroup}'`)}recognize(){let t=ks(this.urlTree.root,[],[],this.config).segmentGroup;return this.match(t).pipe(U(({children:e,rootSnapshot:i})=>{let r=new Ie(i,e),o=new Wi("",r),a=Vs(i,[],this.urlTree.queryParams,this.urlTree.fragment);return a.queryParams=this.urlTree.queryParams,o.url=this.urlSerializer.serialize(a),{state:o,tree:a}}))}match(t){let e=new $t([],Object.freeze({}),Object.freeze(L({},this.urlTree.queryParams)),this.urlTree.fragment,Object.freeze({}),B,this.rootComponentType,null,{});return this.processSegmentGroup(this.injector,this.config,t,B,e).pipe(U(i=>({children:i,rootSnapshot:e})),ae(i=>{if(i instanceof Yi)return this.urlTree=i.urlTree,this.match(i.urlTree.root);throw i instanceof Ki?this.noMatchError(i):i}))}processSegmentGroup(t,e,i,r,o){return i.segments.length===0&&i.hasChildren()?this.processChildren(t,e,i,o):this.processSegment(t,e,i,i.segments,r,!0,o).pipe(U(a=>a instanceof Ie?[a]:[]))}processChildren(t,e,i,r){let o=[];for(let a of Object.keys(i.children))a==="primary"?o.unshift(a):o.push(a);return Fe(o).pipe(Di(a=>{let c=i.children[a],m=rd(e,a);return this.processSegmentGroup(t,m,c,a,r)}),La((a,c)=>(a.push(...c),a)),to(null),Oa(),Ne(a=>{if(a===null)return pi(i);let c=el(a);return Hd(c),z(c)}))}processSegment(t,e,i,r,o,a,c){return Fe(e).pipe(Di(m=>this.processSegmentAgainstRoute(m._injector??t,e,m,i,r,o,a,c).pipe(ae(p=>{if(p instanceof Ki)return z(null);throw p}))),bt(m=>!!m),ae(m=>{if(Xs(m))return zd(i,r,o)?z(new Ro):pi(i);throw m}))}processSegmentAgainstRoute(t,e,i,r,o,a,c,m){return Ye(i)!==a&&(a===B||!ar(r,o,i))?pi(r):i.redirectTo===void 0?this.matchSegmentAgainstRoute(t,r,i,o,a,m):this.allowRedirects&&c?this.expandSegmentAgainstRouteUsingRedirect(t,r,e,i,o,a,m):pi(r)}expandSegmentAgainstRouteUsingRedirect(t,e,i,r,o,a,c){let{matched:m,parameters:p,consumedSegments:x,positionalParamSegments:C,remainingSegments:R}=Js(e,r,o);if(!m)return pi(e);typeof r.redirectTo=="string"&&r.redirectTo[0]==="/"&&(this.absoluteRedirectCount++,this.absoluteRedirectCount>Gd&&(this.allowRedirects=!1));let P=new $t(o,p,Object.freeze(L({},this.urlTree.queryParams)),this.urlTree.fragment,Es(r),Ye(r),r.component??r._loadedComponent??null,r,Ts(r)),E=tr(P,c,this.paramsInheritanceStrategy);P.params=Object.freeze(E.params),P.data=Object.freeze(E.data);let A=this.applyRedirects.applyRedirectCommands(x,r.redirectTo,C,P,t);return this.applyRedirects.lineralizeSegments(r,A).pipe(Ne(G=>this.processSegment(t,i,e,G.concat(R),a,!1,c)))}matchSegmentAgainstRoute(t,e,i,r,o,a){let c=Od(e,i,r,t,this.urlSerializer);return i.path==="**"&&(e.children={}),c.pipe(je(m=>m.matched?(t=i._injector??t,this.getChildConfig(t,i,r).pipe(je(({routes:p})=>{let x=i._loadedInjector??t,{parameters:C,consumedSegments:R,remainingSegments:P}=m,E=new $t(R,C,Object.freeze(L({},this.urlTree.queryParams)),this.urlTree.fragment,Es(i),Ye(i),i.component??i._loadedComponent??null,i,Ts(i)),A=tr(E,a,this.paramsInheritanceStrategy);E.params=Object.freeze(A.params),E.data=Object.freeze(A.data);let{segmentGroup:G,slicedSegments:te}=ks(e,R,P,p);if(te.length===0&&G.hasChildren())return this.processChildren(x,p,G,E).pipe(U(oe=>new Ie(E,oe)));if(p.length===0&&te.length===0)return z(new Ie(E,[]));let re=Ye(i)===o;return this.processSegment(x,p,G,te,re?B:o,!0,E).pipe(U(oe=>new Ie(E,oe instanceof Ie?[oe]:[])))}))):pi(e)))}getChildConfig(t,e,i){return e.children?z({routes:e.children,injector:t}):e.loadChildren?e._loadedRoutes!==void 0?z({routes:e._loadedRoutes,injector:e._loadedInjector}):Rd(t,e,i,this.urlSerializer).pipe(Ne(r=>r?this.configLoader.loadChildren(t,e).pipe(Q(o=>{e._loadedRoutes=o.routes,e._loadedInjector=o.injector})):Ad(e))):z({routes:[],injector:t})}};function Hd(n){n.sort((t,e)=>t.value.outlet===B?-1:e.value.outlet===B?1:t.value.outlet.localeCompare(e.value.outlet))}function Ud(n){let t=n.value.routeConfig;return t&&t.path===""}function el(n){let t=[],e=new Set;for(let i of n){if(!Ud(i)){t.push(i);continue}let r=t.find(o=>i.value.routeConfig===o.value.routeConfig);r!==void 0?(r.children.push(...i.children),e.add(r)):t.push(i)}for(let i of e){let r=el(i.children);t.push(new Ie(i.value,r))}return t.filter(i=>!e.has(i))}function Es(n){return n.data||{}}function Ts(n){return n.resolve||{}}function $d(n,t,e,i,r,o){return Ne(a=>Bd(n,t,e,i,a.extractedUrl,r,o).pipe(U(({state:c,tree:m})=>Le(L({},a),{targetSnapshot:c,urlAfterRedirects:m}))))}function qd(n,t){return Ne(e=>{let{targetSnapshot:i,guards:{canActivateChecks:r}}=e;if(!r.length)return z(e);let o=new Set(r.map(m=>m.route)),a=new Set;for(let m of o)if(!a.has(m))for(let p of tl(m))a.add(p);let c=0;return Fe(a).pipe(Di(m=>o.has(m)?Wd(m,i,n,t):(m.data=tr(m,m.parent,n).resolve,z(void 0))),Q(()=>c++),io(1),Ne(m=>c===a.size?z(e):We))})}function tl(n){let t=n.children.map(e=>tl(e)).flat();return[n,...t]}function Wd(n,t,e,i){let r=n.routeConfig,o=n._resolve;return r?.title!==void 0&&!qs(r)&&(o[Xi]=r.title),Qd(o,n,t,i).pipe(U(a=>(n._resolvedData=a,n.data=tr(n,n.parent,e).resolve,null)))}function Qd(n,t,e,i){let r=vo(n);if(r.length===0)return z({});let o={};return Fe(r).pipe(Ne(a=>Kd(n[a],t,e,i).pipe(bt(),Q(c=>{if(c instanceof bi)throw ir(new Wt,c);o[a]=c}))),io(1),U(()=>o),ae(a=>Xs(a)?We:tt(a)))}function Kd(n,t,e,i){let r=Ji(t)??i,o=Ci(n,r),a=o.resolve?o.resolve(t,e):mt(r,()=>o(t,e));return Pt(a)}function _o(n){return je(t=>{let e=n(t);return e?Fe(e).pipe(U(()=>t)):z(t)})}var Lo=(()=>{class n{buildTitle(e){let i,r=e.root;for(;r!==void 0;)i=this.getResolvedTitleForRoute(r)??i,r=r.children.find(o=>o.outlet===B);return i}getResolvedTitleForRoute(e){return e.data[Xi]}static \u0275fac=function(i){return new(i||n)};static \u0275prov=J({token:n,factory:()=>k(il),providedIn:"root"})}return n})(),il=(()=>{class n extends Lo{title;constructor(e){super(),this.title=e}updateTitle(e){let i=this.buildTitle(e);i!==void 0&&this.title.setTitle(i)}static \u0275fac=function(i){return new(i||n)(Ce(os))};static \u0275prov=J({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),nn=new ne("",{providedIn:"root",factory:()=>({})}),rn=new ne(""),nl=(()=>{class n{componentLoaders=new WeakMap;childrenLoaders=new WeakMap;onLoadStartListener;onLoadEndListener;compiler=k(Xa);loadComponent(e){if(this.componentLoaders.get(e))return this.componentLoaders.get(e);if(e._loadedComponent)return z(e._loadedComponent);this.onLoadStartListener&&this.onLoadStartListener(e);let i=Pt(e.loadComponent()).pipe(U(ol),Q(o=>{this.onLoadEndListener&&this.onLoadEndListener(e),e._loadedComponent=o}),Ke(()=>{this.componentLoaders.delete(e)})),r=new Xr(i,()=>new _e).pipe(Yr());return this.componentLoaders.set(e,r),r}loadChildren(e,i){if(this.childrenLoaders.get(i))return this.childrenLoaders.get(i);if(i._loadedRoutes)return z({routes:i._loadedRoutes,injector:i._loadedInjector});this.onLoadStartListener&&this.onLoadStartListener(i);let o=rl(i,this.compiler,e,this.onLoadEndListener).pipe(Ke(()=>{this.childrenLoaders.delete(i)})),a=new Xr(o,()=>new _e).pipe(Yr());return this.childrenLoaders.set(i,a),a}static \u0275fac=function(i){return new(i||n)};static \u0275prov=J({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function rl(n,t,e,i){return Pt(n.loadChildren()).pipe(U(ol),Ne(r=>r instanceof $a||Array.isArray(r)?z(r):Fe(t.compileModuleAsync(r))),U(r=>{i&&i(n);let o,a,c=!1;return Array.isArray(r)?(a=r,c=!0):(o=r.create(e).injector,a=o.get(rn,[],{optional:!0,self:!0}).flat()),{routes:a.map(Oo),injector:o}}))}function Yd(n){return n&&typeof n=="object"&&"default"in n}function ol(n){return Yd(n)?n.default:n}var sr=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275prov=J({token:n,factory:()=>k(Xd),providedIn:"root"})}return n})(),Xd=(()=>{class n{shouldProcessUrl(e){return!0}extract(e){return e}merge(e,i){return e}static \u0275fac=function(i){return new(i||n)};static \u0275prov=J({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),al=new ne("");var sl=new ne(""),ll=(()=>{class n{currentNavigation=null;currentTransition=null;lastSuccessfulNavigation=null;events=new _e;transitionAbortSubject=new _e;configLoader=k(nl);environmentInjector=k(hn);destroyRef=k(ja);urlSerializer=k(Zi);rootContexts=k(wi);location=k(vn);inputBindingEnabled=k(or,{optional:!0})!==null;titleStrategy=k(Lo);options=k(nn,{optional:!0})||{};paramsInheritanceStrategy=this.options.paramsInheritanceStrategy||"emptyOnly";urlHandlingStrategy=k(sr);createViewTransition=k(al,{optional:!0});navigationErrorHandler=k(sl,{optional:!0});navigationId=0;get hasRequestedNavigation(){return this.navigationId!==0}transitions;afterPreactivation=()=>z(void 0);rootComponentType=null;destroyed=!1;constructor(){let e=r=>this.events.next(new Wn(r)),i=r=>this.events.next(new Qn(r));this.configLoader.onLoadEndListener=i,this.configLoader.onLoadStartListener=e,this.destroyRef.onDestroy(()=>{this.destroyed=!0})}complete(){this.transitions?.complete()}handleNavigationRequest(e){let i=++this.navigationId;this.transitions?.next(Le(L({},e),{extractedUrl:this.urlHandlingStrategy.extract(e.rawUrl),targetSnapshot:null,targetRouterState:null,guards:{canActivateChecks:[],canDeactivateChecks:[]},guardsResult:null,id:i}))}setupNavigations(e){return this.transitions=new ve(null),this.transitions.pipe(Qe(i=>i!==null),je(i=>{let r=!1,o=!1;return z(i).pipe(je(a=>{if(this.navigationId>i.id)return this.cancelNavigationTransition(i,"",ke.SupersededByNewNavigation),We;this.currentTransition=i,this.currentNavigation={id:a.id,initialUrl:a.rawUrl,extractedUrl:a.extractedUrl,targetBrowserUrl:typeof a.extras.browserUrl=="string"?this.urlSerializer.parse(a.extras.browserUrl):a.extras.browserUrl,trigger:a.source,extras:a.extras,previousNavigation:this.lastSuccessfulNavigation?Le(L({},this.lastSuccessfulNavigation),{previousNavigation:null}):null};let c=!e.navigated||this.isUpdatingInternalState()||this.isUpdatedBrowserUrl(),m=a.extras.onSameUrlNavigation??e.onSameUrlNavigation;if(!c&&m!=="reload"){let p="";return this.events.next(new gt(a.id,this.urlSerializer.serialize(a.rawUrl),p,Hi.IgnoredSameUrlNavigation)),a.resolve(!1),We}if(this.urlHandlingStrategy.shouldProcessUrl(a.rawUrl))return z(a).pipe(je(p=>(this.events.next(new Qt(p.id,this.urlSerializer.serialize(p.extractedUrl),p.source,p.restoredState)),p.id!==this.navigationId?We:Promise.resolve(p))),$d(this.environmentInjector,this.configLoader,this.rootComponentType,e.config,this.urlSerializer,this.paramsInheritanceStrategy),Q(p=>{i.targetSnapshot=p.targetSnapshot,i.urlAfterRedirects=p.urlAfterRedirects,this.currentNavigation=Le(L({},this.currentNavigation),{finalUrl:p.urlAfterRedirects});let x=new Ui(p.id,this.urlSerializer.serialize(p.extractedUrl),this.urlSerializer.serialize(p.urlAfterRedirects),p.targetSnapshot);this.events.next(x)}));if(c&&this.urlHandlingStrategy.shouldProcessUrl(a.currentRawUrl)){let{id:p,extractedUrl:x,source:C,restoredState:R,extras:P}=a,E=new Qt(p,this.urlSerializer.serialize(x),C,R);this.events.next(E);let A=Us(this.rootComponentType).snapshot;return this.currentTransition=i=Le(L({},a),{targetSnapshot:A,urlAfterRedirects:x,extras:Le(L({},P),{skipLocationChange:!1,replaceUrl:!1})}),this.currentNavigation.finalUrl=x,z(i)}else{let p="";return this.events.next(new gt(a.id,this.urlSerializer.serialize(a.extractedUrl),p,Hi.IgnoredByUrlHandlingStrategy)),a.resolve(!1),We}}),Q(a=>{let c=new Hn(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot);this.events.next(c)}),U(a=>(this.currentTransition=i=Le(L({},a),{guards:md(a.targetSnapshot,a.currentSnapshot,this.rootContexts)}),i)),wd(this.environmentInjector,a=>this.events.next(a)),Q(a=>{if(i.guardsResult=a.guardsResult,a.guardsResult&&typeof a.guardsResult!="boolean")throw ir(this.urlSerializer,a.guardsResult);let c=new Un(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects),a.targetSnapshot,!!a.guardsResult);this.events.next(c)}),Qe(a=>a.guardsResult?!0:(this.cancelNavigationTransition(a,"",ke.GuardRejected),!1)),_o(a=>{if(a.guards.canActivateChecks.length!==0)return z(a).pipe(Q(c=>{let m=new $n(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);this.events.next(m)}),je(c=>{let m=!1;return z(c).pipe(qd(this.paramsInheritanceStrategy,this.environmentInjector),Q({next:()=>m=!0,complete:()=>{m||this.cancelNavigationTransition(c,"",ke.NoDataFromResolver)}}))}),Q(c=>{let m=new qn(c.id,this.urlSerializer.serialize(c.extractedUrl),this.urlSerializer.serialize(c.urlAfterRedirects),c.targetSnapshot);this.events.next(m)}))}),_o(a=>{let c=m=>{let p=[];m.routeConfig?.loadComponent&&!m.routeConfig._loadedComponent&&p.push(this.configLoader.loadComponent(m.routeConfig).pipe(Q(x=>{m.component=x}),U(()=>{})));for(let x of m.children)p.push(...c(x));return p};return Jr(c(a.targetSnapshot.root)).pipe(to(null),vt(1))}),_o(()=>this.afterPreactivation()),je(()=>{let{currentSnapshot:a,targetSnapshot:c}=i,m=this.createViewTransition?.(this.environmentInjector,a.root,c.root);return m?Fe(m).pipe(U(()=>i)):z(i)}),U(a=>{let c=ad(e.routeReuseStrategy,a.targetSnapshot,a.currentRouterState);return this.currentTransition=i=Le(L({},a),{targetRouterState:c}),this.currentNavigation.targetRouterState=c,i}),Q(()=>{this.events.next(new $i)}),dd(this.rootContexts,e.routeReuseStrategy,a=>this.events.next(a),this.inputBindingEnabled),vt(1),Q({next:a=>{r=!0,this.lastSuccessfulNavigation=this.currentNavigation,this.events.next(new ft(a.id,this.urlSerializer.serialize(a.extractedUrl),this.urlSerializer.serialize(a.urlAfterRedirects))),this.titleStrategy?.updateTitle(a.targetRouterState.snapshot),a.resolve(!0)},complete:()=>{r=!0}}),ue(this.transitionAbortSubject.pipe(Q(a=>{throw a}))),Ke(()=>{!r&&!o&&this.cancelNavigationTransition(i,"",ke.SupersededByNewNavigation),this.currentTransition?.id===i.id&&(this.currentNavigation=null,this.currentTransition=null)}),ae(a=>{if(this.destroyed)return i.resolve(!1),We;if(o=!0,Ys(a))this.events.next(new at(i.id,this.urlSerializer.serialize(i.extractedUrl),a.message,a.cancellationCode)),cd(a)?this.events.next(new vi(a.url,a.navigationBehaviorOptions)):i.resolve(!1);else{let c=new yi(i.id,this.urlSerializer.serialize(i.extractedUrl),a,i.targetSnapshot??void 0);try{let m=mt(this.environmentInjector,()=>this.navigationErrorHandler?.(c));if(m instanceof bi){let{message:p,cancellationCode:x}=ir(this.urlSerializer,m);this.events.next(new at(i.id,this.urlSerializer.serialize(i.extractedUrl),p,x)),this.events.next(new vi(m.redirectTo,m.navigationBehaviorOptions))}else throw this.events.next(c),a}catch(m){this.options.resolveNavigationPromiseOnError?i.resolve(!1):i.reject(m)}}return We}))}))}cancelNavigationTransition(e,i,r){let o=new at(e.id,this.urlSerializer.serialize(e.extractedUrl),i,r);this.events.next(o),e.resolve(!1)}isUpdatingInternalState(){return this.currentTransition?.extractedUrl.toString()!==this.currentTransition?.currentUrlTree.toString()}isUpdatedBrowserUrl(){let e=this.urlHandlingStrategy.extract(this.urlSerializer.parse(this.location.path(!0))),i=this.currentNavigation?.targetBrowserUrl??this.currentNavigation?.extractedUrl;return e.toString()!==i?.toString()&&!this.currentNavigation?.extras.skipLocationChange}static \u0275fac=function(i){return new(i||n)};static \u0275prov=J({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function Zd(n){return n!==zn}var cl=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275prov=J({token:n,factory:()=>k(Jd),providedIn:"root"})}return n})(),rr=class{shouldDetach(t){return!1}store(t,e){}shouldAttach(t){return!1}retrieve(t){return null}shouldReuseRoute(t,e){return t.routeConfig===e.routeConfig}},Jd=(()=>{class n extends rr{static \u0275fac=(()=>{let e;return function(r){return(e||(e=zt(n)))(r||n)}})();static \u0275prov=J({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})(),dl=(()=>{class n{urlSerializer=k(Zi);options=k(nn,{optional:!0})||{};canceledNavigationResolution=this.options.canceledNavigationResolution||"replace";location=k(vn);urlHandlingStrategy=k(sr);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";currentUrlTree=new st;getCurrentUrlTree(){return this.currentUrlTree}rawUrlTree=this.currentUrlTree;getRawUrlTree(){return this.rawUrlTree}createBrowserPath({finalUrl:e,initialUrl:i,targetBrowserUrl:r}){let o=e!==void 0?this.urlHandlingStrategy.merge(e,i):i,a=r??o;return a instanceof st?this.urlSerializer.serialize(a):a}commitTransition({targetRouterState:e,finalUrl:i,initialUrl:r}){i&&e?(this.currentUrlTree=i,this.rawUrlTree=this.urlHandlingStrategy.merge(i,r),this.routerState=e):this.rawUrlTree=r}routerState=Us(null);getRouterState(){return this.routerState}stateMemento=this.createStateMemento();updateStateMemento(){this.stateMemento=this.createStateMemento()}createStateMemento(){return{rawUrlTree:this.rawUrlTree,currentUrlTree:this.currentUrlTree,routerState:this.routerState}}resetInternalState({finalUrl:e}){this.routerState=this.stateMemento.routerState,this.currentUrlTree=this.stateMemento.currentUrlTree,this.rawUrlTree=this.urlHandlingStrategy.merge(this.currentUrlTree,e??this.rawUrlTree)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=J({token:n,factory:()=>k(em),providedIn:"root"})}return n})(),em=(()=>{class n extends dl{currentPageId=0;lastSuccessfulId=-1;restoredState(){return this.location.getState()}get browserPageId(){return this.canceledNavigationResolution!=="computed"?this.currentPageId:this.restoredState()?.\u0275routerPageId??this.currentPageId}registerNonRouterCurrentEntryChangeListener(e){return this.location.subscribe(i=>{i.type==="popstate"&&setTimeout(()=>{e(i.url,i.state,"popstate")})})}handleRouterEvent(e,i){e instanceof Qt?this.updateStateMemento():e instanceof gt?this.commitTransition(i):e instanceof Ui?this.urlUpdateStrategy==="eager"&&(i.extras.skipLocationChange||this.setBrowserUrl(this.createBrowserPath(i),i)):e instanceof $i?(this.commitTransition(i),this.urlUpdateStrategy==="deferred"&&!i.extras.skipLocationChange&&this.setBrowserUrl(this.createBrowserPath(i),i)):e instanceof at&&(e.code===ke.GuardRejected||e.code===ke.NoDataFromResolver)?this.restoreHistory(i):e instanceof yi?this.restoreHistory(i,!0):e instanceof ft&&(this.lastSuccessfulId=e.id,this.currentPageId=this.browserPageId)}setBrowserUrl(e,{extras:i,id:r}){let{replaceUrl:o,state:a}=i;if(this.location.isCurrentPathEqualTo(e)||o){let c=this.browserPageId,m=L(L({},a),this.generateNgRouterState(r,c));this.location.replaceState(e,"",m)}else{let c=L(L({},a),this.generateNgRouterState(r,this.browserPageId+1));this.location.go(e,"",c)}}restoreHistory(e,i=!1){if(this.canceledNavigationResolution==="computed"){let r=this.browserPageId,o=this.currentPageId-r;o!==0?this.location.historyGo(o):this.getCurrentUrlTree()===e.finalUrl&&o===0&&(this.resetInternalState(e),this.resetUrlToCurrentUrlTree())}else this.canceledNavigationResolution==="replace"&&(i&&this.resetInternalState(e),this.resetUrlToCurrentUrlTree())}resetUrlToCurrentUrlTree(){this.location.replaceState(this.urlSerializer.serialize(this.getRawUrlTree()),"",this.generateNgRouterState(this.lastSuccessfulId,this.currentPageId))}generateNgRouterState(e,i){return this.canceledNavigationResolution==="computed"?{navigationId:e,\u0275routerPageId:i}:{navigationId:e}}static \u0275fac=(()=>{let e;return function(r){return(e||(e=zt(n)))(r||n)}})();static \u0275prov=J({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function Fo(n,t){n.events.pipe(Qe(e=>e instanceof ft||e instanceof at||e instanceof yi||e instanceof gt),U(e=>e instanceof ft||e instanceof gt?0:(e instanceof at?e.code===ke.Redirect||e.code===ke.SupersededByNewNavigation:!1)?2:1),Qe(e=>e!==2),vt(1)).subscribe(()=>{t()})}var tm={paths:"exact",fragment:"ignored",matrixParams:"ignored",queryParams:"exact"},im={paths:"subset",fragment:"ignored",matrixParams:"ignored",queryParams:"subset"},lt=(()=>{class n{get currentUrlTree(){return this.stateManager.getCurrentUrlTree()}get rawUrlTree(){return this.stateManager.getRawUrlTree()}disposed=!1;nonRouterCurrentEntryChangeSubscription;console=k(qa);stateManager=k(dl);options=k(nn,{optional:!0})||{};pendingTasks=k(Va);urlUpdateStrategy=this.options.urlUpdateStrategy||"deferred";navigationTransitions=k(ll);urlSerializer=k(Zi);location=k(vn);urlHandlingStrategy=k(sr);_events=new _e;get events(){return this._events}get routerState(){return this.stateManager.getRouterState()}navigated=!1;routeReuseStrategy=k(cl);onSameUrlNavigation=this.options.onSameUrlNavigation||"ignore";config=k(rn,{optional:!0})?.flat()??[];componentInputBindingEnabled=!!k(or,{optional:!0});constructor(){this.resetConfig(this.config),this.navigationTransitions.setupNavigations(this).subscribe({error:e=>{this.console.warn(e)}}),this.subscribeToNavigationEvents()}eventsSubscription=new ii;subscribeToNavigationEvents(){let e=this.navigationTransitions.events.subscribe(i=>{try{let r=this.navigationTransitions.currentTransition,o=this.navigationTransitions.currentNavigation;if(r!==null&&o!==null){if(this.stateManager.handleRouterEvent(i,o),i instanceof at&&i.code!==ke.Redirect&&i.code!==ke.SupersededByNewNavigation)this.navigated=!0;else if(i instanceof ft)this.navigated=!0;else if(i instanceof vi){let a=i.navigationBehaviorOptions,c=this.urlHandlingStrategy.merge(i.url,r.currentRawUrl),m=L({browserUrl:r.extras.browserUrl,info:r.extras.info,skipLocationChange:r.extras.skipLocationChange,replaceUrl:r.extras.replaceUrl||this.urlUpdateStrategy==="eager"||Zd(r.source)},a);this.scheduleNavigation(c,zn,null,m,{resolve:r.resolve,reject:r.reject,promise:r.promise})}}rm(i)&&this._events.next(i)}catch(r){this.navigationTransitions.transitionAbortSubject.next(r)}});this.eventsSubscription.add(e)}resetRootComponentType(e){this.routerState.root.component=e,this.navigationTransitions.rootComponentType=e}initialNavigation(){this.setUpLocationChangeListener(),this.navigationTransitions.hasRequestedNavigation||this.navigateToSyncWithBrowser(this.location.path(!0),zn,this.stateManager.restoredState())}setUpLocationChangeListener(){this.nonRouterCurrentEntryChangeSubscription??=this.stateManager.registerNonRouterCurrentEntryChangeListener((e,i,r)=>{this.navigateToSyncWithBrowser(e,r,i)})}navigateToSyncWithBrowser(e,i,r){let o={replaceUrl:!0},a=r?.navigationId?r:null;if(r){let m=L({},r);delete m.navigationId,delete m.\u0275routerPageId,Object.keys(m).length!==0&&(o.state=m)}let c=this.parseUrl(e);this.scheduleNavigation(c,i,a,o)}get url(){return this.serializeUrl(this.currentUrlTree)}getCurrentNavigation(){return this.navigationTransitions.currentNavigation}get lastSuccessfulNavigation(){return this.navigationTransitions.lastSuccessfulNavigation}resetConfig(e){this.config=e.map(Oo),this.navigated=!1}ngOnDestroy(){this.dispose()}dispose(){this._events.unsubscribe(),this.navigationTransitions.complete(),this.nonRouterCurrentEntryChangeSubscription&&(this.nonRouterCurrentEntryChangeSubscription.unsubscribe(),this.nonRouterCurrentEntryChangeSubscription=void 0),this.disposed=!0,this.eventsSubscription.unsubscribe()}createUrlTree(e,i={}){let{relativeTo:r,queryParams:o,fragment:a,queryParamsHandling:c,preserveFragment:m}=i,p=m?this.currentUrlTree.fragment:a,x=null;switch(c??this.options.defaultQueryParamsHandling){case"merge":x=L(L({},this.currentUrlTree.queryParams),o);break;case"preserve":x=this.currentUrlTree.queryParams;break;default:x=o||null}x!==null&&(x=this.removeEmptyProps(x));let C;try{let R=r?r.snapshot:this.routerState.snapshot.root;C=zs(R)}catch{(typeof e[0]!="string"||e[0][0]!=="/")&&(e=[]),C=this.currentUrlTree.root}return Bs(C,e,x,p??null)}navigateByUrl(e,i={skipLocationChange:!1}){let r=_i(e)?e:this.parseUrl(e),o=this.urlHandlingStrategy.merge(r,this.rawUrlTree);return this.scheduleNavigation(o,zn,null,i)}navigate(e,i={skipLocationChange:!1}){return nm(e),this.navigateByUrl(this.createUrlTree(e,i),i)}serializeUrl(e){return this.urlSerializer.serialize(e)}parseUrl(e){try{return this.urlSerializer.parse(e)}catch{return this.urlSerializer.parse("/")}}isActive(e,i){let r;if(i===!0?r=L({},tm):i===!1?r=L({},im):r=i,_i(e))return xs(this.currentUrlTree,e,r);let o=this.parseUrl(e);return xs(this.currentUrlTree,o,r)}removeEmptyProps(e){return Object.entries(e).reduce((i,[r,o])=>(o!=null&&(i[r]=o),i),{})}scheduleNavigation(e,i,r,o,a){if(this.disposed)return Promise.resolve(!1);let c,m,p;a?(c=a.resolve,m=a.reject,p=a.promise):p=new Promise((C,R)=>{c=C,m=R});let x=this.pendingTasks.add();return Fo(this,()=>{queueMicrotask(()=>this.pendingTasks.remove(x))}),this.navigationTransitions.handleNavigationRequest({source:i,restoredState:r,currentUrlTree:this.currentUrlTree,currentRawUrl:this.currentUrlTree,rawUrl:e,extras:o,resolve:c,reject:m,promise:p,currentSnapshot:this.routerState.snapshot,currentRouterState:this.routerState}),p.catch(C=>Promise.reject(C))}static \u0275fac=function(i){return new(i||n)};static \u0275prov=J({token:n,factory:n.\u0275fac,providedIn:"root"})}return n})();function nm(n){for(let t=0;te.\u0275providers)])}function sm(n){return n.routerState.root}function lm(){let n=k(ro);return t=>{let e=n.get(Ka);if(t!==e.components[0])return;let i=n.get(lt),r=n.get(cm);n.get(dm)===1&&i.initialNavigation(),n.get(mm,null,no.Optional)?.setUpPreloading(),n.get(am,null,no.Optional)?.init(),i.resetRootComponentType(e.componentTypes[0]),r.closed||(r.next(),r.complete(),r.unsubscribe())}}var cm=new ne("",{factory:()=>new _e}),dm=new ne("",{providedIn:"root",factory:()=>1});var mm=new ne("");var V=function(n){return n[n.State=0]="State",n[n.Transition=1]="Transition",n[n.Sequence=2]="Sequence",n[n.Group=3]="Group",n[n.Animate=4]="Animate",n[n.Keyframes=5]="Keyframes",n[n.Style=6]="Style",n[n.Trigger=7]="Trigger",n[n.Reference=8]="Reference",n[n.AnimateChild=9]="AnimateChild",n[n.AnimateRef=10]="AnimateRef",n[n.Query=11]="Query",n[n.Stagger=12]="Stagger",n}(V||{}),$e="*";function Vo(n,t){return{type:V.Trigger,name:n,definitions:t,options:{}}}function lr(n,t=null){return{type:V.Animate,styles:t,timings:n}}function ml(n,t=null){return{type:V.Sequence,steps:n,options:t}}function It(n){return{type:V.Style,styles:n,offset:null}}function cr(n,t,e=null){return{type:V.Transition,expr:n,animation:t,options:e}}var ct=class{_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_originalOnDoneFns=[];_originalOnStartFns=[];_started=!1;_destroyed=!1;_finished=!1;_position=0;parentPlayer=null;totalTime;constructor(t=0,e=0){this.totalTime=t+e}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}onStart(t){this._originalOnStartFns.push(t),this._onStartFns.push(t)}onDone(t){this._originalOnDoneFns.push(t),this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}hasStarted(){return this._started}init(){}play(){this.hasStarted()||(this._onStart(),this.triggerMicrotask()),this._started=!0}triggerMicrotask(){queueMicrotask(()=>this._onFinish())}_onStart(){this._onStartFns.forEach(t=>t()),this._onStartFns=[]}pause(){}restart(){}finish(){this._onFinish()}destroy(){this._destroyed||(this._destroyed=!0,this.hasStarted()||this._onStart(),this.finish(),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}reset(){this._started=!1,this._finished=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}setPosition(t){this._position=this.totalTime?t*this.totalTime:1}getPosition(){return this.totalTime?this._position/this.totalTime:1}triggerCallback(t){let e=t=="start"?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}},Kt=class{_onDoneFns=[];_onStartFns=[];_finished=!1;_started=!1;_destroyed=!1;_onDestroyFns=[];parentPlayer=null;totalTime=0;players;constructor(t){this.players=t;let e=0,i=0,r=0,o=this.players.length;o==0?queueMicrotask(()=>this._onFinish()):this.players.forEach(a=>{a.onDone(()=>{++e==o&&this._onFinish()}),a.onDestroy(()=>{++i==o&&this._onDestroy()}),a.onStart(()=>{++r==o&&this._onStart()})}),this.totalTime=this.players.reduce((a,c)=>Math.max(a,c.totalTime),0)}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}init(){this.players.forEach(t=>t.init())}onStart(t){this._onStartFns.push(t)}_onStart(){this.hasStarted()||(this._started=!0,this._onStartFns.forEach(t=>t()),this._onStartFns=[])}onDone(t){this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}hasStarted(){return this._started}play(){this.parentPlayer||this.init(),this._onStart(),this.players.forEach(t=>t.play())}pause(){this.players.forEach(t=>t.pause())}restart(){this.players.forEach(t=>t.restart())}finish(){this._onFinish(),this.players.forEach(t=>t.finish())}destroy(){this._onDestroy()}_onDestroy(){this._destroyed||(this._destroyed=!0,this._onFinish(),this.players.forEach(t=>t.destroy()),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}reset(){this.players.forEach(t=>t.reset()),this._destroyed=!1,this._finished=!1,this._started=!1}setPosition(t){let e=t*this.totalTime;this.players.forEach(i=>{let r=i.totalTime?Math.min(1,e/i.totalTime):1;i.setPosition(r)})}getPosition(){let t=this.players.reduce((e,i)=>e===null||i.totalTime>e.totalTime?i:e,null);return t!=null?t.getPosition():0}beforeDestroy(){this.players.forEach(t=>{t.beforeDestroy&&t.beforeDestroy()})}triggerCallback(t){let e=t=="start"?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}},Si="!";function ul(n){return new N(3e3,!1)}function pm(){return new N(3100,!1)}function hm(){return new N(3101,!1)}function fm(n){return new N(3001,!1)}function gm(n){return new N(3003,!1)}function _m(n){return new N(3004,!1)}function hl(n,t){return new N(3005,!1)}function fl(){return new N(3006,!1)}function gl(){return new N(3007,!1)}function _l(n,t){return new N(3008,!1)}function yl(n){return new N(3002,!1)}function vl(n,t,e,i,r){return new N(3010,!1)}function bl(){return new N(3011,!1)}function xl(){return new N(3012,!1)}function wl(){return new N(3200,!1)}function Cl(){return new N(3202,!1)}function Sl(){return new N(3013,!1)}function kl(n){return new N(3014,!1)}function El(n){return new N(3015,!1)}function Tl(n){return new N(3016,!1)}function Ml(n,t){return new N(3404,!1)}function ym(n){return new N(3502,!1)}function Dl(n){return new N(3503,!1)}function Rl(){return new N(3300,!1)}function Pl(n){return new N(3504,!1)}function Il(n){return new N(3301,!1)}function Al(n,t){return new N(3302,!1)}function Ol(n){return new N(3303,!1)}function Ll(n,t){return new N(3400,!1)}function Fl(n){return new N(3401,!1)}function Nl(n){return new N(3402,!1)}function jl(n,t){return new N(3505,!1)}function _t(n){switch(n.length){case 0:return new ct;case 1:return n[0];default:return new Kt(n)}}function Ho(n,t,e=new Map,i=new Map){let r=[],o=[],a=-1,c=null;if(t.forEach(m=>{let p=m.get("offset"),x=p==a,C=x&&c||new Map;m.forEach((R,P)=>{let E=P,A=R;if(P!=="offset")switch(E=n.normalizePropertyName(E,r),A){case Si:A=e.get(P);break;case $e:A=i.get(P);break;default:A=n.normalizeStyleValue(P,E,A,r);break}C.set(E,A)}),x||o.push(C),c=C,a=p}),r.length)throw ym(r);return o}function dr(n,t,e,i){switch(t){case"start":n.onStart(()=>i(e&&zo(e,"start",n)));break;case"done":n.onDone(()=>i(e&&zo(e,"done",n)));break;case"destroy":n.onDestroy(()=>i(e&&zo(e,"destroy",n)));break}}function zo(n,t,e){let i=e.totalTime,r=!!e.disabled,o=mr(n.element,n.triggerName,n.fromState,n.toState,t||n.phaseName,i??n.totalTime,r),a=n._data;return a!=null&&(o._data=a),o}function mr(n,t,e,i,r="",o=0,a){return{element:n,triggerName:t,fromState:e,toState:i,phaseName:r,totalTime:o,disabled:!!a}}function Ee(n,t,e){let i=n.get(t);return i||n.set(t,i=e),i}function Uo(n){let t=n.indexOf(":"),e=n.substring(1,t),i=n.slice(t+1);return[e,i]}var vm=typeof document>"u"?null:document.documentElement;function ur(n){let t=n.parentNode||n.host||null;return t===vm?null:t}function bm(n){return n.substring(1,6)=="ebkit"}var Yt=null,pl=!1;function Vl(n){Yt||(Yt=xm()||{},pl=Yt.style?"WebkitAppearance"in Yt.style:!1);let t=!0;return Yt.style&&!bm(n)&&(t=n in Yt.style,!t&&pl&&(t="Webkit"+n.charAt(0).toUpperCase()+n.slice(1)in Yt.style)),t}function xm(){return typeof document<"u"?document.body:null}function $o(n,t){for(;t;){if(t===n)return!0;t=ur(t)}return!1}function qo(n,t,e){if(e)return Array.from(n.querySelectorAll(t));let i=n.querySelector(t);return i?[i]:[]}var wm=1e3,Wo="{{",Cm="}}",Qo="ng-enter",pr="ng-leave",on="ng-trigger",an=".ng-trigger",Ko="ng-animating",hr=".ng-animating";function dt(n){if(typeof n=="number")return n;let t=n.match(/^(-?[\.\d]+)(m?s)/);return!t||t.length<2?0:Bo(parseFloat(t[1]),t[2])}function Bo(n,t){switch(t){case"s":return n*wm;default:return n}}function sn(n,t,e){return n.hasOwnProperty("duration")?n:Sm(n,t,e)}function Sm(n,t,e){let i=/^(-?[\.\d]+)(m?s)(?:\s+(-?[\.\d]+)(m?s))?(?:\s+([-a-z]+(?:\(.+?\))?))?$/i,r,o=0,a="";if(typeof n=="string"){let c=n.match(i);if(c===null)return t.push(ul(n)),{duration:0,delay:0,easing:""};r=Bo(parseFloat(c[1]),c[2]);let m=c[3];m!=null&&(o=Bo(parseFloat(m),c[4]));let p=c[5];p&&(a=p)}else r=n;if(!e){let c=!1,m=t.length;r<0&&(t.push(pm()),c=!0),o<0&&(t.push(hm()),c=!0),c&&t.splice(m,0,ul(n))}return{duration:r,delay:o,easing:a}}function zl(n){return n.length?n[0]instanceof Map?n:n.map(t=>new Map(Object.entries(t))):[]}function Xe(n,t,e){t.forEach((i,r)=>{let o=fr(r);e&&!e.has(r)&&e.set(r,n.style[o]),n.style[o]=i})}function At(n,t){t.forEach((e,i)=>{let r=fr(i);n.style[r]=""})}function ki(n){return Array.isArray(n)?n.length==1?n[0]:ml(n):n}function Bl(n,t,e){let i=t.params||{},r=Yo(n);r.length&&r.forEach(o=>{i.hasOwnProperty(o)||e.push(fm(o))})}var Go=new RegExp(`${Wo}\\s*(.+?)\\s*${Cm}`,"g");function Yo(n){let t=[];if(typeof n=="string"){let e;for(;e=Go.exec(n);)t.push(e[1]);Go.lastIndex=0}return t}function Ei(n,t,e){let i=`${n}`,r=i.replace(Go,(o,a)=>{let c=t[a];return c==null&&(e.push(gm(a)),c=""),c.toString()});return r==i?n:r}var km=/-+([a-z0-9])/g;function fr(n){return n.replace(km,(...t)=>t[1].toUpperCase())}function Gl(n,t){return n===0||t===0}function Hl(n,t,e){if(e.size&&t.length){let i=t[0],r=[];if(e.forEach((o,a)=>{i.has(a)||r.push(a),i.set(a,o)}),r.length)for(let o=1;oa.set(c,gr(n,c)))}}return t}function Te(n,t,e){switch(t.type){case V.Trigger:return n.visitTrigger(t,e);case V.State:return n.visitState(t,e);case V.Transition:return n.visitTransition(t,e);case V.Sequence:return n.visitSequence(t,e);case V.Group:return n.visitGroup(t,e);case V.Animate:return n.visitAnimate(t,e);case V.Keyframes:return n.visitKeyframes(t,e);case V.Style:return n.visitStyle(t,e);case V.Reference:return n.visitReference(t,e);case V.AnimateChild:return n.visitAnimateChild(t,e);case V.AnimateRef:return n.visitAnimateRef(t,e);case V.Query:return n.visitQuery(t,e);case V.Stagger:return n.visitStagger(t,e);default:throw _m(t.type)}}function gr(n,t){return window.getComputedStyle(n)[t]}var pa=(()=>{class n{validateStyleProperty(e){return Vl(e)}containsElement(e,i){return $o(e,i)}getParentElement(e){return ur(e)}query(e,i,r){return qo(e,i,r)}computeStyle(e,i,r){return r||""}animate(e,i,r,o,a,c=[],m){return new ct(r,o)}static \u0275fac=function(i){return new(i||n)};static \u0275prov=J({token:n,factory:n.\u0275fac})}return n})(),Zt=class{static NOOP=new pa},Jt=class{};var Em=new Set(["width","height","minWidth","minHeight","maxWidth","maxHeight","left","top","bottom","right","fontSize","outlineWidth","outlineOffset","paddingTop","paddingLeft","paddingBottom","paddingRight","marginTop","marginLeft","marginBottom","marginRight","borderRadius","borderWidth","borderTopWidth","borderLeftWidth","borderRightWidth","borderBottomWidth","textIndent","perspective"]),xr=class extends Jt{normalizePropertyName(t,e){return fr(t)}normalizeStyleValue(t,e,i,r){let o="",a=i.toString().trim();if(Em.has(e)&&i!==0&&i!=="0")if(typeof i=="number")o="px";else{let c=i.match(/^[+-]?[\d\.]+([a-z]*)$/);c&&c[1].length==0&&r.push(hl(t,i))}return a+o}};var wr="*";function Tm(n,t){let e=[];return typeof n=="string"?n.split(/\s*,\s*/).forEach(i=>Mm(i,e,t)):e.push(n),e}function Mm(n,t,e){if(n[0]==":"){let m=Dm(n,e);if(typeof m=="function"){t.push(m);return}n=m}let i=n.match(/^(\*|[-\w]+)\s*()\s*(\*|[-\w]+)$/);if(i==null||i.length<4)return e.push(El(n)),t;let r=i[1],o=i[2],a=i[3];t.push(Ul(r,a));let c=r==wr&&a==wr;o[0]=="<"&&!c&&t.push(Ul(a,r))}function Dm(n,t){switch(n){case":enter":return"void => *";case":leave":return"* => void";case":increment":return(e,i)=>parseFloat(i)>parseFloat(e);case":decrement":return(e,i)=>parseFloat(i) *"}}var _r=new Set(["true","1"]),yr=new Set(["false","0"]);function Ul(n,t){let e=_r.has(n)||yr.has(n),i=_r.has(t)||yr.has(t);return(r,o)=>{let a=n==wr||n==r,c=t==wr||t==o;return!a&&e&&typeof r=="boolean"&&(a=r?_r.has(n):yr.has(n)),!c&&i&&typeof o=="boolean"&&(c=o?_r.has(t):yr.has(t)),a&&c}}var ec=":self",Rm=new RegExp(`s*${ec}s*,?`,"g");function tc(n,t,e,i){return new ia(n).build(t,e,i)}var $l="",ia=class{_driver;constructor(t){this._driver=t}build(t,e,i){let r=new na(e);return this._resetContextStyleTimingState(r),Te(this,ki(t),r)}_resetContextStyleTimingState(t){t.currentQuerySelector=$l,t.collectedStyles=new Map,t.collectedStyles.set($l,new Map),t.currentTime=0}visitTrigger(t,e){let i=e.queryCount=0,r=e.depCount=0,o=[],a=[];return t.name.charAt(0)=="@"&&e.errors.push(fl()),t.definitions.forEach(c=>{if(this._resetContextStyleTimingState(e),c.type==V.State){let m=c,p=m.name;p.toString().split(/\s*,\s*/).forEach(x=>{m.name=x,o.push(this.visitState(m,e))}),m.name=p}else if(c.type==V.Transition){let m=this.visitTransition(c,e);i+=m.queryCount,r+=m.depCount,a.push(m)}else e.errors.push(gl())}),{type:V.Trigger,name:t.name,states:o,transitions:a,queryCount:i,depCount:r,options:null}}visitState(t,e){let i=this.visitStyle(t.styles,e),r=t.options&&t.options.params||null;if(i.containsDynamicStyles){let o=new Set,a=r||{};i.styles.forEach(c=>{c instanceof Map&&c.forEach(m=>{Yo(m).forEach(p=>{a.hasOwnProperty(p)||o.add(p)})})}),o.size&&e.errors.push(_l(t.name,[...o.values()]))}return{type:V.State,name:t.name,style:i,options:r?{params:r}:null}}visitTransition(t,e){e.queryCount=0,e.depCount=0;let i=Te(this,ki(t.animation),e),r=Tm(t.expr,e.errors);return{type:V.Transition,matchers:r,animation:i,queryCount:e.queryCount,depCount:e.depCount,options:Xt(t.options)}}visitSequence(t,e){return{type:V.Sequence,steps:t.steps.map(i=>Te(this,i,e)),options:Xt(t.options)}}visitGroup(t,e){let i=e.currentTime,r=0,o=t.steps.map(a=>{e.currentTime=i;let c=Te(this,a,e);return r=Math.max(r,e.currentTime),c});return e.currentTime=r,{type:V.Group,steps:o,options:Xt(t.options)}}visitAnimate(t,e){let i=Om(t.timings,e.errors);e.currentAnimateTimings=i;let r,o=t.styles?t.styles:It({});if(o.type==V.Keyframes)r=this.visitKeyframes(o,e);else{let a=t.styles,c=!1;if(!a){c=!0;let p={};i.easing&&(p.easing=i.easing),a=It(p)}e.currentTime+=i.duration+i.delay;let m=this.visitStyle(a,e);m.isEmptyStep=c,r=m}return e.currentAnimateTimings=null,{type:V.Animate,timings:i,style:r,options:null}}visitStyle(t,e){let i=this._makeStyleAst(t,e);return this._validateStyleAst(i,e),i}_makeStyleAst(t,e){let i=[],r=Array.isArray(t.styles)?t.styles:[t.styles];for(let c of r)typeof c=="string"?c===$e?i.push(c):e.errors.push(yl(c)):i.push(new Map(Object.entries(c)));let o=!1,a=null;return i.forEach(c=>{if(c instanceof Map&&(c.has("easing")&&(a=c.get("easing"),c.delete("easing")),!o)){for(let m of c.values())if(m.toString().indexOf(Wo)>=0){o=!0;break}}}),{type:V.Style,styles:i,easing:a,offset:t.offset,containsDynamicStyles:o,options:null}}_validateStyleAst(t,e){let i=e.currentAnimateTimings,r=e.currentTime,o=e.currentTime;i&&o>0&&(o-=i.duration+i.delay),t.styles.forEach(a=>{typeof a!="string"&&a.forEach((c,m)=>{let p=e.collectedStyles.get(e.currentQuerySelector),x=p.get(m),C=!0;x&&(o!=r&&o>=x.startTime&&r<=x.endTime&&(e.errors.push(vl(m,x.startTime,x.endTime,o,r)),C=!1),o=x.startTime),C&&p.set(m,{startTime:o,endTime:r}),e.options&&Bl(c,e.options,e.errors)})})}visitKeyframes(t,e){let i={type:V.Keyframes,styles:[],options:null};if(!e.currentAnimateTimings)return e.errors.push(bl()),i;let r=1,o=0,a=[],c=!1,m=!1,p=0,x=t.steps.map(te=>{let re=this._makeStyleAst(te,e),oe=re.offset!=null?re.offset:Am(re.styles),ge=0;return oe!=null&&(o++,ge=re.offset=oe),m=m||ge<0||ge>1,c=c||ge0&&o{let oe=R>0?re==P?1:R*re:a[re],ge=oe*G;e.currentTime=E+A.delay+ge,A.duration=ge,this._validateStyleAst(te,e),te.offset=oe,i.styles.push(te)}),i}visitReference(t,e){return{type:V.Reference,animation:Te(this,ki(t.animation),e),options:Xt(t.options)}}visitAnimateChild(t,e){return e.depCount++,{type:V.AnimateChild,options:Xt(t.options)}}visitAnimateRef(t,e){return{type:V.AnimateRef,animation:this.visitReference(t.animation,e),options:Xt(t.options)}}visitQuery(t,e){let i=e.currentQuerySelector,r=t.options||{};e.queryCount++,e.currentQuery=t;let[o,a]=Pm(t.selector);e.currentQuerySelector=i.length?i+" "+o:o,Ee(e.collectedStyles,e.currentQuerySelector,new Map);let c=Te(this,ki(t.animation),e);return e.currentQuery=null,e.currentQuerySelector=i,{type:V.Query,selector:o,limit:r.limit||0,optional:!!r.optional,includeSelf:a,animation:c,originalSelector:t.selector,options:Xt(t.options)}}visitStagger(t,e){e.currentQuery||e.errors.push(Sl());let i=t.timings==="full"?{duration:0,delay:0,easing:"full"}:sn(t.timings,e.errors,!0);return{type:V.Stagger,animation:Te(this,ki(t.animation),e),timings:i,options:null}}};function Pm(n){let t=!!n.split(/\s*,\s*/).find(e=>e==ec);return t&&(n=n.replace(Rm,"")),n=n.replace(/@\*/g,an).replace(/@\w+/g,e=>an+"-"+e.slice(1)).replace(/:animating/g,hr),[n,t]}function Im(n){return n?L({},n):null}var na=class{errors;queryCount=0;depCount=0;currentTransition=null;currentQuery=null;currentQuerySelector=null;currentAnimateTimings=null;currentTime=0;collectedStyles=new Map;options=null;unsupportedCSSPropertiesFound=new Set;constructor(t){this.errors=t}};function Am(n){if(typeof n=="string")return null;let t=null;if(Array.isArray(n))n.forEach(e=>{if(e instanceof Map&&e.has("offset")){let i=e;t=parseFloat(i.get("offset")),i.delete("offset")}});else if(n instanceof Map&&n.has("offset")){let e=n;t=parseFloat(e.get("offset")),e.delete("offset")}return t}function Om(n,t){if(n.hasOwnProperty("duration"))return n;if(typeof n=="number"){let o=sn(n,t).duration;return Xo(o,0,"")}let e=n;if(e.split(/\s+/).some(o=>o.charAt(0)=="{"&&o.charAt(1)=="{")){let o=Xo(0,0,"");return o.dynamic=!0,o.strValue=e,o}let r=sn(e,t);return Xo(r.duration,r.delay,r.easing)}function Xt(n){return n?(n=L({},n),n.params&&(n.params=Im(n.params))):n={},n}function Xo(n,t,e){return{duration:n,delay:t,easing:e}}function ha(n,t,e,i,r,o,a=null,c=!1){return{type:1,element:n,keyframes:t,preStyleProps:e,postStyleProps:i,duration:r,delay:o,totalTime:r+o,easing:a,subTimeline:c}}var cn=class{_map=new Map;get(t){return this._map.get(t)||[]}append(t,e){let i=this._map.get(t);i||this._map.set(t,i=[]),i.push(...e)}has(t){return this._map.has(t)}clear(){this._map.clear()}},Lm=1,Fm=":enter",Nm=new RegExp(Fm,"g"),jm=":leave",Vm=new RegExp(jm,"g");function ic(n,t,e,i,r,o=new Map,a=new Map,c,m,p=[]){return new ra().buildKeyframes(n,t,e,i,r,o,a,c,m,p)}var ra=class{buildKeyframes(t,e,i,r,o,a,c,m,p,x=[]){p=p||new cn;let C=new oa(t,e,p,r,o,x,[]);C.options=m;let R=m.delay?dt(m.delay):0;C.currentTimeline.delayNextStep(R),C.currentTimeline.setStyles([a],null,C.errors,m),Te(this,i,C);let P=C.timelines.filter(E=>E.containsAnimation());if(P.length&&c.size){let E;for(let A=P.length-1;A>=0;A--){let G=P[A];if(G.element===e){E=G;break}}E&&!E.allowOnlyTimelineStyles()&&E.setStyles([c],null,C.errors,m)}return P.length?P.map(E=>E.buildKeyframes()):[ha(e,[],[],[],0,R,"",!1)]}visitTrigger(t,e){}visitState(t,e){}visitTransition(t,e){}visitAnimateChild(t,e){let i=e.subInstructions.get(e.element);if(i){let r=e.createSubContext(t.options),o=e.currentTimeline.currentTime,a=this._visitSubInstructions(i,r,r.options);o!=a&&e.transformIntoNewTimeline(a)}e.previousNode=t}visitAnimateRef(t,e){let i=e.createSubContext(t.options);i.transformIntoNewTimeline(),this._applyAnimationRefDelays([t.options,t.animation.options],e,i),this.visitReference(t.animation,i),e.transformIntoNewTimeline(i.currentTimeline.currentTime),e.previousNode=t}_applyAnimationRefDelays(t,e,i){for(let r of t){let o=r?.delay;if(o){let a=typeof o=="number"?o:dt(Ei(o,r?.params??{},e.errors));i.delayNextStep(a)}}}_visitSubInstructions(t,e,i){let o=e.currentTimeline.currentTime,a=i.duration!=null?dt(i.duration):null,c=i.delay!=null?dt(i.delay):null;return a!==0&&t.forEach(m=>{let p=e.appendInstructionToTimeline(m,a,c);o=Math.max(o,p.duration+p.delay)}),o}visitReference(t,e){e.updateOptions(t.options,!0),Te(this,t.animation,e),e.previousNode=t}visitSequence(t,e){let i=e.subContextCount,r=e,o=t.options;if(o&&(o.params||o.delay)&&(r=e.createSubContext(o),r.transformIntoNewTimeline(),o.delay!=null)){r.previousNode.type==V.Style&&(r.currentTimeline.snapshotCurrentStyles(),r.previousNode=Cr);let a=dt(o.delay);r.delayNextStep(a)}t.steps.length&&(t.steps.forEach(a=>Te(this,a,r)),r.currentTimeline.applyStylesToKeyframe(),r.subContextCount>i&&r.transformIntoNewTimeline()),e.previousNode=t}visitGroup(t,e){let i=[],r=e.currentTimeline.currentTime,o=t.options&&t.options.delay?dt(t.options.delay):0;t.steps.forEach(a=>{let c=e.createSubContext(t.options);o&&c.delayNextStep(o),Te(this,a,c),r=Math.max(r,c.currentTimeline.currentTime),i.push(c.currentTimeline)}),i.forEach(a=>e.currentTimeline.mergeTimelineCollectedStyles(a)),e.transformIntoNewTimeline(r),e.previousNode=t}_visitTiming(t,e){if(t.dynamic){let i=t.strValue,r=e.params?Ei(i,e.params,e.errors):i;return sn(r,e.errors)}else return{duration:t.duration,delay:t.delay,easing:t.easing}}visitAnimate(t,e){let i=e.currentAnimateTimings=this._visitTiming(t.timings,e),r=e.currentTimeline;i.delay&&(e.incrementTime(i.delay),r.snapshotCurrentStyles());let o=t.style;o.type==V.Keyframes?this.visitKeyframes(o,e):(e.incrementTime(i.duration),this.visitStyle(o,e),r.applyStylesToKeyframe()),e.currentAnimateTimings=null,e.previousNode=t}visitStyle(t,e){let i=e.currentTimeline,r=e.currentAnimateTimings;!r&&i.hasCurrentStyleProperties()&&i.forwardFrame();let o=r&&r.easing||t.easing;t.isEmptyStep?i.applyEmptyStep(o):i.setStyles(t.styles,o,e.errors,e.options),e.previousNode=t}visitKeyframes(t,e){let i=e.currentAnimateTimings,r=e.currentTimeline.duration,o=i.duration,c=e.createSubContext().currentTimeline;c.easing=i.easing,t.styles.forEach(m=>{let p=m.offset||0;c.forwardTime(p*o),c.setStyles(m.styles,m.easing,e.errors,e.options),c.applyStylesToKeyframe()}),e.currentTimeline.mergeTimelineCollectedStyles(c),e.transformIntoNewTimeline(r+o),e.previousNode=t}visitQuery(t,e){let i=e.currentTimeline.currentTime,r=t.options||{},o=r.delay?dt(r.delay):0;o&&(e.previousNode.type===V.Style||i==0&&e.currentTimeline.hasCurrentStyleProperties())&&(e.currentTimeline.snapshotCurrentStyles(),e.previousNode=Cr);let a=i,c=e.invokeQuery(t.selector,t.originalSelector,t.limit,t.includeSelf,!!r.optional,e.errors);e.currentQueryTotal=c.length;let m=null;c.forEach((p,x)=>{e.currentQueryIndex=x;let C=e.createSubContext(t.options,p);o&&C.delayNextStep(o),p===e.element&&(m=C.currentTimeline),Te(this,t.animation,C),C.currentTimeline.applyStylesToKeyframe();let R=C.currentTimeline.currentTime;a=Math.max(a,R)}),e.currentQueryIndex=0,e.currentQueryTotal=0,e.transformIntoNewTimeline(a),m&&(e.currentTimeline.mergeTimelineCollectedStyles(m),e.currentTimeline.snapshotCurrentStyles()),e.previousNode=t}visitStagger(t,e){let i=e.parentContext,r=e.currentTimeline,o=t.timings,a=Math.abs(o.duration),c=a*(e.currentQueryTotal-1),m=a*e.currentQueryIndex;switch(o.duration<0?"reverse":o.easing){case"reverse":m=c-m;break;case"full":m=i.currentStaggerTime;break}let x=e.currentTimeline;m&&x.delayNextStep(m);let C=x.currentTime;Te(this,t.animation,e),e.previousNode=t,i.currentStaggerTime=r.currentTime-C+(r.startTime-i.currentTimeline.startTime)}},Cr={},oa=class n{_driver;element;subInstructions;_enterClassName;_leaveClassName;errors;timelines;parentContext=null;currentTimeline;currentAnimateTimings=null;previousNode=Cr;subContextCount=0;options={};currentQueryIndex=0;currentQueryTotal=0;currentStaggerTime=0;constructor(t,e,i,r,o,a,c,m){this._driver=t,this.element=e,this.subInstructions=i,this._enterClassName=r,this._leaveClassName=o,this.errors=a,this.timelines=c,this.currentTimeline=m||new Sr(this._driver,e,0),c.push(this.currentTimeline)}get params(){return this.options.params}updateOptions(t,e){if(!t)return;let i=t,r=this.options;i.duration!=null&&(r.duration=dt(i.duration)),i.delay!=null&&(r.delay=dt(i.delay));let o=i.params;if(o){let a=r.params;a||(a=this.options.params={}),Object.keys(o).forEach(c=>{(!e||!a.hasOwnProperty(c))&&(a[c]=Ei(o[c],a,this.errors))})}}_copyOptions(){let t={};if(this.options){let e=this.options.params;if(e){let i=t.params={};Object.keys(e).forEach(r=>{i[r]=e[r]})}}return t}createSubContext(t=null,e,i){let r=e||this.element,o=new n(this._driver,r,this.subInstructions,this._enterClassName,this._leaveClassName,this.errors,this.timelines,this.currentTimeline.fork(r,i||0));return o.previousNode=this.previousNode,o.currentAnimateTimings=this.currentAnimateTimings,o.options=this._copyOptions(),o.updateOptions(t),o.currentQueryIndex=this.currentQueryIndex,o.currentQueryTotal=this.currentQueryTotal,o.parentContext=this,this.subContextCount++,o}transformIntoNewTimeline(t){return this.previousNode=Cr,this.currentTimeline=this.currentTimeline.fork(this.element,t),this.timelines.push(this.currentTimeline),this.currentTimeline}appendInstructionToTimeline(t,e,i){let r={duration:e??t.duration,delay:this.currentTimeline.currentTime+(i??0)+t.delay,easing:""},o=new aa(this._driver,t.element,t.keyframes,t.preStyleProps,t.postStyleProps,r,t.stretchStartingKeyframe);return this.timelines.push(o),r}incrementTime(t){this.currentTimeline.forwardTime(this.currentTimeline.duration+t)}delayNextStep(t){t>0&&this.currentTimeline.delayNextStep(t)}invokeQuery(t,e,i,r,o,a){let c=[];if(r&&c.push(this.element),t.length>0){t=t.replace(Nm,"."+this._enterClassName),t=t.replace(Vm,"."+this._leaveClassName);let m=i!=1,p=this._driver.query(this.element,t,m);i!==0&&(p=i<0?p.slice(p.length+i,p.length):p.slice(0,i)),c.push(...p)}return!o&&c.length==0&&a.push(kl(e)),c}},Sr=class n{_driver;element;startTime;_elementTimelineStylesLookup;duration=0;easing=null;_previousKeyframe=new Map;_currentKeyframe=new Map;_keyframes=new Map;_styleSummary=new Map;_localTimelineStyles=new Map;_globalTimelineStyles;_pendingStyles=new Map;_backFill=new Map;_currentEmptyStepKeyframe=null;constructor(t,e,i,r){this._driver=t,this.element=e,this.startTime=i,this._elementTimelineStylesLookup=r,this._elementTimelineStylesLookup||(this._elementTimelineStylesLookup=new Map),this._globalTimelineStyles=this._elementTimelineStylesLookup.get(e),this._globalTimelineStyles||(this._globalTimelineStyles=this._localTimelineStyles,this._elementTimelineStylesLookup.set(e,this._localTimelineStyles)),this._loadKeyframe()}containsAnimation(){switch(this._keyframes.size){case 0:return!1;case 1:return this.hasCurrentStyleProperties();default:return!0}}hasCurrentStyleProperties(){return this._currentKeyframe.size>0}get currentTime(){return this.startTime+this.duration}delayNextStep(t){let e=this._keyframes.size===1&&this._pendingStyles.size;this.duration||e?(this.forwardTime(this.currentTime+t),e&&this.snapshotCurrentStyles()):this.startTime+=t}fork(t,e){return this.applyStylesToKeyframe(),new n(this._driver,t,e||this.currentTime,this._elementTimelineStylesLookup)}_loadKeyframe(){this._currentKeyframe&&(this._previousKeyframe=this._currentKeyframe),this._currentKeyframe=this._keyframes.get(this.duration),this._currentKeyframe||(this._currentKeyframe=new Map,this._keyframes.set(this.duration,this._currentKeyframe))}forwardFrame(){this.duration+=Lm,this._loadKeyframe()}forwardTime(t){this.applyStylesToKeyframe(),this.duration=t,this._loadKeyframe()}_updateStyle(t,e){this._localTimelineStyles.set(t,e),this._globalTimelineStyles.set(t,e),this._styleSummary.set(t,{time:this.currentTime,value:e})}allowOnlyTimelineStyles(){return this._currentEmptyStepKeyframe!==this._currentKeyframe}applyEmptyStep(t){t&&this._previousKeyframe.set("easing",t);for(let[e,i]of this._globalTimelineStyles)this._backFill.set(e,i||$e),this._currentKeyframe.set(e,$e);this._currentEmptyStepKeyframe=this._currentKeyframe}setStyles(t,e,i,r){e&&this._previousKeyframe.set("easing",e);let o=r&&r.params||{},a=zm(t,this._globalTimelineStyles);for(let[c,m]of a){let p=Ei(m,o,i);this._pendingStyles.set(c,p),this._localTimelineStyles.has(c)||this._backFill.set(c,this._globalTimelineStyles.get(c)??$e),this._updateStyle(c,p)}}applyStylesToKeyframe(){this._pendingStyles.size!=0&&(this._pendingStyles.forEach((t,e)=>{this._currentKeyframe.set(e,t)}),this._pendingStyles.clear(),this._localTimelineStyles.forEach((t,e)=>{this._currentKeyframe.has(e)||this._currentKeyframe.set(e,t)}))}snapshotCurrentStyles(){for(let[t,e]of this._localTimelineStyles)this._pendingStyles.set(t,e),this._updateStyle(t,e)}getFinalKeyframe(){return this._keyframes.get(this.duration)}get properties(){let t=[];for(let e in this._currentKeyframe)t.push(e);return t}mergeTimelineCollectedStyles(t){t._styleSummary.forEach((e,i)=>{let r=this._styleSummary.get(i);(!r||e.time>r.time)&&this._updateStyle(i,e.value)})}buildKeyframes(){this.applyStylesToKeyframe();let t=new Set,e=new Set,i=this._keyframes.size===1&&this.duration===0,r=[];this._keyframes.forEach((c,m)=>{let p=new Map([...this._backFill,...c]);p.forEach((x,C)=>{x===Si?t.add(C):x===$e&&e.add(C)}),i||p.set("offset",m/this.duration),r.push(p)});let o=[...t.values()],a=[...e.values()];if(i){let c=r[0],m=new Map(c);c.set("offset",0),m.set("offset",1),r=[c,m]}return ha(this.element,r,o,a,this.duration,this.startTime,this.easing,!1)}},aa=class extends Sr{keyframes;preStyleProps;postStyleProps;_stretchStartingKeyframe;timings;constructor(t,e,i,r,o,a,c=!1){super(t,e,a.delay),this.keyframes=i,this.preStyleProps=r,this.postStyleProps=o,this._stretchStartingKeyframe=c,this.timings={duration:a.duration,delay:a.delay,easing:a.easing}}containsAnimation(){return this.keyframes.length>1}buildKeyframes(){let t=this.keyframes,{delay:e,duration:i,easing:r}=this.timings;if(this._stretchStartingKeyframe&&e){let o=[],a=i+e,c=e/a,m=new Map(t[0]);m.set("offset",0),o.push(m);let p=new Map(t[0]);p.set("offset",ql(c)),o.push(p);let x=t.length-1;for(let C=1;C<=x;C++){let R=new Map(t[C]),P=R.get("offset"),E=e+P*i;R.set("offset",ql(E/a)),o.push(R)}i=a,e=0,r="",t=o}return ha(this.element,t,this.preStyleProps,this.postStyleProps,i,e,r,!0)}};function ql(n,t=3){let e=Math.pow(10,t-1);return Math.round(n*e)/e}function zm(n,t){let e=new Map,i;return n.forEach(r=>{if(r==="*"){i??=t.keys();for(let o of i)e.set(o,$e)}else for(let[o,a]of r)e.set(o,a)}),e}function Wl(n,t,e,i,r,o,a,c,m,p,x,C,R){return{type:0,element:n,triggerName:t,isRemovalTransition:r,fromState:e,fromStyles:o,toState:i,toStyles:a,timelines:c,queriedElements:m,preStyleProps:p,postStyleProps:x,totalTime:C,errors:R}}var Zo={},kr=class{_triggerName;ast;_stateStyles;constructor(t,e,i){this._triggerName=t,this.ast=e,this._stateStyles=i}match(t,e,i,r){return Bm(this.ast.matchers,t,e,i,r)}buildStyles(t,e,i){let r=this._stateStyles.get("*");return t!==void 0&&(r=this._stateStyles.get(t?.toString())||r),r?r.buildStyles(e,i):new Map}build(t,e,i,r,o,a,c,m,p,x){let C=[],R=this.ast.options&&this.ast.options.params||Zo,P=c&&c.params||Zo,E=this.buildStyles(i,P,C),A=m&&m.params||Zo,G=this.buildStyles(r,A,C),te=new Set,re=new Map,oe=new Map,ge=r==="void",ei={params:nc(A,R),delay:this.ast.options?.delay},Je=x?[]:ic(t,e,this.ast.animation,o,a,E,G,ei,p,C),xe=0;return Je.forEach(we=>{xe=Math.max(we.duration+we.delay,xe)}),C.length?Wl(e,this._triggerName,i,r,ge,E,G,[],[],re,oe,xe,C):(Je.forEach(we=>{let Ft=we.element,ti=Ee(re,Ft,new Set);we.preStyleProps.forEach(Nt=>ti.add(Nt));let Sa=Ee(oe,Ft,new Set);we.postStyleProps.forEach(Nt=>Sa.add(Nt)),Ft!==e&&te.add(Ft)}),Wl(e,this._triggerName,i,r,ge,E,G,Je,[...te.values()],re,oe,xe))}};function Bm(n,t,e,i,r){return n.some(o=>o(t,e,i,r))}function nc(n,t){let e=L({},t);return Object.entries(n).forEach(([i,r])=>{r!=null&&(e[i]=r)}),e}var sa=class{styles;defaultParams;normalizer;constructor(t,e,i){this.styles=t,this.defaultParams=e,this.normalizer=i}buildStyles(t,e){let i=new Map,r=nc(t,this.defaultParams);return this.styles.styles.forEach(o=>{typeof o!="string"&&o.forEach((a,c)=>{a&&(a=Ei(a,r,e));let m=this.normalizer.normalizePropertyName(c,e);a=this.normalizer.normalizeStyleValue(c,m,a,e),i.set(c,a)})}),i}};function Gm(n,t,e){return new la(n,t,e)}var la=class{name;ast;_normalizer;transitionFactories=[];fallbackTransition;states=new Map;constructor(t,e,i){this.name=t,this.ast=e,this._normalizer=i,e.states.forEach(r=>{let o=r.options&&r.options.params||{};this.states.set(r.name,new sa(r.style,o,i))}),Ql(this.states,"true","1"),Ql(this.states,"false","0"),e.transitions.forEach(r=>{this.transitionFactories.push(new kr(t,r,this.states))}),this.fallbackTransition=Hm(t,this.states)}get containsQueries(){return this.ast.queryCount>0}matchTransition(t,e,i,r){return this.transitionFactories.find(a=>a.match(t,e,i,r))||null}matchStyles(t,e,i){return this.fallbackTransition.buildStyles(t,e,i)}};function Hm(n,t,e){let i=[(a,c)=>!0],r={type:V.Sequence,steps:[],options:null},o={type:V.Transition,animation:r,matchers:i,options:null,queryCount:0,depCount:0};return new kr(n,o,t)}function Ql(n,t,e){n.has(t)?n.has(e)||n.set(e,n.get(t)):n.has(e)&&n.set(t,n.get(e))}var Um=new cn,ca=class{bodyNode;_driver;_normalizer;_animations=new Map;_playersById=new Map;players=[];constructor(t,e,i){this.bodyNode=t,this._driver=e,this._normalizer=i}register(t,e){let i=[],r=[],o=tc(this._driver,e,i,r);if(i.length)throw Dl(i);this._animations.set(t,o)}_buildPlayer(t,e,i){let r=t.element,o=Ho(this._normalizer,t.keyframes,e,i);return this._driver.animate(r,o,t.duration,t.delay,t.easing,[],!0)}create(t,e,i={}){let r=[],o=this._animations.get(t),a,c=new Map;if(o?(a=ic(this._driver,e,o,Qo,pr,new Map,new Map,i,Um,r),a.forEach(x=>{let C=Ee(c,x.element,new Map);x.postStyleProps.forEach(R=>C.set(R,null))})):(r.push(Rl()),a=[]),r.length)throw Pl(r);c.forEach((x,C)=>{x.forEach((R,P)=>{x.set(P,this._driver.computeStyle(C,P,$e))})});let m=a.map(x=>{let C=c.get(x.element);return this._buildPlayer(x,new Map,C)}),p=_t(m);return this._playersById.set(t,p),p.onDestroy(()=>this.destroy(t)),this.players.push(p),p}destroy(t){let e=this._getPlayer(t);e.destroy(),this._playersById.delete(t);let i=this.players.indexOf(e);i>=0&&this.players.splice(i,1)}_getPlayer(t){let e=this._playersById.get(t);if(!e)throw Il(t);return e}listen(t,e,i,r){let o=mr(e,"","","");return dr(this._getPlayer(t),i,o,r),()=>{}}command(t,e,i,r){if(i=="register"){this.register(t,r[0]);return}if(i=="create"){let a=r[0]||{};this.create(t,e,a);return}let o=this._getPlayer(t);switch(i){case"play":o.play();break;case"pause":o.pause();break;case"reset":o.reset();break;case"restart":o.restart();break;case"finish":o.finish();break;case"init":o.init();break;case"setPosition":o.setPosition(parseFloat(r[0]));break;case"destroy":this.destroy(t);break}}},Kl="ng-animate-queued",$m=".ng-animate-queued",Jo="ng-animate-disabled",qm=".ng-animate-disabled",Wm="ng-star-inserted",Qm=".ng-star-inserted",Km=[],rc={namespaceId:"",setForRemoval:!1,setForMove:!1,hasAnimation:!1,removedBeforeQueried:!1},Ym={namespaceId:"",setForMove:!1,setForRemoval:!1,hasAnimation:!1,removedBeforeQueried:!0},Ze="__ng_removed",dn=class{namespaceId;value;options;get params(){return this.options.params}constructor(t,e=""){this.namespaceId=e;let i=t&&t.hasOwnProperty("value"),r=i?t.value:t;if(this.value=Zm(r),i){let o=t,{value:a}=o,c=Ma(o,["value"]);this.options=c}else this.options={};this.options.params||(this.options.params={})}absorbOptions(t){let e=t.params;if(e){let i=this.options.params;Object.keys(e).forEach(r=>{i[r]==null&&(i[r]=e[r])})}}},ln="void",ea=new dn(ln),da=class{id;hostElement;_engine;players=[];_triggers=new Map;_queue=[];_elementListeners=new Map;_hostClassName;constructor(t,e,i){this.id=t,this.hostElement=e,this._engine=i,this._hostClassName="ng-tns-"+t,qe(e,this._hostClassName)}listen(t,e,i,r){if(!this._triggers.has(e))throw Al(i,e);if(i==null||i.length==0)throw Ol(e);if(!Jm(i))throw Ll(i,e);let o=Ee(this._elementListeners,t,[]),a={name:e,phase:i,callback:r};o.push(a);let c=Ee(this._engine.statesByElement,t,new Map);return c.has(e)||(qe(t,on),qe(t,on+"-"+e),c.set(e,ea)),()=>{this._engine.afterFlush(()=>{let m=o.indexOf(a);m>=0&&o.splice(m,1),this._triggers.has(e)||c.delete(e)})}}register(t,e){return this._triggers.has(t)?!1:(this._triggers.set(t,e),!0)}_getTrigger(t){let e=this._triggers.get(t);if(!e)throw Fl(t);return e}trigger(t,e,i,r=!0){let o=this._getTrigger(e),a=new mn(this.id,e,t),c=this._engine.statesByElement.get(t);c||(qe(t,on),qe(t,on+"-"+e),this._engine.statesByElement.set(t,c=new Map));let m=c.get(e),p=new dn(i,this.id);if(!(i&&i.hasOwnProperty("value"))&&m&&p.absorbOptions(m.options),c.set(e,p),m||(m=ea),!(p.value===ln)&&m.value===p.value){if(!iu(m.params,p.params)){let A=[],G=o.matchStyles(m.value,m.params,A),te=o.matchStyles(p.value,p.params,A);A.length?this._engine.reportError(A):this._engine.afterFlush(()=>{At(t,G),Xe(t,te)})}return}let R=Ee(this._engine.playersByElement,t,[]);R.forEach(A=>{A.namespaceId==this.id&&A.triggerName==e&&A.queued&&A.destroy()});let P=o.matchTransition(m.value,p.value,t,p.params),E=!1;if(!P){if(!r)return;P=o.fallbackTransition,E=!0}return this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:e,transition:P,fromState:m,toState:p,player:a,isFallbackTransition:E}),E||(qe(t,Kl),a.onStart(()=>{Ti(t,Kl)})),a.onDone(()=>{let A=this.players.indexOf(a);A>=0&&this.players.splice(A,1);let G=this._engine.playersByElement.get(t);if(G){let te=G.indexOf(a);te>=0&&G.splice(te,1)}}),this.players.push(a),R.push(a),a}deregister(t){this._triggers.delete(t),this._engine.statesByElement.forEach(e=>e.delete(t)),this._elementListeners.forEach((e,i)=>{this._elementListeners.set(i,e.filter(r=>r.name!=t))})}clearElementCache(t){this._engine.statesByElement.delete(t),this._elementListeners.delete(t);let e=this._engine.playersByElement.get(t);e&&(e.forEach(i=>i.destroy()),this._engine.playersByElement.delete(t))}_signalRemovalForInnerTriggers(t,e){let i=this._engine.driver.query(t,an,!0);i.forEach(r=>{if(r[Ze])return;let o=this._engine.fetchNamespacesByElement(r);o.size?o.forEach(a=>a.triggerLeaveAnimation(r,e,!1,!0)):this.clearElementCache(r)}),this._engine.afterFlushAnimationsDone(()=>i.forEach(r=>this.clearElementCache(r)))}triggerLeaveAnimation(t,e,i,r){let o=this._engine.statesByElement.get(t),a=new Map;if(o){let c=[];if(o.forEach((m,p)=>{if(a.set(p,m.value),this._triggers.has(p)){let x=this.trigger(t,p,ln,r);x&&c.push(x)}}),c.length)return this._engine.markElementAsRemoved(this.id,t,!0,e,a),i&&_t(c).onDone(()=>this._engine.processLeaveNode(t)),!0}return!1}prepareLeaveAnimationListeners(t){let e=this._elementListeners.get(t),i=this._engine.statesByElement.get(t);if(e&&i){let r=new Set;e.forEach(o=>{let a=o.name;if(r.has(a))return;r.add(a);let m=this._triggers.get(a).fallbackTransition,p=i.get(a)||ea,x=new dn(ln),C=new mn(this.id,a,t);this._engine.totalQueuedPlayers++,this._queue.push({element:t,triggerName:a,transition:m,fromState:p,toState:x,player:C,isFallbackTransition:!0})})}}removeNode(t,e){let i=this._engine;if(t.childElementCount&&this._signalRemovalForInnerTriggers(t,e),this.triggerLeaveAnimation(t,e,!0))return;let r=!1;if(i.totalAnimations){let o=i.players.length?i.playersByQueriedElement.get(t):[];if(o&&o.length)r=!0;else{let a=t;for(;a=a.parentNode;)if(i.statesByElement.get(a)){r=!0;break}}}if(this.prepareLeaveAnimationListeners(t),r)i.markElementAsRemoved(this.id,t,!1,e);else{let o=t[Ze];(!o||o===rc)&&(i.afterFlush(()=>this.clearElementCache(t)),i.destroyInnerAnimations(t),i._onRemovalComplete(t,e))}}insertNode(t,e){qe(t,this._hostClassName)}drainQueuedTransitions(t){let e=[];return this._queue.forEach(i=>{let r=i.player;if(r.destroyed)return;let o=i.element,a=this._elementListeners.get(o);a&&a.forEach(c=>{if(c.name==i.triggerName){let m=mr(o,i.triggerName,i.fromState.value,i.toState.value);m._data=t,dr(i.player,c.phase,m,c.callback)}}),r.markedForDestroy?this._engine.afterFlush(()=>{r.destroy()}):e.push(i)}),this._queue=[],e.sort((i,r)=>{let o=i.transition.ast.depCount,a=r.transition.ast.depCount;return o==0||a==0?o-a:this._engine.driver.containsElement(i.element,r.element)?1:-1})}destroy(t){this.players.forEach(e=>e.destroy()),this._signalRemovalForInnerTriggers(this.hostElement,t)}},ma=class{bodyNode;driver;_normalizer;players=[];newHostElements=new Map;playersByElement=new Map;playersByQueriedElement=new Map;statesByElement=new Map;disabledNodes=new Set;totalAnimations=0;totalQueuedPlayers=0;_namespaceLookup={};_namespaceList=[];_flushFns=[];_whenQuietFns=[];namespacesByHostElement=new Map;collectedEnterElements=[];collectedLeaveElements=[];onRemovalComplete=(t,e)=>{};_onRemovalComplete(t,e){this.onRemovalComplete(t,e)}constructor(t,e,i){this.bodyNode=t,this.driver=e,this._normalizer=i}get queuedPlayers(){let t=[];return this._namespaceList.forEach(e=>{e.players.forEach(i=>{i.queued&&t.push(i)})}),t}createNamespace(t,e){let i=new da(t,e,this);return this.bodyNode&&this.driver.containsElement(this.bodyNode,e)?this._balanceNamespaceList(i,e):(this.newHostElements.set(e,i),this.collectEnterElement(e)),this._namespaceLookup[t]=i}_balanceNamespaceList(t,e){let i=this._namespaceList,r=this.namespacesByHostElement;if(i.length-1>=0){let a=!1,c=this.driver.getParentElement(e);for(;c;){let m=r.get(c);if(m){let p=i.indexOf(m);i.splice(p+1,0,t),a=!0;break}c=this.driver.getParentElement(c)}a||i.unshift(t)}else i.push(t);return r.set(e,t),t}register(t,e){let i=this._namespaceLookup[t];return i||(i=this.createNamespace(t,e)),i}registerTrigger(t,e,i){let r=this._namespaceLookup[t];r&&r.register(e,i)&&this.totalAnimations++}destroy(t,e){t&&(this.afterFlush(()=>{}),this.afterFlushAnimationsDone(()=>{let i=this._fetchNamespace(t);this.namespacesByHostElement.delete(i.hostElement);let r=this._namespaceList.indexOf(i);r>=0&&this._namespaceList.splice(r,1),i.destroy(e),delete this._namespaceLookup[t]}))}_fetchNamespace(t){return this._namespaceLookup[t]}fetchNamespacesByElement(t){let e=new Set,i=this.statesByElement.get(t);if(i){for(let r of i.values())if(r.namespaceId){let o=this._fetchNamespace(r.namespaceId);o&&e.add(o)}}return e}trigger(t,e,i,r){if(vr(e)){let o=this._fetchNamespace(t);if(o)return o.trigger(e,i,r),!0}return!1}insertNode(t,e,i,r){if(!vr(e))return;let o=e[Ze];if(o&&o.setForRemoval){o.setForRemoval=!1,o.setForMove=!0;let a=this.collectedLeaveElements.indexOf(e);a>=0&&this.collectedLeaveElements.splice(a,1)}if(t){let a=this._fetchNamespace(t);a&&a.insertNode(e,i)}r&&this.collectEnterElement(e)}collectEnterElement(t){this.collectedEnterElements.push(t)}markElementAsDisabled(t,e){e?this.disabledNodes.has(t)||(this.disabledNodes.add(t),qe(t,Jo)):this.disabledNodes.has(t)&&(this.disabledNodes.delete(t),Ti(t,Jo))}removeNode(t,e,i){if(vr(e)){let r=t?this._fetchNamespace(t):null;r?r.removeNode(e,i):this.markElementAsRemoved(t,e,!1,i);let o=this.namespacesByHostElement.get(e);o&&o.id!==t&&o.removeNode(e,i)}else this._onRemovalComplete(e,i)}markElementAsRemoved(t,e,i,r,o){this.collectedLeaveElements.push(e),e[Ze]={namespaceId:t,setForRemoval:r,hasAnimation:i,removedBeforeQueried:!1,previousTriggersValues:o}}listen(t,e,i,r,o){return vr(e)?this._fetchNamespace(t).listen(e,i,r,o):()=>{}}_buildInstruction(t,e,i,r,o){return t.transition.build(this.driver,t.element,t.fromState.value,t.toState.value,i,r,t.fromState.options,t.toState.options,e,o)}destroyInnerAnimations(t){let e=this.driver.query(t,an,!0);e.forEach(i=>this.destroyActiveAnimationsForElement(i)),this.playersByQueriedElement.size!=0&&(e=this.driver.query(t,hr,!0),e.forEach(i=>this.finishActiveQueriedAnimationOnElement(i)))}destroyActiveAnimationsForElement(t){let e=this.playersByElement.get(t);e&&e.forEach(i=>{i.queued?i.markedForDestroy=!0:i.destroy()})}finishActiveQueriedAnimationOnElement(t){let e=this.playersByQueriedElement.get(t);e&&e.forEach(i=>i.finish())}whenRenderingDone(){return new Promise(t=>{if(this.players.length)return _t(this.players).onDone(()=>t());t()})}processLeaveNode(t){let e=t[Ze];if(e&&e.setForRemoval){if(t[Ze]=rc,e.namespaceId){this.destroyInnerAnimations(t);let i=this._fetchNamespace(e.namespaceId);i&&i.clearElementCache(t)}this._onRemovalComplete(t,e.setForRemoval)}t.classList?.contains(Jo)&&this.markElementAsDisabled(t,!1),this.driver.query(t,qm,!0).forEach(i=>{this.markElementAsDisabled(i,!1)})}flush(t=-1){let e=[];if(this.newHostElements.size&&(this.newHostElements.forEach((i,r)=>this._balanceNamespaceList(i,r)),this.newHostElements.clear()),this.totalAnimations&&this.collectedEnterElements.length)for(let i=0;ii()),this._flushFns=[],this._whenQuietFns.length){let i=this._whenQuietFns;this._whenQuietFns=[],e.length?_t(e).onDone(()=>{i.forEach(r=>r())}):i.forEach(r=>r())}}reportError(t){throw Nl(t)}_flushAnimations(t,e){let i=new cn,r=[],o=new Map,a=[],c=new Map,m=new Map,p=new Map,x=new Set;this.disabledNodes.forEach(M=>{x.add(M);let O=this.driver.query(M,$m,!0);for(let F=0;F{let F=Qo+A++;E.set(O,F),M.forEach(H=>qe(H,F))});let G=[],te=new Set,re=new Set;for(let M=0;Mte.add(H)):re.add(O))}let oe=new Map,ge=Zl(R,Array.from(te));ge.forEach((M,O)=>{let F=pr+A++;oe.set(O,F),M.forEach(H=>qe(H,F))}),t.push(()=>{P.forEach((M,O)=>{let F=E.get(O);M.forEach(H=>Ti(H,F))}),ge.forEach((M,O)=>{let F=oe.get(O);M.forEach(H=>Ti(H,F))}),G.forEach(M=>{this.processLeaveNode(M)})});let ei=[],Je=[];for(let M=this._namespaceList.length-1;M>=0;M--)this._namespaceList[M].drainQueuedTransitions(e).forEach(F=>{let H=F.player,me=F.element;if(ei.push(H),this.collectedEnterElements.length){let ye=me[Ze];if(ye&&ye.setForMove){if(ye.previousTriggersValues&&ye.previousTriggersValues.has(F.triggerName)){let jt=ye.previousTriggersValues.get(F.triggerName),Oe=this.statesByElement.get(F.element);if(Oe&&Oe.has(F.triggerName)){let pn=Oe.get(F.triggerName);pn.value=jt,Oe.set(F.triggerName,pn)}}H.destroy();return}}let et=!C||!this.driver.containsElement(C,me),Me=oe.get(me),yt=E.get(me),ie=this._buildInstruction(F,i,yt,Me,et);if(ie.errors&&ie.errors.length){Je.push(ie);return}if(et){H.onStart(()=>At(me,ie.fromStyles)),H.onDestroy(()=>Xe(me,ie.toStyles)),r.push(H);return}if(F.isFallbackTransition){H.onStart(()=>At(me,ie.fromStyles)),H.onDestroy(()=>Xe(me,ie.toStyles)),r.push(H);return}let Ta=[];ie.timelines.forEach(ye=>{ye.stretchStartingKeyframe=!0,this.disabledNodes.has(ye.element)||Ta.push(ye)}),ie.timelines=Ta,i.append(me,ie.timelines);let Pc={instruction:ie,player:H,element:me};a.push(Pc),ie.queriedElements.forEach(ye=>Ee(c,ye,[]).push(H)),ie.preStyleProps.forEach((ye,jt)=>{if(ye.size){let Oe=m.get(jt);Oe||m.set(jt,Oe=new Set),ye.forEach((pn,Kr)=>Oe.add(Kr))}}),ie.postStyleProps.forEach((ye,jt)=>{let Oe=p.get(jt);Oe||p.set(jt,Oe=new Set),ye.forEach((pn,Kr)=>Oe.add(Kr))})});if(Je.length){let M=[];Je.forEach(O=>{M.push(jl(O.triggerName,O.errors))}),ei.forEach(O=>O.destroy()),this.reportError(M)}let xe=new Map,we=new Map;a.forEach(M=>{let O=M.element;i.has(O)&&(we.set(O,O),this._beforeAnimationBuild(M.player.namespaceId,M.instruction,xe))}),r.forEach(M=>{let O=M.element;this._getPreviousPlayers(O,!1,M.namespaceId,M.triggerName,null).forEach(H=>{Ee(xe,O,[]).push(H),H.destroy()})});let Ft=G.filter(M=>Jl(M,m,p)),ti=new Map;Xl(ti,this.driver,re,p,$e).forEach(M=>{Jl(M,m,p)&&Ft.push(M)});let Nt=new Map;P.forEach((M,O)=>{Xl(Nt,this.driver,new Set(M),m,Si)}),Ft.forEach(M=>{let O=ti.get(M),F=Nt.get(M);ti.set(M,new Map([...O?.entries()??[],...F?.entries()??[]]))});let Qr=[],ka=[],Ea={};a.forEach(M=>{let{element:O,player:F,instruction:H}=M;if(i.has(O)){if(x.has(O)){F.onDestroy(()=>Xe(O,H.toStyles)),F.disabled=!0,F.overrideTotalTime(H.totalTime),r.push(F);return}let me=Ea;if(we.size>1){let Me=O,yt=[];for(;Me=Me.parentNode;){let ie=we.get(Me);if(ie){me=ie;break}yt.push(Me)}yt.forEach(ie=>we.set(ie,me))}let et=this._buildAnimation(F.namespaceId,H,xe,o,Nt,ti);if(F.setRealPlayer(et),me===Ea)Qr.push(F);else{let Me=this.playersByElement.get(me);Me&&Me.length&&(F.parentPlayer=_t(Me)),r.push(F)}}else At(O,H.fromStyles),F.onDestroy(()=>Xe(O,H.toStyles)),ka.push(F),x.has(O)&&r.push(F)}),ka.forEach(M=>{let O=o.get(M.element);if(O&&O.length){let F=_t(O);M.setRealPlayer(F)}}),r.forEach(M=>{M.parentPlayer?M.syncPlayerEvents(M.parentPlayer):M.destroy()});for(let M=0;M!et.destroyed);me.length?eu(this,O,me):this.processLeaveNode(O)}return G.length=0,Qr.forEach(M=>{this.players.push(M),M.onDone(()=>{M.destroy();let O=this.players.indexOf(M);this.players.splice(O,1)}),M.play()}),Qr}afterFlush(t){this._flushFns.push(t)}afterFlushAnimationsDone(t){this._whenQuietFns.push(t)}_getPreviousPlayers(t,e,i,r,o){let a=[];if(e){let c=this.playersByQueriedElement.get(t);c&&(a=c)}else{let c=this.playersByElement.get(t);if(c){let m=!o||o==ln;c.forEach(p=>{p.queued||!m&&p.triggerName!=r||a.push(p)})}}return(i||r)&&(a=a.filter(c=>!(i&&i!=c.namespaceId||r&&r!=c.triggerName))),a}_beforeAnimationBuild(t,e,i){let r=e.triggerName,o=e.element,a=e.isRemovalTransition?void 0:t,c=e.isRemovalTransition?void 0:r;for(let m of e.timelines){let p=m.element,x=p!==o,C=Ee(i,p,[]);this._getPreviousPlayers(p,x,a,c,e.toState).forEach(P=>{let E=P.getRealPlayer();E.beforeDestroy&&E.beforeDestroy(),P.destroy(),C.push(P)})}At(o,e.fromStyles)}_buildAnimation(t,e,i,r,o,a){let c=e.triggerName,m=e.element,p=[],x=new Set,C=new Set,R=e.timelines.map(E=>{let A=E.element;x.add(A);let G=A[Ze];if(G&&G.removedBeforeQueried)return new ct(E.duration,E.delay);let te=A!==m,re=tu((i.get(A)||Km).map(xe=>xe.getRealPlayer())).filter(xe=>{let we=xe;return we.element?we.element===A:!1}),oe=o.get(A),ge=a.get(A),ei=Ho(this._normalizer,E.keyframes,oe,ge),Je=this._buildPlayer(E,ei,re);if(E.subTimeline&&r&&C.add(A),te){let xe=new mn(t,c,A);xe.setRealPlayer(Je),p.push(xe)}return Je});p.forEach(E=>{Ee(this.playersByQueriedElement,E.element,[]).push(E),E.onDone(()=>Xm(this.playersByQueriedElement,E.element,E))}),x.forEach(E=>qe(E,Ko));let P=_t(R);return P.onDestroy(()=>{x.forEach(E=>Ti(E,Ko)),Xe(m,e.toStyles)}),C.forEach(E=>{Ee(r,E,[]).push(P)}),P}_buildPlayer(t,e,i){return e.length>0?this.driver.animate(t.element,e,t.duration,t.delay,t.easing,i):new ct(t.duration,t.delay)}},mn=class{namespaceId;triggerName;element;_player=new ct;_containsRealPlayer=!1;_queuedCallbacks=new Map;destroyed=!1;parentPlayer=null;markedForDestroy=!1;disabled=!1;queued=!0;totalTime=0;constructor(t,e,i){this.namespaceId=t,this.triggerName=e,this.element=i}setRealPlayer(t){this._containsRealPlayer||(this._player=t,this._queuedCallbacks.forEach((e,i)=>{e.forEach(r=>dr(t,i,void 0,r))}),this._queuedCallbacks.clear(),this._containsRealPlayer=!0,this.overrideTotalTime(t.totalTime),this.queued=!1)}getRealPlayer(){return this._player}overrideTotalTime(t){this.totalTime=t}syncPlayerEvents(t){let e=this._player;e.triggerCallback&&t.onStart(()=>e.triggerCallback("start")),t.onDone(()=>this.finish()),t.onDestroy(()=>this.destroy())}_queueEvent(t,e){Ee(this._queuedCallbacks,t,[]).push(e)}onDone(t){this.queued&&this._queueEvent("done",t),this._player.onDone(t)}onStart(t){this.queued&&this._queueEvent("start",t),this._player.onStart(t)}onDestroy(t){this.queued&&this._queueEvent("destroy",t),this._player.onDestroy(t)}init(){this._player.init()}hasStarted(){return this.queued?!1:this._player.hasStarted()}play(){!this.queued&&this._player.play()}pause(){!this.queued&&this._player.pause()}restart(){!this.queued&&this._player.restart()}finish(){this._player.finish()}destroy(){this.destroyed=!0,this._player.destroy()}reset(){!this.queued&&this._player.reset()}setPosition(t){this.queued||this._player.setPosition(t)}getPosition(){return this.queued?0:this._player.getPosition()}triggerCallback(t){let e=this._player;e.triggerCallback&&e.triggerCallback(t)}};function Xm(n,t,e){let i=n.get(t);if(i){if(i.length){let r=i.indexOf(e);i.splice(r,1)}i.length==0&&n.delete(t)}return i}function Zm(n){return n??null}function vr(n){return n&&n.nodeType===1}function Jm(n){return n=="start"||n=="done"}function Yl(n,t){let e=n.style.display;return n.style.display=t??"none",e}function Xl(n,t,e,i,r){let o=[];e.forEach(m=>o.push(Yl(m)));let a=[];i.forEach((m,p)=>{let x=new Map;m.forEach(C=>{let R=t.computeStyle(p,C,r);x.set(C,R),(!R||R.length==0)&&(p[Ze]=Ym,a.push(p))}),n.set(p,x)});let c=0;return e.forEach(m=>Yl(m,o[c++])),a}function Zl(n,t){let e=new Map;if(n.forEach(c=>e.set(c,[])),t.length==0)return e;let i=1,r=new Set(t),o=new Map;function a(c){if(!c)return i;let m=o.get(c);if(m)return m;let p=c.parentNode;return e.has(p)?m=p:r.has(p)?m=i:m=a(p),o.set(c,m),m}return t.forEach(c=>{let m=a(c);m!==i&&e.get(m).push(c)}),e}function qe(n,t){n.classList?.add(t)}function Ti(n,t){n.classList?.remove(t)}function eu(n,t,e){_t(e).onDone(()=>n.processLeaveNode(t))}function tu(n){let t=[];return oc(n,t),t}function oc(n,t){for(let e=0;er.add(o)):t.set(n,i),e.delete(n),!0}var Mi=class{_driver;_normalizer;_transitionEngine;_timelineEngine;_triggerCache={};onRemovalComplete=(t,e)=>{};constructor(t,e,i){this._driver=e,this._normalizer=i,this._transitionEngine=new ma(t.body,e,i),this._timelineEngine=new ca(t.body,e,i),this._transitionEngine.onRemovalComplete=(r,o)=>this.onRemovalComplete(r,o)}registerTrigger(t,e,i,r,o){let a=t+"-"+r,c=this._triggerCache[a];if(!c){let m=[],p=[],x=tc(this._driver,o,m,p);if(m.length)throw Ml(r,m);c=Gm(r,x,this._normalizer),this._triggerCache[a]=c}this._transitionEngine.registerTrigger(e,r,c)}register(t,e){this._transitionEngine.register(t,e)}destroy(t,e){this._transitionEngine.destroy(t,e)}onInsert(t,e,i,r){this._transitionEngine.insertNode(t,e,i,r)}onRemove(t,e,i){this._transitionEngine.removeNode(t,e,i)}disableAnimations(t,e){this._transitionEngine.markElementAsDisabled(t,e)}process(t,e,i,r){if(i.charAt(0)=="@"){let[o,a]=Uo(i),c=r;this._timelineEngine.command(o,e,a,c)}else this._transitionEngine.trigger(t,e,i,r)}listen(t,e,i,r,o){if(i.charAt(0)=="@"){let[a,c]=Uo(i);return this._timelineEngine.listen(a,e,c,o)}return this._transitionEngine.listen(t,e,i,r,o)}flush(t=-1){this._transitionEngine.flush(t)}get players(){return[...this._transitionEngine.players,...this._timelineEngine.players]}whenRenderingDone(){return this._transitionEngine.whenRenderingDone()}afterFlushAnimationsDone(t){this._transitionEngine.afterFlushAnimationsDone(t)}};function nu(n,t){let e=null,i=null;return Array.isArray(t)&&t.length?(e=ta(t[0]),t.length>1&&(i=ta(t[t.length-1]))):t instanceof Map&&(e=ta(t)),e||i?new ru(n,e,i):null}var ru=(()=>{class n{_element;_startStyles;_endStyles;static initialStylesByElement=new WeakMap;_state=0;_initialStyles;constructor(e,i,r){this._element=e,this._startStyles=i,this._endStyles=r;let o=n.initialStylesByElement.get(e);o||n.initialStylesByElement.set(e,o=new Map),this._initialStyles=o}start(){this._state<1&&(this._startStyles&&Xe(this._element,this._startStyles,this._initialStyles),this._state=1)}finish(){this.start(),this._state<2&&(Xe(this._element,this._initialStyles),this._endStyles&&(Xe(this._element,this._endStyles),this._endStyles=null),this._state=1)}destroy(){this.finish(),this._state<3&&(n.initialStylesByElement.delete(this._element),this._startStyles&&(At(this._element,this._startStyles),this._endStyles=null),this._endStyles&&(At(this._element,this._endStyles),this._endStyles=null),Xe(this._element,this._initialStyles),this._state=3)}}return n})();function ta(n){let t=null;return n.forEach((e,i)=>{ou(i)&&(t=t||new Map,t.set(i,e))}),t}function ou(n){return n==="display"||n==="position"}var Er=class{element;keyframes;options;_specialStyles;_onDoneFns=[];_onStartFns=[];_onDestroyFns=[];_duration;_delay;_initialized=!1;_finished=!1;_started=!1;_destroyed=!1;_finalKeyframe;_originalOnDoneFns=[];_originalOnStartFns=[];domPlayer;time=0;parentPlayer=null;currentSnapshot=new Map;constructor(t,e,i,r){this.element=t,this.keyframes=e,this.options=i,this._specialStyles=r,this._duration=i.duration,this._delay=i.delay||0,this.time=this._duration+this._delay}_onFinish(){this._finished||(this._finished=!0,this._onDoneFns.forEach(t=>t()),this._onDoneFns=[])}init(){this._buildPlayer(),this._preparePlayerBeforeStart()}_buildPlayer(){if(this._initialized)return;this._initialized=!0;let t=this.keyframes;this.domPlayer=this._triggerWebAnimation(this.element,t,this.options),this._finalKeyframe=t.length?t[t.length-1]:new Map;let e=()=>this._onFinish();this.domPlayer.addEventListener("finish",e),this.onDestroy(()=>{this.domPlayer.removeEventListener("finish",e)})}_preparePlayerBeforeStart(){this._delay?this._resetDomPlayerState():this.domPlayer.pause()}_convertKeyframesToObject(t){let e=[];return t.forEach(i=>{e.push(Object.fromEntries(i))}),e}_triggerWebAnimation(t,e,i){return t.animate(this._convertKeyframesToObject(e),i)}onStart(t){this._originalOnStartFns.push(t),this._onStartFns.push(t)}onDone(t){this._originalOnDoneFns.push(t),this._onDoneFns.push(t)}onDestroy(t){this._onDestroyFns.push(t)}play(){this._buildPlayer(),this.hasStarted()||(this._onStartFns.forEach(t=>t()),this._onStartFns=[],this._started=!0,this._specialStyles&&this._specialStyles.start()),this.domPlayer.play()}pause(){this.init(),this.domPlayer.pause()}finish(){this.init(),this._specialStyles&&this._specialStyles.finish(),this._onFinish(),this.domPlayer.finish()}reset(){this._resetDomPlayerState(),this._destroyed=!1,this._finished=!1,this._started=!1,this._onStartFns=this._originalOnStartFns,this._onDoneFns=this._originalOnDoneFns}_resetDomPlayerState(){this.domPlayer&&this.domPlayer.cancel()}restart(){this.reset(),this.play()}hasStarted(){return this._started}destroy(){this._destroyed||(this._destroyed=!0,this._resetDomPlayerState(),this._onFinish(),this._specialStyles&&this._specialStyles.destroy(),this._onDestroyFns.forEach(t=>t()),this._onDestroyFns=[])}setPosition(t){this.domPlayer===void 0&&this.init(),this.domPlayer.currentTime=t*this.time}getPosition(){return+(this.domPlayer.currentTime??0)/this.time}get totalTime(){return this._delay+this._duration}beforeDestroy(){let t=new Map;this.hasStarted()&&this._finalKeyframe.forEach((i,r)=>{r!=="offset"&&t.set(r,this._finished?i:gr(this.element,r))}),this.currentSnapshot=t}triggerCallback(t){let e=t==="start"?this._onStartFns:this._onDoneFns;e.forEach(i=>i()),e.length=0}},Tr=class{validateStyleProperty(t){return!0}validateAnimatableStyleProperty(t){return!0}containsElement(t,e){return $o(t,e)}getParentElement(t){return ur(t)}query(t,e,i){return qo(t,e,i)}computeStyle(t,e,i){return gr(t,e)}animate(t,e,i,r,o,a=[]){let c=r==0?"both":"forwards",m={duration:i,delay:r,fill:c};o&&(m.easing=o);let p=new Map,x=a.filter(P=>P instanceof Er);Gl(i,r)&&x.forEach(P=>{P.currentSnapshot.forEach((E,A)=>p.set(A,E))});let C=zl(e).map(P=>new Map(P));C=Hl(t,C,p);let R=nu(t,C);return new Er(t,C,m,R)}};var br="@",ac="@.disabled",Mr=class{namespaceId;delegate;engine;_onDestroy;\u0275type=0;constructor(t,e,i,r){this.namespaceId=t,this.delegate=e,this.engine=i,this._onDestroy=r}get data(){return this.delegate.data}destroyNode(t){this.delegate.destroyNode?.(t)}destroy(){this.engine.destroy(this.namespaceId,this.delegate),this.engine.afterFlushAnimationsDone(()=>{queueMicrotask(()=>{this.delegate.destroy()})}),this._onDestroy?.()}createElement(t,e){return this.delegate.createElement(t,e)}createComment(t){return this.delegate.createComment(t)}createText(t){return this.delegate.createText(t)}appendChild(t,e){this.delegate.appendChild(t,e),this.engine.onInsert(this.namespaceId,e,t,!1)}insertBefore(t,e,i,r=!0){this.delegate.insertBefore(t,e,i),this.engine.onInsert(this.namespaceId,e,t,r)}removeChild(t,e,i){this.parentNode(e)&&this.engine.onRemove(this.namespaceId,e,this.delegate)}selectRootElement(t,e){return this.delegate.selectRootElement(t,e)}parentNode(t){return this.delegate.parentNode(t)}nextSibling(t){return this.delegate.nextSibling(t)}setAttribute(t,e,i,r){this.delegate.setAttribute(t,e,i,r)}removeAttribute(t,e,i){this.delegate.removeAttribute(t,e,i)}addClass(t,e){this.delegate.addClass(t,e)}removeClass(t,e){this.delegate.removeClass(t,e)}setStyle(t,e,i,r){this.delegate.setStyle(t,e,i,r)}removeStyle(t,e,i){this.delegate.removeStyle(t,e,i)}setProperty(t,e,i){e.charAt(0)==br&&e==ac?this.disableAnimations(t,!!i):this.delegate.setProperty(t,e,i)}setValue(t,e){this.delegate.setValue(t,e)}listen(t,e,i,r){return this.delegate.listen(t,e,i,r)}disableAnimations(t,e){this.engine.disableAnimations(t,e)}},ua=class extends Mr{factory;constructor(t,e,i,r,o){super(e,i,r,o),this.factory=t,this.namespaceId=e}setProperty(t,e,i){e.charAt(0)==br?e.charAt(1)=="."&&e==ac?(i=i===void 0?!0:!!i,this.disableAnimations(t,i)):this.engine.process(this.namespaceId,t,e.slice(1),i):this.delegate.setProperty(t,e,i)}listen(t,e,i,r){if(e.charAt(0)==br){let o=au(t),a=e.slice(1),c="";return a.charAt(0)!=br&&([a,c]=su(a)),this.engine.listen(this.namespaceId,o,a,c,m=>{let p=m._data||-1;this.factory.scheduleListenerCallback(p,i,m)})}return this.delegate.listen(t,e,i,r)}};function au(n){switch(n){case"body":return document.body;case"document":return document;case"window":return window;default:return n}}function su(n){let t=n.indexOf("."),e=n.substring(0,t),i=n.slice(t+1);return[e,i]}var Dr=class{delegate;engine;_zone;_currentId=0;_microtaskId=1;_animationCallbacksBuffer=[];_rendererCache=new Map;_cdRecurDepth=0;constructor(t,e,i){this.delegate=t,this.engine=e,this._zone=i,e.onRemovalComplete=(r,o)=>{o?.removeChild(null,r)}}createRenderer(t,e){let i="",r=this.delegate.createRenderer(t,e);if(!t||!e?.data?.animation){let p=this._rendererCache,x=p.get(r);if(!x){let C=()=>p.delete(r);x=new Mr(i,r,this.engine,C),p.set(r,x)}return x}let o=e.id,a=e.id+"-"+this._currentId;this._currentId++,this.engine.register(a,t);let c=p=>{Array.isArray(p)?p.forEach(c):this.engine.registerTrigger(o,a,t,p.name,p)};return e.data.animation.forEach(c),new ua(this,a,r,this.engine)}begin(){this._cdRecurDepth++,this.delegate.begin&&this.delegate.begin()}_scheduleCountTask(){queueMicrotask(()=>{this._microtaskId++})}scheduleListenerCallback(t,e,i){if(t>=0&&te(i));return}let r=this._animationCallbacksBuffer;r.length==0&&queueMicrotask(()=>{this._zone.run(()=>{r.forEach(o=>{let[a,c]=o;a(c)}),this._animationCallbacksBuffer=[]})}),r.push([e,i])}end(){this._cdRecurDepth--,this._cdRecurDepth==0&&this._zone.runOutsideAngular(()=>{this._scheduleCountTask(),this.engine.flush(this._microtaskId)}),this.delegate.end&&this.delegate.end()}whenRenderingDone(){return this.engine.whenRenderingDone()}componentReplaced(t){this.engine.flush(),this.delegate.componentReplaced?.(t)}};var cu=(()=>{class n extends Mi{constructor(e,i,r){super(e,i,r)}ngOnDestroy(){this.flush()}static \u0275fac=function(i){return new(i||n)(Ce(Fi),Ce(Zt),Ce(Jt))};static \u0275prov=J({token:n,factory:n.\u0275fac})}return n})();function du(){return new xr}function mu(n,t,e){return new Dr(n,t,e)}var sc=[{provide:Jt,useFactory:du},{provide:Mi,useClass:cu},{provide:Ua,useFactory:mu,deps:[ts,Mi,ut]}],D0=[{provide:Zt,useClass:pa},{provide:Bt,useValue:"NoopAnimations"},...sc],uu=[{provide:Zt,useFactory:()=>new Tr},{provide:Bt,useFactory:()=>"BrowserAnimations"},...sc];function lc(){return ao("NgEagerAnimations"),[...uu]}var Rr=class n{constructor(t,e){this.http=t;this.snackBar=e}API_BASE="http://localhost:8080/projects";_activeProject$=new ve(null);activeProject$=this._activeProject$.asObservable();getAllProjects(){return this.http.get(`${this.API_BASE}/list/details`).pipe(ae(t=>this.handleError(t,"Error while loading the projects")))}getActiveProject(){return this.http.get(`${this.API_BASE}/current`).pipe(Q(t=>{this._activeProject$.next(t.name?t:null)}),ae(t=>this.handleError(t,"Error while retrieving the project")))}openProject(t){return this.http.post(`${this.API_BASE}/open`,t).pipe(Q(e=>{this._activeProject$.next(e),this.snackBar.open("Project opened","Close",{duration:3e3,panelClass:["snackbar-success"]})}),ae(e=>this.handleError(e,"Error while opening the project")))}createProject(t){return this.http.post(`${this.API_BASE}/create`,t).pipe(Q(e=>{this._activeProject$.next(e),this.snackBar.open("Project created","Close",{duration:3e3,panelClass:["snackbar-success"]})}),ae(e=>this.handleError(e,"Error while creating the project")))}deleteProject(t){return this.http.delete(`${this.API_BASE}/${t}`,{responseType:"text"})}updateProject(t,e){return console.log("OBJECT OF UPDATE : ",e),this.http.put(`${this.API_BASE}/${t}`,e).pipe(Q(i=>{console.log("Project updated:",i?.message??i)}),ae(i=>(console.error("Update project failed:",i),tt(()=>i))))}closeProject(){return this.http.post(`${this.API_BASE}/close`,{}).pipe(Q(()=>{this._activeProject$.next(null),this.snackBar.open("Project closed","Close",{duration:3e3,panelClass:["snackbar-info"]})}),ae(t=>this.handleError(t,"Error while closing the project")))}setActiveProject(t){this._activeProject$.next(t)}get currentActiveProject(){return this._activeProject$.value}handleError(t,e){let i=e;return t.status===400?i="Name of project is invalid or already exists":t.status===0?i="Impossible to reach the server.":t.error?.message&&(i=t.error.message),this.snackBar.open(i,"Fermer",{duration:5e3,panelClass:["snackbar-error"]}),tt(()=>new Error(i))}importBackUpProject(t){let e=new FormData;return e.append("file",t),this.http.post(`${this.API_BASE}/import-backup`,e)}importTurtleSource(t){let e=new FormData;return e.append("file",t),this.http.post(`${this.API_BASE}/import`,e)}exportInternalDataSource(){return Vt(this,null,function*(){return Zr(this.http.get(`${this.API_BASE}/export/internal`,{responseType:"blob"}))})}exportBackup(){return Vt(this,null,function*(){return Zr(this.http.get(`${this.API_BASE}/export/backup`,{responseType:"blob"}))})}static \u0275fac=function(e){return new(e||n)(Ce(ai),Ce(Tt))};static \u0275prov=J({token:n,factory:n.\u0275fac,providedIn:"root"})};var hu=["fileInput"],fu=["zipInput"],gu=(n,t)=>t.name;function _u(n,t){if(n&1){let e=T();s(0,"div",12),g(1,"span",47),s(2,"span",15),u(3),l(),s(4,"button",48),_("click",function(){y(e);let r=h();return v(r.onCloseProject())}),b(),s(5,"svg",19),g(6,"path",49),l()()()}if(n&2){let e=h();d(3),j(e.activeProject.name)}}function yu(n,t){if(n&1&&(s(0,"div",20),g(1,"span",50),s(2,"span"),u(3,"Projet actif : "),s(4,"strong"),u(5),l()()()),n&2){let e=h();d(5),j(e.activeProject.name)}}function vu(n,t){if(n&1&&(s(0,"span",79),u(1),l()),n&2){let e=h().$implicit;f("title",e.description),d(),j(e.description)}}function bu(n,t){n&1&&(s(0,"span",80),u(1,"No description"),l())}function xu(n,t){if(n&1&&(u(0),Re(1,"date")),n&2){let e=h().$implicit;D(" ",pt(1,1,e.created,"dd/MM/yyyy")," ")}}function wu(n,t){n&1&&(s(0,"span",82),u(1,"-"),l())}function Cu(n,t){if(n&1&&(u(0),Re(1,"date")),n&2){let e=h().$implicit;D(" ",pt(1,1,e.lastModified,"dd/MM/yyyy HH:mm")," ")}}function Su(n,t){n&1&&(s(0,"span",82),u(1,"-"),l())}function ku(n,t){n&1&&(s(0,"span",83),g(1,"span",94),u(2," Active "),l())}function Eu(n,t){n&1&&(s(0,"span",84),u(1," Closed "),l())}function Tu(n,t){if(n&1){let e=T();s(0,"tr",73),_("click",function(){let r=y(e).$implicit,o=h(2);return v(o.selectProject(r))}),s(1,"td",74)(2,"div",64)(3,"div",75),b(),s(4,"svg",76),g(5,"path",8),l()(),S(),s(6,"span",77),u(7),l()()(),s(8,"td",78),w(9,vu,2,2,"span",79)(10,bu,2,0,"span",80),l(),s(11,"td",81),w(12,xu,2,4)(13,wu,2,0,"span",82),l(),s(14,"td",81),w(15,Cu,2,4)(16,Su,2,0,"span",82),l(),s(17,"td",74),w(18,ku,3,0,"span",83)(19,Eu,2,0,"span",84),l(),s(20,"td",85)(21,"div",86)(22,"button",87),_("click",function(r){let o=y(e).$implicit;return h(2).onOpenProject(o),v(r.stopPropagation())}),b(),s(23,"svg",88),g(24,"path",89),l(),u(25," Open "),l(),S(),s(26,"button",90),_("click",function(r){let o=y(e).$implicit;return h(2).onDeleteProject(o.name),v(r.stopPropagation())}),b(),s(27,"svg",88),g(28,"path",91),l(),u(29," Delete "),l(),S(),s(30,"button",92),_("click",function(r){let o=y(e).$implicit;return h(2).onImportFile(o),v(r.stopPropagation())}),b(),s(31,"svg",88),g(32,"path",93),l(),u(33," Import "),l()()()()}if(n&2){let e=t.$implicit,i=h(2);I("bg-blue-50",(i.selectedProject==null?null:i.selectedProject.name)===e.name)("border-l-4",(i.activeProject==null?null:i.activeProject.name)===e.name)("border-l-green-500",(i.activeProject==null?null:i.activeProject.name)===e.name),d(7),j(e.name),d(2),W(e.description?9:10),d(3),W(e.created?12:13),d(3),W(e.lastModified?15:16),d(3),W(e.isOpen?18:19),d(4),f("disabled",(i.activeProject==null?null:i.activeProject.name)===e.name||i.isLoading)("title",(i.activeProject==null?null:i.activeProject.name)===e.name?"Project already open":"Open Project"),d(4),f("disabled",i.isLoading),d(4),f("disabled",i.isLoading)}}function Mu(n,t){if(n&1){let e=T();s(0,"button",95),_("click",function(){let r=y(e).$implicit,o=h(2);return v(o.goToPage(r))}),u(1),l()}if(n&2){let e=t.$implicit,i=h(2);I("bg-blue-600",i.currentPage===e)("text-white",i.currentPage===e)("border-blue-600",i.currentPage===e),d(),D(" ",e+1," ")}}function Du(n,t){if(n&1){let e=T();s(0,"div",41)(1,"div",51)(2,"h2",52),b(),s(3,"svg",53),g(4,"path",8),l(),u(5," Projects RDF "),l(),S(),s(6,"span",54),u(7),l()(),s(8,"div",55)(9,"table",56)(10,"thead",57)(11,"tr")(12,"th",58),u(13,"Name"),l(),s(14,"th",58),u(15,"Description"),l(),s(16,"th",58),u(17,"Created on"),l(),s(18,"th",58),u(19,"Last Modified on"),l(),s(20,"th",58),u(21,"Status"),l(),s(22,"th",59),u(23,"Actions"),l()()(),s(24,"tbody",60),Oi(25,Tu,34,15,"tr",61,gu),l()()(),s(27,"div",62)(28,"div",63),u(29," Affichage "),s(30,"strong"),u(31),l(),u(32," \u2013 "),s(33,"strong"),u(34),l(),u(35," sur "),s(36,"strong"),u(37),l()(),s(38,"div",64)(39,"button",65),_("click",function(){y(e);let r=h();return v(r.prevPage())}),b(),s(40,"svg",66),g(41,"path",67),l()(),S(),s(42,"div",68),Oi(43,Mu,2,7,"button",69,gn),l(),s(45,"button",65),_("click",function(){y(e);let r=h();return v(r.nextPage())}),b(),s(46,"svg",66),g(47,"path",70),l()(),S(),s(48,"select",71),de("ngModelChange",function(r){y(e);let o=h();return ce(o.pageSize,r)||(o.pageSize=r),v(r)}),_("change",function(){y(e);let r=h();return v(r.onPageSizeChange())}),s(49,"option",72),u(50,"5 / page"),l(),s(51,"option",72),u(52,"10 / page"),l(),s(53,"option",72),u(54,"20 / page"),l()()()()()}if(n&2){let e=h();d(7),D("",e.filteredProjects.length," results(s)"),d(18),Li(e.paginatedProjects),d(6),j(e.paginationStart+1),d(3),j(e.paginationEnd),d(3),j(e.filteredProjects.length),d(2),f("disabled",e.currentPage===0),d(4),Li(e.pageNumbers),d(2),f("disabled",e.currentPage>=e.totalPages-1),d(3),le("ngModel",e.pageSize),d(),f("value",5),d(2),f("value",10),d(2),f("value",20)}}function Ru(n,t){if(n&1){let e=T();s(0,"div",42),b(),s(1,"svg",96),g(2,"path",8),l(),S(),s(3,"h3",97),u(4,"Aucun projet"),l(),s(5,"p",98),u(6,"Cr\xE9ez votre premier projet RDF pour commencer"),l(),s(7,"button",99),_("click",function(){y(e);let r=h();return v(r.openCreateModal())}),b(),s(8,"svg",19),g(9,"path",23),l(),u(10," Nouveau Projet "),l()()}}function Pu(n,t){n&1&&(s(0,"div",43),b(),s(1,"svg",100),g(2,"circle",101)(3,"path",102),l(),S(),s(4,"span",103),u(5,"Chargement des projets..."),l()())}function Iu(n,t){n&1&&(s(0,"div",117),u(1," Name is required and must contain only letters, numbers, dashes, and underscores. "),l())}function Au(n,t){n&1&&(s(0,"div",117),u(1," A URL is required for the project prefix. "),l())}function Ou(n,t){n&1&&(b(),s(0,"svg",124),g(1,"circle",101)(2,"path",102),l())}function Lu(n,t){n&1&&(b(),s(0,"svg",19),g(1,"path",89),l())}function Fu(n,t){if(n&1){let e=T();s(0,"div",104),_("click",function(){y(e);let r=h();return v(r.closeCreateModal())}),s(1,"div",105),_("click",function(r){return y(e),v(r.stopPropagation())}),s(2,"div",106)(3,"div",11),b(),s(4,"svg",7),g(5,"path",8),l(),S(),s(6,"h2",107),u(7,"New Project RDF"),l()(),s(8,"button",108),_("click",function(){y(e);let r=h();return v(r.closeCreateModal())}),b(),s(9,"svg",109),g(10,"path",49),l()()(),S(),s(11,"div",110)(12,"form",111),_("ngSubmit",function(){y(e);let r=h();return v(r.onSubmitProject())}),s(13,"div",112)(14,"div")(15,"label",113),u(16," Project's Name "),s(17,"span",114),u(18,"*"),l()(),g(19,"input",115),s(20,"p",116),u(21,"Must contain only letters, numbers, dashes, and underscores."),l(),w(22,Iu,2,0,"div",117),l(),s(23,"div")(24,"label",113),u(25," Prefix for future entity\u2019s IRI generation "),s(26,"span",114),u(27,"*"),l(),s(28,"div")(29,"span",118),u(30," If your project has a stable URL in a Language Archive, you can enter it here. Otherwise, you can leave the default IRI generation scheme. "),l()()(),g(31,"input",119),w(32,Au,2,0,"div",117),l(),s(33,"div")(34,"label",113),u(35,"Description"),l(),s(36,"textarea",120),u(37," "),l()()(),s(38,"div",121)(39,"button",122),_("click",function(){y(e);let r=h();return v(r.closeCreateModal())}),u(40," Cancel "),l(),s(41,"button",123),w(42,Ou,3,0,":svg:svg",124)(43,Lu,2,0,":svg:svg",19),u(44," Create & Open "),l()()()()()()}if(n&2){let e,i,r,o,a=h();d(12),f("formGroup",a.projectForm),d(7),I("border-red-300",((e=a.projectForm.get("name"))==null?null:e.invalid)&&((e=a.projectForm.get("name"))==null?null:e.touched)),d(3),W((i=a.projectForm.get("name"))!=null&&i.invalid&&((i=a.projectForm.get("name"))!=null&&i.touched)?22:-1),d(9),I("border-red-300",((r=a.projectForm.get("prefix"))==null?null:r.invalid)&&((r=a.projectForm.get("prefix"))==null?null:r.touched)),d(),W((o=a.projectForm.get("prefix"))!=null&&o.invalid&&((o=a.projectForm.get("prefix"))!=null&&o.touched)?32:-1),d(9),f("disabled",!a.projectForm.valid||a.isLoading),d(),W(a.isLoading?42:43)}}function Nu(n,t){n&1&&(s(0,"span",20),g(1,"span",146),u(2," Active Project "),l())}function ju(n,t){n&1&&(s(0,"span",131),g(1,"span",147),u(2," Closed "),l())}function Vu(n,t){if(n&1){let e=T();s(0,"input",148),_("ngModelChange",function(){y(e);let r=h(2);return v(r.onProjectChange(r.selectedProject))}),de("ngModelChange",function(r){y(e);let o=h(2);return ce(o.selectedProject.name,r)||(o.selectedProject.name=r),v(r)}),l()}if(n&2){let e=h(2);le("ngModel",e.selectedProject.name)}}function zu(n,t){if(n&1){let e=T();s(0,"input",148),de("ngModelChange",function(r){y(e);let o=h(2);return ce(o.selectedProject.name,r)||(o.selectedProject.name=r),v(r)}),l()}if(n&2){let e=h(2);le("ngModel",e.selectedProject.name)}}function Bu(n,t){if(n&1){let e=T();s(0,"div")(1,"label",113),u(2,"Description"),l(),s(3,"textarea",149),de("ngModelChange",function(r){y(e);let o=h(2);return ce(o.selectedProject.description,r)||(o.selectedProject.description=r),v(r)}),u(4,` + `),l()()}if(n&2){let e=h(2);d(3),le("ngModel",e.selectedProject.description)}}function Gu(n,t){if(n&1){let e=T();s(0,"div")(1,"label",113),u(2,"Prefix"),l(),s(3,"div",132)(4,"input",150),de("ngModelChange",function(r){y(e);let o=h(2);return ce(o.selectedProject.prefix,r)||(o.selectedProject.prefix=r),v(r)}),l(),s(5,"button",134),_("click",function(){y(e);let r=h(2);return v(r.copyToClipboard(r.selectedProject.prefix))}),b(),s(6,"svg",19),g(7,"path",135),l()()()()}if(n&2){let e=h(2);d(4),le("ngModel",e.selectedProject.prefix)}}function Hu(n,t){if(n&1&&(u(0),Re(1,"date")),n&2){let e=h(2);D(" ",pt(1,1,e.selectedProject.created,"dd/MM/yyyy")," ")}}function Uu(n,t){n&1&&(s(0,"span",82),u(1,"-"),l())}function $u(n,t){if(n&1&&(u(0),Re(1,"date")),n&2){let e=h(2);D(" ",pt(1,1,e.selectedProject.lastModified,"dd/MM/yyyy HH:mm")," ")}}function qu(n,t){n&1&&(s(0,"span",82),u(1,"-"),l())}function Wu(n,t){if(n&1){let e=T();s(0,"button",151),_("click",function(){y(e);let r=h(2);return v(r.onOpenProject(r.selectedProject))}),b(),s(1,"svg",19),g(2,"path",89),l(),u(3),l()}if(n&2){let e=h(2);f("disabled",(e.activeProject==null?null:e.activeProject.name)===e.selectedProject.name||e.isLoading),d(3),D(" ",(e.activeProject==null?null:e.activeProject.name)===e.selectedProject.name?"Project Already Active":"Open project"," ")}}function Qu(n,t){if(n&1){let e=T();s(0,"button",152),_("click",function(){y(e);let r=h(2);return v(r.goToSources())}),b(),s(1,"svg",19),g(2,"path",153),l(),u(3," Manage Data Sources "),l(),S(),s(4,"button",154),_("click",function(r){return y(e),h(2).onExportInternal(),v(r.stopPropagation())}),b(),s(5,"svg",155),g(6,"path",156),l(),u(7," Export Internal DataSource "),l(),S(),s(8,"button",157),_("click",function(r){return y(e),h(2).onExportBackup(),v(r.stopPropagation())}),b(),s(9,"svg",19),g(10,"path",158),l(),u(11," Export Backup Project "),l(),S(),s(12,"button",159),_("click",function(){y(e);let r=h(2);return v(r.onCloseProject())}),b(),s(13,"svg",19),g(14,"path",160),l(),u(15," Close Project "),l()}if(n&2){let e=h(2);d(4),f("disabled",e.isLoading),d(4),f("disabled",e.isLoading)}}function Ku(n,t){if(n&1){let e=T();s(0,"aside",46)(1,"div",125)(2,"div",11),b(),s(3,"svg",53),g(4,"path",8),l(),S(),s(5,"h2",126),u(6),l()(),s(7,"button",127),_("click",function(){y(e);let r=h();return v(r.closeDetail())}),b(),s(8,"svg",128),g(9,"path",49),l()()(),S(),s(10,"div",129)(11,"div")(12,"label",130),u(13,"Status"),l(),w(14,Nu,3,0,"span",20)(15,ju,3,0,"span",131),l(),s(16,"div")(17,"label",113),u(18,"Project name"),l(),s(19,"div",132),w(20,Vu,1,1,"input",133)(21,zu,1,1,"input",133),s(22,"button",134),_("click",function(){let r;y(e);let o=h();return v(o.copyToClipboard((r=o.selectedProject.name)!==null&&r!==void 0?r:""))}),b(),s(23,"svg",19),g(24,"path",135),l()()()(),w(25,Bu,5,1,"div",136)(26,Gu,8,1,"div",136),S(),s(27,"div",137)(28,"div",138)(29,"label",139),u(30,"Created on"),l(),s(31,"p",140),w(32,Hu,2,4)(33,Uu,2,0,"span",82),l()(),s(34,"div",138)(35,"label",139),u(36,"Updated on "),l(),s(37,"p",140),w(38,$u,2,4)(39,qu,2,0,"span",82),l()()(),s(40,"div",141)(41,"button",142),_("click",function(){y(e);let r=h();return v(r.updateProject())}),b(),s(42,"svg",19),g(43,"path",143),l(),u(44," Update Project "),l(),w(45,Wu,4,2,"button",144)(46,Qu,16,2),S(),s(47,"button",145),_("click",function(){y(e);let r=h();return v(r.onDeleteProject(r.selectedProject.name))}),b(),s(48,"svg",19),g(49,"path",91),l(),u(50," Delete Project "),l()()()()}if(n&2){let e=h();d(6),j(e.selectedProject.name),d(8),W((e.activeProject==null?null:e.activeProject.name)===e.selectedProject.name?14:15),d(6),W((e.selectedProject==null?null:e.selectedProject.name)===(e.activeProject==null?null:e.activeProject.name)?20:21),d(5),f("ngIf",e.selectedProject),d(),f("ngIf",e.selectedProject),d(6),W(e.selectedProject.created?32:33),d(6),W(e.selectedProject.lastModified?38:39),d(3),f("disabled",e.isLoading||!e.isProjectDirty()),d(4),W((e.selectedProject==null?null:e.selectedProject.name)===e.originalProject.name?45:-1),d(),W((e.activeProject==null?null:e.activeProject.name)===e.originalProject.name?46:-1),d(),f("disabled",e.isLoading)}}var Pr=class n{constructor(t,e,i,r){this.fb=t;this.projectService=e;this.router=i;this.snackBar=r}destroy$=new _e;projects=[];filteredProjects=[];paginatedProjects=[];activeProject=null;selectedProject=null;originalProject=null;isLoading=!1;showCreateModal=!1;projectForm;searchTerm="";sortField="lastModified";sortAsc=!1;currentPage=0;pageSize=10;fileInput;zipInput;pendingImportProject=null;onImportFile(t){if(this.activeProject?.name!==t.name){alert(`Open "${t.name}" first before importing into it.`);return}this.pendingImportProject=t,this.fileInput.nativeElement.value="",this.fileInput.nativeElement.click()}onFileSelected(t){let i=t.target.files?.[0];!i||!this.pendingImportProject||(this.isLoading=!0,this.projectService.importTurtleSource(i).subscribe({next:r=>{this.isLoading=!1,alert("Imported triples into internal datasource .")},error:r=>{this.isLoading=!1;let o=r.error?.lineNumber?`Line ${r.error.lineNumber}, column ${r.error.columnNumber}: ${r.error.message}`:r.error?.message??"Import failed.";alert(o)}}))}onBackupSelected(t){let i=t.target.files?.[0];i&&(this.isLoading=!0,this.projectService.importBackUpProject(i).subscribe({next:r=>{this.isLoading=!1,alert(r.message??"Imported backup project."),this.loadAll()},error:r=>{this.isLoading=!1,alert("Error: "+(r.error?.message??"Import failed."))}}))}onImportBackUpProject(t){this.pendingImportProject=t,this.zipInput.nativeElement.value="",this.zipInput.nativeElement.click()}saveViaElectron(t,e){return Vt(this,null,function*(){let i=yield t.arrayBuffer(),r=yield window.electronAPI.saveFile(new Uint8Array(i),e);if(!r.success){r.canceled||console.error("Save failed:",r.error);return}this.snackBar.open("File saved successfully.","Close",{duration:3e3})})}saveViaBrowser(t,e){if(!t||t.size===0){console.error("Export failed: empty blob received"),this.snackBar.open("Export failed: no data received.","Close",{duration:5e3});return}try{let i=URL.createObjectURL(t),r=document.createElement("a");r.href=i,r.download=e,document.body.appendChild(r),r.click(),document.body.removeChild(r),URL.revokeObjectURL(i)}catch(i){console.error("Export failed:",i),this.snackBar.open("Export failed. See console for details.","Close",{duration:5e3})}}onExportInternal(){return Vt(this,null,function*(){try{let t=yield this.projectService.exportInternalDataSource(),e=`${this.activeProject?.name}-internal-export.ttl`;!!window.electronAPI?yield this.saveViaElectron(t,e):this.saveViaBrowser(t,e)}catch(t){console.error("Export internal failed:",t),this.snackBar.open("Export failed. See console for details.","Close",{duration:5e3})}})}onExportBackup(){return Vt(this,null,function*(){try{let t=yield this.projectService.exportBackup(),e=`${this.activeProject?.name}-backup.zip`;!!window.electronAPI?yield this.saveViaElectron(t,e):this.saveViaBrowser(t,e)}catch(t){console.error("Export backup failed:",t),this.snackBar.open("Export failed. See console for details.","Close",{duration:5e3})}})}ngOnInit(){this.buildForm(),this.loadAll(),this.projectService.activeProject$.pipe(ue(this.destroy$)).subscribe(t=>this.activeProject=t),this.projectForm.get("name")?.valueChanges.subscribe(t=>{this.projectForm.get("prefix")?.value.startsWith("http://fr.cnrs.lacito.FieldArchive/")&&this.projectForm.patchValue({prefix:"http://fr.cnrs.lacito.FieldArchive/"+t})}),this.projectForm.get("prefix")?.valueChanges.subscribe(t=>{t===""&&this.projectForm.patchValue({prefix:"http://fr.cnrs.lacito.FieldArchive/"})})}goToFiles(){this.router.navigate(["/files"])}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}buildForm(){this.projectForm=this.fb.group({name:["",[Pe.required,Pe.pattern(/^[a-zA-Z0-9_-]+$/)]],description:[""],persistent:[!0],prefix:["http://fr.cnrs.lacito.FieldArchive/",[Pe.required,Pe.pattern(/^(https?:\/\/)?([\da-z\.-]+)\.([a-z]{2,6})([\/\w \.-]*)*\/?$/)]]})}loadAll(){this.isLoading=!0,this.projectService.getAllProjects().pipe(ue(this.destroy$),Ke(()=>this.isLoading=!1)).subscribe({next:t=>{this.projects=t,console.log("PROJECTS : ",t),this.applyFilters()},error:()=>{}}),this.projectService.getActiveProject().pipe(ue(this.destroy$)).subscribe({error:()=>{}})}onProjectChange(t){console.log("CHANGED PROJECT : ",t),this.projectService.setActiveProject(t),this.selectedProject=structuredClone(t)}updateProject(){!this.selectedProject||!this.originalProject||this.isLoading||this.projectService.updateProject(this.originalProject.name,{name:this.selectedProject.name,description:this.selectedProject.description}).subscribe({next:t=>{this.snackBar.open("\u2705 Project was successfully updated.","Close",{duration:5e3,horizontalPosition:"center",verticalPosition:"top",panelClass:["snackbar-success"]})},error:t=>{console.log("Error :",t),this.snackBar.open(`Failed to update project : "${this.selectedProject?.name}".`,"Close",{duration:5e3,horizontalPosition:"center",verticalPosition:"top",panelClass:["snackbar-error"]})}})}onDeleteProject(t){!t||this.isLoading||!confirm(`Are you sure you want to delete "${t}"?`)||this.projectService.deleteProject(t).subscribe({next:i=>{console.log("Success:",i),this.snackBar.open("\u2705 Project was successfully deleted.","Close",{duration:5e3,horizontalPosition:"center",verticalPosition:"top",panelClass:["snackbar-success"]}),this.closeDetail(),this.loadAll()},error:i=>{console.error("Error:",i),this.snackBar.open(`Failed to delete project : "${this.selectedProject?.name}".`,"Close",{duration:5e3,horizontalPosition:"right",verticalPosition:"bottom",panelClass:["snackbar-error"]})}})}onOpenProject(t){!t.name||this.isLoading||(this.isLoading=!0,this.projectService.openProject({name:t.name,persistent:!0,prefix:t.prefix}).pipe(ue(this.destroy$),Ke(()=>this.isLoading=!1)).subscribe({next:()=>this.router.navigate(["/gestion-ressources"]),error:()=>{}}))}onCloseProject(){this.isLoading||(this.isLoading=!0,this.projectService.closeProject().pipe(ue(this.destroy$),Ke(()=>this.isLoading=!1)).subscribe({next:()=>{this.selectedProject=null,this.loadAll()},error:()=>{}}))}refreshAll(){this.loadAll()}openCreateModal(){this.projectForm.reset({persistent:!0,name:"",description:"",prefix:"http://fr.cnrs.lacito.FieldArchive/"}),this.showCreateModal=!0}closeCreateModal(){this.showCreateModal=!1}onSubmitProject(){if(!this.projectForm.valid||this.isLoading)return;let{name:t,description:e,persistent:i,prefix:r}=this.projectForm.value;this.isLoading=!0,this.projectService.createProject({name:t,description:e,persistent:i,prefix:r}).pipe(ue(this.destroy$),Ke(()=>this.isLoading=!1)).subscribe({next:()=>{this.closeCreateModal(),this.loadAll()},error:()=>{}})}goToSources(){this.router.navigate(["/gestion-sources"])}selectProject(t){if(this.selectedProject?.name===t.name){this.selectedProject=null,this.originalProject=null;return}this.selectedProject=structuredClone(t),this.originalProject=structuredClone(t)}closeDetail(){this.selectedProject=null,this.originalProject=null}isProjectDirty(){return!this.selectedProject||!this.originalProject?!1:this.selectedProject.name!==this.originalProject.name||this.selectedProject.description!==this.originalProject.description}onSearch(){this.currentPage=0,this.applyFilters()}onSort(){this.currentPage=0,this.applyFilters()}toggleSortOrder(){this.sortAsc=!this.sortAsc,this.applyFilters()}applyFilters(){let t=[...this.projects];if(this.searchTerm.trim()){let e=this.searchTerm.toLowerCase();t=t.filter(i=>i.name?.toLowerCase().includes(e)||i.description?.toLowerCase().includes(e))}t.sort((e,i)=>{let r=(this.sortField==="name"?e.name:this.sortField==="created"?e.created:e.lastModified)??"",o=(this.sortField==="name"?i.name:this.sortField==="created"?i.created:i.lastModified)??"";return this.sortAsc?r.localeCompare(o):o.localeCompare(r)}),this.filteredProjects=t,this.updatePagination()}get totalPages(){return Math.max(1,Math.ceil(this.filteredProjects.length/this.pageSize))}get pageNumbers(){return Array.from({length:this.totalPages},(t,e)=>e)}get paginationStart(){return this.currentPage*this.pageSize}get paginationEnd(){return Math.min(this.paginationStart+this.pageSize,this.filteredProjects.length)}updatePagination(){this.paginatedProjects=this.filteredProjects.slice(this.paginationStart,this.paginationEnd)}prevPage(){this.currentPage>0&&(this.currentPage--,this.updatePagination())}nextPage(){this.currentPage0?60:-1),d(),W(i.projects.length===0&&!i.isLoading?61:-1),d(),W(i.isLoading&&i.projects.length===0?62:-1),d(3),W(i.showCreateModal?65:-1),d(),W(i.selectedProject?66:-1))},dependencies:[be,He,oi,rt,wn,li,ci,Ct,si,St,xn,kt,Et,Cn,Sn,mi],styles:["@keyframes _ngcontent-%COMP%_fade-in{0%{opacity:0}to{opacity:1}}@keyframes _ngcontent-%COMP%_slide-in{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes _ngcontent-%COMP%_slide-up{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.animate-fade-in[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_fade-in .25s ease-in-out}.animate-slide-in[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_slide-in .3s ease-out}.animate-slide-up[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_slide-up .25s ease-out} .snackbar-success{background:#10b981!important;color:#fff!important} .snackbar-error{background:#ef4444!important;color:#fff!important} .snackbar-warning{background:#f59e0b!important;color:#fff!important} .snackbar-info{background:#3b82f6!important;color:#fff!important}[_ngcontent-%COMP%]::-webkit-scrollbar{width:8px;height:8px}[_ngcontent-%COMP%]::-webkit-scrollbar-track{background:#f1f5f9}[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover{background:#94a3b8}tr.group[_ngcontent-%COMP%]:hover .opacity-0[_ngcontent-%COMP%]{opacity:1}tr.border-l-4[_ngcontent-%COMP%]{border-left:4px solid #22c55e}@media (max-width: 768px){.w-96[_ngcontent-%COMP%]{width:100vw}}"]})};var mc=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=X({type:n});static \u0275inj=Y({imports:[ee,ee]})}return n})();var Lt=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=X({type:n});static \u0275inj=Y({imports:[ee,En,ee]})}return n})();var uc=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=X({type:n});static \u0275inj=Y({})}return n})();var pc=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=X({type:n});static \u0275inj=Y({imports:[ee,Lt,Lt,uc,ee]})}return n})();var Ir=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=X({type:n});static \u0275inj=Y({imports:[ee]})}return n})();var ga=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=X({type:n});static \u0275inj=Y({imports:[Tn,ee,Ir]})}return n})();var hc=new ne("mat-select-scroll-strategy",{providedIn:"root",factory:()=>{let n=k(di);return()=>n.scrollStrategies.reposition()}});function fc(n){return()=>n.scrollStrategies.reposition()}var gc={provide:hc,deps:[di],useFactory:fc};var _a=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=X({type:n});static \u0275inj=Y({providers:[gc],imports:[Dn,ga,ee,Mn,Lt,ga,ee]})}return n})();var _c=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=X({type:n});static \u0275inj=Y({imports:[_s]})}return n})();var yc=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=X({type:n});static \u0275inj=Y({imports:[ee,_c,ee]})}return n})();var ya=20;var vc=new ne("mat-tooltip-scroll-strategy",{providedIn:"root",factory:()=>{let n=k(di);return()=>n.scrollStrategies.reposition({scrollThrottle:ya})}});function bc(n){return()=>n.scrollStrategies.reposition({scrollThrottle:ya})}var xc={provide:vc,deps:[di],useFactory:bc};var va=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=X({type:n});static \u0275inj=Y({providers:[xc],imports:[cs,Dn,ee,ee,Mn]})}return n})();var Ar=class n{constructor(t){this.http=t;console.log("\u{1F310} DataSourceHttpService initialized")}apiUrl="http://localhost:8080/datasources";dataSourcesSubject=new ve([]);dataSources$=this.dataSourcesSubject.asObservable();getAllDataSources(){return console.log("\u{1F4E1} GET /datasources"),this.http.get(this.apiUrl).pipe(U(t=>this.mapBackendToFrontend(t)),Q(t=>{console.log("\u2705 Received sources:",t),this.dataSourcesSubject.next(t)}),ae(this.handleError))}createInternalSource(t){console.log("\u{1F4E1} POST /datasources/internal",t);let e={shortName:t.shortName,name:t.name,description:t.description||""};return this.http.post(`${this.apiUrl}/internal`,e).pipe(je(()=>this.http.get(`${this.apiUrl}/${t.shortName}`)),U(i=>this.mapSingleBackendToFrontend(i)),Q(i=>{console.log("\u2705 Internal source created:",i),this.refreshDataSources()}),ae(this.handleError))}createExternalSource(t){console.log("\u{1F4E1} POST /datasources/external",t);let e={shortName:t.shortName,name:t.name,description:t.description||"",sourceTool:t.tool||"",sourceLocation:t.url||""};return this.http.post(`${this.apiUrl}/external`,e).pipe(U(i=>this.mapSingleBackendToFrontend(i)),Q(i=>{console.log("\u2705 External source created:",i),this.refreshDataSources()}),ae(this.handleError))}updateDataSource(t,e){console.log(`\u{1F4E1} PUT /datasources/${t}`,e);let i={longName:e.name,description:e.description};return console.log("Payload envoy\xE9:",i),this.http.put(`${this.apiUrl}/${t}`,i).pipe(U(r=>this.mapSingleBackendToFrontend(r)),Q(r=>{console.log("\u2705 Source updated:",r),this.refreshDataSources()}),ae(this.handleError))}deleteDataSource(t){return console.log(`\u{1F4E1} DELETE /datasources/${t}`),this.http.delete(`${this.apiUrl}/${t}`).pipe(Q(()=>{console.log("\u2705 Source deleted"),this.refreshDataSources()}),ae(this.handleError))}syncExternalSource(t){return console.log(`\u{1F4E1} POST /datasources/${t}/sync`),this.http.post(`${this.apiUrl}/${t}/sync`,{}).pipe(Q(()=>{console.log("\u2705 Source synchronized"),this.refreshDataSources()}),ae(this.handleError))}mapBackendToFrontend(t){return t.map(e=>this.mapSingleBackendToFrontend(e))}mapSingleBackendToFrontend(t){if(console.log("\u{1F504} Mapping source from backend:",t),!t)return console.error("\u274C Source is null or undefined"),{id:"",shortName:"",name:"",description:"",sourceType:"INTERNAL",graphIRI:"",editable:!1};let i=(t.type||t.sourceType||t.datasourceType||"INTERNAL").toString().toUpperCase(),r={id:t.shortName||t.id||"",shortName:t.shortName||"",name:t.longName||t.name||t.shortName||"",description:t.description||"",sourceType:i,graphIRI:t.graphIri||t.graphIRI||t.graphUri||`urn:datasource:${t.shortName}`,editable:t.editable!==!1,url:t.sourceLocation||t.location||t.url,tool:t.sourceTool||t.tool,lastSyncDate:t.lastSync||t.lastSyncDate?new Date(t.lastSync||t.lastSyncDate):void 0,previousImportDates:t.previousSyncs?t.previousSyncs.map(o=>new Date(o)):[],createdDate:t.createdAt||t.created||t.createdDate?new Date(t.createdAt||t.created||t.createdDate):void 0,recordCount:t.recordCount};return console.log("\u2705 Mapped to frontend:",r),r}refreshDataSources(){this.getAllDataSources().subscribe()}handleError(t){let e="Une erreur est survenue";return t.error instanceof ErrorEvent?e=`Erreur: ${t.error.message}`:(e=`Erreur ${t.status}: ${t.message}`,t.error&&typeof t.error=="string"&&(e+=` - ${t.error}`)),console.error("\u274C HTTP Error:",e,t),tt(()=>new Error(e))}static \u0275fac=function(e){return new(e||n)(Ce(ai))};static \u0275prov=J({token:n,factory:n.\u0275fac,providedIn:"root"})};function Ju(n,t){n&1&&(s(0,"div",46)(1,"span"),u(2,"Create/edit mode active"),l()())}function ep(n,t){if(n&1){let e=T();s(0,"button",47),_("click",function(){y(e);let r=h();return v(r.openCreateForm())}),b(),s(1,"svg",22),g(2,"path",48),l(),S(),s(3,"span"),u(4,"New Data Source"),l()()}}function tp(n,t){n&1&&(s(0,"div",49)(1,"div",29),b(),s(2,"svg",22),g(3,"path",50),l(),S(),s(4,"span"),u(5,"An internal data source already exists. You can only create external sources."),l()()())}function ip(n,t){if(n&1){let e=T();s(0,"button",55),_("click",function(){let r=y(e).$implicit,o=h(3);return v(o.applyToolFilter(r))}),u(1),l()}if(n&2){let e=t.$implicit,i=h(3);I("bg-blue-600",i.filterTool===e)("text-white",i.filterTool===e)("bg-gray-100",i.filterTool!==e),d(),D(" ",e," ")}}function np(n,t){if(n&1){let e=T();s(0,"div")(1,"h4",53),u(2,"Source tool"),l(),s(3,"div",60)(4,"button",55),_("click",function(){y(e);let r=h(2);return v(r.applyToolFilter("ALL"))}),u(5," All "),l(),w(6,ip,2,7,"button",61),l()()}if(n&2){let e=h(2);d(4),I("bg-blue-600",e.filterTool==="ALL")("text-white",e.filterTool==="ALL")("bg-gray-100",e.filterTool!=="ALL"),d(2),f("ngForOf",e.getAvailableTools())}}function rp(n,t){if(n&1){let e=T();s(0,"div",51)(1,"div",52)(2,"div")(3,"h4",53),u(4,"Source type"),l(),s(5,"div",54)(6,"button",55),_("click",function(){y(e);let r=h();return v(r.applyTypeFilter("ALL"))}),u(7," All "),l(),s(8,"button",55),_("click",function(){y(e);let r=h();return v(r.applyTypeFilter("INTERNAL"))}),u(9," Internal "),l(),s(10,"button",55),_("click",function(){y(e);let r=h();return v(r.applyTypeFilter("EXTERNAL"))}),u(11," External "),l()()(),w(12,np,7,7,"div",56),s(13,"div")(14,"h4",53),u(15,"Search"),l(),s(16,"input",57),de("ngModelChange",function(r){y(e);let o=h();return ce(o.searchTerm,r)||(o.searchTerm=r),v(r)}),l()(),s(17,"div",58)(18,"button",59),_("click",function(){y(e);let r=h();return v(r.resetFilters())}),u(19," Reset "),l()()()()}if(n&2){let e=h();d(6),I("bg-blue-600",e.filterType==="ALL")("text-white",e.filterType==="ALL")("bg-gray-100",e.filterType!=="ALL"),d(2),I("bg-blue-600",e.filterType==="INTERNAL")("text-white",e.filterType==="INTERNAL")("bg-gray-100",e.filterType!=="INTERNAL"),d(2),I("bg-blue-600",e.filterType==="EXTERNAL")("text-white",e.filterType==="EXTERNAL")("bg-gray-100",e.filterType!=="EXTERNAL"),d(2),f("ngIf",e.getAvailableTools().length>0),d(4),le("ngModel",e.searchTerm)}}function op(n,t){if(n&1){let e=T();s(0,"div",62)(1,"button",63),_("click",function(){y(e);let r=h();return r.exportAsJSON(),v(r.showExportMenu=!1)}),b(),s(2,"svg",64),g(3,"path",65),l(),S(),s(4,"span"),u(5,"Export as JSON"),l()(),s(6,"button",63),_("click",function(){y(e);let r=h();return r.exportAsCSV(),v(r.showExportMenu=!1)}),b(),s(7,"svg",64),g(8,"path",66),l(),S(),s(9,"span"),u(10,"Export as CSV"),l()(),s(11,"button",63),_("click",function(){y(e);let r=h();return r.exportConfiguration(),v(r.showExportMenu=!1)}),b(),s(12,"svg",64),g(13,"path",67)(14,"path",68),l(),S(),s(15,"span"),u(16,"Export configuration"),l()()()}}function ap(n,t){n&1&&(s(0,"div",93),u(1," Only letters, numbers, hyphens and underscores are allowed "),l())}function sp(n,t){n&1&&(s(0,"div",93),u(1," Name is required "),l())}function lp(n,t){n&1&&(Gt(0),s(1,"div",79)(2,"div",94),b(),s(3,"svg",95),g(4,"path",96),l(),S(),s(5,"p",97)(6,"strong"),u(7,"Note:"),l(),u(8," External sources are read-only. To modify this data, edit it in the source tool and then re-import. "),l()()(),s(9,"div")(10,"label",80),u(11,"Source Tool/System"),l(),s(12,"select",98)(13,"option",99),u(14,"None"),l(),s(15,"option",100),u(16,"Tropy (Photo management)"),l(),s(17,"option",101),u(18,"Lameta (Audio/video recordings)"),l(),s(19,"option",102),u(20,"Gramps (Genealogy data)"),l(),s(21,"option",103),u(22,"Other RDF source"),l()()(),s(23,"div")(24,"label",80),u(25,"RDF File URL or Path"),l(),g(26,"input",104),s(27,"p",84),u(28,"Path to the RDF file to import"),l()(),Ht())}function cp(n,t){if(n&1){let e=T();s(0,"div",69)(1,"div",70)(2,"div",71)(3,"div",72),b(),s(4,"svg",73),g(5,"path",48),l(),S(),s(6,"h2",74),u(7),l()(),s(8,"button",75),_("click",function(){y(e);let r=h();return v(r.cancelForm())}),b(),s(9,"svg",73),g(10,"path",76),l()()()(),S(),s(11,"div",19)(12,"form",77),_("ngSubmit",function(){y(e);let r=h();return v(r.onSubmit())}),s(13,"div",78)(14,"div",79)(15,"label",80),u(16,"Source Type *"),l(),s(17,"select",81)(18,"option",82),u(19," Internal (Editable in application) "),l(),s(20,"option",83),u(21,"External (Read-only, imported)"),l()(),s(22,"p",84),u(23,"Internal sources are editable. External sources are read-only."),l()(),s(24,"div")(25,"label",80),u(26," Short Name (Graph ID) * "),l(),g(27,"input",85),s(28,"p",86),u(29),l(),w(30,ap,2,0,"div",87),l(),s(31,"div")(32,"label",80),u(33,"Display Name *"),l(),g(34,"input",88),w(35,sp,2,0,"div",87),l(),s(36,"div",79)(37,"label",80),u(38,"Description"),l(),g(39,"textarea",89),l(),w(40,lp,29,0,"ng-container",56),l(),s(41,"div",90)(42,"button",91),_("click",function(){y(e);let r=h();return v(r.cancelForm())}),u(43," Cancel "),l(),s(44,"button",92),u(45),l()()()()()}if(n&2){let e,i,r,o,a,c=h();d(7),D(" ",c.isEditing?"Edit Data Source":"Create New Data Source"," "),d(5),f("formGroup",c.dataSourceForm),d(6),f("disabled",!c.canCreateInternalSource()&&!c.isEditing),d(9),I("border-red-300",((e=c.dataSourceForm.get("shortName"))==null?null:e.invalid)&&((e=c.dataSourceForm.get("shortName"))==null?null:e.touched)),f("readonly",c.isEditing),d(2),D("Graph: urn:datasource:",((i=c.dataSourceForm.get("shortName"))==null?null:i.value)||"your-name",""),d(),f("ngIf",((r=c.dataSourceForm.get("shortName"))==null?null:r.invalid)&&((r=c.dataSourceForm.get("shortName"))==null?null:r.touched)),d(4),I("border-red-300",((o=c.dataSourceForm.get("name"))==null?null:o.invalid)&&((o=c.dataSourceForm.get("name"))==null?null:o.touched)),d(),f("ngIf",((a=c.dataSourceForm.get("name"))==null?null:a.invalid)&&((a=c.dataSourceForm.get("name"))==null?null:a.touched)),d(5),f("ngIf",c.isExternal()),d(4),f("disabled",!c.dataSourceForm.valid),d(),D(" ",c.isEditing?"Update":"Create Source"," ")}}function dp(n,t){if(n&1&&(s(0,"span",135),b(),s(1,"svg",136),g(2,"path",137),l(),u(3),l()),n&2){let e=h().$implicit;d(3),D(" ",e.graphIRI," ")}}function mp(n,t){if(n&1&&(s(0,"span",138),b(),s(1,"svg",139),g(2,"path",67)(3,"path",68),l(),u(4),l()),n&2){let e=h().$implicit;d(4),D(" ",e.tool," ")}}function up(n,t){n&1&&(s(0,"span",140),u(1,"-"),l())}function pp(n,t){if(n&1&&(s(0,"span"),u(1),Re(2,"date"),l()),n&2){let e=h().$implicit;d(),j(pt(2,1,e.lastSyncDate,"short"))}}function hp(n,t){n&1&&(s(0,"span",140),u(1,"-"),l())}function fp(n,t){if(n&1){let e=T();s(0,"button",141),_("click",function(r){y(e);let o=h().$implicit;return h(2).reimportSource(o),v(r.stopPropagation())}),b(),s(1,"svg",22),g(2,"path",34),l()()}}function gp(n,t){if(n&1){let e=T();s(0,"tr",116),_("click",function(){let r=y(e).$implicit,o=h(2);return v(o.selectDataSource(r))}),s(1,"td",117)(2,"div",118)(3,"span",119),u(4),l(),s(5,"span",120),u(6),l(),w(7,dp,4,1,"span",121),l()(),s(8,"td",117)(9,"span",122),u(10),l()(),s(11,"td",123),w(12,mp,5,1,"span",124)(13,up,2,0,"span",125),l(),s(14,"td",123),w(15,pp,3,4,"span",56)(16,hp,2,0,"span",125),l(),s(17,"td",117)(18,"span",122),b(),s(19,"svg",126),g(20,"circle",127),l(),u(21),l()(),S(),s(22,"td",128)(23,"div",129)(24,"button",130),_("click",function(r){let o=y(e).$implicit;return h(2).openEditForm(o),v(r.stopPropagation())}),b(),s(25,"svg",22),g(26,"path",131),l()(),w(27,fp,3,0,"button",132),S(),s(28,"button",133),_("click",function(r){let o=y(e).$implicit;return h(2).deleteDataSource(o),v(r.stopPropagation())}),b(),s(29,"svg",22),g(30,"path",134),l()()()()()}if(n&2){let e=t.$implicit,i=h(2);I("bg-blue-50",(i.selectedDataSource==null?null:i.selectedDataSource.id)===e.id),d(4),j(e.name),d(2),j(e.shortName),d(),f("ngIf",e.graphIRI),d(2),I("bg-blue-100",e.sourceType==="INTERNAL")("text-blue-700",e.sourceType==="INTERNAL")("bg-purple-100",e.sourceType==="EXTERNAL")("text-purple-700",e.sourceType==="EXTERNAL"),d(),D(" ",e.sourceType," "),d(2),f("ngIf",e.tool),d(),f("ngIf",!e.tool),d(2),f("ngIf",e.lastSyncDate),d(),f("ngIf",!e.lastSyncDate),d(2),I("bg-green-100",e.editable!==!1)("text-green-700",e.editable!==!1)("bg-red-100",e.editable===!1)("text-red-700",e.editable===!1),d(3),D(" ",e.editable!==!1?"Yes":"No"," "),d(3),I("opacity-50",e.editable===!1),f("disabled",e.editable===!1),he("aria-label",e.editable===!1?"Cannot edit external source":"Edit"),d(3),f("ngIf",e.sourceType==="EXTERNAL")}}function _p(n,t){if(n&1&&(s(0,"div",105)(1,"div",106)(2,"div",71)(3,"h2",107),b(),s(4,"svg",95),g(5,"path",7),l(),u(6," Data Sources & Named Graphs "),l(),S(),s(7,"span",108),u(8),l()()(),s(9,"div",109)(10,"table",110)(11,"thead",111)(12,"tr")(13,"th",112),u(14," Name & Graph "),l(),s(15,"th",112),u(16," Type "),l(),s(17,"th",112),u(18," Source "),l(),s(19,"th",112),u(20," Last Sync "),l(),s(21,"th",112),u(22," Editable "),l(),s(23,"th",113),u(24," Actions "),l()()(),s(25,"tbody",114),w(26,gp,31,32,"tr",115),l()()()()),n&2){let e=h();d(8),D("",e.dataSources.length," source(s)"),d(18),f("ngForOf",e.getFilteredSources())}}function yp(n,t){if(n&1){let e=T();s(0,"div",142),b(),s(1,"svg",143),g(2,"path",144),l(),S(),s(3,"h3",145),u(4,"No Data Sources"),l(),s(5,"p",146),u(6,"Create your first source to start managing your RDF metadata"),l(),s(7,"button",147),_("click",function(){y(e);let r=h();return v(r.openCreateForm())}),b(),s(8,"svg",22),g(9,"path",48),l(),u(10," Create Data Source "),l()()}}function vp(n,t){if(n&1&&(s(0,"div")(1,"label",80),u(2,"Description"),l(),s(3,"p",164),u(4),l()()),n&2){let e=h(2);d(4),j(e.selectedDataSource.description)}}function bp(n,t){if(n&1&&(s(0,"div")(1,"span",168),u(2,"Tool"),l(),s(3,"p",169),u(4),l()()),n&2){let e=h(3);d(4),j(e.selectedDataSource.tool)}}function xp(n,t){if(n&1&&(s(0,"div")(1,"span",168),u(2,"URL"),l(),s(3,"p",170),u(4),l()()),n&2){let e=h(3);d(4),j(e.selectedDataSource.url)}}function wp(n,t){if(n&1&&(s(0,"div")(1,"span",168),u(2,"Last Sync"),l(),s(3,"p",169),u(4),Re(5,"date"),l()()),n&2){let e=h(3);d(4),j(pt(5,1,e.selectedDataSource.lastSyncDate,"medium"))}}function Cp(n,t){if(n&1&&(s(0,"div",165)(1,"h3",166),u(2,"External Source"),l(),s(3,"div",167),w(4,bp,5,1,"div",56)(5,xp,5,1,"div",56)(6,wp,6,4,"div",56),l()()),n&2){let e=h(2);d(4),f("ngIf",e.selectedDataSource.tool),d(),f("ngIf",e.selectedDataSource.url),d(),f("ngIf",e.selectedDataSource.lastSyncDate)}}function Sp(n,t){if(n&1&&(s(0,"div",177),b(),s(1,"svg",136),g(2,"path",178),l(),u(3),Re(4,"date"),l()),n&2){let e=t.$implicit;d(3),D(" ",pt(4,1,e,"medium")," ")}}function kp(n,t){if(n&1&&(s(0,"div",175),w(1,Sp,5,4,"div",176),l()),n&2){let e=h(3);d(),f("ngForOf",e.selectedDataSource.previousImportDates)}}function Ep(n,t){if(n&1){let e=T();s(0,"div")(1,"button",171),_("click",function(){y(e);let r=h(2);return v(r.toggleHistory(r.selectedDataSource.id))}),s(2,"span"),u(3),l(),b(),s(4,"svg",172),g(5,"path",173),l()(),w(6,kp,2,1,"div",174),l()}if(n&2){let e=h(2);d(3),D("Import History (",e.selectedDataSource.previousImportDates.length,")"),d(),I("rotate-180",e.expandedHistory===e.selectedDataSource.id),d(2),f("ngIf",e.expandedHistory===e.selectedDataSource.id)}}function Tp(n,t){if(n&1){let e=T();s(0,"aside",148)(1,"div",149)(2,"div",72),b(),s(3,"svg",95),g(4,"path",16),l(),S(),s(5,"h2",150),u(6),l()(),s(7,"button",151),_("click",function(){y(e);let r=h();return v(r.closeDetail())}),b(),s(8,"svg",152),g(9,"path",76),l()()(),S(),s(10,"div",19)(11,"div",153)(12,"div")(13,"label",80),u(14,"Short Name"),l(),s(15,"div",154)(16,"span",155),u(17),l(),s(18,"button",156),_("click",function(){y(e);let r=h();return v(r.copyToClipboard(r.selectedDataSource.id))}),b(),s(19,"svg",22),g(20,"path",157),l()()()(),S(),s(21,"div")(22,"label",80),u(23,"Named Graph (IRI)"),l(),s(24,"div",158)(25,"span",159),u(26),l(),s(27,"button",160),_("click",function(){y(e);let r=h();return v(r.copyToClipboard(r.selectedDataSource.graphIRI))}),b(),s(28,"svg",22),g(29,"path",157),l()()()(),w(30,vp,5,1,"div",56),S(),s(31,"div",161)(32,"div")(33,"label",162),u(34,"Type"),l(),s(35,"span",122),u(36),l()(),s(37,"div")(38,"label",162),u(39,"Editable"),l(),s(40,"span",122),u(41),l()()(),w(42,Cp,7,3,"div",163)(43,Ep,7,4,"div",56),l()()()}if(n&2){let e=h();d(6),j(e.selectedDataSource.name),d(11),j(e.selectedDataSource.id),d(9),j(e.selectedDataSource.graphIRI),d(4),f("ngIf",e.selectedDataSource.description),d(5),I("bg-blue-100",e.selectedDataSource.sourceType==="INTERNAL")("text-blue-700",e.selectedDataSource.sourceType==="INTERNAL")("bg-purple-100",e.selectedDataSource.sourceType==="EXTERNAL")("text-purple-700",e.selectedDataSource.sourceType==="EXTERNAL"),d(),D(" ",e.selectedDataSource.sourceType," "),d(4),I("bg-green-100",e.selectedDataSource.editable!==!1)("text-green-700",e.selectedDataSource.editable!==!1)("bg-red-100",e.selectedDataSource.editable===!1)("text-red-700",e.selectedDataSource.editable===!1),d(),D(" ",e.selectedDataSource.editable!==!1?"Yes":"No"," "),d(),f("ngIf",e.selectedDataSource.sourceType==="EXTERNAL"),d(),f("ngIf",e.selectedDataSource.previousImportDates&&e.selectedDataSource.previousImportDates.length>0)}}var Or=class n{constructor(t,e,i,r,o){this.dataSourceService=t;this.fb=e;this.snackBar=i;this.dialog=r;this.router=o;this.dataSourceForm=this.fb.group({shortName:["",[Pe.required,Pe.pattern(/^[a-zA-Z0-9_-]+$/)]],name:["",Pe.required],description:[""],sourceType:["INTERNAL",Pe.required],url:[""],tool:[""]})}dataSources=[];selectedDataSource=null;expandedHistory=null;showForm=!1;isEditing=!1;currentEditId=null;dataSourceForm;destroy$=new _e;showFilterMenu=!1;filterType="ALL";filterTool="ALL";searchTerm="";showExportMenu=!1;ngOnInit(){this.setupConditionalValidation(),this.loadDataSources(),this.dataSourceService.dataSources$.pipe(ue(this.destroy$)).subscribe(t=>{this.dataSources=t})}ngOnDestroy(){this.destroy$.next(),this.destroy$.complete()}setupConditionalValidation(){this.dataSourceForm.get("sourceType")?.valueChanges.pipe(ue(this.destroy$)).subscribe(t=>{let e=this.dataSourceForm.get("tool"),i=this.dataSourceForm.get("url");t==="EXTERNAL"?(e?.setValidators([Pe.required]),i?.setValidators([Pe.required,Pe.minLength(5)]),console.log("\u2705 Validation EXTERNAL activ\xE9e: tool et url requis")):(e?.clearValidators(),i?.clearValidators(),e?.setValue(""),i?.setValue(""),console.log("\u2705 Validation INTERNAL: tool et url non requis")),e?.updateValueAndValidity(),i?.updateValueAndValidity()})}loadDataSources(){this.dataSourceService.getAllDataSources().pipe(ue(this.destroy$)).subscribe({next:t=>{this.dataSources=t},error:t=>{this.showNotification("Erreur lors du chargement des sources","error"),console.error("Error:",t)}})}openCreateForm(){this.showForm=!0,this.isEditing=!1,this.currentEditId=null,this.selectedDataSource=null,this.canCreateInternalSource()?(this.dataSourceForm.reset({sourceType:"INTERNAL"}),console.log("\u2705 Aucune source INTERNAL \u2192 Formulaire en mode INTERNAL")):(this.dataSourceForm.reset({sourceType:"EXTERNAL"}),console.log("\u26A0\uFE0F Source INTERNAL existe \u2192 Formulaire en mode EXTERNAL"))}openEditForm(t){if(t.editable===!1){this.showNotification("External sources cannot be edited. Edit in source tool and re-import.","warning");return}this.showForm=!0,this.isEditing=!0,this.currentEditId=t.id||null,this.dataSourceForm.patchValue({shortName:t.shortName,name:t.name,description:t.description,sourceType:t.sourceType,url:t.url||"",tool:t.tool||""})}cancelForm(){this.showForm=!1,this.isEditing=!1,this.currentEditId=null,this.dataSourceForm.reset({sourceType:"INTERNAL"})}onSubmit(){if(this.dataSourceForm.markAllAsTouched(),this.dataSourceForm.valid){let t=this.dataSourceForm.value;if(t.sourceType==="INTERNAL"&&!this.canCreateInternalSource()&&!this.isEditing){this.showNotification("An internal data source already exists.","error");return}if(t.sourceType==="EXTERNAL"){if(!t.tool||t.tool.trim()===""){this.showNotification("Source tool is required for external sources.","error");return}if(!t.url||t.url.trim()===""){this.showNotification("RDF file path is required for external sources.","error");return}}this.isEditing&&this.currentEditId?this.updateDataSource(this.currentEditId,t):this.createDataSource(t)}else{let t=[];this.dataSourceForm.get("shortName")?.invalid&&t.push("Short name"),this.dataSourceForm.get("name")?.invalid&&t.push("Display name"),this.dataSourceForm.get("tool")?.invalid&&t.push("Source tool"),this.dataSourceForm.get("url")?.invalid&&t.push("File path");let e=t.length>0?`Missing fields: ${t.join(", ")}`:"Please fill in all required fields";this.showNotification(e,"error")}}createDataSource(t){(t.sourceType==="INTERNAL"?this.dataSourceService.createInternalSource(t):this.dataSourceService.createExternalSource(t)).pipe(ue(this.destroy$)).subscribe({next:i=>{this.showNotification(`Source created: ${i.graphIRI}`,"success"),this.cancelForm()},error:i=>{this.showNotification(`Error: ${i.message}`,"error"),console.error("Error:",i)}})}updateDataSource(t,e){this.dataSourceService.updateDataSource(t,e).pipe(ue(this.destroy$)).subscribe({next:i=>{this.showNotification("Source updated","success"),this.cancelForm()},error:i=>{this.showNotification(`Error: ${i.message}`,"error")}})}deleteDataSource(t){let e=`Delete "${t.name}" and its named graph?`;confirm(e)&&this.dataSourceService.deleteDataSource(t.shortName).pipe(ue(this.destroy$)).subscribe({next:()=>{this.showNotification("Source deleted","success"),this.selectedDataSource?.id===t.id&&(this.selectedDataSource=null)},error:i=>{this.showNotification(`Error: ${i.message}`,"error")}})}reimportSource(t){confirm(`Re-import from ${t.url}?`)&&this.dataSourceService.syncExternalSource(t.shortName).pipe(ue(this.destroy$)).subscribe({next:()=>{this.showNotification("Data re-imported","success")},error:e=>{this.showNotification(`Error: ${e.message}`,"error")}})}selectDataSource(t){this.selectedDataSource=t,this.showForm=!1}closeDetail(){this.selectedDataSource=null}toggleHistory(t){this.expandedHistory=this.expandedHistory===t?null:t}copyToClipboard(t){t&&navigator.clipboard.writeText(t).then(()=>{this.showNotification("Copied to clipboard","success")}).catch(e=>{console.error("Copy error",e),this.showNotification("Copy error","error")})}isExternal(){return this.dataSourceForm.get("sourceType")?.value==="EXTERNAL"}showNotification(t,e){this.snackBar.open(t,"Fermer",{duration:e==="error"?5e3:3e3,horizontalPosition:"end",verticalPosition:"top",panelClass:`snackbar-${e}`})}canCreateInternalSource(){let t=this.dataSources.filter(e=>e.sourceType?.toUpperCase()==="INTERNAL");return console.log("Sources internes:",t.length),t.length===0}toggleFilterMenu(){this.showFilterMenu=!this.showFilterMenu,console.log("\u{1F53D} Menu filtre:",this.showFilterMenu?"ouvert":"ferm\xE9")}applyTypeFilter(t){this.filterType=t,console.log("\u{1F50D} Filtre type:",t)}applyToolFilter(t){this.filterTool=t,console.log("\u{1F50D} Filtre outil:",t)}resetFilters(){this.filterType="ALL",this.filterTool="ALL",this.searchTerm="",console.log("\u{1F504} Filtres r\xE9initialis\xE9s")}getFilteredSources(){let t=[...this.dataSources];if(this.filterType!=="ALL"&&(t=t.filter(e=>e.sourceType===this.filterType)),this.filterTool!=="ALL"&&(t=t.filter(e=>e.tool===this.filterTool)),this.searchTerm.trim()!==""){let e=this.searchTerm.toLowerCase();t=t.filter(i=>i.name.toLowerCase().includes(e)||i.shortName.toLowerCase().includes(e)||i.description&&i.description.toLowerCase().includes(e))}return t}getAvailableTools(){return[...new Set(this.dataSources.filter(t=>t.tool).map(t=>t.tool))]}exportAsJSON(){let t=this.getFilteredSources(),e=JSON.stringify(t,null,2),i=new Blob([e],{type:"application/json"}),r=window.URL.createObjectURL(i),o=document.createElement("a");o.href=r,o.download=`datasources-${new Date().toISOString().split("T")[0]}.json`,o.click(),window.URL.revokeObjectURL(r),this.showNotification("JSON export successful","success")}exportAsCSV(){let t=this.getFilteredSources(),e=["Short Name","Name","Type","Tool","Editable","Graph IRI"],i=t.map(m=>[m.shortName,m.name,m.sourceType,m.tool||"-",m.editable?"Yes":"No",m.graphIRI]),r=[e.join(","),...i.map(m=>m.map(p=>`"${p}"`).join(","))].join(` +`),o=new Blob([r],{type:"text/csv;charset=utf-8;"}),a=window.URL.createObjectURL(o),c=document.createElement("a");c.href=a,c.download=`datasources-${new Date().toISOString().split("T")[0]}.csv`,c.click(),window.URL.revokeObjectURL(a),this.showNotification("CSV export successful","success")}exportConfiguration(){let t={exportDate:new Date().toISOString(),totalSources:this.dataSources.length,sources:this.dataSources.map(a=>({shortName:a.shortName,name:a.name,description:a.description,type:a.sourceType,tool:a.tool,url:a.url,graphIRI:a.graphIRI,editable:a.editable}))},e=JSON.stringify(t,null,2),i=new Blob([e],{type:"application/json"}),r=window.URL.createObjectURL(i),o=document.createElement("a");o.href=r,o.download=`datasources-config-${new Date().toISOString().split("T")[0]}.json`,o.click(),window.URL.revokeObjectURL(r),this.showNotification("Configuration export successful","success")}onFileSelected(t){let e=t.target;if(!e.files||e.files.length===0)return;let i=e.files[0];if(!i.name.endsWith(".json")){this.showNotification("File must be in JSON format","error");return}let r=new FileReader;r.onload=o=>{try{let a=o.target?.result,c=JSON.parse(a);if(!this.validateConfigStructure(c)){this.showNotification("Invalid configuration format","error");return}this.confirmImport(c)}catch(a){console.error("Erreur parsing JSON:",a),this.showNotification("Invalid JSON file","error")}},r.onerror=()=>{this.showNotification("Error reading file","error")},r.readAsText(i),e.value=""}validateConfigStructure(t){if(!t||typeof t!="object")return!1;let e=Array.isArray(t)?t:t.sources;return Array.isArray(e)?e.every(i=>i&&typeof i=="object"&&i.shortName&&i.name&&(i.type||i.sourceType)):!1}confirmImport(t){let e=Array.isArray(t)?t:t.sources,r=`Do you want to import ${e.length} source(s)? + +\u26A0\uFE0F Warning: +- Sources with the same shortName will be skipped +- Only 1 INTERNAL source can exist +- EXTERNAL sources will be created but not automatically synchronized`;confirm(r)&&this.importConfiguration(e)}importConfiguration(t){let e=0,i=0,r=0,o=[],a=t.length,c=t.filter(m=>(m.type||m.sourceType)?.toUpperCase()==="INTERNAL");if(c.length>1){this.showNotification(`\u274C File contains ${c.length} INTERNAL sources. Only 1 is allowed.`,"error");return}if(c.length===1&&!this.canCreateInternalSource()){this.showNotification("\u274C An INTERNAL source already exists. Delete it before importing.","error");return}this.showNotification(`\u{1F504} Importing ${a} source(s)...`,"info"),t.forEach(m=>{let p=(m.type||m.sourceType)?.toUpperCase(),x={shortName:m.shortName,name:m.name,description:m.description||"",sourceType:p,url:m.url||void 0,tool:m.tool||void 0};(p==="INTERNAL"?this.dataSourceService.createInternalSource(x):this.dataSourceService.createExternalSource(x)).pipe(ue(this.destroy$)).subscribe({next:R=>{e++,r++,console.log(`\u2705 Source import\xE9e: ${R.name}`),r===a&&this.showImportSummary(e,i,o)},error:R=>{i++,r++;let P=`${m.shortName}: ${R.message||"Erreur inconnue"}`;o.push(P),console.error(`\u274C Erreur import ${m.shortName}:`,R),r===a&&this.showImportSummary(e,i,o)}})})}showImportSummary(t,e,i){if(e===0)this.showNotification(`\u2705 Import successful! ${t} source(s) created`,"success");else{let r=`\u26A0\uFE0F Partial Import: +\u2705 ${t} succeeded +\u274C ${e} failed + +Erreurs: +${i.join(` +`)}`;console.error("Import errors",i),this.showNotification(r,"warning")}}static \u0275fac=function(e){return new(e||n)(K(Ar),K(kn),K(Tt),K(Mt),K(lt))};static \u0275cmp=q({type:n,selectors:[["app-gestion-sources"]],decls:65,vars:27,consts:[["fileInput",""],[1,"flex","flex-col","h-screen","bg-gray-50"],[1,"bg-gradient-to-r","from-blue-900","to-blue-600","shadow-lg"],[1,"flex","items-center","justify-between","px-6","py-4"],[1,"flex","items-center","gap-4"],[1,"flex","items-center","justify-center","w-10","h-10","bg-white/20","backdrop-blur-sm","rounded-xl","hover:bg-white/30","transition-all","duration-300","cursor-pointer"],["fill","none","stroke","currentColor","viewBox","0 0 24 24",1,"w-6","h-6","text-white"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4m0 5c0 2.21-3.582 4-8 4s-8-1.79-8-4"],[1,"text-xl","font-bold","text-white","tracking-tight"],[1,"text-xs","text-blue-100"],[1,"cursor-pointer","flex","items-center","gap-2","px-3","py-1.5","bg-white/10","hover:bg-white/20","backdrop-blur-md","rounded-lg","transition-colors",3,"click"],["fill","none","stroke","currentColor","viewBox","0 0 24 24",1,"w-4","h-4","text-white"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M15 19l-7-7 7-7"],[1,"text-sm","text-white","font-medium"],["fill","none","stroke","currentColor","viewBox","0 0 24 24",1,"w-4","h-4","text-white","rotate-180"],[1,"flex","items-center","gap-2","px-3","py-1.5","bg-white/10","backdrop-blur-md","rounded-lg"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7M4 7c0 2.21 3.582 4 8 4s8-1.79 8-4M4 7c0-2.21 3.582-4 8-4s8 1.79 8 4"],[1,"flex","flex-1","overflow-hidden"],[1,"flex-1","overflow-y-auto","bg-gray-50"],[1,"p-6"],[1,"mb-4","flex","items-center","gap-4"],[1,"flex","items-center","gap-2","text-sm","text-gray-600"],["fill","none","stroke","currentColor","viewBox","0 0 24 24",1,"w-4","h-4"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M4 7v10c0 2.21 3.582 4 8 4s8-1.79 8-4V7"],["class","inline-flex items-center gap-2 px-3 py-1.5 bg-blue-100 text-blue-700 rounded-full text-sm font-medium animate-fade-in",4,"ngIf"],[1,"flex","items-center","gap-3","mb-6"],["class","flex items-center gap-2 px-4 py-2.5 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-all text-sm font-medium shadow-sm hover:shadow-md transform hover:scale-105 duration-200",3,"click",4,"ngIf"],["class","px-4 py-2 bg-amber-50 border border-amber-200 rounded-lg text-sm text-amber-700",4,"ngIf"],[1,"flex-1"],[1,"flex","items-center","gap-2"],[1,"relative"],["type","file","accept",".json",1,"hidden",3,"change"],["aria-label","Import configuration",1,"p-2.5","border","border-gray-300","rounded-lg","hover:bg-gray-50","transition-colors",3,"click"],["fill","none","stroke","currentColor","viewBox","0 0 24 24",1,"w-5","h-5","text-gray-600"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-8l-4-4m0 0L8 8m4-4v12"],["aria-label","Advanced filters",1,"p-2.5","border","border-gray-300","rounded-lg","hover:bg-gray-50","transition-colors",3,"click"],["fill","none","stroke","currentColor","viewBox","0 0 24 24",1,"w-5","h-5"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M3 4a1 1 0 011-1h16a1 1 0 011 1v2.586a1 1 0 01-.293.707l-6.414 6.414a1 1 0 00-.293.707V17l-4 4v-6.586a1 1 0 00-.293-.707L3.293 7.293A1 1 0 013 6.586V4z"],["class","absolute right-0 mt-2 w-80 bg-white rounded-lg shadow-xl border border-gray-200 z-[9999] p-4",4,"ngIf"],["aria-label","Export data",1,"p-2.5","border","border-gray-300","rounded-lg","hover:bg-gray-50","transition-colors",3,"click"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M4 16v1a3 3 0 003 3h10a3 3 0 003-3v-1m-4-4l-4 4m0 0l-4-4m4 4V4"],["class","absolute right-0 mt-2 w-56 bg-white rounded-lg shadow-xl border border-gray-200 z-[9999] py-1",4,"ngIf"],["class","bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden mb-6 animate-fade-in",4,"ngIf"],["class","bg-white rounded-lg shadow-sm border border-gray-200 overflow-hidden",4,"ngIf"],["class","bg-white rounded-lg shadow-sm border border-gray-200 p-12 text-center",4,"ngIf"],["class","w-96 bg-white border-l border-gray-200 overflow-y-auto shadow-xl animate-slide-in",4,"ngIf"],[1,"inline-flex","items-center","gap-2","px-3","py-1.5","bg-blue-100","text-blue-700","rounded-full","text-sm","font-medium","animate-fade-in"],[1,"flex","items-center","gap-2","px-4","py-2.5","bg-blue-600","text-white","rounded-lg","hover:bg-blue-700","transition-all","text-sm","font-medium","shadow-sm","hover:shadow-md","transform","hover:scale-105","duration-200",3,"click"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M12 4v16m8-8H4"],[1,"px-4","py-2","bg-amber-50","border","border-amber-200","rounded-lg","text-sm","text-amber-700"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M12 9v2m0 4h.01m-6.938 4h13.856c1.54 0 2.502-1.667 1.732-3L13.732 4c-.77-1.333-2.694-1.333-3.464 0L3.34 16c-.77 1.333.192 3 1.732 3z"],[1,"absolute","right-0","mt-2","w-80","bg-white","rounded-lg","shadow-xl","border","border-gray-200","z-[9999]","p-4"],[1,"space-y-4"],[1,"text-xs","font-semibold","text-gray-500","uppercase","tracking-wider","mb-2"],[1,"flex","gap-2"],[1,"px-3","py-1.5","rounded","text-xs","font-medium","transition-colors",3,"click"],[4,"ngIf"],["type","text","placeholder","Search...",1,"w-full","px-3","py-2","border","border-gray-300","rounded-lg","text-sm","focus:outline-none","focus:ring-2","focus:ring-blue-500",3,"ngModelChange","ngModel"],[1,"pt-3","border-t","border-gray-200","flex","justify-end"],[1,"px-3","py-1.5","text-xs","font-medium","text-gray-600","hover:text-gray-900","transition-colors",3,"click"],[1,"flex","flex-wrap","gap-2"],["class","px-3 py-1.5 rounded text-xs font-medium transition-colors",3,"bg-blue-600","text-white","bg-gray-100","click",4,"ngFor","ngForOf"],[1,"absolute","right-0","mt-2","w-56","bg-white","rounded-lg","shadow-xl","border","border-gray-200","z-[9999]","py-1"],[1,"w-full","px-4","py-2","text-left","text-sm","hover:bg-gray-50","flex","items-center","gap-3",3,"click"],["fill","none","stroke","currentColor","viewBox","0 0 24 24",1,"w-4","h-4","text-gray-600"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M3 10h18M3 14h18m-9-4v8m-7 0h14a2 2 0 002-2V8a2 2 0 00-2-2H5a2 2 0 00-2 2v8a2 2 0 002 2z"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M15 12a3 3 0 11-6 0 3 3 0 016 0z"],[1,"bg-white","rounded-lg","shadow-sm","border","border-gray-200","overflow-hidden","mb-6","animate-fade-in"],[1,"px-6","py-4","bg-gradient-to-r","from-blue-900","to-blue-600","border-b","border-blue-700"],[1,"flex","items-center","justify-between"],[1,"flex","items-center","gap-3"],["fill","none","stroke","currentColor","viewBox","0 0 24 24",1,"w-5","h-5","text-white"],[1,"text-lg","font-semibold","text-white"],["aria-label","Close",1,"p-1.5","hover:bg-white/20","rounded-lg","transition-colors",3,"click"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M6 18L18 6M6 6l12 12"],[3,"ngSubmit","formGroup"],[1,"grid","grid-cols-1","md:grid-cols-2","gap-6"],[1,"md:col-span-2"],[1,"block","text-sm","font-medium","text-gray-700","mb-2"],["formControlName","sourceType",1,"w-full","px-3","py-2.5","border","border-gray-300","rounded-lg","focus:outline-none","focus:ring-2","focus:ring-blue-500","focus:border-transparent","text-sm","transition-all"],["value","INTERNAL",3,"disabled"],["value","EXTERNAL"],[1,"mt-1","text-xs","text-gray-500"],["type","text","formControlName","shortName","placeholder","e.g., lameta-recordings",1,"w-full","px-3","py-2.5","border","border-gray-300","rounded-lg","focus:outline-none","focus:ring-2","focus:ring-blue-500","focus:border-transparent","text-sm","transition-all",3,"readonly"],[1,"mt-1","text-xs","text-gray-500","font-mono"],["class","mt-1 text-xs text-red-600",4,"ngIf"],["type","text","formControlName","name","placeholder","e.g., Lameta Audio Recordings",1,"w-full","px-3","py-2.5","border","border-gray-300","rounded-lg","focus:outline-none","focus:ring-2","focus:ring-blue-500","focus:border-transparent","text-sm","transition-all"],["formControlName","description","rows","3","placeholder","Describe the content of this data source...",1,"w-full","px-3","py-2.5","border","border-gray-300","rounded-lg","focus:outline-none","focus:ring-2","focus:ring-blue-500","focus:border-transparent","text-sm","transition-all"],[1,"flex","justify-end","gap-3","mt-6","pt-6","border-t","border-gray-200"],["type","button",1,"px-4","py-2.5","border","border-gray-300","text-gray-700","rounded-lg","hover:bg-gray-50","transition-colors","text-sm","font-medium",3,"click"],["type","submit",1,"px-4","py-2.5","bg-blue-600","text-white","rounded-lg","hover:bg-blue-700","transition-colors","text-sm","font-medium","disabled:opacity-50","disabled:cursor-not-allowed","shadow-sm",3,"disabled"],[1,"mt-1","text-xs","text-red-600"],[1,"flex","items-center","gap-2","px-4","py-3","bg-blue-50","border","border-blue-200","rounded-lg"],["fill","none","stroke","currentColor","viewBox","0 0 24 24",1,"w-5","h-5","text-blue-600"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M13 16h-1v-4h-1m1-4h.01M21 12a9 9 0 11-18 0 9 9 0 0118 0z"],[1,"text-sm","text-blue-700"],["formControlName","tool",1,"w-full","px-3","py-2.5","border","border-gray-300","rounded-lg","focus:outline-none","focus:ring-2","focus:ring-blue-500","focus:border-transparent","text-sm","transition-all"],["value",""],["value","Tropy"],["value","Lameta"],["value","Gramps"],["value","Other"],["type","text","formControlName","url","placeholder","file:///path/to/data.ttl or https://example.com/data.rdf",1,"w-full","px-3","py-2.5","border","border-gray-300","rounded-lg","focus:outline-none","focus:ring-2","focus:ring-blue-500","focus:border-transparent","text-sm","transition-all"],[1,"bg-white","rounded-lg","shadow-sm","border","border-gray-200","overflow-hidden"],[1,"px-6","py-4","bg-gray-50","border-b","border-gray-200"],[1,"text-lg","font-semibold","text-gray-900","flex","items-center","gap-2"],[1,"text-sm","text-gray-500"],[1,"overflow-x-auto"],[1,"w-full"],[1,"bg-gray-50","border-b","border-gray-200"],[1,"px-6","py-3","text-left","text-xs","font-semibold","text-gray-600","uppercase","tracking-wider"],[1,"px-6","py-3","text-right","text-xs","font-semibold","text-gray-600","uppercase","tracking-wider"],[1,"divide-y","divide-gray-200"],["class","hover:bg-gray-50 cursor-pointer transition-colors group",3,"bg-blue-50","click",4,"ngFor","ngForOf"],[1,"hover:bg-gray-50","cursor-pointer","transition-colors","group",3,"click"],[1,"px-6","py-4"],[1,"flex","flex-col"],[1,"text-sm","font-medium","text-gray-900"],[1,"text-xs","text-gray-500","font-mono","mt-1"],["class","text-xs text-blue-600 font-mono mt-0.5 flex items-center gap-1",4,"ngIf"],[1,"inline-flex","items-center","px-2.5","py-0.5","rounded-full","text-xs","font-medium"],[1,"px-6","py-4","text-sm","text-gray-600"],["class","inline-flex items-center gap-1",4,"ngIf"],["class","text-gray-400",4,"ngIf"],["fill","currentColor","viewBox","0 0 20 20",1,"w-3","h-3","mr-1"],["cx","10","cy","10","r","4"],[1,"px-6","py-4","text-right"],[1,"flex","items-center","justify-end","gap-2","opacity-0","group-hover:opacity-100","transition-opacity"],[1,"text-blue-600","hover:text-blue-800","transition-colors","disabled:cursor-not-allowed",3,"click","disabled"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"],["class","text-purple-600 hover:text-purple-800 transition-colors","aria-label","Re-import",3,"click",4,"ngIf"],["aria-label","Delete",1,"text-red-600","hover:text-red-800","transition-colors",3,"click"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"],[1,"text-xs","text-blue-600","font-mono","mt-0.5","flex","items-center","gap-1"],["fill","none","stroke","currentColor","viewBox","0 0 24 24",1,"w-3","h-3"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M13.828 10.172a4 4 0 00-5.656 0l-4 4a4 4 0 105.656 5.656l1.102-1.101m-.758-4.899a4 4 0 005.656 0l4-4a4 4 0 00-5.656-5.656l-1.1 1.1"],[1,"inline-flex","items-center","gap-1"],["fill","none","stroke","currentColor","viewBox","0 0 24 24",1,"w-4","h-4","text-gray-400"],[1,"text-gray-400"],["aria-label","Re-import",1,"text-purple-600","hover:text-purple-800","transition-colors",3,"click"],[1,"bg-white","rounded-lg","shadow-sm","border","border-gray-200","p-12","text-center"],["fill","none","stroke","currentColor","viewBox","0 0 24 24",1,"mx-auto","h-16","w-16","text-gray-300"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M19 11H5m14 0a2 2 0 012 2v6a2 2 0 01-2 2H5a2 2 0 01-2-2v-6a2 2 0 012-2m14 0V9a2 2 0 00-2-2M5 11V9a2 2 0 012-2m0 0V5a2 2 0 012-2h6a2 2 0 012 2v2M7 7h10"],[1,"mt-4","text-lg","font-medium","text-gray-900"],[1,"mt-2","text-sm","text-gray-500"],[1,"mt-4","inline-flex","items-center","gap-2","px-4","py-2","bg-blue-600","text-white","rounded-lg","hover:bg-blue-700","transition-colors","text-sm","font-medium",3,"click"],[1,"w-96","bg-white","border-l","border-gray-200","overflow-y-auto","shadow-xl","animate-slide-in"],[1,"sticky","top-0","bg-white","border-b","border-gray-200","px-6","py-4","flex","items-center","justify-between","z-10"],[1,"text-lg","font-semibold","text-gray-900"],["aria-label","Close",1,"p-1.5","hover:bg-gray-100","rounded-lg","transition-colors",3,"click"],["fill","none","stroke","currentColor","viewBox","0 0 24 24",1,"w-5","h-5","text-gray-500"],[1,"space-y-6"],[1,"flex","items-center","justify-between","p-3","bg-gray-50","border","border-gray-200","rounded-lg"],[1,"text-sm","text-gray-600","font-mono"],["aria-label","Copy",1,"text-gray-400","hover:text-gray-600","transition-colors",3,"click"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"],[1,"flex","items-center","justify-between","p-3","bg-blue-50","border","border-blue-200","rounded-lg"],[1,"text-sm","text-blue-700","font-mono"],["aria-label","Copy",1,"text-blue-400","hover:text-blue-600","transition-colors",3,"click"],[1,"grid","grid-cols-2","gap-4"],[1,"block","text-xs","font-semibold","text-gray-500","uppercase","tracking-wider","mb-1"],["class","p-4 bg-purple-50 border border-purple-200 rounded-lg",4,"ngIf"],[1,"text-sm","text-gray-600"],[1,"p-4","bg-purple-50","border","border-purple-200","rounded-lg"],[1,"text-sm","font-medium","text-purple-900","mb-3"],[1,"space-y-2"],[1,"text-xs","font-semibold","text-purple-700","uppercase","tracking-wider"],[1,"text-sm","text-purple-900"],[1,"text-sm","text-purple-900","font-mono","break-all"],[1,"flex","items-center","justify-between","w-full","text-sm","font-medium","text-gray-700","hover:text-gray-900","transition-colors",3,"click"],["fill","none","stroke","currentColor","viewBox","0 0 24 24",1,"w-4","h-4","transition-transform"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M19 9l-7 7-7-7"],["class","mt-2 space-y-1",4,"ngIf"],[1,"mt-2","space-y-1"],["class","flex items-center gap-2 p-2 bg-gray-50 rounded text-xs text-gray-600",4,"ngFor","ngForOf"],[1,"flex","items-center","gap-2","p-2","bg-gray-50","rounded","text-xs","text-gray-600"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M12 8v4l3 3m6-3a9 9 0 11-18 0 9 9 0 0118 0z"]],template:function(e,i){if(e&1){let r=T();s(0,"div",1)(1,"header",2)(2,"div",3)(3,"div",4)(4,"div",5),b(),s(5,"svg",6),g(6,"path",7),l()(),S(),s(7,"div")(8,"h1",8),u(9,"RDF Data Sources Management"),l(),s(10,"p",9),u(11,"Named graphs and RDF subgraphs"),l()()(),s(12,"div",4)(13,"button",10),_("click",function(){return y(r),v(i.router.navigate(["/gestion-projets"]))}),b(),s(14,"svg",11),g(15,"path",12),l(),S(),s(16,"span",13),u(17,"Projects"),l()(),s(18,"button",10),_("click",function(){return y(r),v(i.router.navigate(["/gestion-ressources"]))}),s(19,"span",13),u(20,"Resources"),l(),b(),s(21,"svg",14),g(22,"path",12),l()(),S(),s(23,"div",15),b(),s(24,"svg",11),g(25,"path",16),l(),S(),s(26,"span",13),u(27),l()()()()(),s(28,"div",17)(29,"main",18)(30,"div",19)(31,"div",20)(32,"div",21),b(),s(33,"svg",22),g(34,"path",23),l(),S(),s(35,"span")(36,"strong"),u(37),l(),u(38," data source(s)"),l()(),w(39,Ju,3,0,"div",24),l(),s(40,"div",25),w(41,ep,5,0,"button",26)(42,tp,6,0,"div",27),g(43,"div",28),s(44,"div",29)(45,"div",30)(46,"input",31,0),_("change",function(a){return y(r),v(i.onFileSelected(a))}),l(),s(48,"button",32),_("click",function(){y(r);let a=wt(47);return v(a.click())}),b(),s(49,"svg",33),g(50,"path",34),l()()(),S(),s(51,"div",30)(52,"button",35),_("click",function(){return y(r),v(i.toggleFilterMenu())}),b(),s(53,"svg",36),g(54,"path",37),l()(),w(55,rp,20,20,"div",38),l(),S(),s(56,"div",30)(57,"button",39),_("click",function(){return y(r),v(i.showExportMenu=!i.showExportMenu)}),b(),s(58,"svg",36),g(59,"path",40),l()(),w(60,op,17,0,"div",41),l()()(),w(61,cp,46,14,"div",42)(62,_p,27,2,"div",43)(63,yp,11,0,"div",44),l()(),w(64,Tp,44,24,"aside",45),l()()}e&2&&(d(27),D("",i.dataSources.length," sources"),d(10),j(i.dataSources.length),d(2),f("ngIf",i.showForm),d(2),f("ngIf",!i.showForm),d(),f("ngIf",!i.canCreateInternalSource()),d(10),I("bg-blue-50",i.showFilterMenu)("border-blue-300",i.showFilterMenu),d(),I("text-blue-600",i.showFilterMenu)("text-gray-600",!i.showFilterMenu),d(2),f("ngIf",i.showFilterMenu),d(2),I("bg-blue-50",i.showExportMenu)("border-blue-300",i.showExportMenu),d(),I("text-blue-600",i.showExportMenu)("text-gray-600",!i.showExportMenu),d(2),f("ngIf",i.showExportMenu),d(),f("ngIf",i.showForm),d(),f("ngIf",i.dataSources.length>0),d(),f("ngIf",i.dataSources.length===0&&!i.showForm),d(),f("ngIf",i.selectedDataSource))},dependencies:[be,nt,He,oi,rt,wn,li,ci,Ct,si,St,xn,kt,Et,Cn,Sn,ps,mc,Lt,pc,_a,ys,yc,Ue,mi,vs,va],styles:["@keyframes _ngcontent-%COMP%_fade-in{0%{opacity:0}to{opacity:1}}@keyframes _ngcontent-%COMP%_slide-in{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes _ngcontent-%COMP%_slide-down{0%{transform:translateY(-10px);opacity:0}to{transform:translateY(0);opacity:1}}.animate-fade-in[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_fade-in .3s ease-in-out}.animate-slide-in[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_slide-in .3s ease-out} .snackbar-success{background:#10b981!important;color:#fff!important} .snackbar-error{background:#ef4444!important;color:#fff!important} .snackbar-warning{background:#f59e0b!important;color:#fff!important} .snackbar-info{background:#3b82f6!important;color:#fff!important}[_ngcontent-%COMP%]::-webkit-scrollbar{width:8px;height:8px}[_ngcontent-%COMP%]::-webkit-scrollbar-track{background:#f1f5f9}[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover{background:#94a3b8}tr.group[_ngcontent-%COMP%]:hover .opacity-0[_ngcontent-%COMP%]{opacity:1}@media (max-width: 768px){.hidden-mobile[_ngcontent-%COMP%]{display:none}}.filter-container[_ngcontent-%COMP%]{position:relative}.filter-container[_ngcontent-%COMP%] .filter-button.active[_ngcontent-%COMP%]{background-color:#3f51b51a;color:#3f51b5}.filter-menu[_ngcontent-%COMP%]{position:absolute;top:50px;right:0;background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;padding:16px;min-width:300px;z-index:1000}.filter-menu[_ngcontent-%COMP%] .filter-section[_ngcontent-%COMP%]{margin-bottom:16px}.filter-menu[_ngcontent-%COMP%] .filter-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{font-size:12px;font-weight:600;text-transform:uppercase;color:#666;margin:0 0 8px}.filter-menu[_ngcontent-%COMP%] .filter-section[_ngcontent-%COMP%] .filter-options[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:8px}.filter-menu[_ngcontent-%COMP%] .filter-section[_ngcontent-%COMP%] .filter-options[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{font-size:13px;padding:6px 12px;border:1px solid #ddd;border-radius:4px;background:#fff;transition:all .2s}.filter-menu[_ngcontent-%COMP%] .filter-section[_ngcontent-%COMP%] .filter-options[_ngcontent-%COMP%] button.active[_ngcontent-%COMP%]{background-color:#3f51b5;color:#fff;border-color:#3f51b5}.filter-menu[_ngcontent-%COMP%] .filter-section[_ngcontent-%COMP%] .filter-options[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:hover:not(.active){background-color:#f5f5f5}.filter-menu[_ngcontent-%COMP%] .filter-section[_ngcontent-%COMP%] .search-field[_ngcontent-%COMP%]{width:100%;margin-top:8px}.filter-menu[_ngcontent-%COMP%] .filter-actions[_ngcontent-%COMP%]{border-top:1px solid #eee;padding-top:12px;text-align:right}.filter-menu[_ngcontent-%COMP%] .filter-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{color:#666;font-size:13px}.stats-dialog-overlay[_ngcontent-%COMP%]{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000;animation:_ngcontent-%COMP%_fadeIn .2s}.stats-dialog[_ngcontent-%COMP%]{background:#fff;border-radius:12px;padding:24px;max-width:600px;width:90%;max-height:80vh;overflow-y:auto;box-shadow:0 8px 32px #0003;animation:_ngcontent-%COMP%_slideUp .3s}.stats-dialog[_ngcontent-%COMP%] .stats-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid #f0f0f0}.stats-dialog[_ngcontent-%COMP%] .stats-header[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0;font-size:24px;font-weight:600;color:#333}.stats-dialog[_ngcontent-%COMP%] .stats-content[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.stats-dialog[_ngcontent-%COMP%] .stat-card[_ngcontent-%COMP%]{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);border-radius:12px;padding:20px;display:flex;align-items:center;gap:16px;transition:transform .2s}.stats-dialog[_ngcontent-%COMP%] .stat-card[_ngcontent-%COMP%]:hover{transform:translateY(-4px)}.stats-dialog[_ngcontent-%COMP%] .stat-card.full-width[_ngcontent-%COMP%]{grid-column:1/-1}.stats-dialog[_ngcontent-%COMP%] .stat-card[_ngcontent-%COMP%] .stat-icon[_ngcontent-%COMP%]{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff;color:#3f51b5}.stats-dialog[_ngcontent-%COMP%] .stat-card[_ngcontent-%COMP%] .stat-icon.internal[_ngcontent-%COMP%]{background:#e3f2fd;color:#1976d2}.stats-dialog[_ngcontent-%COMP%] .stat-card[_ngcontent-%COMP%] .stat-icon.external[_ngcontent-%COMP%]{background:#f3e5f5;color:#7b1fa2}.stats-dialog[_ngcontent-%COMP%] .stat-card[_ngcontent-%COMP%] .stat-icon.editable[_ngcontent-%COMP%]{background:#e8f5e9;color:#388e3c}.stats-dialog[_ngcontent-%COMP%] .stat-card[_ngcontent-%COMP%] .stat-icon.readonly[_ngcontent-%COMP%]{background:#ffebee;color:#d32f2f}.stats-dialog[_ngcontent-%COMP%] .stat-card[_ngcontent-%COMP%] .stat-icon.tools[_ngcontent-%COMP%]{background:#fff3e0;color:#f57c00}.stats-dialog[_ngcontent-%COMP%] .stat-card[_ngcontent-%COMP%] .stat-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:28px;width:28px;height:28px}.stats-dialog[_ngcontent-%COMP%] .stat-card[_ngcontent-%COMP%] .stat-info[_ngcontent-%COMP%]{flex:1}.stats-dialog[_ngcontent-%COMP%] .stat-card[_ngcontent-%COMP%] .stat-info[_ngcontent-%COMP%] .stat-value[_ngcontent-%COMP%]{font-size:32px;font-weight:700;color:#333;line-height:1;margin-bottom:4px}.stats-dialog[_ngcontent-%COMP%] .stat-card[_ngcontent-%COMP%] .stat-info[_ngcontent-%COMP%] .stat-label[_ngcontent-%COMP%]{font-size:13px;color:#666;text-transform:uppercase;letter-spacing:.5px}.stats-dialog[_ngcontent-%COMP%] .stat-card[_ngcontent-%COMP%] .stat-info[_ngcontent-%COMP%] .tools-list[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.stats-dialog[_ngcontent-%COMP%] .stat-card[_ngcontent-%COMP%] .stat-info[_ngcontent-%COMP%] .tools-list[_ngcontent-%COMP%] .tool-chip[_ngcontent-%COMP%]{background:#fff;padding:4px 12px;border-radius:16px;font-size:12px;font-weight:500;color:#333}@keyframes _ngcontent-%COMP%_fadeIn{0%{opacity:0}to{opacity:1}}@keyframes _ngcontent-%COMP%_slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.stats-button[_ngcontent-%COMP%]:hover, .filter-button[_ngcontent-%COMP%]:hover, .export-button[_ngcontent-%COMP%]:hover{background-color:#3f51b514}"]})};var ba=new ne("CdkAccordion"),Fr=(()=>{class n{_stateChanges=new _e;_openCloseAllActions=new _e;id=k(Ni).getId("cdk-accordion-");multi=!1;openAll(){this.multi&&this._openCloseAllActions.next(!0)}closeAll(){this._openCloseAllActions.next(!1)}ngOnChanges(e){this._stateChanges.next(e)}ngOnDestroy(){this._stateChanges.complete(),this._openCloseAllActions.complete()}static \u0275fac=function(i){return new(i||n)};static \u0275dir=pe({type:n,selectors:[["cdk-accordion"],["","cdkAccordion",""]],inputs:{multi:[2,"multi","multi",ht]},exportAs:["cdkAccordion"],features:[De([{provide:ba,useExisting:n}]),Ve]})}return n})(),Nr=(()=>{class n{accordion=k(ba,{optional:!0,skipSelf:!0});_changeDetectorRef=k(Se);_expansionDispatcher=k(Rn);_openCloseAllSubscription=ii.EMPTY;closed=new se;opened=new se;destroyed=new se;expandedChange=new se;id=k(Ni).getId("cdk-accordion-child-");get expanded(){return this._expanded}set expanded(e){if(this._expanded!==e){if(this._expanded=e,this.expandedChange.emit(e),e){this.opened.emit();let i=this.accordion?this.accordion.id:this.id;this._expansionDispatcher.notify(this.id,i)}else this.closed.emit();this._changeDetectorRef.markForCheck()}}_expanded=!1;disabled=!1;_removeUniqueSelectionListener=()=>{};constructor(){}ngOnInit(){this._removeUniqueSelectionListener=this._expansionDispatcher.listen((e,i)=>{this.accordion&&!this.accordion.multi&&this.accordion.id===i&&this.id!==e&&(this.expanded=!1)}),this.accordion&&(this._openCloseAllSubscription=this._subscribeToOpenCloseAllActions())}ngOnDestroy(){this.opened.complete(),this.closed.complete(),this.destroyed.emit(),this.destroyed.complete(),this._removeUniqueSelectionListener(),this._openCloseAllSubscription.unsubscribe()}toggle(){this.disabled||(this.expanded=!this.expanded)}close(){this.disabled||(this.expanded=!1)}open(){this.disabled||(this.expanded=!0)}_subscribeToOpenCloseAllActions(){return this.accordion._openCloseAllActions.subscribe(e=>{this.disabled||(this.expanded=e)})}static \u0275fac=function(i){return new(i||n)};static \u0275dir=pe({type:n,selectors:[["cdk-accordion-item"],["","cdkAccordionItem",""]],inputs:{expanded:[2,"expanded","expanded",ht],disabled:[2,"disabled","disabled",ht]},outputs:{closed:"closed",opened:"opened",destroyed:"destroyed",expandedChange:"expandedChange"},exportAs:["cdkAccordionItem"],features:[De([{provide:ba,useValue:void 0}])]})}return n})(),jr=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=X({type:n});static \u0275inj=Y({})}return n})();var Pp=["body"],Ip=["bodyWrapper"],Ap=[[["mat-expansion-panel-header"]],"*",[["mat-action-row"]]],Op=["mat-expansion-panel-header","*","mat-action-row"];function Lp(n,t){}var Fp=[[["mat-panel-title"]],[["mat-panel-description"]],"*"],Np=["mat-panel-title","mat-panel-description","*"];function jp(n,t){n&1&&(s(0,"span",1),b(),s(1,"svg",2),g(2,"path",3),l()())}var xa=new ne("MAT_ACCORDION"),wc=new ne("MAT_EXPANSION_PANEL"),Vp=(()=>{class n{_template=k(Ha);_expansionPanel=k(wc,{optional:!0});constructor(){}static \u0275fac=function(i){return new(i||n)};static \u0275dir=pe({type:n,selectors:[["ng-template","matExpansionPanelContent",""]]})}return n})(),Cc=new ne("MAT_EXPANSION_PANEL_DEFAULT_OPTIONS"),wa=(()=>{class n extends Nr{_viewContainerRef=k(Ii);_animationsDisabled=k(Bt,{optional:!0})==="NoopAnimations";_document=k(Fi);_ngZone=k(ut);_elementRef=k(Pi);_renderer=k(so);_cleanupTransitionEnd;get hideToggle(){return this._hideToggle||this.accordion&&this.accordion.hideToggle}set hideToggle(e){this._hideToggle=e}_hideToggle=!1;get togglePosition(){return this._togglePosition||this.accordion&&this.accordion.togglePosition}set togglePosition(e){this._togglePosition=e}_togglePosition;afterExpand=new se;afterCollapse=new se;_inputChanges=new _e;accordion=k(xa,{optional:!0,skipSelf:!0});_lazyContent;_body;_bodyWrapper;_portal;_headerId=k(Ni).getId("mat-expansion-panel-header-");constructor(){super();let e=k(Cc,{optional:!0});this._expansionDispatcher=k(Rn),e&&(this.hideToggle=e.hideToggle)}_hasSpacing(){return this.accordion?this.expanded&&this.accordion.displayMode==="default":!1}_getExpandedState(){return this.expanded?"expanded":"collapsed"}toggle(){this.expanded=!this.expanded}close(){this.expanded=!1}open(){this.expanded=!0}ngAfterContentInit(){this._lazyContent&&this._lazyContent._expansionPanel===this&&this.opened.pipe(Ri(null),Qe(()=>this.expanded&&!this._portal),vt(1)).subscribe(()=>{this._portal=new hs(this._lazyContent._template,this._viewContainerRef)}),this._setupAnimationEvents()}ngOnChanges(e){this._inputChanges.next(e)}ngOnDestroy(){super.ngOnDestroy(),this._cleanupTransitionEnd?.(),this._inputChanges.complete()}_containsFocus(){if(this._body){let e=this._document.activeElement,i=this._body.nativeElement;return e===i||i.contains(e)}return!1}_transitionEndListener=({target:e,propertyName:i})=>{e===this._bodyWrapper?.nativeElement&&i==="grid-template-rows"&&this._ngZone.run(()=>{this.expanded?this.afterExpand.emit():this.afterCollapse.emit()})};_setupAnimationEvents(){this._ngZone.runOutsideAngular(()=>{this._animationsDisabled?(this.opened.subscribe(()=>this._ngZone.run(()=>this.afterExpand.emit())),this.closed.subscribe(()=>this._ngZone.run(()=>this.afterCollapse.emit()))):setTimeout(()=>{let e=this._elementRef.nativeElement;this._cleanupTransitionEnd=this._renderer.listen(e,"transitionend",this._transitionEndListener),e.classList.add("mat-expansion-panel-animations-enabled")},200)})}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=q({type:n,selectors:[["mat-expansion-panel"]],contentQueries:function(i,r,o){if(i&1&&ri(o,Vp,5),i&2){let a;Be(a=Ge())&&(r._lazyContent=a.first)}},viewQuery:function(i,r){if(i&1&&(it(Pp,5),it(Ip,5)),i&2){let o;Be(o=Ge())&&(r._body=o.first),Be(o=Ge())&&(r._bodyWrapper=o.first)}},hostAttrs:[1,"mat-expansion-panel"],hostVars:4,hostBindings:function(i,r){i&2&&I("mat-expanded",r.expanded)("mat-expansion-panel-spacing",r._hasSpacing())},inputs:{hideToggle:[2,"hideToggle","hideToggle",ht],togglePosition:"togglePosition"},outputs:{afterExpand:"afterExpand",afterCollapse:"afterCollapse"},exportAs:["matExpansionPanel"],features:[De([{provide:xa,useValue:void 0},{provide:wc,useExisting:n}]),ni,Ve],ngContentSelectors:Op,decls:9,vars:4,consts:[["bodyWrapper",""],["body",""],[1,"mat-expansion-panel-content-wrapper"],["role","region",1,"mat-expansion-panel-content",3,"id"],[1,"mat-expansion-panel-body"],[3,"cdkPortalOutlet"]],template:function(i,r){i&1&&(xt(Ap),ze(0),s(1,"div",2,0)(3,"div",3,1)(5,"div",4),ze(6,1),w(7,Lp,0,0,"ng-template",5),l(),ze(8,2),l()()),i&2&&(d(),he("inert",r.expanded?null:""),d(2),f("id",r.id),he("aria-labelledby",r._headerId),d(4),f("cdkPortalOutlet",r._portal))},dependencies:[fs],styles:[`.mat-expansion-panel{box-sizing:content-box;display:block;margin:0;overflow:hidden;position:relative;background:var(--mat-expansion-container-background-color, var(--mat-sys-surface));color:var(--mat-expansion-container-text-color, var(--mat-sys-on-surface));border-radius:var(--mat-expansion-container-shape, 12px)}.mat-expansion-panel.mat-expansion-panel-animations-enabled{transition:margin 225ms cubic-bezier(0.4, 0, 0.2, 1),box-shadow 280ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel:not([class*=mat-elevation-z]){box-shadow:0px 3px 1px -2px rgba(0, 0, 0, 0.2), 0px 2px 2px 0px rgba(0, 0, 0, 0.14), 0px 1px 5px 0px rgba(0, 0, 0, 0.12)}.mat-accordion .mat-expansion-panel:not(.mat-expanded),.mat-accordion .mat-expansion-panel:not(.mat-expansion-panel-spacing){border-radius:0}.mat-accordion .mat-expansion-panel:first-of-type{border-top-right-radius:var(--mat-expansion-container-shape, 12px);border-top-left-radius:var(--mat-expansion-container-shape, 12px)}.mat-accordion .mat-expansion-panel:last-of-type{border-bottom-right-radius:var(--mat-expansion-container-shape, 12px);border-bottom-left-radius:var(--mat-expansion-container-shape, 12px)}@media(forced-colors: active){.mat-expansion-panel{outline:solid 1px}}.mat-expansion-panel-content-wrapper{display:grid;grid-template-rows:0fr;grid-template-columns:100%}.mat-expansion-panel-animations-enabled .mat-expansion-panel-content-wrapper{transition:grid-template-rows 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper{grid-template-rows:1fr}@supports not (grid-template-rows: 0fr){.mat-expansion-panel-content-wrapper{height:0}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper{height:auto}}.mat-expansion-panel-content{display:flex;flex-direction:column;overflow:visible;min-height:0;visibility:hidden;font-family:var(--mat-expansion-container-text-font, var(--mat-sys-body-large-font));font-size:var(--mat-expansion-container-text-size, var(--mat-sys-body-large-size));font-weight:var(--mat-expansion-container-text-weight, var(--mat-sys-body-large-weight));line-height:var(--mat-expansion-container-text-line-height, var(--mat-sys-body-large-line-height));letter-spacing:var(--mat-expansion-container-text-tracking, var(--mat-sys-body-large-tracking))}.mat-expansion-panel-animations-enabled .mat-expansion-panel-content{transition:visibility 190ms linear}.mat-expansion-panel.mat-expanded>.mat-expansion-panel-content-wrapper>.mat-expansion-panel-content{visibility:visible}.mat-expansion-panel-body{padding:0 24px 16px}.mat-expansion-panel-spacing{margin:16px 0}.mat-accordion>.mat-expansion-panel-spacing:first-child,.mat-accordion>*:first-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-top:0}.mat-accordion>.mat-expansion-panel-spacing:last-child,.mat-accordion>*:last-child:not(.mat-expansion-panel) .mat-expansion-panel-spacing{margin-bottom:0}.mat-action-row{border-top-style:solid;border-top-width:1px;display:flex;flex-direction:row;justify-content:flex-end;padding:16px 8px 16px 24px;border-top-color:var(--mat-expansion-actions-divider-color, var(--mat-sys-outline))}.mat-action-row .mat-button-base,.mat-action-row .mat-mdc-button-base{margin-left:8px}[dir=rtl] .mat-action-row .mat-button-base,[dir=rtl] .mat-action-row .mat-mdc-button-base{margin-left:0;margin-right:8px} +`],encapsulation:2,changeDetection:0})}return n})();var Ca=(()=>{class n{panel=k(wa,{host:!0});_element=k(Pi);_focusMonitor=k(uo);_changeDetectorRef=k(Se);_parentChangeSubscription=ii.EMPTY;constructor(){k(ls).load(us);let e=this.panel,i=k(Cc,{optional:!0}),r=k(new oo("tabindex"),{optional:!0}),o=e.accordion?e.accordion._stateChanges.pipe(Qe(a=>!!(a.hideToggle||a.togglePosition))):We;this.tabIndex=parseInt(r||"")||0,this._parentChangeSubscription=Aa(e.opened,e.closed,o,e._inputChanges.pipe(Qe(a=>!!(a.hideToggle||a.disabled||a.togglePosition)))).subscribe(()=>this._changeDetectorRef.markForCheck()),e.closed.pipe(Qe(()=>e._containsFocus())).subscribe(()=>this._focusMonitor.focusVia(this._element,"program")),i&&(this.expandedHeight=i.expandedHeight,this.collapsedHeight=i.collapsedHeight)}expandedHeight;collapsedHeight;tabIndex=0;get disabled(){return this.panel.disabled}_toggle(){this.disabled||this.panel.toggle()}_isExpanded(){return this.panel.expanded}_getExpandedState(){return this.panel._getExpandedState()}_getPanelId(){return this.panel.id}_getTogglePosition(){return this.panel.togglePosition}_showToggle(){return!this.panel.hideToggle&&!this.panel.disabled}_getHeaderHeight(){let e=this._isExpanded();return e&&this.expandedHeight?this.expandedHeight:!e&&this.collapsedHeight?this.collapsedHeight:null}_keydown(e){switch(e.keyCode){case 32:case 13:ds(e)||(e.preventDefault(),this._toggle());break;default:this.panel.accordion&&this.panel.accordion._handleHeaderKeydown(e);return}}focus(e,i){e?this._focusMonitor.focusVia(this._element,e,i):this._element.nativeElement.focus(i)}ngAfterViewInit(){this._focusMonitor.monitor(this._element).subscribe(e=>{e&&this.panel.accordion&&this.panel.accordion._handleHeaderFocus(this)})}ngOnDestroy(){this._parentChangeSubscription.unsubscribe(),this._focusMonitor.stopMonitoring(this._element)}static \u0275fac=function(i){return new(i||n)};static \u0275cmp=q({type:n,selectors:[["mat-expansion-panel-header"]],hostAttrs:["role","button",1,"mat-expansion-panel-header","mat-focus-indicator"],hostVars:13,hostBindings:function(i,r){i&1&&_("click",function(){return r._toggle()})("keydown",function(a){return r._keydown(a)}),i&2&&(he("id",r.panel._headerId)("tabindex",r.disabled?-1:r.tabIndex)("aria-controls",r._getPanelId())("aria-expanded",r._isExpanded())("aria-disabled",r.panel.disabled),fn("height",r._getHeaderHeight()),I("mat-expanded",r._isExpanded())("mat-expansion-toggle-indicator-after",r._getTogglePosition()==="after")("mat-expansion-toggle-indicator-before",r._getTogglePosition()==="before"))},inputs:{expandedHeight:"expandedHeight",collapsedHeight:"collapsedHeight",tabIndex:[2,"tabIndex","tabIndex",e=>e==null?0:mo(e)]},ngContentSelectors:Np,decls:5,vars:3,consts:[[1,"mat-content"],[1,"mat-expansion-indicator"],["xmlns","http://www.w3.org/2000/svg","viewBox","0 -960 960 960","aria-hidden","true","focusable","false"],["d","M480-345 240-585l56-56 184 184 184-184 56 56-240 240Z"]],template:function(i,r){i&1&&(xt(Fp),s(0,"span",0),ze(1),ze(2,1),ze(3,2),l(),w(4,jp,3,0,"span",1)),i&2&&(I("mat-content-hide-toggle",!r._showToggle()),d(4),W(r._showToggle()?4:-1))},styles:[`.mat-expansion-panel-header{display:flex;flex-direction:row;align-items:center;padding:0 24px;border-radius:inherit;height:var(--mat-expansion-header-collapsed-state-height, 48px);font-family:var(--mat-expansion-header-text-font, var(--mat-sys-title-medium-font));font-size:var(--mat-expansion-header-text-size, var(--mat-sys-title-medium-size));font-weight:var(--mat-expansion-header-text-weight, var(--mat-sys-title-medium-weight));line-height:var(--mat-expansion-header-text-line-height, var(--mat-sys-title-medium-line-height));letter-spacing:var(--mat-expansion-header-text-tracking, var(--mat-sys-title-medium-tracking))}.mat-expansion-panel-animations-enabled .mat-expansion-panel-header{transition:height 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel-header::before{border-radius:inherit}.mat-expansion-panel-header.mat-expanded{height:var(--mat-expansion-header-expanded-state-height, 64px)}.mat-expansion-panel-header[aria-disabled=true]{color:var(--mat-expansion-header-disabled-state-text-color, color-mix(in srgb, var(--mat-sys-on-surface) 38%, transparent))}.mat-expansion-panel-header:not([aria-disabled=true]){cursor:pointer}.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-header-hover-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-hover-state-layer-opacity) * 100%), transparent))}@media(hover: none){.mat-expansion-panel:not(.mat-expanded) .mat-expansion-panel-header:not([aria-disabled=true]):hover{background:var(--mat-expansion-container-background-color, var(--mat-sys-surface))}}.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-keyboard-focused,.mat-expansion-panel .mat-expansion-panel-header:not([aria-disabled=true]).cdk-program-focused{background:var(--mat-expansion-header-focus-state-layer-color, color-mix(in srgb, var(--mat-sys-on-surface) calc(var(--mat-sys-focus-state-layer-opacity) * 100%), transparent))}.mat-expansion-panel-header._mat-animation-noopable{transition:none}.mat-expansion-panel-header:focus,.mat-expansion-panel-header:hover{outline:none}.mat-expansion-panel-header.mat-expanded:focus,.mat-expansion-panel-header.mat-expanded:hover{background:inherit}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before{flex-direction:row-reverse}.mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 16px 0 0}[dir=rtl] .mat-expansion-panel-header.mat-expansion-toggle-indicator-before .mat-expansion-indicator{margin:0 0 0 16px}.mat-content{display:flex;flex:1;flex-direction:row;overflow:hidden}.mat-content.mat-content-hide-toggle{margin-right:8px}[dir=rtl] .mat-content.mat-content-hide-toggle{margin-right:0;margin-left:8px}.mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-left:24px;margin-right:0}[dir=rtl] .mat-expansion-toggle-indicator-before .mat-content.mat-content-hide-toggle{margin-right:24px;margin-left:0}.mat-expansion-panel-header-title{color:var(--mat-expansion-header-text-color, var(--mat-sys-on-surface))}.mat-expansion-panel-header-title,.mat-expansion-panel-header-description{display:flex;flex-grow:1;flex-basis:0;margin-right:16px;align-items:center}[dir=rtl] .mat-expansion-panel-header-title,[dir=rtl] .mat-expansion-panel-header-description{margin-right:0;margin-left:16px}.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-title,.mat-expansion-panel-header[aria-disabled=true] .mat-expansion-panel-header-description{color:inherit}.mat-expansion-panel-header-description{flex-grow:2;color:var(--mat-expansion-header-description-color, var(--mat-sys-on-surface-variant))}.mat-expansion-panel-animations-enabled .mat-expansion-indicator{transition:transform 225ms cubic-bezier(0.4, 0, 0.2, 1)}.mat-expansion-panel-header.mat-expanded .mat-expansion-indicator{transform:rotate(180deg)}.mat-expansion-indicator::after{border-style:solid;border-width:0 2px 2px 0;content:"";display:inline-block;padding:3px;transform:rotate(45deg);vertical-align:middle;color:var(--mat-expansion-header-indicator-color, var(--mat-sys-on-surface-variant));display:var(--mat-expansion-legacy-header-indicator-display, none)}.mat-expansion-indicator svg{width:24px;height:24px;margin:0 -8px;vertical-align:middle;fill:var(--mat-expansion-header-indicator-color, var(--mat-sys-on-surface-variant));display:var(--mat-expansion-header-indicator-display, inline-block)}@media(forced-colors: active){.mat-expansion-panel-content{border-top:1px solid;border-top-left-radius:0;border-top-right-radius:0}} +`],encapsulation:2,changeDetection:0})}return n})(),Sc=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275dir=pe({type:n,selectors:[["mat-panel-description"]],hostAttrs:[1,"mat-expansion-panel-header-description"]})}return n})(),kc=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275dir=pe({type:n,selectors:[["mat-panel-title"]],hostAttrs:[1,"mat-expansion-panel-header-title"]})}return n})(),Ec=(()=>{class n extends Fr{_keyManager;_ownHeaders=new Ga;_headers;hideToggle=!1;displayMode="default";togglePosition="after";ngAfterContentInit(){this._headers.changes.pipe(Ri(this._headers)).subscribe(e=>{this._ownHeaders.reset(e.filter(i=>i.panel.accordion===this)),this._ownHeaders.notifyOnChanges()}),this._keyManager=new ms(this._ownHeaders).withWrap().withHomeAndEnd()}_handleHeaderKeydown(e){this._keyManager.onKeydown(e)}_handleHeaderFocus(e){this._keyManager.updateActiveItem(e)}ngOnDestroy(){super.ngOnDestroy(),this._keyManager?.destroy(),this._ownHeaders.destroy()}static \u0275fac=(()=>{let e;return function(r){return(e||(e=zt(n)))(r||n)}})();static \u0275dir=pe({type:n,selectors:[["mat-accordion"]],contentQueries:function(i,r,o){if(i&1&&ri(o,Ca,5),i&2){let a;Be(a=Ge())&&(r._headers=a)}},hostAttrs:[1,"mat-accordion"],hostVars:2,hostBindings:function(i,r){i&2&&I("mat-accordion-multi",r.multi)},inputs:{hideToggle:[2,"hideToggle","hideToggle",ht],displayMode:"displayMode",togglePosition:"togglePosition"},exportAs:["matAccordion"],features:[De([{provide:xa,useExisting:n}]),ni]})}return n})(),Tc=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=X({type:n});static \u0275inj=Y({imports:[ee,jr,gs]})}return n})();var Mc=(()=>{class n{static \u0275fac=function(i){return new(i||n)};static \u0275mod=X({type:n});static \u0275inj=Y({imports:[En,ee,Tn,Ir,An]})}return n})();var Vr=class{items=[];push(t){this.items.push(t)}pop(){return this.items.pop()}peek(){return this.items[this.items.length-1]}isEmpty(){return this.items.length===0}size(){return this.items.length}clear(){this.items=[]}toString(){return this.items.toString()}};var zr=class n{constructor(t,e){this.dialogRef=t;this.data=e}onCancel(){this.dialogRef.close(!1)}onConfirm(){this.dialogRef.close(!0)}static \u0275fac=function(e){return new(e||n)(K(Pn),K(In))};static \u0275cmp=q({type:n,selectors:[["app-confirm-delete-dialog"]],decls:28,vars:2,consts:[[1,"p-6","max-w-md"],[1,"flex","items-start","gap-4","mb-6"],[1,"flex-shrink-0","w-10","h-10","rounded-full","bg-red-100","flex","items-center","justify-center"],["fill","none","stroke","currentColor","viewBox","0 0 24 24",1,"w-5","h-5","text-red-600"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M12 9v2m0 4h.01M10.29 3.86L1.82 18a2 2 0 001.71 3h16.94a2 2 0 001.71-3L13.71 3.86a2 2 0 00-3.42 0z"],[1,"text-lg","font-semibold","text-gray-900"],[1,"mt-1","text-sm","text-gray-500"],[1,"mb-6","rounded-lg","border","border-red-200","bg-red-50","p-4","space-y-2"],[1,"text-xs","font-semibold","text-gray-500","uppercase","tracking-wider"],[1,"mt-0.5","text-sm","font-medium","text-gray-900"],[1,"mt-0.5","text-xs","font-mono","text-gray-600","break-all"],[1,"flex","gap-3","justify-end"],[1,"cursor-pointer","px-4","py-2","text-sm","font-medium","text-gray-700","border","border-gray-300","rounded-lg","hover:bg-gray-50","transition-colors",3,"click"],[1,"cursor-pointer","px-4","py-2","text-sm","font-medium","text-white","bg-red-600","rounded-lg","hover:bg-red-700","transition-colors","flex","items-center","gap-2",3,"click"],["fill","none","stroke","currentColor","viewBox","0 0 24 24",1,"w-4","h-4"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"]],template:function(e,i){e&1&&(s(0,"div",0)(1,"div",1)(2,"div",2),b(),s(3,"svg",3),g(4,"path",4),l()(),S(),s(5,"div")(6,"h2",5),u(7,"Delete Entity"),l(),s(8,"p",6),u(9,"This action is irreversible."),l()()(),s(10,"div",7)(11,"div")(12,"span",8),u(13,"Label"),l(),s(14,"p",9),u(15),l()(),s(16,"div")(17,"span",8),u(18,"IRI"),l(),s(19,"p",10),u(20),l()()(),s(21,"div",11)(22,"button",12),_("click",function(){return i.onCancel()}),u(23," Annuler "),l(),s(24,"button",13),_("click",function(){return i.onConfirm()}),b(),s(25,"svg",14),g(26,"path",15),l(),u(27," Delete "),l()()()),e&2&&(d(15),j(i.data.entityLabel),d(5),j(i.data.entityIri))},dependencies:[be,Ue],encapsulation:2})};var Br=class n{constructor(t,e){this.dialogRef=t;this.data=e}onCancel(){this.dialogRef.close(!1)}onConfirm(){this.dialogRef.close(!0)}static \u0275fac=function(e){return new(e||n)(K(Pn),K(In))};static \u0275cmp=q({type:n,selectors:[["app-confirm-delete-property"]],decls:33,vars:3,consts:[[1,"p-6","max-w-md"],[1,"flex","items-start","gap-4","mb-6"],[1,"flex-shrink-0","w-10","h-10","rounded-full","bg-red-100","flex","items-center","justify-center"],["fill","none","stroke","currentColor","viewBox","0 0 24 24",1,"w-5","h-5","text-red-600"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M12 9v2m0 4h.01M10.29 3.86L1.82 18a2 2 0 001.71 3h16.94a2 2 0 001.71-3L13.71 3.86a2 2 0 00-3.42 0z"],[1,"text-lg","font-semibold","text-gray-900"],[1,"mt-1","text-sm","text-gray-500"],[1,"mb-6","rounded-lg","border","border-red-200","bg-red-50","p-4","space-y-2"],[1,"text-xs","font-semibold","text-gray-500","uppercase","tracking-wider"],[1,"mt-0.5","text-xs","font-mono","text-gray-600","break-all"],[1,"mt-0.5","text-sm","font-medium","text-gray-900"],[1,"flex","gap-3","justify-end"],[1,"cursor-pointer","px-4","py-2","text-sm","font-medium","text-gray-700","border","border-gray-300","rounded-lg","hover:bg-gray-50","transition-colors",3,"click"],[1,"cursor-pointer","px-4","py-2","text-sm","font-medium","text-white","bg-red-600","rounded-lg","hover:bg-red-700","transition-colors","flex","items-center","gap-2",3,"click"],["fill","none","stroke","currentColor","viewBox","0 0 24 24",1,"w-4","h-4"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M19 7l-.867 12.142A2 2 0 0116.138 21H7.862a2 2 0 01-1.995-1.858L5 7m5 4v6m4-6v6m1-10V4a1 1 0 00-1-1h-4a1 1 0 00-1 1v3M4 7h16"]],template:function(e,i){e&1&&(s(0,"div",0)(1,"div",1)(2,"div",2),b(),s(3,"svg",3),g(4,"path",4),l()(),S(),s(5,"div")(6,"h2",5),u(7,"Delete Property"),l(),s(8,"p",6),u(9,"This action is irreversible."),l()()(),s(10,"div",7)(11,"div")(12,"span",8),u(13,"Entity IRI"),l(),s(14,"p",9),u(15),l()(),s(16,"div")(17,"span",8),u(18,"Property"),l(),s(19,"p",10),u(20),l()(),s(21,"div")(22,"span",8),u(23,"Value"),l(),s(24,"p",10),u(25),l()()(),s(26,"div",11)(27,"button",12),_("click",function(){return i.onCancel()}),u(28," Annuler "),l(),s(29,"button",13),_("click",function(){return i.onConfirm()}),b(),s(30,"svg",14),g(31,"path",15),l(),u(32," Delete "),l()()()),e&2&&(d(15),j(i.data.entityIri),d(5),j(i.data.propertyLabel),d(5),j(i.data.value))},dependencies:[be,Ue],encapsulation:2})};function Bp(n,t){if(n&1){let e=T();s(0,"button",13),_("click",function(){let r=y(e).$implicit,o=h(2);return v(o.detailTab=r.key)}),u(1),l()}if(n&2){let e=t.$implicit,i=h(2);I("bg-white",i.detailTab===e.key)("text-gray-900",i.detailTab===e.key)("shadow-sm",i.detailTab===e.key),d(),j(e.key)}}function Gp(n,t){if(n&1&&(s(0,"div",11),w(1,Bp,2,7,"button",12),Re(2,"keyvalue"),l()),n&2){let e=t.$implicit;d(),f("ngForOf",yn(2,1,e))}}function Hp(n,t){if(n&1){let e=T();s(0,"button",39),_("click",function(){y(e);let r=h(2).$implicit,o=h(2);return v(o.openFileViewer(r,r.value))}),b(),s(1,"svg",20),g(2,"path",40)(3,"path",41),l()()}}function Up(n,t){if(n&1&&(s(0,"span",42),u(1),l()),n&2){let e=h(2).$implicit;d(),j(e.name)}}function $p(n,t){if(n&1){let e=T();s(0,"input",43),de("ngModelChange",function(r){y(e);let o=h(2).$implicit;return ce(o.value,r)||(o.value=r),v(r)}),l()}if(n&2){let e=h(2).$implicit,i=h(2);I("cursor-default",!(i.selectedEntity!=null&&i.selectedEntity.editable)),le("ngModel",e.value),f("readonly",!(i.selectedEntity!=null&&i.selectedEntity.editable))}}function qp(n,t){if(n&1){let e=T();s(0,"a",44),_("click",function(r){y(e);let o=h(2).$implicit;return h(2).changeSelectedEntity(o.value),v(r.preventDefault())}),u(1),l()}if(n&2){let e=h(2).$implicit;d(),D(" ",e.value," ")}}function Wp(n,t){if(n&1){let e=T();s(0,"input",45),de("ngModelChange",function(r){y(e);let o=h(2).$implicit;return ce(o.value,r)||(o.value=r),v(r)}),_("keydown.enter",function(){y(e);let r=h(2).$implicit;return v(r.editing=!1)})("keydown.escape",function(){y(e);let r=h(2).$implicit;return v(r.editing=!1)}),l()}if(n&2){let e=h(2).$implicit;le("ngModel",e.value)}}function Qp(n,t){n&1&&(b(),s(0,"svg",49),g(1,"path",50),l())}function Kp(n,t){n&1&&(b(),s(0,"svg",51),g(1,"path",52),l())}function Yp(n,t){if(n&1){let e=T();s(0,"button",46),_("click",function(){y(e);let r=h(2).$implicit;return v(r.editing=!r.editing)}),w(1,Qp,2,0,"svg",47)(2,Kp,2,0,"svg",48),l()}if(n&2){let e=h(2).$implicit;he("aria-label",e.editing?"Confirmer":"Modifier"),d(),f("ngIf",!e.editing),d(),f("ngIf",e.editing)}}function Xp(n,t){if(n&1){let e=T();s(0,"button",53),_("click",function(){y(e);let r=h(2).$implicit,o=h(2);return v(o.removeProperty(r))}),b(),s(1,"svg",20),g(2,"path",8),l()()}}function Zp(n,t){if(n&1&&(s(0,"div")(1,"label",31),u(2),w(3,Hp,4,0,"button",32),l(),w(4,Up,2,1,"span",33),s(5,"div",17),w(6,$p,1,4,"input",34)(7,qp,2,1,"a",35)(8,Wp,1,1,"input",36)(9,Yp,3,3,"button",37)(10,Xp,3,0,"button",38),l()()),n&2){let e=h().$implicit,i=h(2);d(2),D(" ",e.key," "),d(),f("ngIf",e.key==="identifier"&&i.isFilePath(e.value)),d(),f("ngIf",e.kind==="iri"),d(2),f("ngIf",e.kind==="literal"),d(),f("ngIf",e.kind==="iri"&&!e.editing),d(),f("ngIf",e.kind==="iri"&&e.editing),d(),f("ngIf",e.kind==="iri"&&(i.selectedEntity==null?null:i.selectedEntity.editable)),d(),f("ngIf",i.selectedEntity==null?null:i.selectedEntity.editable)}}function Jp(n,t){if(n&1&&(Gt(0,15),w(1,Zp,11,8,"div",30),Ht()),n&2){let e=t.$implicit,i=h(2);d(),f("ngIf",e.ontology===i.detailTab)}}function eh(n,t){if(n&1){let e=T();s(0,"button",54),_("click",function(){y(e);let r=h(2);return v(r.addAssociation())}),b(),s(1,"svg",20),g(2,"path",55),l(),u(3," Add property "),l()}}function th(n,t){if(n&1&&(s(0,"option",66),u(1),s(2,"span",67),u(3),l()()),n&2){let e=t.$implicit;f("value",e.predicate),d(),D(" ",e.key," \u2014 "),d(2),j(e.predicate)}}function ih(n,t){if(n&1){let e=T();s(0,"div")(1,"label",57),u(2,"Predicate"),l(),s(3,"select",63),de("ngModelChange",function(r){y(e);let o=h(3);return ce(o.newAssociation.predicate,r)||(o.newAssociation.predicate=r),v(r)}),s(4,"option",64),u(5,"Select a predicate..."),l(),w(6,th,4,3,"option",65),l()()}if(n&2){let e=h(3);d(3),le("ngModel",e.newAssociation.predicate),d(3),f("ngForOf",e.entityPropertiesDict)}}function nh(n,t){if(n&1&&(s(0,"option",66),u(1),s(2,"span",72),u(3),l()()),n&2){let e=t.$implicit;f("value",e.url),d(),D(" ",e.label," \u2014 "),d(2),j(e.url)}}function rh(n,t){if(n&1&&(s(0,"span",73),u(1),l()),n&2){let e=h(4);d(),D(" ",e.newAssociation.ontologyUrl," ")}}function oh(n,t){if(n&1&&(s(0,"p",74),u(1),l()),n&2){let e=h(4);d(),_n(" \u2192 ",e.newAssociation.ontologyUrl,"",e.newAssociation.customPredicate," ")}}function ah(n,t){if(n&1){let e=T();Gt(0),s(1,"div")(2,"label",57),u(3,"Ontology namespace"),l(),s(4,"select",63),de("ngModelChange",function(r){y(e);let o=h(3);return ce(o.newAssociation.ontologyUrl,r)||(o.newAssociation.ontologyUrl=r),v(r)}),s(5,"option",64),u(6,"Select an ontology..."),l(),w(7,nh,4,3,"option",65),l()(),s(8,"div")(9,"label",57),u(10,"Predicate name"),l(),s(11,"div",68),w(12,rh,2,1,"span",69),s(13,"input",70),de("ngModelChange",function(r){y(e);let o=h(3);return ce(o.newAssociation.customPredicate,r)||(o.newAssociation.customPredicate=r),v(r)}),l()(),w(14,oh,2,2,"p",71),l(),Ht()}if(n&2){let e=h(3);d(4),le("ngModel",e.newAssociation.ontologyUrl),d(3),f("ngForOf",e.ontologyEntries),d(5),f("ngIf",e.newAssociation.ontologyUrl),d(),le("ngModel",e.newAssociation.customPredicate),d(),f("ngIf",e.newAssociation.ontologyUrl&&e.newAssociation.customPredicate)}}function sh(n,t){if(n&1){let e=T();s(0,"div")(1,"label",57),u(2,"Type"),l(),s(3,"div",58)(4,"button",75),_("click",function(){y(e);let r=h(3);return v(r.newAssociation.kind="literal")}),u(5," Literal "),l(),s(6,"button",75),_("click",function(){y(e);let r=h(3);return v(r.newAssociation.kind="iri")}),u(7," IRI "),l()()()}if(n&2){let e=h(3);d(4),I("bg-blue-600",e.newAssociation.kind==="literal")("text-white",e.newAssociation.kind==="literal")("bg-white",e.newAssociation.kind!=="literal")("text-gray-600",e.newAssociation.kind!=="literal"),d(2),I("bg-blue-600",e.newAssociation.kind==="iri")("text-white",e.newAssociation.kind==="iri")("bg-white",e.newAssociation.kind!=="iri")("text-gray-600",e.newAssociation.kind!=="iri")}}function lh(n,t){if(n&1){let e=T();s(0,"div")(1,"label",57),u(2,"Value"),l(),s(3,"input",76),de("ngModelChange",function(r){y(e);let o=h(3);return ce(o.newAssociation.value,r)||(o.newAssociation.value=r),v(r)}),l()()}if(n&2){let e=h(3);d(3),le("ngModel",e.newAssociation.value),f("placeholder",e.newAssociation.kind==="iri"?"https://...":"Enter a value")}}function ch(n,t){if(n&1){let e=T();s(0,"div",56)(1,"div")(2,"label",57),u(3,"Predicate source"),l(),s(4,"div",58)(5,"button",59),_("click",function(){y(e);let r=h(2);return v(r.newAssociation.mode="existing")}),u(6," Existing predicate "),l(),s(7,"button",59),_("click",function(){y(e);let r=h(2);return v(r.newAssociation.mode="new")}),u(8," New predicate "),l()()(),w(9,ih,7,2,"div",30)(10,ah,15,5,"ng-container",30)(11,sh,8,16,"div",30)(12,lh,4,2,"div",30),s(13,"div",60)(14,"button",61),_("click",function(){y(e);let r=h(2);return v(r.confirmAddAssociation())}),u(15," Confirm "),l(),s(16,"button",62),_("click",function(){y(e);let r=h(2);return v(r.cancelAddAssociation())}),u(17," Cancel "),l()()()}if(n&2){let e=h(2);d(5),I("bg-blue-600",e.newAssociation.mode==="existing")("text-white",e.newAssociation.mode==="existing")("bg-white",e.newAssociation.mode!=="existing")("text-gray-600",e.newAssociation.mode!=="existing"),d(2),I("bg-blue-600",e.newAssociation.mode==="new")("text-white",e.newAssociation.mode==="new")("bg-white",e.newAssociation.mode!=="new")("text-gray-600",e.newAssociation.mode!=="new"),d(2),f("ngIf",e.newAssociation.mode==="existing"),d(),f("ngIf",e.newAssociation.mode==="new"),d(),f("ngIf",e.newAssociation.mode),d(),f("ngIf",e.newAssociation.mode),d(2),f("disabled",!e.newAssociation.mode||!e.newAssociation.value||e.newAssociation.mode==="existing"&&!e.newAssociation.predicate||e.newAssociation.mode==="new"&&(!e.newAssociation.ontologyUrl||!e.newAssociation.customPredicate))}}function dh(n,t){if(n&1){let e=T();s(0,"div",14)(1,"div",15)(2,"label",16),u(3,"ID"),l(),s(4,"div",17)(5,"span",18),u(6),l(),s(7,"button",19),_("click",function(){y(e);let r=h();return v(r.copyToClipboard(r.selectedEntity==null?null:r.selectedEntity.entityKey))}),b(),s(8,"svg",20),g(9,"path",21),l()()()(),S(),s(10,"div",15)(11,"label",16),u(12,"IRI"),l(),s(13,"div",17)(14,"span",18),u(15),l(),s(16,"button",19),_("click",function(){y(e);let r=h();return v(r.copyToClipboard(r.selectedEntity==null?null:r.selectedEntity.iri))}),b(),s(17,"svg",20),g(18,"path",21),l()()()(),w(19,Jp,2,1,"ng-container",22),S(),s(20,"div",23)(21,"div",24),w(22,eh,4,0,"button",25),l(),w(23,ch,18,21,"div",26),l(),s(24,"div",27)(25,"button",28),_("click",function(){y(e);let r=h();return v(r.editEntity())}),u(26," Save "),l(),s(27,"button",29),_("click",function(){y(e);let r=h();return v(r.deleteEntity())}),u(28," Delete "),l()()()}if(n&2){let e=h();d(6),j(e.selectedEntity==null?null:e.selectedEntity.entityKey),d(9),j(e.selectedEntity==null?null:e.selectedEntity.iri),d(4),f("ngForOf",e.entityPropertiesDict),d(3),f("ngIf",!e.newAssociation),d(),f("ngIf",e.newAssociation)}}var Gr=class n{selectedEntityId="";ontologyLabels=[];close=new se;stack=new Vr;selectedEntity=null;entityPropertiesDict=[];detailTab="rico";myNewEntites=[];newAssociation=null;gestionRessourceService=k(ui);cdr=k(Se);dialog=k(Mt);snackBar=k(Tt);copyToClipboard(t){t&&navigator.clipboard&&navigator.clipboard.writeText(t).then(()=>{console.log("Copied to clipboard:",t)}).catch(e=>{console.error("Failed to copy:",e)})}ngOnChanges(t){t.selectedEntityId&&this.selectedEntityId&&this.gestionRessourceService.getEntityDetails(this.selectedEntityId).subscribe({next:e=>{console.log("DATA:",e),this.selectedEntity=e,this.getEntityPropertiesDict(),this.cdr.markForCheck()},error:e=>console.error("ERROR:",e)})}getEntityPropertiesDict(){let t=this.selectedEntity.properties||[],e=[];if(t.length>0)for(let i of t)if(i.predicate.includes("#")){let r=i.predicate.substring(0,i.predicate.lastIndexOf("#")+1),o=this.gestionRessourceService.getTypeNameByUrl(r);console.log("ONTOLOGYy NAME : ",o);let a=i.predicate.substring(i.predicate.lastIndexOf("#")+1,i.predicate.length);e.push({name:i.name,key:a,value:i.value,kind:i.kind,predicate:i.predicate,ontology:o})}else{let r=i.predicate.substring(i.predicate.lastIndexOf("/")+1,i.predicate.length);e.push({name:i.name,key:r,value:i.value,kind:i.kind,predicate:i.predicate})}console.log("I'm here ",e),this.entityPropertiesDict=e}changeSelectedEntity(t){t&&(this.stack.push(this.selectedEntity),this.gestionRessourceService.getEntityDetails(t).subscribe({next:e=>{console.log("DATA:",e),this.selectedEntity=e,this.getEntityPropertiesDict(),this.cdr.markForCheck()},error:e=>console.error("ERROR:",e)}))}ngOnInit(){this.detailTab="rico",console.log("All ontology labels : ",this.ontologyLabels)}removeAssociation(t){this.selectedEntity&&this.selectedEntity.associatedWith&&(this.selectedEntity.associatedWith=this.selectedEntity.associatedWith.filter(e=>e!==t))}backToPreviousEntity(){if(!this.stack.isEmpty()){let t=this.stack.pop();this.selectEntity(t)}}selectEntity(t){this.selectedEntity=t,this.getEntityPropertiesDict(),this.detailTab="rico",this.cdr.markForCheck()}closeDetail(){console.log("CLOSING Details view "),this.close.emit()}deleteEntity(){if(!this.selectedEntity)return;this.dialog.open(zr,{data:{entityLabel:this.selectedEntity.titre,entityIri:this.selectedEntity.iri},panelClass:"rounded-xl"}).afterClosed().subscribe(e=>{e&&this.gestionRessourceService.deleteEntity(this.selectedEntity.iri).subscribe({next:()=>{this.snackBar.open("Entity was successfully deleted.","Close",{duration:5e3,horizontalPosition:"center",verticalPosition:"top",panelClass:["snackbar-success"]}),console.log("Entity deleted:",this.selectedEntity.iri),this.closeDetail()},error:i=>{console.error("Delete failed:",i),this.snackBar.open(`Failed to delete "${this.selectedEntity.iri}".`,"Close",{duration:5e3,horizontalPosition:"right",verticalPosition:"bottom",panelClass:["snackbar-error"]})}})})}editEntity(){let t={properties:this.entityPropertiesDict.map(({value:e,predicate:i,kind:r})=>({value:e,predicate:i,kind:r}))};this.gestionRessourceService.editEntity(this.selectedEntity.iri,t).subscribe({next:()=>{this.snackBar.open(`"${this.selectedEntity.iri}" was successfully updated.`,"Close",{duration:5e3,horizontalPosition:"center",verticalPosition:"top",panelClass:["snackbar-success"]}),console.log("Entity updated:",this.selectedEntity.iri)},error:e=>{console.error("Edit failed:",e),this.snackBar.open(`Failed to update "${this.selectedEntity.iri}".`,"Close",{duration:5e3,horizontalPosition:"center",verticalPosition:"top",panelClass:["snackbar-error"]})}}),console.log("Edited properties : ",t)}removeProperty(t){this.selectedEntity&&this.selectedEntity.properties&&this.dialog.open(Br,{data:{propertyLabel:t.key,entityIri:this.selectedEntity.iri,value:t.value},panelClass:"rounded-xl"}).afterClosed().subscribe(i=>{if(i){let r=this.entityPropertiesDict.find(o=>o.predicate===t.predicate);r&&(r.value=""),console.log("query payload after removing property : ",this.entityPropertiesDict),this.editEntity(),this.entityPropertiesDict=this.entityPropertiesDict.filter(o=>o.predicate!==t.predicate&&o.value!==t.value),this.cdr.markForCheck()}})}get ontologyEntries(){return Object.entries(bs).map(([t,e])=>({url:t,label:e}))}addAssociation(){this.newAssociation={mode:null,predicate:"",ontologyUrl:"",customPredicate:"",kind:"literal",value:""}}confirmAddAssociation(){if(!this.newAssociation||!this.newAssociation.value)return;let t,e,i;if(this.newAssociation.mode==="existing"){if(!this.newAssociation.predicate)return;t=this.newAssociation.predicate,t.includes("#")?(i=t.substring(0,t.lastIndexOf("#")+1),e=t.substring(t.lastIndexOf("#")+1)):(i=t.substring(0,t.lastIndexOf("/")+1),e=t.substring(t.lastIndexOf("/")+1))}else{if(!this.newAssociation.ontologyUrl||!this.newAssociation.customPredicate)return;i=this.newAssociation.ontologyUrl,t=i+this.newAssociation.customPredicate,e=this.newAssociation.customPredicate}let r=this.gestionRessourceService.getTypeNameByUrl(i);this.entityPropertiesDict.push({key:e,value:this.newAssociation.value,kind:this.newAssociation.kind,predicate:t,ontology:r}),this.newAssociation=null,this.cdr.markForCheck()}cancelAddAssociation(){this.newAssociation=null}isFilePath(t){if(!t)return!1;let e=/^[a-zA-Z]:\\.*$/,i=/^\\\\[^\\]+\\[^\\]+/,r=/^\/(Users|home|tmp|var|etc|opt)/,o=/^file:\/\/\/.+/;return e.test(t)||i.test(t)||r.test(t)||o.test(t)}openFileViewer(t,e){if(!e)return;console.log("Opening file viewer for property: ",t),this.dialog.open(On,{width:"1000px",data:e}).afterClosed().subscribe(r=>{r?(console.log("Received from File Viewer dialog:",r),t.value=r,this.cdr.markForCheck()):console.log("File ViewerDialog closed without selection")})}static \u0275fac=function(e){return new(e||n)};static \u0275cmp=q({type:n,selectors:[["app-entity-details"]],inputs:{selectedEntityId:"selectedEntityId",ontologyLabels:"ontologyLabels"},outputs:{close:"close"},features:[Ve],decls:12,vars:5,consts:[[1,"sticky","top-0","bg-white","border-b","border-gray-200","px-6","py-4","flex","items-center","justify-between","z-10"],[1,"cursor-pointer","text-gray-700","hover:text-black","w-6","h-6","flex","items-center","justify-center","transition-opacity","duration-200",3,"click"],["xmlns","http://www.w3.org/2000/svg","viewBox","0 0 24 24","fill","none","stroke","currentColor","stroke-width","2","stroke-linecap","round","stroke-linejoin","round",1,"w-6","h-6"],["d","M15 18l-6-6 6-6"],[1,"flex","items-center","gap-3"],[1,"text-lg","font-semibold","text-gray-900"],["aria-label","Fermer",1,"cursor-pointer","p-1.5","hover:bg-gray-100","rounded-lg","transition-colors",3,"click"],["fill","none","stroke","currentColor","viewBox","0 0 24 24",1,"w-5","h-5","text-gray-500"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M6 18L18 6M6 6l12 12"],["class","flex mb-6 bg-gray-100 p-1 rounded-lg",4,"ngFor","ngForOf"],["class","flex flex-col gap-4! p-3!",4,"ngIf"],[1,"flex","mb-6","bg-gray-100","p-1","rounded-lg"],["class","cursor-pointer flex-1 px-3 py-2 text-sm font-medium text-gray-600 hover:bg-gray-50 rounded-md transition-colors",3,"bg-white","text-gray-900","shadow-sm","click",4,"ngFor","ngForOf"],[1,"cursor-pointer","flex-1","px-3","py-2","text-sm","font-medium","text-gray-600","hover:bg-gray-50","rounded-md","transition-colors",3,"click"],[1,"flex","flex-col","gap-4!","p-3!"],[1,"mb-6"],[1,"block","text-sm","font-medium","text-gray-700","mb-2"],[1,"flex","items-center","justify-between","p-3","bg-gray-50","border","border-gray-200","rounded-lg"],[1,"text-sm","text-gray-600","font-mono"],["aria-label","Copier l'ID",1,"text-gray-400","hover:text-gray-600","transition-colors",3,"click"],["fill","none","stroke","currentColor","viewBox","0 0 24 24",1,"w-4","h-4"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z"],["class","mb-6",4,"ngFor","ngForOf"],[1,"mb-6","flex","flex-col","gap-2!"],[1,"flex","items-center","justify-center"],["class","cursor-pointer! mt-2 flex items-center gap-1 text-sm text-blue-600 hover:text-blue-700 font-medium transition-colors",3,"click",4,"ngIf"],["class","mt-3 p-3 border border-blue-200 bg-blue-50 rounded-lg flex flex-col gap-3!",4,"ngIf"],[1,"mt-8","flex","gap-3"],[1,"cursor-pointer!","flex-1","px-4","py-2.5","bg-blue-600","text-white","rounded-lg","hover:bg-blue-700","transition-colors","text-sm","font-medium","shadow-sm",3,"click"],[1,"cursor-pointer!","px-4","py-2.5","border","border-red-300","text-red-700","rounded-lg","hover:bg-red-50","transition-colors","text-sm","font-medium",3,"click"],[4,"ngIf"],[1,"flex","block","text-sm","font-medium","text-gray-700","mb-2"],["class","inline ml-1 text-gray-400 hover:text-gray-600","aria-label","View file",3,"click",4,"ngIf"],["class","text-sm text-gray-900 font-medium",4,"ngIf"],["type","text","class","text-sm text-gray-900 font-medium w-full bg-transparent focus:outline-none",3,"ngModel","readonly","cursor-default","ngModelChange",4,"ngIf"],["rel","noopener noreferrer","class","cursor-pointer! text-sm text-blue-600 hover:text-blue-800 underline font-mono truncate w-full",3,"click",4,"ngIf"],["type","text","class","text-sm text-blue-600 font-mono w-full bg-transparent focus:outline-none border-b border-blue-400","autofocus","",3,"ngModel","ngModelChange","keydown.enter","keydown.escape",4,"ngIf"],["class","ml-2 text-gray-400 hover:text-blue-600 transition-colors",3,"click",4,"ngIf"],["class","cursor-pointer! ml-2 text-red-400 hover:text-red-600 transition-colors flex-shrink-0","aria-label","Supprimer",3,"click",4,"ngIf"],["aria-label","View file",1,"inline","ml-1","text-gray-400","hover:text-gray-600",3,"click"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M15 12a3 3 0 11-6 0 3 3 0 016 0z"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M2.458 12C3.732 7.943 7.523 5 12 5c4.477 0 8.268 2.943 9.542 7-1.274 4.057-5.065 7-9.542 7-4.477 0-8.268-2.943-9.542-7z"],[1,"text-sm","text-gray-900","font-medium"],["type","text",1,"text-sm","text-gray-900","font-medium","w-full","bg-transparent","focus:outline-none",3,"ngModelChange","ngModel","readonly"],["rel","noopener noreferrer",1,"cursor-pointer!","text-sm","text-blue-600","hover:text-blue-800","underline","font-mono","truncate","w-full",3,"click"],["type","text","autofocus","",1,"text-sm","text-blue-600","font-mono","w-full","bg-transparent","focus:outline-none","border-b","border-blue-400",3,"ngModelChange","keydown.enter","keydown.escape","ngModel"],[1,"ml-2","text-gray-400","hover:text-blue-600","transition-colors",3,"click"],["class","cursor-pointer! w-4 h-4","fill","none","stroke","currentColor","viewBox","0 0 24 24",4,"ngIf"],["class","cursor-pointer! w-4 h-4 text-green-600","fill","none","stroke","currentColor","viewBox","0 0 24 24",4,"ngIf"],["fill","none","stroke","currentColor","viewBox","0 0 24 24",1,"cursor-pointer!","w-4","h-4"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M11 5H6a2 2 0 00-2 2v11a2 2 0 002 2h11a2 2 0 002-2v-5m-1.414-9.414a2 2 0 112.828 2.828L11.828 15H9v-2.828l8.586-8.586z"],["fill","none","stroke","currentColor","viewBox","0 0 24 24",1,"cursor-pointer!","w-4","h-4","text-green-600"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M5 13l4 4L19 7"],["aria-label","Supprimer",1,"cursor-pointer!","ml-2","text-red-400","hover:text-red-600","transition-colors","flex-shrink-0",3,"click"],[1,"cursor-pointer!","mt-2","flex","items-center","gap-1","text-sm","text-blue-600","hover:text-blue-700","font-medium","transition-colors",3,"click"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M12 4v16m8-8H4"],[1,"mt-3","p-3","border","border-blue-200","bg-blue-50","rounded-lg","flex","flex-col","gap-3!"],[1,"block","text-xs","font-medium","text-gray-600","mb-1"],[1,"flex","gap-2"],[1,"cursor-pointer!","flex-1","text-sm","py-1.5","rounded-md","border","border-gray-300","transition-colors","font-medium",3,"click"],[1,"flex","gap-2","pt-1"],[1,"cursor-pointer!","flex-1","text-sm","py-1.5","bg-blue-600","text-white","rounded-md","hover:bg-blue-700","disabled:opacity-40","disabled:cursor-not-allowed","transition-colors","font-medium",3,"click","disabled"],[1,"cursor-pointer!","flex-1","text-sm","py-1.5","border","border-gray-300","text-gray-600","rounded-md","hover:bg-gray-100","transition-colors","font-medium",3,"click"],[1,"w-full","text-sm","border","border-gray-300","rounded-md","px-2","py-1.5","bg-white","focus:outline-none","focus:ring-2","focus:ring-blue-400",3,"ngModelChange","ngModel"],["value","","disabled",""],[3,"value",4,"ngFor","ngForOf"],[3,"value"],[1,"text-gray-400","font-mono","text-xs"],[1,"flex","items-center","gap-1","border","border-gray-300","rounded-md","bg-white","px-2","py-1.5","focus-within:ring-2","focus-within:ring-blue-400"],["class","text-xs text-gray-400 font-mono truncate max-w-[120px] shrink-0",4,"ngIf"],["type","text","placeholder","myPredicate",1,"text-sm","text-gray-900","w-full","bg-transparent","focus:outline-none",3,"ngModelChange","ngModel"],["class","mt-1 text-xs text-gray-400 font-mono truncate",4,"ngIf"],[1,"font-mono","text-xs","text-gray-400"],[1,"text-xs","text-gray-400","font-mono","truncate","max-w-[120px]","shrink-0"],[1,"mt-1","text-xs","text-gray-400","font-mono","truncate"],[1,"cursor-pointer!","flex-1","text-sm","py-1","rounded-md","border","border-gray-300","transition-colors","font-medium",3,"click"],["type","text",1,"w-full","text-sm","border","border-gray-300","rounded-md","px-2","py-1.5","bg-white","focus:outline-none","focus:ring-2","focus:ring-blue-400",3,"ngModelChange","ngModel","placeholder"]],template:function(e,i){e&1&&(s(0,"div",0)(1,"button",1),_("click",function(){return i.backToPreviousEntity()}),b(),s(2,"svg",2),g(3,"path",3),l()(),S(),s(4,"div",4)(5,"h2",5),u(6),l()(),s(7,"button",6),_("click",function(){return i.closeDetail()}),b(),s(8,"svg",7),g(9,"path",8),l()()(),w(10,Gp,3,3,"div",9)(11,dh,29,5,"div",10)),e&2&&(d(),I("invisible",i.stack.isEmpty()),d(5),j(i.selectedEntity==null?null:i.selectedEntity.titre),d(4),f("ngForOf",i.ontologyLabels),d(),f("ngIf",i.detailTab))},dependencies:[be,nt,He,es,rt,li,ci,Ct,si,St,kt,Et,Ue,mi],styles:["[_nghost-%COMP%] .snackbar-success .mdc-snackbar__surface{background-color:#16a34a!important;color:#fff!important}[_nghost-%COMP%] .snackbar-error .mdc-snackbar__surface{background-color:#dc2626!important;color:#fff!important}button[_ngcontent-%COMP%]{cursor:pointer}"]})};function mh(n,t){n&1&&(s(0,"span"),u(1,"s"),l())}function uh(n,t){if(n&1){let e=T();s(0,"div",46),b(),s(1,"svg",13),g(2,"path",29),l(),S(),s(3,"span"),u(4),l(),s(5,"button",47),_("click",function(){y(e);let r=h();return v(r.clearTypeFilter())}),b(),s(6,"svg",48),g(7,"path",49),l()()()}if(n&2){let e=h();d(4),D("Type: ",e.selectedType,"")}}function ph(n,t){if(n&1){let e=T();s(0,"div",50),b(),s(1,"svg",13),g(2,"path",20),l(),S(),s(3,"span"),u(4),l(),s(5,"button",51),_("click",function(){y(e);let r=h();return v(r.clearSearch())}),b(),s(6,"svg",48),g(7,"path",49),l()()()}if(n&2){let e=h();d(4),D('Recherche: "',e.searchQuery,'"')}}function hh(n,t){if(n&1){let e=T();s(0,"button",52),_("click",function(){y(e);let r=h();return v(r.clearAllFilters())}),b(),s(1,"svg",13),g(2,"path",49),l(),u(3," Clear all filters "),l()}}function fh(n,t){if(n&1){let e=T();s(0,"button",53),_("click",function(){y(e);let r=h();return v(r.clearSearch())}),b(),s(1,"svg",13),g(2,"path",49),l()()}}function gh(n,t){if(n&1&&(b(),s(0,"svg",54),g(1,"path",55),l()),n&2){let e=h();I("rotate-180",!e.sortAscending)}}function _h(n,t){if(n&1&&(b(),s(0,"svg",54),g(1,"path",55),l()),n&2){let e=h();I("rotate-180",!e.sortAscending)}}function yh(n,t){if(n&1){let e=T();s(0,"tr",56),_("click",function(){let r=y(e).$implicit,o=h();return v(o.selectEntity(r))}),s(1,"td",57)(2,"div",58)(3,"div",59),b(),s(4,"svg",60),g(5,"path",5),l()(),S(),s(6,"div",61)(7,"span",62),u(8),l()()()(),s(9,"td",57)(10,"span",63),u(11),l()(),s(12,"td",57)(13,"span",64),g(14,"span",65),u(15),l()()()}if(n&2){let e=t.$implicit;d(7),f("title",e.label),d(),D(" ",e.label," "),d(2),f("title",e.date),d(),D(" ",e.date," "),d(2),f("ngClass",e.editable?"bg-green-100 text-green-700":"bg-red-100 text-red-700"),d(),f("ngClass",e.editable?"bg-green-500":"bg-red-500"),d(),D(" ",e.editable?"\xC9ditable":"Verrouill\xE9"," ")}}function vh(n,t){if(n&1){let e=T();s(0,"div",66),_("click",function(){let r=y(e).$implicit,o=h();return v(o.selectEntity(r))}),s(1,"div",67)(2,"div",68)(3,"div",69),b(),s(4,"svg",4),g(5,"path",5),l()(),S(),s(6,"div",70)(7,"h3",71),u(8),l(),s(9,"p",72),u(10),l()()(),s(11,"span",73),g(12,"span",74),u(13),l()(),s(14,"div",75)(15,"span",76),u(16),l(),b(),s(17,"svg",77),g(18,"path",78),l()()()}if(n&2){let e=t.$implicit;d(7),f("title",e.label),d(),D(" ",e.label," "),d(),f("title",e.date),d(),D(" ",e.date," "),d(),f("ngClass",e.editable?"bg-green-100 text-green-700":"bg-red-100 text-red-700"),d(),f("ngClass",e.editable?"bg-green-500":"bg-red-500"),d(),D(" ",e.editable?"\xC9ditable":"Verrouill\xE9"," "),d(2),f("title",e.source),d(),D(" ",e.source," ")}}function bh(n,t){if(n&1){let e=T();s(0,"button",85),_("click",function(){y(e);let r=h(2);return v(r.clearAllFilters())}),b(),s(1,"svg",13),g(2,"path",49),l(),u(3," Clear all filters "),l()}}function xh(n,t){if(n&1&&(s(0,"div",79)(1,"div",80),b(),s(2,"svg",81),g(3,"path",5),l()(),S(),s(4,"h3",82),u(5,"No results found"),l(),s(6,"p",83),u(7,"Try adjusting your search criteria or clearing the filters."),l(),w(8,bh,4,0,"button",84),l()),n&2){let e=h();d(8),f("ngIf",e.selectedType||e.searchQuery)}}var Hr=class n{constructor(t){this.dialog=t}allEntities=[];selectedType="";selectedEntity=new se;searchQuery="";typeSearchQuery="";sortColumn=null;sortAscending=!0;openCreateEntityDialog_withType(){if(!this.selectedType)return;let[t,e]=this.selectedType.split(":");this.dialog.open(po,{width:"600px",data:{ontology:t,type:e}})}openCreateEntityDialog_withoutType(){this.dialog.open(po,{width:"600px",data:null})}clearTypeFilter(){this.selectedType=null,this.applyAllFilters()}clearAllFilters(){}trackByEntityId(t,e){return e.id}selectEntity(t){this.selectedEntity.emit(t)}filterByType(t){this.selectedType===t?(this.selectedType=null,this.applyAllFilters()):(this.selectedType=t,this.applyAllFilters())}onTypeSearch(){}onSearch(){this.applyAllFilters()}clearSearch(){this.searchQuery="",this.applyAllFilters()}applyAllFilters(){}sortEntities(t,e){return t.sort((i,r)=>{let o=i[e].toLowerCase(),a=r[e].toLowerCase();return e==="date"&&(o=new Date(i.date).getTime().toString(),a=new Date(r.date).getTime().toString()),this.sortAscending?o>a?1:-1:o1),d(),f("ngIf",i.selectedType&&i.selectedType!=="null:null"),d(),f("ngIf",i.searchQuery),d(),f("ngIf",i.selectedType||i.searchQuery),d(13),f("ngIf",i.searchQuery),d(2),he("aria-label",i.sortAscending?"Trier par ordre d\xE9croissant":"Trier par ordre croissant"),d(),I("rotate-180",!i.sortAscending),d(8),f("disabled",!i.selectedType||i.selectedType==="null:null"),d(4),j(i.selectedType!=="null:null"?"New "+i.selectedType:"New"),d(12),f("ngIf",i.sortColumn==="titre"),d(5),f("ngIf",i.sortColumn==="date"),d(4),f("ngForOf",i.allEntities)("ngForTrackBy",i.trackByEntityId),d(2),f("ngForOf",i.allEntities)("ngForTrackBy",i.trackByEntityId),d(),f("ngIf",i.allEntities.length===0))},dependencies:[be,bn,nt,He,Ue],styles:['@keyframes _ngcontent-%COMP%_fadeIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.animate-fade-in[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_fadeIn .3s ease-out}.table-fixed[_ngcontent-%COMP%]{table-layout:fixed}.truncate[_ngcontent-%COMP%]{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.truncate-gradient[_ngcontent-%COMP%]{position:relative;overflow:hidden}.truncate-gradient[_ngcontent-%COMP%]:after{content:"";position:absolute;top:0;right:0;width:20px;height:100%;background:linear-gradient(to right,transparent,white);pointer-events:none}']})};function Ch(n,t){if(n&1){let e=T();s(0,"button",20),_("click",function(){let r=y(e).$implicit,o=h();return v(o.selectedType=r)}),u(1),l()}if(n&2){let e=t.$implicit,i=h();Ai(i.selectedType===e?"px-4 py-1.5 text-sm font-medium bg-gray-900 text-white dark:bg-white dark:text-gray-900":"px-4 py-1.5 text-sm text-gray-600 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 transition-colors"),d(),D(" ",e," ")}}function Sh(n,t){if(n&1){let e=T();s(0,"button",21),_("click",function(){let r=y(e).$implicit,o=h();return v(o.loadExample(r))}),u(1),l()}if(n&2){let e=t.$implicit;d(),D(" ",e.label," ")}}function kh(n,t){n&1&&(b(),s(0,"svg",22),g(1,"path",23)(2,"path",24),l())}function Eh(n,t){n&1&&(b(),s(0,"svg",25),g(1,"circle",26)(2,"path",27),l())}function Th(n,t){if(n&1&&(s(0,"div",28),u(1),l()),n&2){let e=h();d(),D(" ",e.error," ")}}function Mh(n,t){n&1&&(s(0,"div",29),u(1," Update executed successfully. "),l())}function Dh(n,t){if(n&1&&(s(0,"th",40),u(1),l()),n&2){let e=t.$implicit;d(),D(" ",e," ")}}function Rh(n,t){if(n&1&&(s(0,"td",42),u(1),l()),n&2){let e,i=t.$implicit,r=h().$implicit;f("title",r[i]),d(),D(" ",(e=r[i])!==null&&e!==void 0?e:"\u2014"," ")}}function Ph(n,t){if(n&1&&(s(0,"tr"),w(1,Rh,2,2,"td",41),l()),n&2){let e=t.index,i=h(3);Ai(e%2===0?"border-b border-gray-100 dark:border-gray-800":"border-b border-gray-100 dark:border-gray-800 bg-gray-50/50 dark:bg-gray-800/30"),d(),f("ngForOf",i.columns)}}function Ih(n,t){if(n&1&&(s(0,"div",35)(1,"table",36)(2,"thead")(3,"tr",37),w(4,Dh,2,1,"th",38),l()(),s(5,"tbody"),w(6,Ph,2,3,"tr",39),l()()()),n&2){let e=h(2);d(4),f("ngForOf",e.columns),d(2),f("ngForOf",e.results)}}function Ah(n,t){if(n&1&&(s(0,"div",43)(1,"pre",44),u(2),Re(3,"json"),l()()),n&2){let e=h(2);d(2),j(yn(3,1,e.results))}}function Oh(n,t){if(n&1){let e=T();s(0,"div",30)(1,"div",31)(2,"span",32),u(3),l(),s(4,"div",9)(5,"button",20),_("click",function(){y(e);let r=h();return v(r.viewMode="table")}),u(6," Table "),l(),s(7,"button",20),_("click",function(){y(e);let r=h();return v(r.viewMode="json")}),u(8," JSON "),l()()(),w(9,Ih,7,2,"div",33)(10,Ah,4,3,"div",34),l()}if(n&2){let e=h();d(3),_n(" ",e.results.length," result",e.results.length!==1?"s":""," "),d(2),Ai(e.viewMode==="table"?e.activeTabClass:e.inactiveTabClass),d(2),Ai(e.viewMode==="json"?e.activeTabClass:e.inactiveTabClass),d(2),f("ngIf",e.viewMode==="table"),d(),f("ngIf",e.viewMode==="json")}}function Lh(n,t){n&1&&(s(0,"div",45),u(1," No results returned. "),l())}var Ur=class n{constructor(t,e,i){this.gestionService=t;this.ngZone=e;this.cdr=i}query="";results=[];columns=[];error=null;loading=!1;hasRun=!1;updateSuccess=!1;selectedType="SELECT";viewMode="table";queryTypes=["SELECT","UPDATE"];activeTabClass="px-3 py-1 text-xs rounded-lg bg-white dark:bg-gray-700 border border-gray-200 dark:border-gray-600 text-gray-800 dark:text-gray-100 font-medium shadow-sm";inactiveTabClass="px-3 py-1 text-xs rounded-lg text-gray-500 dark:text-gray-400 hover:bg-white dark:hover:bg-gray-700 transition-colors";examples=[{label:"All classes",type:"SELECT",query:`PREFIX owl: +PREFIX rdfs: +SELECT ?class ?label WHERE { + ?class a owl:Class . + OPTIONAL { ?class rdfs:label ?label . } +} LIMIT 20`},{label:"All triples",type:"SELECT",query:`SELECT ?s ?p ?o WHERE { + ?s ?p ?o . +} LIMIT 50`},{label:"Named graphs",type:"SELECT",query:`SELECT DISTINCT ?g WHERE { + GRAPH ?g { ?s ?p ?o } +}`}];loadExample(t){this.query=t.query,this.selectedType=t.type,this.clearResults()}clearAll(){this.query="",this.clearResults()}clearResults(){this.results=[],this.columns=[],this.error=null,this.updateSuccess=!1,this.hasRun=!1}runQuery(){if(!this.query.trim())return;let t=this.query.replace(/\\"/g,'"').replace(/\\\\/g,"\\").replace(/\s+/g," ").trim();this.loading=!0,this.error=null,this.updateSuccess=!1,this.results=[],this.columns=[],this.hasRun=!0,this.cdr.detectChanges(),this.selectedType==="SELECT"&&this.gestionService.runSelectQuery(t).pipe(Ke(()=>{this.ngZone.run(()=>{this.loading=!1,this.cdr.detectChanges()})})).subscribe({next:e=>{this.ngZone.run(()=>{this.results=e??[],this.results.length>0&&(this.columns=Object.keys(this.results[0])),this.cdr.detectChanges()})},error:e=>{this.ngZone.run(()=>{this.error=e?.error?.message??e?.message??"An error occurred while executing the query.",this.cdr.detectChanges()})}})}static \u0275fac=function(e){return new(e||n)(K(ui),K(ut),K(Se))};static \u0275cmp=q({type:n,selectors:[["app-sparql"]],decls:24,vars:11,consts:[[1,"p-6","max-w-full"],[1,"mb-4"],[1,"flex","items-center","gap-3","mb-3"],[1,"text-sm","font-medium","text-gray-500","dark:text-gray-400"],[1,"flex","rounded-lg","border","border-gray-200","dark:border-gray-700","overflow-hidden"],[3,"class","click",4,"ngFor","ngForOf"],[1,"relative"],["rows","10","placeholder","Write your SPARQL query here...",1,"w-full","font-mono","text-sm","p-4","rounded-xl","border","border-gray-200","dark:border-gray-700","bg-gray-50","dark:bg-gray-900","text-gray-900","dark:text-gray-100","focus:outline-none","focus:ring-2","focus:ring-indigo-500","focus:border-transparent","resize-y","placeholder-gray-400","dark:placeholder-gray-600","leading-relaxed",3,"ngModelChange","ngModel"],[1,"flex","items-center","justify-between","mt-3"],[1,"flex","gap-2"],["class",`text-xs px-3 py-1.5 rounded-lg border border-gray-200 dark:border-gray-700 + text-gray-500 dark:text-gray-400 hover:bg-gray-50 dark:hover:bg-gray-800 + hover:text-gray-700 dark:hover:text-gray-200 transition-colors`,3,"click",4,"ngFor","ngForOf"],[1,"flex","items-center","gap-3"],[1,"text-sm","text-gray-400","hover:text-gray-600","dark:hover:text-gray-200","transition-colors",3,"click"],[1,"flex","items-center","gap-2","px-5","py-2","rounded-xl","bg-indigo-600","hover:bg-indigo-700","disabled:opacity-40","disabled:cursor-not-allowed","text-white","text-sm","font-medium","transition-colors",3,"click","disabled"],["class","w-4 h-4","fill","none","viewBox","0 0 24 24","stroke","currentColor",4,"ngIf"],["class","w-4 h-4 animate-spin","fill","none","viewBox","0 0 24 24",4,"ngIf"],["class",`mb-4 p-4 rounded-xl bg-red-50 dark:bg-red-900/20 border border-red-200 dark:border-red-800 + text-red-700 dark:text-red-400 text-sm font-mono`,4,"ngIf"],["class",`mb-4 p-4 rounded-xl bg-green-50 dark:bg-green-900/20 border border-green-200 dark:border-green-800 + text-green-700 dark:text-green-400 text-sm`,4,"ngIf"],["class","rounded-xl border border-gray-200 dark:border-gray-700 overflow-hidden",4,"ngIf"],["class","text-center py-12 text-gray-400 dark:text-gray-600 text-sm",4,"ngIf"],[3,"click"],[1,"text-xs","px-3","py-1.5","rounded-lg","border","border-gray-200","dark:border-gray-700","text-gray-500","dark:text-gray-400","hover:bg-gray-50","dark:hover:bg-gray-800","hover:text-gray-700","dark:hover:text-gray-200","transition-colors",3,"click"],["fill","none","viewBox","0 0 24 24","stroke","currentColor",1,"w-4","h-4"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M14.752 11.168l-3.197-2.132A1 1 0 0010 9.87v4.263a1 1 0 001.555.832l3.197-2.132a1 1 0 000-1.664z"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M21 12a9 9 0 11-18 0 9 9 0 0118 0z"],["fill","none","viewBox","0 0 24 24",1,"w-4","h-4","animate-spin"],["cx","12","cy","12","r","10","stroke","currentColor","stroke-width","4",1,"opacity-25"],["fill","currentColor","d","M4 12a8 8 0 018-8v8H4z",1,"opacity-75"],[1,"mb-4","p-4","rounded-xl","bg-red-50","dark:bg-red-900/20","border","border-red-200","dark:border-red-800","text-red-700","dark:text-red-400","text-sm","font-mono"],[1,"mb-4","p-4","rounded-xl","bg-green-50","dark:bg-green-900/20","border","border-green-200","dark:border-green-800","text-green-700","dark:text-green-400","text-sm"],[1,"rounded-xl","border","border-gray-200","dark:border-gray-700","overflow-hidden"],[1,"flex","items-center","justify-between","px-4","py-3","bg-gray-50","dark:bg-gray-800","border-b","border-gray-200","dark:border-gray-700"],[1,"text-sm","text-gray-500","dark:text-gray-400"],["class","overflow-x-auto",4,"ngIf"],["class","overflow-auto max-h-96",4,"ngIf"],[1,"overflow-x-auto"],[1,"w-full","text-sm"],[1,"bg-gray-50","dark:bg-gray-800","border-b","border-gray-200","dark:border-gray-700"],["class","px-4 py-3 text-left text-xs font-medium text-gray-500 dark:text-gray-400 uppercase tracking-wider whitespace-nowrap",4,"ngFor","ngForOf"],[3,"class",4,"ngFor","ngForOf"],[1,"px-4","py-3","text-left","text-xs","font-medium","text-gray-500","dark:text-gray-400","uppercase","tracking-wider","whitespace-nowrap"],["class","px-4 py-3 text-gray-800 dark:text-gray-200 font-mono text-xs max-w-xs truncate",3,"title",4,"ngFor","ngForOf"],[1,"px-4","py-3","text-gray-800","dark:text-gray-200","font-mono","text-xs","max-w-xs","truncate",3,"title"],[1,"overflow-auto","max-h-96"],[1,"p-4","text-xs","font-mono","text-gray-800","dark:text-gray-200","whitespace-pre-wrap","break-all"],[1,"text-center","py-12","text-gray-400","dark:text-gray-600","text-sm"]],template:function(e,i){e&1&&(s(0,"div",0)(1,"div",1)(2,"div",2)(3,"span",3),u(4,"Query type"),l(),s(5,"div",4),w(6,Ch,2,3,"button",5),l()(),s(7,"div",6)(8,"textarea",7),de("ngModelChange",function(o){return ce(i.query,o)||(i.query=o),o}),u(9," "),l()(),s(10,"div",8)(11,"div",9),w(12,Sh,2,1,"button",10),l(),s(13,"div",11)(14,"button",12),_("click",function(){return i.clearAll()}),u(15," Clear "),l(),s(16,"button",13),_("click",function(){return i.runQuery()}),w(17,kh,3,0,"svg",14)(18,Eh,3,0,"svg",15),u(19),l()()()(),w(20,Th,2,1,"div",16)(21,Mh,2,0,"div",17)(22,Oh,11,8,"div",18)(23,Lh,2,0,"div",19),l()),e&2&&(d(6),f("ngForOf",i.queryTypes),d(2),le("ngModel",i.query),d(4),f("ngForOf",i.examples),d(4),f("disabled",i.loading||!i.query.trim()),d(),f("ngIf",!i.loading),d(),f("ngIf",i.loading),d(),D(" ",i.loading?"Running...":"Run query"," "),d(),f("ngIf",i.error),d(),f("ngIf",i.updateSuccess),d(),f("ngIf",i.results.length>0),d(),f("ngIf",!i.loading&&!i.error&&!i.updateSuccess&&i.results.length===0&&i.hasRun))},dependencies:[be,nt,He,Ja,rt,Ct,St,kt],encapsulation:2})};var $r=class n{constructor(t){this.http=t}apiUrl="http://localhost:8080/projects";getProject(){return this.http.get(`${this.apiUrl}/current`)}static \u0275fac=function(e){return new(e||n)(Ce(ai))};static \u0275prov=J({token:n,factory:n.\u0275fac,providedIn:"root"})};var Nh=n=>({"rotate-180":n});function jh(n,t){if(n&1&&(s(0,"h1",27),u(1),l()),n&2){let e=h();d(),D(" ",e.projectName," ")}}function Vh(n,t){n&1&&(s(0,"div",28),b(),s(1,"svg",29),g(2,"circle",30)(3,"path",31),l(),S(),s(4,"span",32),u(5,"Loading..."),l()())}function zh(n,t){if(n&1&&(s(0,"mat-panel-description",50)(1,"span",51),u(2),l()()),n&2){let e=h().$implicit,i=h(2);d(2),j(i.getValuesOfKey(e).length)}}function Bh(n,t){if(n&1&&(s(0,"span",61),u(1),l()),n&2){let e=h().$implicit;d(),D("(",e.values.length,")")}}function Gh(n,t){if(n&1&&(s(0,"span",61),u(1),l()),n&2){let e=h(3).$implicit,i=h(2);d(),D("(",i.getValuesOfKey(e).length,")")}}function Hh(n,t){n&1&&(s(0,"span",67),u(1,"\u25CF"),l())}function Uh(n,t){if(n&1){let e=T();s(0,"button",63),_("click",function(){let r=y(e).$implicit,o=h(4).$implicit,a=h(2);return v(a.getAllEntitiesByPath(a.getKey(o),r))}),s(1,"div",64)(2,"span",65),u(3),l(),w(4,Hh,2,0,"span",66),l()()}if(n&2){let e=t.$implicit,i=h(6);I("bg-blue-50",i.selectedType===e)("border-l-3",i.selectedType===e)("border-l-blue-500",i.selectedType===e)("text-blue-700",i.selectedType===e),he("aria-pressed",i.selectedType===e),d(3),D(" ",e," "),d(),f("ngIf",i.selectedType===e)}}function $h(n,t){if(n&1&&w(0,Uh,5,11,"button",62),n&2){let e=h(3).$implicit,i=h(2);f("ngForOf",i.getValuesOfKey(e))}}function qh(n,t){n&1&&(s(0,"span",67),u(1,"\u25CF"),l())}function Wh(n,t){if(n&1){let e=T();s(0,"button",63),_("click",function(){let r=y(e).$implicit,o=h(4).$implicit,a=h(2);return v(a.getAllEntitiesByPath(a.getKey(o),r))}),s(1,"div",64)(2,"span",65),u(3),l(),w(4,qh,2,0,"span",66),l()()}if(n&2){let e=t.$implicit,i=h(6);I("bg-blue-50",i.selectedType===e)("border-l-3",i.selectedType===e)("border-l-blue-500",i.selectedType===e)("text-blue-700",i.selectedType===e),he("aria-pressed",i.selectedType===e),d(3),D(" ",e," "),d(),f("ngIf",i.selectedType===e)}}function Qh(n,t){if(n&1&&w(0,Wh,5,11,"button",62),n&2){let e=h().$implicit;f("ngForOf",e.values)}}function Kh(n,t){if(n&1){let e=T();s(0,"cdk-accordion-item",53,1)(2,"button",54),_("click",function(){y(e);let r=wt(1);return v(r.toggle())}),s(3,"div",55)(4,"span"),u(5),l(),w(6,Bh,2,1,"span",56)(7,Gh,2,1,"span",56),l(),s(8,"span",57),b(),s(9,"svg",58),g(10,"path",59),l()()(),w(11,$h,1,1,"button",60)(12,Qh,1,1,"button",60),l()}if(n&2){let e=t.$implicit,i=t.$index,r=wt(1);d(2),he("id","accordion-header-"+i)("aria-expanded",r.expanded)("aria-controls","accordion-body-"+i),d(3),j(e.title),d(),f("ngIf",i!==1),d(),f("ngIf",i===1),d(2),f("ngClass",Ya(9,Nh,r.expanded)),d(2),W(r.expanded&&i===1?11:-1),d(),W(i!==1&&r.expanded?12:-1)}}function Yh(n,t){if(n&1&&(s(0,"cdk-accordion",52),Oi(1,Kh,13,11,"cdk-accordion-item",53,gn),l()),n&2){let e=h(3);d(),Li(e.accordion_items)}}function Xh(n,t){if(n&1){let e=T();s(0,"mat-expansion-panel",45),_("opened",function(){y(e);let r=h(2);return v(r.panelOpenState.set(!0))})("closed",function(){y(e);let r=h(2);return v(r.panelOpenState.set(!1))}),s(1,"mat-expansion-panel-header",46)(2,"mat-panel-title",47),u(3),l(),w(4,zh,3,1,"mat-panel-description",48),l(),w(5,Yh,3,0,"cdk-accordion",49),l()}if(n&2){let e=t.$implicit,i=h(2);I("!bg-gray-50",i.panelOpenState()),d(3),D(" ",i.getKey(e)," "),d(),f("ngIf",i.getKey(e)!=="rico"),d(),f("ngIf",i.getKey(e)==="rico")}}function Zh(n,t){n&1&&(s(0,"div",68)(1,"div",69),b(),s(2,"svg",70),g(3,"path",71),l()(),S(),s(4,"p",72),u(5,"No types found"),l(),s(6,"p",73),u(7,"Try adjusting your search"),l()())}function Jh(n,t){if(n&1){let e=T();s(0,"aside",33)(1,"div",34)(2,"div",35)(3,"div",36)(4,"button",37),_("click",function(){y(e);let r=h();return v(r.openOntologyManagerDialog())}),b(),s(5,"svg",38),g(6,"path",39)(7,"path",40),l()(),S(),s(8,"h2",41),u(9," RDF Dictionaries "),l()()(),s(10,"mat-accordion",42),w(11,Xh,6,5,"mat-expansion-panel",43),l(),w(12,Zh,8,0,"div",44),l()()}if(n&2){let e=h();d(11),f("ngForOf",e.ontologyLabels),d(),f("ngIf",e.ontologyLabels.length===0)}}function ef(n,t){if(n&1){let e=T();s(0,"app-liste-entites",77),_("selectedEntity",function(r){y(e);let o=h(2);return v(o.handleChildData(r))}),l()}if(n&2){let e=h(2);f("selectedType",`${e.selectedOntology}:${e.selectedType}`)("allEntities",e.formattedEntities)}}function tf(n,t){if(n&1&&(s(0,"div",74)(1,"div",75),w(2,ef,1,2,"app-liste-entites",76),l()()),n&2){let e=h();f("@slideIn",void 0),d(2),f("ngIf",e.formattedEntities)}}function nf(n,t){n&1&&(s(0,"div",78)(1,"div",79),g(2,"app-sparql"),l()()),n&2&&f("@slideIn",void 0)}function rf(n,t){if(n&1){let e=T();s(0,"aside",80)(1,"div",81)(2,"app-entity-details",82),_("close",function(){y(e);let r=h();return v(r.selectedEntity=null)}),l()()()}if(n&2){let e=h();f("@slideIn",void 0),d(2),f("ontologyLabels",e.ontologyLabels)("selectedEntityId",e.selectedEntity.iri)}}var qr=class n{constructor(t,e,i,r,o){this.dialog=t;this.ontologyService=e;this.projetService=i;this.cdr=r;this.router=o}panelOpenState=Ba(!1);formattedEntities=[];ontologyLabels=[];allRicoClasses=[];projectName="";filteredEntityTypes=[];selectedEntity=null;previousSelectedEntity=null;selectedType=null;selectedOntology=null;activeView="tableau";detailTab="ric";showPersonForm=!1;accordion_items=[{title:"Main Entity Types",values:["Activity","Person","Record","Instantiation","Place"]},{title:"Used Types",values:[]},{title:"Main Terminologies",values:["ActivityType","DocumentaryFormType","ContentFormType","Language","PlaceType","RoleType"]}];expandedIndex=0;openOntologyManagerDialog(){}ngOnInit(){this.ontologyService.getAllRicoClasses().subscribe({next:t=>{try{let i=this.ontologyService.getOntologyLabel(t.map(r=>r.type))[0].rico;i=Array.from(new Set(i)),this.allRicoClasses=i,console.log("Classes RICO (no duplicates) ",this.allRicoClasses)}catch(e){console.error("ERROR in getOntologyLabel:",e)}this.cdr.markForCheck()},error:t=>{console.error(t)}}),this.detailTab="ric",this.ontologyService.getTypes().subscribe({next:t=>{console.log("Types d'ontology ",t),this.ontologyLabels=this.ontologyService.getOntologyLabel(t),console.log("Labels d'ontology ",this.ontologyLabels),this.cdr.markForCheck()}}),this.projetService.getProject().subscribe({next:t=>{this.projectName=t.name,this.cdr.markForCheck()},error:t=>{console.error(t)}})}getKey(t){return Object.keys(t)[0]}handleChildData(t){console.log("Received from child:",t),this.selectedEntity=L({},t),this.detailTab="ric",this.cdr.markForCheck()}getValuesOfKey(t){let e=this.getKey(t);return t[e]}backToPreviousEntity(){if(this.previousSelectedEntity){let t=this.previousSelectedEntity;this.previousSelectedEntity=null,this.selectEntity(t)}}getAllEntitiesByPath(t,e){this.selectedType=e,this.selectedOntology=t;let i=this.ontologyService.getTypeUrlByName(t??"");i&&this.ontologyService.getAllEntitiesByType(i+e).subscribe({next:r=>{console.log("Entities for type ",e," : ",r),this.formattedEntities=r,this.cdr.markForCheck()},error:r=>{console.error(r)}})}selectEntity(t){this.selectedEntity=t}editEntity(t,e){e.stopPropagation(),console.log("Edit entity:",t)}saveEntity(){this.selectedEntity&&console.log("Saving entity:",this.selectedEntity)}exportData(){console.log("Exporting data...");let t=JSON.stringify(this.formattedEntities,null,2),e=new Blob([t],{type:"application/json"}),i=URL.createObjectURL(e),r=document.createElement("a");r.href=i,r.download=`ric-o-export-${new Date().toISOString().split("T")[0]}.json`,r.click(),URL.revokeObjectURL(i)}getIconPath(t){let e={calendar:"M8 2v3m8-3v3m-9 8h10M5 21h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v12a2 2 0 002 2z",user:"M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z","file-text":"M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z",copy:"M8 16H6a2 2 0 01-2-2V6a2 2 0 012-2h8a2 2 0 012 2v2m-6 12h8a2 2 0 002-2v-8a2 2 0 00-2-2h-8a2 2 0 00-2 2v8a2 2 0 002 2z",users:"M12 4.354a4 4 0 110 5.292M15 21H3v-1a6 6 0 0112 0v1zm0 0h6v-1a6 6 0 00-9-5.197M13 7a4 4 0 11-8 0 4 4 0 018 0z","map-pin":"M17.657 16.657L13.414 20.9a1.998 1.998 0 01-2.827 0l-4.244-4.243a8 8 0 1111.314 0z M15 11a3 3 0 11-6 0 3 3 0 016 0z",archive:"M5 8h14M5 8a2 2 0 110-4h14a2 2 0 110 4M5 8v10a2 2 0 002 2h10a2 2 0 002-2V8m-9 4h4"};return e[t]||e["file-text"]}setView(t){this.activeView=t}static \u0275fac=function(e){return new(e||n)(K(Mt),K(ui),K($r),K(Se),K(lt))};static \u0275cmp=q({type:n,selectors:[["app-gestion-ressources"]],decls:37,vars:13,consts:[["spinner",""],["accordionItem","cdkAccordionItem"],[1,"flex","flex-col","h-screen","bg-gray-50"],[1,"bg-gradient-to-r","from-blue-900","to-blue-600","shadow-lg"],[1,"flex","items-center","justify-between","px-6","py-4"],[1,"flex","items-center","gap-4"],[1,"flex","items-center","justify-center","w-10","h-10","bg-white/20","backdrop-blur-sm","rounded-xl","hover:bg-white/30","transition-all","duration-300","cursor-pointer"],["fill","none","stroke","currentColor","viewBox","0 0 24 24",1,"w-6","h-6","text-white"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M12 2L2 7l10 5 10-5-10-5z"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M2 17l10 5 10-5"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M2 12l10 5 10-5"],["class","text-xl font-bold text-white tracking-tight",4,"ngIf","ngIfElse"],[1,"text-xs","text-blue-100"],[1,"cursor-pointer","flex","items-center","gap-2","px-3","py-1.5","bg-white/10","hover:bg-white/20","backdrop-blur-md","rounded-lg","transition-colors",3,"click"],["fill","none","stroke","currentColor","viewBox","0 0 24 24",1,"w-4","h-4","text-white"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M15 19l-7-7 7-7"],[1,"text-sm","text-white","font-medium"],["fill","none","stroke","currentColor","viewBox","0 0 24 24",1,"w-4","h-4","text-white","rotate-180"],["role","tab","aria-label","SPARQL view",1,"cursor-pointer","flex","items-center","gap-2","px-4","py-2","rounded-md","text-sm","font-medium","transition-all","duration-200","hover:bg-white/20",3,"click"],["fill","none","stroke","currentColor","viewBox","0 0 24 24",1,"w-4","h-4"],["points","16 18 22 12 16 6","stroke-width","2"],["points","8 6 2 12 8 18","stroke-width","2"],[1,"flex","flex-1","overflow-hidden"],["class","w-[35%] bg-white border-r border-gray-200 overflow-y-auto shadow-sm flex flex-col",4,"ngIf"],["class","p-0! w-[85%]!",4,"ngIf"],["class","flex-1 flex items-start justify-center overflow-y-auto bg-gray-50",4,"ngIf"],["class","w-200! bg-white border-l border-gray-200 overflow-y-auto shadow-xl",4,"ngIf"],[1,"text-xl","font-bold","text-white","tracking-tight"],[1,"flex","items-center","gap-2"],["xmlns","http://www.w3.org/2000/svg","fill","none","viewBox","0 0 24 24",1,"animate-spin","h-5","w-5","text-white","opacity-70"],["cx","12","cy","12","r","10","stroke","currentColor","stroke-width","4",1,"opacity-25"],["fill","currentColor","d","M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4z",1,"opacity-75"],[1,"text-white","opacity-50","text-sm","italic"],[1,"w-[35%]","bg-white","border-r","border-gray-200","overflow-y-auto","shadow-sm","flex","flex-col"],[1,"p-4","flex-1"],[1,"flex","mb-4","pb-2","border-b","border-gray-100","items-center","justify-between"],[1,"flex","items-center","gap-3"],[1,"cursor-pointer","flex","items-center","gap-2","px-3","py-1.5","rounded-lg","hover:bg-gray-50","hover:text-gray-900","border-none","transition-all","duration-200","shadow-sm","hover:shadow",3,"click"],["fill","none","stroke","blue","viewBox","0 0 24 24",1,"w-4","h-4"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M10.325 4.317c.426-1.756 2.924-1.756 3.35 0a1.724 1.724 0 002.573 1.066c1.543-.94 3.31.826 2.37 2.37a1.724 1.724 0 001.065 2.572c1.756.426 1.756 2.924 0 3.35a1.724 1.724 0 00-1.066 2.573c.94 1.543-.826 3.31-2.37 2.37a1.724 1.724 0 00-2.572 1.065c-.426 1.756-2.924 1.756-3.35 0a1.724 1.724 0 00-2.573-1.066c-1.543.94-3.31-.826-2.37-2.37a1.724 1.724 0 00-1.065-2.572c-1.756-.426-1.756-2.924 0-3.35a1.724 1.724 0 001.066-2.573c-.94-1.543.826-3.31 2.37-2.37.996.608 2.296.07 2.572-1.065z"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M15 12a3 3 0 11-6 0 3 3 0 016 0z"],[1,"text-sm","font-semibold","text-gray-700","uppercase","tracking-wider"],[1,"flex","flex-col","gap-2"],["class","!border-none !shadow-none !rounded-lg overflow-hidden transition-all duration-200",3,"!bg-gray-50","opened","closed",4,"ngFor","ngForOf"],["class","text-center py-12 px-4",4,"ngIf"],[1,"!border-none","!shadow-none","!rounded-lg","overflow-hidden","transition-all","duration-200",3,"opened","closed"],[1,"!px-3","!py-2","hover:!bg-gray-50","transition-colors","duration-150","rounded-lg"],[1,"text-sm","font-medium","text-gray-700"],["class","justify-end",4,"ngIf"],["class","example-accordion",4,"ngIf"],[1,"justify-end"],[1,"text-xs","text-gray-400"],[1,"example-accordion"],[1,"example-accordion-item"],["tabindex","0",1,"example-accordion-item-header","p-5!",3,"click"],[1,"flex","items-center","justify-between","w-full"],["class","text-xs text-gray-400 mr-2",4,"ngIf"],[1,"example-accordion-item-description","flex","items-center"],["fill","none","stroke","currentColor","viewBox","0 0 24 24",1,"w-5","h-5","transition-transform","duration-300",3,"ngClass"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","2","d","M19 9l-7 7-7-7"],[1,"w-full","text-center!","px-4!","py-3!","text-sm","rounded-lg","hover:bg-gray-50","transition-all","duration-150","group","relative",3,"bg-blue-50","border-l-3","border-l-blue-500","text-blue-700"],[1,"text-xs","text-gray-400","mr-2"],["class","w-full text-center! px-4! py-3! text-sm rounded-lg hover:bg-gray-50 transition-all duration-150 group relative",3,"bg-blue-50","border-l-3","border-l-blue-500","text-blue-700","click",4,"ngFor","ngForOf"],[1,"w-full","text-center!","px-4!","py-3!","text-sm","rounded-lg","hover:bg-gray-50","transition-all","duration-150","group","relative",3,"click"],[1,"flex","items-center","justify-between"],[1,"text-sm","font-medium","group-hover:text-gray-900","transition-colors","duration-150"],["class","text-blue-500 text-xs",4,"ngIf"],[1,"text-blue-500","text-xs"],[1,"text-center","py-12","px-4"],[1,"inline-flex","items-center","justify-center","w-12","h-12","bg-gray-50","rounded-full","mb-3"],["fill","none","stroke","currentColor","viewBox","0 0 24 24",1,"h-6","w-6","text-gray-400"],["stroke-linecap","round","stroke-linejoin","round","stroke-width","1.5","d","M21 21l-6-6m2-5a7 7 0 11-14 0 7 7 0 0114 0z"],[1,"text-sm","font-medium","text-gray-500"],[1,"text-xs","text-gray-400","mt-1"],[1,"p-0!","w-[85%]!"],[1,"p-1!","flex-1","overflow-y-auto","bg-gray-50"],[3,"selectedType","allEntities","selectedEntity",4,"ngIf"],[3,"selectedEntity","selectedType","allEntities"],[1,"flex-1","flex","items-start","justify-center","overflow-y-auto","bg-gray-50"],[1,"w-full","max-w-5xl"],[1,"w-200!","bg-white","border-l","border-gray-200","overflow-y-auto","shadow-xl"],[1,"p-6"],[3,"close","ontologyLabels","selectedEntityId"]],template:function(e,i){if(e&1){let r=T();s(0,"div",2)(1,"header",3)(2,"div",4)(3,"div",5)(4,"div",6),b(),s(5,"svg",7),g(6,"path",8)(7,"path",9)(8,"path",10),l()(),S(),s(9,"div"),w(10,jh,2,1,"h1",11)(11,Vh,6,0,"ng-template",null,0,co),s(13,"p",12),u(14,"RDF Entity Management System"),l()()(),s(15,"div",5)(16,"button",13),_("click",function(){return y(r),v(i.router.navigate(["/gestion-projets"]))}),b(),s(17,"svg",14),g(18,"path",15),l(),S(),s(19,"span",16),u(20,"Projects"),l()(),s(21,"button",13),_("click",function(){return y(r),v(i.router.navigate(["/gestion-sources"]))}),s(22,"span",16),u(23,"Datasources"),l(),b(),s(24,"svg",17),g(25,"path",15),l()(),S(),s(26,"button",18),_("click",function(){return y(r),v(i.setView("sparql"))}),b(),s(27,"svg",19),g(28,"polyline",20)(29,"polyline",21),l(),S(),s(30,"span"),u(31,"SPARQL"),l()()()()(),s(32,"div",22),w(33,Jh,13,2,"aside",23)(34,tf,3,2,"div",24)(35,nf,3,1,"div",25)(36,rf,3,3,"aside",26),l()()}if(e&2){let r=wt(12);d(10),f("ngIf",i.projectName)("ngIfElse",r),d(16),I("bg-white",i.activeView==="sparql")("text-blue-600",i.activeView==="sparql")("shadow-sm",i.activeView==="sparql"),he("aria-selected",i.activeView==="sparql"),d(7),f("ngIf",i.activeView!=="sparql"),d(),f("ngIf",i.activeView==="tableau"),d(),f("ngIf",i.activeView==="sparql"),d(),f("ngIf",i.selectedEntity&&i.activeView!=="sparql")}},dependencies:[be,bn,nt,He,rt,Et,Tc,Ec,wa,Ca,kc,Sc,An,Mc,Ue,jr,Fr,Nr,Gr,Hr,Ur],styles:["@keyframes _ngcontent-%COMP%_fade-in{0%{opacity:0}to{opacity:1}}@keyframes _ngcontent-%COMP%_slide-in{0%{transform:translate(100%);opacity:0}to{transform:translate(0);opacity:1}}@keyframes _ngcontent-%COMP%_slide-down{0%{transform:translateY(-10px);opacity:0}to{transform:translateY(0);opacity:1}}.animate-fade-in[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_fade-in .3s ease-in-out}.animate-slide-in[_ngcontent-%COMP%]{animation:_ngcontent-%COMP%_slide-in .3s ease-out} .snackbar-success{background:#10b981!important;color:#fff!important} .snackbar-error{background:#ef4444!important;color:#fff!important} .snackbar-warning{background:#f59e0b!important;color:#fff!important} .snackbar-info{background:#3b82f6!important;color:#fff!important}[_ngcontent-%COMP%]::-webkit-scrollbar{width:8px;height:8px}[_ngcontent-%COMP%]::-webkit-scrollbar-track{background:#f1f5f9}[_ngcontent-%COMP%]::-webkit-scrollbar-thumb{background:#cbd5e1;border-radius:4px}[_ngcontent-%COMP%]::-webkit-scrollbar-thumb:hover{background:#94a3b8}tr.group[_ngcontent-%COMP%]:hover .opacity-0[_ngcontent-%COMP%]{opacity:1}@media (max-width: 768px){.hidden-mobile[_ngcontent-%COMP%]{display:none}}.filter-container[_ngcontent-%COMP%]{position:relative}.filter-container[_ngcontent-%COMP%] .filter-button.active[_ngcontent-%COMP%]{background-color:#3f51b51a;color:#3f51b5}.filter-menu[_ngcontent-%COMP%]{position:absolute;top:50px;right:0;background:#fff;border-radius:8px;box-shadow:0 4px 12px #00000026;padding:16px;min-width:300px;z-index:1000}.filter-menu[_ngcontent-%COMP%] .filter-section[_ngcontent-%COMP%]{margin-bottom:16px}.filter-menu[_ngcontent-%COMP%] .filter-section[_ngcontent-%COMP%] h4[_ngcontent-%COMP%]{font-size:12px;font-weight:600;text-transform:uppercase;color:#666;margin:0 0 8px}.filter-menu[_ngcontent-%COMP%] .filter-section[_ngcontent-%COMP%] .filter-options[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:8px}.filter-menu[_ngcontent-%COMP%] .filter-section[_ngcontent-%COMP%] .filter-options[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{font-size:13px;padding:6px 12px;border:1px solid #ddd;border-radius:4px;background:#fff;transition:all .2s}.filter-menu[_ngcontent-%COMP%] .filter-section[_ngcontent-%COMP%] .filter-options[_ngcontent-%COMP%] button.active[_ngcontent-%COMP%]{background-color:#3f51b5;color:#fff;border-color:#3f51b5}.filter-menu[_ngcontent-%COMP%] .filter-section[_ngcontent-%COMP%] .filter-options[_ngcontent-%COMP%] button[_ngcontent-%COMP%]:hover:not(.active){background-color:#f5f5f5}.filter-menu[_ngcontent-%COMP%] .filter-section[_ngcontent-%COMP%] .search-field[_ngcontent-%COMP%]{width:100%;margin-top:8px}.filter-menu[_ngcontent-%COMP%] .filter-actions[_ngcontent-%COMP%]{border-top:1px solid #eee;padding-top:12px;text-align:right}.filter-menu[_ngcontent-%COMP%] .filter-actions[_ngcontent-%COMP%] button[_ngcontent-%COMP%]{color:#666;font-size:13px}.stats-dialog-overlay[_ngcontent-%COMP%]{position:fixed;inset:0;background:#00000080;display:flex;align-items:center;justify-content:center;z-index:2000;animation:_ngcontent-%COMP%_fadeIn .2s}.stats-dialog[_ngcontent-%COMP%]{background:#fff;border-radius:12px;padding:24px;max-width:600px;width:90%;max-height:80vh;overflow-y:auto;box-shadow:0 8px 32px #0003;animation:_ngcontent-%COMP%_slideUp .3s}.stats-dialog[_ngcontent-%COMP%] .stats-header[_ngcontent-%COMP%]{display:flex;justify-content:space-between;align-items:center;margin-bottom:24px;padding-bottom:16px;border-bottom:2px solid #f0f0f0}.stats-dialog[_ngcontent-%COMP%] .stats-header[_ngcontent-%COMP%] h2[_ngcontent-%COMP%]{margin:0;font-size:24px;font-weight:600;color:#333}.stats-dialog[_ngcontent-%COMP%] .stats-content[_ngcontent-%COMP%]{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:16px}.stats-dialog[_ngcontent-%COMP%] .stat-card[_ngcontent-%COMP%]{background:linear-gradient(135deg,#f5f7fa,#c3cfe2);border-radius:12px;padding:20px;display:flex;align-items:center;gap:16px;transition:transform .2s}.stats-dialog[_ngcontent-%COMP%] .stat-card[_ngcontent-%COMP%]:hover{transform:translateY(-4px)}.stats-dialog[_ngcontent-%COMP%] .stat-card.full-width[_ngcontent-%COMP%]{grid-column:1/-1}.stats-dialog[_ngcontent-%COMP%] .stat-card[_ngcontent-%COMP%] .stat-icon[_ngcontent-%COMP%]{width:48px;height:48px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#fff;color:#3f51b5}.stats-dialog[_ngcontent-%COMP%] .stat-card[_ngcontent-%COMP%] .stat-icon.internal[_ngcontent-%COMP%]{background:#e3f2fd;color:#1976d2}.stats-dialog[_ngcontent-%COMP%] .stat-card[_ngcontent-%COMP%] .stat-icon.external[_ngcontent-%COMP%]{background:#f3e5f5;color:#7b1fa2}.stats-dialog[_ngcontent-%COMP%] .stat-card[_ngcontent-%COMP%] .stat-icon.editable[_ngcontent-%COMP%]{background:#e8f5e9;color:#388e3c}.stats-dialog[_ngcontent-%COMP%] .stat-card[_ngcontent-%COMP%] .stat-icon.readonly[_ngcontent-%COMP%]{background:#ffebee;color:#d32f2f}.stats-dialog[_ngcontent-%COMP%] .stat-card[_ngcontent-%COMP%] .stat-icon.tools[_ngcontent-%COMP%]{background:#fff3e0;color:#f57c00}.stats-dialog[_ngcontent-%COMP%] .stat-card[_ngcontent-%COMP%] .stat-icon[_ngcontent-%COMP%] mat-icon[_ngcontent-%COMP%]{font-size:28px;width:28px;height:28px}.stats-dialog[_ngcontent-%COMP%] .stat-card[_ngcontent-%COMP%] .stat-info[_ngcontent-%COMP%]{flex:1}.stats-dialog[_ngcontent-%COMP%] .stat-card[_ngcontent-%COMP%] .stat-info[_ngcontent-%COMP%] .stat-value[_ngcontent-%COMP%]{font-size:32px;font-weight:700;color:#333;line-height:1;margin-bottom:4px}.stats-dialog[_ngcontent-%COMP%] .stat-card[_ngcontent-%COMP%] .stat-info[_ngcontent-%COMP%] .stat-label[_ngcontent-%COMP%]{font-size:13px;color:#666;text-transform:uppercase;letter-spacing:.5px}.stats-dialog[_ngcontent-%COMP%] .stat-card[_ngcontent-%COMP%] .stat-info[_ngcontent-%COMP%] .tools-list[_ngcontent-%COMP%]{display:flex;flex-wrap:wrap;gap:8px;margin-top:8px}.stats-dialog[_ngcontent-%COMP%] .stat-card[_ngcontent-%COMP%] .stat-info[_ngcontent-%COMP%] .tools-list[_ngcontent-%COMP%] .tool-chip[_ngcontent-%COMP%]{background:#fff;padding:4px 12px;border-radius:16px;font-size:12px;font-weight:500;color:#333}@keyframes _ngcontent-%COMP%_fadeIn{0%{opacity:0}to{opacity:1}}@keyframes _ngcontent-%COMP%_slideUp{0%{transform:translateY(20px);opacity:0}to{transform:translateY(0);opacity:1}}.stats-button[_ngcontent-%COMP%]:hover, .filter-button[_ngcontent-%COMP%]:hover, .export-button[_ngcontent-%COMP%]:hover{background-color:#3f51b514}.example-accordion[_ngcontent-%COMP%]{display:block;max-width:500px}.example-accordion-item[_ngcontent-%COMP%]{display:block;border:solid 1px #ccc}.example-accordion-item[_ngcontent-%COMP%] + .example-accordion-item[_ngcontent-%COMP%]{border-top:none}.example-accordion-item-header[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;width:100%;height:100%;background:none;border:none;padding:10px;text-align:center;color:#16079e!important;text-weight:bold}.example-accordion-item-description[_ngcontent-%COMP%]{font-size:.85em;color:#999}.example-accordion-item-body[_ngcontent-%COMP%]{padding:10px}.example-accordion-item-header[_ngcontent-%COMP%]:hover{cursor:pointer;background-color:#eee}.example-accordion-item[_ngcontent-%COMP%]:first-child{border-top-left-radius:4px;border-top-right-radius:4px}.example-accordion-item[_ngcontent-%COMP%]:last-child{border-bottom-left-radius:4px;border-bottom-right-radius:4px}"],data:{animation:[Vo("slideIn",[cr(":enter",[It({transform:"translateX(100%)",opacity:0}),lr("300ms ease-out",It({transform:"translateX(0)",opacity:1}))]),cr(":leave",[lr("200ms ease-in",It({transform:"translateX(100%)",opacity:0}))])])]},changeDetection:0})};var Dc=[{path:"",redirectTo:"/gestion-projets",pathMatch:"full"},{path:"gestion-projets",component:Pr},{path:"gestion-sources",component:Or},{path:"gestion-ressources",component:qr},{path:"files",component:On}];var Rc={providers:[Za({eventCoalescing:!0}),No(Dc),ss(as()),ns(rs()),lc()]};var Wr=class n{title="Frontend";static \u0275fac=function(e){return new(e||n)};static \u0275cmp=q({type:n,selectors:[["app-root"]],decls:1,vars:0,template:function(e,i){e&1&&g(0,"router-outlet")},dependencies:[en],encapsulation:2})};is(Wr,Rc).catch(n=>console.error(n)); diff --git a/electron/dist/frontend/browser/polyfills-B6TNHZQ6.js b/electron/dist/frontend/browser/polyfills-B6TNHZQ6.js new file mode 100644 index 00000000..9590af50 --- /dev/null +++ b/electron/dist/frontend/browser/polyfills-B6TNHZQ6.js @@ -0,0 +1,2 @@ +var ce=globalThis;function te(t){return(ce.__Zone_symbol_prefix||"__zone_symbol__")+t}function ht(){let t=ce.performance;function n(I){t&&t.mark&&t.mark(I)}function a(I,s){t&&t.measure&&t.measure(I,s)}n("Zone");class e{static __symbol__=te;static assertZonePatched(){if(ce.Promise!==S.ZoneAwarePromise)throw new Error("Zone.js has detected that ZoneAwarePromise `(window|global).Promise` has been overwritten.\nMost likely cause is that a Promise polyfill has been loaded after Zone.js (Polyfilling Promise api is not necessary when zone.js is loaded. If you must load one, do so before loading zone.js.)")}static get root(){let s=e.current;for(;s.parent;)s=s.parent;return s}static get current(){return b.zone}static get currentTask(){return D}static __load_patch(s,i,r=!1){if(S.hasOwnProperty(s)){let E=ce[te("forceDuplicateZoneCheck")]===!0;if(!r&&E)throw Error("Already loaded patch: "+s)}else if(!ce["__Zone_disable_"+s]){let E="Zone:"+s;n(E),S[s]=i(ce,e,R),a(E,E)}}get parent(){return this._parent}get name(){return this._name}_parent;_name;_properties;_zoneDelegate;constructor(s,i){this._parent=s,this._name=i?i.name||"unnamed":"",this._properties=i&&i.properties||{},this._zoneDelegate=new f(this,this._parent&&this._parent._zoneDelegate,i)}get(s){let i=this.getZoneWith(s);if(i)return i._properties[s]}getZoneWith(s){let i=this;for(;i;){if(i._properties.hasOwnProperty(s))return i;i=i._parent}return null}fork(s){if(!s)throw new Error("ZoneSpec required!");return this._zoneDelegate.fork(this,s)}wrap(s,i){if(typeof s!="function")throw new Error("Expecting function got: "+s);let r=this._zoneDelegate.intercept(this,s,i),E=this;return function(){return E.runGuarded(r,this,arguments,i)}}run(s,i,r,E){b={parent:b,zone:this};try{return this._zoneDelegate.invoke(this,s,i,r,E)}finally{b=b.parent}}runGuarded(s,i=null,r,E){b={parent:b,zone:this};try{try{return this._zoneDelegate.invoke(this,s,i,r,E)}catch(x){if(this._zoneDelegate.handleError(this,x))throw x}}finally{b=b.parent}}runTask(s,i,r){if(s.zone!=this)throw new Error("A task can only be run in the zone of creation! (Creation: "+(s.zone||J).name+"; Execution: "+this.name+")");let E=s,{type:x,data:{isPeriodic:ee=!1,isRefreshable:M=!1}={}}=s;if(s.state===q&&(x===U||x===k))return;let he=s.state!=A;he&&E._transitionTo(A,d);let _e=D;D=E,b={parent:b,zone:this};try{x==k&&s.data&&!ee&&!M&&(s.cancelFn=void 0);try{return this._zoneDelegate.invokeTask(this,E,i,r)}catch(Q){if(this._zoneDelegate.handleError(this,Q))throw Q}}finally{let Q=s.state;if(Q!==q&&Q!==X)if(x==U||ee||M&&Q===p)he&&E._transitionTo(d,A,p);else{let Te=E._zoneDelegates;this._updateTaskCount(E,-1),he&&E._transitionTo(q,A,q),M&&(E._zoneDelegates=Te)}b=b.parent,D=_e}}scheduleTask(s){if(s.zone&&s.zone!==this){let r=this;for(;r;){if(r===s.zone)throw Error(`can not reschedule task to ${this.name} which is descendants of the original zone ${s.zone.name}`);r=r.parent}}s._transitionTo(p,q);let i=[];s._zoneDelegates=i,s._zone=this;try{s=this._zoneDelegate.scheduleTask(this,s)}catch(r){throw s._transitionTo(X,p,q),this._zoneDelegate.handleError(this,r),r}return s._zoneDelegates===i&&this._updateTaskCount(s,1),s.state==p&&s._transitionTo(d,p),s}scheduleMicroTask(s,i,r,E){return this.scheduleTask(new g(F,s,i,r,E,void 0))}scheduleMacroTask(s,i,r,E,x){return this.scheduleTask(new g(k,s,i,r,E,x))}scheduleEventTask(s,i,r,E,x){return this.scheduleTask(new g(U,s,i,r,E,x))}cancelTask(s){if(s.zone!=this)throw new Error("A task can only be cancelled in the zone of creation! (Creation: "+(s.zone||J).name+"; Execution: "+this.name+")");if(!(s.state!==d&&s.state!==A)){s._transitionTo(V,d,A);try{this._zoneDelegate.cancelTask(this,s)}catch(i){throw s._transitionTo(X,V),this._zoneDelegate.handleError(this,i),i}return this._updateTaskCount(s,-1),s._transitionTo(q,V),s.runCount=-1,s}}_updateTaskCount(s,i){let r=s._zoneDelegates;i==-1&&(s._zoneDelegates=null);for(let E=0;EI.hasTask(i,r),onScheduleTask:(I,s,i,r)=>I.scheduleTask(i,r),onInvokeTask:(I,s,i,r,E,x)=>I.invokeTask(i,r,E,x),onCancelTask:(I,s,i,r)=>I.cancelTask(i,r)};class f{get zone(){return this._zone}_zone;_taskCounts={microTask:0,macroTask:0,eventTask:0};_parentDelegate;_forkDlgt;_forkZS;_forkCurrZone;_interceptDlgt;_interceptZS;_interceptCurrZone;_invokeDlgt;_invokeZS;_invokeCurrZone;_handleErrorDlgt;_handleErrorZS;_handleErrorCurrZone;_scheduleTaskDlgt;_scheduleTaskZS;_scheduleTaskCurrZone;_invokeTaskDlgt;_invokeTaskZS;_invokeTaskCurrZone;_cancelTaskDlgt;_cancelTaskZS;_cancelTaskCurrZone;_hasTaskDlgt;_hasTaskDlgtOwner;_hasTaskZS;_hasTaskCurrZone;constructor(s,i,r){this._zone=s,this._parentDelegate=i,this._forkZS=r&&(r&&r.onFork?r:i._forkZS),this._forkDlgt=r&&(r.onFork?i:i._forkDlgt),this._forkCurrZone=r&&(r.onFork?this._zone:i._forkCurrZone),this._interceptZS=r&&(r.onIntercept?r:i._interceptZS),this._interceptDlgt=r&&(r.onIntercept?i:i._interceptDlgt),this._interceptCurrZone=r&&(r.onIntercept?this._zone:i._interceptCurrZone),this._invokeZS=r&&(r.onInvoke?r:i._invokeZS),this._invokeDlgt=r&&(r.onInvoke?i:i._invokeDlgt),this._invokeCurrZone=r&&(r.onInvoke?this._zone:i._invokeCurrZone),this._handleErrorZS=r&&(r.onHandleError?r:i._handleErrorZS),this._handleErrorDlgt=r&&(r.onHandleError?i:i._handleErrorDlgt),this._handleErrorCurrZone=r&&(r.onHandleError?this._zone:i._handleErrorCurrZone),this._scheduleTaskZS=r&&(r.onScheduleTask?r:i._scheduleTaskZS),this._scheduleTaskDlgt=r&&(r.onScheduleTask?i:i._scheduleTaskDlgt),this._scheduleTaskCurrZone=r&&(r.onScheduleTask?this._zone:i._scheduleTaskCurrZone),this._invokeTaskZS=r&&(r.onInvokeTask?r:i._invokeTaskZS),this._invokeTaskDlgt=r&&(r.onInvokeTask?i:i._invokeTaskDlgt),this._invokeTaskCurrZone=r&&(r.onInvokeTask?this._zone:i._invokeTaskCurrZone),this._cancelTaskZS=r&&(r.onCancelTask?r:i._cancelTaskZS),this._cancelTaskDlgt=r&&(r.onCancelTask?i:i._cancelTaskDlgt),this._cancelTaskCurrZone=r&&(r.onCancelTask?this._zone:i._cancelTaskCurrZone),this._hasTaskZS=null,this._hasTaskDlgt=null,this._hasTaskDlgtOwner=null,this._hasTaskCurrZone=null;let E=r&&r.onHasTask,x=i&&i._hasTaskZS;(E||x)&&(this._hasTaskZS=E?r:c,this._hasTaskDlgt=i,this._hasTaskDlgtOwner=this,this._hasTaskCurrZone=this._zone,r.onScheduleTask||(this._scheduleTaskZS=c,this._scheduleTaskDlgt=i,this._scheduleTaskCurrZone=this._zone),r.onInvokeTask||(this._invokeTaskZS=c,this._invokeTaskDlgt=i,this._invokeTaskCurrZone=this._zone),r.onCancelTask||(this._cancelTaskZS=c,this._cancelTaskDlgt=i,this._cancelTaskCurrZone=this._zone))}fork(s,i){return this._forkZS?this._forkZS.onFork(this._forkDlgt,this.zone,s,i):new e(s,i)}intercept(s,i,r){return this._interceptZS?this._interceptZS.onIntercept(this._interceptDlgt,this._interceptCurrZone,s,i,r):i}invoke(s,i,r,E,x){return this._invokeZS?this._invokeZS.onInvoke(this._invokeDlgt,this._invokeCurrZone,s,i,r,E,x):i.apply(r,E)}handleError(s,i){return this._handleErrorZS?this._handleErrorZS.onHandleError(this._handleErrorDlgt,this._handleErrorCurrZone,s,i):!0}scheduleTask(s,i){let r=i;if(this._scheduleTaskZS)this._hasTaskZS&&r._zoneDelegates.push(this._hasTaskDlgtOwner),r=this._scheduleTaskZS.onScheduleTask(this._scheduleTaskDlgt,this._scheduleTaskCurrZone,s,i),r||(r=i);else if(i.scheduleFn)i.scheduleFn(i);else if(i.type==F)z(i);else throw new Error("Task is missing scheduleFn.");return r}invokeTask(s,i,r,E){return this._invokeTaskZS?this._invokeTaskZS.onInvokeTask(this._invokeTaskDlgt,this._invokeTaskCurrZone,s,i,r,E):i.callback.apply(r,E)}cancelTask(s,i){let r;if(this._cancelTaskZS)r=this._cancelTaskZS.onCancelTask(this._cancelTaskDlgt,this._cancelTaskCurrZone,s,i);else{if(!i.cancelFn)throw Error("Task is not cancelable");r=i.cancelFn(i)}return r}hasTask(s,i){try{this._hasTaskZS&&this._hasTaskZS.onHasTask(this._hasTaskDlgt,this._hasTaskCurrZone,s,i)}catch(r){this.handleError(s,r)}}_updateTaskCount(s,i){let r=this._taskCounts,E=r[s],x=r[s]=E+i;if(x<0)throw new Error("More tasks executed then were scheduled.");if(E==0||x==0){let ee={microTask:r.microTask>0,macroTask:r.macroTask>0,eventTask:r.eventTask>0,change:s};this.hasTask(this._zone,ee)}}}class g{type;source;invoke;callback;data;scheduleFn;cancelFn;_zone=null;runCount=0;_zoneDelegates=null;_state="notScheduled";constructor(s,i,r,E,x,ee){if(this.type=s,this.source=i,this.data=E,this.scheduleFn=x,this.cancelFn=ee,!r)throw new Error("callback is not defined");this.callback=r;let M=this;s===U&&E&&E.useG?this.invoke=g.invokeTask:this.invoke=function(){return g.invokeTask.call(ce,M,this,arguments)}}static invokeTask(s,i,r){s||(s=this),K++;try{return s.runCount++,s.zone.runTask(s,i,r)}finally{K==1&&$(),K--}}get zone(){return this._zone}get state(){return this._state}cancelScheduleRequest(){this._transitionTo(q,p)}_transitionTo(s,i,r){if(this._state===i||this._state===r)this._state=s,s==q&&(this._zoneDelegates=null);else throw new Error(`${this.type} '${this.source}': can not transition to '${s}', expecting state '${i}'${r?" or '"+r+"'":""}, was '${this._state}'.`)}toString(){return this.data&&typeof this.data.handleId<"u"?this.data.handleId.toString():Object.prototype.toString.call(this)}toJSON(){return{type:this.type,state:this.state,source:this.source,zone:this.zone.name,runCount:this.runCount}}}let T=te("setTimeout"),y=te("Promise"),w=te("then"),_=[],P=!1,L;function H(I){if(L||ce[y]&&(L=ce[y].resolve(0)),L){let s=L[w];s||(s=L.then),s.call(L,I)}else ce[T](I,0)}function z(I){K===0&&_.length===0&&H($),I&&_.push(I)}function $(){if(!P){for(P=!0;_.length;){let I=_;_=[];for(let s=0;sb,onUnhandledError:W,microtaskDrainDone:W,scheduleMicroTask:z,showUncaughtError:()=>!e[te("ignoreConsoleErrorUncaughtError")],patchEventTarget:()=>[],patchOnProperties:W,patchMethod:()=>W,bindArguments:()=>[],patchThen:()=>W,patchMacroTask:()=>W,patchEventPrototype:()=>W,isIEOrEdge:()=>!1,getGlobalObjects:()=>{},ObjectDefineProperty:()=>W,ObjectGetOwnPropertyDescriptor:()=>{},ObjectCreate:()=>{},ArraySlice:()=>[],patchClass:()=>W,wrapWithCurrentZone:()=>W,filterProperties:()=>[],attachOriginToPatched:()=>W,_redefineProperty:()=>W,patchCallbacks:()=>W,nativeScheduleMicroTask:H},b={parent:null,zone:new e(null,null)},D=null,K=0;function W(){}return a("Zone","Zone"),e}function dt(){let t=globalThis,n=t[te("forceDuplicateZoneCheck")]===!0;if(t.Zone&&(n||typeof t.Zone.__symbol__!="function"))throw new Error("Zone already loaded.");return t.Zone??=ht(),t.Zone}var pe=Object.getOwnPropertyDescriptor,Me=Object.defineProperty,Ae=Object.getPrototypeOf,_t=Object.create,Tt=Array.prototype.slice,je="addEventListener",He="removeEventListener",Ne=te(je),Ze=te(He),ae="true",le="false",ve=te("");function Ve(t,n){return Zone.current.wrap(t,n)}function xe(t,n,a,e,c){return Zone.current.scheduleMacroTask(t,n,a,e,c)}var j=te,we=typeof window<"u",be=we?window:void 0,Y=we&&be||globalThis,Et="removeAttribute";function Fe(t,n){for(let a=t.length-1;a>=0;a--)typeof t[a]=="function"&&(t[a]=Ve(t[a],n+"_"+a));return t}function gt(t,n){let a=t.constructor.name;for(let e=0;e{let y=function(){return T.apply(this,Fe(arguments,a+"."+c))};return fe(y,T),y})(f)}}}function et(t){return t?t.writable===!1?!1:!(typeof t.get=="function"&&typeof t.set>"u"):!0}var tt=typeof WorkerGlobalScope<"u"&&self instanceof WorkerGlobalScope,De=!("nw"in Y)&&typeof Y.process<"u"&&Y.process.toString()==="[object process]",Ge=!De&&!tt&&!!(we&&be.HTMLElement),nt=typeof Y.process<"u"&&Y.process.toString()==="[object process]"&&!tt&&!!(we&&be.HTMLElement),Ce={},kt=j("enable_beforeunload"),Xe=function(t){if(t=t||Y.event,!t)return;let n=Ce[t.type];n||(n=Ce[t.type]=j("ON_PROPERTY"+t.type));let a=this||t.target||Y,e=a[n],c;if(Ge&&a===be&&t.type==="error"){let f=t;c=e&&e.call(this,f.message,f.filename,f.lineno,f.colno,f.error),c===!0&&t.preventDefault()}else c=e&&e.apply(this,arguments),t.type==="beforeunload"&&Y[kt]&&typeof c=="string"?t.returnValue=c:c!=null&&!c&&t.preventDefault();return c};function Ye(t,n,a){let e=pe(t,n);if(!e&&a&&pe(a,n)&&(e={enumerable:!0,configurable:!0}),!e||!e.configurable)return;let c=j("on"+n+"patched");if(t.hasOwnProperty(c)&&t[c])return;delete e.writable,delete e.value;let f=e.get,g=e.set,T=n.slice(2),y=Ce[T];y||(y=Ce[T]=j("ON_PROPERTY"+T)),e.set=function(w){let _=this;if(!_&&t===Y&&(_=Y),!_)return;typeof _[y]=="function"&&_.removeEventListener(T,Xe),g?.call(_,null),_[y]=w,typeof w=="function"&&_.addEventListener(T,Xe,!1)},e.get=function(){let w=this;if(!w&&t===Y&&(w=Y),!w)return null;let _=w[y];if(_)return _;if(f){let P=f.call(this);if(P)return e.set.call(this,P),typeof w[Et]=="function"&&w.removeAttribute(n),P}return null},Me(t,n,e),t[c]=!0}function rt(t,n,a){if(n)for(let e=0;efunction(g,T){let y=a(g,T);return y.cbIdx>=0&&typeof T[y.cbIdx]=="function"?xe(y.name,T[y.cbIdx],y,c):f.apply(g,T)})}function fe(t,n){t[j("OriginalDelegate")]=n}var $e=!1,Le=!1;function yt(){if($e)return Le;$e=!0;try{let t=be.navigator.userAgent;(t.indexOf("MSIE ")!==-1||t.indexOf("Trident/")!==-1||t.indexOf("Edge/")!==-1)&&(Le=!0)}catch{}return Le}function Je(t){return typeof t=="function"}function Ke(t){return typeof t=="number"}var pt={useG:!0},ne={},ot={},st=new RegExp("^"+ve+"(\\w+)(true|false)$"),it=j("propagationStopped");function ct(t,n){let a=(n?n(t):t)+le,e=(n?n(t):t)+ae,c=ve+a,f=ve+e;ne[t]={},ne[t][le]=c,ne[t][ae]=f}function vt(t,n,a,e){let c=e&&e.add||je,f=e&&e.rm||He,g=e&&e.listeners||"eventListeners",T=e&&e.rmAll||"removeAllListeners",y=j(c),w="."+c+":",_="prependListener",P="."+_+":",L=function(p,d,A){if(p.isRemoved)return;let V=p.callback;typeof V=="object"&&V.handleEvent&&(p.callback=k=>V.handleEvent(k),p.originalDelegate=V);let X;try{p.invoke(p,d,[A])}catch(k){X=k}let F=p.options;if(F&&typeof F=="object"&&F.once){let k=p.originalDelegate?p.originalDelegate:p.callback;d[f].call(d,A.type,k,F)}return X};function H(p,d,A){if(d=d||t.event,!d)return;let V=p||d.target||t,X=V[ne[d.type][A?ae:le]];if(X){let F=[];if(X.length===1){let k=L(X[0],V,d);k&&F.push(k)}else{let k=X.slice();for(let U=0;U{throw U})}}}let z=function(p){return H(this,p,!1)},$=function(p){return H(this,p,!0)};function J(p,d){if(!p)return!1;let A=!0;d&&d.useG!==void 0&&(A=d.useG);let V=d&&d.vh,X=!0;d&&d.chkDup!==void 0&&(X=d.chkDup);let F=!1;d&&d.rt!==void 0&&(F=d.rt);let k=p;for(;k&&!k.hasOwnProperty(c);)k=Ae(k);if(!k&&p[c]&&(k=p),!k||k[y])return!1;let U=d&&d.eventNameToString,S={},R=k[y]=k[c],b=k[j(f)]=k[f],D=k[j(g)]=k[g],K=k[j(T)]=k[T],W;d&&d.prepend&&(W=k[j(d.prepend)]=k[d.prepend]);function I(o,u){return u?typeof o=="boolean"?{capture:o,passive:!0}:o?typeof o=="object"&&o.passive!==!1?{...o,passive:!0}:o:{passive:!0}:o}let s=function(o){if(!S.isExisting)return R.call(S.target,S.eventName,S.capture?$:z,S.options)},i=function(o){if(!o.isRemoved){let u=ne[o.eventName],v;u&&(v=u[o.capture?ae:le]);let C=v&&o.target[v];if(C){for(let m=0;mre.zone.cancelTask(re);o.call(Ee,"abort",ie,{once:!0}),re.removeAbortListener=()=>Ee.removeEventListener("abort",ie)}if(S.target=null,me&&(me.taskData=null),Be&&(S.options.once=!0),typeof re.options!="boolean"&&(re.options=se),re.target=N,re.capture=Se,re.eventName=Z,B&&(re.originalDelegate=G),O?ge.unshift(re):ge.push(re),m)return N}};return k[c]=l(R,w,ee,M,F),W&&(k[_]=l(W,P,E,M,F,!0)),k[f]=function(){let o=this||t,u=arguments[0];d&&d.transferEventName&&(u=d.transferEventName(u));let v=arguments[2],C=v?typeof v=="boolean"?!0:v.capture:!1,m=arguments[1];if(!m)return b.apply(this,arguments);if(V&&!V(b,m,o,arguments))return;let O=ne[u],N;O&&(N=O[C?ae:le]);let Z=N&&o[N];if(Z)for(let G=0;Gfunction(c,f){c[it]=!0,e&&e.apply(c,f)})}function Pt(t,n){n.patchMethod(t,"queueMicrotask",a=>function(e,c){Zone.current.scheduleMicroTask("queueMicrotask",c[0])})}var Re=j("zoneTask");function ke(t,n,a,e){let c=null,f=null;n+=e,a+=e;let g={};function T(w){let _=w.data;_.args[0]=function(){return w.invoke.apply(this,arguments)};let P=c.apply(t,_.args);return Ke(P)?_.handleId=P:(_.handle=P,_.isRefreshable=Je(P.refresh)),w}function y(w){let{handle:_,handleId:P}=w.data;return f.call(t,_??P)}c=ue(t,n,w=>function(_,P){if(Je(P[0])){let L={isRefreshable:!1,isPeriodic:e==="Interval",delay:e==="Timeout"||e==="Interval"?P[1]||0:void 0,args:P},H=P[0];P[0]=function(){try{return H.apply(this,arguments)}finally{let{handle:A,handleId:V,isPeriodic:X,isRefreshable:F}=L;!X&&!F&&(V?delete g[V]:A&&(A[Re]=null))}};let z=xe(n,P[0],L,T,y);if(!z)return z;let{handleId:$,handle:J,isRefreshable:q,isPeriodic:p}=z.data;if($)g[$]=z;else if(J&&(J[Re]=z,q&&!p)){let d=J.refresh;J.refresh=function(){let{zone:A,state:V}=z;return V==="notScheduled"?(z._state="scheduled",A._updateTaskCount(z,1)):V==="running"&&(z._state="scheduling"),d.call(this)}}return J??$??z}else return w.apply(t,P)}),f=ue(t,a,w=>function(_,P){let L=P[0],H;Ke(L)?(H=g[L],delete g[L]):(H=L?.[Re],H?L[Re]=null:H=L),H?.type?H.cancelFn&&H.zone.cancelTask(H):w.apply(t,P)})}function Rt(t,n){let{isBrowser:a,isMix:e}=n.getGlobalObjects();if(!a&&!e||!t.customElements||!("customElements"in t))return;let c=["connectedCallback","disconnectedCallback","adoptedCallback","attributeChangedCallback","formAssociatedCallback","formDisabledCallback","formResetCallback","formStateRestoreCallback"];n.patchCallbacks(n,t.customElements,"customElements","define",c)}function Ct(t,n){if(Zone[n.symbol("patchEventTarget")])return;let{eventNames:a,zoneSymbolEventNames:e,TRUE_STR:c,FALSE_STR:f,ZONE_SYMBOL_PREFIX:g}=n.getGlobalObjects();for(let y=0;yf.target===t);if(e.length===0)return n;let c=e[0].ignoreProperties;return n.filter(f=>c.indexOf(f)===-1)}function Qe(t,n,a,e){if(!t)return;let c=lt(t,n,a);rt(t,c,e)}function Ie(t){return Object.getOwnPropertyNames(t).filter(n=>n.startsWith("on")&&n.length>2).map(n=>n.substring(2))}function Dt(t,n){if(De&&!nt||Zone[t.symbol("patchEvents")])return;let a=n.__Zone_ignore_on_properties,e=[];if(Ge){let c=window;e=e.concat(["Document","SVGElement","Element","HTMLElement","HTMLBodyElement","HTMLMediaElement","HTMLFrameSetElement","HTMLFrameElement","HTMLIFrameElement","HTMLMarqueeElement","Worker"]);let f=[];Qe(c,Ie(c),a&&a.concat(f),Ae(c))}e=e.concat(["XMLHttpRequest","XMLHttpRequestEventTarget","IDBIndex","IDBRequest","IDBOpenDBRequest","IDBDatabase","IDBTransaction","IDBCursor","WebSocket"]);for(let c=0;c{let a=n[t.__symbol__("legacyPatch")];a&&a()}),t.__load_patch("timers",n=>{let a="set",e="clear";ke(n,a,e,"Timeout"),ke(n,a,e,"Interval"),ke(n,a,e,"Immediate")}),t.__load_patch("requestAnimationFrame",n=>{ke(n,"request","cancel","AnimationFrame"),ke(n,"mozRequest","mozCancel","AnimationFrame"),ke(n,"webkitRequest","webkitCancel","AnimationFrame")}),t.__load_patch("blocking",(n,a)=>{let e=["alert","prompt","confirm"];for(let c=0;cfunction(w,_){return a.current.run(g,n,_,y)})}}),t.__load_patch("EventTarget",(n,a,e)=>{wt(n,e),Ct(n,e);let c=n.XMLHttpRequestEventTarget;c&&c.prototype&&e.patchEventTarget(n,e,[c.prototype])}),t.__load_patch("MutationObserver",(n,a,e)=>{ye("MutationObserver"),ye("WebKitMutationObserver")}),t.__load_patch("IntersectionObserver",(n,a,e)=>{ye("IntersectionObserver")}),t.__load_patch("FileReader",(n,a,e)=>{ye("FileReader")}),t.__load_patch("on_property",(n,a,e)=>{Dt(e,n)}),t.__load_patch("customElements",(n,a,e)=>{Rt(n,e)}),t.__load_patch("XHR",(n,a)=>{w(n);let e=j("xhrTask"),c=j("xhrSync"),f=j("xhrListener"),g=j("xhrScheduled"),T=j("xhrURL"),y=j("xhrErrorBeforeScheduled");function w(_){let P=_.XMLHttpRequest;if(!P)return;let L=P.prototype;function H(R){return R[e]}let z=L[Ne],$=L[Ze];if(!z){let R=_.XMLHttpRequestEventTarget;if(R){let b=R.prototype;z=b[Ne],$=b[Ze]}}let J="readystatechange",q="scheduled";function p(R){let b=R.data,D=b.target;D[g]=!1,D[y]=!1;let K=D[f];z||(z=D[Ne],$=D[Ze]),K&&$.call(D,J,K);let W=D[f]=()=>{if(D.readyState===D.DONE)if(!b.aborted&&D[g]&&R.state===q){let s=D[a.__symbol__("loadfalse")];if(D.status!==0&&s&&s.length>0){let i=R.invoke;R.invoke=function(){let r=D[a.__symbol__("loadfalse")];for(let E=0;Efunction(R,b){return R[c]=b[2]==!1,R[T]=b[1],V.apply(R,b)}),X="XMLHttpRequest.send",F=j("fetchTaskAborting"),k=j("fetchTaskScheduling"),U=ue(L,"send",()=>function(R,b){if(a.current[k]===!0||R[c])return U.apply(R,b);{let D={target:R,url:R[T],isPeriodic:!1,args:b,aborted:!1},K=xe(X,d,D,p,A);R&&R[y]===!0&&!D.aborted&&K.state===q&&K.invoke()}}),S=ue(L,"abort",()=>function(R,b){let D=H(R);if(D&&typeof D.type=="string"){if(D.cancelFn==null||D.data&&D.data.aborted)return;D.zone.cancelTask(D)}else if(a.current[F]===!0)return S.apply(R,b)})}}),t.__load_patch("geolocation",n=>{n.navigator&&n.navigator.geolocation&>(n.navigator.geolocation,["getCurrentPosition","watchPosition"])}),t.__load_patch("PromiseRejectionEvent",(n,a)=>{function e(c){return function(f){at(n,c).forEach(T=>{let y=n.PromiseRejectionEvent;if(y){let w=new y(c,{promise:f.promise,reason:f.rejection});T.invoke(w)}})}}n.PromiseRejectionEvent&&(a[j("unhandledPromiseRejectionHandler")]=e("unhandledrejection"),a[j("rejectionHandledHandler")]=e("rejectionhandled"))}),t.__load_patch("queueMicrotask",(n,a,e)=>{Pt(n,e)})}function Ot(t){t.__load_patch("ZoneAwarePromise",(n,a,e)=>{let c=Object.getOwnPropertyDescriptor,f=Object.defineProperty;function g(h){if(h&&h.toString===Object.prototype.toString){let l=h.constructor&&h.constructor.name;return(l||"")+": "+JSON.stringify(h)}return h?h.toString():Object.prototype.toString.call(h)}let T=e.symbol,y=[],w=n[T("DISABLE_WRAPPING_UNCAUGHT_PROMISE_REJECTION")]!==!1,_=T("Promise"),P=T("then"),L="__creationTrace__";e.onUnhandledError=h=>{if(e.showUncaughtError()){let l=h&&h.rejection;l?console.error("Unhandled Promise rejection:",l instanceof Error?l.message:l,"; Zone:",h.zone.name,"; Task:",h.task&&h.task.source,"; Value:",l,l instanceof Error?l.stack:void 0):console.error(h)}},e.microtaskDrainDone=()=>{for(;y.length;){let h=y.shift();try{h.zone.runGuarded(()=>{throw h.throwOriginal?h.rejection:h})}catch(l){z(l)}}};let H=T("unhandledPromiseRejectionHandler");function z(h){e.onUnhandledError(h);try{let l=a[H];typeof l=="function"&&l.call(this,h)}catch{}}function $(h){return h&&typeof h.then=="function"}function J(h){return h}function q(h){return M.reject(h)}let p=T("state"),d=T("value"),A=T("finally"),V=T("parentPromiseValue"),X=T("parentPromiseState"),F="Promise.then",k=null,U=!0,S=!1,R=0;function b(h,l){return o=>{try{I(h,l,o)}catch(u){I(h,!1,u)}}}let D=function(){let h=!1;return function(o){return function(){h||(h=!0,o.apply(null,arguments))}}},K="Promise resolved with itself",W=T("currentTaskTrace");function I(h,l,o){let u=D();if(h===o)throw new TypeError(K);if(h[p]===k){let v=null;try{(typeof o=="object"||typeof o=="function")&&(v=o&&o.then)}catch(C){return u(()=>{I(h,!1,C)})(),h}if(l!==S&&o instanceof M&&o.hasOwnProperty(p)&&o.hasOwnProperty(d)&&o[p]!==k)i(o),I(h,o[p],o[d]);else if(l!==S&&typeof v=="function")try{v.call(o,u(b(h,l)),u(b(h,!1)))}catch(C){u(()=>{I(h,!1,C)})()}else{h[p]=l;let C=h[d];if(h[d]=o,h[A]===A&&l===U&&(h[p]=h[X],h[d]=h[V]),l===S&&o instanceof Error){let m=a.currentTask&&a.currentTask.data&&a.currentTask.data[L];m&&f(o,W,{configurable:!0,enumerable:!1,writable:!0,value:m})}for(let m=0;m{try{let O=h[d],N=!!o&&A===o[A];N&&(o[V]=O,o[X]=C);let Z=l.run(m,void 0,N&&m!==q&&m!==J?[]:[O]);I(o,!0,Z)}catch(O){I(o,!1,O)}},o)}let E="function ZoneAwarePromise() { [native code] }",x=function(){},ee=n.AggregateError;class M{static toString(){return E}static resolve(l){return l instanceof M?l:I(new this(null),U,l)}static reject(l){return I(new this(null),S,l)}static withResolvers(){let l={};return l.promise=new M((o,u)=>{l.resolve=o,l.reject=u}),l}static any(l){if(!l||typeof l[Symbol.iterator]!="function")return Promise.reject(new ee([],"All promises were rejected"));let o=[],u=0;try{for(let m of l)u++,o.push(M.resolve(m))}catch{return Promise.reject(new ee([],"All promises were rejected"))}if(u===0)return Promise.reject(new ee([],"All promises were rejected"));let v=!1,C=[];return new M((m,O)=>{for(let N=0;N{v||(v=!0,m(Z))},Z=>{C.push(Z),u--,u===0&&(v=!0,O(new ee(C,"All promises were rejected")))})})}static race(l){let o,u,v=new this((O,N)=>{o=O,u=N});function C(O){o(O)}function m(O){u(O)}for(let O of l)$(O)||(O=this.resolve(O)),O.then(C,m);return v}static all(l){return M.allWithCallback(l)}static allSettled(l){return(this&&this.prototype instanceof M?this:M).allWithCallback(l,{thenCallback:u=>({status:"fulfilled",value:u}),errorCallback:u=>({status:"rejected",reason:u})})}static allWithCallback(l,o){let u,v,C=new this((Z,G)=>{u=Z,v=G}),m=2,O=0,N=[];for(let Z of l){$(Z)||(Z=this.resolve(Z));let G=O;try{Z.then(B=>{N[G]=o?o.thenCallback(B):B,m--,m===0&&u(N)},B=>{o?(N[G]=o.errorCallback(B),m--,m===0&&u(N)):v(B)})}catch(B){v(B)}m++,O++}return m-=2,m===0&&u(N),C}constructor(l){let o=this;if(!(o instanceof M))throw new Error("Must be an instanceof Promise.");o[p]=k,o[d]=[];try{let u=D();l&&l(u(b(o,U)),u(b(o,S)))}catch(u){I(o,!1,u)}}get[Symbol.toStringTag](){return"Promise"}get[Symbol.species](){return M}then(l,o){let u=this.constructor?.[Symbol.species];(!u||typeof u!="function")&&(u=this.constructor||M);let v=new u(x),C=a.current;return this[p]==k?this[d].push(C,v,l,o):r(this,C,v,l,o),v}catch(l){return this.then(null,l)}finally(l){let o=this.constructor?.[Symbol.species];(!o||typeof o!="function")&&(o=M);let u=new o(x);u[A]=A;let v=a.current;return this[p]==k?this[d].push(v,u,l,l):r(this,v,u,l,l),u}}M.resolve=M.resolve,M.reject=M.reject,M.race=M.race,M.all=M.all;let he=n[_]=n.Promise;n.Promise=M;let _e=T("thenPatched");function Q(h){let l=h.prototype,o=c(l,"then");if(o&&(o.writable===!1||!o.configurable))return;let u=l.then;l[P]=u,h.prototype.then=function(v,C){return new M((O,N)=>{u.call(this,O,N)}).then(v,C)},h[_e]=!0}e.patchThen=Q;function Te(h){return function(l,o){let u=h.apply(l,o);if(u instanceof M)return u;let v=u.constructor;return v[_e]||Q(v),u}}return he&&(Q(he),ue(n,"fetch",h=>Te(h))),Promise[a.__symbol__("uncaughtPromiseErrors")]=y,M})}function Nt(t){t.__load_patch("toString",n=>{let a=Function.prototype.toString,e=j("OriginalDelegate"),c=j("Promise"),f=j("Error"),g=function(){if(typeof this=="function"){let _=this[e];if(_)return typeof _=="function"?a.call(_):Object.prototype.toString.call(_);if(this===Promise){let P=n[c];if(P)return a.call(P)}if(this===Error){let P=n[f];if(P)return a.call(P)}}return a.call(this)};g[e]=a,Function.prototype.toString=g;let T=Object.prototype.toString,y="[object Promise]";Object.prototype.toString=function(){return typeof Promise=="function"&&this instanceof Promise?y:T.call(this)}})}function Zt(t,n,a,e,c){let f=Zone.__symbol__(e);if(n[f])return;let g=n[f]=n[e];n[e]=function(T,y,w){return y&&y.prototype&&c.forEach(function(_){let P=`${a}.${e}::`+_,L=y.prototype;try{if(L.hasOwnProperty(_)){let H=t.ObjectGetOwnPropertyDescriptor(L,_);H&&H.value?(H.value=t.wrapWithCurrentZone(H.value,P),t._redefineProperty(y.prototype,_,H)):L[_]&&(L[_]=t.wrapWithCurrentZone(L[_],P))}else L[_]&&(L[_]=t.wrapWithCurrentZone(L[_],P))}catch{}}),g.call(n,T,y,w)},t.attachOriginToPatched(n[e],g)}function Lt(t){t.__load_patch("util",(n,a,e)=>{let c=Ie(n);e.patchOnProperties=rt,e.patchMethod=ue,e.bindArguments=Fe,e.patchMacroTask=mt;let f=a.__symbol__("BLACK_LISTED_EVENTS"),g=a.__symbol__("UNPATCHED_EVENTS");n[g]&&(n[f]=n[g]),n[f]&&(a[f]=a[g]=n[f]),e.patchEventPrototype=bt,e.patchEventTarget=vt,e.isIEOrEdge=yt,e.ObjectDefineProperty=Me,e.ObjectGetOwnPropertyDescriptor=pe,e.ObjectCreate=_t,e.ArraySlice=Tt,e.patchClass=ye,e.wrapWithCurrentZone=Ve,e.filterProperties=lt,e.attachOriginToPatched=fe,e._redefineProperty=Object.defineProperty,e.patchCallbacks=Zt,e.getGlobalObjects=()=>({globalSources:ot,zoneSymbolEventNames:ne,eventNames:c,isBrowser:Ge,isMix:nt,isNode:De,TRUE_STR:ae,FALSE_STR:le,ZONE_SYMBOL_PREFIX:ve,ADD_EVENT_LISTENER_STR:je,REMOVE_EVENT_LISTENER_STR:He})})}function It(t){Ot(t),Nt(t),Lt(t)}var ut=dt();It(ut);St(ut); diff --git a/electron/dist/frontend/browser/rdf-icon.png b/electron/dist/frontend/browser/rdf-icon.png new file mode 100644 index 00000000..6926fe8f Binary files /dev/null and b/electron/dist/frontend/browser/rdf-icon.png differ diff --git a/electron/dist/frontend/browser/styles-C5RNEBXT.css b/electron/dist/frontend/browser/styles-C5RNEBXT.css new file mode 100644 index 00000000..730193f4 --- /dev/null +++ b/electron/dist/frontend/browser/styles-C5RNEBXT.css @@ -0,0 +1 @@ +@charset "UTF-8";html{--mat-sys-background: #faf9fd;--mat-sys-error: #ba1a1a;--mat-sys-error-container: #ffdad6;--mat-sys-inverse-on-surface: #f2f0f4;--mat-sys-inverse-primary: #abc7ff;--mat-sys-inverse-surface: #2f3033;--mat-sys-on-background: #1a1b1f;--mat-sys-on-error: #ffffff;--mat-sys-on-error-container: #93000a;--mat-sys-on-primary: #ffffff;--mat-sys-on-primary-container: #00458f;--mat-sys-on-primary-fixed: #001b3f;--mat-sys-on-primary-fixed-variant: #00458f;--mat-sys-on-secondary: #ffffff;--mat-sys-on-secondary-container: #3e4759;--mat-sys-on-secondary-fixed: #131c2b;--mat-sys-on-secondary-fixed-variant: #3e4759;--mat-sys-on-surface: #1a1b1f;--mat-sys-on-surface-variant: #44474e;--mat-sys-on-tertiary: #ffffff;--mat-sys-on-tertiary-container: #0000ef;--mat-sys-on-tertiary-fixed: #00006e;--mat-sys-on-tertiary-fixed-variant: #0000ef;--mat-sys-outline: #74777f;--mat-sys-outline-variant: #c4c6d0;--mat-sys-primary: #005cbb;--mat-sys-primary-container: #d7e3ff;--mat-sys-primary-fixed: #d7e3ff;--mat-sys-primary-fixed-dim: #abc7ff;--mat-sys-scrim: #000000;--mat-sys-secondary: #565e71;--mat-sys-secondary-container: #dae2f9;--mat-sys-secondary-fixed: #dae2f9;--mat-sys-secondary-fixed-dim: #bec6dc;--mat-sys-shadow: #000000;--mat-sys-surface: #faf9fd;--mat-sys-surface-bright: #faf9fd;--mat-sys-surface-container: #efedf0;--mat-sys-surface-container-high: #e9e7eb;--mat-sys-surface-container-highest: #e3e2e6;--mat-sys-surface-container-low: #f4f3f6;--mat-sys-surface-container-lowest: #ffffff;--mat-sys-surface-dim: #dbd9dd;--mat-sys-surface-tint: #005cbb;--mat-sys-surface-variant: #e0e2ec;--mat-sys-tertiary: #343dff;--mat-sys-tertiary-container: #e0e0ff;--mat-sys-tertiary-fixed: #e0e0ff;--mat-sys-tertiary-fixed-dim: #bec2ff;--mat-sys-neutral-variant20: #2d3038;--mat-sys-neutral10: #1a1b1f}html{--mat-sys-level0: 0px 0px 0px 0px rgba(0, 0, 0, .2), 0px 0px 0px 0px rgba(0, 0, 0, .14), 0px 0px 0px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level1: 0px 2px 1px -1px rgba(0, 0, 0, .2), 0px 1px 1px 0px rgba(0, 0, 0, .14), 0px 1px 3px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level2: 0px 3px 3px -2px rgba(0, 0, 0, .2), 0px 3px 4px 0px rgba(0, 0, 0, .14), 0px 1px 8px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level3: 0px 3px 5px -1px rgba(0, 0, 0, .2), 0px 6px 10px 0px rgba(0, 0, 0, .14), 0px 1px 18px 0px rgba(0, 0, 0, .12)}html{--mat-sys-level4: 0px 5px 5px -3px rgba(0, 0, 0, .2), 0px 8px 10px 1px rgba(0, 0, 0, .14), 0px 3px 14px 2px rgba(0, 0, 0, .12)}html{--mat-sys-level5: 0px 7px 8px -4px rgba(0, 0, 0, .2), 0px 12px 17px 2px rgba(0, 0, 0, .14), 0px 5px 22px 4px rgba(0, 0, 0, .12)}html{--mat-sys-body-large: 400 1rem / 1.5rem Roboto;--mat-sys-body-large-font: Roboto;--mat-sys-body-large-line-height: 1.5rem;--mat-sys-body-large-size: 1rem;--mat-sys-body-large-tracking: .031rem;--mat-sys-body-large-weight: 400;--mat-sys-body-medium: 400 .875rem / 1.25rem Roboto;--mat-sys-body-medium-font: Roboto;--mat-sys-body-medium-line-height: 1.25rem;--mat-sys-body-medium-size: .875rem;--mat-sys-body-medium-tracking: .016rem;--mat-sys-body-medium-weight: 400;--mat-sys-body-small: 400 .75rem / 1rem Roboto;--mat-sys-body-small-font: Roboto;--mat-sys-body-small-line-height: 1rem;--mat-sys-body-small-size: .75rem;--mat-sys-body-small-tracking: .025rem;--mat-sys-body-small-weight: 400;--mat-sys-display-large: 400 3.562rem / 4rem Roboto;--mat-sys-display-large-font: Roboto;--mat-sys-display-large-line-height: 4rem;--mat-sys-display-large-size: 3.562rem;--mat-sys-display-large-tracking: -.016rem;--mat-sys-display-large-weight: 400;--mat-sys-display-medium: 400 2.812rem / 3.25rem Roboto;--mat-sys-display-medium-font: Roboto;--mat-sys-display-medium-line-height: 3.25rem;--mat-sys-display-medium-size: 2.812rem;--mat-sys-display-medium-tracking: 0;--mat-sys-display-medium-weight: 400;--mat-sys-display-small: 400 2.25rem / 2.75rem Roboto;--mat-sys-display-small-font: Roboto;--mat-sys-display-small-line-height: 2.75rem;--mat-sys-display-small-size: 2.25rem;--mat-sys-display-small-tracking: 0;--mat-sys-display-small-weight: 400;--mat-sys-headline-large: 400 2rem / 2.5rem Roboto;--mat-sys-headline-large-font: Roboto;--mat-sys-headline-large-line-height: 2.5rem;--mat-sys-headline-large-size: 2rem;--mat-sys-headline-large-tracking: 0;--mat-sys-headline-large-weight: 400;--mat-sys-headline-medium: 400 1.75rem / 2.25rem Roboto;--mat-sys-headline-medium-font: Roboto;--mat-sys-headline-medium-line-height: 2.25rem;--mat-sys-headline-medium-size: 1.75rem;--mat-sys-headline-medium-tracking: 0;--mat-sys-headline-medium-weight: 400;--mat-sys-headline-small: 400 1.5rem / 2rem Roboto;--mat-sys-headline-small-font: Roboto;--mat-sys-headline-small-line-height: 2rem;--mat-sys-headline-small-size: 1.5rem;--mat-sys-headline-small-tracking: 0;--mat-sys-headline-small-weight: 400;--mat-sys-label-large: 500 .875rem / 1.25rem Roboto;--mat-sys-label-large-font: Roboto;--mat-sys-label-large-line-height: 1.25rem;--mat-sys-label-large-size: .875rem;--mat-sys-label-large-tracking: .006rem;--mat-sys-label-large-weight: 500;--mat-sys-label-large-weight-prominent: 700;--mat-sys-label-medium: 500 .75rem / 1rem Roboto;--mat-sys-label-medium-font: Roboto;--mat-sys-label-medium-line-height: 1rem;--mat-sys-label-medium-size: .75rem;--mat-sys-label-medium-tracking: .031rem;--mat-sys-label-medium-weight: 500;--mat-sys-label-medium-weight-prominent: 700;--mat-sys-label-small: 500 .688rem / 1rem Roboto;--mat-sys-label-small-font: Roboto;--mat-sys-label-small-line-height: 1rem;--mat-sys-label-small-size: .688rem;--mat-sys-label-small-tracking: .031rem;--mat-sys-label-small-weight: 500;--mat-sys-title-large: 400 1.375rem / 1.75rem Roboto;--mat-sys-title-large-font: Roboto;--mat-sys-title-large-line-height: 1.75rem;--mat-sys-title-large-size: 1.375rem;--mat-sys-title-large-tracking: 0;--mat-sys-title-large-weight: 400;--mat-sys-title-medium: 500 1rem / 1.5rem Roboto;--mat-sys-title-medium-font: Roboto;--mat-sys-title-medium-line-height: 1.5rem;--mat-sys-title-medium-size: 1rem;--mat-sys-title-medium-tracking: .009rem;--mat-sys-title-medium-weight: 500;--mat-sys-title-small: 500 .875rem / 1.25rem Roboto;--mat-sys-title-small-font: Roboto;--mat-sys-title-small-line-height: 1.25rem;--mat-sys-title-small-size: .875rem;--mat-sys-title-small-tracking: .006rem;--mat-sys-title-small-weight: 500}html{--mat-sys-corner-extra-large: 28px;--mat-sys-corner-extra-large-top: 28px 28px 0 0;--mat-sys-corner-extra-small: 4px;--mat-sys-corner-extra-small-top: 4px 4px 0 0;--mat-sys-corner-full: 9999px;--mat-sys-corner-large: 16px;--mat-sys-corner-large-end: 0 16px 16px 0;--mat-sys-corner-large-start: 16px 0 0 16px;--mat-sys-corner-large-top: 16px 16px 0 0;--mat-sys-corner-medium: 12px;--mat-sys-corner-none: 0;--mat-sys-corner-small: 8px}html{--mat-sys-dragged-state-layer-opacity: .16;--mat-sys-focus-state-layer-opacity: .12;--mat-sys-hover-state-layer-opacity: .08;--mat-sys-pressed-state-layer-opacity: .12}@layer properties;@layer theme,base,components,utilities;@layer theme{:root,:host{--font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50: oklch(97.1% .013 17.38);--color-red-100: oklch(93.6% .032 17.717);--color-red-200: oklch(88.5% .062 18.334);--color-red-300: oklch(80.8% .114 19.571);--color-red-400: oklch(70.4% .191 22.216);--color-red-500: oklch(63.7% .237 25.331);--color-red-600: oklch(57.7% .245 27.325);--color-red-700: oklch(50.5% .213 27.518);--color-red-800: oklch(44.4% .177 26.899);--color-red-900: oklch(39.6% .141 25.723);--color-orange-600: oklch(64.6% .222 41.116);--color-orange-700: oklch(55.3% .195 38.402);--color-amber-50: oklch(98.7% .022 95.277);--color-amber-200: oklch(92.4% .12 95.746);--color-amber-700: oklch(55.5% .163 48.998);--color-green-50: oklch(98.2% .018 155.826);--color-green-100: oklch(96.2% .044 156.743);--color-green-200: oklch(92.5% .084 155.995);--color-green-400: oklch(79.2% .209 151.711);--color-green-500: oklch(72.3% .219 149.579);--color-green-600: oklch(62.7% .194 149.214);--color-green-700: oklch(52.7% .154 150.069);--color-green-800: oklch(44.8% .119 151.328);--color-green-900: oklch(39.3% .095 152.535);--color-blue-50: oklch(97% .014 254.604);--color-blue-100: oklch(93.2% .032 255.585);--color-blue-200: oklch(88.2% .059 254.128);--color-blue-300: oklch(80.9% .105 251.813);--color-blue-400: oklch(70.7% .165 254.624);--color-blue-500: oklch(62.3% .214 259.815);--color-blue-600: oklch(54.6% .245 262.881);--color-blue-700: oklch(48.8% .243 264.376);--color-blue-800: oklch(42.4% .199 265.638);--color-blue-900: oklch(37.9% .146 265.522);--color-indigo-500: oklch(58.5% .233 277.117);--color-indigo-600: oklch(51.1% .262 276.966);--color-indigo-700: oklch(45.7% .24 277.023);--color-purple-50: oklch(97.7% .014 308.299);--color-purple-100: oklch(94.6% .033 307.174);--color-purple-200: oklch(90.2% .063 306.703);--color-purple-600: oklch(55.8% .288 302.321);--color-purple-700: oklch(49.6% .265 301.924);--color-purple-800: oklch(43.8% .218 303.724);--color-purple-900: oklch(38.1% .176 304.987);--color-gray-50: oklch(98.5% .002 247.839);--color-gray-100: oklch(96.7% .003 264.542);--color-gray-200: oklch(92.8% .006 264.531);--color-gray-300: oklch(87.2% .01 258.338);--color-gray-400: oklch(70.7% .022 261.325);--color-gray-500: oklch(55.1% .027 264.364);--color-gray-600: oklch(44.6% .03 256.802);--color-gray-700: oklch(37.3% .034 259.733);--color-gray-800: oklch(27.8% .033 256.848);--color-gray-900: oklch(21% .034 264.665);--color-black: #000;--color-white: #fff;--spacing: .25rem;--container-xs: 20rem;--container-md: 28rem;--container-lg: 32rem;--container-5xl: 64rem;--text-xs: .75rem;--text-xs--line-height: calc(1 / .75);--text-sm: .875rem;--text-sm--line-height: calc(1.25 / .875);--text-lg: 1.125rem;--text-lg--line-height: calc(1.75 / 1.125);--text-xl: 1.25rem;--text-xl--line-height: calc(1.75 / 1.25);--text-2xl: 1.5rem;--text-2xl--line-height: calc(2 / 1.5);--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--tracking-tight: -.025em;--tracking-wider: .05em;--leading-relaxed: 1.625;--radius-md: .375rem;--radius-lg: .5rem;--radius-xl: .75rem;--radius-2xl: 1rem;--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--animate-spin: spin 1s linear infinite;--animate-pulse: pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm: 8px;--blur-md: 12px;--default-transition-duration: .15s;--default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);--default-font-family: var(--font-sans);--default-mono-font-family: var(--font-mono)}}@layer base{*,:after,:before,::backdrop,::file-selector-button{box-sizing:border-box;margin:0;padding:0;border:0 solid}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;tab-size:4;font-family:var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings, normal);font-variation-settings:var(--default-font-variation-settings, normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings, normal);font-variation-settings:var(--default-mono-font-variation-settings, normal);font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea,::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;border-radius:0;background-color:transparent;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px){::placeholder{color:currentcolor;@supports (color: color-mix(in lab,red,red)){color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]),::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer utilities{.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.top-1\/2{top:50%}.top-4{top:calc(var(--spacing) * 4)}.right-0{right:calc(var(--spacing) * 0)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.left-3{left:calc(var(--spacing) * 3)}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.z-\[9999\]{z-index:9999}.m-0{margin:calc(var(--spacing) * 0)}.m-2{margin:calc(var(--spacing) * 2)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-auto{margin-inline:auto}.my-4\!{margin-block:calc(var(--spacing) * 4)!important}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-2\!{margin-left:calc(var(--spacing) * 2)!important}.ml-3{margin-left:calc(var(--spacing) * 3)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-16{height:calc(var(--spacing) * 16)}.h-20{height:calc(var(--spacing) * 20)}.h-\[500px\]{height:500px}.h-full{height:100%}.h-full\!{height:100%!important}.h-screen{height:100vh}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[400px\]{max-height:400px}.max-h-\[600px\]{max-height:600px}.max-h-\[calc\(90vh-100px\)\]{max-height:calc(90vh - 100px)}.min-h-\[200px\]{min-height:200px}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-12{width:calc(var(--spacing) * 12)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-56{width:calc(var(--spacing) * 56)}.w-64{width:calc(var(--spacing) * 64)}.w-80{width:calc(var(--spacing) * 80)}.w-96{width:calc(var(--spacing) * 96)}.w-200\!{width:calc(var(--spacing) * 200)!important}.w-\[35\%\]{width:35%}.w-\[85\%\]\!{width:85%!important}.w-fit{width:fit-content}.w-full{width:100%}.max-w-5xl{max-width:var(--container-5xl)}.max-w-\[70\%\]{max-width:70%}.max-w-\[120px\]{max-width:120px}.max-w-\[1200px\]{max-width:1200px}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.flex-\[1\.5\]{flex:1.5}.flex-shrink-0,.shrink-0{flex-shrink:0}.table-fixed{table-layout:fixed}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-pointer\!{cursor:pointer!important}.resize-none{resize:none}.resize-y{resize:vertical}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\!{gap:calc(var(--spacing) * 2)!important}.gap-3{gap:calc(var(--spacing) * 3)}.gap-3\!{gap:calc(var(--spacing) * 3)!important}.gap-4{gap:calc(var(--spacing) * 4)}.gap-4\!{gap:calc(var(--spacing) * 4)!important}.gap-6{gap:calc(var(--spacing) * 6)}.space-y-0\.5{:where(&>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}}.space-y-1{:where(&>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}}.space-y-2{:where(&>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}}.space-y-3{:where(&>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}}.space-y-4{:where(&>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}}.space-y-5{:where(&>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}}.space-y-6{:where(&>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}}.divide-y{:where(&>:not(:last-child)){--tw-divide-y-reverse: 0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}}.divide-gray-200{:where(&>:not(:last-child)){border-color:var(--color-gray-200)}}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-y-scroll{overflow-y:scroll}.\!rounded-lg{border-radius:var(--radius-lg)!important}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:calc(infinity * 1px)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-2xl{border-top-left-radius:var(--radius-2xl);border-top-right-radius:var(--radius-2xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-2{border-top-style:var(--tw-border-style);border-top-width:2px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-3{border-left-style:var(--tw-border-style);border-left-width:3px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.\!border-none{--tw-border-style: none !important;border-style:none!important}.border-dashed{--tw-border-style: dashed;border-style:dashed}.border-none{--tw-border-style: none;border-style:none}.border-amber-200{border-color:var(--color-amber-200)}.border-blue-100{border-color:var(--color-blue-100)}.border-blue-200{border-color:var(--color-blue-200)}.border-blue-300{border-color:var(--color-blue-300)}.border-blue-400{border-color:var(--color-blue-400)}.border-blue-600{border-color:var(--color-blue-600)}.border-blue-700{border-color:var(--color-blue-700)}.border-gray-100{border-color:var(--color-gray-100)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-green-200{border-color:var(--color-green-200)}.border-green-400\/30{border-color:color-mix(in srgb,oklch(79.2% .209 151.711) 30%,transparent);@supports (color: color-mix(in lab,red,red)){border-color:color-mix(in oklab,var(--color-green-400) 30%,transparent)}}.border-purple-200{border-color:var(--color-purple-200)}.border-red-200{border-color:var(--color-red-200)}.border-red-300{border-color:var(--color-red-300)}.border-l-blue-500{border-left-color:var(--color-blue-500)}.border-l-green-500{border-left-color:var(--color-green-500)}.\!bg-gray-50{background-color:var(--color-gray-50)!important}.bg-amber-50{background-color:var(--color-amber-50)}.bg-black\/50{background-color:color-mix(in srgb,#000 50%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-600{background-color:var(--color-blue-600)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-50\/50{background-color:color-mix(in srgb,oklch(98.5% .002 247.839) 50%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-gray-50) 50%,transparent)}}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-900{background-color:var(--color-gray-900)}.bg-green-50{background-color:var(--color-green-50)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-400{background-color:var(--color-green-400)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-500\/20{background-color:color-mix(in srgb,oklch(72.3% .219 149.579) 20%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-green-500) 20%,transparent)}}.bg-green-600{background-color:var(--color-green-600)}.bg-indigo-600{background-color:var(--color-indigo-600)}.bg-orange-600{background-color:var(--color-orange-600)}.bg-purple-50{background-color:var(--color-purple-50)}.bg-purple-100{background-color:var(--color-purple-100)}.bg-purple-600{background-color:var(--color-purple-600)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-600{background-color:var(--color-red-600)}.bg-transparent{background-color:transparent}.bg-white{background-color:var(--color-white)}.bg-white\/10{background-color:color-mix(in srgb,#fff 10%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.bg-white\/20{background-color:color-mix(in srgb,#fff 20%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-white) 20%,transparent)}}.bg-gradient-to-br{--tw-gradient-position: to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position: to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-blue-50{--tw-gradient-from: var(--color-blue-50);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-blue-500{--tw-gradient-from: var(--color-blue-500);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-blue-600{--tw-gradient-from: var(--color-blue-600);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-blue-900{--tw-gradient-from: var(--color-blue-900);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-gray-50{--tw-gradient-from: var(--color-gray-50);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-green-500{--tw-gradient-from: var(--color-green-500);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-red-500{--tw-gradient-from: var(--color-red-500);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-blue-100{--tw-gradient-to: var(--color-blue-100);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-blue-600{--tw-gradient-to: var(--color-blue-600);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-blue-700{--tw-gradient-to: var(--color-blue-700);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-gray-100{--tw-gradient-to: var(--color-gray-100);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-green-600{--tw-gradient-to: var(--color-green-600);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-red-600{--tw-gradient-to: var(--color-red-600);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-white{--tw-gradient-to: var(--color-white);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.p-0\!{padding:calc(var(--spacing) * 0)!important}.p-1{padding:calc(var(--spacing) * 1)}.p-1\!{padding:calc(var(--spacing) * 1)!important}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\!{padding:calc(var(--spacing) * 2)!important}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-3\!{padding:calc(var(--spacing) * 3)!important}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-5\!{padding:calc(var(--spacing) * 5)!important}.p-6{padding:calc(var(--spacing) * 6)}.p-12{padding:calc(var(--spacing) * 12)}.\!px-3{padding-inline:calc(var(--spacing) * 3)!important}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-4\!{padding-inline:calc(var(--spacing) * 4)!important}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.\!py-2{padding-block:calc(var(--spacing) * 2)!important}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-3\!{padding-block:calc(var(--spacing) * 3)!important}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-16{padding-block:calc(var(--spacing) * 16)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pr-10{padding-right:calc(var(--spacing) * 10)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pl-9{padding-left:calc(var(--spacing) * 9)}.pl-10{padding-left:calc(var(--spacing) * 10)}.text-center{text-align:center}.text-center\!{text-align:center!important}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading, var(--text-2xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading, var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading, var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading, var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading, var(--text-xs--line-height))}.leading-none{--tw-leading: 1;line-height:1}.leading-relaxed{--tw-leading: var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight: var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight: var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight: var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking: var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wider{--tw-tracking: var(--tracking-wider);letter-spacing:var(--tracking-wider)}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-700{color:var(--color-amber-700)}.text-blue-100{color:var(--color-blue-100)}.text-blue-300{color:var(--color-blue-300)}.text-blue-400{color:var(--color-blue-400)}.text-blue-500{color:var(--color-blue-500)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-green-600{color:var(--color-green-600)}.text-green-700{color:var(--color-green-700)}.text-purple-600{color:var(--color-purple-600)}.text-purple-700{color:var(--color-purple-700)}.text-purple-900{color:var(--color-purple-900)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-white{color:var(--color-white)}.text-white\/70{color:color-mix(in srgb,#fff 70%,transparent);@supports (color: color-mix(in lab,red,red)){color:color-mix(in oklab,var(--color-white) 70%,transparent)}}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.placeholder-gray-400{&::placeholder{color:var(--color-gray-400)}}.opacity-0{opacity:0%}.opacity-25{opacity:25%}.opacity-50{opacity:50%}.opacity-70{opacity:70%}.opacity-75{opacity:75%}.\!shadow-none{--tw-shadow: 0 0 #0000 !important;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)!important}.shadow-2xl{--tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, rgb(0 0 0 / .25));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-md{--tw-backdrop-blur: blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur: blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.duration-150{--tw-duration: .15s;transition-duration:.15s}.duration-200{--tw-duration: .2s;transition-duration:.2s}.duration-300{--tw-duration: .3s;transition-duration:.3s}.ease-in{--tw-ease: var(--ease-in);transition-timing-function:var(--ease-in)}.ease-out{--tw-ease: var(--ease-out);transition-timing-function:var(--ease-out)}.group-hover\:bg-blue-100{&:is(:where(.group):hover *){@media (hover: hover){background-color:var(--color-blue-100)}}}.group-hover\:text-blue-600{&:is(:where(.group):hover *){@media (hover: hover){color:var(--color-blue-600)}}}.group-hover\:text-gray-800{&:is(:where(.group):hover *){@media (hover: hover){color:var(--color-gray-800)}}}.group-hover\:text-gray-900{&:is(:where(.group):hover *){@media (hover: hover){color:var(--color-gray-900)}}}.group-hover\:opacity-100{&:is(:where(.group):hover *){@media (hover: hover){opacity:100%}}}.focus-within\:ring-2{&:focus-within{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus-within\:ring-blue-400{&:focus-within{--tw-ring-color: var(--color-blue-400)}}.hover\:scale-105{&:hover{@media (hover: hover){--tw-scale-x: 105%;--tw-scale-y: 105%;--tw-scale-z: 105%;scale:var(--tw-scale-x) var(--tw-scale-y)}}}.hover\:scale-110{&:hover{@media (hover: hover){--tw-scale-x: 110%;--tw-scale-y: 110%;--tw-scale-z: 110%;scale:var(--tw-scale-x) var(--tw-scale-y)}}}.hover\:border-blue-300{&:hover{@media (hover: hover){border-color:var(--color-blue-300)}}}.hover\:\!bg-gray-50{&:hover{@media (hover: hover){background-color:var(--color-gray-50)!important}}}.hover\:bg-blue-200{&:hover{@media (hover: hover){background-color:var(--color-blue-200)}}}.hover\:bg-blue-700{&:hover{@media (hover: hover){background-color:var(--color-blue-700)}}}.hover\:bg-gray-50{&:hover{@media (hover: hover){background-color:var(--color-gray-50)}}}.hover\:bg-gray-100{&:hover{@media (hover: hover){background-color:var(--color-gray-100)}}}.hover\:bg-gray-200{&:hover{@media (hover: hover){background-color:var(--color-gray-200)}}}.hover\:bg-green-700{&:hover{@media (hover: hover){background-color:var(--color-green-700)}}}.hover\:bg-indigo-700{&:hover{@media (hover: hover){background-color:var(--color-indigo-700)}}}.hover\:bg-orange-700{&:hover{@media (hover: hover){background-color:var(--color-orange-700)}}}.hover\:bg-purple-200{&:hover{@media (hover: hover){background-color:var(--color-purple-200)}}}.hover\:bg-purple-700{&:hover{@media (hover: hover){background-color:var(--color-purple-700)}}}.hover\:bg-red-50{&:hover{@media (hover: hover){background-color:var(--color-red-50)}}}.hover\:bg-red-100{&:hover{@media (hover: hover){background-color:var(--color-red-100)}}}.hover\:bg-red-700{&:hover{@media (hover: hover){background-color:var(--color-red-700)}}}.hover\:bg-white{&:hover{@media (hover: hover){background-color:var(--color-white)}}}.hover\:bg-white\/20{&:hover{@media (hover: hover){background-color:color-mix(in srgb,#fff 20%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-white) 20%,transparent)}}}}.hover\:bg-white\/30{&:hover{@media (hover: hover){background-color:color-mix(in srgb,#fff 30%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-white) 30%,transparent)}}}}.hover\:from-blue-600{&:hover{@media (hover: hover){--tw-gradient-from: var(--color-blue-600);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}}}.hover\:from-green-600{&:hover{@media (hover: hover){--tw-gradient-from: var(--color-green-600);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}}}.hover\:from-red-600{&:hover{@media (hover: hover){--tw-gradient-from: var(--color-red-600);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}}}.hover\:to-blue-700{&:hover{@media (hover: hover){--tw-gradient-to: var(--color-blue-700);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}}}.hover\:to-green-700{&:hover{@media (hover: hover){--tw-gradient-to: var(--color-green-700);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}}}.hover\:to-red-700{&:hover{@media (hover: hover){--tw-gradient-to: var(--color-red-700);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}}}.hover\:text-black{&:hover{@media (hover: hover){color:var(--color-black)}}}.hover\:text-blue-600{&:hover{@media (hover: hover){color:var(--color-blue-600)}}}.hover\:text-blue-700{&:hover{@media (hover: hover){color:var(--color-blue-700)}}}.hover\:text-blue-800{&:hover{@media (hover: hover){color:var(--color-blue-800)}}}.hover\:text-gray-600{&:hover{@media (hover: hover){color:var(--color-gray-600)}}}.hover\:text-gray-700{&:hover{@media (hover: hover){color:var(--color-gray-700)}}}.hover\:text-gray-900{&:hover{@media (hover: hover){color:var(--color-gray-900)}}}.hover\:text-purple-800{&:hover{@media (hover: hover){color:var(--color-purple-800)}}}.hover\:text-red-600{&:hover{@media (hover: hover){color:var(--color-red-600)}}}.hover\:text-red-800{&:hover{@media (hover: hover){color:var(--color-red-800)}}}.hover\:text-white{&:hover{@media (hover: hover){color:var(--color-white)}}}.hover\:shadow{&:hover{@media (hover: hover){--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}}.hover\:shadow-lg{&:hover{@media (hover: hover){--tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}}.hover\:shadow-md{&:hover{@media (hover: hover){--tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}}.focus\:border-blue-500{&:focus{border-color:var(--color-blue-500)}}.focus\:border-gray-200{&:focus{border-color:var(--color-gray-200)}}.focus\:border-transparent{&:focus{border-color:transparent}}.focus\:ring-0{&:focus{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\:ring-2{&:focus{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\:ring-blue-200{&:focus{--tw-ring-color: var(--color-blue-200)}}.focus\:ring-blue-400{&:focus{--tw-ring-color: var(--color-blue-400)}}.focus\:ring-blue-500{&:focus{--tw-ring-color: var(--color-blue-500)}}.focus\:ring-indigo-500{&:focus{--tw-ring-color: var(--color-indigo-500)}}.focus\:outline-none{&:focus{--tw-outline-style: none;outline-style:none}}.disabled\:cursor-not-allowed{&:disabled{cursor:not-allowed}}.disabled\:opacity-40{&:disabled{opacity:40%}}.disabled\:opacity-50{&:disabled{opacity:50%}}.disabled\:hover\:scale-100{&:disabled{&:hover{@media (hover: hover){--tw-scale-x: 100%;--tw-scale-y: 100%;--tw-scale-z: 100%;scale:var(--tw-scale-x) var(--tw-scale-y)}}}}.sm\:hidden{@media (width >= 40rem){display:none}}.sm\:inline{@media (width >= 40rem){display:inline}}.sm\:w-auto{@media (width >= 40rem){width:auto}}.sm\:flex-row{@media (width >= 40rem){flex-direction:row}}.sm\:items-center{@media (width >= 40rem){align-items:center}}.sm\:justify-between{@media (width >= 40rem){justify-content:space-between}}.sm\:p-6{@media (width >= 40rem){padding:calc(var(--spacing) * 6)}}.md\:col-span-2{@media (width >= 48rem){grid-column:span 2 / span 2}}.md\:block{@media (width >= 48rem){display:block}}.md\:hidden{@media (width >= 48rem){display:none}}.md\:grid-cols-2{@media (width >= 48rem){grid-template-columns:repeat(2,minmax(0,1fr))}}.dark\:border-gray-600{@media (prefers-color-scheme: dark){border-color:var(--color-gray-600)}}.dark\:border-gray-700{@media (prefers-color-scheme: dark){border-color:var(--color-gray-700)}}.dark\:border-gray-800{@media (prefers-color-scheme: dark){border-color:var(--color-gray-800)}}.dark\:border-green-800{@media (prefers-color-scheme: dark){border-color:var(--color-green-800)}}.dark\:border-red-800{@media (prefers-color-scheme: dark){border-color:var(--color-red-800)}}.dark\:bg-gray-700{@media (prefers-color-scheme: dark){background-color:var(--color-gray-700)}}.dark\:bg-gray-800{@media (prefers-color-scheme: dark){background-color:var(--color-gray-800)}}.dark\:bg-gray-800\/30{@media (prefers-color-scheme: dark){background-color:color-mix(in srgb,oklch(27.8% .033 256.848) 30%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-gray-800) 30%,transparent)}}}.dark\:bg-gray-900{@media (prefers-color-scheme: dark){background-color:var(--color-gray-900)}}.dark\:bg-green-900\/20{@media (prefers-color-scheme: dark){background-color:color-mix(in srgb,oklch(39.3% .095 152.535) 20%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-green-900) 20%,transparent)}}}.dark\:bg-red-900\/20{@media (prefers-color-scheme: dark){background-color:color-mix(in srgb,oklch(39.6% .141 25.723) 20%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-red-900) 20%,transparent)}}}.dark\:bg-white{@media (prefers-color-scheme: dark){background-color:var(--color-white)}}.dark\:text-gray-100{@media (prefers-color-scheme: dark){color:var(--color-gray-100)}}.dark\:text-gray-200{@media (prefers-color-scheme: dark){color:var(--color-gray-200)}}.dark\:text-gray-400{@media (prefers-color-scheme: dark){color:var(--color-gray-400)}}.dark\:text-gray-600{@media (prefers-color-scheme: dark){color:var(--color-gray-600)}}.dark\:text-gray-900{@media (prefers-color-scheme: dark){color:var(--color-gray-900)}}.dark\:text-green-400{@media (prefers-color-scheme: dark){color:var(--color-green-400)}}.dark\:text-red-400{@media (prefers-color-scheme: dark){color:var(--color-red-400)}}.dark\:placeholder-gray-600{@media (prefers-color-scheme: dark){&::placeholder{color:var(--color-gray-600)}}}.dark\:hover\:bg-gray-700{@media (prefers-color-scheme: dark){&:hover{@media (hover: hover){background-color:var(--color-gray-700)}}}}.dark\:hover\:bg-gray-800{@media (prefers-color-scheme: dark){&:hover{@media (hover: hover){background-color:var(--color-gray-800)}}}}.dark\:hover\:text-gray-200{@media (prefers-color-scheme: dark){&:hover{@media (hover: hover){color:var(--color-gray-200)}}}}}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x: 0;--tw-translate-y: 0;--tw-translate-z: 0;--tw-rotate-x: initial;--tw-rotate-y: initial;--tw-rotate-z: initial;--tw-skew-x: initial;--tw-skew-y: initial;--tw-space-y-reverse: 0;--tw-divide-y-reverse: 0;--tw-border-style: solid;--tw-gradient-position: initial;--tw-gradient-from: #0000;--tw-gradient-via: #0000;--tw-gradient-to: #0000;--tw-gradient-stops: initial;--tw-gradient-via-stops: initial;--tw-gradient-from-position: 0%;--tw-gradient-via-position: 50%;--tw-gradient-to-position: 100%;--tw-leading: initial;--tw-font-weight: initial;--tw-tracking: initial;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000;--tw-blur: initial;--tw-brightness: initial;--tw-contrast: initial;--tw-grayscale: initial;--tw-hue-rotate: initial;--tw-invert: initial;--tw-opacity: initial;--tw-saturate: initial;--tw-sepia: initial;--tw-drop-shadow: initial;--tw-drop-shadow-color: initial;--tw-drop-shadow-alpha: 100%;--tw-drop-shadow-size: initial;--tw-backdrop-blur: initial;--tw-backdrop-brightness: initial;--tw-backdrop-contrast: initial;--tw-backdrop-grayscale: initial;--tw-backdrop-hue-rotate: initial;--tw-backdrop-invert: initial;--tw-backdrop-opacity: initial;--tw-backdrop-saturate: initial;--tw-backdrop-sepia: initial;--tw-duration: initial;--tw-ease: initial;--tw-scale-x: 1;--tw-scale-y: 1;--tw-scale-z: 1}}}@layer properties;@layer theme,base,components,utilities;@layer theme{:root,:host{--font-sans: ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji";--font-mono: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;--color-red-50: oklch(97.1% .013 17.38);--color-red-100: oklch(93.6% .032 17.717);--color-red-200: oklch(88.5% .062 18.334);--color-red-300: oklch(80.8% .114 19.571);--color-red-400: oklch(70.4% .191 22.216);--color-red-500: oklch(63.7% .237 25.331);--color-red-600: oklch(57.7% .245 27.325);--color-red-700: oklch(50.5% .213 27.518);--color-red-800: oklch(44.4% .177 26.899);--color-red-900: oklch(39.6% .141 25.723);--color-orange-600: oklch(64.6% .222 41.116);--color-orange-700: oklch(55.3% .195 38.402);--color-amber-50: oklch(98.7% .022 95.277);--color-amber-200: oklch(92.4% .12 95.746);--color-amber-700: oklch(55.5% .163 48.998);--color-green-50: oklch(98.2% .018 155.826);--color-green-100: oklch(96.2% .044 156.743);--color-green-200: oklch(92.5% .084 155.995);--color-green-400: oklch(79.2% .209 151.711);--color-green-500: oklch(72.3% .219 149.579);--color-green-600: oklch(62.7% .194 149.214);--color-green-700: oklch(52.7% .154 150.069);--color-green-800: oklch(44.8% .119 151.328);--color-green-900: oklch(39.3% .095 152.535);--color-blue-50: oklch(97% .014 254.604);--color-blue-100: oklch(93.2% .032 255.585);--color-blue-200: oklch(88.2% .059 254.128);--color-blue-300: oklch(80.9% .105 251.813);--color-blue-400: oklch(70.7% .165 254.624);--color-blue-500: oklch(62.3% .214 259.815);--color-blue-600: oklch(54.6% .245 262.881);--color-blue-700: oklch(48.8% .243 264.376);--color-blue-800: oklch(42.4% .199 265.638);--color-blue-900: oklch(37.9% .146 265.522);--color-indigo-500: oklch(58.5% .233 277.117);--color-indigo-600: oklch(51.1% .262 276.966);--color-indigo-700: oklch(45.7% .24 277.023);--color-purple-50: oklch(97.7% .014 308.299);--color-purple-100: oklch(94.6% .033 307.174);--color-purple-200: oklch(90.2% .063 306.703);--color-purple-600: oklch(55.8% .288 302.321);--color-purple-700: oklch(49.6% .265 301.924);--color-purple-800: oklch(43.8% .218 303.724);--color-purple-900: oklch(38.1% .176 304.987);--color-gray-50: oklch(98.5% .002 247.839);--color-gray-100: oklch(96.7% .003 264.542);--color-gray-200: oklch(92.8% .006 264.531);--color-gray-300: oklch(87.2% .01 258.338);--color-gray-400: oklch(70.7% .022 261.325);--color-gray-500: oklch(55.1% .027 264.364);--color-gray-600: oklch(44.6% .03 256.802);--color-gray-700: oklch(37.3% .034 259.733);--color-gray-800: oklch(27.8% .033 256.848);--color-gray-900: oklch(21% .034 264.665);--color-black: #000;--color-white: #fff;--spacing: .25rem;--container-xs: 20rem;--container-md: 28rem;--container-lg: 32rem;--container-5xl: 64rem;--text-xs: .75rem;--text-xs--line-height: calc(1 / .75);--text-sm: .875rem;--text-sm--line-height: calc(1.25 / .875);--text-lg: 1.125rem;--text-lg--line-height: calc(1.75 / 1.125);--text-xl: 1.25rem;--text-xl--line-height: calc(1.75 / 1.25);--text-2xl: 1.5rem;--text-2xl--line-height: calc(2 / 1.5);--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--tracking-tight: -.025em;--tracking-wider: .05em;--leading-relaxed: 1.625;--radius-md: .375rem;--radius-lg: .5rem;--radius-xl: .75rem;--radius-2xl: 1rem;--ease-in: cubic-bezier(.4, 0, 1, 1);--ease-out: cubic-bezier(0, 0, .2, 1);--animate-spin: spin 1s linear infinite;--animate-pulse: pulse 2s cubic-bezier(.4, 0, .6, 1) infinite;--blur-sm: 8px;--blur-md: 12px;--default-transition-duration: .15s;--default-transition-timing-function: cubic-bezier(.4, 0, .2, 1);--default-font-family: var(--font-sans);--default-mono-font-family: var(--font-mono)}}@layer base{*,:after,:before,::backdrop,::file-selector-button{box-sizing:border-box;margin:0;padding:0;border:0 solid}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;tab-size:4;font-family:var(--default-font-family, ui-sans-serif, system-ui, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings, normal);font-variation-settings:var(--default-font-variation-settings, normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family, ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace);font-feature-settings:var(--default-mono-font-feature-settings, normal);font-variation-settings:var(--default-mono-font-variation-settings, normal);font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea,::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;border-radius:0;background-color:transparent;opacity:1}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not (-webkit-appearance: -apple-pay-button)) or (contain-intrinsic-size: 1px){::placeholder{color:currentcolor;@supports (color: color-mix(in lab,red,red)){color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit,::-webkit-datetime-edit-year-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]),::file-selector-button{appearance:button}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer utilities{.pointer-events-none{pointer-events:none}.invisible{visibility:hidden}.absolute{position:absolute}.fixed{position:fixed}.relative{position:relative}.static{position:static}.sticky{position:sticky}.inset-0{inset:calc(var(--spacing) * 0)}.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.top-0{top:calc(var(--spacing) * 0)}.top-1\/2{top:50%}.top-4{top:calc(var(--spacing) * 4)}.right-0{right:calc(var(--spacing) * 0)}.right-3{right:calc(var(--spacing) * 3)}.right-4{right:calc(var(--spacing) * 4)}.left-3{left:calc(var(--spacing) * 3)}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.z-\[9999\]{z-index:9999}.m-0{margin:calc(var(--spacing) * 0)}.m-2{margin:calc(var(--spacing) * 2)}.mx-4{margin-inline:calc(var(--spacing) * 4)}.mx-auto{margin-inline:auto}.my-4\!{margin-block:calc(var(--spacing) * 4)!important}.mt-0\.5{margin-top:calc(var(--spacing) * .5)}.mt-1{margin-top:calc(var(--spacing) * 1)}.mt-1\.5{margin-top:calc(var(--spacing) * 1.5)}.mt-2{margin-top:calc(var(--spacing) * 2)}.mt-3{margin-top:calc(var(--spacing) * 3)}.mt-4{margin-top:calc(var(--spacing) * 4)}.mt-6{margin-top:calc(var(--spacing) * 6)}.mt-8{margin-top:calc(var(--spacing) * 8)}.mr-1{margin-right:calc(var(--spacing) * 1)}.mr-1\.5{margin-right:calc(var(--spacing) * 1.5)}.mr-2{margin-right:calc(var(--spacing) * 2)}.mb-1{margin-bottom:calc(var(--spacing) * 1)}.mb-2{margin-bottom:calc(var(--spacing) * 2)}.mb-3{margin-bottom:calc(var(--spacing) * 3)}.mb-4{margin-bottom:calc(var(--spacing) * 4)}.mb-6{margin-bottom:calc(var(--spacing) * 6)}.ml-1{margin-left:calc(var(--spacing) * 1)}.ml-2{margin-left:calc(var(--spacing) * 2)}.ml-2\!{margin-left:calc(var(--spacing) * 2)!important}.ml-3{margin-left:calc(var(--spacing) * 3)}.block{display:block}.flex{display:flex}.grid{display:grid}.hidden{display:none}.inline{display:inline}.inline-flex{display:inline-flex}.table{display:table}.h-1\.5{height:calc(var(--spacing) * 1.5)}.h-2{height:calc(var(--spacing) * 2)}.h-3{height:calc(var(--spacing) * 3)}.h-3\.5{height:calc(var(--spacing) * 3.5)}.h-4{height:calc(var(--spacing) * 4)}.h-5{height:calc(var(--spacing) * 5)}.h-6{height:calc(var(--spacing) * 6)}.h-8{height:calc(var(--spacing) * 8)}.h-10{height:calc(var(--spacing) * 10)}.h-12{height:calc(var(--spacing) * 12)}.h-16{height:calc(var(--spacing) * 16)}.h-20{height:calc(var(--spacing) * 20)}.h-\[500px\]{height:500px}.h-full{height:100%}.h-full\!{height:100%!important}.h-screen{height:100vh}.max-h-96{max-height:calc(var(--spacing) * 96)}.max-h-\[400px\]{max-height:400px}.max-h-\[600px\]{max-height:600px}.max-h-\[calc\(90vh-100px\)\]{max-height:calc(90vh - 100px)}.min-h-\[200px\]{min-height:200px}.w-1\.5{width:calc(var(--spacing) * 1.5)}.w-2{width:calc(var(--spacing) * 2)}.w-3{width:calc(var(--spacing) * 3)}.w-3\.5{width:calc(var(--spacing) * 3.5)}.w-4{width:calc(var(--spacing) * 4)}.w-5{width:calc(var(--spacing) * 5)}.w-6{width:calc(var(--spacing) * 6)}.w-8{width:calc(var(--spacing) * 8)}.w-10{width:calc(var(--spacing) * 10)}.w-12{width:calc(var(--spacing) * 12)}.w-16{width:calc(var(--spacing) * 16)}.w-20{width:calc(var(--spacing) * 20)}.w-56{width:calc(var(--spacing) * 56)}.w-64{width:calc(var(--spacing) * 64)}.w-80{width:calc(var(--spacing) * 80)}.w-96{width:calc(var(--spacing) * 96)}.w-200\!{width:calc(var(--spacing) * 200)!important}.w-\[35\%\]{width:35%}.w-\[85\%\]\!{width:85%!important}.w-fit{width:fit-content}.w-full{width:100%}.max-w-5xl{max-width:var(--container-5xl)}.max-w-\[70\%\]{max-width:70%}.max-w-\[120px\]{max-width:120px}.max-w-\[1200px\]{max-width:1200px}.max-w-full{max-width:100%}.max-w-lg{max-width:var(--container-lg)}.max-w-md{max-width:var(--container-md)}.max-w-xs{max-width:var(--container-xs)}.min-w-0{min-width:calc(var(--spacing) * 0)}.flex-1{flex:1}.flex-\[1\.5\]{flex:1.5}.flex-shrink-0,.shrink-0{flex-shrink:0}.table-fixed{table-layout:fixed}.-translate-y-1\/2{--tw-translate-y: -50% ;translate:var(--tw-translate-x) var(--tw-translate-y)}.rotate-180{rotate:180deg}.transform{transform:var(--tw-rotate-x,) var(--tw-rotate-y,) var(--tw-rotate-z,) var(--tw-skew-x,) var(--tw-skew-y,)}.animate-pulse{animation:var(--animate-pulse)}.animate-spin{animation:var(--animate-spin)}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-pointer{cursor:pointer}.cursor-pointer\!{cursor:pointer!important}.resize-none{resize:none}.resize-y{resize:vertical}.list-none{list-style-type:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.place-items-center{place-items:center}.items-center{align-items:center}.items-end{align-items:flex-end}.items-start{align-items:flex-start}.justify-between{justify-content:space-between}.justify-center{justify-content:center}.justify-end{justify-content:flex-end}.gap-0\.5{gap:calc(var(--spacing) * .5)}.gap-1{gap:calc(var(--spacing) * 1)}.gap-1\.5{gap:calc(var(--spacing) * 1.5)}.gap-2{gap:calc(var(--spacing) * 2)}.gap-2\!{gap:calc(var(--spacing) * 2)!important}.gap-3{gap:calc(var(--spacing) * 3)}.gap-3\!{gap:calc(var(--spacing) * 3)!important}.gap-4{gap:calc(var(--spacing) * 4)}.gap-4\!{gap:calc(var(--spacing) * 4)!important}.gap-6{gap:calc(var(--spacing) * 6)}.space-y-0\.5{:where(&>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * .5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * .5) * calc(1 - var(--tw-space-y-reverse)))}}.space-y-1{:where(&>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 1) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 1) * calc(1 - var(--tw-space-y-reverse)))}}.space-y-2{:where(&>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 2) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 2) * calc(1 - var(--tw-space-y-reverse)))}}.space-y-3{:where(&>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 3) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 3) * calc(1 - var(--tw-space-y-reverse)))}}.space-y-4{:where(&>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 4) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 4) * calc(1 - var(--tw-space-y-reverse)))}}.space-y-5{:where(&>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 5) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 5) * calc(1 - var(--tw-space-y-reverse)))}}.space-y-6{:where(&>:not(:last-child)){--tw-space-y-reverse: 0;margin-block-start:calc(calc(var(--spacing) * 6) * var(--tw-space-y-reverse));margin-block-end:calc(calc(var(--spacing) * 6) * calc(1 - var(--tw-space-y-reverse)))}}.divide-y{:where(&>:not(:last-child)){--tw-divide-y-reverse: 0;border-bottom-style:var(--tw-border-style);border-top-style:var(--tw-border-style);border-top-width:calc(1px * var(--tw-divide-y-reverse));border-bottom-width:calc(1px * calc(1 - var(--tw-divide-y-reverse)))}}.divide-gray-200{:where(&>:not(:last-child)){border-color:var(--color-gray-200)}}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}.overflow-y-scroll{overflow-y:scroll}.\!rounded-lg{border-radius:var(--radius-lg)!important}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:var(--radius-2xl)}.rounded-full{border-radius:calc(infinity * 1px)}.rounded-lg{border-radius:var(--radius-lg)}.rounded-md{border-radius:var(--radius-md)}.rounded-xl{border-radius:var(--radius-xl)}.rounded-t-2xl{border-top-left-radius:var(--radius-2xl);border-top-right-radius:var(--radius-2xl)}.border{border-style:var(--tw-border-style);border-width:1px}.border-2{border-style:var(--tw-border-style);border-width:2px}.border-t{border-top-style:var(--tw-border-style);border-top-width:1px}.border-t-2{border-top-style:var(--tw-border-style);border-top-width:2px}.border-r{border-right-style:var(--tw-border-style);border-right-width:1px}.border-b{border-bottom-style:var(--tw-border-style);border-bottom-width:1px}.border-l{border-left-style:var(--tw-border-style);border-left-width:1px}.border-l-3{border-left-style:var(--tw-border-style);border-left-width:3px}.border-l-4{border-left-style:var(--tw-border-style);border-left-width:4px}.\!border-none{--tw-border-style: none !important;border-style:none!important}.border-dashed{--tw-border-style: dashed;border-style:dashed}.border-none{--tw-border-style: none;border-style:none}.border-amber-200{border-color:var(--color-amber-200)}.border-blue-100{border-color:var(--color-blue-100)}.border-blue-200{border-color:var(--color-blue-200)}.border-blue-300{border-color:var(--color-blue-300)}.border-blue-400{border-color:var(--color-blue-400)}.border-blue-600{border-color:var(--color-blue-600)}.border-blue-700{border-color:var(--color-blue-700)}.border-gray-100{border-color:var(--color-gray-100)}.border-gray-200{border-color:var(--color-gray-200)}.border-gray-300{border-color:var(--color-gray-300)}.border-green-200{border-color:var(--color-green-200)}.border-green-400\/30{border-color:color-mix(in srgb,oklch(79.2% .209 151.711) 30%,transparent);@supports (color: color-mix(in lab,red,red)){border-color:color-mix(in oklab,var(--color-green-400) 30%,transparent)}}.border-purple-200{border-color:var(--color-purple-200)}.border-red-200{border-color:var(--color-red-200)}.border-red-300{border-color:var(--color-red-300)}.border-l-blue-500{border-left-color:var(--color-blue-500)}.border-l-green-500{border-left-color:var(--color-green-500)}.\!bg-gray-50{background-color:var(--color-gray-50)!important}.bg-amber-50{background-color:var(--color-amber-50)}.bg-black\/50{background-color:color-mix(in srgb,#000 50%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-black) 50%,transparent)}}.bg-blue-50{background-color:var(--color-blue-50)}.bg-blue-100{background-color:var(--color-blue-100)}.bg-blue-600{background-color:var(--color-blue-600)}.bg-gray-50{background-color:var(--color-gray-50)}.bg-gray-50\/50{background-color:color-mix(in srgb,oklch(98.5% .002 247.839) 50%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-gray-50) 50%,transparent)}}.bg-gray-100{background-color:var(--color-gray-100)}.bg-gray-200{background-color:var(--color-gray-200)}.bg-gray-400{background-color:var(--color-gray-400)}.bg-gray-900{background-color:var(--color-gray-900)}.bg-green-50{background-color:var(--color-green-50)}.bg-green-100{background-color:var(--color-green-100)}.bg-green-400{background-color:var(--color-green-400)}.bg-green-500{background-color:var(--color-green-500)}.bg-green-500\/20{background-color:color-mix(in srgb,oklch(72.3% .219 149.579) 20%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-green-500) 20%,transparent)}}.bg-green-600{background-color:var(--color-green-600)}.bg-indigo-600{background-color:var(--color-indigo-600)}.bg-orange-600{background-color:var(--color-orange-600)}.bg-purple-50{background-color:var(--color-purple-50)}.bg-purple-100{background-color:var(--color-purple-100)}.bg-purple-600{background-color:var(--color-purple-600)}.bg-red-50{background-color:var(--color-red-50)}.bg-red-100{background-color:var(--color-red-100)}.bg-red-500{background-color:var(--color-red-500)}.bg-red-600{background-color:var(--color-red-600)}.bg-transparent{background-color:transparent}.bg-white{background-color:var(--color-white)}.bg-white\/10{background-color:color-mix(in srgb,#fff 10%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-white) 10%,transparent)}}.bg-white\/20{background-color:color-mix(in srgb,#fff 20%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-white) 20%,transparent)}}.bg-gradient-to-br{--tw-gradient-position: to bottom right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.bg-gradient-to-r{--tw-gradient-position: to right in oklab;background-image:linear-gradient(var(--tw-gradient-stops))}.from-blue-50{--tw-gradient-from: var(--color-blue-50);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-blue-500{--tw-gradient-from: var(--color-blue-500);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-blue-600{--tw-gradient-from: var(--color-blue-600);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-blue-900{--tw-gradient-from: var(--color-blue-900);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-gray-50{--tw-gradient-from: var(--color-gray-50);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-green-500{--tw-gradient-from: var(--color-green-500);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.from-red-500{--tw-gradient-from: var(--color-red-500);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-blue-100{--tw-gradient-to: var(--color-blue-100);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-blue-600{--tw-gradient-to: var(--color-blue-600);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-blue-700{--tw-gradient-to: var(--color-blue-700);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-gray-100{--tw-gradient-to: var(--color-gray-100);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-green-600{--tw-gradient-to: var(--color-green-600);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-red-600{--tw-gradient-to: var(--color-red-600);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.to-white{--tw-gradient-to: var(--color-white);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}.p-0\!{padding:calc(var(--spacing) * 0)!important}.p-1{padding:calc(var(--spacing) * 1)}.p-1\!{padding:calc(var(--spacing) * 1)!important}.p-1\.5{padding:calc(var(--spacing) * 1.5)}.p-2{padding:calc(var(--spacing) * 2)}.p-2\!{padding:calc(var(--spacing) * 2)!important}.p-2\.5{padding:calc(var(--spacing) * 2.5)}.p-3{padding:calc(var(--spacing) * 3)}.p-3\!{padding:calc(var(--spacing) * 3)!important}.p-4{padding:calc(var(--spacing) * 4)}.p-5{padding:calc(var(--spacing) * 5)}.p-5\!{padding:calc(var(--spacing) * 5)!important}.p-6{padding:calc(var(--spacing) * 6)}.p-12{padding:calc(var(--spacing) * 12)}.\!px-3{padding-inline:calc(var(--spacing) * 3)!important}.px-1{padding-inline:calc(var(--spacing) * 1)}.px-1\.5{padding-inline:calc(var(--spacing) * 1.5)}.px-2{padding-inline:calc(var(--spacing) * 2)}.px-2\.5{padding-inline:calc(var(--spacing) * 2.5)}.px-3{padding-inline:calc(var(--spacing) * 3)}.px-4{padding-inline:calc(var(--spacing) * 4)}.px-4\!{padding-inline:calc(var(--spacing) * 4)!important}.px-5{padding-inline:calc(var(--spacing) * 5)}.px-6{padding-inline:calc(var(--spacing) * 6)}.\!py-2{padding-block:calc(var(--spacing) * 2)!important}.py-0\.5{padding-block:calc(var(--spacing) * .5)}.py-1{padding-block:calc(var(--spacing) * 1)}.py-1\.5{padding-block:calc(var(--spacing) * 1.5)}.py-2{padding-block:calc(var(--spacing) * 2)}.py-2\.5{padding-block:calc(var(--spacing) * 2.5)}.py-3{padding-block:calc(var(--spacing) * 3)}.py-3\!{padding-block:calc(var(--spacing) * 3)!important}.py-4{padding-block:calc(var(--spacing) * 4)}.py-5{padding-block:calc(var(--spacing) * 5)}.py-8{padding-block:calc(var(--spacing) * 8)}.py-12{padding-block:calc(var(--spacing) * 12)}.py-16{padding-block:calc(var(--spacing) * 16)}.pt-1{padding-top:calc(var(--spacing) * 1)}.pt-2{padding-top:calc(var(--spacing) * 2)}.pt-3{padding-top:calc(var(--spacing) * 3)}.pt-4{padding-top:calc(var(--spacing) * 4)}.pt-5{padding-top:calc(var(--spacing) * 5)}.pt-6{padding-top:calc(var(--spacing) * 6)}.pr-4{padding-right:calc(var(--spacing) * 4)}.pr-8{padding-right:calc(var(--spacing) * 8)}.pr-10{padding-right:calc(var(--spacing) * 10)}.pb-2{padding-bottom:calc(var(--spacing) * 2)}.pb-3{padding-bottom:calc(var(--spacing) * 3)}.pl-9{padding-left:calc(var(--spacing) * 9)}.pl-10{padding-left:calc(var(--spacing) * 10)}.text-center{text-align:center}.text-center\!{text-align:center!important}.text-left{text-align:left}.text-right{text-align:right}.font-mono{font-family:var(--font-mono)}.text-2xl{font-size:var(--text-2xl);line-height:var(--tw-leading, var(--text-2xl--line-height))}.text-lg{font-size:var(--text-lg);line-height:var(--tw-leading, var(--text-lg--line-height))}.text-sm{font-size:var(--text-sm);line-height:var(--tw-leading, var(--text-sm--line-height))}.text-xl{font-size:var(--text-xl);line-height:var(--tw-leading, var(--text-xl--line-height))}.text-xs{font-size:var(--text-xs);line-height:var(--tw-leading, var(--text-xs--line-height))}.leading-none{--tw-leading: 1;line-height:1}.leading-relaxed{--tw-leading: var(--leading-relaxed);line-height:var(--leading-relaxed)}.font-bold{--tw-font-weight: var(--font-weight-bold);font-weight:var(--font-weight-bold)}.font-medium{--tw-font-weight: var(--font-weight-medium);font-weight:var(--font-weight-medium)}.font-semibold{--tw-font-weight: var(--font-weight-semibold);font-weight:var(--font-weight-semibold)}.tracking-tight{--tw-tracking: var(--tracking-tight);letter-spacing:var(--tracking-tight)}.tracking-wider{--tw-tracking: var(--tracking-wider);letter-spacing:var(--tracking-wider)}.break-all{word-break:break-all}.whitespace-nowrap{white-space:nowrap}.whitespace-pre-wrap{white-space:pre-wrap}.text-amber-700{color:var(--color-amber-700)}.text-blue-100{color:var(--color-blue-100)}.text-blue-300{color:var(--color-blue-300)}.text-blue-400{color:var(--color-blue-400)}.text-blue-500{color:var(--color-blue-500)}.text-blue-600{color:var(--color-blue-600)}.text-blue-700{color:var(--color-blue-700)}.text-gray-300{color:var(--color-gray-300)}.text-gray-400{color:var(--color-gray-400)}.text-gray-500{color:var(--color-gray-500)}.text-gray-600{color:var(--color-gray-600)}.text-gray-700{color:var(--color-gray-700)}.text-gray-800{color:var(--color-gray-800)}.text-gray-900{color:var(--color-gray-900)}.text-green-600{color:var(--color-green-600)}.text-green-700{color:var(--color-green-700)}.text-purple-600{color:var(--color-purple-600)}.text-purple-700{color:var(--color-purple-700)}.text-purple-900{color:var(--color-purple-900)}.text-red-400{color:var(--color-red-400)}.text-red-500{color:var(--color-red-500)}.text-red-600{color:var(--color-red-600)}.text-red-700{color:var(--color-red-700)}.text-white{color:var(--color-white)}.text-white\/70{color:color-mix(in srgb,#fff 70%,transparent);@supports (color: color-mix(in lab,red,red)){color:color-mix(in oklab,var(--color-white) 70%,transparent)}}.uppercase{text-transform:uppercase}.italic{font-style:italic}.underline{text-decoration-line:underline}.placeholder-gray-400{&::placeholder{color:var(--color-gray-400)}}.opacity-0{opacity:0%}.opacity-25{opacity:25%}.opacity-50{opacity:50%}.opacity-70{opacity:70%}.opacity-75{opacity:75%}.\!shadow-none{--tw-shadow: 0 0 #0000 !important;box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)!important}.shadow-2xl{--tw-shadow: 0 25px 50px -12px var(--tw-shadow-color, rgb(0 0 0 / .25));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.shadow-xl{--tw-shadow: 0 20px 25px -5px var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 8px 10px -6px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}.filter{filter:var(--tw-blur,) var(--tw-brightness,) var(--tw-contrast,) var(--tw-grayscale,) var(--tw-hue-rotate,) var(--tw-invert,) var(--tw-saturate,) var(--tw-sepia,) var(--tw-drop-shadow,)}.backdrop-blur-md{--tw-backdrop-blur: blur(var(--blur-md));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.backdrop-blur-sm{--tw-backdrop-blur: blur(var(--blur-sm));-webkit-backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,);backdrop-filter:var(--tw-backdrop-blur,) var(--tw-backdrop-brightness,) var(--tw-backdrop-contrast,) var(--tw-backdrop-grayscale,) var(--tw-backdrop-hue-rotate,) var(--tw-backdrop-invert,) var(--tw-backdrop-opacity,) var(--tw-backdrop-saturate,) var(--tw-backdrop-sepia,)}.transition{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to,opacity,box-shadow,transform,translate,scale,rotate,filter,-webkit-backdrop-filter,backdrop-filter,display,content-visibility,overlay,pointer-events;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-all{transition-property:all;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-colors{transition-property:color,background-color,border-color,outline-color,text-decoration-color,fill,stroke,--tw-gradient-from,--tw-gradient-via,--tw-gradient-to;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-opacity{transition-property:opacity;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.transition-transform{transition-property:transform,translate,scale,rotate;transition-timing-function:var(--tw-ease, var(--default-transition-timing-function));transition-duration:var(--tw-duration, var(--default-transition-duration))}.duration-150{--tw-duration: .15s;transition-duration:.15s}.duration-200{--tw-duration: .2s;transition-duration:.2s}.duration-300{--tw-duration: .3s;transition-duration:.3s}.ease-in{--tw-ease: var(--ease-in);transition-timing-function:var(--ease-in)}.ease-out{--tw-ease: var(--ease-out);transition-timing-function:var(--ease-out)}.group-hover\:bg-blue-100{&:is(:where(.group):hover *){@media (hover: hover){background-color:var(--color-blue-100)}}}.group-hover\:text-blue-600{&:is(:where(.group):hover *){@media (hover: hover){color:var(--color-blue-600)}}}.group-hover\:text-gray-800{&:is(:where(.group):hover *){@media (hover: hover){color:var(--color-gray-800)}}}.group-hover\:text-gray-900{&:is(:where(.group):hover *){@media (hover: hover){color:var(--color-gray-900)}}}.group-hover\:opacity-100{&:is(:where(.group):hover *){@media (hover: hover){opacity:100%}}}.focus-within\:ring-2{&:focus-within{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus-within\:ring-blue-400{&:focus-within{--tw-ring-color: var(--color-blue-400)}}.hover\:scale-105{&:hover{@media (hover: hover){--tw-scale-x: 105%;--tw-scale-y: 105%;--tw-scale-z: 105%;scale:var(--tw-scale-x) var(--tw-scale-y)}}}.hover\:scale-110{&:hover{@media (hover: hover){--tw-scale-x: 110%;--tw-scale-y: 110%;--tw-scale-z: 110%;scale:var(--tw-scale-x) var(--tw-scale-y)}}}.hover\:border-blue-300{&:hover{@media (hover: hover){border-color:var(--color-blue-300)}}}.hover\:\!bg-gray-50{&:hover{@media (hover: hover){background-color:var(--color-gray-50)!important}}}.hover\:bg-blue-200{&:hover{@media (hover: hover){background-color:var(--color-blue-200)}}}.hover\:bg-blue-700{&:hover{@media (hover: hover){background-color:var(--color-blue-700)}}}.hover\:bg-gray-50{&:hover{@media (hover: hover){background-color:var(--color-gray-50)}}}.hover\:bg-gray-100{&:hover{@media (hover: hover){background-color:var(--color-gray-100)}}}.hover\:bg-gray-200{&:hover{@media (hover: hover){background-color:var(--color-gray-200)}}}.hover\:bg-green-700{&:hover{@media (hover: hover){background-color:var(--color-green-700)}}}.hover\:bg-indigo-700{&:hover{@media (hover: hover){background-color:var(--color-indigo-700)}}}.hover\:bg-orange-700{&:hover{@media (hover: hover){background-color:var(--color-orange-700)}}}.hover\:bg-purple-200{&:hover{@media (hover: hover){background-color:var(--color-purple-200)}}}.hover\:bg-purple-700{&:hover{@media (hover: hover){background-color:var(--color-purple-700)}}}.hover\:bg-red-50{&:hover{@media (hover: hover){background-color:var(--color-red-50)}}}.hover\:bg-red-100{&:hover{@media (hover: hover){background-color:var(--color-red-100)}}}.hover\:bg-red-700{&:hover{@media (hover: hover){background-color:var(--color-red-700)}}}.hover\:bg-white{&:hover{@media (hover: hover){background-color:var(--color-white)}}}.hover\:bg-white\/20{&:hover{@media (hover: hover){background-color:color-mix(in srgb,#fff 20%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-white) 20%,transparent)}}}}.hover\:bg-white\/30{&:hover{@media (hover: hover){background-color:color-mix(in srgb,#fff 30%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-white) 30%,transparent)}}}}.hover\:from-blue-600{&:hover{@media (hover: hover){--tw-gradient-from: var(--color-blue-600);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}}}.hover\:from-green-600{&:hover{@media (hover: hover){--tw-gradient-from: var(--color-green-600);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}}}.hover\:from-red-600{&:hover{@media (hover: hover){--tw-gradient-from: var(--color-red-600);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}}}.hover\:to-blue-700{&:hover{@media (hover: hover){--tw-gradient-to: var(--color-blue-700);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}}}.hover\:to-green-700{&:hover{@media (hover: hover){--tw-gradient-to: var(--color-green-700);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}}}.hover\:to-red-700{&:hover{@media (hover: hover){--tw-gradient-to: var(--color-red-700);--tw-gradient-stops: var(--tw-gradient-via-stops, var(--tw-gradient-position), var(--tw-gradient-from) var(--tw-gradient-from-position), var(--tw-gradient-to) var(--tw-gradient-to-position))}}}.hover\:text-black{&:hover{@media (hover: hover){color:var(--color-black)}}}.hover\:text-blue-600{&:hover{@media (hover: hover){color:var(--color-blue-600)}}}.hover\:text-blue-700{&:hover{@media (hover: hover){color:var(--color-blue-700)}}}.hover\:text-blue-800{&:hover{@media (hover: hover){color:var(--color-blue-800)}}}.hover\:text-gray-600{&:hover{@media (hover: hover){color:var(--color-gray-600)}}}.hover\:text-gray-700{&:hover{@media (hover: hover){color:var(--color-gray-700)}}}.hover\:text-gray-900{&:hover{@media (hover: hover){color:var(--color-gray-900)}}}.hover\:text-purple-800{&:hover{@media (hover: hover){color:var(--color-purple-800)}}}.hover\:text-red-600{&:hover{@media (hover: hover){color:var(--color-red-600)}}}.hover\:text-red-800{&:hover{@media (hover: hover){color:var(--color-red-800)}}}.hover\:text-white{&:hover{@media (hover: hover){color:var(--color-white)}}}.hover\:shadow{&:hover{@media (hover: hover){--tw-shadow: 0 1px 3px 0 var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 1px 2px -1px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}}.hover\:shadow-lg{&:hover{@media (hover: hover){--tw-shadow: 0 10px 15px -3px var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 4px 6px -4px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}}.hover\:shadow-md{&:hover{@media (hover: hover){--tw-shadow: 0 4px 6px -1px var(--tw-shadow-color, rgb(0 0 0 / .1)), 0 2px 4px -2px var(--tw-shadow-color, rgb(0 0 0 / .1));box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}}.focus\:border-blue-500{&:focus{border-color:var(--color-blue-500)}}.focus\:border-gray-200{&:focus{border-color:var(--color-gray-200)}}.focus\:border-transparent{&:focus{border-color:transparent}}.focus\:ring-0{&:focus{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\:ring-2{&:focus{--tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);box-shadow:var(--tw-inset-shadow),var(--tw-inset-ring-shadow),var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}}.focus\:ring-blue-200{&:focus{--tw-ring-color: var(--color-blue-200)}}.focus\:ring-blue-400{&:focus{--tw-ring-color: var(--color-blue-400)}}.focus\:ring-blue-500{&:focus{--tw-ring-color: var(--color-blue-500)}}.focus\:ring-indigo-500{&:focus{--tw-ring-color: var(--color-indigo-500)}}.focus\:outline-none{&:focus{--tw-outline-style: none;outline-style:none}}.disabled\:cursor-not-allowed{&:disabled{cursor:not-allowed}}.disabled\:opacity-40{&:disabled{opacity:40%}}.disabled\:opacity-50{&:disabled{opacity:50%}}.disabled\:hover\:scale-100{&:disabled{&:hover{@media (hover: hover){--tw-scale-x: 100%;--tw-scale-y: 100%;--tw-scale-z: 100%;scale:var(--tw-scale-x) var(--tw-scale-y)}}}}.sm\:hidden{@media (width >= 40rem){display:none}}.sm\:inline{@media (width >= 40rem){display:inline}}.sm\:w-auto{@media (width >= 40rem){width:auto}}.sm\:flex-row{@media (width >= 40rem){flex-direction:row}}.sm\:items-center{@media (width >= 40rem){align-items:center}}.sm\:justify-between{@media (width >= 40rem){justify-content:space-between}}.sm\:p-6{@media (width >= 40rem){padding:calc(var(--spacing) * 6)}}.md\:col-span-2{@media (width >= 48rem){grid-column:span 2 / span 2}}.md\:block{@media (width >= 48rem){display:block}}.md\:hidden{@media (width >= 48rem){display:none}}.md\:grid-cols-2{@media (width >= 48rem){grid-template-columns:repeat(2,minmax(0,1fr))}}.dark\:border-gray-600{@media (prefers-color-scheme: dark){border-color:var(--color-gray-600)}}.dark\:border-gray-700{@media (prefers-color-scheme: dark){border-color:var(--color-gray-700)}}.dark\:border-gray-800{@media (prefers-color-scheme: dark){border-color:var(--color-gray-800)}}.dark\:border-green-800{@media (prefers-color-scheme: dark){border-color:var(--color-green-800)}}.dark\:border-red-800{@media (prefers-color-scheme: dark){border-color:var(--color-red-800)}}.dark\:bg-gray-700{@media (prefers-color-scheme: dark){background-color:var(--color-gray-700)}}.dark\:bg-gray-800{@media (prefers-color-scheme: dark){background-color:var(--color-gray-800)}}.dark\:bg-gray-800\/30{@media (prefers-color-scheme: dark){background-color:color-mix(in srgb,oklch(27.8% .033 256.848) 30%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-gray-800) 30%,transparent)}}}.dark\:bg-gray-900{@media (prefers-color-scheme: dark){background-color:var(--color-gray-900)}}.dark\:bg-green-900\/20{@media (prefers-color-scheme: dark){background-color:color-mix(in srgb,oklch(39.3% .095 152.535) 20%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-green-900) 20%,transparent)}}}.dark\:bg-red-900\/20{@media (prefers-color-scheme: dark){background-color:color-mix(in srgb,oklch(39.6% .141 25.723) 20%,transparent);@supports (color: color-mix(in lab,red,red)){background-color:color-mix(in oklab,var(--color-red-900) 20%,transparent)}}}.dark\:bg-white{@media (prefers-color-scheme: dark){background-color:var(--color-white)}}.dark\:text-gray-100{@media (prefers-color-scheme: dark){color:var(--color-gray-100)}}.dark\:text-gray-200{@media (prefers-color-scheme: dark){color:var(--color-gray-200)}}.dark\:text-gray-400{@media (prefers-color-scheme: dark){color:var(--color-gray-400)}}.dark\:text-gray-600{@media (prefers-color-scheme: dark){color:var(--color-gray-600)}}.dark\:text-gray-900{@media (prefers-color-scheme: dark){color:var(--color-gray-900)}}.dark\:text-green-400{@media (prefers-color-scheme: dark){color:var(--color-green-400)}}.dark\:text-red-400{@media (prefers-color-scheme: dark){color:var(--color-red-400)}}.dark\:placeholder-gray-600{@media (prefers-color-scheme: dark){&::placeholder{color:var(--color-gray-600)}}}.dark\:hover\:bg-gray-700{@media (prefers-color-scheme: dark){&:hover{@media (hover: hover){background-color:var(--color-gray-700)}}}}.dark\:hover\:bg-gray-800{@media (prefers-color-scheme: dark){&:hover{@media (hover: hover){background-color:var(--color-gray-800)}}}}.dark\:hover\:text-gray-200{@media (prefers-color-scheme: dark){&:hover{@media (hover: hover){color:var(--color-gray-200)}}}}}html,body{height:100%}body{margin:0;font-family:Roboto,Helvetica Neue,sans-serif}.snackbar-success .mdc-snackbar__surface{background-color:#16a34a!important;color:#fff!important}.snackbar-error .mdc-snackbar__surface{background-color:#dc2626!important;color:#fff!important}@property --tw-translate-x{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-translate-y{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-translate-z{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-rotate-x{syntax: "*"; inherits: false;}@property --tw-rotate-y{syntax: "*"; inherits: false;}@property --tw-rotate-z{syntax: "*"; inherits: false;}@property --tw-skew-x{syntax: "*"; inherits: false;}@property --tw-skew-y{syntax: "*"; inherits: false;}@property --tw-space-y-reverse{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-divide-y-reverse{syntax: "*"; inherits: false; initial-value: 0;}@property --tw-border-style{syntax: "*"; inherits: false; initial-value: solid;}@property --tw-gradient-position{syntax: "*"; inherits: false;}@property --tw-gradient-from{syntax: ""; inherits: false; initial-value: #0000;}@property --tw-gradient-via{syntax: ""; inherits: false; initial-value: #0000;}@property --tw-gradient-to{syntax: ""; inherits: false; initial-value: #0000;}@property --tw-gradient-stops{syntax: "*"; inherits: false;}@property --tw-gradient-via-stops{syntax: "*"; inherits: false;}@property --tw-gradient-from-position{syntax: ""; inherits: false; initial-value: 0%;}@property --tw-gradient-via-position{syntax: ""; inherits: false; initial-value: 50%;}@property --tw-gradient-to-position{syntax: ""; inherits: false; initial-value: 100%;}@property --tw-leading{syntax: "*"; inherits: false;}@property --tw-font-weight{syntax: "*"; inherits: false;}@property --tw-tracking{syntax: "*"; inherits: false;}@property --tw-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-shadow-color{syntax: "*"; inherits: false;}@property --tw-shadow-alpha{syntax: ""; inherits: false; initial-value: 100%;}@property --tw-inset-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-shadow-color{syntax: "*"; inherits: false;}@property --tw-inset-shadow-alpha{syntax: ""; inherits: false; initial-value: 100%;}@property --tw-ring-color{syntax: "*"; inherits: false;}@property --tw-ring-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-inset-ring-color{syntax: "*"; inherits: false;}@property --tw-inset-ring-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-ring-inset{syntax: "*"; inherits: false;}@property --tw-ring-offset-width{syntax: ""; inherits: false; initial-value: 0px;}@property --tw-ring-offset-color{syntax: "*"; inherits: false; initial-value: #fff;}@property --tw-ring-offset-shadow{syntax: "*"; inherits: false; initial-value: 0 0 #0000;}@property --tw-blur{syntax: "*"; inherits: false;}@property --tw-brightness{syntax: "*"; inherits: false;}@property --tw-contrast{syntax: "*"; inherits: false;}@property --tw-grayscale{syntax: "*"; inherits: false;}@property --tw-hue-rotate{syntax: "*"; inherits: false;}@property --tw-invert{syntax: "*"; inherits: false;}@property --tw-opacity{syntax: "*"; inherits: false;}@property --tw-saturate{syntax: "*"; inherits: false;}@property --tw-sepia{syntax: "*"; inherits: false;}@property --tw-drop-shadow{syntax: "*"; inherits: false;}@property --tw-drop-shadow-color{syntax: "*"; inherits: false;}@property --tw-drop-shadow-alpha{syntax: ""; inherits: false; initial-value: 100%;}@property --tw-drop-shadow-size{syntax: "*"; inherits: false;}@property --tw-backdrop-blur{syntax: "*"; inherits: false;}@property --tw-backdrop-brightness{syntax: "*"; inherits: false;}@property --tw-backdrop-contrast{syntax: "*"; inherits: false;}@property --tw-backdrop-grayscale{syntax: "*"; inherits: false;}@property --tw-backdrop-hue-rotate{syntax: "*"; inherits: false;}@property --tw-backdrop-invert{syntax: "*"; inherits: false;}@property --tw-backdrop-opacity{syntax: "*"; inherits: false;}@property --tw-backdrop-saturate{syntax: "*"; inherits: false;}@property --tw-backdrop-sepia{syntax: "*"; inherits: false;}@property --tw-duration{syntax: "*"; inherits: false;}@property --tw-ease{syntax: "*"; inherits: false;}@property --tw-scale-x{syntax: "*"; inherits: false; initial-value: 1;}@property --tw-scale-y{syntax: "*"; inherits: false; initial-value: 1;}@property --tw-scale-z{syntax: "*"; inherits: false; initial-value: 1;}@keyframes spin{to{transform:rotate(360deg)}}@keyframes pulse{50%{opacity:.5}}@layer properties{@supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))){*,:before,:after,::backdrop{--tw-translate-x: 0;--tw-translate-y: 0;--tw-translate-z: 0;--tw-rotate-x: initial;--tw-rotate-y: initial;--tw-rotate-z: initial;--tw-skew-x: initial;--tw-skew-y: initial;--tw-space-y-reverse: 0;--tw-divide-y-reverse: 0;--tw-border-style: solid;--tw-gradient-position: initial;--tw-gradient-from: #0000;--tw-gradient-via: #0000;--tw-gradient-to: #0000;--tw-gradient-stops: initial;--tw-gradient-via-stops: initial;--tw-gradient-from-position: 0%;--tw-gradient-via-position: 50%;--tw-gradient-to-position: 100%;--tw-leading: initial;--tw-font-weight: initial;--tw-tracking: initial;--tw-shadow: 0 0 #0000;--tw-shadow-color: initial;--tw-shadow-alpha: 100%;--tw-inset-shadow: 0 0 #0000;--tw-inset-shadow-color: initial;--tw-inset-shadow-alpha: 100%;--tw-ring-color: initial;--tw-ring-shadow: 0 0 #0000;--tw-inset-ring-color: initial;--tw-inset-ring-shadow: 0 0 #0000;--tw-ring-inset: initial;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-offset-shadow: 0 0 #0000;--tw-blur: initial;--tw-brightness: initial;--tw-contrast: initial;--tw-grayscale: initial;--tw-hue-rotate: initial;--tw-invert: initial;--tw-opacity: initial;--tw-saturate: initial;--tw-sepia: initial;--tw-drop-shadow: initial;--tw-drop-shadow-color: initial;--tw-drop-shadow-alpha: 100%;--tw-drop-shadow-size: initial;--tw-backdrop-blur: initial;--tw-backdrop-brightness: initial;--tw-backdrop-contrast: initial;--tw-backdrop-grayscale: initial;--tw-backdrop-hue-rotate: initial;--tw-backdrop-invert: initial;--tw-backdrop-opacity: initial;--tw-backdrop-saturate: initial;--tw-backdrop-sepia: initial;--tw-duration: initial;--tw-ease: initial;--tw-scale-x: 1;--tw-scale-y: 1;--tw-scale-z: 1}}} diff --git a/electron/dist/frontend/prerendered-routes.json b/electron/dist/frontend/prerendered-routes.json new file mode 100644 index 00000000..32265415 --- /dev/null +++ b/electron/dist/frontend/prerendered-routes.json @@ -0,0 +1,3 @@ +{ + "routes": {} +} \ No newline at end of file diff --git a/electron/electron-preload.js b/electron/electron-preload.js index 92d192ff..866f307e 100644 --- a/electron/electron-preload.js +++ b/electron/electron-preload.js @@ -22,5 +22,8 @@ contextBridge.exposeInMainWorld('electronAPI', { }, // ✅ NEW FEATURE - selectFile: () => ipcRenderer.invoke('select-file') + selectFile: () => ipcRenderer.invoke('select-file'), + + saveFile: (data, suggestedName) => ipcRenderer.invoke('save-file', data, suggestedName), + }); \ No newline at end of file diff --git a/electron/main.js b/electron/main.js index 1bfe54ed..082c0294 100644 --- a/electron/main.js +++ b/electron/main.js @@ -1,28 +1,60 @@ // electron/main.js const { app, BrowserWindow, shell, ipcMain, dialog } = require('electron'); -const { spawn } = require('child_process'); +const { spawn, execSync } = require('child_process'); +const findProcess = require('find-process').default; const path = require('path'); const http = require('http'); let mainWindow; let backendProcess; +const userDataPath = app.getPath('userData'); + +async function killExistingBackendOnPort(port) { + const list = await findProcess('port', port); + for (const p of list) { + try { process.kill(p.pid, 'SIGKILL'); } catch (e) {} + } +} + + +function killExistingBackendOnPort(port) { + try { + const pid = execSync(`lsof -ti :${port}`).toString().trim(); + if (pid) { + console.log(`[Electron] Port ${port} déjà utilisé par PID ${pid}, arrêt...`); + execSync(`kill -9 ${pid}`); + } + } catch (e) { + console.log(`[Electron] Aucun process existant sur le port ${port} (ou lsof indisponible).`); + } +} // ───────────────────────────────────────────── -// 1. DÉMARRAGE DU BACKEND SPRING BOOT +// 1. Starting the backend Server SPRING BOOT // ───────────────────────────────────────────── -function startBackend() { +async function startBackend() { + await killExistingBackendOnPort(8080); // __dirname = Projet-RDF-App_V1/electron/ // On remonte d'un niveau pour atteindre la racine du projet const projectRoot = path.join(__dirname, '..'); - const jarPath = path.join(projectRoot, 'RDF_Back', 'target', 'RDF_Back-0.0.1-SNAPSHOT.jar'); + const jarPath = app.isPackaged + ? path.join(process.resourcesPath, 'Backend-0.0.1-SNAPSHOT.jar') + : path.join(projectRoot, 'Backend', 'target', 'Backend-0.0.1-SNAPSHOT.jar'); + + const backendCwd = app.isPackaged + ? process.resourcesPath + : path.join(projectRoot, 'Backend'); console.log('[Electron] Chemin JAR :', jarPath); console.log('[Electron] Démarrage du backend Spring Boot...'); + console.log('[Electron] Backend cwd :', backendCwd); + backendProcess = spawn('java', ['-jar', jarPath], { - cwd: path.join(projectRoot, 'RDF_Back'), - stdio: 'pipe' + cwd: backendCwd, + stdio: 'pipe', + env: { ...process.env, FIELD_ARCHIVE_DATA: userDataPath } }); backendProcess.stdout.on('data', (data) => { @@ -82,24 +114,28 @@ function createWindow() { contextIsolation: true, nodeIntegration: false, preload: path.join(__dirname, 'electron-preload.js'), - webSecurity: false // ⚠️ allows file:// access + webSecurity: false // allows file:// access } }); // app.isPackaged = false en dev, true en production buildée - // Pas besoin de définir NODE_ENV manuellement const isDev = !app.isPackaged; + const indexPath = app.isPackaged + ? path.join(process.resourcesPath, 'frontend', 'browser', 'index.html') + : path.join(__dirname, 'dist', 'frontend', 'browser', 'index.html'); + if (isDev) { - // MODE DEV : Angular doit tourner sur ng serve (port 4200) + // MODE DEV : ng serve (port 4200) console.log('[Electron] Mode développement — chargement depuis http://localhost:4200'); mainWindow.loadURL('http://localhost:4200'); mainWindow.webContents.openDevTools(); } else { // MODE PROD : charger le build Angular statique - const indexPath = path.join(__dirname, 'dist', 'frontend', 'browser', 'index.html'); console.log('[Electron] Mode production — chargement depuis', indexPath); mainWindow.loadFile(indexPath); + + //mainWindow.webContents.openDevTools(); } // Ouvrir les liens externes dans le navigateur système @@ -126,7 +162,32 @@ ipcMain.handle('select-file', async () => { return null; } - return result.filePaths[0]; // ✅ FULL DESKTOP PATH + return result.filePaths[0]; +}); + +// ───────────────────────────────────────────── +// 5b. IPC - FILE EXPORT (SAVE) +// ───────────────────────────────────────────── + +ipcMain.handle('save-file', async (event, data, suggestedName) => { + const win = BrowserWindow.fromWebContents(event.sender); + + const { canceled, filePath } = await dialog.showSaveDialog(win, { + defaultPath: suggestedName, + filters: [{ name: 'Turtle', extensions: ['ttl'] }], + }); + + if (canceled || !filePath) { + return { success: false, canceled: true }; + } + + try { + const fs = require('fs'); + fs.writeFileSync(filePath, Buffer.from(data)); + return { success: true, filePath }; + } catch (err) { + return { success: false, error: err.message }; + } }); // ───────────────────────────────────────────── @@ -135,7 +196,7 @@ ipcMain.handle('select-file', async () => { app.whenReady().then(async () => { try { - startBackend(); + await startBackend(); console.log('[Electron] Attente du démarrage du backend...'); await waitForBackend('http://localhost:8080/api/datasources'); @@ -163,7 +224,10 @@ app.on('activate', () => { app.on('before-quit', () => { if (backendProcess) { - console.log('[Electron] Arrêt du backend...'); - backendProcess.kill(); + if (process.platform === 'win32') { + execSync(`taskkill /pid ${backendProcess.pid} /f /t`); + } else { + backendProcess.kill('SIGTERM'); + } } }); diff --git a/electron/package-electron.json b/electron/package-electron.json deleted file mode 100644 index d00e4004..00000000 --- a/electron/package-electron.json +++ /dev/null @@ -1,57 +0,0 @@ -{ - "name": "projet-rdf-electron", - "version": "1.0.0", - "description": "Application desktop RDF — Angular + Spring Boot + Electron", - "main": "electron/main.js", - "scripts": { - "electron": "electron .", - "electron:dev": "NODE_ENV=development electron .", - "build:frontend": "cd Frontend && ng build --output-path ../electron/dist/frontend", - "build:backend": "cd RDF_Back && mvn clean package -DskipTests", - "build:all": "npm run build:frontend && npm run build:backend", - "start": "npm run build:all && electron .", - "package": "npm run build:all && electron-builder --dir", - "dist": "npm run build:all && electron-builder" - }, - "build": { - "appId": "com.uspn.projet-rdf", - "productName": "Gestionnaire RDF", - "directories": { - "output": "dist-electron" - }, - "files": [ - "electron/**/*", - "node_modules/**/*" - ], - "extraResources": [ - { - "from": "RDF_Back/target/RDF_Back-0.0.1-SNAPSHOT.jar", - "to": "RDF_Back/target/RDF_Back-0.0.1-SNAPSHOT.jar" - }, - { - "from": "data", - "to": "data" - }, - { - "from": "projects", - "to": "projects" - } - ], - "win": { - "target": "nsis", - "icon": "electron/assets/icon.ico" - }, - "mac": { - "target": "dmg", - "icon": "electron/assets/icon.icns" - }, - "linux": { - "target": "AppImage", - "icon": "electron/assets/icon.png" - } - }, - "devDependencies": { - "electron": "^29.0.0", - "electron-builder": "^24.0.0" - } -} diff --git a/package-lock.json b/package-lock.json index 0e679c4e..e886a8a9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7,6 +7,9 @@ "": { "name": "projet-rdf-electron", "version": "1.0.0", + "dependencies": { + "find-process": "^2.1.1" + }, "devDependencies": { "electron": "^29.0.0", "electron-builder": "^24.0.0" @@ -598,18 +601,6 @@ "undici-types": "~6.21.0" } }, - "node_modules/@types/plist": { - "version": "3.0.5", - "resolved": "https://registry.npmjs.org/@types/plist/-/plist-3.0.5.tgz", - "integrity": "sha512-E6OCaRmAe4WDmWNsL/9RMqdkkzDCY1etutkflWk4c+AcjDU07Pcz1fQwTX0TQz+Pxqn9i4L1TU3UFpjnrcDgxA==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "@types/node": "*", - "xmlbuilder": ">=11.0.1" - } - }, "node_modules/@types/responselike": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/@types/responselike/-/responselike-1.0.3.tgz", @@ -620,14 +611,6 @@ "@types/node": "*" } }, - "node_modules/@types/verror": { - "version": "1.10.11", - "resolved": "https://registry.npmjs.org/@types/verror/-/verror-1.10.11.tgz", - "integrity": "sha512-RlDm9K7+o5stv0Co8i8ZRGxDbrTxhJtgjqjFyVh/tXQyl/rYtTKlnTvZ88oSTeYREWurwx20Js4kTuKCsFkUtg==", - "dev": true, - "license": "MIT", - "optional": true - }, "node_modules/@types/yauzl": { "version": "2.10.3", "resolved": "https://registry.npmjs.org/@types/yauzl/-/yauzl-2.10.3.tgz", @@ -710,7 +693,6 @@ "version": "4.3.0", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, "license": "MIT", "dependencies": { "color-convert": "^2.0.1" @@ -909,28 +891,6 @@ "dev": true, "license": "Python-2.0" }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha512-NfJ4UzBCcQGLDlQq7nHxH+tv3kyZ0hHQqF5BO6J7tNJeP5do1llPr8dZ8zHonfhAu0PHAdMkSo+8o0wxg9lZWw==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/astral-regex": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-2.0.0.tgz", - "integrity": "sha512-Z7tMw1ytTXt5jqMcOP+OQteU1VuNK9Y02uuJtKQ1Sv69jXQKKg5cibLwGJow8yzZP+eAc18EmLGPal0bp36rvQ==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">=8" - } - }, "node_modules/async": { "version": "3.2.6", "resolved": "https://registry.npmjs.org/async/-/async-3.2.6.tgz", @@ -1062,6 +1022,7 @@ } ], "license": "MIT", + "peer": true, "dependencies": { "base64-js": "^1.3.1", "ieee754": "^1.1.13" @@ -1221,7 +1182,6 @@ "version": "4.1.2", "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", - "dev": true, "license": "MIT", "dependencies": { "ansi-styles": "^4.1.0", @@ -1267,24 +1227,6 @@ "node": ">=8" } }, - "node_modules/cli-truncate": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/cli-truncate/-/cli-truncate-2.1.0.tgz", - "integrity": "sha512-n8fOixwDD6b/ObinzTrp1ZKFzbgvKZvuz/TvejnLn1aQfC6r52XEx85FmuC+3HI+JM7coBRXUvNqEU2PHVrHpg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "slice-ansi": "^3.0.0", - "string-width": "^4.2.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/cliui": { "version": "8.0.1", "resolved": "https://registry.npmjs.org/cliui/-/cliui-8.0.1.tgz", @@ -1317,7 +1259,6 @@ "version": "2.0.1", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, "license": "MIT", "dependencies": { "color-name": "~1.1.4" @@ -1330,7 +1271,6 @@ "version": "1.1.4", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true, "license": "MIT" }, "node_modules/combined-stream": { @@ -1454,18 +1394,8 @@ "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", "integrity": "sha512-3lqz5YjWTYnW6dlDa5TLaTCcShfar1e40rmcJVwCBJC6mWlFuj0eCHIElmG1g5kyuJ/GD+8Wn4FFCcz4gJPfaQ==", "dev": true, - "license": "MIT" - }, - "node_modules/crc": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", - "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", - "dev": true, "license": "MIT", - "optional": true, - "dependencies": { - "buffer": "^5.1.0" - } + "peer": true }, "node_modules/crc-32": { "version": "1.2.2", @@ -1715,33 +1645,6 @@ "node": ">= 10.0.0" } }, - "node_modules/dmg-license": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/dmg-license/-/dmg-license-1.0.11.tgz", - "integrity": "sha512-ZdzmqwKmECOWJpqefloC5OJy1+WZBBse5+MR88z9g9Zn4VY+WYUkAyojmhzJckH5YbbZGcYIuGAkY5/Ys5OM2Q==", - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "@types/plist": "^3.0.1", - "@types/verror": "^1.10.3", - "ajv": "^6.10.0", - "crc": "^3.8.0", - "iconv-corefoundation": "^1.1.7", - "plist": "^3.0.4", - "smart-buffer": "^4.0.2", - "verror": "^1.10.0" - }, - "bin": { - "dmg-license": "bin/dmg-license.js" - }, - "engines": { - "node": ">=8" - } - }, "node_modules/dotenv": { "version": "9.0.2", "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-9.0.2.tgz", @@ -2126,17 +2029,6 @@ "@types/yauzl": "^2.9.1" } }, - "node_modules/extsprintf": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.4.1.tgz", - "integrity": "sha512-Wrk35e8ydCKDj/ArClo1VrPVmN8zph5V4AtHwIuHhvMXsKf73UT3BOD+azBIW+3wOJ4FhEH7zyaJCFvChjYvMA==", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "license": "MIT", - "optional": true - }, "node_modules/fast-deep-equal": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", @@ -2171,6 +2063,29 @@ "minimatch": "^5.0.1" } }, + "node_modules/find-process": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/find-process/-/find-process-2.1.1.tgz", + "integrity": "sha512-SrQDx3QhlmHM90iqn9rdjCQcw/T+WlpOkHFsjoRgB+zTpDfltNA1VSNYeYELwhUTJy12UFxqjWhmhOrJc+o4sA==", + "license": "MIT", + "dependencies": { + "chalk": "~4.1.2", + "commander": "^14.0.3", + "loglevel": "^1.9.2" + }, + "bin": { + "find-process": "dist/cjs/bin/find-process.js" + } + }, + "node_modules/find-process/node_modules/commander": { + "version": "14.0.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-14.0.3.tgz", + "integrity": "sha512-H+y0Jo/T1RZ9qPP4Eh1pkcQcLRglraJaSLoyOtHxu6AapkjWVCy2Sit1QQ4x3Dng8qDlSsZEet7g5Pq06MvTgw==", + "license": "MIT", + "engines": { + "node": ">=20" + } + }, "node_modules/foreground-child": { "version": "3.3.1", "resolved": "https://registry.npmjs.org/foreground-child/-/foreground-child-3.3.1.tgz", @@ -2483,7 +2398,6 @@ "version": "4.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, "license": "MIT", "engines": { "node": ">=8" @@ -2608,24 +2522,6 @@ "node": ">= 6" } }, - "node_modules/iconv-corefoundation": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/iconv-corefoundation/-/iconv-corefoundation-1.1.7.tgz", - "integrity": "sha512-T10qvkw0zz4wnm560lOEg0PovVqUXuOFhhHAkixw8/sycy7TJt7v/RrkEKEQnAw2viPSJu6iAkErxnzR0g8PpQ==", - "dev": true, - "license": "MIT", - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "cli-truncate": "^2.1.0", - "node-addon-api": "^1.6.3" - }, - "engines": { - "node": "^8.11.2 || >=10" - } - }, "node_modules/iconv-lite": { "version": "0.6.3", "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", @@ -2658,7 +2554,8 @@ "url": "https://feross.org/support" } ], - "license": "BSD-3-Clause" + "license": "BSD-3-Clause", + "peer": true }, "node_modules/inflight": { "version": "1.0.6", @@ -2936,6 +2833,19 @@ "license": "MIT", "peer": true }, + "node_modules/loglevel": { + "version": "1.9.2", + "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.9.2.tgz", + "integrity": "sha512-HgMmCqIJSAKqo68l0rS2AanEWfkxaZ5wNiEFb5ggm08lDs9Xl2KxBlX3PTcaD2chBM1gXAYf491/M2Rv8Jwayg==", + "license": "MIT", + "engines": { + "node": ">= 0.6.0" + }, + "funding": { + "type": "tidelift", + "url": "https://tidelift.com/funding/github/npm/loglevel" + } + }, "node_modules/lowercase-keys": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", @@ -3109,14 +3019,6 @@ "dev": true, "license": "MIT" }, - "node_modules/node-addon-api": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-1.7.2.tgz", - "integrity": "sha512-ibPK3iA+vaY1eEjESkQkM0BbCqFOaZMiXRTtdB0u7b4djtY6JnsjvPdUHVMg6xQt3B8fpTTWHI9A+ADjM9frzg==", - "dev": true, - "license": "MIT", - "optional": true - }, "node_modules/normalize-path": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", @@ -3568,34 +3470,6 @@ "node": ">=10" } }, - "node_modules/slice-ansi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-3.0.0.tgz", - "integrity": "sha512-pSyv7bSTC7ig9Dcgbw9AuRNUb5k5V6oDudjZoMBSr13qpLBG7tB+zgCkARjq7xIUgdz5P1Qe8u+rSGdouOOIyQ==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "ansi-styles": "^4.0.0", - "astral-regex": "^2.0.0", - "is-fullwidth-code-point": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/smart-buffer": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", - "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", - "dev": true, - "license": "MIT", - "optional": true, - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, "node_modules/source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", @@ -3721,7 +3595,6 @@ "version": "7.2.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, "license": "MIT", "dependencies": { "has-flag": "^4.0.0" @@ -3916,22 +3789,6 @@ "license": "MIT", "peer": true }, - "node_modules/verror": { - "version": "1.10.1", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.1.tgz", - "integrity": "sha512-veufcmxri4e3XSrT0xwfUR7kguIkaxBeosDg00yDWhk49wdwkSUrvvsm7nc75e1PUyvIeZj6nS8VQRYz2/S4Xg==", - "dev": true, - "license": "MIT", - "optional": true, - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, "node_modules/which": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", diff --git a/package.json b/package.json index 2f9cab03..81c27f24 100644 --- a/package.json +++ b/package.json @@ -5,9 +5,9 @@ "main": "electron/main.js", "scripts": { "electron": "electron .", - "electron:dev": "electron .", - "build:frontend": "cd Frontend && ng build --output-path ../electron/dist/frontend", - "build:backend": "cd RDF_Back && mvn clean package -DskipTests", + "electron:dev": "NODE_ENV=development electron .", + "build:frontend": "cd Frontend && ng build --output-path ../electron/dist/frontend --base-href ./", + "build:backend": "cd Backend && mvn clean package -DskipTests", "build:all": "npm run build:frontend && npm run build:backend", "start": "npm run build:all && electron .", "package": "npm run build:all && electron-builder --dir", @@ -15,7 +15,7 @@ }, "build": { "appId": "com.uspn.projet-rdf", - "productName": "Gestionnaire RDF", + "productName": "FieldArchive", "directories": { "output": "dist-electron" }, @@ -25,8 +25,12 @@ ], "extraResources": [ { - "from": "RDF_Back/target/RDF_Back-0.0.1-SNAPSHOT.jar", - "to": "RDF_Back/target/RDF_Back-0.0.1-SNAPSHOT.jar" + "from": "electron/dist/frontend", + "to": "frontend" + }, + { + "from": "Backend/target/Backend-0.0.1-SNAPSHOT.jar", + "to": "Backend-0.0.1-SNAPSHOT.jar" }, { "from": "data", @@ -35,6 +39,10 @@ { "from": "projects", "to": "projects" + }, + { + "from": "jre", + "to": "jre" } ], "win": { @@ -53,5 +61,8 @@ "devDependencies": { "electron": "^29.0.0", "electron-builder": "^24.0.0" + }, + "dependencies": { + "find-process": "^2.1.1" } -} \ No newline at end of file +} diff --git a/projects/archive/store/contexts.dat b/projects/archive/store/contexts.dat deleted file mode 100644 index bf124523..00000000 Binary files a/projects/archive/store/contexts.dat and /dev/null differ diff --git a/projects/archive/store/namespaces.dat b/projects/archive/store/namespaces.dat deleted file mode 100644 index b1ec9998..00000000 --- a/projects/archive/store/namespaces.dat +++ /dev/null @@ -1 +0,0 @@ -nnf \ No newline at end of file diff --git a/projects/archive/store/nativerdf.ver b/projects/archive/store/nativerdf.ver deleted file mode 100644 index fb467b15..00000000 --- a/projects/archive/store/nativerdf.ver +++ /dev/null @@ -1 +0,0 @@ -5.2.2 \ No newline at end of file diff --git a/projects/archive/store/triples-posc.alloc b/projects/archive/store/triples-posc.alloc deleted file mode 100644 index 86b2a60a..00000000 Binary files a/projects/archive/store/triples-posc.alloc and /dev/null differ diff --git a/projects/archive/store/triples-posc.dat b/projects/archive/store/triples-posc.dat deleted file mode 100644 index 0c4bb2fe..00000000 Binary files a/projects/archive/store/triples-posc.dat and /dev/null differ diff --git a/projects/archive/store/triples-spoc.alloc b/projects/archive/store/triples-spoc.alloc deleted file mode 100644 index 86b2a60a..00000000 Binary files a/projects/archive/store/triples-spoc.alloc and /dev/null differ diff --git a/projects/archive/store/triples-spoc.dat b/projects/archive/store/triples-spoc.dat deleted file mode 100644 index 0c4bb2fe..00000000 Binary files a/projects/archive/store/triples-spoc.dat and /dev/null differ diff --git a/projects/archive/store/triples.prop b/projects/archive/store/triples.prop deleted file mode 100644 index 9a115223..00000000 --- a/projects/archive/store/triples.prop +++ /dev/null @@ -1,4 +0,0 @@ -#triple indexes meta-data, DO NOT EDIT! -#Wed Jan 07 12:58:53 CET 2026 -triple-indexes=spoc,posc -version=10 diff --git a/projects/archive/store/txn-status b/projects/archive/store/txn-status deleted file mode 100644 index e69de29b..00000000 diff --git a/projects/archive/store/values.dat b/projects/archive/store/values.dat deleted file mode 100644 index 15be8f2e..00000000 Binary files a/projects/archive/store/values.dat and /dev/null differ diff --git a/projects/archive/store/values.hash b/projects/archive/store/values.hash deleted file mode 100644 index 9ddf7799..00000000 Binary files a/projects/archive/store/values.hash and /dev/null differ diff --git a/projects/archive/store/values.id b/projects/archive/store/values.id deleted file mode 100644 index 5124bd5a..00000000 Binary files a/projects/archive/store/values.id and /dev/null differ diff --git a/projects/archive_56/store/contexts.dat b/projects/archive_56/store/contexts.dat deleted file mode 100644 index be7a1e30..00000000 Binary files a/projects/archive_56/store/contexts.dat and /dev/null differ diff --git a/projects/archive_56/store/namespaces.dat b/projects/archive_56/store/namespaces.dat deleted file mode 100644 index b1ec9998..00000000 --- a/projects/archive_56/store/namespaces.dat +++ /dev/null @@ -1 +0,0 @@ -nnf \ No newline at end of file diff --git a/projects/archive_56/store/nativerdf.ver b/projects/archive_56/store/nativerdf.ver deleted file mode 100644 index fb467b15..00000000 --- a/projects/archive_56/store/nativerdf.ver +++ /dev/null @@ -1 +0,0 @@ -5.2.2 \ No newline at end of file diff --git a/projects/archive_56/store/triples-posc.alloc b/projects/archive_56/store/triples-posc.alloc deleted file mode 100644 index 86b2a60a..00000000 Binary files a/projects/archive_56/store/triples-posc.alloc and /dev/null differ diff --git a/projects/archive_56/store/triples-posc.dat b/projects/archive_56/store/triples-posc.dat deleted file mode 100644 index 427db042..00000000 Binary files a/projects/archive_56/store/triples-posc.dat and /dev/null differ diff --git a/projects/archive_56/store/triples-spoc.alloc b/projects/archive_56/store/triples-spoc.alloc deleted file mode 100644 index 86b2a60a..00000000 Binary files a/projects/archive_56/store/triples-spoc.alloc and /dev/null differ diff --git a/projects/archive_56/store/triples-spoc.dat b/projects/archive_56/store/triples-spoc.dat deleted file mode 100644 index 6c4daab5..00000000 Binary files a/projects/archive_56/store/triples-spoc.dat and /dev/null differ diff --git a/projects/archive_56/store/triples.prop b/projects/archive_56/store/triples.prop deleted file mode 100644 index 8dcf06b9..00000000 --- a/projects/archive_56/store/triples.prop +++ /dev/null @@ -1,4 +0,0 @@ -#triple indexes meta-data, DO NOT EDIT! -#Wed Jan 07 18:15:14 CET 2026 -triple-indexes=spoc,posc -version=10 diff --git a/projects/archive_56/store/txn-status b/projects/archive_56/store/txn-status deleted file mode 100644 index e69de29b..00000000 diff --git a/projects/archive_56/store/values.dat b/projects/archive_56/store/values.dat deleted file mode 100644 index 1f19247e..00000000 Binary files a/projects/archive_56/store/values.dat and /dev/null differ diff --git a/projects/archive_56/store/values.hash b/projects/archive_56/store/values.hash deleted file mode 100644 index 8d26dc60..00000000 Binary files a/projects/archive_56/store/values.hash and /dev/null differ diff --git a/projects/archive_56/store/values.id b/projects/archive_56/store/values.id deleted file mode 100644 index c7e78381..00000000 Binary files a/projects/archive_56/store/values.id and /dev/null differ diff --git a/projects/archive_5647/store/contexts.dat b/projects/archive_5647/store/contexts.dat deleted file mode 100644 index bf124523..00000000 Binary files a/projects/archive_5647/store/contexts.dat and /dev/null differ diff --git a/projects/archive_5647/store/namespaces.dat b/projects/archive_5647/store/namespaces.dat deleted file mode 100644 index b1ec9998..00000000 --- a/projects/archive_5647/store/namespaces.dat +++ /dev/null @@ -1 +0,0 @@ -nnf \ No newline at end of file diff --git a/projects/archive_5647/store/nativerdf.ver b/projects/archive_5647/store/nativerdf.ver deleted file mode 100644 index fb467b15..00000000 --- a/projects/archive_5647/store/nativerdf.ver +++ /dev/null @@ -1 +0,0 @@ -5.2.2 \ No newline at end of file diff --git a/projects/archive_5647/store/triples-posc.alloc b/projects/archive_5647/store/triples-posc.alloc deleted file mode 100644 index 86b2a60a..00000000 Binary files a/projects/archive_5647/store/triples-posc.alloc and /dev/null differ diff --git a/projects/archive_5647/store/triples-posc.dat b/projects/archive_5647/store/triples-posc.dat deleted file mode 100644 index 3a950417..00000000 Binary files a/projects/archive_5647/store/triples-posc.dat and /dev/null differ diff --git a/projects/archive_5647/store/triples-spoc.alloc b/projects/archive_5647/store/triples-spoc.alloc deleted file mode 100644 index 86b2a60a..00000000 Binary files a/projects/archive_5647/store/triples-spoc.alloc and /dev/null differ diff --git a/projects/archive_5647/store/triples-spoc.dat b/projects/archive_5647/store/triples-spoc.dat deleted file mode 100644 index 3a950417..00000000 Binary files a/projects/archive_5647/store/triples-spoc.dat and /dev/null differ diff --git a/projects/archive_5647/store/triples.prop b/projects/archive_5647/store/triples.prop deleted file mode 100644 index 8d0ded7e..00000000 --- a/projects/archive_5647/store/triples.prop +++ /dev/null @@ -1,4 +0,0 @@ -#triple indexes meta-data, DO NOT EDIT! -#Wed Jan 07 13:10:41 CET 2026 -triple-indexes=spoc,posc -version=10 diff --git a/projects/archive_5647/store/txn-status b/projects/archive_5647/store/txn-status deleted file mode 100644 index e69de29b..00000000 diff --git a/projects/archive_5647/store/values.dat b/projects/archive_5647/store/values.dat deleted file mode 100644 index eeb57fb1..00000000 Binary files a/projects/archive_5647/store/values.dat and /dev/null differ diff --git a/projects/archive_5647/store/values.hash b/projects/archive_5647/store/values.hash deleted file mode 100644 index 74612f8f..00000000 Binary files a/projects/archive_5647/store/values.hash and /dev/null differ diff --git a/projects/archive_5647/store/values.id b/projects/archive_5647/store/values.id deleted file mode 100644 index 5c6d86b6..00000000 Binary files a/projects/archive_5647/store/values.id and /dev/null differ diff --git a/projects/archive_kha/store/contexts.dat b/projects/archive_kha/store/contexts.dat deleted file mode 100644 index bf124523..00000000 Binary files a/projects/archive_kha/store/contexts.dat and /dev/null differ diff --git a/projects/archive_kha/store/namespaces.dat b/projects/archive_kha/store/namespaces.dat deleted file mode 100644 index b1ec9998..00000000 --- a/projects/archive_kha/store/namespaces.dat +++ /dev/null @@ -1 +0,0 @@ -nnf \ No newline at end of file diff --git a/projects/archive_kha/store/nativerdf.ver b/projects/archive_kha/store/nativerdf.ver deleted file mode 100644 index fb467b15..00000000 --- a/projects/archive_kha/store/nativerdf.ver +++ /dev/null @@ -1 +0,0 @@ -5.2.2 \ No newline at end of file diff --git a/projects/archive_kha/store/triples-posc.alloc b/projects/archive_kha/store/triples-posc.alloc deleted file mode 100644 index 86b2a60a..00000000 Binary files a/projects/archive_kha/store/triples-posc.alloc and /dev/null differ diff --git a/projects/archive_kha/store/triples-posc.dat b/projects/archive_kha/store/triples-posc.dat deleted file mode 100644 index 0c4bb2fe..00000000 Binary files a/projects/archive_kha/store/triples-posc.dat and /dev/null differ diff --git a/projects/archive_kha/store/triples-spoc.alloc b/projects/archive_kha/store/triples-spoc.alloc deleted file mode 100644 index 86b2a60a..00000000 Binary files a/projects/archive_kha/store/triples-spoc.alloc and /dev/null differ diff --git a/projects/archive_kha/store/triples-spoc.dat b/projects/archive_kha/store/triples-spoc.dat deleted file mode 100644 index 0c4bb2fe..00000000 Binary files a/projects/archive_kha/store/triples-spoc.dat and /dev/null differ diff --git a/projects/archive_kha/store/triples.prop b/projects/archive_kha/store/triples.prop deleted file mode 100644 index 5e37dcef..00000000 --- a/projects/archive_kha/store/triples.prop +++ /dev/null @@ -1,4 +0,0 @@ -#triple indexes meta-data, DO NOT EDIT! -#Wed Jan 07 03:01:13 CET 2026 -triple-indexes=spoc,posc -version=10 diff --git a/projects/archive_kha/store/txn-status b/projects/archive_kha/store/txn-status deleted file mode 100644 index e69de29b..00000000 diff --git a/projects/archive_kha/store/values.dat b/projects/archive_kha/store/values.dat deleted file mode 100644 index 12d8fa4a..00000000 Binary files a/projects/archive_kha/store/values.dat and /dev/null differ diff --git a/projects/archive_kha/store/values.hash b/projects/archive_kha/store/values.hash deleted file mode 100644 index a982c13b..00000000 Binary files a/projects/archive_kha/store/values.hash and /dev/null differ diff --git a/projects/archive_kha/store/values.id b/projects/archive_kha/store/values.id deleted file mode 100644 index 95718a2b..00000000 Binary files a/projects/archive_kha/store/values.id and /dev/null differ diff --git a/projects/archive_khaoula/store/contexts.dat b/projects/archive_khaoula/store/contexts.dat deleted file mode 100644 index bf124523..00000000 Binary files a/projects/archive_khaoula/store/contexts.dat and /dev/null differ diff --git a/projects/archive_khaoula/store/namespaces.dat b/projects/archive_khaoula/store/namespaces.dat deleted file mode 100644 index b1ec9998..00000000 --- a/projects/archive_khaoula/store/namespaces.dat +++ /dev/null @@ -1 +0,0 @@ -nnf \ No newline at end of file diff --git a/projects/archive_khaoula/store/nativerdf.ver b/projects/archive_khaoula/store/nativerdf.ver deleted file mode 100644 index fb467b15..00000000 --- a/projects/archive_khaoula/store/nativerdf.ver +++ /dev/null @@ -1 +0,0 @@ -5.2.2 \ No newline at end of file diff --git a/projects/archive_khaoula/store/triples-posc.alloc b/projects/archive_khaoula/store/triples-posc.alloc deleted file mode 100644 index 86b2a60a..00000000 Binary files a/projects/archive_khaoula/store/triples-posc.alloc and /dev/null differ diff --git a/projects/archive_khaoula/store/triples-posc.dat b/projects/archive_khaoula/store/triples-posc.dat deleted file mode 100644 index 0c4bb2fe..00000000 Binary files a/projects/archive_khaoula/store/triples-posc.dat and /dev/null differ diff --git a/projects/archive_khaoula/store/triples-spoc.alloc b/projects/archive_khaoula/store/triples-spoc.alloc deleted file mode 100644 index 86b2a60a..00000000 Binary files a/projects/archive_khaoula/store/triples-spoc.alloc and /dev/null differ diff --git a/projects/archive_khaoula/store/triples-spoc.dat b/projects/archive_khaoula/store/triples-spoc.dat deleted file mode 100644 index 0c4bb2fe..00000000 Binary files a/projects/archive_khaoula/store/triples-spoc.dat and /dev/null differ diff --git a/projects/archive_khaoula/store/triples.prop b/projects/archive_khaoula/store/triples.prop deleted file mode 100644 index 9ffc140e..00000000 --- a/projects/archive_khaoula/store/triples.prop +++ /dev/null @@ -1,4 +0,0 @@ -#triple indexes meta-data, DO NOT EDIT! -#Wed Jan 07 12:24:20 CET 2026 -triple-indexes=spoc,posc -version=10 diff --git a/projects/archive_khaoula/store/txn-status b/projects/archive_khaoula/store/txn-status deleted file mode 100644 index e69de29b..00000000 diff --git a/projects/archive_khaoula/store/txncache.alloc b/projects/archive_khaoula/store/txncache.alloc deleted file mode 100644 index e69de29b..00000000 diff --git a/projects/archive_khaoula/store/txncache.dat b/projects/archive_khaoula/store/txncache.dat deleted file mode 100644 index 4b88b8b3..00000000 Binary files a/projects/archive_khaoula/store/txncache.dat and /dev/null differ diff --git a/projects/archive_khaoula/store/values.dat b/projects/archive_khaoula/store/values.dat deleted file mode 100644 index d829a996..00000000 Binary files a/projects/archive_khaoula/store/values.dat and /dev/null differ diff --git a/projects/archive_khaoula/store/values.hash b/projects/archive_khaoula/store/values.hash deleted file mode 100644 index 0b77a5b8..00000000 Binary files a/projects/archive_khaoula/store/values.hash and /dev/null differ diff --git a/projects/archive_khaoula/store/values.id b/projects/archive_khaoula/store/values.id deleted file mode 100644 index d0dcca95..00000000 Binary files a/projects/archive_khaoula/store/values.id and /dev/null differ diff --git a/projects/archive_noha/store/contexts.dat b/projects/archive_noha/store/contexts.dat deleted file mode 100644 index dcc3fd29..00000000 Binary files a/projects/archive_noha/store/contexts.dat and /dev/null differ diff --git a/projects/archive_noha/store/namespaces.dat b/projects/archive_noha/store/namespaces.dat deleted file mode 100644 index b1ec9998..00000000 --- a/projects/archive_noha/store/namespaces.dat +++ /dev/null @@ -1 +0,0 @@ -nnf \ No newline at end of file diff --git a/projects/archive_noha/store/nativerdf.ver b/projects/archive_noha/store/nativerdf.ver deleted file mode 100644 index fb467b15..00000000 --- a/projects/archive_noha/store/nativerdf.ver +++ /dev/null @@ -1 +0,0 @@ -5.2.2 \ No newline at end of file diff --git a/projects/archive_noha/store/triples-posc.alloc b/projects/archive_noha/store/triples-posc.alloc deleted file mode 100644 index 86b2a60a..00000000 Binary files a/projects/archive_noha/store/triples-posc.alloc and /dev/null differ diff --git a/projects/archive_noha/store/triples-posc.dat b/projects/archive_noha/store/triples-posc.dat deleted file mode 100644 index 0f695477..00000000 Binary files a/projects/archive_noha/store/triples-posc.dat and /dev/null differ diff --git a/projects/archive_noha/store/triples-spoc.alloc b/projects/archive_noha/store/triples-spoc.alloc deleted file mode 100644 index 86b2a60a..00000000 Binary files a/projects/archive_noha/store/triples-spoc.alloc and /dev/null differ diff --git a/projects/archive_noha/store/triples-spoc.dat b/projects/archive_noha/store/triples-spoc.dat deleted file mode 100644 index 0d36c942..00000000 Binary files a/projects/archive_noha/store/triples-spoc.dat and /dev/null differ diff --git a/projects/archive_noha/store/triples.prop b/projects/archive_noha/store/triples.prop deleted file mode 100644 index c30f2913..00000000 --- a/projects/archive_noha/store/triples.prop +++ /dev/null @@ -1,4 +0,0 @@ -#triple indexes meta-data, DO NOT EDIT! -#Wed Jan 07 02:00:47 CET 2026 -triple-indexes=spoc,posc -version=10 diff --git a/projects/archive_noha/store/txn-status b/projects/archive_noha/store/txn-status deleted file mode 100644 index e69de29b..00000000 diff --git a/projects/archive_noha/store/txncache.alloc b/projects/archive_noha/store/txncache.alloc deleted file mode 100644 index e69de29b..00000000 diff --git a/projects/archive_noha/store/txncache.dat b/projects/archive_noha/store/txncache.dat deleted file mode 100644 index 4b88b8b3..00000000 Binary files a/projects/archive_noha/store/txncache.dat and /dev/null differ diff --git a/projects/archive_noha/store/values.dat b/projects/archive_noha/store/values.dat deleted file mode 100644 index 5414bf09..00000000 Binary files a/projects/archive_noha/store/values.dat and /dev/null differ diff --git a/projects/archive_noha/store/values.hash b/projects/archive_noha/store/values.hash deleted file mode 100644 index 5dde08b7..00000000 Binary files a/projects/archive_noha/store/values.hash and /dev/null differ diff --git a/projects/archive_noha/store/values.id b/projects/archive_noha/store/values.id deleted file mode 100644 index ce34e8e9..00000000 Binary files a/projects/archive_noha/store/values.id and /dev/null differ diff --git a/projects/archive_pop/store/contexts.dat b/projects/archive_pop/store/contexts.dat deleted file mode 100644 index bf124523..00000000 Binary files a/projects/archive_pop/store/contexts.dat and /dev/null differ diff --git a/projects/archive_pop/store/namespaces.dat b/projects/archive_pop/store/namespaces.dat deleted file mode 100644 index b1ec9998..00000000 --- a/projects/archive_pop/store/namespaces.dat +++ /dev/null @@ -1 +0,0 @@ -nnf \ No newline at end of file diff --git a/projects/archive_pop/store/nativerdf.ver b/projects/archive_pop/store/nativerdf.ver deleted file mode 100644 index fb467b15..00000000 --- a/projects/archive_pop/store/nativerdf.ver +++ /dev/null @@ -1 +0,0 @@ -5.2.2 \ No newline at end of file diff --git a/projects/archive_pop/store/triples-posc.alloc b/projects/archive_pop/store/triples-posc.alloc deleted file mode 100644 index 86b2a60a..00000000 Binary files a/projects/archive_pop/store/triples-posc.alloc and /dev/null differ diff --git a/projects/archive_pop/store/triples-posc.dat b/projects/archive_pop/store/triples-posc.dat deleted file mode 100644 index 3a950417..00000000 Binary files a/projects/archive_pop/store/triples-posc.dat and /dev/null differ diff --git a/projects/archive_pop/store/triples-spoc.alloc b/projects/archive_pop/store/triples-spoc.alloc deleted file mode 100644 index 86b2a60a..00000000 Binary files a/projects/archive_pop/store/triples-spoc.alloc and /dev/null differ diff --git a/projects/archive_pop/store/triples-spoc.dat b/projects/archive_pop/store/triples-spoc.dat deleted file mode 100644 index 3a950417..00000000 Binary files a/projects/archive_pop/store/triples-spoc.dat and /dev/null differ diff --git a/projects/archive_pop/store/triples.prop b/projects/archive_pop/store/triples.prop deleted file mode 100644 index 06adc4d6..00000000 --- a/projects/archive_pop/store/triples.prop +++ /dev/null @@ -1,4 +0,0 @@ -#triple indexes meta-data, DO NOT EDIT! -#Wed Jan 07 12:38:42 CET 2026 -triple-indexes=spoc,posc -version=10 diff --git a/projects/archive_pop/store/txn-status b/projects/archive_pop/store/txn-status deleted file mode 100644 index e69de29b..00000000 diff --git a/projects/archive_pop/store/txncache.alloc b/projects/archive_pop/store/txncache.alloc deleted file mode 100644 index e69de29b..00000000 diff --git a/projects/archive_pop/store/txncache.dat b/projects/archive_pop/store/txncache.dat deleted file mode 100644 index 4b88b8b3..00000000 Binary files a/projects/archive_pop/store/txncache.dat and /dev/null differ diff --git a/projects/archive_pop/store/values.dat b/projects/archive_pop/store/values.dat deleted file mode 100644 index a4c24f01..00000000 Binary files a/projects/archive_pop/store/values.dat and /dev/null differ diff --git a/projects/archive_pop/store/values.hash b/projects/archive_pop/store/values.hash deleted file mode 100644 index 8af52eab..00000000 Binary files a/projects/archive_pop/store/values.hash and /dev/null differ diff --git a/projects/archive_pop/store/values.id b/projects/archive_pop/store/values.id deleted file mode 100644 index 19e0bd1c..00000000 Binary files a/projects/archive_pop/store/values.id and /dev/null differ diff --git a/projects/archive_ppop/store/contexts.dat b/projects/archive_ppop/store/contexts.dat deleted file mode 100644 index bf124523..00000000 Binary files a/projects/archive_ppop/store/contexts.dat and /dev/null differ diff --git a/projects/archive_ppop/store/namespaces.dat b/projects/archive_ppop/store/namespaces.dat deleted file mode 100644 index b1ec9998..00000000 --- a/projects/archive_ppop/store/namespaces.dat +++ /dev/null @@ -1 +0,0 @@ -nnf \ No newline at end of file diff --git a/projects/archive_ppop/store/nativerdf.ver b/projects/archive_ppop/store/nativerdf.ver deleted file mode 100644 index fb467b15..00000000 --- a/projects/archive_ppop/store/nativerdf.ver +++ /dev/null @@ -1 +0,0 @@ -5.2.2 \ No newline at end of file diff --git a/projects/archive_ppop/store/triples-posc.alloc b/projects/archive_ppop/store/triples-posc.alloc deleted file mode 100644 index 86b2a60a..00000000 Binary files a/projects/archive_ppop/store/triples-posc.alloc and /dev/null differ diff --git a/projects/archive_ppop/store/triples-posc.dat b/projects/archive_ppop/store/triples-posc.dat deleted file mode 100644 index 0c4bb2fe..00000000 Binary files a/projects/archive_ppop/store/triples-posc.dat and /dev/null differ diff --git a/projects/archive_ppop/store/triples-spoc.alloc b/projects/archive_ppop/store/triples-spoc.alloc deleted file mode 100644 index 86b2a60a..00000000 Binary files a/projects/archive_ppop/store/triples-spoc.alloc and /dev/null differ diff --git a/projects/archive_ppop/store/triples-spoc.dat b/projects/archive_ppop/store/triples-spoc.dat deleted file mode 100644 index 0c4bb2fe..00000000 Binary files a/projects/archive_ppop/store/triples-spoc.dat and /dev/null differ diff --git a/projects/archive_ppop/store/triples.prop b/projects/archive_ppop/store/triples.prop deleted file mode 100644 index 2963fda6..00000000 --- a/projects/archive_ppop/store/triples.prop +++ /dev/null @@ -1,4 +0,0 @@ -#triple indexes meta-data, DO NOT EDIT! -#Wed Jan 07 03:03:13 CET 2026 -triple-indexes=spoc,posc -version=10 diff --git a/projects/archive_ppop/store/txn-status b/projects/archive_ppop/store/txn-status deleted file mode 100644 index e69de29b..00000000 diff --git a/projects/archive_ppop/store/txncache.alloc b/projects/archive_ppop/store/txncache.alloc deleted file mode 100644 index e69de29b..00000000 diff --git a/projects/archive_ppop/store/txncache.dat b/projects/archive_ppop/store/txncache.dat deleted file mode 100644 index 4b88b8b3..00000000 Binary files a/projects/archive_ppop/store/txncache.dat and /dev/null differ diff --git a/projects/archive_ppop/store/values.dat b/projects/archive_ppop/store/values.dat deleted file mode 100644 index 7a41173b..00000000 Binary files a/projects/archive_ppop/store/values.dat and /dev/null differ diff --git a/projects/archive_ppop/store/values.hash b/projects/archive_ppop/store/values.hash deleted file mode 100644 index d8f2bb46..00000000 Binary files a/projects/archive_ppop/store/values.hash and /dev/null differ diff --git a/projects/archive_ppop/store/values.id b/projects/archive_ppop/store/values.id deleted file mode 100644 index ad51488d..00000000 Binary files a/projects/archive_ppop/store/values.id and /dev/null differ diff --git a/projects/archive_test/store/contexts.dat b/projects/archive_test/store/contexts.dat deleted file mode 100644 index f7a5aa96..00000000 Binary files a/projects/archive_test/store/contexts.dat and /dev/null differ diff --git a/projects/archive_test/store/namespaces.dat b/projects/archive_test/store/namespaces.dat deleted file mode 100644 index 0e1999e7..00000000 Binary files a/projects/archive_test/store/namespaces.dat and /dev/null differ diff --git a/projects/archive_test/store/nativerdf.ver b/projects/archive_test/store/nativerdf.ver deleted file mode 100644 index fb467b15..00000000 --- a/projects/archive_test/store/nativerdf.ver +++ /dev/null @@ -1 +0,0 @@ -5.2.2 \ No newline at end of file diff --git a/projects/archive_test/store/triples-posc.alloc b/projects/archive_test/store/triples-posc.alloc deleted file mode 100644 index 86b2a60a..00000000 Binary files a/projects/archive_test/store/triples-posc.alloc and /dev/null differ diff --git a/projects/archive_test/store/triples-posc.dat b/projects/archive_test/store/triples-posc.dat deleted file mode 100644 index 70986233..00000000 Binary files a/projects/archive_test/store/triples-posc.dat and /dev/null differ diff --git a/projects/archive_test/store/triples-spoc.alloc b/projects/archive_test/store/triples-spoc.alloc deleted file mode 100644 index 86b2a60a..00000000 Binary files a/projects/archive_test/store/triples-spoc.alloc and /dev/null differ diff --git a/projects/archive_test/store/triples-spoc.dat b/projects/archive_test/store/triples-spoc.dat deleted file mode 100644 index e2aa277a..00000000 Binary files a/projects/archive_test/store/triples-spoc.dat and /dev/null differ diff --git a/projects/archive_test/store/triples.prop b/projects/archive_test/store/triples.prop deleted file mode 100644 index e8076bf5..00000000 --- a/projects/archive_test/store/triples.prop +++ /dev/null @@ -1,4 +0,0 @@ -#triple indexes meta-data, DO NOT EDIT! -#Tue Jan 06 23:38:24 CET 2026 -triple-indexes=spoc,posc -version=10 diff --git a/projects/archive_test/store/txn-status b/projects/archive_test/store/txn-status deleted file mode 100644 index e69de29b..00000000 diff --git a/projects/archive_test/store/txncache.alloc b/projects/archive_test/store/txncache.alloc deleted file mode 100644 index e69de29b..00000000 diff --git a/projects/archive_test/store/txncache.dat b/projects/archive_test/store/txncache.dat deleted file mode 100644 index 4b88b8b3..00000000 Binary files a/projects/archive_test/store/txncache.dat and /dev/null differ diff --git a/projects/archive_test/store/values.dat b/projects/archive_test/store/values.dat deleted file mode 100644 index cd7e8ff3..00000000 Binary files a/projects/archive_test/store/values.dat and /dev/null differ diff --git a/projects/archive_test/store/values.hash b/projects/archive_test/store/values.hash deleted file mode 100644 index e740a157..00000000 Binary files a/projects/archive_test/store/values.hash and /dev/null differ diff --git a/projects/archive_test/store/values.id b/projects/archive_test/store/values.id deleted file mode 100644 index 37361855..00000000 Binary files a/projects/archive_test/store/values.id and /dev/null differ diff --git a/projects/archive_test1/store/contexts.dat b/projects/archive_test1/store/contexts.dat deleted file mode 100644 index dcc3fd29..00000000 Binary files a/projects/archive_test1/store/contexts.dat and /dev/null differ diff --git a/projects/archive_test1/store/namespaces.dat b/projects/archive_test1/store/namespaces.dat deleted file mode 100644 index b1ec9998..00000000 --- a/projects/archive_test1/store/namespaces.dat +++ /dev/null @@ -1 +0,0 @@ -nnf \ No newline at end of file diff --git a/projects/archive_test1/store/nativerdf.ver b/projects/archive_test1/store/nativerdf.ver deleted file mode 100644 index fb467b15..00000000 --- a/projects/archive_test1/store/nativerdf.ver +++ /dev/null @@ -1 +0,0 @@ -5.2.2 \ No newline at end of file diff --git a/projects/archive_test1/store/triples-posc.alloc b/projects/archive_test1/store/triples-posc.alloc deleted file mode 100644 index 86b2a60a..00000000 Binary files a/projects/archive_test1/store/triples-posc.alloc and /dev/null differ diff --git a/projects/archive_test1/store/triples-posc.dat b/projects/archive_test1/store/triples-posc.dat deleted file mode 100644 index 3b56d8b3..00000000 Binary files a/projects/archive_test1/store/triples-posc.dat and /dev/null differ diff --git a/projects/archive_test1/store/triples-spoc.alloc b/projects/archive_test1/store/triples-spoc.alloc deleted file mode 100644 index 86b2a60a..00000000 Binary files a/projects/archive_test1/store/triples-spoc.alloc and /dev/null differ diff --git a/projects/archive_test1/store/triples-spoc.dat b/projects/archive_test1/store/triples-spoc.dat deleted file mode 100644 index 0532ab75..00000000 Binary files a/projects/archive_test1/store/triples-spoc.dat and /dev/null differ diff --git a/projects/archive_test1/store/triples.prop b/projects/archive_test1/store/triples.prop deleted file mode 100644 index 018b1a05..00000000 --- a/projects/archive_test1/store/triples.prop +++ /dev/null @@ -1,4 +0,0 @@ -#triple indexes meta-data, DO NOT EDIT! -#Wed Jan 07 01:30:14 CET 2026 -triple-indexes=spoc,posc -version=10 diff --git a/projects/archive_test1/store/txn-status b/projects/archive_test1/store/txn-status deleted file mode 100644 index e69de29b..00000000 diff --git a/projects/archive_test1/store/txncache.alloc b/projects/archive_test1/store/txncache.alloc deleted file mode 100644 index e69de29b..00000000 diff --git a/projects/archive_test1/store/txncache.dat b/projects/archive_test1/store/txncache.dat deleted file mode 100644 index 4b88b8b3..00000000 Binary files a/projects/archive_test1/store/txncache.dat and /dev/null differ diff --git a/projects/archive_test1/store/values.dat b/projects/archive_test1/store/values.dat deleted file mode 100644 index e7bf917e..00000000 Binary files a/projects/archive_test1/store/values.dat and /dev/null differ diff --git a/projects/archive_test1/store/values.hash b/projects/archive_test1/store/values.hash deleted file mode 100644 index a4224de3..00000000 Binary files a/projects/archive_test1/store/values.hash and /dev/null differ diff --git a/projects/archive_test1/store/values.id b/projects/archive_test1/store/values.id deleted file mode 100644 index f8221c25..00000000 Binary files a/projects/archive_test1/store/values.id and /dev/null differ diff --git a/projects/projet1/store/contexts.dat b/projects/projet1/store/contexts.dat deleted file mode 100644 index bf124523..00000000 Binary files a/projects/projet1/store/contexts.dat and /dev/null differ diff --git a/projects/projet1/store/namespaces.dat b/projects/projet1/store/namespaces.dat deleted file mode 100644 index b1ec9998..00000000 --- a/projects/projet1/store/namespaces.dat +++ /dev/null @@ -1 +0,0 @@ -nnf \ No newline at end of file diff --git a/projects/projet1/store/nativerdf.ver b/projects/projet1/store/nativerdf.ver deleted file mode 100644 index fb467b15..00000000 --- a/projects/projet1/store/nativerdf.ver +++ /dev/null @@ -1 +0,0 @@ -5.2.2 \ No newline at end of file diff --git a/projects/projet1/store/triples-posc.alloc b/projects/projet1/store/triples-posc.alloc deleted file mode 100644 index 86b2a60a..00000000 Binary files a/projects/projet1/store/triples-posc.alloc and /dev/null differ diff --git a/projects/projet1/store/triples-posc.dat b/projects/projet1/store/triples-posc.dat deleted file mode 100644 index 0c4bb2fe..00000000 Binary files a/projects/projet1/store/triples-posc.dat and /dev/null differ diff --git a/projects/projet1/store/triples-spoc.alloc b/projects/projet1/store/triples-spoc.alloc deleted file mode 100644 index 86b2a60a..00000000 Binary files a/projects/projet1/store/triples-spoc.alloc and /dev/null differ diff --git a/projects/projet1/store/triples-spoc.dat b/projects/projet1/store/triples-spoc.dat deleted file mode 100644 index 0c4bb2fe..00000000 Binary files a/projects/projet1/store/triples-spoc.dat and /dev/null differ diff --git a/projects/projet1/store/triples.prop b/projects/projet1/store/triples.prop deleted file mode 100644 index 3f8b0519..00000000 --- a/projects/projet1/store/triples.prop +++ /dev/null @@ -1,4 +0,0 @@ -#triple indexes meta-data, DO NOT EDIT! -#Wed Jan 07 18:42:31 CET 2026 -triple-indexes=spoc,posc -version=10 diff --git a/projects/projet1/store/txn-status b/projects/projet1/store/txn-status deleted file mode 100644 index e69de29b..00000000 diff --git a/projects/projet1/store/values.dat b/projects/projet1/store/values.dat deleted file mode 100644 index e1866d31..00000000 Binary files a/projects/projet1/store/values.dat and /dev/null differ diff --git a/projects/projet1/store/values.hash b/projects/projet1/store/values.hash deleted file mode 100644 index 5b660a7a..00000000 Binary files a/projects/projet1/store/values.hash and /dev/null differ diff --git a/projects/projet1/store/values.id b/projects/projet1/store/values.id deleted file mode 100644 index 5124bd5a..00000000 Binary files a/projects/projet1/store/values.id and /dev/null differ diff --git a/samples/dataset1/Tiny.ttl b/samples/dataset1/Tiny.ttl new file mode 100644 index 00000000..bf413d5c --- /dev/null +++ b/samples/dataset1/Tiny.ttl @@ -0,0 +1,50 @@ +@prefix rico: . +@prefix foaf: . + + a rico:Person , foaf:Person ; + rico:name "Martin" ; + foaf:name "Martin" ; + foaf:knows . + + a rico:Person , foaf:Person ; + rico:name "Elaisa" ; + foaf:name "Elaisa" . + + a rico:Activity ; + rico:name "A data session about infinitive forms" ; + rico:documentedBy ; + rico:hasActivityType ; + rico:date "2019-06-25" ; + rico:note "Dogs were fighting during the data session and the recordings are of poor quality" ; + rico:hasOrHadParticipant . + + a rico:ActivityType ; + rico:name "DataSession" . + + a rico:DocumentaryFormType ; + rico:name "Manuscript fieldnote". + + a rico:DocumentaryFormType ; + rico:name "Audio recording of a data session". + + a rico:ContentType ; + rico:name "text". + + a rico:ContentType ; + rico:name "Audio speech recording". + + a rico:Record ; + rico:name "Notebook 2019, vol. I p 32-34" ; + rico:hasDocumentaryFormType ; + rico:hasContentOfType ; + rico:hasOrHadLanguage ; + rico:hasInstantiation . + + a rico:Record ; + rico:name "Recording of the data session" ; + rico:hasDocumentaryFormType ; + rico:hasContentOfType ; + rico:hasOrHadLanguage ; + rico:hasInstantiation ; + rico:hasInstantiation ; + rico:hasInstantiation . \ No newline at end of file diff --git a/samples/dataset2BNF/FRAN_Agent_000005.rdf b/samples/dataset2BNF/FRAN_Agent_000005.rdf new file mode 100644 index 00000000..b088fac6 --- /dev/null +++ b/samples/dataset2BNF/FRAN_Agent_000005.rdf @@ -0,0 +1,304 @@ + + + + + + + + + + 2013-04-23 + 2017-04-28 + + + Dérivation (Import_SIA) + 2013-04-23 + + + + + Révision (par Mission.referentiels MISSION.REFERENTIELS) + 2017-04-28 + + + + + Modification (par Mission.referentiels MISSION.REFERENTIELS) + 2017-04-28 + F. Clavaud, 28 avril 2017 : création d'une nouvelle version avec les infos réunies par M. Zelverte ; supprimé lien IR ; ajouté liens d'identité + + + Dardy-Cretin (Michèle), Histoire administrative du ministère de la culture et de la communication (1959-2012). Paris: Collection du Comité d'histoire du ministère de la culture et de la communication, 2012. + Site Internet du ministère de la Culture et de la Communication. + Journal Officiel de la République française + Notice BnF n° FRBNF11868511 + + + + + text/xml + FRAN_NP_000005 + + + 51 + + + + + + + + France. Ministère de la Culture et de la Communication (1959-....) + + + France. Ministère de la Culture et de la Communication (1959-....) + France. Ministère de la Culture et de la Communication (1959-....) + + + nom d'agent : forme préférée + + + + + Ministère de la Culture + Ministère de la Culture + + 1995-05-18 + 1997-06-02 + + + + + Ministère de la Culture et de la Communication + Ministère de la Culture et de la Communication + + 1991-05-16 + 1992-04-02 + + + + + Ministère de la Culture, de la Communication, des Grands Travaux et du Bicentenaire + Ministère de la Culture, de la Communication, des Grands Travaux et du Bicentenaire + + 1988-06-28 + 1991-05-15 + + + + + Ministère de la Culture et de la Communication + Ministère de la Culture et de la Communication + + 1986-03-20 + 1988-06-22 + + + + + Ministère de la Culture + Ministère de la Culture + + 1981-05-22 + 1986-03-20 + + + + + Ministère de la Culture et de la Communication + Ministère de la Culture et de la Communication + + 1978-04-05 + 1981-05-13 + + + + + Ministère de la Culture et de l'Environnement + Ministère de la Culture et de l'Environnement + + 1977-03-30 + 1978-03-31 + + + + + Secrétariat d'État à la Culture + Secrétariat d'État à la Culture + + 1974-06-08 + 1977-03-29 + + + + + Ministère des Affaires culturelles + Ministère des Affaires culturelles + + 1959-01-08 + 1974-02-28 + + + + + Ministère des Affaires culturelles et de l'Environnement + Ministère des Affaires culturelles et de l'Environnement + + 1974-03-01 + 1974-05-31 + + + + + Ministère de la Culture et de la Francophonie + Ministère de la Culture et de la Francophonie + + 1993-03-30 + 1995-05-11 + + + 1959-01-08 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

Organisation interne ou généalogie

+ En 1959, le ministère est composé de la direction de l’Architecture, de la direction des Archives de France, de la direction générale des Arts et Lettres (qui regroupe la direction des Musées de France, la sous-direction des Spectacles et de la Musique, le service des Lettres et le service de l’Enseignement et de la Production artistique) et du CNC. Jacques Jaujard, ancien directeur général des Arts et Lettres au ministère de l’Éducation nationale, est nommé Secrétaire Général, avec une mission de coordination des services ; ce poste disparaît avec son départ en 1967. Un service d’Administration générale est également créé en 1959, qui devient direction de l’Administration générale (DAG) en 1961. + Progressivement, certains secteurs rattachés à la DGAL se voient conférer leur autonomie, comme le bureau des Fouilles et Antiquités en 1964 (année de la création de la Commission nationale chargée de l’Inventaire général des monuments et richesses artistiques de la France, également autonome). En 1969, la DGAL est supprimée et les directions et services qui la composaient deviennent indépendants. En 1970, le service de la Musique, de l’Art lyrique et de la Danse devient une direction autonome (DMALD). + L’Inspection générale de l’administration des affaires culturelles (IGAAC) est dotée d’un statut en 1973. + En 1975 est créée la direction du Livre (DL) grâce à l’absorption de secteurs qui dépendaient des ministères des Affaires étrangères (exportation du livre), de l’Industrie (régulation du marché du livre) et de l’Éducation nationale (tutelle des bibliothèques publiques). + Le rattachement de l’architecture au ministère de l'Environnement en 1978 est l’occasion de créer une direction du Patrimoine (DP), qui rassemble des services jusqu’alors dispersés (notamment le service des fouilles et antiquités). Lorsqu’en 1995 l’architecture revient au sein du ministère, le décret du 22 mars 1996 crée une direction de l’Architecture (DA) indépendante de la direction du Patrimoine. + Le 21 septembre 1998, deux nouvelles directions naissent à la suite de fusions : la direction de l’Architecture et du Patrimoine (DAPA) et la direction de la Musique, de la Danse, du Théâtre et des Spectacles (DMDTS). + Le 26 juillet 2001 intervient une restructuration importante de la Délégation aux arts plastiques. + Un décret du 24 novembre 2006 crée un Secrétariat Général au sein du ministère. + Dans le cadre de la Réforme générale des politiques publiques, le décret du 11 novembre 2009 redéfinit l’organisation du ministère en réduisant le nombre des directions à trois : la direction générale des Patrimoines (DGP), en charge de l’architecture, des archives, des musées et du patrimoine monumental et archéologique ; la direction générale de la Création artistique (DGCA), en charge des arts plastiques et du spectacle vivant ; la direction générale des Médias et Industries culturelles (DGMIC) en charge des industries de programmes, des industries phonographique et musicale, du livre et de la lecture, des médias. +
+
+ + + En 1959, le général de Gaulle décide de créer un ministère d’État chargé des Affaires culturelles, qu’il confie à André Malraux le 22 juillet 1959. L’administration des Beaux-Arts est ainsi détachée du ministère de l’Éducation nationale, et prend une appellation moins académique. À ce ministère sont transférées les attributions de la direction générale des Arts et Lettres (DGAL), de la direction de l’Architecture et de la direction des Archives de France qui quittent alors l’Éducation nationale, ainsi que les activités culturelles auparavant placées sous la tutelle du Commissariat à la Jeunesse et aux Sports et le Centre national de la Cinématographie (CNC), qui relevait du ministère de l’Industrie et du Commerce. Un décret du 24 juillet 1959 officialise cette organisation du ministère qui compte, en outre, un bureau du cabinet et un service d’administration générale. + En 1969, la disparition de la DGAL, qui regroupait la direction des Musées de France, la sous-direction des Spectacles et de la Musique, le service des Lettres et le service de l’Enseignement et de la Production artistique se traduit par l’indépendance de ces secteurs. Les compétences relatives à l’attribution des visas d’exploitation et d’exportation des films, jusqu’alors confiées au ministre de l’Information, sont transférées au ministère des Affaires culturelles. + Le ministère change ensuite à plusieurs reprises de nom et d’attributions. À partir du 8 juin 1974, date de la création d’un Secrétariat d’État à la Culture, l’appellation « affaires culturelles » disparaît définitivement. Le 25 avril 1977, le nouveau ministre de la Culture, Michel d’Ornano, voit ses attributions élargies à l’Environnement et au Tourisme. En 1978, avec la nomination de Jean-Philippe Lecat, le ministère se voit attribuer la Communication. L’architecture en revanche relève du ministère de l’Équipement entre 1978 et 1995. + Les années 1980 sont marquées par l’extension de la notion de culture aux pratiques des amateurs et à de nouveaux secteurs comme le livre, l’audiovisuel, le domaine des nouvelles technologies et de l’Internet au cours des années 2000 ou encore les arts dits « de la rue ». En 1981, la Bibliothèque nationale passe de la tutelle du ministère de l'Éducation nationale à celle du ministère de la Culture. Le ministère confié à Jack Lang perd la compétence de la Communication mais en 1986, avec la nomination de François Léotard, le ministère de la Culture et de la Communication reprend une partie des attributions exercées par le ministre des PTT (gestion des fréquences). En 1993, Jacques Toubon devient ministre de la Culture et de la Francophonie. En 1995, Philippe Douste-Blazy perd la Francophonie mais récupère une partie des prérogatives de la direction de l’architecture. En mars 1996, le Premier Ministre décide de placer la Délégation générale à la langue française sous l'autorité directe du ministre de la Culture. À l’arrivée de Catherine Trautmann en 1997, le ministère redevient ministère de la Culture et de la Communication. En 2002, avec la nomination de Jean-Jaques Aillagon, il gagne de nouvelles attributions (langue française, politique du gouvernement dans le domaine des médias, grandes opérations d’architecture et d’urbanisme…). Depuis 2002, son périmètre est demeuré relativement stable. + + + Liste des ministres: + André Malraux, ministre d'État chargé des affaires culturelles (8 janvier 1959-juin 1969) + Edmond Michelet, ministre d'État chargé des affaires culturelles (22 juin 1969-25 septembre 1970) + André Bettencourt, ministre chargé des affaires culturelles par intérim (19 octobre 1970-janvier 1971) + Jacques Duhamel, ministre des Affaires culturelles (7 janvier 1971-avril 1973) + Maurice Druon, ministre des Affaires culturelles (5 avril 1973-février 1974) + Alain Peyrefitte, ministre des Affaires culturelles et de l'Environnement (1er mars 1974-mai 1974) + Michel Guy, Secrétaire d'État à la Culture (8 juin 1974-août 1976) + Françoise Giroud, Secrétaire d'État à la Culture (27 août 1976-mars 1977) + Michel d'Ornano, ministre de la Culture et de l'Environnement (30 mars 1977-mars 1978) + Jean-Philippe Lecat, ministre de la Culture et de la Communication (5 avril 1978-4 mars 1981) + Jack Lang, ministre de la Culture (22 mai 1981-mars 1983), ministre délégué à la Culture (24 mars 1983-décembre 1984), ministre de la Culture (7 décembre 1984-mars 1986) + François Léotard, ministre de la Culture et de la Communication (20 mars 1986-mai 1988) + Jack Lang, ministre de la Culture et de la Communication (12 mai 1988-juin 1988), ministre de la Culture, de la Communication, des Grands Travauux et du Bicentenaire (28 juin 1988-mai 1991), ministre de la Culture et de la Communication et porte-parole du gouvernement (16 mai 1991-2 avril 1992), ministre d'État, ministre de l'Éducation nationale et de la Culture (2 avril 1992-30 mars 1993) + Jacques Toubon, ministre de la Culture et de la Francophonie (31 mars 1993-18 mai 1995) + Philippe Douste-Blazy, ministre de la Culture et de la Communication (18 mai 1995-4 juin 1997) + Catherine Trautmann, ministre de la Culture et de la Communication (4 juin 1997-27 mars 2000) + Catherine Tasca, ministre de la Culture et de la Communication (27 mars 2000-mai 2002) + Jean-Jacques Aillagon, ministre de la Culture et de la Communication (7 mai 2002-mars 2004) + Renaud Donnedieu de Vabres, ministre de la Culture et de la Communication (31 mars 2004-18 mai 2007) + Christine Albanel, ministre de la Culture et de la Communication (28 mai 2007-juin 2009) + Frédéric Mitterrand, ministre de la Culture et de la Communication (23 juin 2009-mai 2012) + Aurélie Filippetti, ministre de la Culture et de la Communication (16 mai 2012-25 août 2014) + Fleur Pellerin, ministre de la Culture et de la Communication (26 août 2014-11 février 2016) + Audrey Azoulay (11 février 2016-....) + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+
\ No newline at end of file diff --git a/samples/dataset3BNF/FRAN_RecordResource_003500.rdf b/samples/dataset3BNF/FRAN_RecordResource_003500.rdf new file mode 100644 index 00000000..7ffd626c --- /dev/null +++ b/samples/dataset3BNF/FRAN_RecordResource_003500.rdf @@ -0,0 +1,4159 @@ + + + + + + + + Fonds Vitet (XIXe-XXe siècles) : Inventaire analytique (572AP/1-572AP/122) + Fonds Vitet (XIXe-XXe siècles) : Inventaire analytique (572AP/1-572AP/122) + + + 2000 + + + auteur(s) + Par C. Sibille + + + + + + + Fonds Vitet (XIXe-XXe siècles) : Inventaire analytique (572AP/1-572AP/122) + Fonds Vitet (XIXe-XXe siècles) : Inventaire analytique (572AP/1-572AP/122) + Cet instrument de recherche a été encodé en 2012 par l'entreprise Numen dans le cadre du chantier de dématérialisation des instruments de recherche des Archives Nationales sur la base d'une DTD conforme à la DTD EAD (encoded archival description) et créée par le service de dématérialisation des instruments de recherche des Archives Nationales + + text/xml + FRAN_IR_003500 + + + + + + + + + + Fonds Vitet + Fonds Vitet + 1801-01-01 + 2000-12-31 + XIXe-XXe siècles + + + + + + 572AP/1-572AP/122 + Fonds Vitet + Fonds Vitet + 1801-01-01 + 2000-12-31 + XIXe-XXe siècles + + + + + + + + + + + + + + LUDOVIC VITET (1802-1873) + LUDOVIC VITET (1802-1873) + + + + + 572AP/1-572AP/20 + LUDOVIC VITET (1802-1873) + LUDOVIC VITET (1802-1873) + + + + + + + + Papiers personnels + Papiers personnels + + + + 572AP/1 + Papiers personnels + Papiers personnels + + + + + + + Procès Lebreton/Vitet (propriétaire d'un marais dans la commune de Tancarville, arrondissement du Havre). + Procès Lebreton/Vitet (propriétaire d'un marais dans la commune de Tancarville, arrondissement du Havre). + 1836-01-01 + 1856-12-31 + 1836-1856 + + + + Dossier 1 + Procès Lebreton/Vitet (propriétaire d'un marais dans la commune de Tancarville, arrondissement du Havre). + Procès Lebreton/Vitet (propriétaire d'un marais dans la commune de Tancarville, arrondissement du Havre). + 1836-01-01 + 1856-12-31 + 1836-1856 + + + + + + + + + Documents sur la famille de sa femme (Cécile Scipion-Périer), les familles Périer et de Dietrich, et leur fonderie + Documents sur la famille de sa femme (Cécile Scipion-Périer), les familles Périer et de Dietrich, et leur fonderie + 1816-01-01 + 1840-12-31 + 1816-1840 + + + + Dossier 2 + Documents sur la famille de sa femme (Cécile Scipion-Périer), les familles Périer et de Dietrich, et leur fonderie + Documents sur la famille de sa femme (Cécile Scipion-Périer), les familles Périer et de Dietrich, et leur fonderie + 1816-01-01 + 1840-12-31 + 1816-1840 + + + + + + + + + + + Correspondance active + Correspondance active + + + + 572AP/2 + Correspondance active + Correspondance active + + + + + + + Copie de 157 lettres de Ludovic Vitet. 1830-1872. + Copie de 157 lettres de Ludovic Vitet. 1830-1872. + Lettres autographes au député de Seine-Maritime Jules Ancel ou à Madame Ancel. 1869-1870 et s.d. + Lettres autographes au député de Seine-Maritime Jules Ancel ou à Madame Ancel. 1869-1870 et s.d. + Originaux et copies de lettres de Ludovic Vitet. 1858-1859. + Originaux et copies de lettres de Ludovic Vitet. 1858-1859. + Copies de lettres de Ludovic Vitet. 21 février-1 er juin 1871. + Copies de lettres de Ludovic Vitet. 21 février-1 er juin 1871. + + + + Dossier 1 + Copie de 157 lettres de Ludovic Vitet. 1830-1872. + Copie de 157 lettres de Ludovic Vitet. 1830-1872. + Lettres autographes au député de Seine-Maritime Jules Ancel ou à Madame Ancel. 1869-1870 et s.d. + Lettres autographes au député de Seine-Maritime Jules Ancel ou à Madame Ancel. 1869-1870 et s.d. + Originaux et copies de lettres de Ludovic Vitet. 1858-1859. + Originaux et copies de lettres de Ludovic Vitet. 1858-1859. + Copies de lettres de Ludovic Vitet. 21 février-1 er juin 1871. + Copies de lettres de Ludovic Vitet. 21 février-1 er juin 1871. + + + + + + + + + Lettres à sa femme. + Lettres à sa femme. + 1. 24 février-18 juillet 1832. + 1. 24 février-18 juillet 1832. + 2. 1832-1837. + 2. 1832-1837. + 3. Pendant ses voyages. 1834-1849. + 3. Pendant ses voyages. 1834-1849. + 4. 1833-1855. + 4. 1833-1855. + 5. 1850-1854. + 5. 1850-1854. + 1832-01-01 + 1854-12-31 + 1832-1854 + + + + Dossier 2 + Lettres à sa femme. + Lettres à sa femme. + 1. 24 février-18 juillet 1832. + 1. 24 février-18 juillet 1832. + 2. 1832-1837. + 2. 1832-1837. + 3. Pendant ses voyages. 1834-1849. + 3. Pendant ses voyages. 1834-1849. + 4. 1833-1855. + 4. 1833-1855. + 5. 1850-1854. + 5. 1850-1854. + 1832-01-01 + 1854-12-31 + 1832-1854 + + + + + + + + + Lettres à sa famille. + Lettres à sa famille. + 1872-01-01 + 1872-12-31 + 1872 + + + + Dossier 3 + Lettres à sa famille. + Lettres à sa famille. + 1872-01-01 + 1872-12-31 + 1872 + + + + + + + + + Lettres écrites en 1871 + Lettres écrites en 1871 + 1. Lettres au duc de La Trémoille. 21 février-1 er juin 1871. + 1. Lettres au duc de La Trémoille. 21 février-1 er juin 1871. + 2. Lettres au Père Gratry. Avril-octobre 1871. + 2. Lettres au Père Gratry. Avril-octobre 1871. + + + + Dossier 4 + Lettres écrites en 1871 + Lettres écrites en 1871 + 1. Lettres au duc de La Trémoille. 21 février-1 er juin 1871. + 1. Lettres au duc de La Trémoille. 21 février-1 er juin 1871. + 2. Lettres au Père Gratry. Avril-octobre 1871. + 2. Lettres au Père Gratry. Avril-octobre 1871. + + + + + + + + + + + Correspondance passive. + Correspondance passive. + + + + 572AP/3-572AP/13 + Correspondance passive. + Correspondance passive. + + + + + + + Lettres de Cécile Vitet à son mari. 1840-1857 + Lettres de Cécile Vitet à son mari. 1840-1857 + Lettres de Cécile Vitet à son mari et à sa belle-mère. 1841-1857. + Lettres de Cécile Vitet à son mari et à sa belle-mère. 1841-1857. + Lettres des princes à Ludovic Vitet. 1831-1873. + Lettres des princes à Ludovic Vitet. 1831-1873. + Lettres diverses, classées alphabétiquement. 1827-1829. + Lettres diverses, classées alphabétiquement. 1827-1829. + + + + 572AP/3 + Lettres de Cécile Vitet à son mari. 1840-1857 + Lettres de Cécile Vitet à son mari. 1840-1857 + Lettres de Cécile Vitet à son mari et à sa belle-mère. 1841-1857. + Lettres de Cécile Vitet à son mari et à sa belle-mère. 1841-1857. + Lettres des princes à Ludovic Vitet. 1831-1873. + Lettres des princes à Ludovic Vitet. 1831-1873. + Lettres diverses, classées alphabétiquement. 1827-1829. + Lettres diverses, classées alphabétiquement. 1827-1829. + + + + + + + + + Lettres diverses, classées alphabétiquement. + Lettres diverses, classées alphabétiquement. + 1830-01-01 + 1831-12-31 + 1830-1831 + + + + 572AP/4 + Lettres diverses, classées alphabétiquement. + Lettres diverses, classées alphabétiquement. + 1830-01-01 + 1831-12-31 + 1830-1831 + + + + + + + + + Lettres diverses, classées alphabétiquement. 1832-1833 + Lettres diverses, classées alphabétiquement. 1832-1833 + Lettres adressées à M. Barbet de Jouy : lettres du comte de Chambord, de la duchesse de Berry (avec cheveux de la duchesse), du marquis de La Rochejacquelin, de Châteaubriand et de Guizot. 1832-1833. + Lettres adressées à M. Barbet de Jouy : lettres du comte de Chambord, de la duchesse de Berry (avec cheveux de la duchesse), du marquis de La Rochejacquelin, de Châteaubriand et de Guizot. 1832-1833. + + + + 572AP/5 + Lettres diverses, classées alphabétiquement. 1832-1833 + Lettres diverses, classées alphabétiquement. 1832-1833 + Lettres adressées à M. Barbet de Jouy : lettres du comte de Chambord, de la duchesse de Berry (avec cheveux de la duchesse), du marquis de La Rochejacquelin, de Châteaubriand et de Guizot. 1832-1833. + Lettres adressées à M. Barbet de Jouy : lettres du comte de Chambord, de la duchesse de Berry (avec cheveux de la duchesse), du marquis de La Rochejacquelin, de Châteaubriand et de Guizot. 1832-1833. + + + + + + + + + Lettres diverses, classées alphabétiquement. + Lettres diverses, classées alphabétiquement. + 1833-01-01 + 1839-12-31 + 1833-1839 + + + + 572AP/6 + Lettres diverses, classées alphabétiquement. + Lettres diverses, classées alphabétiquement. + 1833-01-01 + 1839-12-31 + 1833-1839 + + + + + + + 1833-1835. + 1833-1835. + + + + Dossier 1 + 1833-1835. + 1833-1835. + + + + + + + + + 1836-1839. + 1836-1839. + + + + Dossier 2 + 1836-1839. + 1836-1839. + + + + + + + + + + + Lettres diverses, classées alphabétiquement. + Lettres diverses, classées alphabétiquement. + 1840-01-01 + 1843-12-31 + 1840-1843 + + + + 572AP/7 + Lettres diverses, classées alphabétiquement. + Lettres diverses, classées alphabétiquement. + 1840-01-01 + 1843-12-31 + 1840-1843 + + + + + + + + + Lettres diverses, classées alphabétiquement. + Lettres diverses, classées alphabétiquement. + 1844-01-01 + 1847-12-31 + 1844-1847 + + + + 572AP/8 + Lettres diverses, classées alphabétiquement. + Lettres diverses, classées alphabétiquement. + 1844-01-01 + 1847-12-31 + 1844-1847 + + + + + + + + + Lettres diverses, classées alphabétiquement. + Lettres diverses, classées alphabétiquement. + 1848-01-01 + 1853-12-31 + 1848-1853 + + + + 572AP/9 + Lettres diverses, classées alphabétiquement. + Lettres diverses, classées alphabétiquement. + 1848-01-01 + 1853-12-31 + 1848-1853 + + + + + + + + + Lettres diverses, classées alphabétiquement. + Lettres diverses, classées alphabétiquement. + 1854-01-01 + 1858-12-31 + 1854-1858 + + + + 572AP/10 + Lettres diverses, classées alphabétiquement. + Lettres diverses, classées alphabétiquement. + 1854-01-01 + 1858-12-31 + 1854-1858 + + + + + + + + + Lettres diverses, classées alphabétiquement. + Lettres diverses, classées alphabétiquement. + 1859-01-01 + 1862-12-31 + 1859-1862 + + + + 572AP/11 + Lettres diverses, classées alphabétiquement. + Lettres diverses, classées alphabétiquement. + 1859-01-01 + 1862-12-31 + 1859-1862 + + + + + + + + + Lettres diverses, classées alphabétiquement. + Lettres diverses, classées alphabétiquement. + 1863-01-01 + 1866-12-31 + 1863-1866 + + + + 572AP/12 + Lettres diverses, classées alphabétiquement. + Lettres diverses, classées alphabétiquement. + 1863-01-01 + 1866-12-31 + 1863-1866 + + + + + + + + + Lettres diverses, classées alphabétiquement. + Lettres diverses, classées alphabétiquement. + 1867-01-01 + 1870-12-31 + 1867-1870 + + + + 572AP/13 + Lettres diverses, classées alphabétiquement. + Lettres diverses, classées alphabétiquement. + 1867-01-01 + 1870-12-31 + 1867-1870 + + + + + + + 1867-1869. + 1867-1869. + + + + Dossier 1 + 1867-1869. + 1867-1869. + + + + + + + + + 1870. + 1870. + + + + Dossier 2 + 1870. + 1870. + + + + + + + + + Lettres diverses, sans signatures ou de signatures illisibles ; chansons manuscrites. + Lettres diverses, sans signatures ou de signatures illisibles ; chansons manuscrites. + + + + Dossier 3 + Lettres diverses, sans signatures ou de signatures illisibles ; chansons manuscrites. + Lettres diverses, sans signatures ou de signatures illisibles ; chansons manuscrites. + + + + + + + + + + + Lettres envoyées par François Guizot. 48 l.a.s. 1 + Lettres envoyées par François Guizot. 48 l.a.s. 1 + 1859-01-01 + 1872-12-31 + 1859-1872 + + + 1. Entrée n° 5067 du 20 juillet 2005. + + + + + + 572AP/14 + Lettres envoyées par François Guizot. 48 l.a.s. 1 + Lettres envoyées par François Guizot. 48 l.a.s. 1 + 1859-01-01 + 1872-12-31 + 1859-1872 + + + + + + + + + + + Manuscrits et tirés à part d'articles. + Manuscrits et tirés à part d'articles. + + + + 572AP/14-572AP/19 + Manuscrits et tirés à part d'articles. + Manuscrits et tirés à part d'articles. + + + + + + + Manuscrits de Ludovic Vitet. + Manuscrits de Ludovic Vitet. + - " La Ligue " + - " La Ligue " + - " Noyon - San Marco " + - " Noyon - San Marco " + - " Le Sacristain " + - " Le Sacristain " + - " Bobèche millionnaire " + - " Bobèche millionnaire " + - " Sur le comte Duchâtel " + - " Sur le comte Duchâtel " + - fragments de " Joinville " + - fragments de " Joinville " + - feuilles détachées de manuscrits non classées. + - feuilles détachées de manuscrits non classées. + + + + 572AP/14 + Manuscrits de Ludovic Vitet. + Manuscrits de Ludovic Vitet. + - " La Ligue " + - " La Ligue " + - " Noyon - San Marco " + - " Noyon - San Marco " + - " Le Sacristain " + - " Le Sacristain " + - " Bobèche millionnaire " + - " Bobèche millionnaire " + - " Sur le comte Duchâtel " + - " Sur le comte Duchâtel " + - fragments de " Joinville " + - fragments de " Joinville " + - feuilles détachées de manuscrits non classées. + - feuilles détachées de manuscrits non classées. + + + + + + + + + Manuscrits de Ludovic Vitet. + Manuscrits de Ludovic Vitet. + - Rapports sur les monuments historiques, les thermes de l'hôtel de Cluny et le pont de Cette + - Rapports sur les monuments historiques, les thermes de l'hôtel de Cluny et le pont de Cette + - Rapport au ministre des travaux publics, de l'agriculture et du commerce + - Rapport au ministre des travaux publics, de l'agriculture et du commerce + - " Méditations religieuses " de Guizot + - " Méditations religieuses " de Guizot + - " La république de Cromwell " + - " La république de Cromwell " + - " Rétablissement des Stuart " de Guizot + - " Rétablissement des Stuart " de Guizot + - " Mélanges politiques et littéraires " de Guizot + - " Mélanges politiques et littéraires " de Guizot + - " Histoire de France " de Guizot + - " Histoire de France " de Guizot + - " Guizot et la monarchie de 1830 + - " Guizot et la monarchie de 1830 + - notice sur le docteur Requin + - notice sur le docteur Requin + - notice sur le comte d'Haubersant + - notice sur le comte d'Haubersant + - " Monuments antiques d'Orange " + - " Monuments antiques d'Orange " + - " Prix Monthyon - Mme de Saint-Phal " + - " Prix Monthyon - Mme de Saint-Phal " + - " Sculpture grecque ", " Pindare et l'art grec " + - " Sculpture grecque ", " Pindare et l'art grec " + - " Académie de peinture " - " Peintures murales " - " Peintures de Saint-Vincent-de-Paul " + - " Académie de peinture " - " Peintures murales " - " Peintures de Saint-Vincent-de-Paul " + - " Musique et déclamation " + - " Musique et déclamation " + - " Musique grecque - musique - bulletin musical du Globe " + - " Musique grecque - musique - bulletin musical du Globe " + - " Tableau de Clouet " + - " Tableau de Clouet " + - " Archéologie orientale " + - " Archéologie orientale " + - " Architecture byzantine - Sainte-Sophie " + - " Architecture byzantine - Sainte-Sophie " + - " Le Louvre " + - " Le Louvre " + - " Réunion de la Lorraine à la France " + - " Réunion de la Lorraine à la France " + - " Eustache Lesueur " " Le temple d'Auguste et la nationalité gauloise " + - " Eustache Lesueur " " Le temple d'Auguste et la nationalité gauloise " + - " Le tombeau de Napoléon " + - " Le tombeau de Napoléon " + - " Les barricades " + - " Les barricades " + - " Musique et théâtre allemand " + - " Musique et théâtre allemand " + - " Mosaïques romaines " + - " Mosaïques romaines " + - articles publiés par le Journal de l'Assemblée nationale Joinville, saint Louis et le XIII e siècle + - articles publiés par le Journal de l'Assemblée nationale Joinville, saint Louis et le XIII e siècle + - " Clément Marot " + - " Clément Marot " + - " les finances avant le 24 février 1848 " + - " les finances avant le 24 février 1848 " + + + + 572AP/15 + Manuscrits de Ludovic Vitet. + Manuscrits de Ludovic Vitet. + - Rapports sur les monuments historiques, les thermes de l'hôtel de Cluny et le pont de Cette + - Rapports sur les monuments historiques, les thermes de l'hôtel de Cluny et le pont de Cette + - Rapport au ministre des travaux publics, de l'agriculture et du commerce + - Rapport au ministre des travaux publics, de l'agriculture et du commerce + - " Méditations religieuses " de Guizot + - " Méditations religieuses " de Guizot + - " La république de Cromwell " + - " La république de Cromwell " + - " Rétablissement des Stuart " de Guizot + - " Rétablissement des Stuart " de Guizot + - " Mélanges politiques et littéraires " de Guizot + - " Mélanges politiques et littéraires " de Guizot + - " Histoire de France " de Guizot + - " Histoire de France " de Guizot + - " Guizot et la monarchie de 1830 + - " Guizot et la monarchie de 1830 + - notice sur le docteur Requin + - notice sur le docteur Requin + - notice sur le comte d'Haubersant + - notice sur le comte d'Haubersant + - " Monuments antiques d'Orange " + - " Monuments antiques d'Orange " + - " Prix Monthyon - Mme de Saint-Phal " + - " Prix Monthyon - Mme de Saint-Phal " + - " Sculpture grecque ", " Pindare et l'art grec " + - " Sculpture grecque ", " Pindare et l'art grec " + - " Académie de peinture " - " Peintures murales " - " Peintures de Saint-Vincent-de-Paul " + - " Académie de peinture " - " Peintures murales " - " Peintures de Saint-Vincent-de-Paul " + - " Musique et déclamation " + - " Musique et déclamation " + - " Musique grecque - musique - bulletin musical du Globe " + - " Musique grecque - musique - bulletin musical du Globe " + - " Tableau de Clouet " + - " Tableau de Clouet " + - " Archéologie orientale " + - " Archéologie orientale " + - " Architecture byzantine - Sainte-Sophie " + - " Architecture byzantine - Sainte-Sophie " + - " Le Louvre " + - " Le Louvre " + - " Réunion de la Lorraine à la France " + - " Réunion de la Lorraine à la France " + - " Eustache Lesueur " " Le temple d'Auguste et la nationalité gauloise " + - " Eustache Lesueur " " Le temple d'Auguste et la nationalité gauloise " + - " Le tombeau de Napoléon " + - " Le tombeau de Napoléon " + - " Les barricades " + - " Les barricades " + - " Musique et théâtre allemand " + - " Musique et théâtre allemand " + - " Mosaïques romaines " + - " Mosaïques romaines " + - articles publiés par le Journal de l'Assemblée nationale Joinville, saint Louis et le XIII e siècle + - articles publiés par le Journal de l'Assemblée nationale Joinville, saint Louis et le XIII e siècle + - " Clément Marot " + - " Clément Marot " + - " les finances avant le 24 février 1848 " + - " les finances avant le 24 février 1848 " + + + + + + + + + Manuscrits de Ludovic Vitet. + Manuscrits de Ludovic Vitet. + - rapports sur le musée de sculpture et de gravure antiques, sur les monuments gaulois, sur l'église de Saint-Denis, sur la Bibliothèque royale, sur les Ponts et Chaussées, les ports et les haras. + - rapports sur le musée de sculpture et de gravure antiques, sur les monuments gaulois, sur l'église de Saint-Denis, sur la Bibliothèque royale, sur les Ponts et Chaussées, les ports et les haras. + - " les peintres flamands " + - " les peintres flamands " + - " les mosaïques chrétiennes " + - " les mosaïques chrétiennes " + - " Saint-Onofrio ", " Rome souterraine ", " Catacombes ", " Eleusis " + - " Saint-Onofrio ", " Rome souterraine ", " Catacombes ", " Eleusis " + - " L'art harmonique au Moyen-Age. Les premiers âges de la littérature nationale " + - " L'art harmonique au Moyen-Age. Les premiers âges de la littérature nationale " + - " Michel-Ange ", " Don Juan ", " Marc Antoine Raymondi " + - " Michel-Ange ", " Don Juan ", " Marc Antoine Raymondi " + - discours de Musset, du comte Duchâtel, de Feuillet, de Gratry, de Laprade, de Sandeau + - discours de Musset, du comte Duchâtel, de Feuillet, de Gratry, de Laprade, de Sandeau + - notes sur Mme Casimir Périer mère, sur Joseph Périer, sur le comte Duchâtel + - notes sur Mme Casimir Périer mère, sur Joseph Périer, sur le comte Duchâtel + - " Ary Scheffer " - articles de finances - archéologie + - " Ary Scheffer " - articles de finances - archéologie + - " abbaye de Saint-Bavon ", Châlons-sur-Marne " - Monuments de Paris + - " abbaye de Saint-Bavon ", Châlons-sur-Marne " - Monuments de Paris + - " Saint-Cunibert de Cologne - Spire - Aix-la-Chapelle - Lorsch - Maestricht - Worms - Francfort - Hollande - Athènes " + - " Saint-Cunibert de Cologne - Spire - Aix-la-Chapelle - Lorsch - Maestricht - Worms - Francfort - Hollande - Athènes " + - " Souvenirs contemporains de M. de Narbonne + - " Souvenirs contemporains de M. de Narbonne + - " La Convention " par P. de Barante + - " La Convention " par P. de Barante + - " Monument de Malesherbes - Beaux-Arts - Les Antiquaires normands " + - " Monument de Malesherbes - Beaux-Arts - Les Antiquaires normands " + - " établissement de la nouvelle salle de la chambre des députés " + - " établissement de la nouvelle salle de la chambre des députés " + - " rapport sur l'affaire Bastard " + - " rapport sur l'affaire Bastard " + + + + 572AP/16 + Manuscrits de Ludovic Vitet. + Manuscrits de Ludovic Vitet. + - rapports sur le musée de sculpture et de gravure antiques, sur les monuments gaulois, sur l'église de Saint-Denis, sur la Bibliothèque royale, sur les Ponts et Chaussées, les ports et les haras. + - rapports sur le musée de sculpture et de gravure antiques, sur les monuments gaulois, sur l'église de Saint-Denis, sur la Bibliothèque royale, sur les Ponts et Chaussées, les ports et les haras. + - " les peintres flamands " + - " les peintres flamands " + - " les mosaïques chrétiennes " + - " les mosaïques chrétiennes " + - " Saint-Onofrio ", " Rome souterraine ", " Catacombes ", " Eleusis " + - " Saint-Onofrio ", " Rome souterraine ", " Catacombes ", " Eleusis " + - " L'art harmonique au Moyen-Age. Les premiers âges de la littérature nationale " + - " L'art harmonique au Moyen-Age. Les premiers âges de la littérature nationale " + - " Michel-Ange ", " Don Juan ", " Marc Antoine Raymondi " + - " Michel-Ange ", " Don Juan ", " Marc Antoine Raymondi " + - discours de Musset, du comte Duchâtel, de Feuillet, de Gratry, de Laprade, de Sandeau + - discours de Musset, du comte Duchâtel, de Feuillet, de Gratry, de Laprade, de Sandeau + - notes sur Mme Casimir Périer mère, sur Joseph Périer, sur le comte Duchâtel + - notes sur Mme Casimir Périer mère, sur Joseph Périer, sur le comte Duchâtel + - " Ary Scheffer " - articles de finances - archéologie + - " Ary Scheffer " - articles de finances - archéologie + - " abbaye de Saint-Bavon ", Châlons-sur-Marne " - Monuments de Paris + - " abbaye de Saint-Bavon ", Châlons-sur-Marne " - Monuments de Paris + - " Saint-Cunibert de Cologne - Spire - Aix-la-Chapelle - Lorsch - Maestricht - Worms - Francfort - Hollande - Athènes " + - " Saint-Cunibert de Cologne - Spire - Aix-la-Chapelle - Lorsch - Maestricht - Worms - Francfort - Hollande - Athènes " + - " Souvenirs contemporains de M. de Narbonne + - " Souvenirs contemporains de M. de Narbonne + - " La Convention " par P. de Barante + - " La Convention " par P. de Barante + - " Monument de Malesherbes - Beaux-Arts - Les Antiquaires normands " + - " Monument de Malesherbes - Beaux-Arts - Les Antiquaires normands " + - " établissement de la nouvelle salle de la chambre des députés " + - " établissement de la nouvelle salle de la chambre des députés " + - " rapport sur l'affaire Bastard " + - " rapport sur l'affaire Bastard " + + + + + + + + + Manuscrits de Ludovic Vitet. + Manuscrits de Ludovic Vitet. + - " Histoire de Dieppe " + - " Histoire de Dieppe " + - parties diverses de manuscrits. + - parties diverses de manuscrits. + + + + 572AP/17 + Manuscrits de Ludovic Vitet. + Manuscrits de Ludovic Vitet. + - " Histoire de Dieppe " + - " Histoire de Dieppe " + - parties diverses de manuscrits. + - parties diverses de manuscrits. + + + + + + + + + Manuscrits et tirés à part d'articles. + Manuscrits et tirés à part d'articles. + + + + 572AP/18 + Manuscrits et tirés à part d'articles. + Manuscrits et tirés à part d'articles. + + + + + + + Manuscrits. + Manuscrits. + . " Jeanne d'Arc " + . " Jeanne d'Arc " + . " Les Etats de Blois " + . " Les Etats de Blois " + . " Mort de Henri III " + . " Mort de Henri III " + . " Sur la collection Campan " + . " Sur la collection Campan " + . " Tableau du sacre par Gérard " + . " Tableau du sacre par Gérard " + . " Architecture anglaise " + . " Architecture anglaise " + . " Siège de Corinthe " + . " Siège de Corinthe " + . Discours + . Discours + . " Sur le siège de Paris " + . " Sur le siège de Paris " + . " Sur l'affaire Bastard " + . " Sur l'affaire Bastard " + . " Sur la Bibliothèque nationale " + . " Sur la Bibliothèque nationale " + . " Sur la messiade de Kopstock " + . " Sur la messiade de Kopstock " + . " Monuments d'Orange " + . " Monuments d'Orange " + . " Discours électoraux et de comices " + . " Discours électoraux et de comices " + . " article prix Gobert 1848 " + . " article prix Gobert 1848 " + . fragments de discours + . fragments de discours + + + + Dossier 1 + Manuscrits. + Manuscrits. + . " Jeanne d'Arc " + . " Jeanne d'Arc " + . " Les Etats de Blois " + . " Les Etats de Blois " + . " Mort de Henri III " + . " Mort de Henri III " + . " Sur la collection Campan " + . " Sur la collection Campan " + . " Tableau du sacre par Gérard " + . " Tableau du sacre par Gérard " + . " Architecture anglaise " + . " Architecture anglaise " + . " Siège de Corinthe " + . " Siège de Corinthe " + . Discours + . Discours + . " Sur le siège de Paris " + . " Sur le siège de Paris " + . " Sur l'affaire Bastard " + . " Sur l'affaire Bastard " + . " Sur la Bibliothèque nationale " + . " Sur la Bibliothèque nationale " + . " Sur la messiade de Kopstock " + . " Sur la messiade de Kopstock " + . " Monuments d'Orange " + . " Monuments d'Orange " + . " Discours électoraux et de comices " + . " Discours électoraux et de comices " + . " article prix Gobert 1848 " + . " article prix Gobert 1848 " + . fragments de discours + . fragments de discours + + + + + + + + + Manuscrit intitulé " Réflexions sur le Beau " ; 2 cahiers reliés ms. + Manuscrit intitulé " Réflexions sur le Beau " ; 2 cahiers reliés ms. + + + + Dossier 2 + Manuscrit intitulé " Réflexions sur le Beau " ; 2 cahiers reliés ms. + Manuscrit intitulé " Réflexions sur le Beau " ; 2 cahiers reliés ms. + + + + + + + + + Tirés à part d'articles de Ludovic Vitet pour le Journal des savants. + Tirés à part d'articles de Ludovic Vitet pour le Journal des savants. + 1. " Inscriptions chrétiennes de la Gaule antérieures au VIII e siècle. + 1. " Inscriptions chrétiennes de la Gaule antérieures au VIII e siècle. + 2. " Le christianisme et la société ". + 2. " Le christianisme et la société ". + 3. " Histoire de la réunion de la Lorraine à la France ". + 3. " Histoire de la réunion de la Lorraine à la France ". + 4. " La renaissance des arts à la cour de France ". + 4. " La renaissance des arts à la cour de France ". + 5. " Le Temple d'Auguste et la nationalité gauloise ". + 5. " Le Temple d'Auguste et la nationalité gauloise ". + + + + Dossier 3 + Tirés à part d'articles de Ludovic Vitet pour le Journal des savants. + Tirés à part d'articles de Ludovic Vitet pour le Journal des savants. + 1. " Inscriptions chrétiennes de la Gaule antérieures au VIII e siècle. + 1. " Inscriptions chrétiennes de la Gaule antérieures au VIII e siècle. + 2. " Le christianisme et la société ". + 2. " Le christianisme et la société ". + 3. " Histoire de la réunion de la Lorraine à la France ". + 3. " Histoire de la réunion de la Lorraine à la France ". + 4. " La renaissance des arts à la cour de France ". + 4. " La renaissance des arts à la cour de France ". + 5. " Le Temple d'Auguste et la nationalité gauloise ". + 5. " Le Temple d'Auguste et la nationalité gauloise ". + + + + + + + + + 1 re, 2 e, 3 e, 4 e, 5 e, 6 e et 7 e lettres sur le siège de Paris. + 1 re, 2 e, 3 e, 4 e, 5 e, 6 e et 7 e lettres sur le siège de Paris. + 1870-01-01 + 1871-12-31 + 1870-1871 + + + + Dossier 4 + 1 re, 2 e, 3 e, 4 e, 5 e, 6 e et 7 e lettres sur le siège de Paris. + 1 re, 2 e, 3 e, 4 e, 5 e, 6 e et 7 e lettres sur le siège de Paris. + 1870-01-01 + 1871-12-31 + 1870-1871 + + + + + + + + + + + Ecrits politiques : notes, rapports, lettres, fragments de souvenirs. + Ecrits politiques : notes, rapports, lettres, fragments de souvenirs. + 1825-01-01 + 1874-12-31 + 1825-1874 + + + + 572AP/19 + Ecrits politiques : notes, rapports, lettres, fragments de souvenirs. + Ecrits politiques : notes, rapports, lettres, fragments de souvenirs. + 1825-01-01 + 1874-12-31 + 1825-1874 + + + + + + + + + + + Papiers de fonctions : notes, rapports, correspondance sur les Beaux-Arts, les bibliothèques publiques, la bibliothèque de l'Arsenal, l'opéra comique. + Papiers de fonctions : notes, rapports, correspondance sur les Beaux-Arts, les bibliothèques publiques, la bibliothèque de l'Arsenal, l'opéra comique. + 1815-01-01 + 1872-12-31 + 1815-1872 + + + + 572AP/20 + Papiers de fonctions : notes, rapports, correspondance sur les Beaux-Arts, les bibliothèques publiques, la bibliothèque de l'Arsenal, l'opéra comique. + Papiers de fonctions : notes, rapports, correspondance sur les Beaux-Arts, les bibliothèques publiques, la bibliothèque de l'Arsenal, l'opéra comique. + 1815-01-01 + 1872-12-31 + 1815-1872 + + + + + + + + + EUGENE AUBRY-VITET (1845-1930) 1 + EUGENE AUBRY-VITET (1845-1930) 1 + + + 1. Fils d'Eugène Aubry et d'Amélie Vitet, sœur de Ludovic, Eugène Aubry-Vitet épousa Valentine Darblay. + + + + + + 572AP/21-572AP/95 + EUGENE AUBRY-VITET (1845-1930) 1 + EUGENE AUBRY-VITET (1845-1930) 1 + + + + + + + Papiers privés. + Papiers privés. + + + + 572AP/21 + Papiers privés. + Papiers privés. + + + + + + + Papiers de l'étude de M e Aubry (1815-1832) ; documents relatifs à l'abbé Guion et assignats (1791-1792) ; acte de baptême d'Eugène Aubry-Vitet (1845). + Papiers de l'étude de M e Aubry (1815-1832) ; documents relatifs à l'abbé Guion et assignats (1791-1792) ; acte de baptême d'Eugène Aubry-Vitet (1845). + + + + Dossier 1 + Papiers de l'étude de M e Aubry (1815-1832) ; documents relatifs à l'abbé Guion et assignats (1791-1792) ; acte de baptême d'Eugène Aubry-Vitet (1845). + Papiers de l'étude de M e Aubry (1815-1832) ; documents relatifs à l'abbé Guion et assignats (1791-1792) ; acte de baptême d'Eugène Aubry-Vitet (1845). + + + + + + + + + Service militaire et décorations. + Service militaire et décorations. + + + + Dossier 2 + Service militaire et décorations. + Service militaire et décorations. + + + + + + + + + + + Biens personnels. + Biens personnels. + + + + 572AP/22 + Biens personnels. + Biens personnels. + + + + + + + Fontaine-les Nonnes 1 : papiers et parchemins. + Fontaine-les Nonnes 1 : papiers et parchemins. + 1588-01-01 + 1786-12-31 + 1588-1786 + + + 1. Seine-et-Marne. + + + + + + Dossier 1 + Fontaine-les Nonnes 1 : papiers et parchemins. + Fontaine-les Nonnes 1 : papiers et parchemins. + 1588-01-01 + 1786-12-31 + 1588-1786 + + + + + + + + + Succession de M. Aubry : papiers relatifs à Fontaine. + Succession de M. Aubry : papiers relatifs à Fontaine. + 1872-01-01 + 1872-12-31 + 1872 + + + + Dossier 2 + Succession de M. Aubry : papiers relatifs à Fontaine. + Succession de M. Aubry : papiers relatifs à Fontaine. + 1872-01-01 + 1872-12-31 + 1872 + + + + + + + + + Journal tenu par Vallée, garde-régisseur de M. Aubry-Vitet au Pied-du-Terne pendant l'occupation allemande en 1914-1918 et photographies du Pied-du-Terne en 1922. + Journal tenu par Vallée, garde-régisseur de M. Aubry-Vitet au Pied-du-Terne pendant l'occupation allemande en 1914-1918 et photographies du Pied-du-Terne en 1922. + + + + Dossier 3 + Journal tenu par Vallée, garde-régisseur de M. Aubry-Vitet au Pied-du-Terne pendant l'occupation allemande en 1914-1918 et photographies du Pied-du-Terne en 1922. + Journal tenu par Vallée, garde-régisseur de M. Aubry-Vitet au Pied-du-Terne pendant l'occupation allemande en 1914-1918 et photographies du Pied-du-Terne en 1922. + + + + + + + + + Copie de la prisée du mobilier, objets d'art et tableaux garnissant l'hôtel d'Eugène Aubry-Vitet à Paris, rue du Rocher, 12, et la propriété d'Argenteuil 1. + Copie de la prisée du mobilier, objets d'art et tableaux garnissant l'hôtel d'Eugène Aubry-Vitet à Paris, rue du Rocher, 12, et la propriété d'Argenteuil 1. + + + 1. Val-d'Oise, ch.-l. d'arr. + + + + + + Dossier 4 + Copie de la prisée du mobilier, objets d'art et tableaux garnissant l'hôtel d'Eugène Aubry-Vitet à Paris, rue du Rocher, 12, et la propriété d'Argenteuil 1. + Copie de la prisée du mobilier, objets d'art et tableaux garnissant l'hôtel d'Eugène Aubry-Vitet à Paris, rue du Rocher, 12, et la propriété d'Argenteuil 1. + + + + + + + + + + + Ecrits d'Eugène Aubry-Vitet. + Ecrits d'Eugène Aubry-Vitet. + - 5 carnets. + - 5 carnets. + - Manuscrits : " Giraud Riquier ", " les sermonnaires du Moyen-Age ", " la réforme électorale ", " eaux d'égout et assainissement de la Seine ", rapport sur l'organisation du catéchisme de persévérance ". + - Manuscrits : " Giraud Riquier ", " les sermonnaires du Moyen-Age ", " la réforme électorale ", " eaux d'égout et assainissement de la Seine ", rapport sur l'organisation du catéchisme de persévérance ". + - " La représentation proportionnelle en France il y a 40 ans " par Eugène Aubry-Vitet, 1870-1874, Paris, 1909. + - " La représentation proportionnelle en France il y a 40 ans " par Eugène Aubry-Vitet, 1870-1874, Paris, 1909. + + + + 572AP/23 + Ecrits d'Eugène Aubry-Vitet. + Ecrits d'Eugène Aubry-Vitet. + - 5 carnets. + - 5 carnets. + - Manuscrits : " Giraud Riquier ", " les sermonnaires du Moyen-Age ", " la réforme électorale ", " eaux d'égout et assainissement de la Seine ", rapport sur l'organisation du catéchisme de persévérance ". + - Manuscrits : " Giraud Riquier ", " les sermonnaires du Moyen-Age ", " la réforme électorale ", " eaux d'égout et assainissement de la Seine ", rapport sur l'organisation du catéchisme de persévérance ". + - " La représentation proportionnelle en France il y a 40 ans " par Eugène Aubry-Vitet, 1870-1874, Paris, 1909. + - " La représentation proportionnelle en France il y a 40 ans " par Eugène Aubry-Vitet, 1870-1874, Paris, 1909. + + + + + + + + + Correspondance passive. + Correspondance passive. + + + + 572AP/24-572AP/90 + Correspondance passive. + Correspondance passive. + + + + + + + Lettres diverses, classées chronologiquement et par ordre alphabétique. + Lettres diverses, classées chronologiquement et par ordre alphabétique. + 1870-01-01 + 1936-12-31 + 1870-1936 + + + + 572AP/24-572AP/80 + Lettres diverses, classées chronologiquement et par ordre alphabétique. + Lettres diverses, classées chronologiquement et par ordre alphabétique. + 1870-01-01 + 1936-12-31 + 1870-1936 + + + + + + + 1870-1871 + 1870-1871 + + + + 572AP/24 + 1870-1871 + 1870-1871 + + + + + + + + + 1872-1873 + 1872-1873 + + + + 572AP/25 + 1872-1873 + 1872-1873 + + + + + + + + + 1874-1875 + 1874-1875 + + + + 572AP/26 + 1874-1875 + 1874-1875 + + + + + + + + + 1877-1879 + 1877-1879 + + + + 572AP/27 + 1877-1879 + 1877-1879 + + + + + + + + + 1880-1882 + 1880-1882 + + + + 572AP/28 + 1880-1882 + 1880-1882 + + + + + + + + + 1883-1884 + 1883-1884 + + + + 572AP/29 + 1883-1884 + 1883-1884 + + + + + + + + + 1885 + 1885 + + + + 572AP/30 + 1885 + 1885 + + + + + + + + + 1886 + 1886 + + + + 572AP/31 + 1886 + 1886 + + + + + + + + + 1887 [lettres non classées] + 1887 [lettres non classées] + + + + 572AP/32 + 1887 [lettres non classées] + 1887 [lettres non classées] + + + + + + + + + 1888 [lettres non classées] + 1888 [lettres non classées] + + + + 572AP/33 + 1888 [lettres non classées] + 1888 [lettres non classées] + + + + + + + + + 1889 + 1889 + + + + 572AP/34 + 1889 + 1889 + + + + + + + + + 1890 + 1890 + + + + 572AP/35 + 1890 + 1890 + + + + + + + + + 1891 + 1891 + + + + 572AP/36 + 1891 + 1891 + + + + + + + + + 1892 + 1892 + + + + 572AP/37 + 1892 + 1892 + + + + + + + + + 1893-1894 + 1893-1894 + + + + 572AP/38 + 1893-1894 + 1893-1894 + + + + + + + + + 1895 [dont une partie non classée] + 1895 [dont une partie non classée] + + + + 572AP/39 + 1895 [dont une partie non classée] + 1895 [dont une partie non classée] + + + + + + + + + 1896 [dont une partie non classée] + 1896 [dont une partie non classée] + + + + 572AP/40 + 1896 [dont une partie non classée] + 1896 [dont une partie non classée] + + + + + + + + + 1897 + 1897 + + + + 572AP/41 + 1897 + 1897 + + + + + + + + + 1898 + 1898 + + + + 572AP/42 + 1898 + 1898 + + + + + + + + + 1899 + 1899 + + + + 572AP/43 + 1899 + 1899 + + + + + + + + + 1900 + 1900 + + + + 572AP/44 + 1900 + 1900 + + + + + + + + + 1901 + 1901 + + + + 572AP/45 + 1901 + 1901 + + + + + + + + + 1902 + 1902 + + + + 572AP/46 + 1902 + 1902 + + + + + + + + + 1903 + 1903 + + + + 572AP/47 + 1903 + 1903 + + + + + + + + + 1904 + 1904 + + + + 572AP/48 + 1904 + 1904 + + + + + + + + + 1905 + 1905 + + + + 572AP/49 + 1905 + 1905 + + + + + + + + + 1906 + 1906 + + + + 572AP/50 + 1906 + 1906 + + + + + + + + + 1907 + 1907 + + + + 572AP/51 + 1907 + 1907 + + + + + + + + + 1908 + 1908 + + + + 572AP/52 + 1908 + 1908 + + + + + + + + + 1909 + 1909 + + + + 572AP/53 + 1909 + 1909 + + + + + + + + + 1910 + 1910 + + + + 572AP/54 + 1910 + 1910 + + + + + + + + + 1911 + 1911 + + + + 572AP/55 + 1911 + 1911 + + + + + + + + + 1912 + 1912 + + + + 572AP/56 + 1912 + 1912 + + + + + + + + + 1913 + 1913 + + + + 572AP/57 + 1913 + 1913 + + + + + + + + + 1914 (A-K) + 1914 (A-K) + + + + 572AP/58 + 1914 (A-K) + 1914 (A-K) + + + + + + + + + 1914 (L-Z) + 1914 (L-Z) + + + + 572AP/59 + 1914 (L-Z) + 1914 (L-Z) + + + + + + + + + 1915 (A-L) + 1915 (A-L) + + + + 572AP/60 + 1915 (A-L) + 1915 (A-L) + + + + + + + + + 1915 (M-Z) + 1915 (M-Z) + + + + 572AP/61 + 1915 (M-Z) + 1915 (M-Z) + + + + + + + + + 1916 + 1916 + + + + 572AP/62 + 1916 + 1916 + + + + + + + + + 1917 + 1917 + + + + 572AP/63 + 1917 + 1917 + + + + + + + + + 1918 + 1918 + + + + 572AP/64 + 1918 + 1918 + + + + + + + + + 1919 + 1919 + + + + 572AP/65 + 1919 + 1919 + + + + + + + + + 1920 + 1920 + + + + 572AP/66 + 1920 + 1920 + + + + + + + + + 1921 + 1921 + + + + 572AP/67 + 1921 + 1921 + + + + + + + + + 1922 + 1922 + + + + 572AP/68 + 1922 + 1922 + + + + + + + + + 1923 (A-L) et 1924 + 1923 (A-L) et 1924 + + + + 572AP/69 + 1923 (A-L) et 1924 + 1923 (A-L) et 1924 + + + + + + + + + 1925 (R-Z) + 1925 (R-Z) + + + + 572AP/70 + 1925 (R-Z) + 1925 (R-Z) + + + + + + + + + 1926 (P-Z) + 1926 (P-Z) + + + + 572AP/71 + 1926 (P-Z) + 1926 (P-Z) + + + + + + + + + 1927 + 1927 + + + + 572AP/72 + 1927 + 1927 + + + + + + + + + 1928 + 1928 + + + + 572AP/73 + 1928 + 1928 + + + + + + + + + 1929 + 1929 + + + + 572AP/74 + 1929 + 1929 + + + + + + + + + 1930 + 1930 + + + + 572AP/75 + 1930 + 1930 + + + + + + + 1 er janvier-30 mai 1930 + 1 er janvier-30 mai 1930 + + + + Dossier 1 + 1 er janvier-30 mai 1930 + 1 er janvier-30 mai 1930 + + + + + + + + + Après la mort d'Eugène Aubry-Vitet. + Après la mort d'Eugène Aubry-Vitet. + + + + Dossier 2 + Après la mort d'Eugène Aubry-Vitet. + Après la mort d'Eugène Aubry-Vitet. + + + + + + + + + + + 1931 + 1931 + + + + 572AP/76 + 1931 + 1931 + + + + + + + + + 1932 + 1932 + + + + 572AP/77 + 1932 + 1932 + + + + + + + + + 1933 + 1933 + + + + 572AP/78 + 1933 + 1933 + + + + + + + 1 er janvier-31 août 1933. + 1 er janvier-31 août 1933. + + + + Dossier 1 + 1 er janvier-31 août 1933. + 1 er janvier-31 août 1933. + + + + + + + + + 1 er septembre-31 décembre 1933. + 1 er septembre-31 décembre 1933. + + + + Dossier 2 + 1 er septembre-31 décembre 1933. + 1 er septembre-31 décembre 1933. + + + + + + + + + + + 1934 + 1934 + + + + 572AP/79 + 1934 + 1934 + + + + + + + + + 1935-1936 + 1935-1936 + + + + 572AP/80 + 1935-1936 + 1935-1936 + + + + + + + + + + + Lettres des Princes. + Lettres des Princes. + + + + 572AP/81-572AP/83 + Lettres des Princes. + Lettres des Princes. + + + + + + + + + + 572AP/81 + + + + + + + Philippe, duc d'Orléans (1869-1926) et Marie-Dorothée de Habsbourg, duchesse d'Orléans. + Philippe, duc d'Orléans (1869-1926) et Marie-Dorothée de Habsbourg, duchesse d'Orléans. + 1889-01-01 + 1910-12-31 + 1889-1910 + + + + Dossier 1 + Philippe, duc d'Orléans (1869-1926) et Marie-Dorothée de Habsbourg, duchesse d'Orléans. + Philippe, duc d'Orléans (1869-1926) et Marie-Dorothée de Habsbourg, duchesse d'Orléans. + 1889-01-01 + 1910-12-31 + 1889-1910 + + + + + + + + + Philippe d'Orléans, comte de Paris (1838-1894), et Isabelle d'Orléans, comtesse de Paris (1848-1919). + Philippe d'Orléans, comte de Paris (1838-1894), et Isabelle d'Orléans, comtesse de Paris (1848-1919). + 1888-01-01 + 1914-12-31 + 1888-1914 + + + + Dossier 2 + Philippe d'Orléans, comte de Paris (1838-1894), et Isabelle d'Orléans, comtesse de Paris (1848-1919). + Philippe d'Orléans, comte de Paris (1838-1894), et Isabelle d'Orléans, comtesse de Paris (1848-1919). + 1888-01-01 + 1914-12-31 + 1888-1914 + + + + + + + + + Robert, duc de Chartres (1840-1910) et Françoise d'Orléans, duchesse de Chartres. + Robert, duc de Chartres (1840-1910) et Françoise d'Orléans, duchesse de Chartres. + 1886-01-01 + 1923-12-31 + 1886-1923 + + + + Dossier 3 + Robert, duc de Chartres (1840-1910) et Françoise d'Orléans, duchesse de Chartres. + Robert, duc de Chartres (1840-1910) et Françoise d'Orléans, duchesse de Chartres. + 1886-01-01 + 1923-12-31 + 1886-1923 + + + + + + + + + + + + + + 572AP/82 + + + + + + + Manuel, roi du Portugal, et Amélie (1865-1951), reine du Portugal. + Manuel, roi du Portugal, et Amélie (1865-1951), reine du Portugal. + Emmanuel d'Italie, duc d'Aoste, et Hélène, duchesse d'Aoste. + Emmanuel d'Italie, duc d'Aoste, et Hélène, duchesse d'Aoste. + Ferdinand, duc de Montpensier (1884-1924). + Ferdinand, duc de Montpensier (1884-1924). + Charles et Louise, infants d'Espagne. + Charles et Louise, infants d'Espagne. + Isabelle de Guise, comtesse d'Harcourt. + Isabelle de Guise, comtesse d'Harcourt. + Geneviève d'Orléans, comtesse de Chaponay. + Geneviève d'Orléans, comtesse de Chaponay. + Antoine et Eulalie, infants d'Espagne. + Antoine et Eulalie, infants d'Espagne. + 1893-01-01 + 1936-12-31 + 1893-1936 + + + + Dossier 1 + Manuel, roi du Portugal, et Amélie (1865-1951), reine du Portugal. + Manuel, roi du Portugal, et Amélie (1865-1951), reine du Portugal. + Emmanuel d'Italie, duc d'Aoste, et Hélène, duchesse d'Aoste. + Emmanuel d'Italie, duc d'Aoste, et Hélène, duchesse d'Aoste. + Ferdinand, duc de Montpensier (1884-1924). + Ferdinand, duc de Montpensier (1884-1924). + Charles et Louise, infants d'Espagne. + Charles et Louise, infants d'Espagne. + Isabelle de Guise, comtesse d'Harcourt. + Isabelle de Guise, comtesse d'Harcourt. + Geneviève d'Orléans, comtesse de Chaponay. + Geneviève d'Orléans, comtesse de Chaponay. + Antoine et Eulalie, infants d'Espagne. + Antoine et Eulalie, infants d'Espagne. + 1893-01-01 + 1936-12-31 + 1893-1936 + + + + + + + + + Marguerite, duchesse de Magenta. + Marguerite, duchesse de Magenta. + Jean, duc de Guise, et Isabelle, duchesse de Guise (1878-1961). + Jean, duc de Guise, et Isabelle, duchesse de Guise (1878-1961). + Waldemar, prince de Danemark, et Marie, princesse de Danemark. + Waldemar, prince de Danemark, et Marie, princesse de Danemark. + Henri d'Orléans. + Henri d'Orléans. + Duc de Penthièvre. + Duc de Penthièvre. + François, prince de Joinville (1818-1900). + François, prince de Joinville (1818-1900). + Princesse Clémentine (1817-1907). + Princesse Clémentine (1817-1907). + Clotilde, archiduchesse de Saxe-Cobourg. + Clotilde, archiduchesse de Saxe-Cobourg. + Prince d'Orléans-Bragance. + Prince d'Orléans-Bragance. + Prince Philippe de Bourbon-Bragance. + Prince Philippe de Bourbon-Bragance. + Princesse de Battenberg. + Princesse de Battenberg. + Duchesse de Berwick et d'Albe. + Duchesse de Berwick et d'Albe. + + + + Dossier 2 + Marguerite, duchesse de Magenta. + Marguerite, duchesse de Magenta. + Jean, duc de Guise, et Isabelle, duchesse de Guise (1878-1961). + Jean, duc de Guise, et Isabelle, duchesse de Guise (1878-1961). + Waldemar, prince de Danemark, et Marie, princesse de Danemark. + Waldemar, prince de Danemark, et Marie, princesse de Danemark. + Henri d'Orléans. + Henri d'Orléans. + Duc de Penthièvre. + Duc de Penthièvre. + François, prince de Joinville (1818-1900). + François, prince de Joinville (1818-1900). + Princesse Clémentine (1817-1907). + Princesse Clémentine (1817-1907). + Clotilde, archiduchesse de Saxe-Cobourg. + Clotilde, archiduchesse de Saxe-Cobourg. + Prince d'Orléans-Bragance. + Prince d'Orléans-Bragance. + Prince Philippe de Bourbon-Bragance. + Prince Philippe de Bourbon-Bragance. + Princesse de Battenberg. + Princesse de Battenberg. + Duchesse de Berwick et d'Albe. + Duchesse de Berwick et d'Albe. + + + + + + + + + + + + + + 572AP/83 + + + + + + + Emmanuel, duc de Vendôme (1872), et Henriette, duchesse de Vendôme. + Emmanuel, duc de Vendôme (1872), et Henriette, duchesse de Vendôme. + Ferdinand, duc d'Alençon (1844-1897) et Sophie, duchesse d'Alençon (1847-1897). + Ferdinand, duc d'Alençon (1844-1897) et Sophie, duchesse d'Alençon (1847-1897). + Louis, duc de Nemours (1814-1896) et Victoire de Saxe-Cobourg-Gotha, duchesse de Nemours (1822-1857). + Louis, duc de Nemours (1814-1896) et Victoire de Saxe-Cobourg-Gotha, duchesse de Nemours (1822-1857). + 1873-01-01 + 1931-12-31 + 1873-1931 + + + + Dossier 1 + Emmanuel, duc de Vendôme (1872), et Henriette, duchesse de Vendôme. + Emmanuel, duc de Vendôme (1872), et Henriette, duchesse de Vendôme. + Ferdinand, duc d'Alençon (1844-1897) et Sophie, duchesse d'Alençon (1847-1897). + Ferdinand, duc d'Alençon (1844-1897) et Sophie, duchesse d'Alençon (1847-1897). + Louis, duc de Nemours (1814-1896) et Victoire de Saxe-Cobourg-Gotha, duchesse de Nemours (1822-1857). + Louis, duc de Nemours (1814-1896) et Victoire de Saxe-Cobourg-Gotha, duchesse de Nemours (1822-1857). + 1873-01-01 + 1931-12-31 + 1873-1931 + + + + + + + + + Copies de lettres princières (1884) ; correspondance pendant le dernier service d'Eugène Aubry-Vitet à Stove-House concernant la maladie et la mort de Philippe d'Orléans, comte de Paris, correspondance échangée avec sa femme et comptes rendus de journaux (1894). + Copies de lettres princières (1884) ; correspondance pendant le dernier service d'Eugène Aubry-Vitet à Stove-House concernant la maladie et la mort de Philippe d'Orléans, comte de Paris, correspondance échangée avec sa femme et comptes rendus de journaux (1894). + + + + Dossier 2 + Copies de lettres princières (1884) ; correspondance pendant le dernier service d'Eugène Aubry-Vitet à Stove-House concernant la maladie et la mort de Philippe d'Orléans, comte de Paris, correspondance échangée avec sa femme et comptes rendus de journaux (1894). + Copies de lettres princières (1884) ; correspondance pendant le dernier service d'Eugène Aubry-Vitet à Stove-House concernant la maladie et la mort de Philippe d'Orléans, comte de Paris, correspondance échangée avec sa femme et comptes rendus de journaux (1894). + + + + + + + + + Lettres et papiers divers : chasses, menus, tables et menus de la rue de Varenne. + Lettres et papiers divers : chasses, menus, tables et menus de la rue de Varenne. + + + + Dossier 3 + Lettres et papiers divers : chasses, menus, tables et menus de la rue de Varenne. + Lettres et papiers divers : chasses, menus, tables et menus de la rue de Varenne. + + + + + + + + + + + + + Lettres de félicitations et de condoléances. + Lettres de félicitations et de condoléances. + 1895-01-01 + 1936-12-31 + 1895-1936 + + + + 572AP/84-572AP/90 + Lettres de félicitations et de condoléances. + Lettres de félicitations et de condoléances. + 1895-01-01 + 1936-12-31 + 1895-1936 + + + + + + + Lettres de félicitations (y compris celle des princes) à l'occasion du mariage de Jeanne Aubry-Vitet avec le comte Carl Costa de Beauregard. + Lettres de félicitations (y compris celle des princes) à l'occasion du mariage de Jeanne Aubry-Vitet avec le comte Carl Costa de Beauregard. + 1895-01-01 + 1895-12-31 + 1895 + + + + 572AP/84 + Lettres de félicitations (y compris celle des princes) à l'occasion du mariage de Jeanne Aubry-Vitet avec le comte Carl Costa de Beauregard. + Lettres de félicitations (y compris celle des princes) à l'occasion du mariage de Jeanne Aubry-Vitet avec le comte Carl Costa de Beauregard. + 1895-01-01 + 1895-12-31 + 1895 + + + + + + + + + Lettres de condoléances dont celles des princes. + Lettres de condoléances dont celles des princes. + 1897-01-01 + 1899-12-31 + 1897-1899 + + + + 572AP/85 + Lettres de condoléances dont celles des princes. + Lettres de condoléances dont celles des princes. + 1897-01-01 + 1899-12-31 + 1897-1899 + + + + + + + Après le décès de Madame Paul Darblay, mère de Madame Aubry-Vitet. + Après le décès de Madame Paul Darblay, mère de Madame Aubry-Vitet. + 1897-01-01 + 1897-12-31 + 1897 + + + + Dossier 1 + Après le décès de Madame Paul Darblay, mère de Madame Aubry-Vitet. + Après le décès de Madame Paul Darblay, mère de Madame Aubry-Vitet. + 1897-01-01 + 1897-12-31 + 1897 + + + + + + + + + Après le décès d'Aymé Darblay, frère de Madame Aubry-Vitet. + Après le décès d'Aymé Darblay, frère de Madame Aubry-Vitet. + 1899-01-01 + 1899-12-31 + 1899 + + + + Dossier 2 + Après le décès d'Aymé Darblay, frère de Madame Aubry-Vitet. + Après le décès d'Aymé Darblay, frère de Madame Aubry-Vitet. + 1899-01-01 + 1899-12-31 + 1899 + + + + + + + + + + + Lettres de condoléances dont celles des princes d'Orléans après le décès de Paul Darblay, père de Madame Aubry-Vitet. + Lettres de condoléances dont celles des princes d'Orléans après le décès de Paul Darblay, père de Madame Aubry-Vitet. + 1908-01-01 + 1908-12-31 + 1908 + + + + 572AP/86 + Lettres de condoléances dont celles des princes d'Orléans après le décès de Paul Darblay, père de Madame Aubry-Vitet. + Lettres de condoléances dont celles des princes d'Orléans après le décès de Paul Darblay, père de Madame Aubry-Vitet. + 1908-01-01 + 1908-12-31 + 1908 + + + + + + + + + Lettres de condoléances adressées à Eugène et Valentine Aubry-Vitet. + Lettres de condoléances adressées à Eugène et Valentine Aubry-Vitet. + + + + 572AP/87 + Lettres de condoléances adressées à Eugène et Valentine Aubry-Vitet. + Lettres de condoléances adressées à Eugène et Valentine Aubry-Vitet. + + + + + + + Après la mort de leur petit-fils Jean Costa de Beauregard. + Après la mort de leur petit-fils Jean Costa de Beauregard. + 1908-01-01 + 1908-12-31 + 1908 + + + + Dossier 1 + Après la mort de leur petit-fils Jean Costa de Beauregard. + Après la mort de leur petit-fils Jean Costa de Beauregard. + 1908-01-01 + 1908-12-31 + 1908 + + + + + + + + + Après la mort de leur gendre, Carl Costa de Beauregard. + Après la mort de leur gendre, Carl Costa de Beauregard. + 1915-01-01 + 1915-12-31 + 1915 + + + + Dossier 2 + Après la mort de leur gendre, Carl Costa de Beauregard. + Après la mort de leur gendre, Carl Costa de Beauregard. + 1915-01-01 + 1915-12-31 + 1915 + + + + + + + + + + + Lettres de condoléances adressées à Eugène et Valentine Aubry-Vitet. + Lettres de condoléances adressées à Eugène et Valentine Aubry-Vitet. + 1918-01-01 + 1918-12-31 + 1918 + + + + 572AP/88 + Lettres de condoléances adressées à Eugène et Valentine Aubry-Vitet. + Lettres de condoléances adressées à Eugène et Valentine Aubry-Vitet. + 1918-01-01 + 1918-12-31 + 1918 + + + + + + + Après la mort de leur petit-fils Gilbert de Rohan-Chabot, sous-lieutenant au 1 er régiment de cuirassiers, tué à Montvoisin le 16 juillet 1918. + Après la mort de leur petit-fils Gilbert de Rohan-Chabot, sous-lieutenant au 1 er régiment de cuirassiers, tué à Montvoisin le 16 juillet 1918. + + + + Dossier 1 + Après la mort de leur petit-fils Gilbert de Rohan-Chabot, sous-lieutenant au 1 er régiment de cuirassiers, tué à Montvoisin le 16 juillet 1918. + Après la mort de leur petit-fils Gilbert de Rohan-Chabot, sous-lieutenant au 1 er régiment de cuirassiers, tué à Montvoisin le 16 juillet 1918. + + + + + + + + + Après la mort de leur petit-gendre, le marquis Jacquelin de Maillé de La Tour Landry, lieutenant d'infanterie, tué à Marinvilliers, le 22 juillet 1918. + Après la mort de leur petit-gendre, le marquis Jacquelin de Maillé de La Tour Landry, lieutenant d'infanterie, tué à Marinvilliers, le 22 juillet 1918. + + + + Dossier 2 + Après la mort de leur petit-gendre, le marquis Jacquelin de Maillé de La Tour Landry, lieutenant d'infanterie, tué à Marinvilliers, le 22 juillet 1918. + Après la mort de leur petit-gendre, le marquis Jacquelin de Maillé de La Tour Landry, lieutenant d'infanterie, tué à Marinvilliers, le 22 juillet 1918. + + + + + + + + + + + Lettres de condoléances adressées à Madame Aubry-Vitet. + Lettres de condoléances adressées à Madame Aubry-Vitet. + 1930-01-01 + 1934-12-31 + 1930-1934 + + + + 572AP/89 + Lettres de condoléances adressées à Madame Aubry-Vitet. + Lettres de condoléances adressées à Madame Aubry-Vitet. + 1930-01-01 + 1934-12-31 + 1930-1934 + + + + + + + Après le décès de M. Aubry-Vitet (30 mai 1930) : comptes rendus des journaux, remerciements pour ses mémoires. + Après le décès de M. Aubry-Vitet (30 mai 1930) : comptes rendus des journaux, remerciements pour ses mémoires. + + + + Dossier 1 + Après le décès de M. Aubry-Vitet (30 mai 1930) : comptes rendus des journaux, remerciements pour ses mémoires. + Après le décès de M. Aubry-Vitet (30 mai 1930) : comptes rendus des journaux, remerciements pour ses mémoires. + + + + + + + + + Après le décès de la comtesse de Rohan-Chabot, sa fille. + Après le décès de la comtesse de Rohan-Chabot, sa fille. + 1934-06-01 + 1934-06-30 + Juin 1934 + + + + Dossier 2 + Après le décès de la comtesse de Rohan-Chabot, sa fille. + Après le décès de la comtesse de Rohan-Chabot, sa fille. + 1934-06-01 + 1934-06-30 + Juin 1934 + + + + + + + + + + + Lettres de condoléances adressées à la comtesse Costa de Beauregard après le décès de sa mère, Madame Aubry-Vitet (27 mars 1936) ; liste des signatures données au convoi funéraire. + Lettres de condoléances adressées à la comtesse Costa de Beauregard après le décès de sa mère, Madame Aubry-Vitet (27 mars 1936) ; liste des signatures données au convoi funéraire. + + + + 572AP/90 + Lettres de condoléances adressées à la comtesse Costa de Beauregard après le décès de sa mère, Madame Aubry-Vitet (27 mars 1936) ; liste des signatures données au convoi funéraire. + Lettres de condoléances adressées à la comtesse Costa de Beauregard après le décès de sa mère, Madame Aubry-Vitet (27 mars 1936) ; liste des signatures données au convoi funéraire. + + + + + + + + + + + + + Activités diverses d'Eugène Aubry-Vitet et de sa femme. + Activités diverses d'Eugène Aubry-Vitet et de sa femme. + + + + 572AP/91-572AP/93 + Activités diverses d'Eugène Aubry-Vitet et de sa femme. + Activités diverses d'Eugène Aubry-Vitet et de sa femme. + + + + + + + + + + 572AP/91 + + + + + + + Courrier du dimanche. + Courrier du dimanche. + Exposition de 1878. + Exposition de 1878. + Elections législatives en Seine-et-Oise. 1876. + Elections législatives en Seine-et-Oise. 1876. + 1876-01-01 + 1878-12-31 + 1876-1878 + + + + Dossier 1 + Courrier du dimanche. + Courrier du dimanche. + Exposition de 1878. + Exposition de 1878. + Elections législatives en Seine-et-Oise. 1876. + Elections législatives en Seine-et-Oise. 1876. + 1876-01-01 + 1878-12-31 + 1876-1878 + + + + + + + + + Ville d'Argenteuil. + Ville d'Argenteuil. + Asile du Vésinet. + Asile du Vésinet. + Conseil général de Seine-et-Oise. + Conseil général de Seine-et-Oise. + 1872-01-01 + 1879-12-31 + 1872-1879 + + + + Dossier 2 + Ville d'Argenteuil. + Ville d'Argenteuil. + Asile du Vésinet. + Asile du Vésinet. + Conseil général de Seine-et-Oise. + Conseil général de Seine-et-Oise. + 1872-01-01 + 1879-12-31 + 1872-1879 + + + + + + + + + + + + + + 572AP/92 + + + + + + + Blocs-mementos. 1917-1818, 1927-1932. + Blocs-mementos. 1917-1818, 1927-1932. + Journal. Mai-juillet 1929 et octobre 1933-mars 1936. + Journal. Mai-juillet 1929 et octobre 1933-mars 1936. + Liste des personnes reçues par Eugène Aubry-Vitet et sa femme au château de Fontaines-les-Nonnes. + Liste des personnes reçues par Eugène Aubry-Vitet et sa femme au château de Fontaines-les-Nonnes. + Demandes de secours adressées aux Aubry-Vitet. + Demandes de secours adressées aux Aubry-Vitet. + + + + Dossier 1 + Blocs-mementos. 1917-1818, 1927-1932. + Blocs-mementos. 1917-1818, 1927-1932. + Journal. Mai-juillet 1929 et octobre 1933-mars 1936. + Journal. Mai-juillet 1929 et octobre 1933-mars 1936. + Liste des personnes reçues par Eugène Aubry-Vitet et sa femme au château de Fontaines-les-Nonnes. + Liste des personnes reçues par Eugène Aubry-Vitet et sa femme au château de Fontaines-les-Nonnes. + Demandes de secours adressées aux Aubry-Vitet. + Demandes de secours adressées aux Aubry-Vitet. + + + + + + + + + Société des Engagés volontaires. + Société des Engagés volontaires. + + + + Dossier 2 + Société des Engagés volontaires. + Société des Engagés volontaires. + + + + + + + + + + + Voyage en Egypte et en Italie. + Voyage en Egypte et en Italie. + 1906-01-01 + 1906-12-31 + 1906 + + + + 572AP/93 + Voyage en Egypte et en Italie. + Voyage en Egypte et en Italie. + 1906-01-01 + 1906-12-31 + 1906 + + + + + + + + + + + Factures. + Factures. + + + + 572AP/94-572AP/95 + Factures. + Factures. + + + + + + + 1898-1901. + 1898-1901. + + + + 572AP/94 + 1898-1901. + 1898-1901. + + + + + + + + + 1902, 1906-1907. + 1902, 1906-1907. + + + + 572AP/95 + 1902, 1906-1907. + 1902, 1906-1907. + + + + + + + + + + + FAMILLE COSTA DE BEAUREGARD 1. + FAMILLE COSTA DE BEAUREGARD 1. + + + 1. Une des filles d'Eugène Aubry-Vitet et de Valentine Darblay, Jeanne, avait épousé le comte Carl Costa de Beauregard. + + + + + + 572AP/96-572AP/111 + FAMILLE COSTA DE BEAUREGARD 1. + FAMILLE COSTA DE BEAUREGARD 1. + + + + + + + Papiers personnels de Jeanne Costa de Beauregard. + Papiers personnels de Jeanne Costa de Beauregard. + + + + 572AP/96 + Papiers personnels de Jeanne Costa de Beauregard. + Papiers personnels de Jeanne Costa de Beauregard. + + + + + + + Pièces isolées. + Pièces isolées. + Liste des cadeaux offerts pour son mariage en 1895. + Liste des cadeaux offerts pour son mariage en 1895. + Sauf-conduit. 1917. + Sauf-conduit. 1917. + Notes médicales et sur l'anatomie. + Notes médicales et sur l'anatomie. + Deux partitions de musique. + Deux partitions de musique. + Catalogue de la bibliothèque " B " près du Billard, à Fontaine. + Catalogue de la bibliothèque " B " près du Billard, à Fontaine. + Plan du moulin à vent de Fontaines-les-Nonnes. + Plan du moulin à vent de Fontaines-les-Nonnes. + + + + Dossier 1 + Pièces isolées. + Pièces isolées. + Liste des cadeaux offerts pour son mariage en 1895. + Liste des cadeaux offerts pour son mariage en 1895. + Sauf-conduit. 1917. + Sauf-conduit. 1917. + Notes médicales et sur l'anatomie. + Notes médicales et sur l'anatomie. + Deux partitions de musique. + Deux partitions de musique. + Catalogue de la bibliothèque " B " près du Billard, à Fontaine. + Catalogue de la bibliothèque " B " près du Billard, à Fontaine. + Plan du moulin à vent de Fontaines-les-Nonnes. + Plan du moulin à vent de Fontaines-les-Nonnes. + + + + + + + + + Trois répertoires d'adresses. + Trois répertoires d'adresses. + + + + Dossier 2 + Trois répertoires d'adresses. + Trois répertoires d'adresses. + + + + + + + + + + + Correspondance passive de Carl et de Jeanne Costa de Beauregard. + Correspondance passive de Carl et de Jeanne Costa de Beauregard. + + + + 572AP/97-572AP/106 + Correspondance passive de Carl et de Jeanne Costa de Beauregard. + Correspondance passive de Carl et de Jeanne Costa de Beauregard. + + + + + + + Lettres reçues par Carl Costa de Beauregard (non classées). + Lettres reçues par Carl Costa de Beauregard (non classées). + 1904-01-01 + 1915-12-31 + 1904-1915 + + + + 572AP/97 + Lettres reçues par Carl Costa de Beauregard (non classées). + Lettres reçues par Carl Costa de Beauregard (non classées). + 1904-01-01 + 1915-12-31 + 1904-1915 + + + + + + + + + Lettres de condoléances reçues par Jeanne Costa de Beauregard après le décès de son mari. + Lettres de condoléances reçues par Jeanne Costa de Beauregard après le décès de son mari. + 1915-01-01 + 1915-12-31 + 1915 + + + + 572AP/98 + Lettres de condoléances reçues par Jeanne Costa de Beauregard après le décès de son mari. + Lettres de condoléances reçues par Jeanne Costa de Beauregard après le décès de son mari. + 1915-01-01 + 1915-12-31 + 1915 + + + + + + + + + Lettres reçues par Jeanne Costa de Beauregard. + Lettres reçues par Jeanne Costa de Beauregard. + + + + 572AP/99 + Lettres reçues par Jeanne Costa de Beauregard. + Lettres reçues par Jeanne Costa de Beauregard. + + + + + + + Lettres de sa mère. + Lettres de sa mère. + 1919-01-01 + 1925-12-31 + 1919-1925 + + + + Dossier 1 + Lettres de sa mère. + Lettres de sa mère. + 1919-01-01 + 1925-12-31 + 1919-1925 + + + + + + + + + Lettres de ses enfants. + Lettres de ses enfants. + 1914-01-01 + 1915-12-31 + 1914-1915 + + + + Dossier 2 + Lettres de ses enfants. + Lettres de ses enfants. + 1914-01-01 + 1915-12-31 + 1914-1915 + + + + + + + + + Lettres de son fils Amédée et d'amis. + Lettres de son fils Amédée et d'amis. + 1922-01-01 + 1928-12-31 + 1922-1928 + + + + Dossier 3 + Lettres de son fils Amédée et d'amis. + Lettres de son fils Amédée et d'amis. + 1922-01-01 + 1928-12-31 + 1922-1928 + + + + + + + + + Lettres de Josef Cibulka. + Lettres de Josef Cibulka. + 1921-01-01 + 1923-12-31 + 1921-1923 + + + + Dossier 4 + Lettres de Josef Cibulka. + Lettres de Josef Cibulka. + 1921-01-01 + 1923-12-31 + 1921-1923 + + + + + + + + + + + Lettres reçues par Jeanne Costa de Beauregard (non classées). + Lettres reçues par Jeanne Costa de Beauregard (non classées). + + + + 572AP/100 + Lettres reçues par Jeanne Costa de Beauregard (non classées). + Lettres reçues par Jeanne Costa de Beauregard (non classées). + + + + + + + + + Lettres reçues par Jeanne Costa de Beauregard (non classées). + Lettres reçues par Jeanne Costa de Beauregard (non classées). + 1929-01-01 + 1930-12-31 + 1929-1930 + + + + 572AP/101 + Lettres reçues par Jeanne Costa de Beauregard (non classées). + Lettres reçues par Jeanne Costa de Beauregard (non classées). + 1929-01-01 + 1930-12-31 + 1929-1930 + + + + + + + + + Lettres reçues par Jeanne Costa de Beauregard (non classées). + Lettres reçues par Jeanne Costa de Beauregard (non classées). + 1903-01-01 + 1926-12-31 + 1903-1926 + + + + 572AP/102 + Lettres reçues par Jeanne Costa de Beauregard (non classées). + Lettres reçues par Jeanne Costa de Beauregard (non classées). + 1903-01-01 + 1926-12-31 + 1903-1926 + + + + + + + + + Lettres reçues par Jeanne Costa de Beauregard (non classées). + Lettres reçues par Jeanne Costa de Beauregard (non classées). + 1910-01-01 + 1927-12-31 + 1910-1927 + + + + 572AP/103 + Lettres reçues par Jeanne Costa de Beauregard (non classées). + Lettres reçues par Jeanne Costa de Beauregard (non classées). + 1910-01-01 + 1927-12-31 + 1910-1927 + + + + + + + + + Lettres reçues par Jeanne Costa de Beauregard (non classées). + Lettres reçues par Jeanne Costa de Beauregard (non classées). + 1937-01-01 + 1938-12-31 + 1937-1938 + + + + 572AP/104 + Lettres reçues par Jeanne Costa de Beauregard (non classées). + Lettres reçues par Jeanne Costa de Beauregard (non classées). + 1937-01-01 + 1938-12-31 + 1937-1938 + + + + + + + + + Lettres reçues par Jeanne Costa de Beauregard (non classées). + Lettres reçues par Jeanne Costa de Beauregard (non classées). + 1922-01-01 + 1952-12-31 + 1922-1952 + + + + 572AP/105 + Lettres reçues par Jeanne Costa de Beauregard (non classées). + Lettres reçues par Jeanne Costa de Beauregard (non classées). + 1922-01-01 + 1952-12-31 + 1922-1952 + + + + + + + + + Lettres reçues par Jeanne Costa de Beauregard (non classées). + Lettres reçues par Jeanne Costa de Beauregard (non classées). + 1942-01-01 + 1955-12-31 + 1942-1955 + + + + 572AP/106 + Lettres reçues par Jeanne Costa de Beauregard (non classées). + Lettres reçues par Jeanne Costa de Beauregard (non classées). + 1942-01-01 + 1955-12-31 + 1942-1955 + + + + + + + 1942-1955. + 1942-1955. + + + + Dossier 1 + 1942-1955. + 1942-1955. + + + + + + + + + 1951-1952. + 1951-1952. + + + + Dossier 2 + 1951-1952. + 1951-1952. + + + + + + + + + + + + + Factures ; prospectus publicitaires ; trois carnets de dépenses. + Factures ; prospectus publicitaires ; trois carnets de dépenses. + 1931-01-01 + 1934-12-31 + 1931-1934 + + + + 572AP/107 + Factures ; prospectus publicitaires ; trois carnets de dépenses. + Factures ; prospectus publicitaires ; trois carnets de dépenses. + 1931-01-01 + 1934-12-31 + 1931-1934 + + + + + + + + + Papiers personnels d'Amédée Costa de Beauregard 1. + Papiers personnels d'Amédée Costa de Beauregard 1. + + + 1. Fils de Carl et de Jeanne Costa de Beauuregard. + + + + + + 572AP/108 + Papiers personnels d'Amédée Costa de Beauregard 1. + Papiers personnels d'Amédée Costa de Beauregard 1. + + + + + + + Pièces d'identité, passeport, photographies. + Pièces d'identité, passeport, photographies. + + + + Dossier 1 + Pièces d'identité, passeport, photographies. + Pièces d'identité, passeport, photographies. + + + + + + + + + Etats de valeurs détenues par Amédée Costa de Beauregard. + Etats de valeurs détenues par Amédée Costa de Beauregard. + 1920-01-01 + 1928-12-31 + 1920-1928 + + + + Dossier 2 + Etats de valeurs détenues par Amédée Costa de Beauregard. + Etats de valeurs détenues par Amédée Costa de Beauregard. + 1920-01-01 + 1928-12-31 + 1920-1928 + + + + + + + + + Déclarations de revenus. + Déclarations de revenus. + 1949-01-01 + 1951-12-31 + 1949-1951 + + + + Dossier 3 + Déclarations de revenus. + Déclarations de revenus. + 1949-01-01 + 1951-12-31 + 1949-1951 + + + + + + + + + Propriété du Pecq : correspondance, contrats d'assurance. + Propriété du Pecq : correspondance, contrats d'assurance. + 1952-01-01 + 1955-12-31 + 1952-1955 + + + + Dossier 4 + Propriété du Pecq : correspondance, contrats d'assurance. + Propriété du Pecq : correspondance, contrats d'assurance. + 1952-01-01 + 1955-12-31 + 1952-1955 + + + + + + + + + Factures de travaux au château de Fontaine-les-Nonnes (Seine-et-Marne). + Factures de travaux au château de Fontaine-les-Nonnes (Seine-et-Marne). + 1951-01-01 + 1955-12-31 + 1951-1955 + + + + Dossier 5 + Factures de travaux au château de Fontaine-les-Nonnes (Seine-et-Marne). + Factures de travaux au château de Fontaine-les-Nonnes (Seine-et-Marne). + 1951-01-01 + 1955-12-31 + 1951-1955 + + + + + + + + + Succession d'Amédée Costa de Beauregard : correspondance. + Succession d'Amédée Costa de Beauregard : correspondance. + 1954-01-01 + 1955-12-31 + 1954-1955 + + + + Dossier 6 + Succession d'Amédée Costa de Beauregard : correspondance. + Succession d'Amédée Costa de Beauregard : correspondance. + 1954-01-01 + 1955-12-31 + 1954-1955 + + + + + + + + + Pièce isolée : étude dactylographiée sur les coutumes du pays Gouraghé. S.d. + Pièce isolée : étude dactylographiée sur les coutumes du pays Gouraghé. S.d. + + + + Dossier 7 + Pièce isolée : étude dactylographiée sur les coutumes du pays Gouraghé. S.d. + Pièce isolée : étude dactylographiée sur les coutumes du pays Gouraghé. S.d. + + + + + + + + + + + Papiers d'affaires d'Amédée Costa de Beauregard + Papiers d'affaires d'Amédée Costa de Beauregard + + + + 572AP/109 + Papiers d'affaires d'Amédée Costa de Beauregard + Papiers d'affaires d'Amédée Costa de Beauregard + + + + + + + Correspondance active et passive. + Correspondance active et passive. + 1945-01-01 + 1950-12-31 + 1945-1950 + + + + Dossier 1 + Correspondance active et passive. + Correspondance active et passive. + 1945-01-01 + 1950-12-31 + 1945-1950 + + + + + + + + + Correspondance active et passive. + Correspondance active et passive. + 1951-01-01 + 1954-12-31 + 1951-1954 + + + + Dossier 2 + Correspondance active et passive. + Correspondance active et passive. + 1951-01-01 + 1954-12-31 + 1951-1954 + + + + + + + + + Correspondance échangée avec Jean le Royer. + Correspondance échangée avec Jean le Royer. + + + + Dossier 3 + Correspondance échangée avec Jean le Royer. + Correspondance échangée avec Jean le Royer. + + + + + + + + + Correspondance échangée avec les Forges et Ateliers de Ciommentry-Oissel. + Correspondance échangée avec les Forges et Ateliers de Ciommentry-Oissel. + 1951-01-01 + 1954-12-31 + 1951-1954 + + + + Dossier 4 + Correspondance échangée avec les Forges et Ateliers de Ciommentry-Oissel. + Correspondance échangée avec les Forges et Ateliers de Ciommentry-Oissel. + 1951-01-01 + 1954-12-31 + 1951-1954 + + + + + + + + + Correspondance, photographies, documentation relative à des missions aux Etats-Unis et à l'armement des avions. + Correspondance, photographies, documentation relative à des missions aux Etats-Unis et à l'armement des avions. + 1944-01-01 + 1951-12-31 + 1944-1951 + + + + Dossier 5 + Correspondance, photographies, documentation relative à des missions aux Etats-Unis et à l'armement des avions. + Correspondance, photographies, documentation relative à des missions aux Etats-Unis et à l'armement des avions. + 1944-01-01 + 1951-12-31 + 1944-1951 + + + + + + + + + Pièces isolées : brochures sur L'Air liquide et les Tréfileries et laminoirs du Havre ; liste de membres du CS Moto. + Pièces isolées : brochures sur L'Air liquide et les Tréfileries et laminoirs du Havre ; liste de membres du CS Moto. + 1952-01-01 + 1955-12-31 + 1952-1955 + + + + Dossier 6 + Pièces isolées : brochures sur L'Air liquide et les Tréfileries et laminoirs du Havre ; liste de membres du CS Moto. + Pièces isolées : brochures sur L'Air liquide et les Tréfileries et laminoirs du Havre ; liste de membres du CS Moto. + 1952-01-01 + 1955-12-31 + 1952-1955 + + + + + + + + + + + Documentation technique sur l'aéronautique ; annuaire 1948 de l'Aéroclub de France. + Documentation technique sur l'aéronautique ; annuaire 1948 de l'Aéroclub de France. + 1938-01-01 + 1948-12-31 + 1938-1948 + + + + 572AP/110-572AP/111 + Documentation technique sur l'aéronautique ; annuaire 1948 de l'Aéroclub de France. + Documentation technique sur l'aéronautique ; annuaire 1948 de l'Aéroclub de France. + 1938-01-01 + 1948-12-31 + 1938-1948 + + + + + + + + + COLLECTION DE PHOTOGRAPHIES. + COLLECTION DE PHOTOGRAPHIES. + + + + 572AP/112-572AP/122 + COLLECTION DE PHOTOGRAPHIES. + COLLECTION DE PHOTOGRAPHIES. + + + + + + + Quatre albums de photographies dont deux sur la Belgique. + Quatre albums de photographies dont deux sur la Belgique. + + + + 572AP/112 + Quatre albums de photographies dont deux sur la Belgique. + Quatre albums de photographies dont deux sur la Belgique. + + + + + + + + + Deux albums de photographies et un album de cartes postales. + Deux albums de photographies et un album de cartes postales. + + + + 572AP/113 + Deux albums de photographies et un album de cartes postales. + Deux albums de photographies et un album de cartes postales. + + + + + + + + + Trois albums de photographies. + Trois albums de photographies. + + + + 572AP/114 + Trois albums de photographies. + Trois albums de photographies. + + + + + + + + + Quatre albums de photographies. + Quatre albums de photographies. + + + + 572AP/115 + Quatre albums de photographies. + Quatre albums de photographies. + + + + + + + + + Sept albums de photographies. + Sept albums de photographies. + + + + 572AP/116 + Sept albums de photographies. + Sept albums de photographies. + + + + + + + + + Six albums de photographies. + Six albums de photographies. + + + + 572AP/117 + Six albums de photographies. + Six albums de photographies. + + + + + + + + + Deux albums de photographies et photographies non classées. + Deux albums de photographies et photographies non classées. + + + + 572AP/118 + Deux albums de photographies et photographies non classées. + Deux albums de photographies et photographies non classées. + + + + + + + + + Photographies non classées. + Photographies non classées. + + + + 572AP/119 + Photographies non classées. + Photographies non classées. + + + + + + + + + Photographies non classées. + Photographies non classées. + + + + 572AP/120 + Photographies non classées. + Photographies non classées. + + + + + + + + + Photographies grand format non classées de châteaux, de chasses, d'équipages et portraits ; album photo " Souvenir de Woodnorton ", 26-30 novembre 1904. + Photographies grand format non classées de châteaux, de chasses, d'équipages et portraits ; album photo " Souvenir de Woodnorton ", 26-30 novembre 1904. + + + + 572AP/121 + Photographies grand format non classées de châteaux, de chasses, d'équipages et portraits ; album photo " Souvenir de Woodnorton ", 26-30 novembre 1904. + Photographies grand format non classées de châteaux, de chasses, d'équipages et portraits ; album photo " Souvenir de Woodnorton ", 26-30 novembre 1904. + + + + + + + + + Photographies grand format non classées de châteaux, de chasses, d'équipages et portraits. + Photographies grand format non classées de châteaux, de chasses, d'équipages et portraits. + + + + 572AP/122 + Photographies grand format non classées de châteaux, de chasses, d'équipages et portraits. + Photographies grand format non classées de châteaux, de chasses, d'équipages et portraits. + + + + + + + \ No newline at end of file diff --git a/samples/gramps/gramps.ttl b/samples/gramps/gramps.ttl new file mode 100644 index 00000000..cd85ea49 --- /dev/null +++ b/samples/gramps/gramps.ttl @@ -0,0 +1,8987 @@ +@prefix bibo: . +@prefix bio: . +@prefix cito: . +@prefix dcterms: . +@prefix ex: . +@prefix foaf: . +@prefix gn: . +@prefix grp: . +@prefix pnv: . +@prefix ql: . +@prefix rdfs: . +@prefix rico: . +@prefix rml: . +@prefix rr: . +@prefix skos: . +@prefix xsd: . + + + a skos:Concept; + skos:inScheme ; + skos:prefLabel "I0381" . + + a skos:Concept; + skos:inScheme ; + skos:prefLabel "Nambis" . + + + a skos:Concept; + skos:inScheme ; + skos:prefLabel "Papa graund Duranmin, Tuwari blo mountain" . + + a skos:Concept; + skos:inScheme ; + skos:prefLabel "Paupi" . + + a skos:Concept; + skos:inScheme ; + skos:prefLabel "imaajwajae (!= imaka)" . + + a skos:Concept; + skos:inScheme ; + skos:prefLabel "jupaja" . + + a skos:Concept; + skos:inScheme ; + skos:prefLabel "nifuale" . + + a skos:Concept; + skos:inScheme ; + skos:prefLabel "ofia:le" . + + + a skos:Concept; + skos:inScheme ; + skos:prefLabel "pajamo blo montain (auwari ground, japaja ground)" . + + a skos:Concept; + skos:inScheme ; + skos:prefLabel "pasia:ri" . + + a skos:Concept; + skos:inScheme ; + skos:prefLabel "wosumari" . + + a skos:Concept; + skos:inScheme ; + skos:prefLabel "auwari (menamolo:)" . + + a skos:Concept; + skos:inScheme ; + skos:prefLabel "imaka" . + + a skos:Concept; + skos:inScheme ; + skos:prefLabel "isoali lakoale" . + + a skos:Concept; + skos:inScheme ; + skos:prefLabel "jupaja" . + + a skos:Concept; + skos:inScheme ; + skos:prefLabel "pasiali" . + + a skos:Concept; + skos:inScheme ; + skos:prefLabel "tonofuali fauano" . + + + a skos:Concept; + skos:inScheme ; + skos:prefLabel "pajamo blo mountain (imlau)" . + + a ; + dcterms:references , . + + a ; + dcterms:references , . + + a ; + dcterms:references , . + + a ; + dcterms:references , . + + a ; + dcterms:references , . + + a ; + dcterms:references , . + + a ; + dcterms:references , . + + a ; + dcterms:references . + + a ; + dcterms:references , + . + + a ; + dcterms:references . + + a ; + dcterms:references . + + a ; + dcterms:references , . + + a ; + dcterms:references , . + + a ; + dcterms:references , + . + + a ; + dcterms:references . + + a ; + dcterms:references . + + a ; + dcterms:references , + . + + a ; + dcterms:references , . + + a ; + dcterms:references , + . + + a ; + dcterms:references , . + + a ; + dcterms:references , + . + + a skos:conceptScheme; + skos:prefLabel "Identifiant Gramps fusionné" . + + a skos:conceptScheme; + skos:prefLabel "clan" . + + a skos:conceptScheme; + skos:prefLabel "gren" . + + a skos:conceptScheme; + skos:prefLabel "tribe" . + + a ; + . + + a ; + dcterms:date "2012"; + bibo:pages "1"; + . + + a ; + bibo:pages "77"; + . + + a ; + bibo:pages "77"; + . + + a ; + bibo:pages "90"; + . + + a ; + bibo:pages "91"; + . + + a ; + bibo:pages "95"; + . + + a ; + bibo:pages "4"; + . + + a ; + bibo:pages "21"; + . + + a ; + bibo:pages "23"; + . + + a ; + bibo:pages "27"; + . + + a ; + bibo:pages "28"; + . + + a ; + bibo:pages "29"; + . + + a ; + bibo:pages "36"; + . + + a ; + bibo:pages "T34§9"; + . + + a ; + bibo:pages "T34§8"; + . + + a ; + bibo:pages "31 (2014T34, §45)"; + . + + a ; + bibo:pages "p. 30 (T2014.34)"; + . + + a ; + bibo:pages "p.33 T2014.33"; + . + + a ; + bibo:pages "p. 52"; + . + + a ; + bibo:pages "37"; + . + + a ; + bibo:pages "40 (2014.T2)"; + . + + a ; + bibo:pages "58"; + . + + a ; + bibo:pages "73"; + . + + a ; + bibo:pages "p. 26"; + . + + a ; + bibo:pages "22"; + . + + a ; + bibo:pages "p. 39"; + . + + a ; + bibo:pages "p. 37"; + . + + a ; + bibo:pages "p. 53"; + . + + a ; + bibo:pages "p. 56"; + . + + a ; + bibo:pages "p. 52"; + . + + a ; + bibo:pages "p. 57"; + . + + a ; + bibo:pages "74"; + . + + a ; + bibo:pages "p. 74"; + . + + a ; + bibo:pages "1"; + . + + a ; + bibo:pages "1"; + . + + a ; + bibo:pages "4"; + . + + a ; + bibo:pages "18"; + . + + a ; + bibo:pages "37"; + . + + a ; + bibo:pages "T52"; + . + + a ; + bibo:pages "T52"; + . + + a ; + bibo:pages "T52"; + . + + a ; + bibo:pages "T52"; + . + + a ; + bibo:pages "T52"; + . + + a ; + bibo:pages "S23"; + . + + a ; + bibo:pages "2015T10"; + . + + a ; + bibo:pages "2015T13, p. 69"; + . + + a ; + bibo:pages "S4, p. 18"; + . + + a ; + bibo:pages "S4, p. 18"; + . + + a ; + bibo:pages "S5, p.21"; + . + + a ; + bibo:pages "T21"; + . + + a ; + bibo:pages "p. 75 : letia"; + . + + a ; + bibo:pages "S18"; + . + + a ; + . + + a ; + . + + a ; + . + + a ; + . + + a ; + . + + a ; + . + + a ; + . + + a ; + . + + a ; + . + + a ; + . + + a ; + . + + a ; + . + + a ; + . + + a ; + . + + a ; + . + + a ; + . + + a ; + . + + a ; + . + + a ; + . + + a ; + . + + a ; + . + + a ; + . + + a ; + bibo:pages "p.42"; + . + + a ; + bibo:pages "p. 18"; + . + + a ; + bibo:pages "p. 19"; + . + + a ; + bibo:pages "243"; + . + + a ; + bibo:pages "247"; + . + + a ; + bibo:pages "248"; + . + + a ; + bibo:pages "252"; + . + + a ; + bibo:pages "15 (p.49)"; + . + + a ; + bibo:pages "2019.I.17 p. 55"; + . + + a ; + bibo:pages "2019.I.20, p. 62"; + . + + a ; + bibo:pages "91"; + . + + a ; + bibo:pages "91"; + . + + a ; + bibo:pages "2019.I.33bis, p. 109"; + . + + a ; + bibo:pages "2019.I.33ter, p. 109"; + . + + a ; + bibo:pages "2019.I.33quatro, p. 109"; + . + + a ; + bibo:pages "2019.I.33, p. 108"; + . + + a ; + bibo:pages "2019.I.35S, p. 113"; + . + + a ; + bibo:pages "2019.I.30, p.97"; + . + + a ; + bibo:pages "2019.I.7, p. 18"; + . + + a ; + bibo:pages "2019.I.8b, p. 19"; + . + + a ; + bibo:pages "2019.I.15, p. 48"; + . + + a ; + bibo:pages "2019.I.8c, p. 19"; + . + + a ; + bibo:pages "2019.I.17"; + . + + a ; + bibo:pages "§ 47.2"; + . + + a ; + bibo:pages "2019.I.36Tcom, p. 123"; + . + + a ; + bibo:pages "2019.I.39G, p.139"; + . + + a ; + bibo:pages "2019.I.41S, p. 145"; + . + + a ; + bibo:pages "2019.I.48, p. 188"; + . + + a ; + bibo:pages "48"; + . + + a ; + bibo:pages "2019.I.48"; + . + + a ; + bibo:pages "2019.I.48, p. 187"; + . + + a ; + bibo:pages "2019.I.48, p. 185"; + . + + a ; + bibo:pages "2019.I.48, p. 184"; + . + + a ; + bibo:pages "2019.I.48, p. 183"; + . + + a ; + bibo:pages "2019.I.48, p. 183"; + . + + a ; + bibo:pages "2019.I.48, p. 182"; + . + + a ; + bibo:pages "2019.I.48, p. 177"; + . + + a ; + bibo:pages "2019.II.47Sb"; + . + + a ; + bibo:pages "2019.II.47Sc"; + . + + a ; + bibo:pages "2019.II.47DcCom, p. 4"; + . + + a ; + bibo:pages "55, p. 29"; + . + + a ; + bibo:pages "2019.II.57, p. 32"; + . + + a ; + bibo:pages "2019.II.63S"; + . + + a ; + bibo:pages "2019.II.60S"; + . + + a ; + bibo:pages "2019.II.76"; + . + + a ; + bibo:pages "2019.II.79"; + . + + a ; + bibo:pages "2019.II.82, p. 58"; + . + + a ; + bibo:pages "2019.II.82, p. 60"; + . + + a ; + bibo:pages "2019.II.84, p. 92"; + . + + a ; + . + + a ; + bibo:pages "2019.II.86"; + . + + a ; + bibo:pages "2019.II.88, p. 95"; + . + + a ; + bibo:pages "2015.V.S7"; + . + + a ; + bibo:pages "2014.VI.S12bis"; + . + + a ; + bibo:pages "p. 85"; + . + + a ; + bibo:pages "2019.II.82"; + . + + a ; + bibo:pages "91 (p. 116)"; + . + + a ; + bibo:pages "93S"; + . + + a ; + bibo:pages "91com"; + . + + a ; + bibo:pages "94"; + . + + a ; + bibo:pages "96bis"; + . + + a ; + bibo:pages "91"; + . + + a ; + bibo:pages "91 p. 119"; + . + + a ; + bibo:pages "98"; + . + + a ; + bibo:pages "100"; + . + + a ; + bibo:pages "103"; + . + + a ; + . + + a ; + bibo:pages "100"; + . + + a bibo:Document; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/index video.xlsx"; + "262a0216b6c57495d47375dde15748ff"; + "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" . + + a bio:Event; + dcterms:type "Marriage"; + bio:date "2014" . + + a bio:Event; + dcterms:type "Death"; + bio:date "2014-12-01" . + + a bio:Event; + dcterms:type "Marriage"; + bio:date "2014" . + + a bio:Event; + dcterms:type "Birth"; + bio:place . + + a bio:Event; + dcterms:type "Birth"; + bio:place . + + a bio:Event; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:description "Pour scolarisation"; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:type "Birth"; + bio:place . + + a bio:Event; + dcterms:type "Death"; + bio:date "2014" . + + a bio:Event; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:type "Birth"; + bio:place . + + a bio:Event; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:description "matrilocale"; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:description "matrilocale"; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:type "Birth"; + bio:place . + + a bio:Event; + dcterms:description "chez le frère de Sali"; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:references ; + dcterms:type "Death"; + bio:place . + + a bio:Event; + dcterms:references ; + dcterms:type "Birth"; + bio:date "1954" . + + a bio:Event; + dcterms:type "Birth"; + bio:date "1964" . + + a bio:Event; + dcterms:type "Birth"; + bio:date "1984" . + + a bio:Event; + dcterms:type "Birth"; + bio:date "1988" . + + a bio:Event; + dcterms:type "Birth"; + bio:date "1992" . + + a bio:Event; + dcterms:type "Birth"; + bio:date "1974" . + + a bio:Event; + dcterms:type "Birth"; + bio:date "1999" . + + a bio:Event; + dcterms:type "Birth"; + bio:date "2009" . + + a bio:Event; + dcterms:type "Birth"; + bio:date "1978" . + + a bio:Event; + dcterms:type "Birth"; + bio:date "1985" . + + a bio:Event; + dcterms:type "Birth"; + bio:date "2008" . + + a bio:Event; + dcterms:type "Birth"; + bio:date "1963" . + + a bio:Event; + dcterms:type "Birth"; + bio:date "1972" . + + a bio:Event; + dcterms:type "Birth"; + bio:date "1993" . + + a bio:Event; + dcterms:type "Birth"; + bio:date "1997" . + + a bio:Event; + dcterms:type "Birth"; + bio:date "1992" . + + a bio:Event; + dcterms:type "Birth"; + bio:date "1990" . + + a bio:Event; + dcterms:type "Birth"; + bio:date "1994" . + + a bio:Event; + dcterms:type "Birth"; + bio:date "1979" . + + a bio:Event; + dcterms:type "Birth"; + bio:date "1982" . + + a bio:Event; + dcterms:type "Birth"; + bio:date "1961" . + + a bio:Event; + dcterms:type "Birth"; + bio:date "1973" . + + a bio:Event; + dcterms:type "Birth"; + bio:date "1980" . + + a bio:Event; + dcterms:type "Birth"; + bio:date "1999" . + + a bio:Event; + dcterms:type "Birth"; + bio:date "2001" . + + a bio:Event; + dcterms:type "Birth"; + bio:date "2003" . + + a bio:Event; + dcterms:type "Birth"; + bio:date "2012" . + + a bio:Event; + dcterms:type "Birth"; + bio:date "2012" . + + a bio:Event; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:references ; + dcterms:type "Marriage"; + bio:date "2006" . + + a bio:Event; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:references ; + dcterms:type "Scolarisation"; + bio:date "2015"; + bio:place . + + a bio:Event; + dcterms:references ; + dcterms:type "Scolarisation"; + bio:date "2015"; + bio:place . + + a bio:Event; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:type "Death" . + + a bio:Event; + dcterms:type "Death"; + bio:date "2005" . + + a bio:Event; + dcterms:description "Killed by Telefols"; + dcterms:type "Death" . + + a bio:Event; + dcterms:description "Grade 8"; + dcterms:type "Scolarisation"; + bio:date "2015" . + + a bio:Event; + dcterms:description "Grade 6"; + dcterms:type "Scolarisation"; + bio:date "2015" . + + a bio:Event; + dcterms:description "Grade 6"; + dcterms:type "Scolarisation"; + bio:date "2015" . + + a bio:Event; + dcterms:description "temps des japonais"; + dcterms:references ; + dcterms:type "Birth"; + bio:place . + + a bio:Event; + dcterms:references ; + dcterms:type "Birth" . + + a bio:Event; + dcterms:references ; + dcterms:type "Birth"; + bio:date "2016-01-04" . + + a bio:Event; + dcterms:references ; + dcterms:type "Birth"; + bio:date "2018-11-01" . + + a bio:Event; + dcterms:description "Grade 7, habite à Ok Isai avec sa soeur."; + dcterms:references ; + dcterms:type "Education"; + bio:date "2019"; + bio:place . + + a bio:Event; + dcterms:references ; + dcterms:type "Birth" . + + a bio:Event; + dcterms:description "grade 1"; + dcterms:references ; + dcterms:type "Education"; + bio:date "2019"; + bio:place . + + a bio:Event; + dcterms:references ; + dcterms:type "Birth"; + bio:date "2012" . + + a bio:Event; + dcterms:type "Death" . + + a bio:Event; + dcterms:type "Death" . + + a bio:Event; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:type "Birth"; + bio:place . + + a bio:Event; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:type "Birth"; + bio:place . + + a bio:Event; + dcterms:type "Birth"; + bio:date "2014-07-14" . + + a bio:Event; + dcterms:type "Birth"; + bio:date "2016-09-04" . + + a bio:Event; + dcterms:references ; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:description "Grade 6 en 2019 à Téléfomin"; + dcterms:references ; + dcterms:type "Education"; + bio:place . + + a bio:Event; + dcterms:description "7 years old"; + dcterms:type "Death" . + + a bio:Event; + dcterms:description "9 year old"; + dcterms:type "Death" . + + a bio:Event; + dcterms:description "9 year old"; + dcterms:type "Death" . + + a bio:Event; + dcterms:description "10 year old, sickness"; + dcterms:type "Death" . + + a bio:Event; + dcterms:description "Prison pendant 15 ans"; + dcterms:references ; + dcterms:type "Residence" . + + a bio:Event; + dcterms:description "(?)"; + dcterms:type "Death"; + bio:date "2020-05-01" . + + a bio:Event; + dcterms:description "?"; + dcterms:type "Death"; + bio:date "2020-05-01" . + + a bio:Event; + dcterms:type "Birth"; + bio:date "2010" . + + a bio:Event; + dcterms:description "Grade 1"; + dcterms:type "Scolarisation"; + bio:date "2020"; + bio:place . + + a bio:Event; + dcterms:type "Birth"; + bio:date "2011" . + + a bio:Event; + dcterms:type "Birth"; + bio:date "2014" . + + a bio:Event; + dcterms:type "Birth"; + bio:date "2015" . + + a bio:Event; + dcterms:type "Birth"; + bio:date "2016" . + + a bio:Event; + dcterms:type "Birth"; + bio:date "2017" . + + a bio:Event; + dcterms:type "Birth"; + bio:date "2018" . + + a bio:Event; + dcterms:type "Birth"; + bio:date "2017" . + + a bio:Event; + dcterms:type "Birth"; + bio:date "2018" . + + a bio:Event; + dcterms:type "Residence"; + bio:date "2019"; + bio:place . + + a bio:Event; + dcterms:description "Résidence matrilocale"; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:description "Résidence patrilocale"; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:description "Moved to Tau: patrilocale residency"; + dcterms:type "Marriage"; + bio:date "2015"; + bio:place . + + a bio:Event; + dcterms:references ; + dcterms:type "Death"; + bio:date "2018" . + + a bio:Event; + dcterms:references ; + dcterms:type "Death"; + bio:date "2016" . + + a bio:Event; + dcterms:references ; + dcterms:type "Death"; + bio:date "2018" . + + a bio:Event; + dcterms:description "Patrilocal"; + dcterms:type "Residence"; + bio:date "2019"; + bio:place . + + a bio:Event; + dcterms:type "Birth"; + bio:place . + + a bio:Event; + dcterms:description "Patrilocal"; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:references ; + dcterms:type "Birth"; + bio:place . + + a bio:Event; + dcterms:description "Grade 11"; + dcterms:type "Education"; + bio:date "2020"; + bio:place . + + a bio:Event; + dcterms:description "Vie avec Alphonse Andrew à Vanimo"; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:type "Birth"; + bio:date "2010" . + + a bio:Event; + dcterms:description "Grade 1"; + dcterms:type "Scolarisation"; + bio:date "2019"; + bio:place . + + a bio:Event; + dcterms:description "or 2017"; + dcterms:type "Birth"; + bio:date "2016" . + + a bio:Event; + dcterms:type "Birth"; + bio:date "2018" . + + a bio:Event; + dcterms:description "grade 9"; + dcterms:type "Education"; + bio:date "2021" . + + a bio:Event; + dcterms:description "A passé 5 ou 6 ans (en famille) à Arepi. Cf. 2019.II.82, p. 60."; + dcterms:type "Residence" . + + a bio:Event; + dcterms:description "Grade 5"; + dcterms:type "Education"; + bio:date "2019" . + + a bio:Event; + dcterms:description "Grade 9"; + dcterms:type "Education"; + bio:date "2019"; + bio:place . + + a bio:Event; + dcterms:description "Grade 2"; + dcterms:type "Education"; + bio:place . + + a bio:Event; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:type "Scolarisation"; + bio:date "2019"; + bio:place . + + a bio:Event; + dcterms:references ; + dcterms:type "Scolarisation"; + bio:date "2019"; + bio:place . + + dcterms:type "Birth"; + a bio:Event; + bio:date "2019-01-01" . + + a bio:Event; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:type "Residence"; + bio:place . + + a bio:Event; + dcterms:references ; + dcterms:type "Death"; + bio:date "2022-01-01" . + + a bio:Event; + dcterms:references ; + dcterms:type "Death"; + bio:date "2022-01-01" . + + a bio:Event; + dcterms:references ; + dcterms:type "Death"; + bio:date "2022-01-01" . + + a bio:Event; + dcterms:references ; + dcterms:type "Death"; + bio:date "2022-01-01" . + + a bio:Event; + dcterms:references ; + dcterms:type "Marriage"; + bio:date "2022-07-01" . + + a ; + ; + . + + a ; + ; + ; + . + + a ; + . + + a ; + . + + a ; + ; + . + + a ; + ; + ; + . + + a ; + dcterms:references ; + ; + . + + a ; + ; + . + + a ; + ; + . + + a ; + ; + ; + . + + a ; + . + + a ; + ; + . + + a ; + ; + . + + a ; + . + + a . + + a ; + . + + a ; + ; + . + + a ; + ; + . + + a ; + ; + . + + a ; + ; + . + + a ; + . + + a ; + dcterms:references ; + ; + . + + a ; + ; + . + + a ; + . + + a ; + dcterms:references ; + ; + . + + a ; + ; + . + + a . + + a ; + ; + ; + . + + a ; + ; + ; + . + + a ; + . + + a ; + dcterms:references ; + . + + a ; + ; + . + + a ; + ; + ; + . + + a ; + ; + . + + a ; + ; + . + + a ; + . + + a ; + ; + . + + a ; + ; + . + + a ; + ; + . + + a ; + . + + a ; + ; + . + + a ; + ; + . + + a ; + ; + ; + . + + a ; + . + + a ; + ; + . + + a ; + ; + . + + a ; + ; + . + + a . + + a ; + ; + . + + a ; + ; + . + + a ; + ; + ; + . + + a ; + ; + ; + . + + a ; + . + + a . + + a ; + ; + . + + a ; + ; + . + + a ; + ; + . + + a ; + dcterms:references ; + ; + . + + a ; + ; + ; + . + + a ; + ; + . + + a ; + dcterms:references ; + ; + . + + a ; + ; + . + + a ; + ; + . + + a ; + ; + . + + a ; + ; + . + + a ; + ; + . + + a ; + ; + . + + a ; + . + + a ; + ; + . + + a ; + . + + a ; + ; + . + + a ; + ; + . + + a ; + ; + . + + a ; + ; + . + + a ; + ; + . + + a ; + ; + ; + . + + a ; + dcterms:references ; + ; + . + + a ; + ; + . + + a ; + ; + . + + a ; + ; + ; + . + + a ; + ; + . + + a ; + ; + . + + a ; + ; + ; + . + + a ; + ; + ; + . + + a ; + ; + . + + a ; + ; + . + + a ; + ; + . + + a ; + ; + . + + a ; + ; + . + + a ; + . + + a ; + ; + . + + a ; + ; + . + + a . + + a ; + ; + ; + . + + a ; + ; + . + + a ; + . + + a ; + ; + . + + a ; + dcterms:references ; + ; + . + + a ; + ; + . + + a ; + ; + . + + a ; + ; + . + + a ; + ; + . + + a ; + ; + . + + a ; + ; + . + + a ; + dcterms:references ; + ; + . + + a ; + ; + . + + a ; + ; + . + + a ; + ; + . + + a ; + ; + . + + a ; + ; + . + + a ; + dcterms:references ; + ; + . + + a ; + . + + a ; + ; + . + + a ; + . + + a ; + . + + a ; + ; + . + + a ; + dcterms:references ; + ; + ; + . + + a ; + . + + a ; + dcterms:references ; + ; + . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0536.jpg"; + "931ea6c2d9f87ecef5a7be11d01584f9" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/234.JPG"; + "1bfa5ded876ae192e11ceb520b4d4cbb" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/383.JPG" . + + a bibo:Image; + bibo:locator "../Containers/com.apple.Preview/Data/Desktop/Cahier VI/207.JPG" . + + a bibo:Image; + bibo:locator "Users/sylvainloiseau/Desktop/Cahier VI/215.JPG" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-12-10/030.JPG"; + "778c26df43cee36efa7889f1c7dbdae7" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0541.jpg"; + "5def53e387e27c5f914d68c0630aff3c" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0433.JPG"; + "b1669c18fd1d11c72654a520f3bb4d85" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-14/067.JPG"; + "5391c9ee7934d405d9dfd454630d9993" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-12-10/068.JPG"; + "4570085b447831f86b2575c949170cb7" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/249.JPG"; + "b0218543f19795fc16fa4958786ee937" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/245.JPG"; + "3df6280072d10f68faf81609f800ee72" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/227.JPG"; + "3f93e00de8f43a1f24da2dcfc7dd86d3" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/112.JPG"; + "619e8ddfc84af7256c98cae012609423" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/208.JPG"; + "507c94a73e28b9d8a7dd02bdda2c2296" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/560.JPG" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-30/021.JPG"; + "a1c6109139b5496f3c6f9447d7a1898e" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0542.jpg"; + "7432eaf36fffa2f838e8f97cd8972cd5" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0562.jpg"; + "93e66efc522dbfcff836b8a62a73631d" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0305.jpg"; + "862b3d52844359b9b5e383ced918474d" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0346.JPG"; + "e32557e46f0cb68902aabd987543da60" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0430.jpg"; + "d2304971e1bc66af07e241ea4c48e5fe" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0574.JPG"; + "4d99af338bff2736b4fd714c8ecc7bdd" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0879.jpg"; + "5ba892a825bbbc385ef93f8165d8a9dc" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/403.JPG" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/407.JPG" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0875.jpg"; + "665bc948db23b58d93d7f5e4812d6233" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/190.JPG"; + "af78528044d9c56d9f2aa7f41af864c1" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/206.JPG"; + "a50b0e08d1e711411afbfaf64ed7e926" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/348.JPG" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-12-10/056.JPG"; + "2467ec888d12f730d1eb62920af548ea" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/378.JPG" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/184.JPG"; + "bab947be6d9823ed5408e5990eb2215b" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-14/003.JPG"; + "4992988255a851a442f0314f438847a5" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-14/004.JPG"; + "a9875b55fd15ddb3b825f9945a455008" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-14/061.JPG"; + "44984f19d3c775edf5f3706a63b66de3" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-14/064.JPG"; + "6fb0c6f295c1b5fb45e2151e62a3d738" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/515.JPG" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0462.JPG"; + "bf5d5827d98b64310567843e65d831be" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0532.jpg"; + "2b95ee16ad3557ef6627354b80b3653b" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0587.JPG"; + "dcaa7fa70924821ca0efd899a4c50f14" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-14/018.JPG"; + "b166164d6b7a273685a896eeb1a37bcc" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/515.JPG" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-30/011.JPG"; + "d702e712a8ed6f05090f9a81bb62a9da" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0630.jpg"; + "23871c5773a79bca700c78aed7a5b401" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0628.JPG"; + "bb3c7df03ca2df48fef02dcb6ed062fc" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0629.JPG"; + "7d95e3c65d0a33cd56f259feaa4b3544" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0628.JPG"; + "bb3c7df03ca2df48fef02dcb6ed062fc" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0629.JPG"; + "7d95e3c65d0a33cd56f259feaa4b3544" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0236.jpg"; + "83c8bf253eff45a3de81162263b21e19" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0547.jpg"; + "3f42dc6768f365c3e5def74de6bdbe7e" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/452.JPG" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-14/007.JPG"; + "7b0a17e70f42d99991723316db5c0982" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/387.JPG" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/389.JPG" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/559.JPG" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-12-10/016.JPG"; + "98374e61819456f912c81446aed455c3" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0271.JPG"; + "20dba0959060da3e50968a181b7bb8ba" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0595.JPG"; + "25549f8bd4ed6c7b9e435afad2b49394" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0910.jpg"; + "f04be75ead7a63d0c751a20be79c4de2" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-14/020.JPG"; + "5f929d19268550de66d3ca82ae79eee8" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/503.JPG" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0483.jpg"; + "82a585c0c40dd8486025ee7fe55d0dd3" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0484.jpg"; + "1fd79241d49712dbfc511d89e64ae995" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/584.JPG" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/585.JPG" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-14/084.JPG"; + "864376c2d24c45134a453dc7d119d7ad" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0260.jpg"; + "fdf0de1151eb54ddb16572cceddc55d6" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0548.jpg"; + "6e84e27fca0228530952e8f33c54d262" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-12-10/058.JPG"; + "7b7e789f0553fcc6fb450c1b35e5bc57" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-12-10/069.JPG"; + "53923274c3c2b5204ba338d383dcf32d" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-14/066.JPG"; + "ebd1c7c3e25c522194867717d329a460" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/341.JPG" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-14/071.JPG"; + "3374d6215ea5ace8eb10fe3453b5e728" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0528.jpg"; + "aa71f9fab3cb4783a3246728e6f589c5" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-14/062.JPG"; + "05baa0696ae7e1ab35924931c236ff32" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/343.JPG" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/199.JPG"; + "cf7fba80cd2a295d0a0a3544509780ef" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/119.JPG" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/199.JPG"; + "cf7fba80cd2a295d0a0a3544509780ef" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/119.JPG"; + "97779530fb9821bd3db0b96ff5d24dd6" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/198.JPG"; + "3548d52982faaaafceedaaf2e464c715" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/200.JPG"; + "e130395391f71d19b95476ebc2a3911e" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/504.JPG" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-12-10/052.JPG"; + "63a5da73bf04955dc2d682ce462a9a55" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/252.JPG"; + "f7eea3eeca7fe424c6768367c70b3f9c" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/523.JPG" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0494.JPG"; + "f99e17cf99eb457afa7466e1a5ad0e22" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/362.JPG" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/378.JPG" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/106.JPG"; + "cb8761177cf60df6fabff047fd2dbed0" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/128.JPG"; + "9cb4fcfe170a049c80abb57582a3c66e" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/199.JPG"; + "cf7fba80cd2a295d0a0a3544509780ef" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/205.JPG"; + "c9b6f98e339b705d0c2aec5d2b8120ba" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/206.JPG"; + "a50b0e08d1e711411afbfaf64ed7e926" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-14/013.JPG"; + "e7af5038ff000c27ae814d5b9c60b84e" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/348.JPG" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/540.JPG" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-30/016.JPG"; + "32b60e7ecfcb51bff343874504d65368" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0540.jpg"; + "f593824600ebb4a5f561dfa310c55900" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0537.jpg"; + "a3e8cb72bce794609a3265e973ce1b32" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0537.jpg"; + "a3e8cb72bce794609a3265e973ce1b32" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0540.jpg"; + "f593824600ebb4a5f561dfa310c55900" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-14/066.JPG"; + "ebd1c7c3e25c522194867717d329a460" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/345.JPG" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/534.JPG" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-12-10/015.JPG"; + "ff3166f9f43f8b382d361f4c3c87ccbb" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-14/063.JPG"; + "c62e0b4f4329fdb974370f660b406153" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/326.JPG" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0296.JPG"; + "9429f8d9735ae5a3401f81ac149f95cb" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/166.JPG"; + "16883c744185d195c9dde8df21e72aa9" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/250.JPG"; + "4b9409f83dc13810cff021044ff88699" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-14/021.JPG"; + "345849b9da2780c26b0b5ef73d6be540" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0549.jpg"; + "8c2eeaeb84cdc8c41d5421cfa01799dc" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-14/001.JPG"; + "b750d71e0ecaeabfa2b62df22e014aea" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/531.JPG" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/236.JPG"; + "e59b597df9bf8aba5f2a9d1acbbcac46" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0296.JPG"; + "9429f8d9735ae5a3401f81ac149f95cb" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0388.JPG"; + "85f50609bd46f9d3cff15b52f5be1117" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/127.JPG"; + "4bfd69faa383021526e49e47fbbd754b" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/167.JPG"; + "89178fecbee7480e58080ce98e8ebf84" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0538.jpg"; + "f2eb1da18f0c2cedd687cb036f9ebb41" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0539.jpg"; + "43c13535ee71c1acf72060fa4aaa9436" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0594.jpg"; + "538a893476a7fae42cfd09d950a18d0b" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/186.JPG"; + "b80532fde6d37d386530ee7e03f0b4a9" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/187.JPG"; + "95a5128af060c08b44f8af7170384f59" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/188.JPG"; + "d09b252fbee1eb4b24ac1f9592578b89" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/470.JPG" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-12-10/071.JPG"; + "cc4e11f4684340153fbaef921445dfa8" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/500.JPG" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/469.JPG" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-14/069.JPG"; + "33cfd31aff33907449e23e4ac7c1abdc" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0237.JPG"; + "27beb2d190b55682cdf73e2216ceba19" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0244.JPG"; + "b5ad857a0cb7c8620904b61e84aa608e" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0487.JPG"; + "fe6f196b3d78436b27cf6fc26a93ec60" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0497.JPG"; + "10c0d016e59e62be0160d5bbd5362e7e" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/578.JPG" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-30/009.JPG"; + "e454dd51356abba057db37fec414ce2d" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-30/114.JPG"; + "509d0903720507620916d6015836026a" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0596.JPG"; + "f2bef772a1a7bf0c4d0a02a509723519" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0887.jpg"; + "0dac900ce09988e629c37a56e6ebd696" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/124.JPG"; + "8c888d2c359fb7068d722b74ee4a7ad9" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/201.JPG"; + "ae968c8c2fb53cccb8d1201c6775b2ae" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/238.JPG"; + "546e31c18ca9fd81912ccfbaa9ab5f78" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/574.JPG" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-30/011.JPG"; + "d702e712a8ed6f05090f9a81bb62a9da" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0544.jpg"; + "f92f7c5da31cc9d99029ebb8d9c104e9" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0388.JPG"; + "85f50609bd46f9d3cff15b52f5be1117" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0455.jpg"; + "4e4b30bda011608da2db002a6f6918b5" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-12-10/092.JPG"; + "3b1cf6faca4a7cf3e00a7340c32333c1" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-12-10/090.JPG"; + "400b27b362ca6c8283f8e08b9f0de2e5" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-14/111.JPG"; + "b4c5f38d400e4c1c32b50a7797519203" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-27/032.JPG"; + "69dff2fa065b57c2162c570888de2562" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-30/129.JPG"; + "ec832ac634394c7c329cfed150d4ca30" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0245.jpg"; + "3a743d7bdd1609d8b9515287067f059c" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0247.JPG"; + "62908d435a0b92a9036c029bcdd4365f" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0248.JPG"; + "5819c487562072065fc42e6c967fb495" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0282.jpg"; + "b780b5e653474d30ec77844711852079" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0328.JPG"; + "db5d83968a235ce3aa41d5f927bbbed1" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0368.jpg"; + "cdf03b43dd8903c6a19477799ec3126a" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0369.JPG"; + "52792aa9c1de5dc412ad2028afb25d73" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0495.JPG"; + "037be2fba9cc4d618a29c225e49d78ac" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0581.JPG"; + "08f80f4e1d9a832903b0fcd69fe80279" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0620.JPG"; + "bc9eaad0c4b4aa37f503dd52f2ca305a" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0235.jpg"; + "0c9ab233d86055d6164e50d1a39c91f7" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0237.JPG"; + "27beb2d190b55682cdf73e2216ceba19" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/169.JPG"; + "2dc520202aa63d5cdc7aab6c66aed2dd" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-14/073.JPG"; + "92da6109ed1b4098c3cb9d601fcc3462" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/374.JPG" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0442.JPG"; + "8955a8a3a077237d9668baab69485bdd" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0611.JPG"; + "aadc8814cabef8b10e67bb113a81237b" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/115.JPG"; + "55410b3b7a6e9795c95c77b8584e20a2" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-12-10/012.JPG"; + "94527f6902b5b5af9f106e80717b9c7b" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0881.jpg"; + "dda92699a414cbe6ca376a38e42541ec" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-12-10/057.JPG"; + "29cee8780a0d66a5bf5fa696ee1d9d8b" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/189.JPG"; + "32995a8a4297de20a462b98b691d73cf" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0473.jpg"; + "c952c594f9890fa08b1e22d7b47665ad" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0458.JPG"; + "a81927c35f307c7a07c662c1c254831b" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0244.JPG"; + "b5ad857a0cb7c8620904b61e84aa608e" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-12-10/031.JPG"; + "b63c4e1bdf1fc843a355fd850434097a" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-12-10/032.JPG"; + "0eb6d25a2f67f7a46b5c82a08c24cdb8" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-12-10/037.JPG"; + "f4413f1b9ecd148134abd479c8c95115" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-12-10/038.JPG"; + "26d6756327bff9f211e82a7ad1cdb3cc" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-12-10/040.JPG"; + "d73455ce6eda094bdc9a71b70ae59b93" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-12-10/041.JPG"; + "da2ab107c59b3770af13eee5116b9e37" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-12-10/042.JPG"; + "fc4f90beb0155b3a6bb7e6771c04536c" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-12-10/045.JPG"; + "a503066e53087f1db8aca41416b46542" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/185.JPG"; + "940bd061dd1ac8d013d2f39701605e56" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/119.JPG"; + "97779530fb9821bd3db0b96ff5d24dd6" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/125.JPG"; + "5a8ba0033c7c1e190ec08ed343adba7c" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/126.JPG"; + "6dbc9641c4037b8aadfad0e4b7717fd2" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0447.JPG"; + "e73dfd03b88fbe2b40bc4efccb7906b9" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0452.JPG"; + "0cb75843262ad7bd724dd7c0fb0bfa7f" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/548.JPG" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0884.JPG"; + "3de5b147e153b6afc9e05832c181fc5e" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/139.JPG"; + "6883987fe45e1e72be99f05a869c8ff6" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/140.JPG"; + "51708219ec475fe4d0990a080c629979" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/157.JPG"; + "116b9a26244b364ffa66d7eafc3bb76c" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/197.JPG"; + "e98ffe58b06548b1bc1d4eec8be55d29" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/196.JPG"; + "e8da77affc2bc1a14d9f1bd9a38b8346" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/203.JPG"; + "17118795811e71c9cb9b4c7f8a52270b" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0558.jpg"; + "4a81942d11f2f7e3fcdf2a26a4edd2ff" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0560.jpg"; + "accd0e8495fca6f60e266e51098661f2" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0559.jpg"; + "48229611793c182f1d3b2166dbeb6076" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/207.JPG"; + "d774edfdad292f7c3ca30191709afdbe" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0318.JPG"; + "351c25a9bebe884d4da9cbbf8ffcd5c1" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0336.JPG"; + "77943cca6d345de480f148547709efcf" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0349.JPG"; + "366f2b058fbe19da9ad06737e0235028" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0350.JPG"; + "49fc653f0a61d3f9e67f0b0ad91589e6" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0370.jpg"; + "ccfeb323b65e3957cf9f546cdb72c96d" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0922.jpg"; + "f848645f93c590d93c384de7d0577378" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/158.JPG"; + "871f3855cb67914c35cbd1e8d63b010d" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-30/187.JPG"; + "e93cc3b946e61ddbb23b47997ff942cf" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-12-10/013.JPG"; + "db7bb2627fadabbb8ed7977447f71445" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-12-10/014.JPG"; + "b5bdfac81f52fdca2ab376c4cbb5b99e" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0493.jpg"; + "9c15efaffbab378fcee2c5500c752cb6" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0492.jpg"; + "d3fffda277beca0d7dd82707a2533750" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/578.JPG" . + + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-30/010.JPG"; + "83589797a4719f9db2cba8ba5d596bb5"; + a bibo:Image . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-12-10/061.JPG"; + "7d1bfe3ee457c649f1be0084f07976f4" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-12-10/063.JPG"; + "51af2b6b864105bd577fb2b7d4824b57" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-14/069.JPG"; + "33cfd31aff33907449e23e4ac7c1abdc" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/114.JPG"; + "f7f65046110c0ffb0c850825717283ee" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0529.jpg"; + "d4476fc702f23f507c2f7c957357b6aa" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/110.JPG"; + "becfbf8243a2ef5574d232c28eccf2e3" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-30/017.JPG"; + "dd2a948714b89b25e58fb911f36ef8b6" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-30/018.JPG"; + "d2962c3aa5eec594ce7c7979b188f698" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-12-10/011.JPG"; + "8ce650a11dbaeed6d07bb9c21b7cf765" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-30/022.JPG"; + "6bda3ddc2166bf2e15e6b68a4068e1ff" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/459.JPG" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/461.JPG" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/155.JPG"; + "3f2455f0bab5fb35b24bd6069d11b14b" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/426.JPG" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/192.JPG"; + "60afa44faaf5dc310b4f4d5684b5ae74" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/191.JPG"; + "54ffef3175835d6b419b421410506c78" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/118.JPG"; + "066e5a8624dafc9bb14a057c414df5f5" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/247.JPG"; + "de7a3231b85588bd74336763ec21cf9e" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2014/2014-11-09/158.JPG"; + "871f3855cb67914c35cbd1e8d63b010d" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0543.jpg"; + "5de9dca3832bd386eca40ff3ac7a923b" . + + a bibo:Image; + bibo:locator "Users/sylvainloiseau/Pictures/iPhoto Library/Masters/2015/08/10/20150810-205132/P1000163.JPG" . + + a bibo:Image; + bibo:locator "Users/sylvainloiseau/Pictures/iPhoto Library/Masters/2015/08/10/20150810-205132/P1000184.JPG" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/583.JPG" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Images Cahiers/2015/Cahier III/P1000725.JPG"; + "1154bcae729ca6b589117f63be15a93c" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2019/P1250799.JPG"; + "cac699ef9862a5f2d2163213b98a0323" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2019/P1260066.JPG"; + "7755dd9a097b9b62bee497c2d6fe12cd" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2019/P1260068.JPG"; + "057a2739ff3fa66203d273a1e9af61da" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2019/P1260094.JPG"; + "5a637d49160ac73965194df1f91de488" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2019/P1260184.JPG"; + "b97921df0615bf2b57d3ff6a463ce83b" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0915.JPG"; + "90409db303a71e93623cd9ff7a3189cf" . + + a bibo:Image; + bibo:locator "/media/sylvain/TerrainBure/Dossier/Tuwari/Photo/2013/IMG_0916.JPG"; + "b78d312729414dfc94332dfd27ba6f34" . + + a pnv:PersonName; + pnv:givenName "père-de-Andrew"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "père-de-luth"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Erik"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Maio" . + + a pnv:PersonName; + pnv:givenName "Sela"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Jeremaia" . + + a pnv:PersonName; + pnv:givenName "Andrew"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Waia" . + + a pnv:PersonName; + pnv:givenName "Abros/Aplos"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Andrew" . + + a pnv:PersonName; + pnv:givenName "Keros"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Andrew" . + + a pnv:PersonName; + pnv:givenName "Nora"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Andrew" . + + a pnv:PersonName; + pnv:givenName "Erine"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Waia" . + + a pnv:PersonName; + pnv:givenName "Luth"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Ilaisa" . + + a pnv:PersonName; + pnv:givenName "Tolis"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Ilaisa" . + + a pnv:PersonName; + pnv:givenName "Sakie"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Job" . + + a pnv:PersonName; + pnv:givenName "femme-de-jacob"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Mola"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Jacob" . + + a pnv:PersonName; + pnv:givenName "Assonith"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Jeremaia" . + + a pnv:PersonName; + pnv:givenName "Nomuel"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Jeremaia" . + + a pnv:PersonName; + pnv:givenName "femme-de-jeremaia"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Waro"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Natiame" . + + a pnv:PersonName; + pnv:givenName "Eisak", "Feiawe"; + pnv:nameSpecification "Nom traditionnel"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Roy"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Natiame" . + + a pnv:PersonName; + pnv:givenName "femme-de-mark"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Rona"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Jennyfa"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Mark" . + + a pnv:PersonName; + pnv:givenName "Jesril"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Mark" . + + a pnv:PersonName; + pnv:givenName "Mata"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Joseph" . + + a pnv:PersonName; + pnv:givenName "Inok"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Saumaupo" . + + a pnv:PersonName; + pnv:givenName "femme-de-tony"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Marina"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Tonny" . + + a pnv:PersonName; + pnv:givenName "Martin"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Sipamo" . + + a pnv:PersonName; + pnv:givenName "Stela"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Erik", "Maio" . + + a pnv:PersonName; + pnv:givenName "Stelin"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Erik", "Maio" . + + a pnv:PersonName; + pnv:givenName "Elmo"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Erik", "Imaka Musipale", "Maio" . + + a pnv:PersonName; + pnv:givenName "Michael"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Erik", "Maio" . + + a pnv:PersonName; + pnv:givenName "Elsa"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Erik" . + + a pnv:PersonName; + pnv:givenName "Joseph"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Siwalo-ou-ololo" . + + a pnv:PersonName; + pnv:givenName "Gertrud"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Joseph" . + + a pnv:PersonName; + pnv:givenName "Jowe / Salome"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Peni Sonia"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "epouse-de-peni-sonia"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Waro" . + + a pnv:PersonName; + pnv:givenName "Nathan"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Kelab"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Mère de Kelab"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Erik"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Ham" . + + a pnv:PersonName; + pnv:givenName "Emrine"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Ham" . + + a pnv:PersonName; + pnv:givenName "Damilin"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Ham" . + + a pnv:PersonName; + pnv:givenName "Melorin"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Ham" . + + a pnv:PersonName; + pnv:givenName "Samuel"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Joshua" . + + a pnv:PersonName; + pnv:givenName "Fenila (Fesnila)"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Samuel" . + + a pnv:PersonName; + pnv:givenName "Femela"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Jeremaia" . + + a pnv:PersonName; + pnv:givenName "Benjamin/Pensimen", "Pensimen"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Dixen"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Tepa" . + + a pnv:PersonName; + pnv:givenName "Leila (ou leitia, letia)"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Doroty"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Matias" . + + a pnv:PersonName; + pnv:givenName "Manase"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Matias" . + + a pnv:PersonName; + pnv:givenName "Kerolin"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Matias" . + + a pnv:PersonName; + pnv:givenName "Nowlel"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Noapi"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Joshua"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Kelekele" . + + a pnv:PersonName; + pnv:givenName "prasaj inaleto"; + pnv:nameSpecification "Nom traditionnel"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Lota"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Prau Paja"; + pnv:nameSpecification "Nom traditionnel"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Margaret"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Joshua" . + + a pnv:PersonName; + pnv:givenName "Daniel"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Joshua" . + + a pnv:PersonName; + pnv:givenName "Abigael"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Joshua" . + + a pnv:PersonName; + pnv:givenName "Waro"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Joshua" . + + a pnv:PersonName; + pnv:givenName "Salina"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Joshua" . + + a pnv:PersonName; + pnv:givenName "Emmanuel"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Joshua" . + + a pnv:PersonName; + pnv:givenName "Bessline"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Emmanuel" . + + a pnv:PersonName; + pnv:givenName "Saki"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Simo" . + + a pnv:PersonName; + pnv:givenName "Sati"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Saki" . + + a pnv:PersonName; + pnv:givenName "Satila"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Saki" . + + a pnv:PersonName; + pnv:givenName "Sasilla (satchila)"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Saki" . + + a pnv:PersonName; + pnv:givenName "Timoty"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Sipamo" . + + a pnv:PersonName; + pnv:givenName "Maurice"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Timoty" . + + a pnv:PersonName; + pnv:givenName "Mesani"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Mosis"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Ifaoli" . + + a pnv:PersonName; + pnv:givenName "Uso"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Ifaoli" . + + a pnv:PersonName; + pnv:givenName "Elaisa"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Ifaoli" . + + a pnv:PersonName; + pnv:givenName "Janet/hena"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Jeremaia" . + + a pnv:PersonName; + pnv:givenName "Waro"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Sima"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Timoty"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Matarina", "matrina/matlina"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Jo"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Aïti"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Fin"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Wuake" . + + a pnv:PersonName; + pnv:givenName "Heta"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Ulima (wilema)"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Maio" . + + a pnv:PersonName; + pnv:givenName "Araskas"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Analisa (Anarisa)"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Lopen (lupen)" . + + a pnv:PersonName; + pnv:givenName "Heselon / Eslon"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Penina (fenina)"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Luth"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Kaias Nigodimas"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Kanan"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Judith"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Sati"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Malia (maria)"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Tepa"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Atam" . + + a pnv:PersonName; + pnv:givenName "Potuel"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Sem"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Imaka", "sejano" . + + a pnv:PersonName; + pnv:givenName "Sejano"; + pnv:nameSpecification "Nom traditionnel"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Linth"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Sem" . + + a pnv:PersonName; + pnv:givenName "Dakles"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Sem" . + + a pnv:PersonName; + pnv:givenName "waiiaie"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Imaka"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Ilauabe"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "sapuaia"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "maiio"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Helinet"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Dina"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Senti"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "John"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Emakia" . + + a pnv:PersonName; + pnv:givenName "Yatrut"; + pnv:nameSpecification "Birth Name"; + pnv:surname "John" . + + a pnv:PersonName; + pnv:givenName "Benny"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Seu/Sene/Seni" . + + a pnv:PersonName; + pnv:givenName "Yonis"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Benny" . + + a pnv:PersonName; + pnv:givenName "Titione"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Semelipo" . + + a pnv:PersonName; + pnv:givenName "Sana"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Titione" . + + a pnv:PersonName; + pnv:givenName "Wiso"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Afawure" . + + a pnv:PersonName; + pnv:givenName "Aremeria"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Saimahubo" . + + a pnv:PersonName; + pnv:givenName "Mosses"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Efawure" . + + a pnv:PersonName; + pnv:givenName "Meriam"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Mosses" . + + a pnv:PersonName; + pnv:givenName "Nason"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Dainel" . + + a pnv:PersonName; + pnv:givenName "Tina"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Nason" . + + a pnv:PersonName; + pnv:givenName "Herry"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Nason" . + + a pnv:PersonName; + pnv:givenName "Eliazer"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Efawure" . + + a pnv:PersonName; + pnv:givenName "Moroty"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Eliazer" . + + a pnv:PersonName; + pnv:givenName "Joeal"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Aremot" . + + a pnv:PersonName; + pnv:givenName "Mosses"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Ammua" . + + a pnv:PersonName; + pnv:givenName "Jenna"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Mosses" . + + a pnv:PersonName; + pnv:givenName "Magaret"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Sailas" . + + a pnv:PersonName; + pnv:givenName "Sailas"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Aspau (?)" . + + a pnv:PersonName; + pnv:givenName "Abraham"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Martin"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Stoggi" . + + a pnv:PersonName; + pnv:givenName "Stoggi"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Naiambo" . + + a pnv:PersonName; + pnv:givenName "Naiambo"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Bodis"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Stoggi" . + + a pnv:PersonName; + pnv:givenName "Matlina", "Matrina"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Soxa"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Natiame"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Mata"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Fes"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Abraham" . + + a pnv:PersonName; + pnv:givenName "Sipamo"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Semelipo"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Kelekele"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Molina/morina"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Timoty" . + + a pnv:PersonName; + pnv:givenName "Simo2"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "père-de-stoggi"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "père-de-naiambo"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Nilta"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Samuel" . + + a pnv:PersonName; + pnv:givenName "Lina"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Samuel" . + + a pnv:PersonName; + pnv:givenName "Seison"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Samuel" . + + a pnv:PersonName; + pnv:givenName "Lanon"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Samuel" . + + a pnv:PersonName; + pnv:givenName "Goma"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Ilaisa"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Atam"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Wuake"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Aifeneïa"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Matias" . + + a pnv:PersonName; + pnv:givenName "Warik"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Matias" . + + a pnv:PersonName; + pnv:givenName "Keli"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Tabita"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Sem" . + + a pnv:PersonName; + pnv:givenName "Ifaoli / Ifawij"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Mosis"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Amao" . + + a pnv:PersonName; + pnv:givenName "Sarin"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Sali" . + + a pnv:PersonName; + pnv:givenName "Sani"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Sali" . + + a pnv:PersonName; + pnv:givenName "Seprun"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Sali" . + + a pnv:PersonName; + pnv:givenName "Molin/morin"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Timoty" . + + a pnv:PersonName; + pnv:givenName "a"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Fin" . + + a pnv:PersonName; + pnv:givenName "b"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Fin" . + + a pnv:PersonName; + pnv:givenName "c"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Fin" . + + a pnv:PersonName; + pnv:givenName "d"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Fin" . + + a pnv:PersonName; + pnv:givenName "e"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Fin" . + + a pnv:PersonName; + pnv:givenName "f"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Fin" . + + a pnv:PersonName; + pnv:givenName "g"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Fin" . + + a pnv:PersonName; + pnv:givenName "h"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Fin" . + + a pnv:PersonName; + pnv:givenName "a"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Araskas" . + + a pnv:PersonName; + pnv:givenName "b"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Araskas" . + + a pnv:PersonName; + pnv:givenName "c"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Araskas" . + + a pnv:PersonName; + pnv:givenName "maf"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Araskas" . + + a pnv:PersonName; + pnv:givenName "Suafe"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Imaka" . + + a pnv:PersonName; + pnv:givenName "Josie"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Imaka" . + + a pnv:PersonName; + pnv:givenName "Paul"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Sem" . + + a pnv:PersonName; + pnv:givenName "Wesani"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Sem" . + + a pnv:PersonName; + pnv:givenName "Linet"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Waiaie" . + + a pnv:PersonName; + pnv:givenName "Cox"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Stoggi" . + + a pnv:PersonName; + pnv:givenName "Douglas"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Waiaie" . + + a pnv:PersonName; + pnv:givenName "Tenila"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Waiaie" . + + a pnv:PersonName; + pnv:givenName "Benny"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Imaka" . + + a pnv:PersonName; + pnv:givenName "Tunis"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Imaka" . + + a pnv:PersonName; + pnv:givenName "Josica"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Imaka" . + + a pnv:PersonName; + pnv:givenName "Sonia"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Ilaube" . + + a pnv:PersonName; + pnv:givenName "Tona"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Ilaube" . + + a pnv:PersonName; + pnv:givenName "Samuel"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Ilaube" . + + a pnv:PersonName; + pnv:givenName "Paul"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Ilaube" . + + a pnv:PersonName; + pnv:givenName "Delma"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Ilaube" . + + a pnv:PersonName; + pnv:givenName "Tobelin"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Ilaube" . + + a pnv:PersonName; + pnv:givenName "Jenet"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Ilaube" . + + a pnv:PersonName; + pnv:givenName "Tobias"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Sepnaia" . + + a pnv:PersonName; + pnv:givenName "Sepnaia"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Milisa" . + + a pnv:PersonName; + pnv:givenName "Benina"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Imaka" . + + a pnv:PersonName; + pnv:givenName "Akusta"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Maio" . + + a pnv:PersonName; + pnv:givenName "Sera"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Maio" . + + a pnv:PersonName; + pnv:givenName "Ennila"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Maio" . + + a pnv:PersonName; + pnv:givenName "Sendila"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Maio" . + + a pnv:PersonName; + pnv:givenName "Waia"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Waia" . + + a pnv:PersonName; + pnv:givenName "Nathan"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "père-de-heta"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "mère-de-heta"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "grand-père-de-Heta"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "amao"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Amao" . + + a pnv:PersonName; + pnv:givenName "monstem/monstel"; + pnv:nameSpecification "Birth Name"; + pnv:surname "mosis" . + + a pnv:PersonName; + pnv:givenName "père-de-araskas"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Ilaisa" . + + a pnv:PersonName; + pnv:givenName "Koni atam"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Kanu"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Soslin"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Joseph (junior)" . + + a pnv:PersonName; + pnv:givenName "Neto"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Joseph (junior)" . + + a pnv:PersonName; + pnv:givenName "Beni (Benson)"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Jonis"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "père-de-benni"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "mère-de-beni"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Oti / otiofe"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Nawami"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Ilau"; + pnv:nameSpecification "Nom traditionnel"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Jacob"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Ilau" . + + a pnv:PersonName; + pnv:givenName "Deni"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Ilau" . + + a pnv:PersonName; + pnv:givenName "Lekssari"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Ilau" . + + a pnv:PersonName; + pnv:givenName "Toni"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Ilau" . + + a pnv:PersonName; + pnv:givenName "Maima"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Ilau" . + + a pnv:PersonName; + pnv:givenName "Tan"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Manas"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Lupen"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Pito"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Sele"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Sion"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Joseph" . + + a pnv:PersonName; + pnv:givenName "sonila"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Joseph" . + + a pnv:PersonName; + pnv:givenName "Naham"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Timoti"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "jenita"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Joseph (junior)" . + + a pnv:PersonName; + pnv:givenName "oki makapia"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Jones"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Waro" . + + a pnv:PersonName; + pnv:givenName "Jaimau Finaj / Saituwi"; + pnv:nameSpecification "Nom traditionnel"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Hejauene Lota"; + pnv:nameSpecification "Nom traditionnel"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "kassan kanan"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "sera"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "?"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Amao" . + + a pnv:PersonName; + pnv:givenName "Jonila"; + pnv:nameSpecification "Birth Name"; + pnv:surname "John" . + + a pnv:PersonName; + pnv:givenName "jakopo"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Seilas"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "grensi"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Emmanuel" . + + a pnv:PersonName; + pnv:givenName "Peslin"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "kaias Nigodimas"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Nathan"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "kaias (gras bilong hed)"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Waro"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Sipamo" . + + a pnv:PersonName; + pnv:givenName "moloti/moroti"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Mamane"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "fau'eme"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Tema"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Angela"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Hema"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Sam"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Immanuel"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Makanai/majanaj"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "femme-de-manas (fille de anajpafe et helinau???)"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Suliana"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Rotni"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Peta"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "pere-de-manas"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Tosolo"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Sipas"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Waro" . + + a pnv:PersonName; + pnv:givenName "Niksi"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Sipas" . + + a pnv:PersonName; + pnv:givenName "Sosi"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Sotila"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "i'anemei"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "John"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Imaka" . + + a pnv:PersonName; + pnv:givenName "?1"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Imaka" . + + a pnv:PersonName; + pnv:givenName "?2"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Imaka" . + + a pnv:PersonName; + pnv:givenName "Sosi"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Sem" . + + a pnv:PersonName; + pnv:givenName "Linete"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Maio" . + + a pnv:PersonName; + pnv:nameSpecification "Birth Name"; + pnv:surname "Elita" . + + a pnv:PersonName; + pnv:givenName "seslel"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Malia"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Jeremaia" . + + a pnv:PersonName; + pnv:givenName "Monika"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Jeremaia" . + + a pnv:PersonName; + pnv:givenName "Teglese/tegres"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Lupen"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Simon"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Amao" . + + a pnv:PersonName; + pnv:givenName "Tokas/Pafjiau/suanime"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Oplejamo"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Slofe"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Jo"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Fils-de-Slofe"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Fille-de-Slofe"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Sela"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "mata"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "heta"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Natan"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "nila"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Pitawalo / Pitowalo"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "wiwao"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "waia"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Tamose"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Tema"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Sela"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Tema"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Titione" . + + a pnv:PersonName; + pnv:givenName "Toniel(=Toni?)"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Kanawe"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Apape"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Robin"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Tepson"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Simi"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "nejaufoneja"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Malina"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Tonny" . + + a pnv:PersonName; + pnv:givenName "?"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Sali" . + + a pnv:PersonName; + pnv:givenName "Tuks"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Bodis" . + + a pnv:PersonName; + pnv:givenName "mareana"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Bodis" . + + a pnv:PersonName; + pnv:givenName "Greto"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Bodis" . + + a pnv:PersonName; + pnv:givenName "Jalak"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Bodis" . + + a pnv:PersonName; + pnv:givenName "?"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Kelekele" . + + a pnv:PersonName; + pnv:givenName "?"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Kelekele" . + + a pnv:PersonName; + pnv:givenName "antale"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "awaliso / awaleso"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Wajne"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "djena"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "miliam"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "sialu"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Aimos"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Malina"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Amao" . + + a pnv:PersonName; + pnv:givenName "Tonton"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Ilau" . + + a pnv:PersonName; + pnv:givenName "Tonton"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Megel"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Amao" . + + a pnv:PersonName; + pnv:givenName "Pensila"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Amao" . + + a pnv:PersonName; + pnv:givenName "jepau"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "berit"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Natiame" . + + a pnv:PersonName; + pnv:givenName "misele"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Natiame" . + + a pnv:PersonName; + pnv:givenName "unknown"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Natiame" . + + a pnv:PersonName; + pnv:givenName "unknown"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Natiame" . + + a pnv:PersonName; + pnv:givenName "unknown"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Natiame" . + + a pnv:PersonName; + pnv:givenName "unknown"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Natiame" . + + a pnv:PersonName; + pnv:givenName "wa:mea:sepo:"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "a:nauliwo"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "ja:na"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Stoggi" . + + a pnv:PersonName; + pnv:givenName "unknown"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Abraham" . + + a pnv:PersonName; + pnv:givenName "Boleks"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Semete"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Soki"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Augusta"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Salus"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Talsi"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Ilau" . + + a pnv:PersonName; + pnv:givenName "Tajtus"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Ilau" . + + a pnv:PersonName; + pnv:givenName "Pita"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Ilau" . + + a pnv:PersonName; + pnv:givenName "Tasi"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Ilau" . + + a pnv:PersonName; + pnv:givenName "Mawi"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Joshua" . + + a pnv:PersonName; + pnv:givenName "Koprun"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Joshua" . + + a pnv:PersonName; + pnv:givenName "Kamej"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Joshua" . + + a pnv:PersonName; + pnv:givenName "Lenda"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Joshua" . + + a pnv:PersonName; + pnv:givenName "Asnet"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Naiambo" . + + a pnv:PersonName; + pnv:givenName "Atex"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "djefo"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Abraham" . + + a pnv:PersonName; + pnv:givenName "Mata"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Loj"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Atam"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Marina"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Kaias Nigodimas"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Toniel"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Temlin"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Kilbet"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Aneks"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Ija:lei"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Ajnawe"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Olwawe"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Simo3"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "anajpafe"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "helinau"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Wanbu"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Selwo"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "poolwale"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "nuwapi"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Moxza"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Kaias" . + + a pnv:PersonName; + pnv:givenName "Helimot (hElimOt)"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Julia"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Jowel"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Jaklin"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Fewel"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Ajsak"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Jakob"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Topex"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "senja"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "kelija"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Frank(?)"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Natiame" . + + a pnv:PersonName; + pnv:givenName "Rebeca"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Natiame" . + + a pnv:PersonName; + pnv:givenName "Manita"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Natiame" . + + a pnv:PersonName; + pnv:givenName "Suafe"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Natiame" . + + a pnv:PersonName; + pnv:givenName "Natiame"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Natiame" . + + a pnv:PersonName; + pnv:givenName "Soluano"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Watuale"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "hanajali"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "helinau ene"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Loita"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "Apajfau"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "sinano"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "suwafe"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "mela"; + pnv:nameSpecification "Birth Name"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "djetrel"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Ilau" . + + a pnv:PersonName; + pnv:givenName "sipako"; + pnv:nameSpecification "Nom traditionnel"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "steven"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Ilau" . + + a pnv:PersonName; + pnv:givenName "kamwalo"; + pnv:nameSpecification "Nom traditionnel"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "plenton"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Ilau" . + + a pnv:PersonName; + pnv:givenName "ouwali"; + pnv:nameSpecification "Nom traditionnel"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "djetro/setro"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Ilau" . + + a pnv:PersonName; + pnv:givenName "jeremaia"; + pnv:nameSpecification "Nom traditionnel"; + pnv:surname "" . + + a pnv:PersonName; + pnv:givenName "djelma"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Ilau" . + + a pnv:PersonName; + pnv:givenName "Alphonse"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Andrew" . + + a pnv:PersonName; + pnv:givenName "Arnold"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Andrew" . + + a pnv:PersonName; + pnv:givenName "Ham"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Goma" . + + a pnv:PersonName; + pnv:givenName "Hilda"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Goma" . + + a pnv:PersonName; + pnv:givenName "Jacob"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Abraham" . + + a pnv:PersonName; + pnv:givenName "Jeremaia"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Naiambo" . + + a pnv:PersonName; + pnv:givenName "joseph"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Abraham" . + + a pnv:PersonName; + pnv:givenName "Mark"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Abraham" . + + a pnv:PersonName; + pnv:givenName "Matias"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Wuake" . + + a pnv:PersonName; + pnv:givenName "Sali"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Amao" . + + a pnv:PersonName; + pnv:givenName "Tony"; + pnv:nameSpecification "Birth Name"; + pnv:surname "Abraham" . + + a bibo:Note; + bibo:content """Jeune homme de la côte (île près de Wewak) trouvé au village en 2014. Parle tok pisin, anglais et les deux langues de son île. +Depuis 2009, tourne dans la région. Revient de temps en temps dans son village d’après lui (la dernière fois il y a 8 mois). +Apporte tout un tas d’idées nouvelles. Introduit le foot. Essaye de faire financer un projet de ferme de poulet sur un programme de Telefolmin (1 pour Tau, un pour son village. Je l’aide à rédiger). Parents accueillants dans son île, recevant des touristes. Plusieurs jeunes de Tau sont scolarisés dans son coin. Parle bien anglais. Rêve d’être fermier. Fait le bénédicité quand il vient manger dans la famille ; prend les notes et rédige la sentence sur le chahier du village pendant les tribunaux : toujours celui à qui ont confie ce genre de tâche. Quand vient dîner quelque part, parle et tient les autres en haleine. +Est ici parce qu’il aurait aidé un gars du coin dans sa région qui lui rendrait maintenant la pareille ici. Pas très clair. Peut-être suspicion de ma part à l’égart de gens « trop beau pour être vrai », mais je ne peux m’empêcher de penser qu’il s’est mis au vert après avoir fait une bêtise chez lui, idée qui n’a pas beaucoup de support. +Après une histoire trouble où il a porté pleinte contre une fille qui le cherchait trop et avec laquelle il a couché, il est parti à Sumwari. S’est dit déjà marié au procès. Pour Mark (père de la fille), Saki, Joseph, c’est un menteur. Soutenu par irène et marc. +A Sumwari, m’explique qu’il a senti le vent du boulet (je suppose : si la fille était tombé enceinte). +Nombreuses bonnes discussions avec lui. La première fois, où on parlé de foot, j’ai eu l’impression d’avoir enfin un rapport normal, avec un égal. A plusieurs reprises au village, puis sur le chemin de Sumwari dans la maison de bush d’Eric j’ai débrieffé avec lui, puis à nouveau à Sumwari. Le seul à qui j’ai dit que je ne savais pas si je reviendrai.""" . + + a bibo:Note; + bibo:content "Patronyme : Oticro selon Photo 2014 177-180" . + + a bibo:Note; + bibo:content "Frère du père de Stogi" . + + a bibo:Note; + bibo:content "ou Matrina (vue en 2013)" . + + a bibo:Note; + bibo:content "3 enfants" . + + a bibo:Note; + bibo:content "A appris le tuwari en premier et tok pisin ensuite." . + + a bibo:Note; + bibo:content "photo 2013 542" . + + a bibo:Note; + bibo:content "Qui m’a escorté, avec Cox, entre Sia et Tau (2013)" . + + a bibo:Note; + bibo:content "Tau : femme 15. Soeur de Soxa, femme Tau de Ok Isaï ; femme de Bodis." . + + a bibo:Note; + bibo:content "Père de l'enfant muet. Frère de Tony (et Joseph)" . + + a bibo:Note; + bibo:content "Grand, cheveux blancs sur les côtés, dégarnis" . + + a bibo:Note; + bibo:content "Yeux enfoncés. Community leader. Pas revu depuis les premiers jours en 2013. En 2013, était présenté comme ancien community leader, mais en 2014 l’était toujours. Frère de Pasteur Loj." . + + a bibo:Note; + bibo:content "2013 : Plus timide, me demande des cahiers. C'est le pasteur numéro 2 me dit Eric un moment. Marc est num 1 et Andrew est num 3. 2014 : frère de Waro. Conflit domestique avec sa femme." . + + a bibo:Note; + bibo:content "2013 : Paster. joseph older brother. En 2013, Paster namba wan" . + + a bibo:Note; + bibo:content "Habite dans le haut du village. Premier enregistrement avec lui. Frère : Paster Mark, Fes, Tony." . + + a bibo:Note; + bibo:content "? nom donné dans la fiche de Joseph Abraham" . + + a bibo:Note; + bibo:content "femme ou enfant ?" . + + a bibo:Note; + bibo:content "La haute maison dans la partie du village proche du ruisseau." . + + a bibo:Note; + bibo:content "Grande gueule. Le premier jour en 2013 veut une montre, puis passe chez moi me demander un short. Pas marié. Accusé de sorcellerie contre les jardins en 2014." . + + a bibo:Note; + bibo:content "Community leader “adjoint” avec Waro. Ne sait pas lire. Père naturel : Maio ; Père adoptif : Joseph l’ancien. Frère de Gertrud (la femme de John), de X (femme de Araskas de Sumari), de X (à Ok Isaï?)" . + + a bibo:Note; + bibo:content "5 enfants + un confié à Saki. Stela, Stelin, Elmo, Michael, Elsa" . + + a bibo:Note; + bibo:content "Père (adoptif) d'Eric. Épouse Sumwari. Père de sa femme : Ilaisa (2014T1). Joseph se marie à luth en 1981 (Erik a donc 3-4 ans)" . + + a bibo:Note; + bibo:content "Siwalo ou ololo, cf. 2014,I,58. ?" . + + a bibo:Note; + bibo:content "Tition Semelipo est le frère adoptif de joshua (son père a adopté joshua)." . + + a bibo:Note; + bibo:content "Mère de Titione parle Akiapmin. Ne parle pas le tok pisin. Sa mère est la seur du père de stoggi (?)" . + + a bibo:Note; + bibo:content "Jeune, parle anglais. Comprend à peu près mais ne parle pas le tok ples. A suivi un cursus à Wewak mais a dû revenir faut d'argent. Sa mère (très discrète dans le village, je ne l’ai vu qu’une fois, chez le paster Mark)" . + + a bibo:Note; + bibo:content "femme, grand sourire, parle fort, intelligente. Soeur de Andrew. Ils se sont mariés à Ham et Hilda, deux frères et sœur de Sumwari. Née au village. Ses deux parents sont tuwari et parlent tuwari. Parle tuwari et tok pisin. Très nombreux enfants. Dernier accouchement à Wewak suivi d’une stérilisation (?). Une fille, Satila, a été donnée à la naissance à Saki." . + + a bibo:Note; + bibo:content "Construit la maison pour homme de l’autre côté de la piste." . + + a bibo:Note; + bibo:content "Tuwari : pas trop. Veut l'apprendre" . + + a bibo:Note; + bibo:content "Fils de Josua, barbe en collier, large visage. 38 ou 39 ans en 2013, marié il y a 5 ans." . + + a bibo:Note; + bibo:content "De Sumwari, marié à Tau" . + + a bibo:Note; + bibo:content "homme un peu sombre qui habitait chez Samuel en 2013" . + + a bibo:Note; + bibo:content "Paster. Frère d'Irène. Deux parents morts. Enfance au village. Deux parents Tuwari (père Akiapmin). Un enfant donné à Saki. A été opérateur radio." . + + a bibo:Note; + bibo:content "connait akiapmin half half tasol." . + + a bibo:Note; + bibo:content "2014 : Scolarisé à Sumwari. Grade 6-8? M'a fait des histoires en tuwari." . + + a bibo:Note; + bibo:content "2014 : Chanson en tok ples" . + + a bibo:Note; + bibo:content "Tuwari. La femme forte et vibrante du consul. Sœur de Mathias" . + + a bibo:Note; + bibo:content "3 pikinini (Dont une fille mariée à Niksek, ne parle pas tuwari)" . + + a bibo:Note; + bibo:content "2013 : fils de Tepa et de Maria. L'un des jeunes rentrés récemment à l'occasion des vacances (scolarisé à Sumwari)" . + + a bibo:Note; + bibo:content "Habite plutôt à Sumwari. A beaucoup travaillé à Frida. Son frère y est mort ? 38 ans ? A sumwari la plupart du temps mais ont une maison à Tau." . + + a bibo:Note; + bibo:content "2013 : skul lo sumwari" . + + a bibo:Note; + bibo:content "skul lo ok isaï" . + + a bibo:Note; + bibo:content """Tau : jeune 2 En 2013 : (maison rebattie, entre Erike et Joshua). Moderne (a des lunettes, un panneau solaire…). 2nd maison. 20-21 ans. Pas vu en 2014. + += Jeremaia Nomuel ?""" . + + a bibo:Note; + bibo:content "2013 : Jeune, plutôt petite taille, air malin" . + + a bibo:Note; + bibo:content "Frères adoptif : Martin Sipamo, Timoty. Titione. Adopté par le père de Titione. 3 enfants sont décédés en bas-âge (dont un qui avait été donné à Saki). Les enfants sont nés à Sumwari (jusqu’à Abigael) puis Wapuso (Abigael et Waro). Salina ? S'est marié à Sumwari peu après y être arrivé (2014 VI 11)" . + + a bibo:Note; + bibo:content "Fils de josua. Grande palabre pour savoir s'il doit se marier durant la dernière semaine du terrain de 2013. S’est marié courant 2014. A ma venue en novembre 2014, leur enfant à 5 mois, au moment de la palabre de l’année dernière sa future épouse était déjà enceinte de deux mois." . + + a bibo:Note; + bibo:content """2013 : Aurait 28 ans (?!). Ne parle pas anglais. Enfant de Joshua Number 4 +2014 : Plutôt 25 ans.""" . + + a bibo:Note; + bibo:content "de Sumwari, vient de Irian Jaya. Mari d’une cousine de Erik. Vient de Irian Jaya. 72806087/4" . + + a bibo:Note; + bibo:content "2013 Nomel (nomuel ? nowlel ?). L'un des jeunes, ouvert et vif, plutôt costaud" . + + a bibo:Note; + bibo:content """2013 : (maison avec gd terrasse où je suis monté en arrivant). + +2014 : Ses enfants lui ont été confié par Irène, Andrew et Erik (par ordre d’âge). Pour Erik, il s’agit d’un jumeau.""" . + + a bibo:Note; + bibo:content "Fils biologique de Andrew. grade 1 à Sumwari" . + + a bibo:Note; + bibo:content "Satila, une petite peste. Fille biologique de Ham et Irène" . + + a bibo:Note; + bibo:content "un bébé (une petite fille). Fille biologique d’Erik ?" . + + a bibo:Note; + bibo:content "2014 : Was Papa : semelipo (est donc le frère adoptif de Tition, Joshua…). Durant le terrain 2014, reste dans la maison de Joshua avec Maurise." . + + a bibo:Note; + bibo:content "Un jeune scolarisé à Ok Isaï" . + + a bibo:Note; + bibo:content "2013 : \"Koma\"" . + + a bibo:Note; + bibo:content "2013 : S’installe ici pour quelques mois" . + + a bibo:Note; + bibo:content "2014 : Frère de uso et Elaïsa. Ainé" . + + a bibo:Note; + bibo:content "2014 : Frère de Mosis et Elaïsa. Deuxième frère" . + + a bibo:Note; + bibo:content "2014 : Frère de Mosis et Uso. Troisième frère. Marche difficilement et ne quite plus le village" . + + a bibo:Note; + bibo:content "2014 : Demi-frère de Saki Simon. Établi à Ok Isaï, avec un frère. Autre frère : Mosis, marié à Moropote. Passe plusieurs mois à Tau. A perdu une jambe. Très bon informateur" . + + a bibo:Note; + bibo:content "2013 : 6 enfants" . + + a bibo:Note; + bibo:content "3 pikinini" . + + a bibo:Note; + bibo:content "sortir les valeurs d'étiquette \"village\" pour les mettres dans événements (résidence). Pareil pour \"rôle\" / \"role\"." . + + a bibo:Note; + bibo:content "sortir des tag les \"scolarisés à ok isaï\"." . + + a bibo:Note; + bibo:content "créer les enfants quand il y en a plusieurs dans \"notes\" avec des noms x y si nécessaire." . + + a bibo:Note; + bibo:content "né Tau. Frère de Mathias. Meri tok ples: Ok Isaï. 2014 : mort, de violence, autour de la mine de Frida" . + + a bibo:Note; + bibo:content "2014 : Fille de luth et de Joseph (biologique), Femme de araskas, sœur de Erik" . + + a bibo:Note; + bibo:content "2013 : habitait chez Samuel." . + + a bibo:Note; + bibo:content "Ou Elma ? Cf. fichier missionnaire en citation." . + + a bibo:Note; + bibo:content "Connaît Arepi selon femme d'araskas : 2014.VI.61. Selon Sali, Andrew connait l'arepi parce que sa mère est de ce village 2015.III.S20." . + + a bibo:Note; + bibo:content "2014.VI.77 fille d'un frère de Joseph. Mère Tau. Épouse de Nathan (pas le pasteur) à Sumwari" . + + a bibo:Note; + bibo:content "2014.VI.77 locutrice de Arepi, Tuwari, Sumwari, Tok Pisin" . + + a bibo:Note; + bibo:content "A fait de nombreux voyages à Hauna avec des vols MAF suite à une naissance prématurée" . + + a bibo:Note; + bibo:content "A éclairicir : araskas est le cousin de Koni Atam et pasteur Nathan (cf. 2014.VI.95)" . + + a bibo:Note; + bibo:content "Trois enfants (2014.I.29)" . + + a bibo:Note; + bibo:content "D'Akiapmin" . + + a bibo:Note; + bibo:content "= de Tau ? Qui est-ce ?" . + + a bibo:Note; + bibo:content "Nom de ligné ? Voir la citation." . + + a bibo:Note; + bibo:content "lapun bikpla man, age de joseph (2014.T34§45)" . + + a bibo:Note; + bibo:content "Le même que Abraham Toni ? Tous les frères et soeurs ressemblent beaucoup à ceux de Tony Abraham. Pas de photo, quel sexe pour le frères et soeurs ?" . + + a bibo:Note; + bibo:content "Quel sexe ?" . + + a bibo:Note; + bibo:content "Quel sexe ? Vérifier en conséquence les noms patrilinéaire des enfants." . + + a bibo:Note; + bibo:content "? deux enfants de joseph à vérifier." . + + a bibo:Note; + bibo:content "Une personne de sumwari chez laquelle j'ai dormis en 2014 à l'aller ?" . + + a bibo:Note; + bibo:content "homme âgé de passage le 8/11/2014 à Tau, reparti le lendemain pour Sumwari. Famille de Jérémaïa. Des enfants à Tau." . + + a bibo:Note; + bibo:content "? La mère de joseph est une soeure de Lota ? Cf. 2014.II. p 57" . + + a bibo:Note; + bibo:content "? frère de kaias nikodimas??? 2014.II 57" . + + a bibo:Note; + bibo:content "otiofe" . + + a bibo:Note; + bibo:content "femla dans 2015.I.S1 : 1" . + + a bibo:Note; + bibo:content "pour sa relation avec kelekele" . + + a bibo:Note; + bibo:content "2015.I.37 : wara mi" . + + a bibo:Note; + bibo:content "Christian name = Eisak. 2014T52" . + + a bibo:Note; + bibo:content "Emprisonné pour avoir tué sa femme. Libéréré de prison en 1998. 2015.III.S13" . + + a bibo:Note; + bibo:content "2014T1 (alors enfant, va avec le pasteur Tom chercher de l'aide lors de l'accident de Sali), 2015.III.S12 p. 48" . + + a bibo:Note; + bibo:content "Tuée par des Telefols (2015.III.21)" . + + a bibo:Note; + bibo:content "Pris avec sa mère par les Telefols" . + + a bibo:Note; + bibo:content "A élevé Simo Amau (fils de Tokas) (2015.III.21)" . + + a bibo:Note; + bibo:content "maried lo yawijawi." . + + a bibo:Note; + bibo:content "Lukautim Sali Amao." . + + a bibo:Note; + bibo:content "Sali dit de lui : \"man blo moni\" (le voyant partir chercher du kaharu un dimanche) 2015.III.S23." . + + a bibo:Note; + bibo:content "?? à vérifier. Tamose > Sela selon 2015.IV.S9" . + + a bibo:Note; + bibo:content "2015T39com : \"Ground\" of Jowe is the Pepi river" . + + a bibo:Note; + bibo:content "2015T39com§8 : près de Wara Mej" . + + a bibo:Note; + bibo:content "2015T39§75 : ples name = \"feiawe\", christian name = \"waro\"" . + + a bibo:Note; + bibo:content """2015.V.S3 +Tuwari joined sumwari in 1979""" . + + a bibo:Note; + bibo:content """2015.V.S3 +Scolarisé à Sumwari 93-94 (grade 1 et 2) +en 99, est allé à Vanimo +Trois ans d'école de mission (91, 92)""" . + + a bibo:Note; + bibo:content """2015.V.S3 +Il y a eu une école de mission pendant trois ans, terminé en 92.""" . + + a bibo:Note; + bibo:content "2015.V p.22 : 32 ans" . + + a bibo:Note; + bibo:content "2015.V p. 27." . + + a bibo:Note; + bibo:content "à Ok Isaï" . + + a bibo:Note; + bibo:content "Skul Sumwari grade 8 (en 2015)" . + + a bibo:Note; + bibo:content "à Black Wara" . + + a bibo:Note; + bibo:content "Les Tuwari sont à Sumwari en 1984. ConradLewis1988upperSepik : 248, 252" . + + a bibo:Note; + bibo:content "1984, John enregistre un texte religieux à Sumwari selon le Global Recording staff." . + + a bibo:Note; + bibo:content "ou majanaj (2019.I.20)" . + + a bibo:Note; + bibo:content "À ne pas confondre avec le conseiller de Tau (2019.II.20)" . + + a bibo:Note; + bibo:content "Pafjiau dans 2019.I.20 mais Tokas dans 2015.III.S21" . + + a bibo:Note; + bibo:content "blo nambis" . + + a bibo:Note; + bibo:content "Also called Asabano acording to Waro (2019.I.33)" . + + a bibo:Note; + bibo:content "2019.I.15 Jowe's mother (?) is born on the Wanpin Mountain. Man (father? Husband ?) come from the River Pepi, gren Opojo. Numerous children die, only one (Titione) survived." . + + a bibo:Note; + bibo:content "dans 2019.I.39G, noté F." . + + a bibo:Note; + bibo:content "2019.I.41S : Elaisa et son épouse n'ont pas eu d'enfant." . + + a bibo:Note; + bibo:content "Jeremaia bin lukautim en" . + + a bibo:Note; + bibo:content "Nom Erin et non Iren (2019.I.48, p. 186)" . + + a bibo:Note; + bibo:content "name: hena (2019.I.48, 186)" . + + a bibo:Note; + bibo:content "Majanaj (2019.I.48, p. 183)" . + + a bibo:Note; + bibo:content "Matlina (and not: Matine/matrina), cf. 2019.I.48, p. 177" . + + a bibo:Note; + bibo:content "Ifawij dans 2019.II.47Sb" . + + a bibo:Note; + bibo:content "??? the Mosis -> Mata relation should be checked. See 2019.II.47Sb" . + + a bibo:Note; + bibo:content "The young man sick in 2019, that went with us to Wewak but didn't go to the hospital." . + + a bibo:Note; + bibo:content "The picture and the children checked with his son the 2020 07 10." . + + a bibo:Note; + bibo:content "Mort jeune, ses enfant ne l'ont pas connu." . + + a bibo:Note; + bibo:content "Frère aîné décédé." . + + a bibo:Note; + bibo:content "???" . + + a bibo:Note; + bibo:content "suanime dans 2019.II.82, p. 58" . + + a bibo:Note; + bibo:content "Village où j'ai dormi en 2013 avant de marcher jusqu'à Hesia. Tokples : asabano. Hesia est l'un de leur village." . + + a bibo:Note; + bibo:content "Settlement arround the kienu/Karu River, tuwari with some asabano." . + + a bibo:Note; + bibo:content "Matias Lunake selon 2013T19" . + + a bibo:Note; + bibo:content "Village avec piste très incliné où j'ai fait escale à l'allé en 2014. Au dessus de Sumwari" . + + a bibo:Note; + bibo:content "antap nikjej. Wanwan arepi go lo ejpasi (2019.II.82)" . + + a bibo:Note; + bibo:content "On Wario River?" . + + a bibo:Note; + bibo:content "Langue maternelle : cf. 2019.II.88 (premier enregistrement)" . + + a bibo:Note; + bibo:content "pour le clan et le groupe" . + + a bibo:Note; + bibo:content "2019.II.91: pour le clan et le groupe." . + + a bibo:Note; + bibo:content "Nombreuses informations dans 2019.II.91. P. 118: tonofuali (via son père), imaka (via la mère de son père)." . + + a bibo:Note; + bibo:content """Couple à Sumwari : 2019.II.93S +""" . + + a bibo:Note; + bibo:content "2019.II.93S" . + + a bibo:Note; + bibo:content "2019.III.103 Homme avec une maladie de peau vu en 2013 à Paupi." . + + a foaf:Person; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "père-de-Andrew"; + pnv:hasName . + + a foaf:Person; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "père-de-luth"; + pnv:hasName . + + a foaf:Person; + foaf:familyName "Maio"; + foaf:gender "M"; + foaf:givenName "Erik"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName "Jeremaia"; + foaf:gender "F"; + foaf:givenName "Sela"; + pnv:hasName . + + a foaf:Person; + bio:agent ; + ; + ; + foaf:familyName "Waia"; + foaf:gender "M"; + foaf:givenName "Andrew"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Andrew"; + foaf:gender "M"; + foaf:givenName "Abros/Aplos"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName "Andrew"; + foaf:gender "M"; + foaf:givenName "Keros"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName "Andrew"; + foaf:gender "M"; + foaf:givenName "Nora"; + pnv:hasName . + + a foaf:Person; + ; + ; + foaf:familyName "Waia"; + foaf:gender "F"; + foaf:givenName "Erine"; + pnv:hasName . + + a foaf:Person; + dcterms:references , ; + ; + foaf:familyName "Ilaisa"; + foaf:gender "F"; + foaf:givenName "Luth"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName "Ilaisa"; + foaf:gender "F"; + foaf:givenName "Tolis"; + pnv:hasName . + + a foaf:Person; + foaf:familyName "Job"; + foaf:gender "M"; + foaf:givenName "Sakie"; + pnv:hasName . + + a foaf:Person; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "femme-de-jacob"; + pnv:hasName . + + a foaf:Person; + foaf:familyName "Jacob"; + foaf:gender "F"; + foaf:givenName "Mola"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Jeremaia"; + foaf:gender "M"; + foaf:givenName "Assonith"; + pnv:hasName . + + a foaf:Person; + bio:agent ; + ; + foaf:familyName "Jeremaia"; + foaf:gender "M"; + foaf:givenName "Nomuel"; + pnv:hasName . + + a foaf:Person; + bio:agent ; + ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "femme-de-jeremaia"; + pnv:hasName . + + a foaf:Person; + dcterms:references , ; + bio:agent ; + ; + ; + foaf:familyName "Natiame"; + foaf:gender "M"; + foaf:givenName "Waro"; + pnv:hasName , . + + a foaf:Person; + dcterms:references , ; + ; + ; + foaf:familyName "Natiame"; + foaf:gender "M"; + foaf:givenName "Roy"; + pnv:hasName . + + a foaf:Person; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "femme-de-mark"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Rona"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName "Mark"; + foaf:gender "F"; + foaf:givenName "Jennyfa"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Mark"; + foaf:gender "M"; + foaf:givenName "Jesril"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Joseph"; + foaf:gender "F"; + foaf:givenName "Mata"; + pnv:hasName . + + a foaf:Person; + foaf:familyName "Saumaupo"; + foaf:gender "M"; + foaf:givenName "Inok"; + pnv:hasName . + + a foaf:Person; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "femme-de-tony"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Tonny"; + foaf:gender "F"; + foaf:givenName "Marina"; + pnv:hasName . + + a foaf:Person; + bio:agent ; + foaf:familyName "Sipamo"; + foaf:gender "M"; + foaf:givenName "Martin"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + ; + foaf:familyName "Erik", "Maio"; + foaf:gender "F"; + foaf:givenName "Stela"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + ; + foaf:familyName "Erik", "Maio"; + foaf:gender "F"; + foaf:givenName "Stelin"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName "Erik", "Imaka Musipale", "Maio"; + foaf:gender "F"; + foaf:givenName "Elmo"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + ; + foaf:familyName "Erik", "Maio"; + foaf:gender "M"; + foaf:givenName "Michael"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Erik"; + foaf:gender "F"; + foaf:givenName "Elsa"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + ; + ; + foaf:familyName "Siwalo-ou-ololo"; + foaf:gender "M"; + foaf:givenName "Joseph"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName "Joseph"; + foaf:gender "F"; + foaf:givenName "Gertrud"; + pnv:hasName . + + a foaf:Person; + dcterms:references , ; + ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Jowe / Salome"; + pnv:hasName . + + a foaf:Person; + bio:agent ; + ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Peni Sonia"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Waro"; + foaf:gender "F"; + foaf:givenName "epouse-de-peni-sonia"; + pnv:hasName . + + a foaf:Person; + bio:agent ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Nathan"; + pnv:hasName . + + a foaf:Person; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Kelab"; + pnv:hasName . + + a foaf:Person; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Mère de Kelab"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName "Ham"; + foaf:gender "M"; + foaf:givenName "Erik"; + pnv:hasName . + + a foaf:Person; + ; + ; + foaf:familyName "Ham"; + foaf:gender "F"; + foaf:givenName "Emrine"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Ham"; + foaf:gender "F"; + foaf:givenName "Damilin"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Ham"; + foaf:gender "F"; + foaf:givenName "Melorin"; + pnv:hasName . + + a foaf:Person; + ; + ; + foaf:familyName "Joshua"; + foaf:gender "M"; + foaf:givenName "Samuel"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Samuel"; + foaf:gender "F"; + foaf:givenName "Fenila (Fesnila)"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName "Jeremaia"; + foaf:gender "F"; + foaf:givenName "Femela"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Benjamin/Pensimen", "Pensimen"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Tepa"; + foaf:gender "M"; + foaf:givenName "Dixen"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Leila (ou leitia, letia)"; + pnv:hasName . + + a foaf:Person; + bio:agent ; + ; + foaf:familyName "Matias"; + foaf:gender "M"; + foaf:givenName "Doroty"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Matias"; + foaf:gender "M"; + foaf:givenName "Manase"; + pnv:hasName . + + a foaf:Person; + bio:agent ; + ; + foaf:familyName "Matias"; + foaf:gender "M"; + foaf:givenName "Kerolin"; + pnv:hasName . + + a foaf:Person; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Nowlel"; + pnv:hasName . + + a foaf:Person; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Noapi"; + pnv:hasName . + + a foaf:Person; + dcterms:references , , + , ; + ; + foaf:familyName "Kelekele"; + foaf:gender "M"; + foaf:givenName "Joshua"; + pnv:hasName , . + + a foaf:Person; + ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Lota"; + pnv:hasName , . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName "Joshua"; + foaf:gender "F"; + foaf:givenName "Margaret"; + pnv:hasName . + + a foaf:Person; + bio:agent ; + ; + ; + foaf:familyName "Joshua"; + foaf:gender "M"; + foaf:givenName "Daniel"; + pnv:hasName . + + a foaf:Person; + ; + ; + foaf:familyName "Joshua"; + foaf:gender "F"; + foaf:givenName "Abigael"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName "Joshua"; + foaf:gender "M"; + foaf:givenName "Waro"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Joshua"; + foaf:gender "F"; + foaf:givenName "Salina"; + pnv:hasName . + + a foaf:Person; + bio:agent ; + ; + ; + foaf:familyName "Joshua"; + foaf:gender "M"; + foaf:givenName "Emmanuel"; + pnv:hasName . + + a foaf:Person; + foaf:familyName "Emmanuel"; + foaf:gender "U"; + foaf:givenName "Bessline"; + pnv:hasName . + + a foaf:Person; + ; + ; + foaf:familyName "Simo"; + foaf:gender "M"; + foaf:givenName "Saki"; + pnv:hasName . + + a foaf:Person; + dcterms:references , ; + foaf:familyName "Saki"; + foaf:gender "M"; + foaf:givenName "Sati"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + foaf:familyName "Saki"; + foaf:gender "F"; + foaf:givenName "Satila"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + foaf:familyName "Saki"; + foaf:gender "F"; + foaf:givenName "Sasilla (satchila)"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Sipamo"; + foaf:gender "M"; + foaf:givenName "Timoty"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + ; + foaf:familyName "Timoty"; + foaf:gender "M"; + foaf:givenName "Maurice"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Mesani"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName "Ifaoli"; + foaf:gender "M"; + foaf:givenName "Mosis"; + pnv:hasName . + + a foaf:Person; + dcterms:references , ; + ; + foaf:familyName "Ifaoli"; + foaf:gender "M"; + foaf:givenName "Uso"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName "Ifaoli"; + foaf:gender "M"; + foaf:givenName "Elaisa"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName "Jeremaia"; + foaf:gender "F"; + foaf:givenName "Janet/hena"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Waro"; + pnv:hasName . + + a foaf:Person; + bio:agent ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Sima"; + pnv:hasName . + + a foaf:Person; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Timoty"; + pnv:hasName . + + a foaf:Person; + bio:agent ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Matarina", "matrina/matlina"; + pnv:hasName . + + a foaf:Person; + bio:agent ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Jo"; + pnv:hasName . + + a foaf:Person; + bio:agent ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Aïti"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName "Wuake"; + foaf:gender "M"; + foaf:givenName "Fin"; + pnv:hasName . + + a foaf:Person; + bio:agent ; + ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Heta"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + ; + ; + foaf:familyName "Maio"; + foaf:gender "F"; + foaf:givenName "Ulima (wilema)"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Araskas"; + pnv:hasName . + + a foaf:Person; + foaf:familyName "Lopen (lupen)"; + foaf:gender "F"; + foaf:givenName "Analisa (Anarisa)"; + pnv:hasName . + + a foaf:Person; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Heselon / Eslon"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Penina (fenina)"; + pnv:hasName . + + a foaf:Person; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Luth"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Kaias Nigodimas"; + pnv:hasName . + + a foaf:Person; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Kanan"; + pnv:hasName . + + a foaf:Person; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Judith"; + pnv:hasName . + + a foaf:Person; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Sati"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Malia (maria)"; + pnv:hasName . + + a foaf:Person; + ; + ; + foaf:familyName "Atam"; + foaf:gender "M"; + foaf:givenName "Tepa"; + pnv:hasName . + + a foaf:Person; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Potuel"; + pnv:hasName . + + a foaf:Person; + bio:agent ; + ; + ; + foaf:familyName "Imaka", "sejano"; + foaf:gender "M"; + foaf:givenName "Sem"; + pnv:hasName , . + + a foaf:Person; + ; + foaf:familyName "Sem"; + foaf:gender "U"; + foaf:givenName "Linth"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Sem"; + foaf:gender "U"; + foaf:givenName "Dakles"; + pnv:hasName . + + a foaf:Person; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "waiiaie"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Imaka"; + pnv:hasName . + + a foaf:Person; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Ilauabe"; + pnv:hasName . + + a foaf:Person; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "sapuaia"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "maiio"; + pnv:hasName . + + a foaf:Person; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Helinet"; + pnv:hasName . + + a foaf:Person; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Dina"; + pnv:hasName . + + a foaf:Person; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Senti"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Emakia"; + foaf:gender "M"; + foaf:givenName "John"; + pnv:hasName . + + a foaf:Person; + foaf:familyName "John"; + foaf:gender "U"; + foaf:givenName "Yatrut"; + pnv:hasName . + + a foaf:Person; + foaf:familyName "Seu/Sene/Seni"; + foaf:gender "U"; + foaf:givenName "Benny"; + pnv:hasName . + + a foaf:Person; + foaf:familyName "Benny"; + foaf:gender "U"; + foaf:givenName "Yonis"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + ; + ; + foaf:familyName "Semelipo"; + foaf:gender "M"; + foaf:givenName "Titione"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Titione"; + foaf:gender "M"; + foaf:givenName "Sana"; + pnv:hasName . + + a foaf:Person; + foaf:familyName "Afawure"; + foaf:gender "U"; + foaf:givenName "Wiso"; + pnv:hasName . + + a foaf:Person; + foaf:familyName "Saimahubo"; + foaf:gender "U"; + foaf:givenName "Aremeria"; + pnv:hasName . + + a foaf:Person; + foaf:familyName "Efawure"; + foaf:gender "U"; + foaf:givenName "Mosses"; + pnv:hasName . + + a foaf:Person; + foaf:familyName "Mosses"; + foaf:gender "U"; + foaf:givenName "Meriam"; + pnv:hasName . + + a foaf:Person; + foaf:familyName "Dainel"; + foaf:gender "U"; + foaf:givenName "Nason"; + pnv:hasName . + + a foaf:Person; + foaf:familyName "Nason"; + foaf:gender "U"; + foaf:givenName "Tina"; + pnv:hasName . + + a foaf:Person; + foaf:familyName "Nason"; + foaf:gender "U"; + foaf:givenName "Herry"; + pnv:hasName . + + a foaf:Person; + foaf:familyName "Efawure"; + foaf:gender "U"; + foaf:givenName "Eliazer"; + pnv:hasName . + + a foaf:Person; + foaf:familyName "Eliazer"; + foaf:gender "U"; + foaf:givenName "Moroty"; + pnv:hasName . + + a foaf:Person; + foaf:familyName "Aremot"; + foaf:gender "U"; + foaf:givenName "Joeal"; + pnv:hasName . + + a foaf:Person; + foaf:familyName "Ammua"; + foaf:gender "U"; + foaf:givenName "Mosses"; + pnv:hasName . + + a foaf:Person; + foaf:familyName "Mosses"; + foaf:gender "U"; + foaf:givenName "Jenna"; + pnv:hasName . + + a foaf:Person; + foaf:familyName "Sailas"; + foaf:gender "U"; + foaf:givenName "Magaret"; + pnv:hasName . + + a foaf:Person; + foaf:familyName "Aspau (?)"; + foaf:gender "U"; + foaf:givenName "Sailas"; + pnv:hasName . + + a foaf:Person; + ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Abraham"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Stoggi"; + foaf:gender "M"; + foaf:givenName "Martin"; + pnv:hasName . + + a foaf:Person; + ; + ; + foaf:familyName "Naiambo"; + foaf:gender "M"; + foaf:givenName "Stoggi"; + pnv:hasName . + + a foaf:Person; + ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Naiambo"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName "Stoggi"; + foaf:gender "M"; + foaf:givenName "Bodis"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Matlina", "Matrina"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Soxa"; + pnv:hasName . + + a foaf:Person; + dcterms:references , ; + ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Natiame"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Mata"; + pnv:hasName . + + a foaf:Person; + foaf:familyName "Abraham"; + foaf:gender "M"; + foaf:givenName "Fes"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Sipamo"; + pnv:hasName . + + a foaf:Person; + ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Semelipo"; + pnv:hasName . + + a foaf:Person; + ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Kelekele"; + pnv:hasName . + + a foaf:Person; + bio:agent ; + ; + foaf:familyName "Timoty"; + foaf:gender "F"; + foaf:givenName "Molina/morina"; + pnv:hasName . + + a foaf:Person; + ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Simo2"; + pnv:hasName . + + a foaf:Person; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "père-de-stoggi"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "père-de-naiambo"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName "Samuel"; + foaf:gender "F"; + foaf:givenName "Nilta"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Samuel"; + foaf:gender "F"; + foaf:givenName "Lina"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Samuel"; + foaf:gender "M"; + foaf:givenName "Seison"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Samuel"; + foaf:gender "F"; + foaf:givenName "Lanon"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Goma"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Ilaisa"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Atam"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Wuake"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName "Matias"; + foaf:gender "U"; + foaf:givenName "Aifeneïa"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + ; + foaf:familyName "Matias"; + foaf:gender "M"; + foaf:givenName "Warik"; + pnv:hasName . + + a foaf:Person; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Keli"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName "Sem"; + foaf:gender "F"; + foaf:givenName "Tabita"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Ifaoli / Ifawij"; + pnv:hasName . + + a foaf:Person; + ; + ; + foaf:familyName "Amao"; + foaf:gender "M"; + foaf:givenName "Mosis"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName "Sali"; + foaf:gender "U"; + foaf:givenName "Sarin"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName "Sali"; + foaf:gender "U"; + foaf:givenName "Sani"; + pnv:hasName . + + a foaf:Person; + bio:agent ; + ; + foaf:familyName "Sali"; + foaf:gender "M"; + foaf:givenName "Seprun"; + pnv:hasName . + + a foaf:Person; + bio:agent ; + ; + foaf:familyName "Timoty"; + foaf:gender "F"; + foaf:givenName "Molin/morin"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Fin"; + foaf:gender "U"; + foaf:givenName "a"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Fin"; + foaf:gender "U"; + foaf:givenName "b"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Fin"; + foaf:gender "U"; + foaf:givenName "c"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Fin"; + foaf:gender "U"; + foaf:givenName "d"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Fin"; + foaf:gender "U"; + foaf:givenName "e"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Fin"; + foaf:gender "U"; + foaf:givenName "f"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Fin"; + foaf:gender "U"; + foaf:givenName "g"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Fin"; + foaf:gender "U"; + foaf:givenName "h"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Araskas"; + foaf:gender "U"; + foaf:givenName "a"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Araskas"; + foaf:gender "M"; + foaf:givenName "b"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Araskas"; + foaf:gender "U"; + foaf:givenName "c"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName "Araskas"; + foaf:gender "M"; + foaf:givenName "maf"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + foaf:familyName "Imaka"; + foaf:gender "F"; + foaf:givenName "Suafe"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + foaf:familyName "Imaka"; + foaf:gender "F"; + foaf:givenName "Josie"; + pnv:hasName . + + a foaf:Person; + bio:agent ; + ; + foaf:familyName "Sem"; + foaf:gender "M"; + foaf:givenName "Paul"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Sem"; + foaf:gender "M"; + foaf:givenName "Wesani"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + foaf:familyName "Waiaie"; + foaf:gender "F"; + foaf:givenName "Linet"; + pnv:hasName . + + a foaf:Person; + foaf:familyName "Stoggi"; + foaf:gender "M"; + foaf:givenName "Cox"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + foaf:familyName "Waiaie"; + foaf:gender "M"; + foaf:givenName "Douglas"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + foaf:familyName "Waiaie"; + foaf:gender "F"; + foaf:givenName "Tenila"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + foaf:familyName "Imaka"; + foaf:gender "M"; + foaf:givenName "Benny"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + foaf:familyName "Imaka"; + foaf:gender "F"; + foaf:givenName "Tunis"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + foaf:familyName "Imaka"; + foaf:gender "F"; + foaf:givenName "Josica"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + foaf:familyName "Ilaube"; + foaf:gender "F"; + foaf:givenName "Sonia"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + foaf:familyName "Ilaube"; + foaf:gender "F"; + foaf:givenName "Tona"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + foaf:familyName "Ilaube"; + foaf:gender "M"; + foaf:givenName "Samuel"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + foaf:familyName "Ilaube"; + foaf:gender "M"; + foaf:givenName "Paul"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + foaf:familyName "Ilaube"; + foaf:gender "F"; + foaf:givenName "Delma"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + foaf:familyName "Ilaube"; + foaf:gender "F"; + foaf:givenName "Tobelin"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + foaf:familyName "Ilaube"; + foaf:gender "F"; + foaf:givenName "Jenet"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + foaf:familyName "Sepnaia"; + foaf:gender "M"; + foaf:givenName "Tobias"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + foaf:familyName "Milisa"; + foaf:gender "F"; + foaf:givenName "Sepnaia"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + foaf:familyName "Imaka"; + foaf:gender "F"; + foaf:givenName "Benina"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + foaf:familyName "Maio"; + foaf:gender "F"; + foaf:givenName "Akusta"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + foaf:familyName "Maio"; + foaf:gender "F"; + foaf:givenName "Sera"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + foaf:familyName "Maio"; + foaf:gender "F"; + foaf:givenName "Ennila"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + foaf:familyName "Maio"; + foaf:gender "F"; + foaf:givenName "Sendila"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Waia"; + foaf:gender "M"; + foaf:givenName "Waia"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Nathan"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "père-de-heta"; + pnv:hasName . + + a foaf:Person; + dcterms:references , ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "mère-de-heta"; + pnv:hasName . + + a foaf:Person; + ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "grand-père-de-Heta"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName "Amao"; + foaf:gender "M"; + foaf:givenName "amao"; + pnv:hasName . + + a foaf:Person; + bio:agent ; + ; + foaf:familyName "mosis"; + foaf:gender "M"; + foaf:givenName "monstem/monstel"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName "Ilaisa"; + foaf:gender "M"; + foaf:givenName "père-de-araskas"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Koni atam"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Kanu"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Joseph (junior)"; + foaf:gender "F"; + foaf:givenName "Soslin"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Joseph (junior)"; + foaf:gender "M"; + foaf:givenName "Neto"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Beni (Benson)"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Jonis"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "père-de-benni"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "mère-de-beni"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Oti / otiofe"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Nawami"; + pnv:hasName , . + + a foaf:Person; + ; + ; + foaf:familyName "Ilau"; + foaf:gender "M"; + foaf:givenName "Jacob"; + pnv:hasName . + + a foaf:Person; + bio:agent ; + ; + foaf:familyName "Ilau"; + foaf:gender "M"; + foaf:givenName "Deni"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Ilau"; + foaf:gender "M"; + foaf:givenName "Lekssari"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName "Ilau"; + foaf:gender "M"; + foaf:givenName "Toni"; + pnv:hasName . + + a foaf:Person; + bio:agent ; + ; + foaf:familyName "Ilau"; + foaf:gender "F"; + foaf:givenName "Maima"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Tan"; + pnv:hasName . + + a foaf:Person; + ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Manas"; + pnv:hasName . + + a foaf:Person; + ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Lupen"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Pito"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Sele"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + foaf:familyName "Joseph"; + foaf:gender "F"; + foaf:givenName "Sion"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + foaf:familyName "Joseph"; + foaf:gender "F"; + foaf:givenName "sonila"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Naham"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Timoti"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName "Joseph (junior)"; + foaf:gender "U"; + foaf:givenName "jenita"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "oki makapia"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName "Waro"; + foaf:gender "M"; + foaf:givenName "Jones"; + pnv:hasName . + + a foaf:Person; + ; + foaf:gender "M"; + pnv:hasName . + + a foaf:Person; + ; + foaf:gender "F"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "kassan kanan"; + pnv:hasName . + + a foaf:Person; + ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "sera"; + pnv:hasName . + + a foaf:Person; + bio:agent ; + ; + foaf:familyName "Amao"; + foaf:gender "M"; + foaf:givenName "?"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName "John"; + foaf:gender "F"; + foaf:givenName "Jonila"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "jakopo"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Seilas"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName "Emmanuel"; + foaf:gender "M"; + foaf:givenName "grensi"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Peslin"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "kaias Nigodimas"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Nathan"; + pnv:hasName . + + a foaf:Person; + bio:agent ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "kaias (gras bilong hed)"; + pnv:hasName . + + a foaf:Person; + bio:agent ; + ; + ; + foaf:familyName "Sipamo"; + foaf:gender "M"; + foaf:givenName "Waro"; + pnv:hasName . + + a foaf:Person; + ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "moloti/moroti"; + pnv:hasName . + + a foaf:Person; + ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Mamane"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "fau'eme"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName ""; + foaf:gender "U"; + foaf:givenName "Tema"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Angela"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Hema"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Sam"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Immanuel"; + pnv:hasName . + + a foaf:Person; + ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Makanai/majanaj"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "femme-de-manas (fille de anajpafe et helinau???)"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName ""; + foaf:gender "U"; + foaf:givenName "Suliana"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName ""; + foaf:gender "U"; + foaf:givenName "Rotni"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName ""; + foaf:gender "U"; + foaf:givenName "Peta"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "pere-de-manas"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Tosolo"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName "Waro"; + foaf:gender "M"; + foaf:givenName "Sipas"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName "Sipas"; + foaf:gender "U"; + foaf:givenName "Niksi"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Sosi"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Sotila"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "i'anemei"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName "Imaka"; + foaf:gender "M"; + foaf:givenName "John"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName "Imaka"; + foaf:gender "U"; + foaf:givenName "?1"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName "Imaka"; + foaf:gender "U"; + foaf:givenName "?2"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName "Sem"; + foaf:gender "F"; + foaf:givenName "Sosi"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName "Maio"; + foaf:gender "F"; + foaf:givenName "Linete"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + foaf:familyName "Elita"; + foaf:gender "U"; + pnv:hasName . + + a foaf:Person; + bio:agent ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "seslel"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + ; + ; + foaf:familyName "Jeremaia"; + foaf:gender "F"; + foaf:givenName "Malia"; + pnv:hasName . + + a foaf:Person; + bio:agent ; + ; + ; + foaf:familyName "Jeremaia"; + foaf:gender "F"; + foaf:givenName "Monika"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Teglese/tegres"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Lupen"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Amao"; + foaf:gender "M"; + foaf:givenName "Simon"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Tokas/Pafjiau/suanime"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Oplejamo"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Slofe"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Jo"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Fils-de-Slofe"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Fille-de-Slofe"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Sela"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "mata"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "heta"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Natan"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "nila"; + pnv:hasName . + + a foaf:Person; + bio:agent ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Pitawalo / Pitowalo"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "wiwao"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "waia"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName ""; + foaf:gender "U"; + foaf:givenName "Tamose"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Tema"; + pnv:hasName . + + a foaf:Person; + ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Sela"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Titione"; + foaf:gender "F"; + foaf:givenName "Tema"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Toniel(=Toni?)"; + pnv:hasName . + + a foaf:Person; + ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Kanawe"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Apape"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Robin"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Tepson"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Simi"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "nejaufoneja"; + pnv:hasName . + + a foaf:Person; + foaf:familyName "Tonny"; + foaf:gender "F"; + foaf:givenName "Malina"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + ; + foaf:familyName "Sali"; + foaf:gender "M"; + foaf:givenName "?"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Bodis"; + foaf:gender "M"; + foaf:givenName "Tuks"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName "Bodis"; + foaf:gender "F"; + foaf:givenName "mareana"; + pnv:hasName . + + a foaf:Person; + bio:agent ; + ; + foaf:familyName "Bodis"; + foaf:gender "M"; + foaf:givenName "Greto"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName "Bodis"; + foaf:gender "M"; + foaf:givenName "Jalak"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + ; + foaf:familyName "Kelekele"; + foaf:gender "F"; + foaf:givenName "?"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + ; + foaf:familyName "Kelekele"; + foaf:gender "M"; + foaf:givenName "?"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "antale"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "awaliso / awaleso"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Wajne"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "djena"; + pnv:hasName . + + a foaf:Person; + ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "miliam"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "sialu"; + pnv:hasName . + + a foaf:Person; + bio:agent ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Aimos"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName "Amao"; + foaf:gender "F"; + foaf:givenName "Malina"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName "Ilau"; + foaf:gender "M"; + foaf:givenName "Tonton"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Tonton"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + ; + foaf:familyName "Amao"; + foaf:gender "M"; + foaf:givenName "Megel"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Amao"; + foaf:gender "F"; + foaf:givenName "Pensila"; + pnv:hasName . + + a foaf:Person; + dcterms:references , ; + ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "jepau"; + pnv:hasName . + + a foaf:Person; + bio:agent ; + ; + foaf:familyName "Natiame"; + foaf:gender "M"; + foaf:givenName "berit"; + pnv:hasName . + + a foaf:Person; + bio:agent ; + ; + foaf:familyName "Natiame"; + foaf:gender "M"; + foaf:givenName "misele"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + ; + foaf:familyName "Natiame"; + foaf:gender "F"; + foaf:givenName "unknown"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + ; + foaf:familyName "Natiame"; + foaf:gender "M"; + foaf:givenName "unknown"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + ; + foaf:familyName "Natiame"; + foaf:gender "F"; + foaf:givenName "unknown"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + ; + foaf:familyName "Natiame"; + foaf:gender "F"; + foaf:givenName "unknown"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "wa:mea:sepo:"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "a:nauliwo"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Stoggi"; + foaf:gender "M"; + foaf:givenName "ja:na"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName "Abraham"; + foaf:gender "F"; + foaf:givenName "unknown"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Boleks"; + pnv:hasName . + + a foaf:Person; + ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Semete"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Soki"; + pnv:hasName . + + a foaf:Person; + ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Augusta"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Salus"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + ; + foaf:familyName "Ilau"; + foaf:gender "F"; + foaf:givenName "Talsi"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + ; + foaf:familyName "Ilau"; + foaf:gender "M"; + foaf:givenName "Tajtus"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + ; + foaf:familyName "Ilau"; + foaf:gender "M"; + foaf:givenName "Pita"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + ; + foaf:familyName "Ilau"; + foaf:gender "F"; + foaf:givenName "Tasi"; + pnv:hasName . + + a foaf:Person; + bio:agent ; + ; + foaf:familyName "Joshua"; + foaf:gender "F"; + foaf:givenName "Mawi"; + pnv:hasName . + + a foaf:Person; + bio:agent ; + ; + foaf:familyName "Joshua"; + foaf:gender "M"; + foaf:givenName "Koprun"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + ; + foaf:familyName "Joshua"; + foaf:gender "M"; + foaf:givenName "Kamej"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + ; + foaf:familyName "Joshua"; + foaf:gender "F"; + foaf:givenName "Lenda"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName "Naiambo"; + foaf:gender "F"; + foaf:givenName "Asnet"; + pnv:hasName . + + a foaf:Person; + bio:agent ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Atex"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Abraham"; + foaf:gender "M"; + foaf:givenName "djefo"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Mata"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "U"; + foaf:givenName "Loj"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Atam"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Marina"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Kaias Nigodimas"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Toniel"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Temlin"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Kilbet"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Aneks"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Ija:lei"; + pnv:hasName . + + a foaf:Person; + foaf:familyName ""; + foaf:gender "M"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Ajnawe"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Olwawe"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Simo3"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "anajpafe"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "helinau"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Wanbu"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Selwo"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "poolwale"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "nuwapi"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Kaias"; + foaf:gender "M"; + foaf:givenName "Moxza"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Helimot (hElimOt)"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Julia"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Jowel"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Jaklin"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Fewel"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Ajsak"; + pnv:hasName . + + a foaf:Person; + bio:agent ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Jakob"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Topex"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "senja"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "kelija"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName "Natiame"; + foaf:gender "M"; + foaf:givenName "Frank(?)"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Natiame"; + foaf:gender "F"; + foaf:givenName "Rebeca"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName "Natiame"; + foaf:gender "F"; + foaf:givenName "Manita"; + pnv:hasName . + + a foaf:Person; + bio:agent ; + ; + foaf:familyName "Natiame"; + foaf:gender "F"; + foaf:givenName "Suafe"; + pnv:hasName . + + a foaf:Person; + bio:agent ; + ; + foaf:familyName "Natiame"; + foaf:gender "M"; + foaf:givenName "Natiame"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "Soluano"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Watuale"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "hanajali"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "helinau ene"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "U"; + foaf:givenName "Loita"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + ; + foaf:familyName ""; + foaf:gender "M"; + foaf:givenName "Apajfau"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "sinano"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + ; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "suwafe"; + pnv:hasName . + + a foaf:Person; + ; + foaf:familyName ""; + foaf:gender "F"; + foaf:givenName "mela"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName "Ilau"; + foaf:gender "M"; + foaf:givenName "djetrel"; + pnv:hasName , . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName "Ilau"; + foaf:gender "U"; + foaf:givenName "steven"; + pnv:hasName , . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName "Ilau"; + foaf:gender "U"; + foaf:givenName "plenton"; + pnv:hasName , . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName "Ilau"; + foaf:gender "U"; + foaf:givenName "djetro/setro"; + pnv:hasName , . + + a foaf:Person; + bio:agent ; + ; + foaf:familyName "Ilau"; + foaf:gender "F"; + foaf:givenName "djelma"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + foaf:familyName "Andrew"; + foaf:gender "M"; + foaf:givenName "Alphonse"; + pnv:hasName . + + a foaf:Person; + dcterms:references , ; + bio:agent ; + ; + ; + foaf:familyName "Andrew"; + foaf:gender "M"; + foaf:givenName "Arnold"; + pnv:hasName . + + a foaf:Person; + ; + ; + foaf:familyName "Goma"; + foaf:gender "M"; + foaf:givenName "Ham"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName "Goma"; + foaf:gender "F"; + foaf:givenName "Hilda"; + pnv:hasName . + + a foaf:Person; + ; + ; + foaf:familyName "Abraham"; + foaf:gender "M"; + foaf:givenName "Jacob"; + pnv:hasName . + + a foaf:Person; + bio:agent ; + ; + ; + foaf:familyName "Naiambo"; + foaf:gender "M"; + foaf:givenName "Jeremaia"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + bio:agent ; + ; + ; + foaf:familyName "Abraham"; + foaf:gender "M"; + foaf:givenName "joseph"; + pnv:hasName . + + a foaf:Person; + dcterms:references , ; + ; + ; + foaf:familyName "Abraham"; + foaf:gender "M"; + foaf:givenName "Mark"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName "Wuake"; + foaf:gender "M"; + foaf:givenName "Matias"; + pnv:hasName . + + a foaf:Person; + dcterms:references , ; + ; + foaf:familyName "Amao"; + foaf:gender "M"; + foaf:givenName "Sali"; + pnv:hasName . + + a foaf:Person; + dcterms:references ; + ; + ; + foaf:familyName "Abraham"; + foaf:gender "M"; + foaf:givenName "Tony"; + pnv:hasName . + + a gn:Feature; + gn:alternateName "Ok Isaï"; + gn:featureClass "Village"; + gn:name "Ok Isaï"; + gn:parentFeature . + + a gn:Feature; + gn:alternateName "Tau"; + gn:featureClass "Village"; + gn:name "Tau"; + gn:parentFeature ; + rico:lat "-4.74940013885"; + rico:long "142.169952393" . + + a gn:Feature; + gn:alternateName "Sumwari"; + gn:featureClass "Village"; + gn:name "Sumwari"; + gn:parentFeature ; + rico:lat "-4.75188064575"; + rico:long "142.358688354" . + + a gn:Feature; + gn:alternateName "Irian jaya"; + gn:featureClass "State"; + gn:name "Irian jaya" . + + a gn:Feature; + gn:alternateName "Moropote"; + gn:featureClass "Village"; + gn:name "Moropote"; + gn:parentFeature . + + a gn:Feature; + gn:alternateName "Wapuso"; + gn:featureClass "Village"; + gn:name "Wapuso"; + gn:parentFeature . + + a gn:Feature; + gn:alternateName "Wewak"; + gn:featureClass "City"; + gn:name "Wewak"; + rico:lat "-3.54837346077"; + rico:long "143.634567261" . + + a gn:Feature; + dcterms:references ; + gn:alternateName "Tepeso"; + gn:featureClass "Village"; + gn:name "Tepeso"; + gn:parentFeature . + + a gn:Feature; + dcterms:references ; + gn:alternateName "kolomo"; + gn:featureClass "Unknown"; + gn:name "kolomo" . + + a gn:Feature; + gn:alternateName "Yambun"; + gn:featureClass "Unknown" . + + a gn:Feature; + gn:alternateName "Black Wara", "Unamo", "blawara"; + gn:featureClass "Village" . + + a gn:Feature; + skos:note ; + gn:alternateName "Wara Pepi"; + gn:featureClass "Unknown" . + + a gn:Feature; + dcterms:references ; + gn:alternateName "Mapisi/Maposi"; + gn:featureClass "Village"; + gn:parentFeature ; + rico:lat "-4.54532"; + rico:long "142.22118" . + + a gn:Feature; + dcterms:references ; + gn:alternateName "Lariaso"; + gn:featureClass "Village"; + gn:parentFeature . + + a gn:Feature; + gn:alternateName "Siliambil"; + gn:featureClass "Unknown" . + + a gn:Feature; + dcterms:references ; + gn:alternateName "Hauna"; + gn:featureClass "Village" . + + a gn:Feature; + gn:alternateName "Woswori"; + gn:featureClass "Village"; + gn:parentFeature . + + a gn:Feature; + dcterms:references ; + gn:alternateName "Wasimai"; + gn:featureClass "Village"; + gn:parentFeature . + + a gn:Feature; + dcterms:references ; + gn:alternateName "Siliam"; + gn:featureClass "Unknown" . + + a gn:Feature; + dcterms:references ; + gn:alternateName "Akiapmin"; + gn:featureClass "Village"; + gn:parentFeature . + + a gn:Feature; + gn:alternateName "Yawiyawi"; + gn:featureClass "Village"; + gn:parentFeature . + + a gn:Feature; + gn:alternateName "Téléfomin"; + gn:featureClass "Village"; + gn:parentFeature . + + a gn:Feature; + gn:alternateName "Vanimo"; + gn:featureClass "City" . + + a gn:Feature; + gn:alternateName "Niksek"; + gn:featureClass "Village"; + gn:parentFeature . + + a gn:Feature; + gn:alternateName "Arepi territory"; + gn:featureClass "Region" . + + a gn:Feature; + gn:alternateName "Niksek territory"; + gn:featureClass "Region" . + + a gn:Feature; + gn:alternateName "Tuwari territory"; + gn:featureClass "Region" . + + a gn:Feature; + gn:alternateName "Telefomin territory"; + gn:featureClass "Region" . + + a gn:Feature; + dcterms:references ; + skos:note ; + gn:alternateName "siakona"; + gn:featureClass "Village" . + + a gn:Feature; + dcterms:references ; + gn:alternateName "Hesia"; + gn:featureClass "Unknown" . + + a gn:Feature; + skos:note ; + gn:alternateName "Popiako/Bopiago"; + gn:featureClass "Village"; + gn:parentFeature ; + rico:lat "-5.039817810058594"; + rico:long "142.1725311279297" . + + a gn:Feature; + gn:alternateName "Maprik"; + gn:featureClass "City" . + + a gn:Feature; + dcterms:references ; + gn:alternateName "Tamtali"; + gn:featureClass "Unknown"; + gn:parentFeature . + + a gn:Feature; + dcterms:references ; + gn:alternateName "Tomoli"; + gn:featureClass "Village"; + gn:parentFeature . + + a gn:Feature; + dcterms:references ; + skos:note ; + gn:alternateName "Iatuom"; + gn:featureClass "Unknown"; + gn:parentFeature . + + a gn:Feature; + dcterms:references ; + skos:note ; + gn:alternateName "ejpasi"; + gn:featureClass "Village" . + + a gn:Feature; + dcterms:references ; + skos:note ; + gn:alternateName "nikjej"; + gn:featureClass "Village"; + gn:parentFeature . + + a gn:Feature; + gn:alternateName "Paupi"; + gn:featureClass "Village" . + + a gn:Feature; + skos:note ; + gn:alternateName "Asabano", "Duranmin", "Wani", "asba", "konama"; + gn:featureClass "Village"; + gn:name "Duranmin"; + gn:parentFeature . + + a bibo:Document; + dcterms:references ; + dcterms:title "2014.VI.34 - les migrations des clans Tau" . + + a bibo:Document; + dcterms:title "2014.VI.40 - décès de Ruth" . + + a bibo:Document; + dcterms:references ; + dcterms:title "2014.VI.49 -- le regroupement des mi'ari, tuwari et sumwari à Sumwari" . + + a bibo:Document; + dcterms:references ; + dcterms:title "2014 Fichier missionnaire" . + + a bibo:Document; + dcterms:title "2014.VI" . + + a bibo:Document; + dcterms:title "2014.I" . + + a bibo:Document; + dcterms:title "2014.II" . + + a bibo:Document; + dcterms:title "2015.I.S1" . + + a bibo:Document; + dcterms:title "2015.I.S3" . + + a bibo:Document; + dcterms:title "2015.I" . + + a bibo:Document; + dcterms:title "2015.I" . + + a bibo:Document; + dcterms:title "2014.V" . + + a bibo:Document; + dcterms:title "2015.I" . + + a bibo:Document; + dcterms:title "2015.I" . + + a bibo:Document; + dcterms:title "2015.II" . + + a bibo:Document; + dcterms:title "2015.III.S18" . + + a bibo:Document; + dcterms:references ; + dcterms:title "2015.III.S21" . + + a bibo:Document; + dcterms:title "2015T35" . + + a bibo:Document; + dcterms:title "2017.III.S23" . + + a bibo:Document; + dcterms:title "2015.IV.S7" . + + a bibo:Document; + dcterms:title "2015.IV.S9" . + + a bibo:Document; + dcterms:title "2015.IV.S10" . + + a bibo:Document; + dcterms:title "2015.IV.S12" . + + a bibo:Document; + dcterms:title "2015T39" . + + a bibo:Document; + dcterms:title "2015T39com" . + + a bibo:Document; + dcterms:title "2015.IV.S16" . + + a bibo:Document; + dcterms:title "2015T39§75" . + + a bibo:Document; + dcterms:title "2015.V.S3" . + + a bibo:Document; + dcterms:title "2015.V.S10" . + + a bibo:Document; + dcterms:title "2019.I" . + + a bibo:Document; + dcterms:title "ConradLewis1988UpperSepik" . + + a bibo:Document; + dcterms:title "2015T39" . + + a bibo:Document; + dcterms:title "2019.II" . + + a bibo:Document; + dcterms:title "Mail, august 28, 2013 (voir fichier Langues.docx)" . + + a bibo:Document; + dcterms:title "2015.V" . + + a bibo:Document; + dcterms:title "2014.IV" . + + a bibo:Document; + dcterms:title "2019.II" . + + a bibo:Document; + dcterms:title "2019.III" . + + a bibo:Document; + dcterms:title "2022.01" . + + a skos:Concept; + skos:inScheme "http://mycorpus.com/conceptScheme/Tags"; + skos:prefLabel "langue : tuwari" . + + a skos:Concept; + skos:inScheme "http://mycorpus.com/conceptScheme/Tags"; + skos:prefLabel "langue : sumwari" . + + a skos:Concept; + skos:inScheme "http://mycorpus.com/conceptScheme/Tags"; + skos:prefLabel "langue : tok pisin" . + + a skos:Concept; + skos:inScheme "http://mycorpus.com/conceptScheme/Tags"; + skos:prefLabel "langue : akiapmin" . + + a skos:Concept; + skos:inScheme "http://mycorpus.com/conceptScheme/Tags"; + skos:prefLabel "langue : anglais" . + + a skos:Concept; + skos:inScheme "http://mycorpus.com/conceptScheme/Tags"; + skos:prefLabel "langue : moropote" . + + a skos:Concept; + skos:inScheme "http://mycorpus.com/conceptScheme/Tags"; + skos:prefLabel "scolarisé : Ok Isaï" . + + a skos:Concept; + skos:inScheme "http://mycorpus.com/conceptScheme/Tags"; + skos:prefLabel "scolarisé : Sumwari" . + + a skos:Concept; + skos:inScheme "http://mycorpus.com/conceptScheme/Tags"; + skos:prefLabel "langue : paupi" . + + a skos:Concept; + skos:inScheme "http://mycorpus.com/conceptScheme/Tags"; + skos:prefLabel "langue : arepi" . + + a skos:Concept; + skos:inScheme "http://mycorpus.com/conceptScheme/Tags"; + skos:prefLabel "profession : pasteur" . + + a skos:Concept; + skos:inScheme "http://mycorpus.com/conceptScheme/Tags"; + skos:prefLabel "profession : police officer" . + + a skos:Concept; + skos:inScheme "http://mycorpus.com/conceptScheme/Tags"; + skos:prefLabel "profession : community leader" .