Commit b02ec94b authored by Benedikt Heinrichs's avatar Benedikt Heinrichs
Browse files

Merge branch 'v0.5' into 'master'

v0.5

See merge request !10
parents 3aa9e3ea 165e4df0
> 1%
last 2 versions
not dead
module.exports = {
root: true,
env: {
node: true,
},
extends: [
"plugin:vue/essential",
"eslint:recommended",
"@vue/typescript/recommended",
"@vue/prettier",
"@vue/prettier/@typescript-eslint",
],
parserOptions: {
ecmaVersion: 2020,
},
rules: {
"no-console": process.env.NODE_ENV === "production" ? "warn" : "off",
"no-debugger": process.env.NODE_ENV === "production" ? "warn" : "off",
},
};
.DS_Store
node_modules
/dist
# local env files
.env.local
.env.*.local
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
# Editor directories and files
.idea
.vscode
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
include:
- project: coscine/tools/gitlab-ci-templates
file:
- /docker-runner.yml
- /nodejs.yml
stages:
- build
# there are more stages in the imported file but we only want to import some
# - test
- publish
build-branch:
extends: .build-branch
build-npm-release:
extends: .build-npm-release
publish-gitlab:
extends: .publish-gitlab-release
packageExtensions:
"@vue/cli-service@*":
peerDependencies:
"@vue/cli-plugin-eslint": "*"
"@vue/cli-plugin-router": "*"
"@vue/cli-plugin-typescript": "*"
"fork-ts-checker-webpack-plugin@*":
dependencies:
"vue-template-compiler": "*"
peerDependencies:
"typescript": "*"
"vue-i18n@*":
dependencies:
"vue": "^2.6.12"
"vue-material-design-icons@*":
dependencies:
"vue": "^2.6.12"
"vue-router@*":
dependencies:
"vue": "^2.6.12"
"vuex@*":
dependencies:
"vue": "^2.6.12"
"bootstrap-vue@*":
dependencies:
"vue": "^2.6.12"
"jquery": "*"
# AimsFrontend
# Aims Frontend
This repository contains the common frontend for the AIMS project.
\ No newline at end of file
This repository contains the common frontend for the AIMS project.
## Project setup
```
yarn install
```
### Compiles and hot-reloads for development
```
yarn serve
```
### Compiles and minifies for production
```
yarn build
```
### Lints and fixes files
```
yarn lint
```
### Customize configuration
See [Configuration Reference](https://cli.vuejs.org/config/).
{
"name": "aimsfrontend",
"version": "0.1.0",
"private": true,
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint"
},
"dependencies": {
"@itcenter-layout/bootstrap": "~1.5.5",
"@itcenter-layout/masterpage": "^1.3.0",
"@rdfjs/data-model": "^1.2.0",
"@rdfjs/dataset": "^1.1.0",
"bootstrap": "^5.0.0",
"bootstrap-vue": "^2.21.2",
"core-js": "^3.6.5",
"file-saver": "^2.0.5",
"rdf-ext": "^1.3.1",
"rdf-parse": "^1.8.0",
"vue": "^2.6.12",
"vue-i18n": "^8.24.4",
"vue-router": "^3.2.0"
},
"devDependencies": {
"@types/file-saver": "^2.0.2",
"@types/rdf-ext": "^1.3.8",
"@types/rdf-js": "^4.0.1",
"@typescript-eslint/eslint-plugin": "^4.18.0",
"@typescript-eslint/parser": "^4.18.0",
"@vue/cli-plugin-eslint": "~4.5.0",
"@vue/cli-plugin-router": "~4.5.0",
"@vue/cli-plugin-typescript": "~4.5.0",
"@vue/cli-service": "~4.5.0",
"@vue/eslint-config-prettier": "^6.0.0",
"@vue/eslint-config-typescript": "^7.0.0",
"eslint": "^6.7.2",
"eslint-plugin-prettier": "^3.3.1",
"eslint-plugin-vue": "^6.2.2",
"prettier": "^2.2.1",
"typescript": "~4.1.5",
"vue-template-compiler": "^2.6.11"
}
}
<!DOCTYPE html>
<html lang="">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<link rel="icon" href="<%= BASE_URL %>favicon.ico">
<title><%= htmlWebpackPlugin.options.title %></title>
</head>
<body>
<noscript>
<strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
</noscript>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>
<template>
<div id="app">
<aims-header
:aimsLogo="aimsLogo"
:locale="$root.$i18n.locale"
@changeLocale="changeLocale"
/>
<div class="container-fluid app-content">
<b-row class="iconRow" align-v="center">
<b-col align-h="start" class="text-left">
<b-button variant="success" @click="newApplicationProfile">{{
$t("Create")
}}</b-button>
</b-col>
<b-col align-h="end" class="text-right">
<b-button variant="secondary" @click="switchInteractivity">{{
$t("RDF")
}}</b-button>
<b-button variant="secondary" @click="downloadRDF">{{
$t("Download")
}}</b-button>
<b-button variant="primary" @click="openStoreModal">{{
$t("Save")
}}</b-button>
</b-col>
</b-row>
<router-view
:applicationProfile="selectedApplicationProfile"
:definition="definition"
:interactive="interactive"
:selectedProperty="selectedProperty"
@addVocabularyTerm="addVocabularyTerm"
@removeProperty="removeProperty"
@selectApplicationProfile="selectApplicationProfile"
@selectProperty="selectProperty"
@updateDefinition="updateDefinition"
/>
<StoreModal
:applicationProfile="selectedApplicationProfile"
:definition="definition"
:open="storeModalOpen"
@close="closeStoreModal"
@save="saveAP"
/>
</div>
</div>
</template>
<script lang="ts">
import DatasetExt from "rdf-ext/lib/Dataset";
import ApplicationProfile from "@/types/applicationProfile";
import ApplicationProfileImpl from "@/classes/ApplicationProfileImpl";
import VocabularyTerm from "@/types/vocabularyTerm";
import { Quad_Subject } from "rdf-js";
import factory from "rdf-ext";
import { saveAs } from "file-saver";
import Vue from "vue";
import AimsHeader from "@/components/Layout/AimsHeader.vue";
import aimsLogo from "@/assets/AIMS-Logo-2-Transparent.png";
import StoreModal from "@/components/ApplicationProfiles/Modals/Store.vue";
import {
addVocabularyTermToDataset,
parseApplicationProfile,
removeVocabularyTermFromDataset,
} from "@/util/linkedData";
export default Vue.extend({
name: "App",
components: {
AimsHeader,
StoreModal,
},
data() {
return {
aimsLogo: aimsLogo,
definition: factory.dataset() as DatasetExt,
interactive: true,
selectedApplicationProfile: new ApplicationProfileImpl(
"",
"",
[]
) as ApplicationProfile,
selectedProperty: factory.blankNode() as Quad_Subject,
storeModalOpen: false,
};
},
watch: {
selectedApplicationProfile() {
this.setDefinition();
},
},
methods: {
addVocabularyTerm(vocabularyTerm: VocabularyTerm) {
const changeHappened = addVocabularyTermToDataset(
vocabularyTerm,
this.selectedApplicationProfile,
this.definition
);
if (changeHappened) {
this.updateDefinition();
}
},
closeStoreModal() {
this.storeModalOpen = false;
},
changeLocale() {
if (this.$root.$i18n.locale === "en") {
this.$root.$i18n.locale = "de";
} else {
this.$root.$i18n.locale = "en";
}
},
downloadRDF() {
const filename = "applicationProfile.n3";
const blob = new Blob([this.definition.toCanonical()], {
type: "text/plain;charset=utf-8",
});
saveAs(blob, filename);
},
newApplicationProfile() {
this.selectedApplicationProfile = new ApplicationProfileImpl("", "", []);
},
openStoreModal() {
this.storeModalOpen = true;
},
removeProperty(property: Quad_Subject) {
removeVocabularyTermFromDataset(property, this.definition);
this.updateDefinition();
},
saveAP() {
// TODO: Not yet implemented
this.storeModalOpen = false;
},
selectApplicationProfile(selectedApplicationProfile: ApplicationProfile) {
this.selectedApplicationProfile = selectedApplicationProfile;
},
selectProperty(property: Quad_Subject) {
this.selectedProperty = property;
},
async setDefinition() {
this.definition = await parseApplicationProfile(
this.selectedApplicationProfile
);
},
switchInteractivity() {
this.interactive = !this.interactive;
},
updateDefinition() {
// Force definition update
this.definition = this.definition.clone();
},
},
});
</script>
<style>
#app {
width: 100%;
text-align: center;
}
.iconRow {
height: 50px;
}
.cardRow {
height: calc(100vh - 40px - 50px);
}
.cardRow .list-group {
border-radius: 0.25rem;
overflow-y: auto;
/* Subject to change since different cards have different sizes for list-groups */
max-height: 78vh;
}
.cardRow .list-group button.list-group-item-action,
.cardRow .list-group a.list-group-item-action {
background: none;
padding: 0.75rem 1.25rem;
border: 1px solid rgba(0, 0, 0, 0.125);
}
.cardRow .list-group button.list-group-item.btn-danger {
border: 1px solid rgba(0, 0, 0, 0.125);
color: #cc071e;
background-color: white;
}
.cardRow .list-group button.list-group-item.btn-danger:focus,
.cardRow .list-group button.list-group-item.btn-danger:hover {
border: 1px solid rgba(0, 0, 0, 0.125);
color: white;
background-color: #cc071e;
}
.cardRow .list-group button.list-group-item-action:focus,
.cardRow .list-group button.list-group-item-action:hover {
z-index: 1;
color: #495057;
text-decoration: none;
background-color: #f8f9fa;
margin-top: 0px;
}
.cardRow .list-group button.list-group-item-action.active {
z-index: 1;
text-decoration: none;
background-color: #00549f;
border-color: #00549f;
color: white;
margin-top: 0px;
}
.form-control,
.input-group {
margin-bottom: 0.5rem;
}
</style>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Ebene_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 3000 3000" style="enable-background:new 0 0 3000 3000;" xml:space="preserve">
<style type="text/css">
.st0{fill:#0C0C0C;}
</style>
<g>
<rect x="1651.79" y="1289.43" class="st0" width="111.49" height="414.25"/>
<polygon class="st0" points="1819.49,1289.43 1911.95,1289.43 2042.48,1477.07 2175.72,1289.43 2266.37,1289.43 2265.46,1701.87
2165.75,1701.87 2165.3,1483.86 2042.93,1653.37 1920.56,1484.77 1919.65,1702.32 1819.03,1703.23 "/>
<polygon class="st0" points="1624.62,1701.88 1459.64,1289.43 1358.18,1289.43 1275.93,1490.33 1189.94,1702.33 1302.59,1702.33
1391.59,1472.79 1407.06,1432.63 1413.38,1448.21 1508.52,1700.11 1508.63,1699.95 1509.46,1701.88 "/>
<g>
<path class="st0" d="M2636.34,1608.7l-0.2-0.05c0,0-13.65,92.84-156.11,99.54h-19.66c-121.47,0-165.92-87.91-165.92-87.91
l78.89-60.71c43.02,45.78,72.93,49.38,72.93,49.38c64.41,6.36,78.89-10.89,78.89-10.89c3.84-3.2,6.31-6.41,7.74-9.51
c0.05-0.2,0.1-0.44,0.15-0.69c3.84-15.23-11.09-25.58-11.09-25.58s-9.26-5.91-20.65-11.09c-21.83-8.87-44.15-12.96-44.15-12.96
c-68.89-15.37-105.16-56.18-105.16-56.18c-15.13-17-21.53-38.34-23.85-57.7c-0.05-0.64-0.1-1.28-0.2-1.92
c-0.05-0.64-0.15-1.28-0.2-1.92l-0.15-1.92c-2.46-33.46,7.49-58.69,12.07-68.35c37.94-67.46,134.73-66.72,134.73-66.72
c100.62-1.77,148.62,64.36,148.62,64.36l-72.49,62.58c-30.85-29.91-78.84-31.73-78.84-31.73c-38.98-1.82-40.8,28.09-40.8,28.09
c0,23.55,53.47,36.27,53.47,36.27l52.58,15.42c70.71,22.67,90.62,63.42,90.62,63.42
C2645.16,1553.71,2640.04,1591.5,2636.34,1608.7z"/>
</g>
</g>
<g>
<path class="st0" d="M947.07,1564.46l-77.07,48.51c-2.1-2.22-4.27-4.37-6.53-6.43c-21.68-19.79-50.54-31.86-82.23-31.86
c-1.07,0-2.13,0.01-3.19,0.05c-21.34,0.47-42.83,6.57-62.2,18.81c-51.58,32.61-70.3,97.57-46.44,151.77
c12.11,27.69,34.22,49.99,61.76,62.4l-14.02,61.48c-17.64-0.41-35.42,6.12-48.88,19.59c-26.12,26.13-26.13,68.48-0.02,94.58
c26.11,26.1,68.45,26.07,94.58-0.06c26.12-26.13,26.13-68.48,0.02-94.58c-6.06-6.06-13-10.7-20.4-13.95l13.45-58.99
c8.17,1.73,16.64,2.65,25.33,2.65c67.36,0,121.97-54.56,121.97-121.87c0-12.65-1.93-24.86-5.51-36.34
c-0.88-2.81-1.86-5.59-2.93-8.32l76.78-48.31C961.32,1591.74,953.13,1578.52,947.07,1564.46z M897.19,1660.54
c-0.02-0.08-0.05-0.16-0.07-0.24C897.15,1660.37,897.17,1660.45,897.19,1660.54l0.25-0.16l-0.24,0.16H897.19z M897.21,1660.53
l0.25-0.15l-0.01,0.01L897.21,1660.53c-0.03-0.08-0.06-0.17-0.09-0.26c-0.02-0.07-0.04-0.14-0.06-0.21
C897.11,1660.21,897.16,1660.37,897.21,1660.53z"/>
<path class="st0" d="M672.54,1477.37l34.2,90.46c9.93-6.27,24.29-13.08,43.12-16.42l-34.24-90.57
c27.52-17.11,48.22-45.1,55.17-79.38c9.71-47.85-10.01-94.82-46.71-122.16l22.16-39.28c16.79,5.42,35.69,4.25,52.44-4.82
c32.49-17.59,44.59-58.17,27.01-90.64c-17.58-32.47-58.16-44.53-90.66-26.94c-32.49,17.59-44.59,58.17-27.01,90.64
c4.08,7.54,9.4,13.97,15.57,19.19l-21.82,38.68c-8.21-3.72-16.96-6.58-26.17-8.45c-43.08-8.74-85.45,6.43-113.41,36.38
l-100.45-78.5c9.3-18.67,11.25-40.96,3.61-62.14c-14.83-41.08-60.12-62.37-101.16-47.55c-41.04,14.82-62.3,60.13-47.47,101.2
c14.83,41.08,60.12,62.37,101.16,47.55c9.53-3.44,17.98-8.52,25.17-14.81l101.22,79.1c-5.66,10.42-9.9,21.84-12.38,34.07
c-5.74,28.28-1.19,56.25,11.06,80.05l-67.49,41.18c-12.02-12.92-29.09-21.11-48.14-21.36c-36.95-0.48-67.29,29.05-67.77,65.96
c-0.48,36.92,29.07,67.23,66.02,67.72c36.95,0.48,67.29-29.05,67.77-65.96c0.11-8.57-1.4-16.78-4.24-24.35l68.07-41.54
c17.16,20.91,41.34,36.27,69.9,42.07C642.54,1479.91,657.9,1479.97,672.54,1477.37z"/>
<polygon class="st0" points="887.99,1594.7 887.99,1594.7 887.99,1594.7 "/>
<path class="st0" d="M1152.17,1400.7c-44.51-28.17-100.28-23.88-139.64,6.59c-10.76,8.83-31.57,29.04-41.86,60.23l0.09,0.07
c-7.29,23.52-7.1,48.33-0.18,71.22c6.13,20.27,17.54,39.02,33.72,53.99c5.37,4.97,11.26,9.52,17.66,13.56
c56.81,35.96,131.99,19.06,167.93-37.74C1225.86,1511.84,1208.98,1436.65,1152.17,1400.7z M1087.12,1594.35
c-48.7,0-88.23-39.54-88.23-88.23c0-48.71,39.54-88.19,88.23-88.19c48.71,0,88.19,39.48,88.19,88.19
C1175.3,1554.81,1135.82,1594.35,1087.12,1594.35z"/>
<path class="st0" d="M1086.75,1446.01c-32.23,0-58.35,26.07-58.35,58.29c0,32.23,26.12,58.36,58.35,58.36
c32.17,0,58.29-26.13,58.29-58.36C1145.04,1472.09,1118.92,1446.01,1086.75,1446.01z M1088.02,1534.84
c-15.69,0-28.36-12.67-28.36-28.36c0-15.63,12.67-28.3,28.36-28.3c15.63,0,28.3,12.67,28.3,28.3
C1116.32,1522.17,1103.65,1534.84,1088.02,1534.84z"/>
</g>
</svg>
<?xml version="1.0" encoding="utf-8"?>
<!-- Generator: Adobe Illustrator 23.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg version="1.1" id="Ebene_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px"
viewBox="0 0 3000 3000" style="enable-background:new 0 0 3000 3000;" xml:space="preserve">
<style type="text/css">
.st0{display:none;fill:#0C0C0C;}
.st1{fill:#0C0C0C;}
</style>
<rect x="-49" y="-49" class="st0" width="3097" height="3081"/>
<g>
<path class="st1" d="M1828.03,1564.1l-133.1,83.76c-3.62-3.84-7.38-7.54-11.28-11.1c-37.44-34.17-87.28-55.02-142-55.02
c-1.85,0-3.68,0.02-5.51,0.08c-36.85,0.81-73.97,11.34-107.4,32.48c-89.07,56.3-121.39,168.48-80.19,262.09
c20.91,47.81,59.09,86.33,106.66,107.75l-24.21,106.16c-30.46-0.7-61.16,10.56-84.41,33.83c-45.11,45.13-45.12,118.24-0.04,163.32
c45.09,45.07,118.21,45.03,163.32-0.1c45.11-45.13,45.12-118.24,0.04-163.32c-10.46-10.46-22.44-18.48-35.23-24.08l23.23-101.87
c14.12,2.98,28.74,4.58,43.75,4.58c116.33,0,210.62-94.21,210.62-210.46c0-21.85-3.33-42.93-9.51-62.75
c-1.52-4.86-3.21-9.65-5.06-14.37l132.59-83.42C1852.65,1611.19,1838.5,1588.37,1828.03,1564.1z M1741.91,1730
c-0.04-0.13-0.08-0.28-0.12-0.42C1741.83,1729.72,1741.88,1729.85,1741.91,1730l0.43-0.27l-0.41,0.27H1741.91z M1741.93,1729.98
l0.43-0.26l-0.02,0.01l-0.42,0.26c-0.05-0.16-0.1-0.31-0.15-0.47c-0.04-0.12-0.07-0.24-0.1-0.36
C1741.77,1729.43,1741.85,1729.72,1741.93,1729.98z"/>
<path class="st1" d="M1353.97,1413.71l59.05,156.21c17.14-10.83,41.95-22.59,74.46-28.35l-59.13-156.4
c47.53-29.55,83.26-77.87,95.27-137.07c16.76-82.63-17.29-163.74-80.66-210.94l38.26-67.83c29,9.37,61.63,7.33,90.56-8.33
c56.11-30.38,77-100.45,46.64-156.51c-30.35-56.07-100.44-76.89-156.55-46.52c-56.11,30.38-76.99,100.45-46.64,156.51
c7.04,13.01,16.23,24.12,26.89,33.14l-37.68,66.8c-14.18-6.43-29.29-11.37-45.19-14.6c-74.38-15.09-147.56,11.1-195.83,62.83
L989.96,927.09c16.06-32.24,19.44-70.74,6.24-107.3c-25.61-70.93-103.82-107.7-174.69-82.11
c-70.88,25.58-107.57,103.83-81.97,174.76s103.82,107.7,174.69,82.11c16.45-5.94,31.05-14.72,43.47-25.58l174.79,136.59
c-9.78,17.99-17.09,37.72-21.37,58.84c-9.91,48.83-2.06,97.14,19.1,138.23l-116.54,71.12c-20.75-22.32-50.24-36.45-83.12-36.88
c-63.8-0.84-116.2,50.16-117.03,113.91c-0.84,63.75,50.21,116.1,114.01,116.94c63.8,0.84,116.2-50.16,117.03-113.91
c0.19-14.8-2.41-28.97-7.32-42.04l117.55-71.73c29.63,36.11,71.38,62.63,120.71,72.64
C1302.17,1418.08,1328.69,1418.19,1353.97,1413.71z"/>
<polygon class="st1" points="1726.02,1616.32 1726.01,1616.32 1726.01,1616.32 "/>
<path class="st1" d="M2182.22,1281.3c-76.85-48.64-173.16-41.24-241.13,11.38c-18.58,15.24-54.51,50.14-72.28,104.01l0.16,0.12
c-12.58,40.61-12.26,83.46-0.3,122.99c10.59,35,30.29,67.38,58.23,93.24c9.27,8.58,19.45,16.44,30.49,23.42
c98.09,62.1,227.92,32.91,289.99-65.17C2309.46,1473.22,2280.31,1343.38,2182.22,1281.3z M2069.87,1615.71
c-84.09,0-152.36-68.28-152.36-152.36c0-84.11,68.28-152.28,152.36-152.28c84.11,0,152.28,68.17,152.28,152.28
C2222.16,1547.43,2153.98,1615.71,2069.87,1615.71z"/>
<path class="st1" d="M2069.24,1359.56c-55.65,0-100.76,45.02-100.76,100.66c0,55.65,45.1,100.78,100.76,100.78
c55.55,0,100.65-45.12,100.65-100.78C2169.9,1404.58,2124.79,1359.56,2069.24,1359.56z M2071.44,1512.94
c-27.09,0-48.97-21.87-48.97-48.97c0-26.99,21.87-48.86,48.97-48.86c26.99,0,48.86,21.87,48.86,48.86
C2120.3,1491.07,2098.43,1512.94,2071.44,1512.94z"/>
</g>
</svg>
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!-- Generator: Adobe Illustrator 23.0.3, SVG Export Plug-In . SVG Version: 6.00 Build 0) -->
<svg
version="1.1"
id="Ebene_1"
x="0px"
y="0px"
viewBox="0 0 3000 3000"
style="enable-background:new 0 0 3000 3000;"
xml:space="preserve"
sodipodi:docname="AIMS_Logo_3_SVG_resaved.svg"
inkscape:version="1.1 (c68e22c387, 2021-05-23)"
xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"
xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd"
xmlns="http://www.w3.org/2000/svg"
xmlns:svg="http://www.w3.org/2000/svg"><defs
id="defs49" /><sodipodi:namedview
id="namedview47"
pagecolor="#ffffff"
bordercolor="#666666"
borderopacity="1.0"
inkscape:pageshadow="2"
inkscape:pageopacity="0.0"
inkscape:pagecheckerboard="0"
showgrid="false"
inkscape:zoom="0.26966667"
inkscape:cx="1503.7083"
inkscape:cy="1500"
inkscape:window-width="1920"
inkscape:window-height="1017"
inkscape:window-x="-8"
inkscape:window-y="-8"
inkscape:window-maximized="1"
inkscape:current-layer="Ebene_1" />
<style
type="text/css"
id="style30">
.st0{display:none;fill:#0C0C0C;}
.st1{fill:#0C0C0C;}
</style>
<rect
x="-49"
y="-49"
class="st0"
width="3097"
height="3081"
id="rect32" />
<g
id="g44"
transform="matrix(1.8692047,0,0,1.8692047,-1321.0327,-1351.8285)">
<path
class="st1"
d="m 1828.03,1564.1 -133.1,83.76 c -3.62,-3.84 -7.38,-7.54 -11.28,-11.1 -37.44,-34.17 -87.28,-55.02 -142,-55.02 -1.85,0 -3.68,0.02 -5.51,0.08 -36.85,0.81 -73.97,11.34 -107.4,32.48 -89.07,56.3 -121.39,168.48 -80.19,262.09 20.91,47.81 59.09,86.33 106.66,107.75 L 1431,2090.3 c -30.46,-0.7 -61.16,10.56 -84.41,33.83 -45.11,45.13 -45.12,118.24 -0.04,163.32 45.09,45.07 118.21,45.03 163.32,-0.1 45.11,-45.13 45.12,-118.24 0.04,-163.32 -10.46,-10.46 -22.44,-18.48 -35.23,-24.08 l 23.23,-101.87 c 14.12,2.98 28.74,4.58 43.75,4.58 116.33,0 210.62,-94.21 210.62,-210.46 0,-21.85 -3.33,-42.93 -9.51,-62.75 -1.52,-4.86 -3.21,-9.65 -5.06,-14.37 l 132.59,-83.42 c -17.65,-20.47 -31.8,-43.29 -42.27,-67.56 z m -86.12,165.9 c -0.04,-0.13 -0.08,-0.28 -0.12,-0.42 0.04,0.14 0.09,0.27 0.12,0.42 l 0.43,-0.27 -0.41,0.27 z m 0.02,-0.02 0.43,-0.26 -0.02,0.01 -0.42,0.26 c -0.05,-0.16 -0.1,-0.31 -0.15,-0.47 -0.04,-0.12 -0.07,-0.24 -0.1,-0.36 0.1,0.27 0.18,0.56 0.26,0.82 z"
id="path34" />
<path
class="st1"
d="m 1353.97,1413.71 59.05,156.21 c 17.14,-10.83 41.95,-22.59 74.46,-28.35 l -59.13,-156.4 c 47.53,-29.55 83.26,-77.87 95.27,-137.07 16.76,-82.63 -17.29,-163.74 -80.66,-210.94 l 38.26,-67.83 c 29,9.37 61.63,7.33 90.56,-8.33 56.11,-30.38 77,-100.45 46.64,-156.51 -30.35,-56.07 -100.44,-76.89 -156.55,-46.52 -56.11,30.38 -76.99,100.45 -46.64,156.51 7.04,13.01 16.23,24.12 26.89,33.14 l -37.68,66.8 c -14.18,-6.43 -29.29,-11.37 -45.19,-14.6 -74.38,-15.09 -147.56,11.1 -195.83,62.83 L 989.96,927.09 c 16.06,-32.24 19.44,-70.74 6.24,-107.3 -25.61,-70.93 -103.82,-107.7 -174.69,-82.11 -70.88,25.58 -107.57,103.83 -81.97,174.76 25.6,70.93 103.82,107.7 174.69,82.11 16.45,-5.94 31.05,-14.72 43.47,-25.58 l 174.79,136.59 c -9.78,17.99 -17.09,37.72 -21.37,58.84 -9.91,48.83 -2.06,97.14 19.1,138.23 l -116.54,71.12 c -20.75,-22.32 -50.24,-36.45 -83.12,-36.88 -63.8,-0.84 -116.2,50.16 -117.03,113.91 -0.84,63.75 50.21,116.1 114.01,116.94 63.8,0.84 116.2,-50.16 117.03,-113.91 0.19,-14.8 -2.41,-28.97 -7.32,-42.04 l 117.55,-71.73 c 29.63,36.11 71.38,62.63 120.71,72.64 26.66,5.4 53.18,5.51 78.46,1.03 z"
id="path36" />
<polygon
class="st1"
points="1726.01,1616.32 1726.02,1616.32 "
id="polygon38" />
<path
class="st1"
d="m 2182.22,1281.3 c -76.85,-48.64 -173.16,-41.24 -241.13,11.38 -18.58,15.24 -54.51,50.14 -72.28,104.01 l 0.16,0.12 c -12.58,40.61 -12.26,83.46 -0.3,122.99 10.59,35 30.29,67.38 58.23,93.24 9.27,8.58 19.45,16.44 30.49,23.42 98.09,62.1 227.92,32.91 289.99,-65.17 62.08,-98.07 32.93,-227.91 -65.16,-289.99 z m -112.35,334.41 c -84.09,0 -152.36,-68.28 -152.36,-152.36 0,-84.11 68.28,-152.28 152.36,-152.28 84.11,0 152.28,68.17 152.28,152.28 0.01,84.08 -68.17,152.36 -152.28,152.36 z"
id="path40" />
<path
class="st1"
d="m 2069.24,1359.56 c -55.65,0 -100.76,45.02 -100.76,100.66 0,55.65 45.1,100.78 100.76,100.78 55.55,0 100.65,-45.12 100.65,-100.78 0.01,-55.64 -45.1,-100.66 -100.65,-100.66 z m 2.2,153.38 c -27.09,0 -48.97,-21.87 -48.97,-48.97 0,-26.99 21.87,-48.86 48.97,-48.86 26.99,0 48.86,21.87 48.86,48.86 0,27.1 -21.87,48.97 -48.86,48.97 z"
id="path42" />
</g>
</svg>
import ApplicationProfile from "@/types/applicationProfile";
class ApplicationProfileImpl implements ApplicationProfile {
name: string;
base_url: string;
definition: Array<unknown>;
constructor(name: string, base_url: string, definition: Array<unknown>) {
this.name = name;
this.base_url = base_url;
this.definition = definition;
}
}
export default ApplicationProfileImpl;
<template>
<div>
<SearchAP @applicationProfiles="handleApplicationProfiles" />
<ListAPs
:applicationProfiles="applicationProfiles"
:selectedApplicationProfile="selectedApplicationProfile"
@selectApplicationProfile="selectApplicationProfile"
/>