before recipes:update
This commit is contained in:
		@@ -14,7 +14,11 @@
 | 
				
			|||||||
		"browser": true
 | 
							"browser": true
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	"rules": {
 | 
						"rules": {
 | 
				
			||||||
		"semi": "off",
 | 
							"semi": [
 | 
				
			||||||
 | 
								"error",
 | 
				
			||||||
 | 
								"never"
 | 
				
			||||||
 | 
							],
 | 
				
			||||||
 | 
							"vue/no-v-html": "off",
 | 
				
			||||||
		"vue/html-indent": [
 | 
							"vue/html-indent": [
 | 
				
			||||||
			"error",
 | 
								"error",
 | 
				
			||||||
			"tab"
 | 
								"tab"
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										
											BIN
										
									
								
								assets/images/tracer_schmolle.png
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/images/tracer_schmolle.png
									
									
									
									
									
										
										
										Executable file → Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 Before Width: | Height: | Size: 416 KiB After Width: | Height: | Size: 416 KiB  | 
							
								
								
									
										
											BIN
										
									
								
								assets/images/tracer_schmolle150x150.png
									
									
									
									
									
										Executable file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								assets/images/tracer_schmolle150x150.png
									
									
									
									
									
										Executable file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 42 KiB  | 
@@ -1,42 +1,47 @@
 | 
				
			|||||||
<template>
 | 
					<template>
 | 
				
			||||||
	<div>
 | 
						<div class="container-fluid">
 | 
				
			||||||
		<nav-bar
 | 
							<div class="row">
 | 
				
			||||||
			:user="user"
 | 
								<div class="col">
 | 
				
			||||||
			@invalidate-user="onInvalidateUser"
 | 
									<nav-bar
 | 
				
			||||||
		/>
 | 
										:user="user"
 | 
				
			||||||
 | 
										@invalidate-user="onInvalidateUser"
 | 
				
			||||||
 | 
									/>
 | 
				
			||||||
 | 
								</div>
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		<b-container
 | 
							<div class="row mt-5 main-content">
 | 
				
			||||||
			fluid
 | 
								<div class="col-xl-3">
 | 
				
			||||||
			class="mt-5 main-content"
 | 
									<sidebar/>
 | 
				
			||||||
		>
 | 
								</div>
 | 
				
			||||||
			<b-row>
 | 
								<div class="col-xl-9">
 | 
				
			||||||
				<div class="col-2">
 | 
									<router-view
 | 
				
			||||||
					<sidebar/>
 | 
										:quote="quote"
 | 
				
			||||||
				</div>
 | 
										@user-authenticated="onUserAuthenticated"
 | 
				
			||||||
				<div class="col-9 box">
 | 
									/>
 | 
				
			||||||
					<router-view
 | 
								</div>
 | 
				
			||||||
						:quote="quote"
 | 
								<div class="col mt-2"/>
 | 
				
			||||||
						@user-authenticated="onUserAuthenticated"
 | 
							</div>
 | 
				
			||||||
					/>
 | 
					 | 
				
			||||||
				</div>
 | 
					 | 
				
			||||||
				<div class="col mt-2"/>
 | 
					 | 
				
			||||||
			</b-row>
 | 
					 | 
				
			||||||
		</b-container>
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
		<footer-component/>
 | 
							<div class="row">
 | 
				
			||||||
 | 
								<div class="col">
 | 
				
			||||||
 | 
									<footer-component/>
 | 
				
			||||||
 | 
								</div>
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<script>
 | 
					<script>
 | 
				
			||||||
import axios from 'axios';
 | 
					import axios from 'axios'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import NavBar from '@/components/TheNavbar';
 | 
					import routerView from 'vue-router'
 | 
				
			||||||
import Sidebar from '@/components/sidebar';
 | 
					import NavBar from '@/components/TheNavbar'
 | 
				
			||||||
import FooterComponent from '@/components/footer';
 | 
					import Sidebar from '@/components/TheSidebar'
 | 
				
			||||||
 | 
					import FooterComponent from '@/components/TheFooter'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default {
 | 
					export default {
 | 
				
			||||||
	name: 'App',
 | 
						name: 'App',
 | 
				
			||||||
	components: {
 | 
						components: {
 | 
				
			||||||
 | 
							routerView,
 | 
				
			||||||
		Sidebar,
 | 
							Sidebar,
 | 
				
			||||||
		NavBar,
 | 
							NavBar,
 | 
				
			||||||
		FooterComponent
 | 
							FooterComponent
 | 
				
			||||||
@@ -45,31 +50,32 @@ export default {
 | 
				
			|||||||
		return {
 | 
							return {
 | 
				
			||||||
			user: null,
 | 
								user: null,
 | 
				
			||||||
			quote: null
 | 
								quote: null
 | 
				
			||||||
		};
 | 
							}
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	mounted() {
 | 
						mounted() {
 | 
				
			||||||
		if (window.user) {
 | 
							if (window.user) {
 | 
				
			||||||
			this.user = window.user;
 | 
								this.user = window.user
 | 
				
			||||||
			console.log(this.user);
 | 
								console.log(this.user)
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		if (window.quote) {
 | 
							if (window.quote) {
 | 
				
			||||||
			this.quote = window.quote;
 | 
								this.quote = window.quote
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	methods: {
 | 
						methods: {
 | 
				
			||||||
		onUserAuthenticated(userUri) {
 | 
							onUserAuthenticated(userUri) {
 | 
				
			||||||
			console.log('authenticated');
 | 
								console.log('authenticated')
 | 
				
			||||||
			axios
 | 
								axios
 | 
				
			||||||
				.get(userUri)
 | 
									.get(userUri)
 | 
				
			||||||
				.then((response) => {
 | 
									.then((response) => {
 | 
				
			||||||
					this.user = response.data;
 | 
										this.user = response.data
 | 
				
			||||||
				});
 | 
									})
 | 
				
			||||||
			this.$router.push('/');
 | 
								this.$router.push('/')
 | 
				
			||||||
		},
 | 
							},
 | 
				
			||||||
		onInvalidateUser() {
 | 
							onInvalidateUser() {
 | 
				
			||||||
			console.log('invalidated');
 | 
								console.log('invalidated')
 | 
				
			||||||
			this.user = null;
 | 
								this.user = null
 | 
				
			||||||
 | 
								window.user = null
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
};
 | 
					}
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										49
									
								
								assets/js/components/AppLink.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										49
									
								
								assets/js/components/AppLink.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,49 @@
 | 
				
			|||||||
 | 
					<template>
 | 
				
			||||||
 | 
						<div>
 | 
				
			||||||
 | 
							<div v-if="isExternal">
 | 
				
			||||||
 | 
								<a :href="to">
 | 
				
			||||||
 | 
									<span
 | 
				
			||||||
 | 
										:class="`fa fa-lg fa-fw ${fa}`"
 | 
				
			||||||
 | 
										aria-hidden="true"
 | 
				
			||||||
 | 
									/>
 | 
				
			||||||
 | 
									 
 | 
				
			||||||
 | 
									<slot/>
 | 
				
			||||||
 | 
								</a>
 | 
				
			||||||
 | 
								 
 | 
				
			||||||
 | 
								<span
 | 
				
			||||||
 | 
									class="fa fa-lg fa-fw fa-external-link"
 | 
				
			||||||
 | 
									aria-hidden="true"
 | 
				
			||||||
 | 
								/>
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
 | 
							<router-link
 | 
				
			||||||
 | 
								v-else
 | 
				
			||||||
 | 
								v-bind="$props"
 | 
				
			||||||
 | 
							>
 | 
				
			||||||
 | 
								<span
 | 
				
			||||||
 | 
									:class="`fa fa-lg fa-fw  ${fa}`"
 | 
				
			||||||
 | 
									aria-hidden="true"
 | 
				
			||||||
 | 
								/>
 | 
				
			||||||
 | 
								 
 | 
				
			||||||
 | 
								<slot/>
 | 
				
			||||||
 | 
							</router-link>
 | 
				
			||||||
 | 
						</div>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<script>
 | 
				
			||||||
 | 
					import { RouterLink } from 'vue-router'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default {
 | 
				
			||||||
 | 
						props: {
 | 
				
			||||||
 | 
							...RouterLink.props,
 | 
				
			||||||
 | 
							fa: {
 | 
				
			||||||
 | 
								type: String,
 | 
				
			||||||
 | 
								default: ''
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						computed: {
 | 
				
			||||||
 | 
							isExternal() {
 | 
				
			||||||
 | 
								return typeof this.to === 'string' && this.to.startsWith('http')
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
							
								
								
									
										110
									
								
								assets/js/components/LoginForm.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										110
									
								
								assets/js/components/LoginForm.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,110 @@
 | 
				
			|||||||
 | 
					<template>
 | 
				
			||||||
 | 
						<div class="container box">
 | 
				
			||||||
 | 
							<form @submit.prevent="handleSubmit">
 | 
				
			||||||
 | 
								<div
 | 
				
			||||||
 | 
									v-if="error"
 | 
				
			||||||
 | 
									class="alert alert-danger"
 | 
				
			||||||
 | 
								>
 | 
				
			||||||
 | 
									{{ error }}
 | 
				
			||||||
 | 
								</div>
 | 
				
			||||||
 | 
								<div class="form-group mt-2">
 | 
				
			||||||
 | 
									<label for="exampleInputEmail1">Username</label>
 | 
				
			||||||
 | 
									<input
 | 
				
			||||||
 | 
										id="username"
 | 
				
			||||||
 | 
										v-model="username"
 | 
				
			||||||
 | 
										type="text"
 | 
				
			||||||
 | 
										class="form-control"
 | 
				
			||||||
 | 
										aria-describedby="emailHelp"
 | 
				
			||||||
 | 
										placeholder="Enter email"
 | 
				
			||||||
 | 
									>
 | 
				
			||||||
 | 
								</div>
 | 
				
			||||||
 | 
								<div class="form-group mt-2">
 | 
				
			||||||
 | 
									<label for="password">Password</label>
 | 
				
			||||||
 | 
									<input
 | 
				
			||||||
 | 
										id="password"
 | 
				
			||||||
 | 
										v-model="password"
 | 
				
			||||||
 | 
										type="password"
 | 
				
			||||||
 | 
										class="form-control"
 | 
				
			||||||
 | 
										placeholder="Password"
 | 
				
			||||||
 | 
									>
 | 
				
			||||||
 | 
								</div>
 | 
				
			||||||
 | 
								<div class="form-check mt-2">
 | 
				
			||||||
 | 
									<input
 | 
				
			||||||
 | 
										id="remember-me"
 | 
				
			||||||
 | 
										type="checkbox"
 | 
				
			||||||
 | 
										class="form-check-input"
 | 
				
			||||||
 | 
									>
 | 
				
			||||||
 | 
									<label
 | 
				
			||||||
 | 
										class="form-check-label"
 | 
				
			||||||
 | 
										for="remember-me"
 | 
				
			||||||
 | 
									>
 | 
				
			||||||
 | 
										Remember Me
 | 
				
			||||||
 | 
									</label>
 | 
				
			||||||
 | 
								</div>
 | 
				
			||||||
 | 
								<button
 | 
				
			||||||
 | 
									type="submit"
 | 
				
			||||||
 | 
									class="btn btn-primary mt-2 mb-2"
 | 
				
			||||||
 | 
									:class="{ disabled: isLoading }"
 | 
				
			||||||
 | 
								>
 | 
				
			||||||
 | 
									Log in
 | 
				
			||||||
 | 
								</button>
 | 
				
			||||||
 | 
							</form>
 | 
				
			||||||
 | 
						</div>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<script>
 | 
				
			||||||
 | 
					import axios from 'axios'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default {
 | 
				
			||||||
 | 
						name: 'LoginForm',
 | 
				
			||||||
 | 
						/*
 | 
				
			||||||
 | 
						props: {
 | 
				
			||||||
 | 
							user: {
 | 
				
			||||||
 | 
								Type: Object
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						data() {
 | 
				
			||||||
 | 
							return {
 | 
				
			||||||
 | 
								username: '',
 | 
				
			||||||
 | 
								password: '',
 | 
				
			||||||
 | 
								error: '',
 | 
				
			||||||
 | 
								isLoading: false
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						methods: {
 | 
				
			||||||
 | 
							handleSubmit() {
 | 
				
			||||||
 | 
								console.log('handle submit')
 | 
				
			||||||
 | 
								this.isLoading = true
 | 
				
			||||||
 | 
								this.error = ''
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
								axios
 | 
				
			||||||
 | 
									.post('/login', {
 | 
				
			||||||
 | 
										username: this.username,
 | 
				
			||||||
 | 
										password: this.password
 | 
				
			||||||
 | 
									})
 | 
				
			||||||
 | 
									.then((response) => {
 | 
				
			||||||
 | 
										console.log(response.headers)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										this.$emit('user-authenticated', response.headers.location)
 | 
				
			||||||
 | 
										this.username = ''
 | 
				
			||||||
 | 
										this.password = ''
 | 
				
			||||||
 | 
									})
 | 
				
			||||||
 | 
									.catch((error) => {
 | 
				
			||||||
 | 
										console.log(error.response.data)
 | 
				
			||||||
 | 
										if (error.response.data.error) {
 | 
				
			||||||
 | 
											this.error = error.response.data.error
 | 
				
			||||||
 | 
										} else {
 | 
				
			||||||
 | 
											this.error = 'Unknown error'
 | 
				
			||||||
 | 
										}
 | 
				
			||||||
 | 
									})
 | 
				
			||||||
 | 
									.finally(() => {
 | 
				
			||||||
 | 
										this.isLoading = false
 | 
				
			||||||
 | 
									})
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<style scoped lang="scss">
 | 
				
			||||||
 | 
					</style>
 | 
				
			||||||
							
								
								
									
										11
									
								
								assets/js/components/NotFound.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								assets/js/components/NotFound.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
				
			|||||||
 | 
					<template>
 | 
				
			||||||
 | 
						<div>
 | 
				
			||||||
 | 
							404 Not Found
 | 
				
			||||||
 | 
						</div>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<script>
 | 
				
			||||||
 | 
					export default {
 | 
				
			||||||
 | 
						name: 'NotFound'
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
							
								
								
									
										55
									
								
								assets/js/components/TheFooter.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								assets/js/components/TheFooter.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,55 @@
 | 
				
			|||||||
 | 
					<template>
 | 
				
			||||||
 | 
						<footer class="dark fixed-bottom">
 | 
				
			||||||
 | 
							<div class="container mt-5">
 | 
				
			||||||
 | 
								<div class="row justify-content-center">
 | 
				
			||||||
 | 
									<div class="col text-center">
 | 
				
			||||||
 | 
										<div>
 | 
				
			||||||
 | 
											powered by
 | 
				
			||||||
 | 
											<router-link
 | 
				
			||||||
 | 
												to="/"
 | 
				
			||||||
 | 
												class="d-inline-block mx-auto"
 | 
				
			||||||
 | 
											>
 | 
				
			||||||
 | 
												<img
 | 
				
			||||||
 | 
													src="/build/images/Spookie/spookie_64x64.png"
 | 
				
			||||||
 | 
													alt="Spookie"
 | 
				
			||||||
 | 
												>
 | 
				
			||||||
 | 
											</router-link>
 | 
				
			||||||
 | 
										</div>
 | 
				
			||||||
 | 
									</div>
 | 
				
			||||||
 | 
									<div class="col md-4 text-left">
 | 
				
			||||||
 | 
										<div id="legal">
 | 
				
			||||||
 | 
											<h5 class="bd-text-purple-bright mb-1 mt-3">
 | 
				
			||||||
 | 
												Legal
 | 
				
			||||||
 | 
											</h5>
 | 
				
			||||||
 | 
											<ul class="list-unstyled ml-3">
 | 
				
			||||||
 | 
												<li>
 | 
				
			||||||
 | 
													<router-link :to="{ name: 'Pages', params: {slug: 'imprint'}}">
 | 
				
			||||||
 | 
														Imprint
 | 
				
			||||||
 | 
													</router-link>
 | 
				
			||||||
 | 
												</li>
 | 
				
			||||||
 | 
												<li>
 | 
				
			||||||
 | 
													<router-link to="/pages/privacy-policy">
 | 
				
			||||||
 | 
														Privacy Policy
 | 
				
			||||||
 | 
													</router-link>
 | 
				
			||||||
 | 
												</li>
 | 
				
			||||||
 | 
											</ul>
 | 
				
			||||||
 | 
										</div>
 | 
				
			||||||
 | 
									</div>
 | 
				
			||||||
 | 
								</div>
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
 | 
						</footer>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<script>
 | 
				
			||||||
 | 
					export default {
 | 
				
			||||||
 | 
						name: 'TheFooter'
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<style type="scss">
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					footer {
 | 
				
			||||||
 | 
						color: lightgray;
 | 
				
			||||||
 | 
						background: #0e0e10;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</style>
 | 
				
			||||||
@@ -1,99 +1,151 @@
 | 
				
			|||||||
<template>
 | 
					<template>
 | 
				
			||||||
	<b-navbar
 | 
						<nav class="navbar navbar-expand-lg navbar-dark bg-dark fixed-top navbar-top">
 | 
				
			||||||
		toggleable="lg"
 | 
							<router-link
 | 
				
			||||||
		type="dark"
 | 
								class="navbar-brand"
 | 
				
			||||||
		variant="dark"
 | 
								:to="{ name: 'Home' }"
 | 
				
			||||||
		fixed="top"
 | 
							>
 | 
				
			||||||
	>
 | 
					 | 
				
			||||||
		<b-navbar-brand to="/">
 | 
					 | 
				
			||||||
			<img
 | 
								<img
 | 
				
			||||||
				id="site-logo"
 | 
					 | 
				
			||||||
				src="/build/images/24unix/24_logo_bg_96x96.png"
 | 
									src="/build/images/24unix/24_logo_bg_96x96.png"
 | 
				
			||||||
 | 
									class="img-fluid"
 | 
				
			||||||
				alt="24unix.net"
 | 
									alt="24unix.net"
 | 
				
			||||||
			>
 | 
								>
 | 
				
			||||||
		</b-navbar-brand>
 | 
							</router-link>
 | 
				
			||||||
 | 
							<button
 | 
				
			||||||
		<b-navbar-toggle target="nav-collapse" />
 | 
								class="navbar-toggler border-0"
 | 
				
			||||||
 | 
								type="button"
 | 
				
			||||||
		<b-collapse
 | 
								data-toggle="collapse"
 | 
				
			||||||
			id="nav-collapse"
 | 
								data-target="#CollapsingNavbar"
 | 
				
			||||||
			is-nav
 | 
					 | 
				
			||||||
		>
 | 
							>
 | 
				
			||||||
			<!--
 | 
								☰
 | 
				
			||||||
			<b-nav-form>
 | 
							</button>
 | 
				
			||||||
				<b-form-input size="sm" class="mr-sm-2" placeholder="Search"></b-form-input>
 | 
							<div
 | 
				
			||||||
				<b-button size="sm" class="my-2 my-sm-0" type="submit">Search</b-button>
 | 
								id="CollapsingNavbar"
 | 
				
			||||||
			</b-nav-form>
 | 
								class="collapse navbar-collapse"
 | 
				
			||||||
			-->
 | 
							>
 | 
				
			||||||
			<!--
 | 
								<ul class="navbar-nav ms-auto">
 | 
				
			||||||
			<b-nav-item-dropdown text="Lang" right>
 | 
									<li class="nav-item">
 | 
				
			||||||
				<b-dropdown-item href="#">EN</b-dropdown-item>
 | 
										<div v-if="isLoggedIn">
 | 
				
			||||||
				<b-dropdown-item href="#">ES</b-dropdown-item>
 | 
											<button
 | 
				
			||||||
				<b-dropdown-item href="#">RU</b-dropdown-item>
 | 
												v-if="isLoggedIn"
 | 
				
			||||||
				<b-dropdown-item href="#">FA</b-dropdown-item>
 | 
												data-bs-target="#dropdown-menu"
 | 
				
			||||||
			</b-nav-item-dropdown>
 | 
												data-bs-toggle="dropdown"
 | 
				
			||||||
			-->
 | 
												class="btn btn-primary button-login dropdown-toggle ml-auto mb-2 mr-5"
 | 
				
			||||||
			<b-navbar-nav class="ml-auto mr-5">
 | 
												:to="{ name: 'Home'}"
 | 
				
			||||||
				<b-button
 | 
											>
 | 
				
			||||||
					v-if="!isLoggedIn"
 | 
												{{ user.username }}
 | 
				
			||||||
					to="/form_login"
 | 
											</button>
 | 
				
			||||||
				>
 | 
											<div
 | 
				
			||||||
					Login
 | 
												id="dropdown-menu"
 | 
				
			||||||
				</b-button>
 | 
												class="dropdown-menu dropdown-menu-dark dropdown-menu-end"
 | 
				
			||||||
				<b-dropdown
 | 
												aria-labelledby="navbar-dropdown"
 | 
				
			||||||
					v-else
 | 
											>
 | 
				
			||||||
					id="dropdown"
 | 
												<router-link
 | 
				
			||||||
					:text="user.username"
 | 
													:to="{name: 'Profile'}"
 | 
				
			||||||
					class="m-md-2"
 | 
													class="dropdown-item"
 | 
				
			||||||
					type="dark"
 | 
													href="/profile"
 | 
				
			||||||
				>
 | 
												>
 | 
				
			||||||
					<b-dropdown-item>
 | 
													<span
 | 
				
			||||||
						<b-link
 | 
														class="fa fa-lg fa-fw fa-user"
 | 
				
			||||||
							:to="{ name: 'Profile' }"
 | 
														aria-hidden="true"
 | 
				
			||||||
							class="fa fa-lg fa-fw fa-user"
 | 
													/>
 | 
				
			||||||
							aria-hidden="true"
 | 
													Profile
 | 
				
			||||||
						/> Profile
 | 
												</router-link>
 | 
				
			||||||
					</b-dropdown-item>
 | 
												<a
 | 
				
			||||||
					<b-dropdown-item>
 | 
													class="dropdown-item"
 | 
				
			||||||
						<span
 | 
													href="#"
 | 
				
			||||||
							class="fa fa-lg fa-fw fa-wrench"
 | 
												>
 | 
				
			||||||
							aria-hidden="true"
 | 
													<span
 | 
				
			||||||
						/> Settings
 | 
														class="fa fa-lg fa-fw fa-wrench"
 | 
				
			||||||
					</b-dropdown-item>
 | 
														aria-hidden="true"
 | 
				
			||||||
					<b-dropdown-divider />
 | 
													/>
 | 
				
			||||||
					<b-dropdown-item @click="logout">
 | 
													Settings</a>
 | 
				
			||||||
						<span
 | 
												<div class="dropdown-divider"/>
 | 
				
			||||||
							class="fa fa-lg fa-fw fa-sign-out"
 | 
												<a
 | 
				
			||||||
							aria-hidden="true"
 | 
													class="dropdown-item"
 | 
				
			||||||
						/> Logout
 | 
													href="/admin"
 | 
				
			||||||
					</b-dropdown-item>
 | 
												>
 | 
				
			||||||
				</b-dropdown>
 | 
													<span
 | 
				
			||||||
			</b-navbar-nav>
 | 
														class="fa fa-lg fa-fw fa-cog"
 | 
				
			||||||
		</b-collapse>
 | 
														aria-hidden="true"
 | 
				
			||||||
	</b-navbar>
 | 
													/>
 | 
				
			||||||
 | 
													Administration
 | 
				
			||||||
 | 
												</a>
 | 
				
			||||||
 | 
												<div class="dropdown-divider"/>
 | 
				
			||||||
 | 
												<a
 | 
				
			||||||
 | 
													class="dropdown-item"
 | 
				
			||||||
 | 
													href="/logout"
 | 
				
			||||||
 | 
												>
 | 
				
			||||||
 | 
													<span
 | 
				
			||||||
 | 
														class="fa fa-lg fa-fw fa-sign-out"
 | 
				
			||||||
 | 
														aria-hidden="true"
 | 
				
			||||||
 | 
													/>
 | 
				
			||||||
 | 
													 Logout
 | 
				
			||||||
 | 
												</a>
 | 
				
			||||||
 | 
											</div>
 | 
				
			||||||
 | 
										</div>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
										<button
 | 
				
			||||||
 | 
											v-else
 | 
				
			||||||
 | 
											class="btn btn-outline-primary"
 | 
				
			||||||
 | 
										>
 | 
				
			||||||
 | 
											<router-link :to="{ name: 'LoginForm'}">
 | 
				
			||||||
 | 
												<span
 | 
				
			||||||
 | 
													class="fa fa-sign-in fa-lg fa-fw"
 | 
				
			||||||
 | 
													aria-hidden="true"
 | 
				
			||||||
 | 
												/>
 | 
				
			||||||
 | 
												Login
 | 
				
			||||||
 | 
											</router-link>
 | 
				
			||||||
 | 
										</button>
 | 
				
			||||||
 | 
									</li>
 | 
				
			||||||
 | 
								</ul>
 | 
				
			||||||
 | 
							</div>
 | 
				
			||||||
 | 
							<!--
 | 
				
			||||||
 | 
																	<span
 | 
				
			||||||
 | 
																		class="fa fa-lg fa-fw fa-wrench"
 | 
				
			||||||
 | 
																		aria-hidden="true"
 | 
				
			||||||
 | 
																	/> Settings
 | 
				
			||||||
 | 
													</b-dropdown-item>
 | 
				
			||||||
 | 
													<b-dropdown-divider/>
 | 
				
			||||||
 | 
													<b-dropdown-item @click="logout">
 | 
				
			||||||
 | 
																	<span
 | 
				
			||||||
 | 
																		class="fa fa-lg fa-fw fa-sign-out"
 | 
				
			||||||
 | 
																		aria-hidden="true"
 | 
				
			||||||
 | 
																	/> Logout
 | 
				
			||||||
 | 
													</b-dropdown-item>
 | 
				
			||||||
 | 
						-->
 | 
				
			||||||
 | 
						</nav>
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<script>
 | 
					<script>
 | 
				
			||||||
import axios from 'axios';
 | 
					import axios from 'axios'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import 'vue-navigation-bar/dist/vue-navigation-bar.css'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default {
 | 
					export default {
 | 
				
			||||||
	name: 'TheNavbar',
 | 
						name: 'TheNavbar',
 | 
				
			||||||
	props: ['user'],
 | 
						components: {},
 | 
				
			||||||
 | 
						props: {
 | 
				
			||||||
 | 
							user: {
 | 
				
			||||||
 | 
								type: Object,
 | 
				
			||||||
 | 
								default: null
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						data: () => ({}),
 | 
				
			||||||
	computed: {
 | 
						computed: {
 | 
				
			||||||
		isLoggedIn() {
 | 
							isLoggedIn() {
 | 
				
			||||||
			return !!this.user;
 | 
								return !!this.user
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	methods: {
 | 
						methods: {
 | 
				
			||||||
		logout() {
 | 
							logout() {
 | 
				
			||||||
			console.log('logout');
 | 
								console.log('logout')
 | 
				
			||||||
			axios
 | 
								axios
 | 
				
			||||||
				.get('/logout')
 | 
									.get('/logout')
 | 
				
			||||||
				.then(this.$emit('invalidate-user'));
 | 
									.then(this.$emit('invalidate-user'))
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
};
 | 
					}
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<style>
 | 
					<style>
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										57
									
								
								assets/js/components/TheSidebar.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										57
									
								
								assets/js/components/TheSidebar.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,57 @@
 | 
				
			|||||||
 | 
					<template>
 | 
				
			||||||
 | 
						<div
 | 
				
			||||||
 | 
							id="main-menu"
 | 
				
			||||||
 | 
							class="container-fluid col sidenav-left box text-start"
 | 
				
			||||||
 | 
						>
 | 
				
			||||||
 | 
							<ul>
 | 
				
			||||||
 | 
								<li
 | 
				
			||||||
 | 
									v-for="link in links"
 | 
				
			||||||
 | 
									:key="link.url"
 | 
				
			||||||
 | 
								>
 | 
				
			||||||
 | 
									<AppLink
 | 
				
			||||||
 | 
										:to="link.url"
 | 
				
			||||||
 | 
										:fa="link.fa"
 | 
				
			||||||
 | 
									>
 | 
				
			||||||
 | 
										{{ link.name }}
 | 
				
			||||||
 | 
									</AppLink>
 | 
				
			||||||
 | 
								</li>
 | 
				
			||||||
 | 
							</ul>
 | 
				
			||||||
 | 
						</div>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default {
 | 
				
			||||||
 | 
						name: 'TheSidebar',
 | 
				
			||||||
 | 
						data: () => ({
 | 
				
			||||||
 | 
							links: [
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									name: 'Projects',
 | 
				
			||||||
 | 
									url: 'Projects',
 | 
				
			||||||
 | 
									fa: 'fa-file-code-o',
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									name: 'Gitea',
 | 
				
			||||||
 | 
									url: 'https://git.24unix.net',
 | 
				
			||||||
 | 
									fa: 'fa-gitea',
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									name: 'NextCloud',
 | 
				
			||||||
 | 
									url: 'https://cloud.24unix.net',
 | 
				
			||||||
 | 
									fa: 'fa-nextcloud',
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									name: 'Pastebin',
 | 
				
			||||||
 | 
									url: 'https://pastebin.24unix.net',
 | 
				
			||||||
 | 
									fa: 'fa-paste',
 | 
				
			||||||
 | 
								},
 | 
				
			||||||
 | 
								{
 | 
				
			||||||
 | 
									name: 'YOURLS',
 | 
				
			||||||
 | 
									url: 'https://y.24unix.net',
 | 
				
			||||||
 | 
									fa: 'fa-link',
 | 
				
			||||||
 | 
									external: true
 | 
				
			||||||
 | 
								}
 | 
				
			||||||
 | 
							]
 | 
				
			||||||
 | 
						})
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
@@ -1,37 +0,0 @@
 | 
				
			|||||||
<template>
 | 
					 | 
				
			||||||
    <footer class="dark fixed-bottom"> <!--  :class="['bd-footer', 'text-muted']"> -->
 | 
					 | 
				
			||||||
        <b-container class="mt-5">
 | 
					 | 
				
			||||||
            <b-row class="justify-content-center">
 | 
					 | 
				
			||||||
                <b-col class="text-center">
 | 
					 | 
				
			||||||
                    <div>powered by
 | 
					 | 
				
			||||||
                        <b-link to="/" class="d-inline-block mx-auto"><img src="/build/images/Spookie/spookie_64x64.png" alt="Spookie"></b-link>
 | 
					 | 
				
			||||||
                    </div>
 | 
					 | 
				
			||||||
                </b-col>
 | 
					 | 
				
			||||||
                <b-col cols="auto" md="4" class="text-left">
 | 
					 | 
				
			||||||
                    <div id="legal">
 | 
					 | 
				
			||||||
                        <h5 class="bd-text-purple-bright mb-1 mt-3">Legal</h5>
 | 
					 | 
				
			||||||
                        <ul class="list-unstyled ml-3">
 | 
					 | 
				
			||||||
                            <li><b-link to="/pages/imprint">Imprint</b-link></li>
 | 
					 | 
				
			||||||
                            <li><b-link to="/pages/privacy-policy">Privacy Policy</b-link></li>
 | 
					 | 
				
			||||||
                        </ul>
 | 
					 | 
				
			||||||
                    </div>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                </b-col>
 | 
					 | 
				
			||||||
            </b-row>
 | 
					 | 
				
			||||||
        </b-container>
 | 
					 | 
				
			||||||
    </footer>
 | 
					 | 
				
			||||||
</template>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<script>
 | 
					 | 
				
			||||||
export default {
 | 
					 | 
				
			||||||
    name: "Footer"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
</script>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<style type="scss">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
footer {
 | 
					 | 
				
			||||||
    color: lightgray;
 | 
					 | 
				
			||||||
    background: #0e0e10;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
</style>
 | 
					 | 
				
			||||||
@@ -1,71 +0,0 @@
 | 
				
			|||||||
<template>
 | 
					 | 
				
			||||||
    <form v-on:submit.prevent="handleSubmit">
 | 
					 | 
				
			||||||
        <div v-if="error" class="alert alert-danger">
 | 
					 | 
				
			||||||
            {{ error }}
 | 
					 | 
				
			||||||
        </div>
 | 
					 | 
				
			||||||
        <div class="form-group">
 | 
					 | 
				
			||||||
            <label for="exampleInputEmail1">Username</label>
 | 
					 | 
				
			||||||
            <input type="text" v-model="username" class="form-control" id="username"
 | 
					 | 
				
			||||||
                   aria-describedby="emailHelp" placeholder="Enter email">
 | 
					 | 
				
			||||||
        </div>
 | 
					 | 
				
			||||||
        <div class="form-group">
 | 
					 | 
				
			||||||
            <label for="exampleInputPassword1">Password</label>
 | 
					 | 
				
			||||||
            <input type="password" v-model="password" class="form-control"
 | 
					 | 
				
			||||||
                   id="exampleInputPassword1" placeholder="Password">
 | 
					 | 
				
			||||||
        </div>
 | 
					 | 
				
			||||||
        <div class="form-check">
 | 
					 | 
				
			||||||
            <input type="checkbox" class="form-check-input" id="exampleCheck1">
 | 
					 | 
				
			||||||
            <label class="form-check-label" for="exampleCheck1">I like cheese</label>
 | 
					 | 
				
			||||||
        </div>
 | 
					 | 
				
			||||||
        <button type="submit" class="btn btn-primary" v-bind:class="{ disabled: isLoading }">Log in</button>
 | 
					 | 
				
			||||||
    </form>
 | 
					 | 
				
			||||||
</template>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<script>
 | 
					 | 
				
			||||||
import axios from 'axios';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default {
 | 
					 | 
				
			||||||
    name: 'Login',
 | 
					 | 
				
			||||||
    data() {
 | 
					 | 
				
			||||||
        return {
 | 
					 | 
				
			||||||
            username: '',
 | 
					 | 
				
			||||||
            password: '',
 | 
					 | 
				
			||||||
            error: '',
 | 
					 | 
				
			||||||
            isLoading: false
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    props: ['user'],
 | 
					 | 
				
			||||||
    methods: {
 | 
					 | 
				
			||||||
        handleSubmit() {
 | 
					 | 
				
			||||||
            console.log("handle submit");
 | 
					 | 
				
			||||||
            this.isLoading = true
 | 
					 | 
				
			||||||
            this.error = ''
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            axios
 | 
					 | 
				
			||||||
                .post('/login', {
 | 
					 | 
				
			||||||
                    username: this.username,
 | 
					 | 
				
			||||||
                    password: this.password
 | 
					 | 
				
			||||||
                })
 | 
					 | 
				
			||||||
                .then(response => {
 | 
					 | 
				
			||||||
                    console.log(response.headers);
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                    this.$emit('user-authenticated', response.headers.location);
 | 
					 | 
				
			||||||
                    this.username = '';
 | 
					 | 
				
			||||||
                    this.password = '';
 | 
					 | 
				
			||||||
                }).catch(error => {
 | 
					 | 
				
			||||||
                    console.log(error.response.data);
 | 
					 | 
				
			||||||
                    if (error.response.data.error) {
 | 
					 | 
				
			||||||
                        this.error = error.response.data.error
 | 
					 | 
				
			||||||
                    } else {
 | 
					 | 
				
			||||||
                        this.error = 'Unknown error'
 | 
					 | 
				
			||||||
                    }
 | 
					 | 
				
			||||||
                }).finally(() => {
 | 
					 | 
				
			||||||
                    this.isLoading = false;
 | 
					 | 
				
			||||||
                })
 | 
					 | 
				
			||||||
        },
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
</script>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<style scoped lang="scss">
 | 
					 | 
				
			||||||
</style>
 | 
					 | 
				
			||||||
@@ -1,11 +0,0 @@
 | 
				
			|||||||
<template>
 | 
					 | 
				
			||||||
    <div>
 | 
					 | 
				
			||||||
        404 Not Found
 | 
					 | 
				
			||||||
    </div>
 | 
					 | 
				
			||||||
</template>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<script>
 | 
					 | 
				
			||||||
export default {
 | 
					 | 
				
			||||||
    name: "NotFound"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
</script>
 | 
					 | 
				
			||||||
@@ -1,62 +1,77 @@
 | 
				
			|||||||
<template>
 | 
					<template>
 | 
				
			||||||
    <div v-if="!isLoading">
 | 
						<div
 | 
				
			||||||
        <div id="edit-wrapper">
 | 
							v-if="!isLoading"
 | 
				
			||||||
            <div class="editor mt-2">
 | 
							class="box p-3"
 | 
				
			||||||
                <VueEditor v-model="page.content"></VueEditor>
 | 
						>
 | 
				
			||||||
            </div>
 | 
							<tab-wrapper>
 | 
				
			||||||
            <b-button @click="saveContent" class="mt-3 mb-2">Save</b-button>
 | 
								<tab-content title="Visual Editor">
 | 
				
			||||||
        </div>
 | 
									<div class="editor mt-2">
 | 
				
			||||||
    </div>
 | 
										<!-- *** disbaled = true? -->
 | 
				
			||||||
    <div v-else>
 | 
										<VueEditor v-model="page.content"/>
 | 
				
			||||||
        <i class="fa fa-spinner fa-spin fa-3x fa-fw"></i>
 | 
									</div>
 | 
				
			||||||
        <span class="sr-only">Loading …</span></div>
 | 
								</tab-content>
 | 
				
			||||||
 | 
								<tab-content title="Raw Content">
 | 
				
			||||||
 | 
									<div>
 | 
				
			||||||
 | 
										<textarea
 | 
				
			||||||
 | 
											v-model="page.content"
 | 
				
			||||||
 | 
											class="p-fluid"
 | 
				
			||||||
 | 
										/>
 | 
				
			||||||
 | 
									</div>
 | 
				
			||||||
 | 
								</tab-content>
 | 
				
			||||||
 | 
							</tab-wrapper>
 | 
				
			||||||
 | 
							<button
 | 
				
			||||||
 | 
								class="btn btn-primary mt-3 mb-2"
 | 
				
			||||||
 | 
								@click="saveContent"
 | 
				
			||||||
 | 
							>
 | 
				
			||||||
 | 
								Save
 | 
				
			||||||
 | 
							</button>
 | 
				
			||||||
 | 
						</div>
 | 
				
			||||||
 | 
						<div v-else>
 | 
				
			||||||
 | 
							<i class="fa fa-spinner fa-spin fa-3x fa-fw"/>
 | 
				
			||||||
 | 
							<span class="sr-only">Loading …</span>
 | 
				
			||||||
 | 
						</div>
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<script>
 | 
					<script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import axios from "axios";
 | 
					import axios from 'axios'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// Basic Use - Covers most scenarios
 | 
					// Basic Use - Covers most scenarios
 | 
				
			||||||
import { VueEditor } from "vue2-editor";
 | 
					import { VueEditor } from 'vue3-editor'
 | 
				
			||||||
 | 
					import TabWrapper from '@/components/tabs/TabWrapper'
 | 
				
			||||||
 | 
					import TabContent from '@/components/tabs/TabContent'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default {
 | 
					export default {
 | 
				
			||||||
    name: 'PagesEdit',
 | 
						name: 'PagesEdit',
 | 
				
			||||||
    components: {
 | 
						components: {
 | 
				
			||||||
        VueEditor
 | 
							VueEditor,
 | 
				
			||||||
    },
 | 
							TabWrapper,
 | 
				
			||||||
    data: () => ({
 | 
							TabContent
 | 
				
			||||||
        page: null,
 | 
						},
 | 
				
			||||||
        isLoading: true
 | 
						data: () => ({
 | 
				
			||||||
    }),
 | 
							page: null,
 | 
				
			||||||
    methods: {
 | 
							isLoading: true
 | 
				
			||||||
        saveContent() {
 | 
						}),
 | 
				
			||||||
            console.log(this.page)
 | 
						beforeMount() {
 | 
				
			||||||
            axios
 | 
							const { slug } = this.$route.params
 | 
				
			||||||
                .put('/api/pages/' + this.page.id, this.page)
 | 
							console.log(`slug: ${slug}`)
 | 
				
			||||||
                .then(response => {
 | 
					 | 
				
			||||||
                    console.log("resp:" + response)
 | 
					 | 
				
			||||||
                })
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    },
 | 
					 | 
				
			||||||
    beforeMount() {
 | 
					 | 
				
			||||||
        const slug = this.$route.params.slug
 | 
					 | 
				
			||||||
        console.log("slug: " + slug)
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
        axios
 | 
							axios
 | 
				
			||||||
            .get('/api/pages?slug=' + slug)
 | 
								.get(`/api/pages?slug=${slug}`)
 | 
				
			||||||
            .then(response => {
 | 
								.then((response) => {
 | 
				
			||||||
                this.page = response.data['hydra:member'][0]
 | 
									[this.page] = response.data['hydra:member']
 | 
				
			||||||
                this.isLoading = false
 | 
									this.isLoading = false
 | 
				
			||||||
            })
 | 
								})
 | 
				
			||||||
    },
 | 
						},
 | 
				
			||||||
 | 
						methods: {
 | 
				
			||||||
 | 
							saveContent() {
 | 
				
			||||||
 | 
								console.log(this.page)
 | 
				
			||||||
 | 
								axios
 | 
				
			||||||
 | 
									.put(`/api/pages/${this.page.id}`, this.page)
 | 
				
			||||||
 | 
									.then((response) => {
 | 
				
			||||||
 | 
										console.log(`resp:${response}`)
 | 
				
			||||||
 | 
									})
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 | 
					 | 
				
			||||||
<style>
 | 
					 | 
				
			||||||
    .ql-container {
 | 
					 | 
				
			||||||
        height: 800px !important;
 | 
					 | 
				
			||||||
        overflow-y: scroll;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
</style>
 | 
					 | 
				
			||||||
@@ -1,48 +1,64 @@
 | 
				
			|||||||
<template>
 | 
					<template>
 | 
				
			||||||
    <div>
 | 
						<div class="box ma7 p-5">
 | 
				
			||||||
 | 
							<h2
 | 
				
			||||||
 | 
								v-if="page"
 | 
				
			||||||
 | 
								v-html="page.name"
 | 
				
			||||||
 | 
							/>
 | 
				
			||||||
 | 
							<div
 | 
				
			||||||
 | 
								v-if="page"
 | 
				
			||||||
 | 
								v-html="page.content"
 | 
				
			||||||
 | 
							/>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							<router-link
 | 
				
			||||||
        <h2 v-if="page" v-html="page.name"></h2>
 | 
								:to="editTarget"
 | 
				
			||||||
 | 
								variant="outline"
 | 
				
			||||||
        <div v-if="page" v-html="page.content"></div>
 | 
							>
 | 
				
			||||||
        <b-button :to="editTarget" variant="outline"><i class="fa fa-2x fa-fw fa-edit"></i></b-button>
 | 
								<button>
 | 
				
			||||||
        <hr>
 | 
									<i class="fa fa-2x fa-fw fa-edit"/>
 | 
				
			||||||
    </div>
 | 
								</button>
 | 
				
			||||||
 | 
							</router-link>
 | 
				
			||||||
 | 
							<hr>
 | 
				
			||||||
 | 
						</div>
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<script>
 | 
					<script>
 | 
				
			||||||
import axios from 'axios';
 | 
					import axios from 'axios'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default {
 | 
					export default {
 | 
				
			||||||
    name: "Pages",
 | 
						name: 'PagesDisplay',
 | 
				
			||||||
    data: () => ({
 | 
						props: {
 | 
				
			||||||
        page: null
 | 
							slug: {
 | 
				
			||||||
    }),
 | 
								type: String,
 | 
				
			||||||
    watch: {
 | 
								required: true
 | 
				
			||||||
        $route() {
 | 
							}
 | 
				
			||||||
            console.log("watch called")
 | 
						},
 | 
				
			||||||
            this.getPagesDetails()
 | 
						data: () => ({
 | 
				
			||||||
        }
 | 
							page: null
 | 
				
			||||||
    },
 | 
						}),
 | 
				
			||||||
    beforeMount() {
 | 
						computed: {
 | 
				
			||||||
        this.getPagesDetails()
 | 
							editTarget() {
 | 
				
			||||||
    },
 | 
								if (this.page) {
 | 
				
			||||||
    methods: {
 | 
									return `/pages/edit/${this.page.slug}`
 | 
				
			||||||
        getPagesDetails() {
 | 
								}
 | 
				
			||||||
            const slug = this.$route.params.slug
 | 
								return ''
 | 
				
			||||||
            console.log("slug: " + slug)
 | 
							}
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
            axios
 | 
						beforeMount() {
 | 
				
			||||||
                .get('/api/pages?slug=' + slug)
 | 
							this.getPagesDetails()
 | 
				
			||||||
                .then(response => (this.page = response.data['hydra:member'][0]))
 | 
							this.$watch(
 | 
				
			||||||
        }
 | 
								() => this.slug,
 | 
				
			||||||
    },
 | 
								() => {
 | 
				
			||||||
    computed: {
 | 
									this.getPagesDetails()
 | 
				
			||||||
        editTarget() {
 | 
								}
 | 
				
			||||||
            if (this.page) {
 | 
							)
 | 
				
			||||||
                return "/pages/edit/" + this.page.slug
 | 
						},
 | 
				
			||||||
            }
 | 
						methods: {
 | 
				
			||||||
        }
 | 
							async getPagesDetails() {
 | 
				
			||||||
    }
 | 
								await axios.get(`/api/pages?slug=${this.slug}`)
 | 
				
			||||||
 | 
									.then((response) => {
 | 
				
			||||||
 | 
										[this.page] = response.data['hydra:member']
 | 
				
			||||||
 | 
									})
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
@@ -3,7 +3,7 @@
 | 
				
			|||||||
		v-if="isLoading"
 | 
							v-if="isLoading"
 | 
				
			||||||
		class="circle"
 | 
							class="circle"
 | 
				
			||||||
	>
 | 
						>
 | 
				
			||||||
		<i class="fa fa-spinner fa-spin fa-3x fa-fw" />
 | 
							<i class="fa fa-spinner fa-spin fa-3x fa-fw"/>
 | 
				
			||||||
		<span class="sr-only">Loading …</span>
 | 
							<span class="sr-only">Loading …</span>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div
 | 
						<div
 | 
				
			||||||
@@ -23,12 +23,14 @@
 | 
				
			|||||||
					<h2>{{ project.name }}</h2>
 | 
										<h2>{{ project.name }}</h2>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
				<div>
 | 
									<div>
 | 
				
			||||||
					Source: <b-link
 | 
										Source:
 | 
				
			||||||
						:to="project.url"
 | 
										<a
 | 
				
			||||||
 | 
											:href="project.url"
 | 
				
			||||||
						target="_blank"
 | 
											target="_blank"
 | 
				
			||||||
					>
 | 
										>
 | 
				
			||||||
						{{ project.url }}
 | 
											{{ project.url }}
 | 
				
			||||||
					</b-link> 
 | 
										</a>
 | 
				
			||||||
 | 
										 
 | 
				
			||||||
					<i
 | 
										<i
 | 
				
			||||||
						class="fa fa-external-link"
 | 
											class="fa fa-external-link"
 | 
				
			||||||
						aria-hidden="true"
 | 
											aria-hidden="true"
 | 
				
			||||||
@@ -36,12 +38,12 @@
 | 
				
			|||||||
				</div>
 | 
									</div>
 | 
				
			||||||
				<div class="row mt-5">
 | 
									<div class="row mt-5">
 | 
				
			||||||
					<div class="col-sm-12">
 | 
										<div class="col-sm-12">
 | 
				
			||||||
 | 
											<!-- eslint-disable vue/no-v-html -->
 | 
				
			||||||
						<div
 | 
											<div
 | 
				
			||||||
							class="article-text"
 | 
												class="article-text"
 | 
				
			||||||
							v-html="readmeToHtml"
 | 
												v-html="readmeToHtml"
 | 
				
			||||||
						>
 | 
											/>
 | 
				
			||||||
							{{ }}
 | 
											<!-- eslint-enable -->
 | 
				
			||||||
						</div>
 | 
					 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				</div>
 | 
									</div>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
@@ -52,7 +54,7 @@
 | 
				
			|||||||
<script>
 | 
					<script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import axios from 'axios'
 | 
					import axios from 'axios'
 | 
				
			||||||
import { marked } from 'marked';
 | 
					import { marked } from 'marked'
 | 
				
			||||||
import Author from '@/components/users/UserCard'
 | 
					import Author from '@/components/users/UserCard'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default {
 | 
					export default {
 | 
				
			||||||
@@ -71,6 +73,7 @@ export default {
 | 
				
			|||||||
			if (!this.isLoading) {
 | 
								if (!this.isLoading) {
 | 
				
			||||||
				return marked(this.readme)
 | 
									return marked(this.readme)
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
 | 
								return ''
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	mounted() {
 | 
						mounted() {
 | 
				
			||||||
@@ -78,15 +81,14 @@ export default {
 | 
				
			|||||||
		console.log(id)
 | 
							console.log(id)
 | 
				
			||||||
		axios
 | 
							axios
 | 
				
			||||||
			.get(`/api/projects/${id}`)
 | 
								.get(`/api/projects/${id}`)
 | 
				
			||||||
			.then((response) => {
 | 
								.then((projectResponse) => {
 | 
				
			||||||
				console.log(response)
 | 
									this.project = projectResponse.data
 | 
				
			||||||
				this.project = response.data
 | 
									console.log(this.project)
 | 
				
			||||||
				console.log(this.project);
 | 
					 | 
				
			||||||
				axios
 | 
									axios
 | 
				
			||||||
					.get(`${this.project.url}/raw/branch/master/README.md`)
 | 
										.get(`${this.project.url}/raw/branch/master/README.md`)
 | 
				
			||||||
					.then((response) => {
 | 
										.then((response) => {
 | 
				
			||||||
						this.readme = response.data
 | 
											this.readme = response.data
 | 
				
			||||||
						this.isLoading = false;
 | 
											this.isLoading = false
 | 
				
			||||||
						console.log(response)
 | 
											console.log(response)
 | 
				
			||||||
					})
 | 
										})
 | 
				
			||||||
					.catch((error) => {
 | 
										.catch((error) => {
 | 
				
			||||||
@@ -101,5 +103,5 @@ export default {
 | 
				
			|||||||
		getProjects() {
 | 
							getProjects() {
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
};
 | 
					}
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
@@ -3,7 +3,7 @@
 | 
				
			|||||||
		v-if="isLoading"
 | 
							v-if="isLoading"
 | 
				
			||||||
		class="circle"
 | 
							class="circle"
 | 
				
			||||||
	>
 | 
						>
 | 
				
			||||||
		<i class="fa fa-spinner fa-spin fa-3x fa-fw" />
 | 
							<i class="fa fa-spinner fa-spin fa-3x fa-fw"/>
 | 
				
			||||||
		<span class="sr-only">Loading …</span>
 | 
							<span class="sr-only">Loading …</span>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
	<div
 | 
						<div
 | 
				
			||||||
@@ -16,14 +16,14 @@
 | 
				
			|||||||
			</h2>
 | 
								</h2>
 | 
				
			||||||
			<!-- projects List -->
 | 
								<!-- projects List -->
 | 
				
			||||||
			<div class="col-sm-12">
 | 
								<div class="col-sm-12">
 | 
				
			||||||
				<b-col
 | 
									<div
 | 
				
			||||||
					v-for="project in projects"
 | 
										v-for="project in projects"
 | 
				
			||||||
					:key="project.id"
 | 
										:key="project.id"
 | 
				
			||||||
				>
 | 
									>
 | 
				
			||||||
					<div class="project-container bg-dark my-4">
 | 
										<div class="project-container bg-dark my-4">
 | 
				
			||||||
						<div class="row">
 | 
											<div class="row">
 | 
				
			||||||
							<div class="col-sm-3">
 | 
												<div class="col-sm-3">
 | 
				
			||||||
								<b-link :to="'/projects/' + project.id">
 | 
													<router-link :to="'/projects/' + project.id">
 | 
				
			||||||
									<img
 | 
														<img
 | 
				
			||||||
										v-if="project.teaserImage"
 | 
															v-if="project.teaserImage"
 | 
				
			||||||
										class="blog-img"
 | 
															class="blog-img"
 | 
				
			||||||
@@ -36,70 +36,78 @@
 | 
				
			|||||||
										src="/build/images/24unix/24_logo_bg_96x96.png"
 | 
															src="/build/images/24unix/24_logo_bg_96x96.png"
 | 
				
			||||||
										alt="Teaser"
 | 
															alt="Teaser"
 | 
				
			||||||
									>
 | 
														>
 | 
				
			||||||
								</b-link>
 | 
													</router-link>
 | 
				
			||||||
								<br>
 | 
													<br>
 | 
				
			||||||
								<div>
 | 
													<div>
 | 
				
			||||||
									<b-col
 | 
														<div
 | 
				
			||||||
										v-for="developer in project.developer"
 | 
															v-for="developer in project.developer"
 | 
				
			||||||
										:key="developer"
 | 
															:key="developer"
 | 
				
			||||||
 | 
															class="col"
 | 
				
			||||||
									>
 | 
														>
 | 
				
			||||||
										<author :author-iri="developer" />
 | 
															<user-card :author-iri="developer"/>
 | 
				
			||||||
									</b-col>
 | 
														</div>
 | 
				
			||||||
								</div>
 | 
													</div>
 | 
				
			||||||
							</div>
 | 
												</div>
 | 
				
			||||||
							<div class="col-sm-8 mt-2">
 | 
												<div class="col-sm-8 mt-2">
 | 
				
			||||||
								<b-link :to="'/projects/' + project.id">
 | 
													<router-link :to="'/projects/' + project.id">
 | 
				
			||||||
									<div class="article-title d-inline-block pl-3 align-middle">
 | 
														<div class="article-title d-inline-block pl-3 align-middle">
 | 
				
			||||||
										<h2 v-html="project.name" />
 | 
															<h2 v-html="project.name"/>
 | 
				
			||||||
									</div>
 | 
														</div>
 | 
				
			||||||
								</b-link>
 | 
													</router-link>
 | 
				
			||||||
								<br>
 | 
													<br>
 | 
				
			||||||
								<div class="blog-teaser mb-2 pb-2 text-xl-start">
 | 
													<div class="blog-teaser mb-2 pb-2 text-xl-start">
 | 
				
			||||||
									<span v-html="project.description" />
 | 
														<span v-html="project.description"/>
 | 
				
			||||||
									<br>
 | 
														<br>
 | 
				
			||||||
									<br>
 | 
														<br>
 | 
				
			||||||
									started: <span v-html="project.createdAt" />
 | 
														started: <span v-html="formatDate(project.createdAt)"/>
 | 
				
			||||||
								</div>
 | 
													</div>
 | 
				
			||||||
							</div>
 | 
												</div>
 | 
				
			||||||
						</div>
 | 
											</div>
 | 
				
			||||||
					</div>
 | 
										</div>
 | 
				
			||||||
				</b-col>
 | 
									</div>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
 | 
								<!--
 | 
				
			||||||
			<div class="text-xl-start">
 | 
								<div class="text-xl-start">
 | 
				
			||||||
				<b-link to="/add">
 | 
									<router-link to="/add">
 | 
				
			||||||
					<i class="fa fa-plus-circle" />
 | 
										<i class="fa fa-plus-circle"/>
 | 
				
			||||||
				</b-link>
 | 
									</router-link>
 | 
				
			||||||
			</div>
 | 
								</div>
 | 
				
			||||||
 | 
								-->
 | 
				
			||||||
		</div>
 | 
							</div>
 | 
				
			||||||
	</div>
 | 
						</div>
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<script>
 | 
					<script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import axios from 'axios';
 | 
					import axios from 'axios'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import Author from '@/components/users/UserCard';
 | 
					import UserCard from '@/components/users/UserCard'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default {
 | 
					export default {
 | 
				
			||||||
	name: 'ProjectsList',
 | 
						name: 'ProjectsList',
 | 
				
			||||||
	components: {
 | 
						components: {
 | 
				
			||||||
		Author
 | 
							UserCard,
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	data: () => ({
 | 
						data: () => ({
 | 
				
			||||||
		projects: null,
 | 
							projects: null,
 | 
				
			||||||
		isLoading: true
 | 
							isLoading: true
 | 
				
			||||||
	}),
 | 
						}),
 | 
				
			||||||
	mounted() {
 | 
						mounted() {
 | 
				
			||||||
		this.getProjects();
 | 
							this.getProjects()
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	methods: {
 | 
						methods: {
 | 
				
			||||||
		getProjects() {
 | 
							getProjects() {
 | 
				
			||||||
			axios
 | 
								axios
 | 
				
			||||||
				.get('/api/projects')
 | 
									.get('/api/projects')
 | 
				
			||||||
				.then((response) => (this.projects = response.data['hydra:member']));
 | 
									.then((response) => {
 | 
				
			||||||
			this.isLoading = false;
 | 
										this.projects = response.data['hydra:member']
 | 
				
			||||||
			console.log(this.projects);
 | 
									})
 | 
				
			||||||
 | 
								this.isLoading = false
 | 
				
			||||||
 | 
								console.log(this.projects)
 | 
				
			||||||
 | 
							},
 | 
				
			||||||
 | 
							formatDate(date) {
 | 
				
			||||||
 | 
								return new Date(date).toLocaleDateString('de-DE')
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
};
 | 
					}
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,5 +1,5 @@
 | 
				
			|||||||
<template>
 | 
					<template>
 | 
				
			||||||
    <div class="d-flex flex-column justify-content-between mt-2 mb-2">
 | 
					    <div class="d-flex flex-column justify-content-between box mt-2 p-3 mb-2">
 | 
				
			||||||
        <div></div>
 | 
					        <div></div>
 | 
				
			||||||
        <div>
 | 
					        <div>
 | 
				
			||||||
            <span v-html="quote"></span>
 | 
					            <span v-html="quote"></span>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,34 +0,0 @@
 | 
				
			|||||||
<template>
 | 
					 | 
				
			||||||
    <b-container fluid class="col sidenav-left box text-start" id="main-menu">
 | 
					 | 
				
			||||||
        <ul>
 | 
					 | 
				
			||||||
            <li>
 | 
					 | 
				
			||||||
                <i class="fa fa-lg fa-fw fa-file-code-o" aria-hidden="true"></i> 
 | 
					 | 
				
			||||||
                <b-link to="/projects">Projects</b-link>
 | 
					 | 
				
			||||||
            </li>
 | 
					 | 
				
			||||||
            <li>
 | 
					 | 
				
			||||||
                <i class="fa fa-lg fa-fw fa-gitea" aria-hidden="true"></i> 
 | 
					 | 
				
			||||||
                <b-link href="https://git.24unix.net" target="_blank">Gitea</b-link> <i class="fa fa-external-link" aria-hidden="true"></i>
 | 
					 | 
				
			||||||
            </li>
 | 
					 | 
				
			||||||
            <li>
 | 
					 | 
				
			||||||
                <i class="fa fa-lg fa-fw fa-nextcloud" aria-hidden="true"></i> 
 | 
					 | 
				
			||||||
                <b-link href="//cloud.24unix.net" target="_blank">NextCloud</b-link> <i class="fa fa-external-link" aria-hidden="true"></i>
 | 
					 | 
				
			||||||
            </li>
 | 
					 | 
				
			||||||
            <li>
 | 
					 | 
				
			||||||
                <i class="fa fa-lg fa-fw fa-paste" aria-hidden="true"></i> 
 | 
					 | 
				
			||||||
                <b-link href="//pastebin.24unix.net" target="_blank">Pastebin</b-link> <i class="fa fa-external-link" aria-hidden="true"></i>
 | 
					 | 
				
			||||||
            </li>
 | 
					 | 
				
			||||||
            <li>
 | 
					 | 
				
			||||||
                <i class="fa fa-lg fa-fw fa-link" aria-hidden="true"></i> 
 | 
					 | 
				
			||||||
                <b-link href="//y.24unix.net" target="_blank">YOURLS</b-link> <i class="fa fa-external-link" aria-hidden="true"></i>
 | 
					 | 
				
			||||||
            </li>
 | 
					 | 
				
			||||||
        </ul>
 | 
					 | 
				
			||||||
    </b-container>
 | 
					 | 
				
			||||||
</template>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<script>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
export default {
 | 
					 | 
				
			||||||
    name: "Sidebar"
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
</script>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
							
								
								
									
										25
									
								
								assets/js/components/tabs/TabContent.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										25
									
								
								assets/js/components/tabs/TabContent.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,25 @@
 | 
				
			|||||||
 | 
					<template lang="html">
 | 
				
			||||||
 | 
						<div v-show="title == selectedTitle">
 | 
				
			||||||
 | 
							<slot/>
 | 
				
			||||||
 | 
						</div>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<script>
 | 
				
			||||||
 | 
					import { inject } from 'vue'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default {
 | 
				
			||||||
 | 
						props: {
 | 
				
			||||||
 | 
							title: {
 | 
				
			||||||
 | 
								type: String,
 | 
				
			||||||
 | 
								required: true
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						setup() {
 | 
				
			||||||
 | 
							const selectedTitle = inject('selectedTitle')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							return {
 | 
				
			||||||
 | 
								selectedTitle
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
							
								
								
									
										70
									
								
								assets/js/components/tabs/TabWrapper.vue
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										70
									
								
								assets/js/components/tabs/TabWrapper.vue
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,70 @@
 | 
				
			|||||||
 | 
					<template lang="html">
 | 
				
			||||||
 | 
						<div class="tabs">
 | 
				
			||||||
 | 
							<ul class="tabs-header">
 | 
				
			||||||
 | 
								<li
 | 
				
			||||||
 | 
									v-for="title in tabTitles"
 | 
				
			||||||
 | 
									:key="title"
 | 
				
			||||||
 | 
									:class="{ selected: title === selectedTitle }"
 | 
				
			||||||
 | 
									@click="selectedTitle = title"
 | 
				
			||||||
 | 
								>
 | 
				
			||||||
 | 
									{{ title }}
 | 
				
			||||||
 | 
								</li>
 | 
				
			||||||
 | 
							</ul>
 | 
				
			||||||
 | 
							<slot/>
 | 
				
			||||||
 | 
						</div>
 | 
				
			||||||
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<script>
 | 
				
			||||||
 | 
					import { ref, provide } from 'vue'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					export default {
 | 
				
			||||||
 | 
						name: 'TabWrapper',
 | 
				
			||||||
 | 
						setup(props, { slots }) {
 | 
				
			||||||
 | 
							const tabTitles = ref(slots.default()
 | 
				
			||||||
 | 
								.map((tab) => tab.props.title))
 | 
				
			||||||
 | 
							const selectedTitle = ref(tabTitles.value[0])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
							provide('selectedTitle', selectedTitle)
 | 
				
			||||||
 | 
							return {
 | 
				
			||||||
 | 
								selectedTitle,
 | 
				
			||||||
 | 
								tabTitles
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
						data: () => ({
 | 
				
			||||||
 | 
							selectedIndex: 0,
 | 
				
			||||||
 | 
							tabs: []
 | 
				
			||||||
 | 
						}),
 | 
				
			||||||
 | 
						created() {
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					<style>
 | 
				
			||||||
 | 
					.tabs {
 | 
				
			||||||
 | 
						width: auto;
 | 
				
			||||||
 | 
						margin: 0 auto;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.tabs-header {
 | 
				
			||||||
 | 
						margin-bottom: 10px;
 | 
				
			||||||
 | 
						list-style: none;
 | 
				
			||||||
 | 
						display: flex;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.tabs-header li {
 | 
				
			||||||
 | 
						width: 140px;
 | 
				
			||||||
 | 
						text-align: center;
 | 
				
			||||||
 | 
						padding: 10px 20px;
 | 
				
			||||||
 | 
						margin-right: 10px;
 | 
				
			||||||
 | 
						background-color: #ddd;
 | 
				
			||||||
 | 
						border-radius: 5px;
 | 
				
			||||||
 | 
						color: black;
 | 
				
			||||||
 | 
						cursor: pointer;
 | 
				
			||||||
 | 
						transition: 0.4s all ease-out;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.tabs-header li.selected {
 | 
				
			||||||
 | 
						background-color: #0984e3;
 | 
				
			||||||
 | 
						color: white;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					</style>
 | 
				
			||||||
@@ -15,17 +15,16 @@
 | 
				
			|||||||
				<div class="d-flex flex-column align-items-center text-center p-3 py-5">
 | 
									<div class="d-flex flex-column align-items-center text-center p-3 py-5">
 | 
				
			||||||
					Profile of {{ user.username }}
 | 
										Profile of {{ user.username }}
 | 
				
			||||||
					<img
 | 
										<img
 | 
				
			||||||
						class="rounded-circle mt-5"
 | 
											class="rounded-circle border-1 mt-5"
 | 
				
			||||||
						width="150px"
 | 
											src="/build/images/tracer_schmolle150x150.png"
 | 
				
			||||||
						src="/build/images/tracer_schmolle.png"
 | 
					 | 
				
			||||||
						alt="profile image"
 | 
											alt="profile image"
 | 
				
			||||||
					>
 | 
										>
 | 
				
			||||||
					<span class="font-weight-bold">{{ user.username }}</span>
 | 
										<span class="font-weight-bold">{{ user.username }}</span>
 | 
				
			||||||
					<!--<span class="font-weight-bold"><a
 | 
										<!--
 | 
				
			||||||
						 href="{{ path('app_main', { '_switch_user': app.user.username }) }}">switch user {{
 | 
										<span class="font-weight-bold">
 | 
				
			||||||
							user.username
 | 
										<a href="{{ path('app_main', { '_switch_user': app.user.username }) }}">
 | 
				
			||||||
						}}</span>
 | 
										switch user {{ user.username }}</span>
 | 
				
			||||||
-->
 | 
										-->
 | 
				
			||||||
					<span class="text-white-50">
 | 
										<span class="text-white-50">
 | 
				
			||||||
						<i class="fa fa-lg fa-envelope me-1"/>{{ user.email }}
 | 
											<i class="fa fa-lg fa-envelope me-1"/>{{ user.email }}
 | 
				
			||||||
					</span>
 | 
										</span>
 | 
				
			||||||
@@ -52,7 +51,7 @@
 | 
				
			|||||||
</template>
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
<script>
 | 
					<script>
 | 
				
			||||||
import axios from 'axios';
 | 
					import axios from 'axios'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default {
 | 
					export default {
 | 
				
			||||||
	name: 'ProfileView',
 | 
						name: 'ProfileView',
 | 
				
			||||||
@@ -63,9 +62,9 @@ export default {
 | 
				
			|||||||
	computed: {
 | 
						computed: {
 | 
				
			||||||
		getUserEndpoint() {
 | 
							getUserEndpoint() {
 | 
				
			||||||
			if (this.$route.params.username) {
 | 
								if (this.$route.params.username) {
 | 
				
			||||||
				return `/api/users?username=${this.$route.params.username}`;
 | 
									return `/api/users?username=${this.$route.params.username}`
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
			return '/api/users?username=tracer';
 | 
								return '/api/users?username=tracer'
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	},
 | 
						},
 | 
				
			||||||
	mounted() {
 | 
						mounted() {
 | 
				
			||||||
@@ -73,14 +72,14 @@ export default {
 | 
				
			|||||||
			.get(this.getUserEndpoint)
 | 
								.get(this.getUserEndpoint)
 | 
				
			||||||
			.then((response) => {
 | 
								.then((response) => {
 | 
				
			||||||
				console.log(response);
 | 
									console.log(response);
 | 
				
			||||||
				[this.user] = response.data['hydra:member'];
 | 
									[this.user] = response.data['hydra:member']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
				console.log(this.user);
 | 
									console.log(this.user)
 | 
				
			||||||
				this.isLoading = false;
 | 
									this.isLoading = false
 | 
				
			||||||
			})
 | 
								})
 | 
				
			||||||
			.catch((error) => {
 | 
								.catch((error) => {
 | 
				
			||||||
				console.log(error);
 | 
									console.log(error)
 | 
				
			||||||
			});
 | 
								})
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
};
 | 
					}
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,53 +1,67 @@
 | 
				
			|||||||
<template>
 | 
					<template>
 | 
				
			||||||
    <div v-if="isLoading" class="circle">
 | 
						<div
 | 
				
			||||||
        <i class="fa fa-spinner fa-spin fa-3x fa-fw"></i>
 | 
							v-if="isLoading"
 | 
				
			||||||
        <span class="sr-only">Loading …</span>
 | 
							class="circle"
 | 
				
			||||||
    </div>
 | 
						>
 | 
				
			||||||
    <div v-else class="mt-1 mb-1">
 | 
							<i class="fa fa-spinner fa-spin fa-3x fa-fw"/>
 | 
				
			||||||
        <b-link class="align-left blog-details" :to="'/profile/' + author.username">
 | 
							<span class="sr-only">Loading …</span>
 | 
				
			||||||
            <img class="article-author-img rounded-circle"
 | 
						</div>
 | 
				
			||||||
                 :src="'build/images/' + author.avatar"
 | 
						<div
 | 
				
			||||||
                 alt="profile"></b-link>
 | 
							v-else
 | 
				
			||||||
        <b-link :to="'/profile/' + author.username">
 | 
							class="mt-1 mb-1"
 | 
				
			||||||
            {{ author.username }}
 | 
						>
 | 
				
			||||||
        </b-link>
 | 
							<router-link
 | 
				
			||||||
    </div>
 | 
								class="align-left blog-details"
 | 
				
			||||||
 | 
								:to="'/profile/' + author.username"
 | 
				
			||||||
 | 
							>
 | 
				
			||||||
 | 
								<img
 | 
				
			||||||
 | 
									class="article-author-img rounded-circle"
 | 
				
			||||||
 | 
									:src="'build/images/' + author.avatar"
 | 
				
			||||||
 | 
									alt="profile"
 | 
				
			||||||
 | 
								>
 | 
				
			||||||
 | 
							</router-link>
 | 
				
			||||||
 | 
							<router-link :to="'/profile/' + author.username">
 | 
				
			||||||
 | 
								{{ author.username }}
 | 
				
			||||||
 | 
							</router-link>
 | 
				
			||||||
 | 
						</div>
 | 
				
			||||||
</template>
 | 
					</template>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 | 
				
			||||||
<script>
 | 
					<script>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import axios from "axios";
 | 
					import axios from 'axios'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default {
 | 
					export default {
 | 
				
			||||||
    name: "Author",
 | 
						name: 'UserCard',
 | 
				
			||||||
    data: () => ({
 | 
						props: {
 | 
				
			||||||
        author: null,
 | 
							authorIri: {
 | 
				
			||||||
        isLoading: true
 | 
								type: String,
 | 
				
			||||||
    }),
 | 
								required: true
 | 
				
			||||||
    props: ["authorIri"],
 | 
							}
 | 
				
			||||||
 | 
						},
 | 
				
			||||||
    mounted() {
 | 
						data: () => ({
 | 
				
			||||||
        this.getAuthor();
 | 
							author: null,
 | 
				
			||||||
    },
 | 
							isLoading: true
 | 
				
			||||||
    methods: {
 | 
						}),
 | 
				
			||||||
        getAuthor() {
 | 
						mounted() {
 | 
				
			||||||
            console.log("here" + this.authorIri);
 | 
							this.getAuthor()
 | 
				
			||||||
            axios
 | 
						},
 | 
				
			||||||
                .get(this.authorIri)
 | 
						methods: {
 | 
				
			||||||
                .then(response => {
 | 
							getAuthor() {
 | 
				
			||||||
                    console.log("response");
 | 
								console.log(`here${this.authorIri}`)
 | 
				
			||||||
                    console.log(response);
 | 
								axios
 | 
				
			||||||
                    this.author = response.data;
 | 
									.get(this.authorIri)
 | 
				
			||||||
                    console.log(this.author);
 | 
									.then((response) => {
 | 
				
			||||||
                    this.isLoading = false;
 | 
										console.log('response')
 | 
				
			||||||
 | 
										console.log(response)
 | 
				
			||||||
                })
 | 
										this.author = response.data
 | 
				
			||||||
                .catch(error => {
 | 
										console.log(this.author)
 | 
				
			||||||
                    console.log(error);
 | 
										this.isLoading = false
 | 
				
			||||||
                });
 | 
									})
 | 
				
			||||||
            console.log(this.author);
 | 
									.catch((error) => {
 | 
				
			||||||
        }
 | 
										console.log(error)
 | 
				
			||||||
    }
 | 
									})
 | 
				
			||||||
};
 | 
								console.log(this.author)
 | 
				
			||||||
 | 
							}
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
</script>
 | 
					</script>
 | 
				
			||||||
@@ -1,63 +1,54 @@
 | 
				
			|||||||
// assets/js/index.js
 | 
					// assets/js/index.js
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// End Matomo Code
 | 
					import '../styles/app.scss'
 | 
				
			||||||
 | 
					 | 
				
			||||||
import '../styles/app.scss';
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/*
 | 
					 | 
				
			||||||
require('@fortawesome/fontawesome-free/css/all.min.css');
 | 
					 | 
				
			||||||
require('@fortawesome/fontawesome-free/js/all.js');
 | 
					 | 
				
			||||||
*/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// CKEditor
 | 
					// CKEditor
 | 
				
			||||||
//require  '@'
 | 
					import '../styles/ckeditor.css'
 | 
				
			||||||
import '../styles/ckeditor.css';
 | 
					import 'fork-awesome/scss/fork-awesome.scss'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import Vue from 'vue';
 | 
					import { createApp } from 'vue'
 | 
				
			||||||
import { BootstrapVue, IconsPlugin, NavbarPlugin } from 'bootstrap-vue';
 | 
					import 'bootstrap/dist/css/bootstrap.css'
 | 
				
			||||||
import VueRouter from 'vue-router';
 | 
					import 'bootstrap/dist/js/bootstrap'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import { createPinia, PiniaVuePlugin } from 'pinia';
 | 
					import PrimeVue from 'primevue/config'
 | 
				
			||||||
import router from '@/router';
 | 
					import 'primevue/resources/primevue.min.css'
 | 
				
			||||||
import App from '@/App';
 | 
					//import 'primeicons/primeicons.css'
 | 
				
			||||||
 | 
					import 'primevue/resources/themes/lara-dark-blue/theme.css'
 | 
				
			||||||
 | 
					import { createPinia } from 'pinia'
 | 
				
			||||||
 | 
					import Router from '@/router'
 | 
				
			||||||
 | 
					import AppLink from '@/components/AppLink'
 | 
				
			||||||
 | 
					import App from '@/App'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* eslint-disable */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					globalThis.__VUE_OPTIONS_API__ = true
 | 
				
			||||||
 | 
					globalThis.__VUE_PROD_DEVTOOLS__ = true
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// Matomo
 | 
				
			||||||
 | 
					const _paq = window._paq = window._paq || []
 | 
				
			||||||
 | 
					/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
 | 
				
			||||||
 | 
					_paq.push(['trackPageView'])
 | 
				
			||||||
 | 
					_paq.push(['enableLinkTracking']);
 | 
				
			||||||
 | 
					(function () {
 | 
				
			||||||
 | 
						const u = 'https://analytics.24unix.net/'
 | 
				
			||||||
 | 
						_paq.push(['setTrackerUrl', `${u}matomo.php`])
 | 
				
			||||||
 | 
						_paq.push(['setSiteId', '1'])
 | 
				
			||||||
 | 
						const d = document
 | 
				
			||||||
 | 
						const g = d.createElement('script')
 | 
				
			||||||
 | 
						const
 | 
				
			||||||
 | 
							s = d.getElementsByTagName('script')[0]
 | 
				
			||||||
 | 
						g.async = true
 | 
				
			||||||
 | 
						g.src = `${u}matomo.js`
 | 
				
			||||||
 | 
						s.parentNode.insertBefore(g, s)
 | 
				
			||||||
 | 
					}())
 | 
				
			||||||
 | 
					// End Matomo Code
 | 
				
			||||||
 | 
					/* eslint-enable */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
//globalThis.__VUE_OPTIONS_API__ = true;
 | 
					//globalThis.__VUE_OPTIONS_API__ = true;
 | 
				
			||||||
//globalThis.__VUE_PROD_DEVTOOLS__ = true;
 | 
					//globalThis.__VUE_PROD_DEVTOOLS__ = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/* eslint-disable */
 | 
					createApp(App)
 | 
				
			||||||
 | 
						.component('AppLink', AppLink)
 | 
				
			||||||
// Matomo
 | 
						.use(createPinia())
 | 
				
			||||||
const _paq = window._paq = window._paq || [];
 | 
						.use(Router)
 | 
				
			||||||
/* tracker methods like "setCustomDimension" should be called before "trackPageView" */
 | 
						.use(PrimeVue)
 | 
				
			||||||
_paq.push(['trackPageView']);
 | 
						.mount('#app')
 | 
				
			||||||
_paq.push(['enableLinkTracking']);
 | 
					 | 
				
			||||||
(function () {
 | 
					 | 
				
			||||||
	const u = 'https://analytics.24unix.net/';
 | 
					 | 
				
			||||||
	_paq.push(['setTrackerUrl', `${u}matomo.php`]);
 | 
					 | 
				
			||||||
	_paq.push(['setSiteId', '1']);
 | 
					 | 
				
			||||||
	const d = document; const g = d.createElement('script'); const
 | 
					 | 
				
			||||||
		s = d.getElementsByTagName('script')[0];
 | 
					 | 
				
			||||||
	g.async = true;
 | 
					 | 
				
			||||||
	g.src = `${u}matomo.js`;
 | 
					 | 
				
			||||||
	s.parentNode.insertBefore(g, s);
 | 
					 | 
				
			||||||
}());
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/* eslint-enable */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
require('fork-awesome/scss/fork-awesome.scss');
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Vue.use(BootstrapVue);
 | 
					 | 
				
			||||||
Vue.use(VueRouter);
 | 
					 | 
				
			||||||
Vue.use(IconsPlugin);
 | 
					 | 
				
			||||||
Vue.use(NavbarPlugin);
 | 
					 | 
				
			||||||
Vue.config.productionTip = false;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Vue.use(PiniaVuePlugin);
 | 
					 | 
				
			||||||
const pinia = createPinia();
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
new Vue({
 | 
					 | 
				
			||||||
	router,
 | 
					 | 
				
			||||||
	pinia,
 | 
					 | 
				
			||||||
	render: (h) => h(App)
 | 
					 | 
				
			||||||
})
 | 
					 | 
				
			||||||
	.$mount('#app');
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,55 +1,66 @@
 | 
				
			|||||||
import Router from 'vue-router';
 | 
					import { createRouter, createWebHistory } from 'vue-router'
 | 
				
			||||||
import LoginForm from '@/components/login';
 | 
					import LoginForm from '@/components/LoginForm'
 | 
				
			||||||
import Quotes from '@/components/quotes';
 | 
					import Quotes from '@/components/quotes'
 | 
				
			||||||
import Pages from '@/components/pages';
 | 
					import Pages from '@/components/pages'
 | 
				
			||||||
import PagesEdit from '@/components/pages/edit';
 | 
					import PagesEdit from '@/components/pages/edit'
 | 
				
			||||||
import ProjectsList from '@/components/projects';
 | 
					import ProjectsList from '@/components/projects'
 | 
				
			||||||
import ProjectsDetails from '@/components/projects/details';
 | 
					import ProjectsDetails from '@/components/projects/ProjectDetails'
 | 
				
			||||||
import ProfileView from '@/components/users/ProfileView';
 | 
					import ProfileView from '@/components/users/ProfileView'
 | 
				
			||||||
import NotFound from '@/components/not-found';
 | 
					import NotFound from '@/components/NotFound'
 | 
				
			||||||
 | 
					
 | 
				
			||||||
export default new Router({
 | 
					const routes = [
 | 
				
			||||||
	mode: 'history',
 | 
						{
 | 
				
			||||||
	routes: [
 | 
							path: '/',
 | 
				
			||||||
		{
 | 
							name: 'Home',
 | 
				
			||||||
			path: '/',
 | 
							component: Quotes
 | 
				
			||||||
			name: 'Home',
 | 
						},
 | 
				
			||||||
			component: Quotes
 | 
						{
 | 
				
			||||||
		},
 | 
							path: '/form_login',
 | 
				
			||||||
		{
 | 
							name: 'LoginForm',
 | 
				
			||||||
			path: '/form_login',
 | 
							component: LoginForm
 | 
				
			||||||
			name: 'LoginForm',
 | 
						},
 | 
				
			||||||
			component: LoginForm
 | 
						{
 | 
				
			||||||
		},
 | 
							path: '/projects',
 | 
				
			||||||
		{
 | 
							name: 'Projects',
 | 
				
			||||||
			path: '/projects',
 | 
							component: ProjectsList
 | 
				
			||||||
			name: 'Projects',
 | 
						},
 | 
				
			||||||
			component: ProjectsList
 | 
						{
 | 
				
			||||||
		},
 | 
							path: '/projects/:id',
 | 
				
			||||||
		{
 | 
							name: 'ProjectDetails',
 | 
				
			||||||
			path: '/projects/:id',
 | 
							component: ProjectsDetails
 | 
				
			||||||
			name: 'ProjectDetails',
 | 
						},
 | 
				
			||||||
			component: ProjectsDetails
 | 
						{
 | 
				
			||||||
		},
 | 
							path: '/pages/:slug',
 | 
				
			||||||
		{
 | 
							name: 'Pages',
 | 
				
			||||||
			path: '/pages/:slug',
 | 
							component: Pages,
 | 
				
			||||||
			name: 'Pages',
 | 
							props: true
 | 
				
			||||||
			component: Pages
 | 
						},
 | 
				
			||||||
		},
 | 
						{
 | 
				
			||||||
		{
 | 
							path: '/pages/edit/:slug',
 | 
				
			||||||
			path: '/pages/edit/:slug',
 | 
							component: PagesEdit,
 | 
				
			||||||
			component: PagesEdit,
 | 
							meta: { requiredAuth: true }
 | 
				
			||||||
			meta: { requiredAuth: true }
 | 
						},
 | 
				
			||||||
		},
 | 
						{
 | 
				
			||||||
		{
 | 
							path: '/profile/:username?',
 | 
				
			||||||
			path: '/profile/:username?',
 | 
							name: 'Profile',
 | 
				
			||||||
			name: 'Profile',
 | 
							component: ProfileView
 | 
				
			||||||
			component: ProfileView
 | 
						},
 | 
				
			||||||
		},
 | 
						{
 | 
				
			||||||
		{
 | 
							path: '/:pathMatch(.*)*',
 | 
				
			||||||
			path: '*',
 | 
							name: 'NotFound',
 | 
				
			||||||
			name: 'NotFound',
 | 
							component: NotFound
 | 
				
			||||||
			component: NotFound
 | 
						}
 | 
				
			||||||
		}
 | 
					]
 | 
				
			||||||
	]
 | 
					
 | 
				
			||||||
});
 | 
					const router = createRouter({
 | 
				
			||||||
 | 
						history: createWebHistory(),
 | 
				
			||||||
 | 
						routes
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* eslint-disable */
 | 
				
			||||||
 | 
					router.beforeEach((to) => {
 | 
				
			||||||
 | 
						if (to.meta.requiredAuth && !window.user) {
 | 
				
			||||||
 | 
							return { name: 'LoginForm' }
 | 
				
			||||||
 | 
						}
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					export default router
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -23,9 +23,18 @@ html, body{
 | 
				
			|||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					// the ~ allows you to reference things in node_modules
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@import 'bootstrap/dist/css/bootstrap.css';
 | 
				
			||||||
 | 
					@import 'bootsdark/dist/bootsdark.min.css';
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// customize some Bootstrap variables
 | 
					// customize some Bootstrap variables
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					$bs-primary: #FF8040;
 | 
				
			||||||
$primary: #FF8040;
 | 
					$primary: #FF8040;
 | 
				
			||||||
$body-bg: #0E0E10;
 | 
					$body-bg: #0E0E10;
 | 
				
			||||||
$body-color: darken(white, 20);
 | 
					$body-color: darken(white, 20);
 | 
				
			||||||
@@ -36,12 +45,14 @@ $dropdown-dark-border-color: $primary;
 | 
				
			|||||||
$jet-black: #0e0e10;
 | 
					$jet-black: #0e0e10;
 | 
				
			||||||
$mango: #FF8040;
 | 
					$mango: #FF8040;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					.btn-primary {
 | 
				
			||||||
 | 
					  border-color: $primary;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// the ~ allows you to reference things in node_modules
 | 
					.btn-outline-primary {
 | 
				
			||||||
 | 
					  color: $primary;
 | 
				
			||||||
@import 'bootstrap/dist/css/bootstrap.css';
 | 
					  border-color: $primary;
 | 
				
			||||||
@import 'bootstrap-vue/dist/bootstrap-vue.css';
 | 
					}
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
.wrapper {
 | 
					.wrapper {
 | 
				
			||||||
  clear: both;
 | 
					  clear: both;
 | 
				
			||||||
@@ -83,9 +94,12 @@ body {
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
.sidenav-left {
 | 
					.sidenav-left {
 | 
				
			||||||
  padding-top: 20px;
 | 
					  padding-top: 20px;
 | 
				
			||||||
 | 
					  padding-left: 0;
 | 
				
			||||||
 | 
					  padding-right: 0;
 | 
				
			||||||
  background-color: #f1f1f1;
 | 
					  background-color: #f1f1f1;
 | 
				
			||||||
  height: 100%;
 | 
					  height: 100%;
 | 
				
			||||||
  margin-left: 3em;
 | 
					  width: auto;
 | 
				
			||||||
 | 
					  margin-left: 3em !important;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
.sidenav-left ul {
 | 
					.sidenav-left ul {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -4,7 +4,7 @@
 | 
				
			|||||||
    "minimum-stability": "stable",
 | 
					    "minimum-stability": "stable",
 | 
				
			||||||
    "prefer-stable": true,
 | 
					    "prefer-stable": true,
 | 
				
			||||||
    "require": {
 | 
					    "require": {
 | 
				
			||||||
        "php": ">=8.0.2",
 | 
					        "php": ">=8.1.0",
 | 
				
			||||||
        "ext-ctype": "*",
 | 
					        "ext-ctype": "*",
 | 
				
			||||||
        "ext-iconv": "*",
 | 
					        "ext-iconv": "*",
 | 
				
			||||||
        "api-platform/core": "^2.6",
 | 
					        "api-platform/core": "^2.6",
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										243
									
								
								composer.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										243
									
								
								composer.lock
									
									
									
										generated
									
									
									
								
							@@ -4,7 +4,7 @@
 | 
				
			|||||||
        "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
 | 
					        "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
 | 
				
			||||||
        "This file is @generated automatically"
 | 
					        "This file is @generated automatically"
 | 
				
			||||||
    ],
 | 
					    ],
 | 
				
			||||||
    "content-hash": "e9f7ac6030214156c208bb55b1465a3f",
 | 
					    "content-hash": "11a57e5df58c387d08f07e37c89ba5df",
 | 
				
			||||||
    "packages": [
 | 
					    "packages": [
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            "name": "api-platform/core",
 | 
					            "name": "api-platform/core",
 | 
				
			||||||
@@ -574,22 +574,22 @@
 | 
				
			|||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            "name": "doctrine/dbal",
 | 
					            "name": "doctrine/dbal",
 | 
				
			||||||
            "version": "3.3.5",
 | 
					            "version": "3.3.6",
 | 
				
			||||||
            "source": {
 | 
					            "source": {
 | 
				
			||||||
                "type": "git",
 | 
					                "type": "git",
 | 
				
			||||||
                "url": "https://github.com/doctrine/dbal.git",
 | 
					                "url": "https://github.com/doctrine/dbal.git",
 | 
				
			||||||
                "reference": "719663b15983278227669c8595151586a2ff3327"
 | 
					                "reference": "9e7f76dd1cde81c62574fdffa5a9c655c847ad21"
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "dist": {
 | 
					            "dist": {
 | 
				
			||||||
                "type": "zip",
 | 
					                "type": "zip",
 | 
				
			||||||
                "url": "https://api.github.com/repos/doctrine/dbal/zipball/719663b15983278227669c8595151586a2ff3327",
 | 
					                "url": "https://api.github.com/repos/doctrine/dbal/zipball/9e7f76dd1cde81c62574fdffa5a9c655c847ad21",
 | 
				
			||||||
                "reference": "719663b15983278227669c8595151586a2ff3327",
 | 
					                "reference": "9e7f76dd1cde81c62574fdffa5a9c655c847ad21",
 | 
				
			||||||
                "shasum": ""
 | 
					                "shasum": ""
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "require": {
 | 
					            "require": {
 | 
				
			||||||
                "composer-runtime-api": "^2",
 | 
					                "composer-runtime-api": "^2",
 | 
				
			||||||
                "doctrine/cache": "^1.11|^2.0",
 | 
					                "doctrine/cache": "^1.11|^2.0",
 | 
				
			||||||
                "doctrine/deprecations": "^0.5.3",
 | 
					                "doctrine/deprecations": "^0.5.3|^1",
 | 
				
			||||||
                "doctrine/event-manager": "^1.0",
 | 
					                "doctrine/event-manager": "^1.0",
 | 
				
			||||||
                "php": "^7.3 || ^8.0",
 | 
					                "php": "^7.3 || ^8.0",
 | 
				
			||||||
                "psr/cache": "^1|^2|^3",
 | 
					                "psr/cache": "^1|^2|^3",
 | 
				
			||||||
@@ -597,15 +597,15 @@
 | 
				
			|||||||
            },
 | 
					            },
 | 
				
			||||||
            "require-dev": {
 | 
					            "require-dev": {
 | 
				
			||||||
                "doctrine/coding-standard": "9.0.0",
 | 
					                "doctrine/coding-standard": "9.0.0",
 | 
				
			||||||
                "jetbrains/phpstorm-stubs": "2021.1",
 | 
					                "jetbrains/phpstorm-stubs": "2022.1",
 | 
				
			||||||
                "phpstan/phpstan": "1.5.3",
 | 
					                "phpstan/phpstan": "1.6.3",
 | 
				
			||||||
                "phpstan/phpstan-strict-rules": "^1.1",
 | 
					                "phpstan/phpstan-strict-rules": "^1.2",
 | 
				
			||||||
                "phpunit/phpunit": "9.5.16",
 | 
					                "phpunit/phpunit": "9.5.20",
 | 
				
			||||||
                "psalm/plugin-phpunit": "0.16.1",
 | 
					                "psalm/plugin-phpunit": "0.16.1",
 | 
				
			||||||
                "squizlabs/php_codesniffer": "3.6.2",
 | 
					                "squizlabs/php_codesniffer": "3.6.2",
 | 
				
			||||||
                "symfony/cache": "^5.2|^6.0",
 | 
					                "symfony/cache": "^5.2|^6.0",
 | 
				
			||||||
                "symfony/console": "^2.7|^3.0|^4.0|^5.0|^6.0",
 | 
					                "symfony/console": "^2.7|^3.0|^4.0|^5.0|^6.0",
 | 
				
			||||||
                "vimeo/psalm": "4.22.0"
 | 
					                "vimeo/psalm": "4.23.0"
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "suggest": {
 | 
					            "suggest": {
 | 
				
			||||||
                "symfony/console": "For helpful console commands such as SQL execution and import of files."
 | 
					                "symfony/console": "For helpful console commands such as SQL execution and import of files."
 | 
				
			||||||
@@ -665,7 +665,7 @@
 | 
				
			|||||||
            ],
 | 
					            ],
 | 
				
			||||||
            "support": {
 | 
					            "support": {
 | 
				
			||||||
                "issues": "https://github.com/doctrine/dbal/issues",
 | 
					                "issues": "https://github.com/doctrine/dbal/issues",
 | 
				
			||||||
                "source": "https://github.com/doctrine/dbal/tree/3.3.5"
 | 
					                "source": "https://github.com/doctrine/dbal/tree/3.3.6"
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "funding": [
 | 
					            "funding": [
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
@@ -681,29 +681,29 @@
 | 
				
			|||||||
                    "type": "tidelift"
 | 
					                    "type": "tidelift"
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            "time": "2022-04-05T09:50:18+00:00"
 | 
					            "time": "2022-05-02T17:21:01+00:00"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            "name": "doctrine/deprecations",
 | 
					            "name": "doctrine/deprecations",
 | 
				
			||||||
            "version": "v0.5.3",
 | 
					            "version": "v1.0.0",
 | 
				
			||||||
            "source": {
 | 
					            "source": {
 | 
				
			||||||
                "type": "git",
 | 
					                "type": "git",
 | 
				
			||||||
                "url": "https://github.com/doctrine/deprecations.git",
 | 
					                "url": "https://github.com/doctrine/deprecations.git",
 | 
				
			||||||
                "reference": "9504165960a1f83cc1480e2be1dd0a0478561314"
 | 
					                "reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de"
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "dist": {
 | 
					            "dist": {
 | 
				
			||||||
                "type": "zip",
 | 
					                "type": "zip",
 | 
				
			||||||
                "url": "https://api.github.com/repos/doctrine/deprecations/zipball/9504165960a1f83cc1480e2be1dd0a0478561314",
 | 
					                "url": "https://api.github.com/repos/doctrine/deprecations/zipball/0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de",
 | 
				
			||||||
                "reference": "9504165960a1f83cc1480e2be1dd0a0478561314",
 | 
					                "reference": "0e2a4f1f8cdfc7a92ec3b01c9334898c806b30de",
 | 
				
			||||||
                "shasum": ""
 | 
					                "shasum": ""
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "require": {
 | 
					            "require": {
 | 
				
			||||||
                "php": "^7.1|^8.0"
 | 
					                "php": "^7.1|^8.0"
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "require-dev": {
 | 
					            "require-dev": {
 | 
				
			||||||
                "doctrine/coding-standard": "^6.0|^7.0|^8.0",
 | 
					                "doctrine/coding-standard": "^9",
 | 
				
			||||||
                "phpunit/phpunit": "^7.0|^8.0|^9.0",
 | 
					                "phpunit/phpunit": "^7.5|^8.5|^9.5",
 | 
				
			||||||
                "psr/log": "^1.0"
 | 
					                "psr/log": "^1|^2|^3"
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "suggest": {
 | 
					            "suggest": {
 | 
				
			||||||
                "psr/log": "Allows logging deprecations via PSR-3 logger implementation"
 | 
					                "psr/log": "Allows logging deprecations via PSR-3 logger implementation"
 | 
				
			||||||
@@ -722,9 +722,9 @@
 | 
				
			|||||||
            "homepage": "https://www.doctrine-project.org/",
 | 
					            "homepage": "https://www.doctrine-project.org/",
 | 
				
			||||||
            "support": {
 | 
					            "support": {
 | 
				
			||||||
                "issues": "https://github.com/doctrine/deprecations/issues",
 | 
					                "issues": "https://github.com/doctrine/deprecations/issues",
 | 
				
			||||||
                "source": "https://github.com/doctrine/deprecations/tree/v0.5.3"
 | 
					                "source": "https://github.com/doctrine/deprecations/tree/v1.0.0"
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "time": "2021-03-21T12:59:47+00:00"
 | 
					            "time": "2022-05-02T15:47:09+00:00"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            "name": "doctrine/doctrine-bundle",
 | 
					            "name": "doctrine/doctrine-bundle",
 | 
				
			||||||
@@ -1258,22 +1258,22 @@
 | 
				
			|||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            "name": "doctrine/migrations",
 | 
					            "name": "doctrine/migrations",
 | 
				
			||||||
            "version": "3.5.0",
 | 
					            "version": "3.5.1",
 | 
				
			||||||
            "source": {
 | 
					            "source": {
 | 
				
			||||||
                "type": "git",
 | 
					                "type": "git",
 | 
				
			||||||
                "url": "https://github.com/doctrine/migrations.git",
 | 
					                "url": "https://github.com/doctrine/migrations.git",
 | 
				
			||||||
                "reference": "5713b45c933122e509d9b31c767b420c3dfed399"
 | 
					                "reference": "c0a01ddead0ccaf0282f3f4fcaa026d11918a481"
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "dist": {
 | 
					            "dist": {
 | 
				
			||||||
                "type": "zip",
 | 
					                "type": "zip",
 | 
				
			||||||
                "url": "https://api.github.com/repos/doctrine/migrations/zipball/5713b45c933122e509d9b31c767b420c3dfed399",
 | 
					                "url": "https://api.github.com/repos/doctrine/migrations/zipball/c0a01ddead0ccaf0282f3f4fcaa026d11918a481",
 | 
				
			||||||
                "reference": "5713b45c933122e509d9b31c767b420c3dfed399",
 | 
					                "reference": "c0a01ddead0ccaf0282f3f4fcaa026d11918a481",
 | 
				
			||||||
                "shasum": ""
 | 
					                "shasum": ""
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "require": {
 | 
					            "require": {
 | 
				
			||||||
                "composer-runtime-api": "^2",
 | 
					                "composer-runtime-api": "^2",
 | 
				
			||||||
                "doctrine/dbal": "^3.3",
 | 
					                "doctrine/dbal": "^3.3",
 | 
				
			||||||
                "doctrine/deprecations": "^0.5.3",
 | 
					                "doctrine/deprecations": "^0.5.3 || ^1",
 | 
				
			||||||
                "doctrine/event-manager": "^1.0",
 | 
					                "doctrine/event-manager": "^1.0",
 | 
				
			||||||
                "friendsofphp/proxy-manager-lts": "^1.0",
 | 
					                "friendsofphp/proxy-manager-lts": "^1.0",
 | 
				
			||||||
                "php": "^7.4 || ^8.0",
 | 
					                "php": "^7.4 || ^8.0",
 | 
				
			||||||
@@ -1281,10 +1281,13 @@
 | 
				
			|||||||
                "symfony/console": "^4.4.16 || ^5.4 || ^6.0",
 | 
					                "symfony/console": "^4.4.16 || ^5.4 || ^6.0",
 | 
				
			||||||
                "symfony/stopwatch": "^4.4 || ^5.4 || ^6.0"
 | 
					                "symfony/stopwatch": "^4.4 || ^5.4 || ^6.0"
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
 | 
					            "conflict": {
 | 
				
			||||||
 | 
					                "doctrine/orm": "<2.12"
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
            "require-dev": {
 | 
					            "require-dev": {
 | 
				
			||||||
                "doctrine/coding-standard": "^9",
 | 
					                "doctrine/coding-standard": "^9",
 | 
				
			||||||
                "doctrine/orm": "^2.6",
 | 
					                "doctrine/orm": "^2.12",
 | 
				
			||||||
                "doctrine/persistence": "^2.0",
 | 
					                "doctrine/persistence": "^2 || ^3",
 | 
				
			||||||
                "doctrine/sql-formatter": "^1.0",
 | 
					                "doctrine/sql-formatter": "^1.0",
 | 
				
			||||||
                "ergebnis/composer-normalize": "^2.9",
 | 
					                "ergebnis/composer-normalize": "^2.9",
 | 
				
			||||||
                "ext-pdo_sqlite": "*",
 | 
					                "ext-pdo_sqlite": "*",
 | 
				
			||||||
@@ -1293,7 +1296,7 @@
 | 
				
			|||||||
                "phpstan/phpstan-phpunit": "^1.1",
 | 
					                "phpstan/phpstan-phpunit": "^1.1",
 | 
				
			||||||
                "phpstan/phpstan-strict-rules": "^1.1",
 | 
					                "phpstan/phpstan-strict-rules": "^1.1",
 | 
				
			||||||
                "phpstan/phpstan-symfony": "^1.1",
 | 
					                "phpstan/phpstan-symfony": "^1.1",
 | 
				
			||||||
                "phpunit/phpunit": "^9.4",
 | 
					                "phpunit/phpunit": "^9.5",
 | 
				
			||||||
                "symfony/cache": "^4.4 || ^5.4 || ^6.0",
 | 
					                "symfony/cache": "^4.4 || ^5.4 || ^6.0",
 | 
				
			||||||
                "symfony/process": "^4.4 || ^5.4 || ^6.0",
 | 
					                "symfony/process": "^4.4 || ^5.4 || ^6.0",
 | 
				
			||||||
                "symfony/yaml": "^4.4 || ^5.4 || ^6.0"
 | 
					                "symfony/yaml": "^4.4 || ^5.4 || ^6.0"
 | 
				
			||||||
@@ -1344,7 +1347,7 @@
 | 
				
			|||||||
            ],
 | 
					            ],
 | 
				
			||||||
            "support": {
 | 
					            "support": {
 | 
				
			||||||
                "issues": "https://github.com/doctrine/migrations/issues",
 | 
					                "issues": "https://github.com/doctrine/migrations/issues",
 | 
				
			||||||
                "source": "https://github.com/doctrine/migrations/tree/3.5.0"
 | 
					                "source": "https://github.com/doctrine/migrations/tree/3.5.1"
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "funding": [
 | 
					            "funding": [
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
@@ -1360,20 +1363,20 @@
 | 
				
			|||||||
                    "type": "tidelift"
 | 
					                    "type": "tidelift"
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            "time": "2022-04-04T20:24:11+00:00"
 | 
					            "time": "2022-05-09T20:24:38+00:00"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            "name": "doctrine/orm",
 | 
					            "name": "doctrine/orm",
 | 
				
			||||||
            "version": "2.12.1",
 | 
					            "version": "2.12.2",
 | 
				
			||||||
            "source": {
 | 
					            "source": {
 | 
				
			||||||
                "type": "git",
 | 
					                "type": "git",
 | 
				
			||||||
                "url": "https://github.com/doctrine/orm.git",
 | 
					                "url": "https://github.com/doctrine/orm.git",
 | 
				
			||||||
                "reference": "2e4a8722721b934149ff53b191522a6829b6d73b"
 | 
					                "reference": "8291a7f09b12d14783ed6537b4586583d155869e"
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "dist": {
 | 
					            "dist": {
 | 
				
			||||||
                "type": "zip",
 | 
					                "type": "zip",
 | 
				
			||||||
                "url": "https://api.github.com/repos/doctrine/orm/zipball/2e4a8722721b934149ff53b191522a6829b6d73b",
 | 
					                "url": "https://api.github.com/repos/doctrine/orm/zipball/8291a7f09b12d14783ed6537b4586583d155869e",
 | 
				
			||||||
                "reference": "2e4a8722721b934149ff53b191522a6829b6d73b",
 | 
					                "reference": "8291a7f09b12d14783ed6537b4586583d155869e",
 | 
				
			||||||
                "shasum": ""
 | 
					                "shasum": ""
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "require": {
 | 
					            "require": {
 | 
				
			||||||
@@ -1382,7 +1385,7 @@
 | 
				
			|||||||
                "doctrine/collections": "^1.5",
 | 
					                "doctrine/collections": "^1.5",
 | 
				
			||||||
                "doctrine/common": "^3.0.3",
 | 
					                "doctrine/common": "^3.0.3",
 | 
				
			||||||
                "doctrine/dbal": "^2.13.1 || ^3.2",
 | 
					                "doctrine/dbal": "^2.13.1 || ^3.2",
 | 
				
			||||||
                "doctrine/deprecations": "^0.5.3",
 | 
					                "doctrine/deprecations": "^0.5.3 || ^1",
 | 
				
			||||||
                "doctrine/event-manager": "^1.1",
 | 
					                "doctrine/event-manager": "^1.1",
 | 
				
			||||||
                "doctrine/inflector": "^1.4 || ^2.0",
 | 
					                "doctrine/inflector": "^1.4 || ^2.0",
 | 
				
			||||||
                "doctrine/instantiator": "^1.3",
 | 
					                "doctrine/instantiator": "^1.3",
 | 
				
			||||||
@@ -1402,13 +1405,13 @@
 | 
				
			|||||||
                "doctrine/annotations": "^1.13",
 | 
					                "doctrine/annotations": "^1.13",
 | 
				
			||||||
                "doctrine/coding-standard": "^9.0",
 | 
					                "doctrine/coding-standard": "^9.0",
 | 
				
			||||||
                "phpbench/phpbench": "^0.16.10 || ^1.0",
 | 
					                "phpbench/phpbench": "^0.16.10 || ^1.0",
 | 
				
			||||||
                "phpstan/phpstan": "~1.4.10 || 1.5.0",
 | 
					                "phpstan/phpstan": "~1.4.10 || 1.6.3",
 | 
				
			||||||
                "phpunit/phpunit": "^7.5 || ^8.5 || ^9.4",
 | 
					                "phpunit/phpunit": "^7.5 || ^8.5 || ^9.5",
 | 
				
			||||||
                "psr/log": "^1 || ^2 || ^3",
 | 
					                "psr/log": "^1 || ^2 || ^3",
 | 
				
			||||||
                "squizlabs/php_codesniffer": "3.6.2",
 | 
					                "squizlabs/php_codesniffer": "3.6.2",
 | 
				
			||||||
                "symfony/cache": "^4.4 || ^5.4 || ^6.0",
 | 
					                "symfony/cache": "^4.4 || ^5.4 || ^6.0",
 | 
				
			||||||
                "symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0",
 | 
					                "symfony/yaml": "^3.4 || ^4.0 || ^5.0 || ^6.0",
 | 
				
			||||||
                "vimeo/psalm": "4.22.0"
 | 
					                "vimeo/psalm": "4.23.0"
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "suggest": {
 | 
					            "suggest": {
 | 
				
			||||||
                "symfony/cache": "Provides cache support for Setup Tool with doctrine/cache 2.0",
 | 
					                "symfony/cache": "Provides cache support for Setup Tool with doctrine/cache 2.0",
 | 
				
			||||||
@@ -1457,22 +1460,22 @@
 | 
				
			|||||||
            ],
 | 
					            ],
 | 
				
			||||||
            "support": {
 | 
					            "support": {
 | 
				
			||||||
                "issues": "https://github.com/doctrine/orm/issues",
 | 
					                "issues": "https://github.com/doctrine/orm/issues",
 | 
				
			||||||
                "source": "https://github.com/doctrine/orm/tree/2.12.1"
 | 
					                "source": "https://github.com/doctrine/orm/tree/2.12.2"
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "time": "2022-04-22T17:46:03+00:00"
 | 
					            "time": "2022-05-02T19:10:07+00:00"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            "name": "doctrine/persistence",
 | 
					            "name": "doctrine/persistence",
 | 
				
			||||||
            "version": "3.0.0",
 | 
					            "version": "3.0.2",
 | 
				
			||||||
            "source": {
 | 
					            "source": {
 | 
				
			||||||
                "type": "git",
 | 
					                "type": "git",
 | 
				
			||||||
                "url": "https://github.com/doctrine/persistence.git",
 | 
					                "url": "https://github.com/doctrine/persistence.git",
 | 
				
			||||||
                "reference": "e6103cb9e0982a4312e05ad94bb7be3f8e2d5869"
 | 
					                "reference": "25ec98a8cbd1f850e60fdb62c0ef77c162da8704"
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "dist": {
 | 
					            "dist": {
 | 
				
			||||||
                "type": "zip",
 | 
					                "type": "zip",
 | 
				
			||||||
                "url": "https://api.github.com/repos/doctrine/persistence/zipball/e6103cb9e0982a4312e05ad94bb7be3f8e2d5869",
 | 
					                "url": "https://api.github.com/repos/doctrine/persistence/zipball/25ec98a8cbd1f850e60fdb62c0ef77c162da8704",
 | 
				
			||||||
                "reference": "e6103cb9e0982a4312e05ad94bb7be3f8e2d5869",
 | 
					                "reference": "25ec98a8cbd1f850e60fdb62c0ef77c162da8704",
 | 
				
			||||||
                "shasum": ""
 | 
					                "shasum": ""
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "require": {
 | 
					            "require": {
 | 
				
			||||||
@@ -1544,7 +1547,7 @@
 | 
				
			|||||||
            ],
 | 
					            ],
 | 
				
			||||||
            "support": {
 | 
					            "support": {
 | 
				
			||||||
                "issues": "https://github.com/doctrine/persistence/issues",
 | 
					                "issues": "https://github.com/doctrine/persistence/issues",
 | 
				
			||||||
                "source": "https://github.com/doctrine/persistence/tree/3.0.0"
 | 
					                "source": "https://github.com/doctrine/persistence/tree/3.0.2"
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "funding": [
 | 
					            "funding": [
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
@@ -1560,7 +1563,7 @@
 | 
				
			|||||||
                    "type": "tidelift"
 | 
					                    "type": "tidelift"
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            "time": "2022-04-15T10:39:55+00:00"
 | 
					            "time": "2022-05-06T06:10:05+00:00"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            "name": "doctrine/sql-formatter",
 | 
					            "name": "doctrine/sql-formatter",
 | 
				
			||||||
@@ -1833,16 +1836,16 @@
 | 
				
			|||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            "name": "friendsofphp/proxy-manager-lts",
 | 
					            "name": "friendsofphp/proxy-manager-lts",
 | 
				
			||||||
            "version": "v1.0.7",
 | 
					            "version": "v1.0.12",
 | 
				
			||||||
            "source": {
 | 
					            "source": {
 | 
				
			||||||
                "type": "git",
 | 
					                "type": "git",
 | 
				
			||||||
                "url": "https://github.com/FriendsOfPHP/proxy-manager-lts.git",
 | 
					                "url": "https://github.com/FriendsOfPHP/proxy-manager-lts.git",
 | 
				
			||||||
                "reference": "c828ced1f932094ab79e4120a106a666565e4d9c"
 | 
					                "reference": "8419f0158715b30d4b99a5bd37c6a39671994ad7"
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "dist": {
 | 
					            "dist": {
 | 
				
			||||||
                "type": "zip",
 | 
					                "type": "zip",
 | 
				
			||||||
                "url": "https://api.github.com/repos/FriendsOfPHP/proxy-manager-lts/zipball/c828ced1f932094ab79e4120a106a666565e4d9c",
 | 
					                "url": "https://api.github.com/repos/FriendsOfPHP/proxy-manager-lts/zipball/8419f0158715b30d4b99a5bd37c6a39671994ad7",
 | 
				
			||||||
                "reference": "c828ced1f932094ab79e4120a106a666565e4d9c",
 | 
					                "reference": "8419f0158715b30d4b99a5bd37c6a39671994ad7",
 | 
				
			||||||
                "shasum": ""
 | 
					                "shasum": ""
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "require": {
 | 
					            "require": {
 | 
				
			||||||
@@ -1899,7 +1902,7 @@
 | 
				
			|||||||
            ],
 | 
					            ],
 | 
				
			||||||
            "support": {
 | 
					            "support": {
 | 
				
			||||||
                "issues": "https://github.com/FriendsOfPHP/proxy-manager-lts/issues",
 | 
					                "issues": "https://github.com/FriendsOfPHP/proxy-manager-lts/issues",
 | 
				
			||||||
                "source": "https://github.com/FriendsOfPHP/proxy-manager-lts/tree/v1.0.7"
 | 
					                "source": "https://github.com/FriendsOfPHP/proxy-manager-lts/tree/v1.0.12"
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "funding": [
 | 
					            "funding": [
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
@@ -1911,7 +1914,7 @@
 | 
				
			|||||||
                    "type": "tidelift"
 | 
					                    "type": "tidelift"
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            "time": "2022-03-02T09:29:19+00:00"
 | 
					            "time": "2022-05-05T09:31:05+00:00"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            "name": "friendsofsymfony/ckeditor-bundle",
 | 
					            "name": "friendsofsymfony/ckeditor-bundle",
 | 
				
			||||||
@@ -1996,16 +1999,16 @@
 | 
				
			|||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            "name": "knplabs/knp-time-bundle",
 | 
					            "name": "knplabs/knp-time-bundle",
 | 
				
			||||||
            "version": "v1.18.0",
 | 
					            "version": "v1.19.0",
 | 
				
			||||||
            "source": {
 | 
					            "source": {
 | 
				
			||||||
                "type": "git",
 | 
					                "type": "git",
 | 
				
			||||||
                "url": "https://github.com/KnpLabs/KnpTimeBundle.git",
 | 
					                "url": "https://github.com/KnpLabs/KnpTimeBundle.git",
 | 
				
			||||||
                "reference": "239c964c67087f3e1e9dbcfe6fb1d4af36ff884b"
 | 
					                "reference": "56e4d154bcd14c1b67c0d1defa1e7d00d27430e3"
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "dist": {
 | 
					            "dist": {
 | 
				
			||||||
                "type": "zip",
 | 
					                "type": "zip",
 | 
				
			||||||
                "url": "https://api.github.com/repos/KnpLabs/KnpTimeBundle/zipball/239c964c67087f3e1e9dbcfe6fb1d4af36ff884b",
 | 
					                "url": "https://api.github.com/repos/KnpLabs/KnpTimeBundle/zipball/56e4d154bcd14c1b67c0d1defa1e7d00d27430e3",
 | 
				
			||||||
                "reference": "239c964c67087f3e1e9dbcfe6fb1d4af36ff884b",
 | 
					                "reference": "56e4d154bcd14c1b67c0d1defa1e7d00d27430e3",
 | 
				
			||||||
                "shasum": ""
 | 
					                "shasum": ""
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "require": {
 | 
					            "require": {
 | 
				
			||||||
@@ -2063,9 +2066,9 @@
 | 
				
			|||||||
            ],
 | 
					            ],
 | 
				
			||||||
            "support": {
 | 
					            "support": {
 | 
				
			||||||
                "issues": "https://github.com/KnpLabs/KnpTimeBundle/issues",
 | 
					                "issues": "https://github.com/KnpLabs/KnpTimeBundle/issues",
 | 
				
			||||||
                "source": "https://github.com/KnpLabs/KnpTimeBundle/tree/v1.18.0"
 | 
					                "source": "https://github.com/KnpLabs/KnpTimeBundle/tree/v1.19.0"
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "time": "2022-02-07T18:02:40+00:00"
 | 
					            "time": "2022-05-10T00:14:22+00:00"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            "name": "laminas/laminas-code",
 | 
					            "name": "laminas/laminas-code",
 | 
				
			||||||
@@ -2323,16 +2326,16 @@
 | 
				
			|||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            "name": "monolog/monolog",
 | 
					            "name": "monolog/monolog",
 | 
				
			||||||
            "version": "2.5.0",
 | 
					            "version": "2.6.0",
 | 
				
			||||||
            "source": {
 | 
					            "source": {
 | 
				
			||||||
                "type": "git",
 | 
					                "type": "git",
 | 
				
			||||||
                "url": "https://github.com/Seldaek/monolog.git",
 | 
					                "url": "https://github.com/Seldaek/monolog.git",
 | 
				
			||||||
                "reference": "4192345e260f1d51b365536199744b987e160edc"
 | 
					                "reference": "247918972acd74356b0a91dfaa5adcaec069b6c0"
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "dist": {
 | 
					            "dist": {
 | 
				
			||||||
                "type": "zip",
 | 
					                "type": "zip",
 | 
				
			||||||
                "url": "https://api.github.com/repos/Seldaek/monolog/zipball/4192345e260f1d51b365536199744b987e160edc",
 | 
					                "url": "https://api.github.com/repos/Seldaek/monolog/zipball/247918972acd74356b0a91dfaa5adcaec069b6c0",
 | 
				
			||||||
                "reference": "4192345e260f1d51b365536199744b987e160edc",
 | 
					                "reference": "247918972acd74356b0a91dfaa5adcaec069b6c0",
 | 
				
			||||||
                "shasum": ""
 | 
					                "shasum": ""
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "require": {
 | 
					            "require": {
 | 
				
			||||||
@@ -2345,18 +2348,23 @@
 | 
				
			|||||||
            "require-dev": {
 | 
					            "require-dev": {
 | 
				
			||||||
                "aws/aws-sdk-php": "^2.4.9 || ^3.0",
 | 
					                "aws/aws-sdk-php": "^2.4.9 || ^3.0",
 | 
				
			||||||
                "doctrine/couchdb": "~1.0@dev",
 | 
					                "doctrine/couchdb": "~1.0@dev",
 | 
				
			||||||
                "elasticsearch/elasticsearch": "^7",
 | 
					                "elasticsearch/elasticsearch": "^7 || ^8",
 | 
				
			||||||
 | 
					                "ext-json": "*",
 | 
				
			||||||
                "graylog2/gelf-php": "^1.4.2",
 | 
					                "graylog2/gelf-php": "^1.4.2",
 | 
				
			||||||
 | 
					                "guzzlehttp/guzzle": "^7.4",
 | 
				
			||||||
 | 
					                "guzzlehttp/psr7": "^2.2",
 | 
				
			||||||
                "mongodb/mongodb": "^1.8",
 | 
					                "mongodb/mongodb": "^1.8",
 | 
				
			||||||
                "php-amqplib/php-amqplib": "~2.4 || ^3",
 | 
					                "php-amqplib/php-amqplib": "~2.4 || ^3",
 | 
				
			||||||
                "php-console/php-console": "^3.1.3",
 | 
					                "php-console/php-console": "^3.1.3",
 | 
				
			||||||
                "phpspec/prophecy": "^1.6.1",
 | 
					                "phpspec/prophecy": "^1.15",
 | 
				
			||||||
                "phpstan/phpstan": "^0.12.91",
 | 
					                "phpstan/phpstan": "^0.12.91",
 | 
				
			||||||
                "phpunit/phpunit": "^8.5",
 | 
					                "phpunit/phpunit": "^8.5.14",
 | 
				
			||||||
                "predis/predis": "^1.1",
 | 
					                "predis/predis": "^1.1",
 | 
				
			||||||
                "rollbar/rollbar": "^1.3 || ^2 || ^3",
 | 
					                "rollbar/rollbar": "^1.3 || ^2 || ^3",
 | 
				
			||||||
                "ruflin/elastica": ">=0.90@dev",
 | 
					                "ruflin/elastica": "^7",
 | 
				
			||||||
                "swiftmailer/swiftmailer": "^5.3|^6.0"
 | 
					                "swiftmailer/swiftmailer": "^5.3|^6.0",
 | 
				
			||||||
 | 
					                "symfony/mailer": "^5.4 || ^6",
 | 
				
			||||||
 | 
					                "symfony/mime": "^5.4 || ^6"
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "suggest": {
 | 
					            "suggest": {
 | 
				
			||||||
                "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
 | 
					                "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
 | 
				
			||||||
@@ -2406,7 +2414,7 @@
 | 
				
			|||||||
            ],
 | 
					            ],
 | 
				
			||||||
            "support": {
 | 
					            "support": {
 | 
				
			||||||
                "issues": "https://github.com/Seldaek/monolog/issues",
 | 
					                "issues": "https://github.com/Seldaek/monolog/issues",
 | 
				
			||||||
                "source": "https://github.com/Seldaek/monolog/tree/2.5.0"
 | 
					                "source": "https://github.com/Seldaek/monolog/tree/2.6.0"
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "funding": [
 | 
					            "funding": [
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
@@ -2418,7 +2426,7 @@
 | 
				
			|||||||
                    "type": "tidelift"
 | 
					                    "type": "tidelift"
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            "time": "2022-04-08T15:43:54+00:00"
 | 
					            "time": "2022-05-10T09:36:00+00:00"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            "name": "nelmio/cors-bundle",
 | 
					            "name": "nelmio/cors-bundle",
 | 
				
			||||||
@@ -2790,16 +2798,16 @@
 | 
				
			|||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            "name": "phpstan/phpdoc-parser",
 | 
					            "name": "phpstan/phpdoc-parser",
 | 
				
			||||||
            "version": "1.4.5",
 | 
					            "version": "1.5.1",
 | 
				
			||||||
            "source": {
 | 
					            "source": {
 | 
				
			||||||
                "type": "git",
 | 
					                "type": "git",
 | 
				
			||||||
                "url": "https://github.com/phpstan/phpdoc-parser.git",
 | 
					                "url": "https://github.com/phpstan/phpdoc-parser.git",
 | 
				
			||||||
                "reference": "129a63b3bc7caeb593c224c41f420675e63cfefc"
 | 
					                "reference": "981cc368a216c988e862a75e526b6076987d1b50"
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "dist": {
 | 
					            "dist": {
 | 
				
			||||||
                "type": "zip",
 | 
					                "type": "zip",
 | 
				
			||||||
                "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/129a63b3bc7caeb593c224c41f420675e63cfefc",
 | 
					                "url": "https://api.github.com/repos/phpstan/phpdoc-parser/zipball/981cc368a216c988e862a75e526b6076987d1b50",
 | 
				
			||||||
                "reference": "129a63b3bc7caeb593c224c41f420675e63cfefc",
 | 
					                "reference": "981cc368a216c988e862a75e526b6076987d1b50",
 | 
				
			||||||
                "shasum": ""
 | 
					                "shasum": ""
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "require": {
 | 
					            "require": {
 | 
				
			||||||
@@ -2828,22 +2836,22 @@
 | 
				
			|||||||
            "description": "PHPDoc parser with support for nullable, intersection and generic types",
 | 
					            "description": "PHPDoc parser with support for nullable, intersection and generic types",
 | 
				
			||||||
            "support": {
 | 
					            "support": {
 | 
				
			||||||
                "issues": "https://github.com/phpstan/phpdoc-parser/issues",
 | 
					                "issues": "https://github.com/phpstan/phpdoc-parser/issues",
 | 
				
			||||||
                "source": "https://github.com/phpstan/phpdoc-parser/tree/1.4.5"
 | 
					                "source": "https://github.com/phpstan/phpdoc-parser/tree/1.5.1"
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "time": "2022-04-22T11:11:01+00:00"
 | 
					            "time": "2022-05-05T11:32:40+00:00"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            "name": "phpstan/phpstan",
 | 
					            "name": "phpstan/phpstan",
 | 
				
			||||||
            "version": "1.6.2",
 | 
					            "version": "1.6.8",
 | 
				
			||||||
            "source": {
 | 
					            "source": {
 | 
				
			||||||
                "type": "git",
 | 
					                "type": "git",
 | 
				
			||||||
                "url": "https://github.com/phpstan/phpstan.git",
 | 
					                "url": "https://github.com/phpstan/phpstan.git",
 | 
				
			||||||
                "reference": "becb9603a31d70f5007d505877a7b812598dfe46"
 | 
					                "reference": "d76498c5531232cb8386ceb6004f7e013138d3ba"
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "dist": {
 | 
					            "dist": {
 | 
				
			||||||
                "type": "zip",
 | 
					                "type": "zip",
 | 
				
			||||||
                "url": "https://api.github.com/repos/phpstan/phpstan/zipball/becb9603a31d70f5007d505877a7b812598dfe46",
 | 
					                "url": "https://api.github.com/repos/phpstan/phpstan/zipball/d76498c5531232cb8386ceb6004f7e013138d3ba",
 | 
				
			||||||
                "reference": "becb9603a31d70f5007d505877a7b812598dfe46",
 | 
					                "reference": "d76498c5531232cb8386ceb6004f7e013138d3ba",
 | 
				
			||||||
                "shasum": ""
 | 
					                "shasum": ""
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "require": {
 | 
					            "require": {
 | 
				
			||||||
@@ -2869,7 +2877,7 @@
 | 
				
			|||||||
            "description": "PHPStan - PHP Static Analysis Tool",
 | 
					            "description": "PHPStan - PHP Static Analysis Tool",
 | 
				
			||||||
            "support": {
 | 
					            "support": {
 | 
				
			||||||
                "issues": "https://github.com/phpstan/phpstan/issues",
 | 
					                "issues": "https://github.com/phpstan/phpstan/issues",
 | 
				
			||||||
                "source": "https://github.com/phpstan/phpstan/tree/1.6.2"
 | 
					                "source": "https://github.com/phpstan/phpstan/tree/1.6.8"
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "funding": [
 | 
					            "funding": [
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
@@ -2889,7 +2897,7 @@
 | 
				
			|||||||
                    "type": "tidelift"
 | 
					                    "type": "tidelift"
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            "time": "2022-04-27T11:05:24+00:00"
 | 
					            "time": "2022-05-10T06:54:21+00:00"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            "name": "psr/cache",
 | 
					            "name": "psr/cache",
 | 
				
			||||||
@@ -3151,16 +3159,16 @@
 | 
				
			|||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            "name": "rector/rector",
 | 
					            "name": "rector/rector",
 | 
				
			||||||
            "version": "0.12.22",
 | 
					            "version": "0.12.23",
 | 
				
			||||||
            "source": {
 | 
					            "source": {
 | 
				
			||||||
                "type": "git",
 | 
					                "type": "git",
 | 
				
			||||||
                "url": "https://github.com/rectorphp/rector.git",
 | 
					                "url": "https://github.com/rectorphp/rector.git",
 | 
				
			||||||
                "reference": "0e76f19491498c136b698dc22b9b30d44a4e832c"
 | 
					                "reference": "690b31768b322db886b35845f8452025eba2cacb"
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "dist": {
 | 
					            "dist": {
 | 
				
			||||||
                "type": "zip",
 | 
					                "type": "zip",
 | 
				
			||||||
                "url": "https://api.github.com/repos/rectorphp/rector/zipball/0e76f19491498c136b698dc22b9b30d44a4e832c",
 | 
					                "url": "https://api.github.com/repos/rectorphp/rector/zipball/690b31768b322db886b35845f8452025eba2cacb",
 | 
				
			||||||
                "reference": "0e76f19491498c136b698dc22b9b30d44a4e832c",
 | 
					                "reference": "690b31768b322db886b35845f8452025eba2cacb",
 | 
				
			||||||
                "shasum": ""
 | 
					                "shasum": ""
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "require": {
 | 
					            "require": {
 | 
				
			||||||
@@ -3199,7 +3207,7 @@
 | 
				
			|||||||
            "description": "Instant Upgrade and Automated Refactoring of any PHP code",
 | 
					            "description": "Instant Upgrade and Automated Refactoring of any PHP code",
 | 
				
			||||||
            "support": {
 | 
					            "support": {
 | 
				
			||||||
                "issues": "https://github.com/rectorphp/rector/issues",
 | 
					                "issues": "https://github.com/rectorphp/rector/issues",
 | 
				
			||||||
                "source": "https://github.com/rectorphp/rector/tree/0.12.22"
 | 
					                "source": "https://github.com/rectorphp/rector/tree/0.12.23"
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "funding": [
 | 
					            "funding": [
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
@@ -3207,7 +3215,7 @@
 | 
				
			|||||||
                    "type": "github"
 | 
					                    "type": "github"
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            "time": "2022-04-27T22:44:46+00:00"
 | 
					            "time": "2022-05-01T15:50:16+00:00"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            "name": "sensio/framework-extra-bundle",
 | 
					            "name": "sensio/framework-extra-bundle",
 | 
				
			||||||
@@ -4593,16 +4601,16 @@
 | 
				
			|||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            "name": "symfony/flex",
 | 
					            "name": "symfony/flex",
 | 
				
			||||||
            "version": "v2.1.7",
 | 
					            "version": "v2.1.8",
 | 
				
			||||||
            "source": {
 | 
					            "source": {
 | 
				
			||||||
                "type": "git",
 | 
					                "type": "git",
 | 
				
			||||||
                "url": "https://github.com/symfony/flex.git",
 | 
					                "url": "https://github.com/symfony/flex.git",
 | 
				
			||||||
                "reference": "3eb57ba4b5d3f14cdaafe030936421c22e9f98a2"
 | 
					                "reference": "dcbe58c3fbafeaeb32f619bf94c3912c0c732b65"
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "dist": {
 | 
					            "dist": {
 | 
				
			||||||
                "type": "zip",
 | 
					                "type": "zip",
 | 
				
			||||||
                "url": "https://api.github.com/repos/symfony/flex/zipball/3eb57ba4b5d3f14cdaafe030936421c22e9f98a2",
 | 
					                "url": "https://api.github.com/repos/symfony/flex/zipball/dcbe58c3fbafeaeb32f619bf94c3912c0c732b65",
 | 
				
			||||||
                "reference": "3eb57ba4b5d3f14cdaafe030936421c22e9f98a2",
 | 
					                "reference": "dcbe58c3fbafeaeb32f619bf94c3912c0c732b65",
 | 
				
			||||||
                "shasum": ""
 | 
					                "shasum": ""
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "require": {
 | 
					            "require": {
 | 
				
			||||||
@@ -4638,7 +4646,7 @@
 | 
				
			|||||||
            "description": "Composer plugin for Symfony",
 | 
					            "description": "Composer plugin for Symfony",
 | 
				
			||||||
            "support": {
 | 
					            "support": {
 | 
				
			||||||
                "issues": "https://github.com/symfony/flex/issues",
 | 
					                "issues": "https://github.com/symfony/flex/issues",
 | 
				
			||||||
                "source": "https://github.com/symfony/flex/tree/v2.1.7"
 | 
					                "source": "https://github.com/symfony/flex/tree/v2.1.8"
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "funding": [
 | 
					            "funding": [
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
@@ -4654,7 +4662,7 @@
 | 
				
			|||||||
                    "type": "tidelift"
 | 
					                    "type": "tidelift"
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            "time": "2022-04-15T08:20:43+00:00"
 | 
					            "time": "2022-05-02T10:23:41+00:00"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            "name": "symfony/form",
 | 
					            "name": "symfony/form",
 | 
				
			||||||
@@ -5654,20 +5662,20 @@
 | 
				
			|||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            "name": "symfony/monolog-bundle",
 | 
					            "name": "symfony/monolog-bundle",
 | 
				
			||||||
            "version": "v3.7.1",
 | 
					            "version": "v3.8.0",
 | 
				
			||||||
            "source": {
 | 
					            "source": {
 | 
				
			||||||
                "type": "git",
 | 
					                "type": "git",
 | 
				
			||||||
                "url": "https://github.com/symfony/monolog-bundle.git",
 | 
					                "url": "https://github.com/symfony/monolog-bundle.git",
 | 
				
			||||||
                "reference": "fde12fc628162787a4e53877abadc30047fd868b"
 | 
					                "reference": "a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d"
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "dist": {
 | 
					            "dist": {
 | 
				
			||||||
                "type": "zip",
 | 
					                "type": "zip",
 | 
				
			||||||
                "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/fde12fc628162787a4e53877abadc30047fd868b",
 | 
					                "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d",
 | 
				
			||||||
                "reference": "fde12fc628162787a4e53877abadc30047fd868b",
 | 
					                "reference": "a41bbcdc1105603b6d73a7d9a43a3788f8e0fb7d",
 | 
				
			||||||
                "shasum": ""
 | 
					                "shasum": ""
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "require": {
 | 
					            "require": {
 | 
				
			||||||
                "monolog/monolog": "~1.22 || ~2.0",
 | 
					                "monolog/monolog": "^1.22 || ^2.0 || ^3.0",
 | 
				
			||||||
                "php": ">=7.1.3",
 | 
					                "php": ">=7.1.3",
 | 
				
			||||||
                "symfony/config": "~4.4 || ^5.0 || ^6.0",
 | 
					                "symfony/config": "~4.4 || ^5.0 || ^6.0",
 | 
				
			||||||
                "symfony/dependency-injection": "^4.4 || ^5.0 || ^6.0",
 | 
					                "symfony/dependency-injection": "^4.4 || ^5.0 || ^6.0",
 | 
				
			||||||
@@ -5715,7 +5723,7 @@
 | 
				
			|||||||
            ],
 | 
					            ],
 | 
				
			||||||
            "support": {
 | 
					            "support": {
 | 
				
			||||||
                "issues": "https://github.com/symfony/monolog-bundle/issues",
 | 
					                "issues": "https://github.com/symfony/monolog-bundle/issues",
 | 
				
			||||||
                "source": "https://github.com/symfony/monolog-bundle/tree/v3.7.1"
 | 
					                "source": "https://github.com/symfony/monolog-bundle/tree/v3.8.0"
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "funding": [
 | 
					            "funding": [
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
@@ -5731,7 +5739,7 @@
 | 
				
			|||||||
                    "type": "tidelift"
 | 
					                    "type": "tidelift"
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            "time": "2021-11-05T10:34:29+00:00"
 | 
					            "time": "2022-05-10T14:24:36+00:00"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            "name": "symfony/notifier",
 | 
					            "name": "symfony/notifier",
 | 
				
			||||||
@@ -8514,16 +8522,16 @@
 | 
				
			|||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            "name": "symfony/webpack-encore-bundle",
 | 
					            "name": "symfony/webpack-encore-bundle",
 | 
				
			||||||
            "version": "v1.14.0",
 | 
					            "version": "v1.14.1",
 | 
				
			||||||
            "source": {
 | 
					            "source": {
 | 
				
			||||||
                "type": "git",
 | 
					                "type": "git",
 | 
				
			||||||
                "url": "https://github.com/symfony/webpack-encore-bundle.git",
 | 
					                "url": "https://github.com/symfony/webpack-encore-bundle.git",
 | 
				
			||||||
                "reference": "1729c314574f32e49f9660a0cee870f7e603864f"
 | 
					                "reference": "6b18be99bf2a5a402b80a2c00043fe0b365fe836"
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "dist": {
 | 
					            "dist": {
 | 
				
			||||||
                "type": "zip",
 | 
					                "type": "zip",
 | 
				
			||||||
                "url": "https://api.github.com/repos/symfony/webpack-encore-bundle/zipball/1729c314574f32e49f9660a0cee870f7e603864f",
 | 
					                "url": "https://api.github.com/repos/symfony/webpack-encore-bundle/zipball/6b18be99bf2a5a402b80a2c00043fe0b365fe836",
 | 
				
			||||||
                "reference": "1729c314574f32e49f9660a0cee870f7e603864f",
 | 
					                "reference": "6b18be99bf2a5a402b80a2c00043fe0b365fe836",
 | 
				
			||||||
                "shasum": ""
 | 
					                "shasum": ""
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "require": {
 | 
					            "require": {
 | 
				
			||||||
@@ -8565,7 +8573,7 @@
 | 
				
			|||||||
            "description": "Integration with your Symfony app & Webpack Encore!",
 | 
					            "description": "Integration with your Symfony app & Webpack Encore!",
 | 
				
			||||||
            "support": {
 | 
					            "support": {
 | 
				
			||||||
                "issues": "https://github.com/symfony/webpack-encore-bundle/issues",
 | 
					                "issues": "https://github.com/symfony/webpack-encore-bundle/issues",
 | 
				
			||||||
                "source": "https://github.com/symfony/webpack-encore-bundle/tree/v1.14.0"
 | 
					                "source": "https://github.com/symfony/webpack-encore-bundle/tree/v1.14.1"
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "funding": [
 | 
					            "funding": [
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
@@ -8581,7 +8589,7 @@
 | 
				
			|||||||
                    "type": "tidelift"
 | 
					                    "type": "tidelift"
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            "time": "2022-02-14T15:06:55+00:00"
 | 
					            "time": "2022-05-03T17:55:32+00:00"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            "name": "symfony/yaml",
 | 
					            "name": "symfony/yaml",
 | 
				
			||||||
@@ -9137,16 +9145,16 @@
 | 
				
			|||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            "name": "symfony/maker-bundle",
 | 
					            "name": "symfony/maker-bundle",
 | 
				
			||||||
            "version": "v1.40.1",
 | 
					            "version": "v1.42.0",
 | 
				
			||||||
            "source": {
 | 
					            "source": {
 | 
				
			||||||
                "type": "git",
 | 
					                "type": "git",
 | 
				
			||||||
                "url": "https://github.com/symfony/maker-bundle.git",
 | 
					                "url": "https://github.com/symfony/maker-bundle.git",
 | 
				
			||||||
                "reference": "adc846e4f852e3aa2cd84a433cd05ba23dd19c3f"
 | 
					                "reference": "fc9f6bcc0ef79fc9d0325c545ae0f030bb6c9d11"
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "dist": {
 | 
					            "dist": {
 | 
				
			||||||
                "type": "zip",
 | 
					                "type": "zip",
 | 
				
			||||||
                "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/adc846e4f852e3aa2cd84a433cd05ba23dd19c3f",
 | 
					                "url": "https://api.github.com/repos/symfony/maker-bundle/zipball/fc9f6bcc0ef79fc9d0325c545ae0f030bb6c9d11",
 | 
				
			||||||
                "reference": "adc846e4f852e3aa2cd84a433cd05ba23dd19c3f",
 | 
					                "reference": "fc9f6bcc0ef79fc9d0325c545ae0f030bb6c9d11",
 | 
				
			||||||
                "shasum": ""
 | 
					                "shasum": ""
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "require": {
 | 
					            "require": {
 | 
				
			||||||
@@ -9162,10 +9170,13 @@
 | 
				
			|||||||
                "symfony/framework-bundle": "^5.4.7|^6.0",
 | 
					                "symfony/framework-bundle": "^5.4.7|^6.0",
 | 
				
			||||||
                "symfony/http-kernel": "^5.4.7|^6.0"
 | 
					                "symfony/http-kernel": "^5.4.7|^6.0"
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
 | 
					            "conflict": {
 | 
				
			||||||
 | 
					                "doctrine/orm": "<2.10"
 | 
				
			||||||
 | 
					            },
 | 
				
			||||||
            "require-dev": {
 | 
					            "require-dev": {
 | 
				
			||||||
                "composer/semver": "^3.0",
 | 
					                "composer/semver": "^3.0",
 | 
				
			||||||
                "doctrine/doctrine-bundle": "^2.4",
 | 
					                "doctrine/doctrine-bundle": "^2.4",
 | 
				
			||||||
                "doctrine/orm": "^2.3",
 | 
					                "doctrine/orm": "^2.10.0",
 | 
				
			||||||
                "symfony/http-client": "^5.4.7|^6.0",
 | 
					                "symfony/http-client": "^5.4.7|^6.0",
 | 
				
			||||||
                "symfony/phpunit-bridge": "^5.4.7|^6.0",
 | 
					                "symfony/phpunit-bridge": "^5.4.7|^6.0",
 | 
				
			||||||
                "symfony/polyfill-php80": "^1.16.0",
 | 
					                "symfony/polyfill-php80": "^1.16.0",
 | 
				
			||||||
@@ -9205,7 +9216,7 @@
 | 
				
			|||||||
            ],
 | 
					            ],
 | 
				
			||||||
            "support": {
 | 
					            "support": {
 | 
				
			||||||
                "issues": "https://github.com/symfony/maker-bundle/issues",
 | 
					                "issues": "https://github.com/symfony/maker-bundle/issues",
 | 
				
			||||||
                "source": "https://github.com/symfony/maker-bundle/tree/v1.40.1"
 | 
					                "source": "https://github.com/symfony/maker-bundle/tree/v1.42.0"
 | 
				
			||||||
            },
 | 
					            },
 | 
				
			||||||
            "funding": [
 | 
					            "funding": [
 | 
				
			||||||
                {
 | 
					                {
 | 
				
			||||||
@@ -9221,7 +9232,7 @@
 | 
				
			|||||||
                    "type": "tidelift"
 | 
					                    "type": "tidelift"
 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
            ],
 | 
					            ],
 | 
				
			||||||
            "time": "2022-04-23T19:42:13+00:00"
 | 
					            "time": "2022-05-09T19:36:10+00:00"
 | 
				
			||||||
        },
 | 
					        },
 | 
				
			||||||
        {
 | 
					        {
 | 
				
			||||||
            "name": "symfony/web-profiler-bundle",
 | 
					            "name": "symfony/web-profiler-bundle",
 | 
				
			||||||
@@ -9309,7 +9320,7 @@
 | 
				
			|||||||
    "prefer-stable": true,
 | 
					    "prefer-stable": true,
 | 
				
			||||||
    "prefer-lowest": false,
 | 
					    "prefer-lowest": false,
 | 
				
			||||||
    "platform": {
 | 
					    "platform": {
 | 
				
			||||||
        "php": ">=8.0.2",
 | 
					        "php": ">=8.1.0",
 | 
				
			||||||
        "ext-ctype": "*",
 | 
					        "ext-ctype": "*",
 | 
				
			||||||
        "ext-iconv": "*"
 | 
					        "ext-iconv": "*"
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										18
									
								
								package.json
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								package.json
									
									
									
									
									
								
							@@ -9,7 +9,9 @@
 | 
				
			|||||||
        "regenerator-runtime": "^0.13.2",
 | 
					        "regenerator-runtime": "^0.13.2",
 | 
				
			||||||
        "sass": "^1.50.0",
 | 
					        "sass": "^1.50.0",
 | 
				
			||||||
        "sass-loader": "^12.0.0",
 | 
					        "sass-loader": "^12.0.0",
 | 
				
			||||||
        "vue-loader": "^15",
 | 
					        "ts-loader": "^9.0.0",
 | 
				
			||||||
 | 
					        "typescript": "^4.6.4",
 | 
				
			||||||
 | 
					        "vue-loader": "16",
 | 
				
			||||||
        "webpack-manifest-plugin": "^5.0.0",
 | 
					        "webpack-manifest-plugin": "^5.0.0",
 | 
				
			||||||
        "webpack-notifier": "^1.6.0"
 | 
					        "webpack-notifier": "^1.6.0"
 | 
				
			||||||
    },
 | 
					    },
 | 
				
			||||||
@@ -23,10 +25,9 @@
 | 
				
			|||||||
    },
 | 
					    },
 | 
				
			||||||
    "dependencies": {
 | 
					    "dependencies": {
 | 
				
			||||||
        "@fortawesome/fontawesome-free": "^6.1.1",
 | 
					        "@fortawesome/fontawesome-free": "^6.1.1",
 | 
				
			||||||
        "@vue/composition-api": "^1.6.0",
 | 
					 | 
				
			||||||
        "axios": "^0.27.1",
 | 
					        "axios": "^0.27.1",
 | 
				
			||||||
        "bootstrap": "4.6",
 | 
					        "bootsdark": "^1.0.16",
 | 
				
			||||||
        "bootstrap-vue": "^2.22.0",
 | 
					        "bootstrap": "^5.1.3",
 | 
				
			||||||
        "ckeditor": "^4.12.1",
 | 
					        "ckeditor": "^4.12.1",
 | 
				
			||||||
        "ckeditor4": "^4.18.0",
 | 
					        "ckeditor4": "^4.18.0",
 | 
				
			||||||
        "eslint": "^8.14.0",
 | 
					        "eslint": "^8.14.0",
 | 
				
			||||||
@@ -39,9 +40,10 @@
 | 
				
			|||||||
        "marked": "^4.0.15",
 | 
					        "marked": "^4.0.15",
 | 
				
			||||||
        "pinia": "^2.0.14",
 | 
					        "pinia": "^2.0.14",
 | 
				
			||||||
        "popper.js": "^1.16.1",
 | 
					        "popper.js": "^1.16.1",
 | 
				
			||||||
        "vue": "^2.5",
 | 
					        "primevue": "^3.12.6",
 | 
				
			||||||
        "vue-router": "3",
 | 
					        "vue": "3",
 | 
				
			||||||
        "vue-template-compiler": "^2.6.14",
 | 
					        "vue-navigation-bar": "^5.0.0",
 | 
				
			||||||
        "vue2-editor": "^2.10.3"
 | 
					        "vue-router": "4",
 | 
				
			||||||
 | 
					        "vue3-editor": "^0.1.1"
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										24
									
								
								rector.php
									
									
									
									
									
								
							
							
						
						
									
										24
									
								
								rector.php
									
									
									
									
									
								
							@@ -3,19 +3,21 @@
 | 
				
			|||||||
declare(strict_types=1);
 | 
					declare(strict_types=1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
use Rector\CodeQuality\Rector\Class_\InlineConstructorDefaultToPropertyRector;
 | 
					use Rector\CodeQuality\Rector\Class_\InlineConstructorDefaultToPropertyRector;
 | 
				
			||||||
use Rector\Config\RectorConfig;
 | 
					use Rector\Core\Configuration\Option;
 | 
				
			||||||
use Rector\Set\ValueObject\LevelSetList;
 | 
					use Rector\Set\ValueObject\LevelSetList;
 | 
				
			||||||
 | 
					use Symfony\Flex\Configurator\ContainerConfigurator;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
return static function (RectorConfig $rectorConfig): void {
 | 
					return static function (ContainerConfigurator $containerConfigurator): void {
 | 
				
			||||||
    $rectorConfig->paths(paths: [
 | 
						// region Symfony Container
 | 
				
			||||||
        __DIR__ . '/src'
 | 
						$parameters = $containerConfigurator->parameters();
 | 
				
			||||||
    ]);
 | 
						$parameters->set(
 | 
				
			||||||
 | 
							Option::SYMFONY_CONTAINER_XML_PATH_PARAMETER,
 | 
				
			||||||
 | 
							__DIR__ . '/var/cache/dev/App_KernelDevDebugContainer.xml'
 | 
				
			||||||
 | 
						);
 | 
				
			||||||
 | 
						// endregion
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // register a single rule
 | 
					 | 
				
			||||||
    $rectorConfig->rule(rectorClass: InlineConstructorDefaultToPropertyRector::class);
 | 
					 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
    // define sets of rules
 | 
						$containerConfigurator->import(DoctrineSetList::ANNOTATIONS_TO_ATTRIBUTES);
 | 
				
			||||||
    //    $rectorConfig->sets([
 | 
						$containerConfigurator->import(SymfonySetList::ANNOTATIONS_TO_ATTRIBUTES);
 | 
				
			||||||
    //        LevelSetList::UP_TO_PHP_80
 | 
						$containerConfigurator->import(SensiolabsSetList::FRAMEWORK_EXTRA_61);
 | 
				
			||||||
    //    ]);
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -46,7 +46,7 @@ class SecurityController extends AbstractController
 | 
				
			|||||||
     * @return mixed
 | 
					     * @return mixed
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    #[Route(path: '/logout', name: 'app_logout')]
 | 
					    #[Route(path: '/logout', name: 'app_logout')]
 | 
				
			||||||
    public function logout(): mixed
 | 
					    public function logout(): never
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        throw new Exception(message: 'Logout should never be reached.');
 | 
					        throw new Exception(message: 'Logout should never be reached.');
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -16,10 +16,8 @@ use Symfony\Component\Security\Core\Exception\UserNotFoundException;
 | 
				
			|||||||
class UserController extends AbstractController
 | 
					class UserController extends AbstractController
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * @param \App\Repository\UserRepository $userRepository
 | 
					 | 
				
			||||||
     * @param string                         $userName
 | 
					     * @param string                         $userName
 | 
				
			||||||
     *
 | 
					     *
 | 
				
			||||||
     * @return \Symfony\Component\HttpFoundation\Response
 | 
					 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    #[Route(path: '/profile/edit/{username}', name: 'app_profile_edit')]
 | 
					    #[Route(path: '/profile/edit/{username}', name: 'app_profile_edit')]
 | 
				
			||||||
    public function editProfile(UserRepository $userRepository, string $username = ''): Response
 | 
					    public function editProfile(UserRepository $userRepository, string $username = ''): Response
 | 
				
			||||||
@@ -48,12 +46,6 @@ class UserController extends AbstractController
 | 
				
			|||||||
        }
 | 
					        }
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * @param \App\Repository\UserRepository $userRepository
 | 
					 | 
				
			||||||
     * @param string                         $username
 | 
					 | 
				
			||||||
     *
 | 
					 | 
				
			||||||
     * @return \Symfony\Component\HttpFoundation\Response
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    #[Route(path: '/profile/{username}', name: 'app_profile')]
 | 
					    #[Route(path: '/profile/{username}', name: 'app_profile')]
 | 
				
			||||||
    public function showProfile(UserRepository $userRepository, string $username = ''): Response
 | 
					    public function showProfile(UserRepository $userRepository, string $username = ''): Response
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
@@ -71,11 +63,6 @@ class UserController extends AbstractController
 | 
				
			|||||||
        ]);
 | 
					        ]);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					 | 
				
			||||||
     * @param \App\Repository\UserRepository $userRepository
 | 
					 | 
				
			||||||
     *
 | 
					 | 
				
			||||||
     * @return \Symfony\Component\HttpFoundation\Response
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    #[Route(path: '/list_users/', name: 'app_list_user')]
 | 
					    #[Route(path: '/list_users/', name: 'app_list_user')]
 | 
				
			||||||
    public function listUsers(UserRepository $userRepository): Response
 | 
					    public function listUsers(UserRepository $userRepository): Response
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -10,27 +10,27 @@ use Doctrine\ORM\Mapping as ORM;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
#[ORM\Entity(repositoryClass: ProjectsRepository::class)]
 | 
					#[ORM\Entity(repositoryClass: ProjectsRepository::class)]
 | 
				
			||||||
#[ApiResource]
 | 
					#[ApiResource]
 | 
				
			||||||
class Projects
 | 
					class Projects implements \Stringable
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    #[ORM\Id]
 | 
					    #[ORM\Id]
 | 
				
			||||||
    #[ORM\GeneratedValue]
 | 
					    #[ORM\GeneratedValue]
 | 
				
			||||||
    #[ORM\Column(type: 'integer')]
 | 
					    #[ORM\Column(type: 'integer')]
 | 
				
			||||||
    private ?int $id;
 | 
					    private ?int $id = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #[ORM\Column(type: 'string', length: 255)]
 | 
					    #[ORM\Column(type: 'string', length: 255)]
 | 
				
			||||||
    private ?string $name;
 | 
					    private ?string $name = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #[ORM\Column(type: 'string', length: 255)]
 | 
					    #[ORM\Column(type: 'string', length: 255)]
 | 
				
			||||||
    private ?string $description;
 | 
					    private ?string $description = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #[ORM\Column(type: 'string', length: 255)]
 | 
					    #[ORM\Column(type: 'string', length: 255)]
 | 
				
			||||||
    private ?string $url;
 | 
					    private ?string $url = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #[ORM\Column(type: 'datetime_immutable')]
 | 
					    #[ORM\Column(type: 'datetime_immutable')]
 | 
				
			||||||
    private ?\DateTimeImmutable $createdAt;
 | 
					    private ?\DateTimeImmutable $createdAt = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #[ORM\Column(type: 'string', length: 255, nullable: true)]
 | 
					    #[ORM\Column(type: 'string', length: 255, nullable: true)]
 | 
				
			||||||
    private ?string $teaserImage;
 | 
					    private ?string $teaserImage = null;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #[ORM\ManyToMany(targetEntity: User::class, inversedBy: 'projects')]
 | 
					    #[ORM\ManyToMany(targetEntity: User::class, inversedBy: 'projects')]
 | 
				
			||||||
    private $developer;
 | 
					    private $developer;
 | 
				
			||||||
@@ -43,9 +43,9 @@ class Projects
 | 
				
			|||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * @return string|null
 | 
					     * @return string|null
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public function __toString()
 | 
					    public function __toString(): string
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        return $this->name;
 | 
					        return (string) $this->name;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public function getId(): ?int
 | 
					    public function getId(): ?int
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -15,16 +15,17 @@ use Symfony\Component\Security\Core\User\UserInterface;
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
 * => ["security" => "is_granted('ROLE_ADMIN') or object.owner == user"]
 | 
					 * => ["security" => "is_granted('ROLE_ADMIN') or object.owner == user"]
 | 
				
			||||||
 | 
					attributes          : ['security' => 'is_granted("ROLE_USER")']
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
#[ORM\Entity(repositoryClass: UserRepository::class), ORM\HasLifecycleCallbacks]
 | 
					#[ORM\Entity(repositoryClass: UserRepository::class), ORM\HasLifecycleCallbacks]
 | 
				
			||||||
#[ApiResource(
 | 
					#[ApiResource(
 | 
				
			||||||
	collectionOperations: ['get', 'post'],
 | 
						collectionOperations: ['get', 'post'],
 | 
				
			||||||
	itemOperations      : ['get'],
 | 
						itemOperations      : ['get'],
 | 
				
			||||||
	attributes          : ['security' => 'is_granted("ROLE_USER")']
 | 
					 | 
				
			||||||
)]
 | 
					)]
 | 
				
			||||||
#[ApiFilter(filterClass: SearchFilter::class, properties: ['username' => 'exact'])]
 | 
					#[ApiFilter(filterClass: SearchFilter::class, properties: ['username' => 'exact'])]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class User implements UserInterface, PasswordAuthenticatedUserInterface
 | 
					class User implements UserInterface, PasswordAuthenticatedUserInterface, \Stringable
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    #[ORM\Id]
 | 
					    #[ORM\Id]
 | 
				
			||||||
    #[ORM\GeneratedValue]
 | 
					    #[ORM\GeneratedValue]
 | 
				
			||||||
@@ -55,7 +56,7 @@ class User implements UserInterface, PasswordAuthenticatedUserInterface
 | 
				
			|||||||
    private $projects;
 | 
					    private $projects;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #[ORM\Column(type: 'string', length: 255, nullable: true)]
 | 
					    #[ORM\Column(type: 'string', length: 255, nullable: true)]
 | 
				
			||||||
    private $avatar;
 | 
					    private string $avatar;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    #[ORM\OneToMany(mappedBy: 'owner', targetEntity: Pages::class)]
 | 
					    #[ORM\OneToMany(mappedBy: 'owner', targetEntity: Pages::class)]
 | 
				
			||||||
    private $pages;
 | 
					    private $pages;
 | 
				
			||||||
@@ -75,7 +76,7 @@ class User implements UserInterface, PasswordAuthenticatedUserInterface
 | 
				
			|||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * @return string|null
 | 
					     * @return string|null
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public function __toString()
 | 
					    public function __toString(): string
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        return $this->username;
 | 
					        return $this->username;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
@@ -244,9 +245,9 @@ class User implements UserInterface, PasswordAuthenticatedUserInterface
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    public function addPage(Pages $page): self
 | 
					    public function addPage(Pages $page): self
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        if (!$this->pages->contains($page)) {
 | 
					        if (!$this->pages->contains(element: $page)) {
 | 
				
			||||||
            $this->pages[] = $page;
 | 
					            $this->pages[] = $page;
 | 
				
			||||||
            $page->setOwner($this);
 | 
					            $page->setOwner(owner: $this);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return $this;
 | 
					        return $this;
 | 
				
			||||||
@@ -254,10 +255,10 @@ class User implements UserInterface, PasswordAuthenticatedUserInterface
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
    public function removePage(Pages $page): self
 | 
					    public function removePage(Pages $page): self
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        if ($this->pages->removeElement($page)) {
 | 
					        if ($this->pages->removeElement(element: $page)) {
 | 
				
			||||||
            // set the owning side to null (unless already changed)
 | 
					            // set the owning side to null (unless already changed)
 | 
				
			||||||
            if ($page->getOwner() === $this) {
 | 
					            if ($page->getOwner() === $this) {
 | 
				
			||||||
                $page->setOwner(null);
 | 
					                $page->setOwner(owner: null);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -288,7 +289,10 @@ class User implements UserInterface, PasswordAuthenticatedUserInterface
 | 
				
			|||||||
        return $this;
 | 
					        return $this;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
	
 | 
						
 | 
				
			||||||
    public function getAvatarUri()
 | 
						/**
 | 
				
			||||||
 | 
						 * @return string
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						public function getAvatarUri()
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        return 'avatar';
 | 
					        return 'avatar';
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -46,7 +46,7 @@ class QuotesRepository extends ServiceEntityRepository
 | 
				
			|||||||
            ->select('MIN(q.id)', 'MAX(q.id)')
 | 
					            ->select('MIN(q.id)', 'MAX(q.id)')
 | 
				
			||||||
            ->getQuery()
 | 
					            ->getQuery()
 | 
				
			||||||
            ->getOneOrNullResult();
 | 
					            ->getOneOrNullResult();
 | 
				
			||||||
        $randomPossibleId = rand(min: $idLimits[1], max: $idLimits[2]);
 | 
					        $randomPossibleId = random_int(min: $idLimits[1], max: $idLimits[2]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return $this->createQueryBuilder(alias: 'q')
 | 
					        return $this->createQueryBuilder(alias: 'q')
 | 
				
			||||||
            ->where(predicates: 'q.id >= :random_id')
 | 
					            ->where(predicates: 'q.id >= :random_id')
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -45,7 +45,7 @@ class UserRepository extends ServiceEntityRepository implements PasswordUpgrader
 | 
				
			|||||||
    public function upgradePassword(PasswordAuthenticatedUserInterface $user, string $newHashedPassword): void
 | 
					    public function upgradePassword(PasswordAuthenticatedUserInterface $user, string $newHashedPassword): void
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
        if (!$user instanceof User) {
 | 
					        if (!$user instanceof User) {
 | 
				
			||||||
            throw new UnsupportedUserException(message: sprintf('Instances of "%s" are not supported.', get_class(object: $user)));
 | 
					            throw new UnsupportedUserException(message: sprintf('Instances of "%s" are not supported.', $user::class));
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        $user->setPassword(password: $newHashedPassword);
 | 
					        $user->setPassword(password: $newHashedPassword);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -26,15 +26,9 @@ class LoginFormAuthenticator extends AbstractLoginFormAuthenticator
 | 
				
			|||||||
{
 | 
					{
 | 
				
			||||||
    use TargetPathTrait;
 | 
					    use TargetPathTrait;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private UserRepository $userRepository;
 | 
					    public function __construct(private readonly UserRepository $userRepository, private readonly RouterInterface $router)
 | 
				
			||||||
 | 
									{
 | 
				
			||||||
    private RouterInterface $router;
 | 
									}
 | 
				
			||||||
 | 
					 | 
				
			||||||
    public function __construct(UserRepository $userRepository, RouterInterface $router)
 | 
					 | 
				
			||||||
    {
 | 
					 | 
				
			||||||
        $this->userRepository = $userRepository;
 | 
					 | 
				
			||||||
        $this->router = $router;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public function authenticate(Request $request): Passport
 | 
					    public function authenticate(Request $request): Passport
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
@@ -61,9 +55,7 @@ class LoginFormAuthenticator extends AbstractLoginFormAuthenticator
 | 
				
			|||||||
            }),
 | 
					            }),
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // remove me later for PasswordCredentials()
 | 
					            // remove me later for PasswordCredentials()
 | 
				
			||||||
            credentials: new CustomCredentials(customCredentialsChecker: function ($credentials, User $user) {
 | 
					            credentials: new CustomCredentials(customCredentialsChecker: fn($credentials, User $user) => $credentials === 'test', credentials             : $password),
 | 
				
			||||||
                return $credentials === 'test';
 | 
					 | 
				
			||||||
            }, credentials             : $password),
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
            // new PasswordCredentials($password),
 | 
					            // new PasswordCredentials($password),
 | 
				
			||||||
            badges: [
 | 
					            badges: [
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,65 +0,0 @@
 | 
				
			|||||||
 | 
					 | 
				
			||||||
<div class="d-flex flex-column flex-shrink-0 p-3 text-white bg-dark" style="width: 280px;">
 | 
					 | 
				
			||||||
    <a href="/" class="d-flex align-items-center mb-3 mb-md-0 me-md-auto text-white text-decoration-none">
 | 
					 | 
				
			||||||
        <svg class="bi me-2" width="40" height="32"><use xlink:href="#bootstrap"/></svg>
 | 
					 | 
				
			||||||
        <span class="fs-4">Sidebar</span>
 | 
					 | 
				
			||||||
    </a>
 | 
					 | 
				
			||||||
    <hr>
 | 
					 | 
				
			||||||
    <ul class="nav nav-pills flex-column mb-auto">
 | 
					 | 
				
			||||||
        <li class="nav-item">
 | 
					 | 
				
			||||||
            <a href="#" class="nav-link active" aria-current="page">
 | 
					 | 
				
			||||||
                <svg class="bi me-2" width="16" height="16"><use xlink:href="#home"/></svg>
 | 
					 | 
				
			||||||
                Home
 | 
					 | 
				
			||||||
            </a>
 | 
					 | 
				
			||||||
        </li>
 | 
					 | 
				
			||||||
        <li>
 | 
					 | 
				
			||||||
            <a href="#" class="nav-link text-white">
 | 
					 | 
				
			||||||
                <svg class="bi me-2" width="16" height="16"><use xlink:href="#speedometer2"/></svg>
 | 
					 | 
				
			||||||
                Dashboard
 | 
					 | 
				
			||||||
            </a>
 | 
					 | 
				
			||||||
        </li>
 | 
					 | 
				
			||||||
        <li>
 | 
					 | 
				
			||||||
            <a href="#" class="nav-link text-white">
 | 
					 | 
				
			||||||
                <svg class="bi me-2" width="16" height="16"><use xlink:href="#table"/></svg>
 | 
					 | 
				
			||||||
                Orders
 | 
					 | 
				
			||||||
            </a>
 | 
					 | 
				
			||||||
        </li>
 | 
					 | 
				
			||||||
        <li>
 | 
					 | 
				
			||||||
            <a href="#" class="nav-link text-white">
 | 
					 | 
				
			||||||
                <svg class="bi me-2" width="16" height="16"><use xlink:href="#grid"/></svg>
 | 
					 | 
				
			||||||
                Products
 | 
					 | 
				
			||||||
            </a>
 | 
					 | 
				
			||||||
        </li>
 | 
					 | 
				
			||||||
        <li>
 | 
					 | 
				
			||||||
            <a href="#" class="nav-link text-white">
 | 
					 | 
				
			||||||
                <svg class="bi me-2" width="16" height="16"><use xlink:href="#people-circle"/></svg>
 | 
					 | 
				
			||||||
                Customers
 | 
					 | 
				
			||||||
            </a>
 | 
					 | 
				
			||||||
        </li>
 | 
					 | 
				
			||||||
    </ul>
 | 
					 | 
				
			||||||
    <hr>
 | 
					 | 
				
			||||||
    <div class="dropdown">
 | 
					 | 
				
			||||||
        <a href="#" class="d-flex align-items-center text-white text-decoration-none dropdown-toggle" id="dropdownUser1" data-bs-toggle="dropdown" aria-expanded="false">
 | 
					 | 
				
			||||||
            <img src="https://github.com/mdo.png" alt="" width="32" height="32" class="rounded-circle me-2">
 | 
					 | 
				
			||||||
            <strong>mdo</strong>
 | 
					 | 
				
			||||||
        </a>
 | 
					 | 
				
			||||||
        <ul class="dropdown-menu dropdown-menu-dark text-small shadow" aria-labelledby="dropdownUser1">
 | 
					 | 
				
			||||||
            <li><a class="dropdown-item" href="#">New project...</a></li>
 | 
					 | 
				
			||||||
            <li><a class="dropdown-item" href="#">Settings</a></li>
 | 
					 | 
				
			||||||
            <li><a class="dropdown-item" href="#">Profile</a></li>
 | 
					 | 
				
			||||||
            <li><hr class="dropdown-divider"></li>
 | 
					 | 
				
			||||||
            <li><a class="dropdown-item" href="#">Sign out</a></li>
 | 
					 | 
				
			||||||
        </ul>
 | 
					 | 
				
			||||||
    </div>
 | 
					 | 
				
			||||||
</div>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
<div class="col-sm-2 sidenav-left box text-start" id="main-menu">
 | 
					 | 
				
			||||||
    <i class="fa fa-lg fa-fw fa-file-code-o" aria-hidden="true"></i> <a href="{{ path('app_projects') }}">Projects</a><br>
 | 
					 | 
				
			||||||
    <i class="fa fa-lg fa-fw fa-gitea" aria-hidden="true"></i> <a href="//git.24unix.net" target="_blank">Gitea</a> <i
 | 
					 | 
				
			||||||
            class="fa fa-external-link" aria-hidden="true"></i><br>
 | 
					 | 
				
			||||||
    <i class="fa fa-lg fa-fw fa-nextcloud" aria-hidden="true"></i> <a href="//cloud.24unix.net"
 | 
					 | 
				
			||||||
                                                                           target="_blank">NextCloud</a> <i
 | 
					 | 
				
			||||||
            class="fa fa-external-link" aria-hidden="true"></i>
 | 
					 | 
				
			||||||
    <!--                <a href="//pastebin.24unix.net">pastebin.24unix.net</a>-->
 | 
					 | 
				
			||||||
</div>
 | 
					 | 
				
			||||||
@@ -1,77 +0,0 @@
 | 
				
			|||||||
<header>
 | 
					 | 
				
			||||||
    <nav class="navbar navbar-expand-md navbar-dark fixed-top navbar-top {{ is_granted('ROLE_PREVIOUS_ADMIN') ? 'bg-warning' : 'bg-dark' }}">
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        <a class="navbar-brand" href="{{ path('app_main') }}">
 | 
					 | 
				
			||||||
            <img src="{{ asset('build/images/24unix/24_logo_bg_64x64.png') }}" alt="24unix.net" id="site-logo">
 | 
					 | 
				
			||||||
        </a>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        <button class="navbar-toggler border-0" type="button" data-toggle="collapse" data-target="#CollapsingNavbar">
 | 
					 | 
				
			||||||
            ☰
 | 
					 | 
				
			||||||
        </button>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        <div class="collapse navbar-collapse" id="CollapsingNavbar">
 | 
					 | 
				
			||||||
            <ul class="navbar-nav ms-auto">
 | 
					 | 
				
			||||||
                {% if is_granted('ROLE_PREVIOUS_ADMIN') %}
 | 
					 | 
				
			||||||
                    <li class="align-bottom">
 | 
					 | 
				
			||||||
                        <a class="dropdown-item" href="{{ path('app_main', { '_switch_user': '_exit'}) }}">Exit
 | 
					 | 
				
			||||||
                            Impersonation</a>
 | 
					 | 
				
			||||||
                    </li>
 | 
					 | 
				
			||||||
                {% endif %}
 | 
					 | 
				
			||||||
                <!--
 | 
					 | 
				
			||||||
                <li>
 | 
					 | 
				
			||||||
                    <form class="d-flex">
 | 
					 | 
				
			||||||
                        <input class="form-control me-2 my-2" type="search" placeholder="Search" aria-label="Search">
 | 
					 | 
				
			||||||
                        <button class="btn" type="submit">Search</button>
 | 
					 | 
				
			||||||
                    </form>
 | 
					 | 
				
			||||||
                </li>
 | 
					 | 
				
			||||||
                -->
 | 
					 | 
				
			||||||
                {% if is_granted('IS_AUTHENTICATED_REMEMBERED') %}
 | 
					 | 
				
			||||||
                    <li class="nav-item dropdown me-auto">
 | 
					 | 
				
			||||||
                        <button type="button" id="navbar-dropdown" data-bs-target="#dropdown-menu"
 | 
					 | 
				
			||||||
                                data-bs-toggle="dropdown"
 | 
					 | 
				
			||||||
                                class="btn btn-primary dropdown-toggle ml-auto mb-2 button-login">
 | 
					 | 
				
			||||||
                            {{ app.user.username }}
 | 
					 | 
				
			||||||
                        </button>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                        <div class="dropdown-menu dropdown-menu-dark dropdown-menu-end" id="dropdown-menu"
 | 
					 | 
				
			||||||
                             aria-labelledby="navbar-dropdown">
 | 
					 | 
				
			||||||
                            <a class="dropdown-item"
 | 
					 | 
				
			||||||
                               href="{{ path('app_profile_edit', { 'username': app.user.username }) }}">
 | 
					 | 
				
			||||||
                                <span class="fa fa-lg fa-fw fa-user" aria-hidden="true"></span>
 | 
					 | 
				
			||||||
                                Profile</a>
 | 
					 | 
				
			||||||
                            <a class="dropdown-item" href="#">
 | 
					 | 
				
			||||||
                                <span class="fa fa-lg fa-fw fa-wrench" aria-hidden="true"></span>
 | 
					 | 
				
			||||||
                                Settings</a>
 | 
					 | 
				
			||||||
                            <div class="dropdown-divider"></div>
 | 
					 | 
				
			||||||
                            {% if is_granted('ROLE_ADMIN') %}
 | 
					 | 
				
			||||||
                                <a class="dropdown-item" href="{{ path('app_list_user') }}">
 | 
					 | 
				
			||||||
                                    <span class="fa fa-lg fa-fw fa-users" aria-hidden="true"></span>
 | 
					 | 
				
			||||||
                                    Users
 | 
					 | 
				
			||||||
                                </a>
 | 
					 | 
				
			||||||
                                <a class="dropdown-item" href="{{ path('admin') }}">
 | 
					 | 
				
			||||||
                                    <span class="fa fa-lg fa-fw fa-cog" aria-hidden="true"></span>
 | 
					 | 
				
			||||||
                                    Administration
 | 
					 | 
				
			||||||
                                </a>
 | 
					 | 
				
			||||||
                                <div class="dropdown-divider"></div>
 | 
					 | 
				
			||||||
                            {% endif %}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                            <a class="dropdown-item" href="{{ path('app_logout') }}">
 | 
					 | 
				
			||||||
                                <span class="fa fa-lg fa-fw fa-sign-out" aria-hidden="true"></span> 
 | 
					 | 
				
			||||||
                                Logout
 | 
					 | 
				
			||||||
                            </a>
 | 
					 | 
				
			||||||
                        </div>
 | 
					 | 
				
			||||||
                    </li>
 | 
					 | 
				
			||||||
                {% else %}
 | 
					 | 
				
			||||||
                    <li class="nav-item">
 | 
					 | 
				
			||||||
                        <a class="btn btn-primary button-login" href="{{ path('app_login') }}" role="button"
 | 
					 | 
				
			||||||
                           id="buttonLogin">
 | 
					 | 
				
			||||||
                            <span class="fa fa-sign-in fa-lg fa-fw" aria-hidden="true"></span>Log In
 | 
					 | 
				
			||||||
                        </a>
 | 
					 | 
				
			||||||
                    </li>
 | 
					 | 
				
			||||||
                {% endif %}
 | 
					 | 
				
			||||||
            </ul>
 | 
					 | 
				
			||||||
        </div>
 | 
					 | 
				
			||||||
    </nav>
 | 
					 | 
				
			||||||
</header>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
@@ -1,70 +0,0 @@
 | 
				
			|||||||
{# templates/projects/imprint.html.twig #}
 | 
					 | 
				
			||||||
{% extends 'base.html.twig' %}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{% block title %} Projects {% endblock %}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{% block body %}
 | 
					 | 
				
			||||||
    <div class="container-fluid box">
 | 
					 | 
				
			||||||
        <div class="row">
 | 
					 | 
				
			||||||
            <h2>This is an overview of my current public (and open source) projects.</h2>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            <!-- projects List -->
 | 
					 | 
				
			||||||
            <div class="col-sm-12">
 | 
					 | 
				
			||||||
                {% for project in projects %}
 | 
					 | 
				
			||||||
                <div class="project-container bg-dark my-4">
 | 
					 | 
				
			||||||
                    <div class="row">
 | 
					 | 
				
			||||||
                        <div class="col-sm-3">
 | 
					 | 
				
			||||||
                            <a href="{{ path('app_projects', { name: project.name }) }}">
 | 
					 | 
				
			||||||
                                {% if project.teaserImage %}
 | 
					 | 
				
			||||||
                                    <img
 | 
					 | 
				
			||||||
                                            class="blog-img"
 | 
					 | 
				
			||||||
                                            src="/uploads/projects/{{  project.teaserImage  }}"
 | 
					 | 
				
			||||||
                                            alt="Teaser">
 | 
					 | 
				
			||||||
                                {% else %}
 | 
					 | 
				
			||||||
                                    <img
 | 
					 | 
				
			||||||
                                            class="blog-img"
 | 
					 | 
				
			||||||
                                            src="{{ asset('build/images/24unix/24_logo_bg_96x96.png') }}"
 | 
					 | 
				
			||||||
                                            alt="Teaser">
 | 
					 | 
				
			||||||
                                {% endif %}
 | 
					 | 
				
			||||||
                            </a>
 | 
					 | 
				
			||||||
                            <br>
 | 
					 | 
				
			||||||
                            <div>
 | 
					 | 
				
			||||||
                                {% for developer in project.developer %}
 | 
					 | 
				
			||||||
                                    <a class="align-left blog-details"
 | 
					 | 
				
			||||||
                                       href="{{ path('app_profile', { 'username':developer.username }) }}">
 | 
					 | 
				
			||||||
                                        <img class="article-author-img rounded-circle"
 | 
					 | 
				
			||||||
                                             src="{{ asset('build/images/tracer_schmolle.png') }}"
 | 
					 | 
				
			||||||
                                             alt="profile"></a>
 | 
					 | 
				
			||||||
                                    <a href="{{ path('app_profile', { 'username':developer.username }) }}">{{ developer.username }}</a>
 | 
					 | 
				
			||||||
                                {% endfor %}
 | 
					 | 
				
			||||||
                            </div>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                        </div>
 | 
					 | 
				
			||||||
                        <div class="col-sm-8 mt-2">
 | 
					 | 
				
			||||||
                            <a href="{{ path('app_projects', { name: project.name }) }}">
 | 
					 | 
				
			||||||
                                <div class="article-title d-inline-block pl-3 align-middle">
 | 
					 | 
				
			||||||
                                    <h2>{{ project.name }}</h2>
 | 
					 | 
				
			||||||
                                </div>
 | 
					 | 
				
			||||||
                            </a>
 | 
					 | 
				
			||||||
                            <br>
 | 
					 | 
				
			||||||
                            <div class="blog-teaser mb-2 pb-2 text-xl-start">
 | 
					 | 
				
			||||||
                                {{ project.description }}
 | 
					 | 
				
			||||||
                                <br>
 | 
					 | 
				
			||||||
                                <br>
 | 
					 | 
				
			||||||
                                started: {{ project.createdAt | ago }}
 | 
					 | 
				
			||||||
                            </div>
 | 
					 | 
				
			||||||
                        </div>
 | 
					 | 
				
			||||||
                    </div>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
                </div>
 | 
					 | 
				
			||||||
                {% endfor %}
 | 
					 | 
				
			||||||
            </div>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            {% if is_granted('ROLE_ADMIN') %}
 | 
					 | 
				
			||||||
                <div class="text-xl-start">
 | 
					 | 
				
			||||||
                    <a href="{{ path('app_main') }}"><i class="fa fa-plus-circle"></i></a>
 | 
					 | 
				
			||||||
                </div>
 | 
					 | 
				
			||||||
            {%  endif %}
 | 
					 | 
				
			||||||
        </div>
 | 
					 | 
				
			||||||
    </div>
 | 
					 | 
				
			||||||
{% endblock %}
 | 
					 | 
				
			||||||
@@ -1,38 +0,0 @@
 | 
				
			|||||||
{# templates/blog/blog_show.html.twig #}
 | 
					 | 
				
			||||||
{% extends 'base.html.twig' %}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{% block title %} Blogpost {% endblock %}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{% block body %}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    <div class="row">
 | 
					 | 
				
			||||||
        <div class="col-sm-12">
 | 
					 | 
				
			||||||
            {% if is_granted('ROLE_ADMIN') %}
 | 
					 | 
				
			||||||
                <div class="d-flex justify-content-end">
 | 
					 | 
				
			||||||
                    <a href="{{ path('app_main', { id : project.id }) }}"><i class="fa fa-3x fa-fw fa-edit"></i></a>
 | 
					 | 
				
			||||||
                    <a href="{{ path('app_main', { id : project.id }) }}"><i class="fa fa-3x fa-fw fa-trash"></i></a>
 | 
					 | 
				
			||||||
                </div>
 | 
					 | 
				
			||||||
            {% endif %}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
            <div class="show-article-container p-3 mt-4">
 | 
					 | 
				
			||||||
                <div class="show-article-title-container d-inline-block pl-3 align-middle">
 | 
					 | 
				
			||||||
                    <h2>{{ project.name }}</h2>
 | 
					 | 
				
			||||||
                </div>
 | 
					 | 
				
			||||||
                <div>
 | 
					 | 
				
			||||||
                    Source: <a href="{{ project.url }}" target="_blank">{{ project.url }}</a> <i
 | 
					 | 
				
			||||||
                            class="fa fa-external-link" aria-hidden="true"></i>
 | 
					 | 
				
			||||||
                </div>
 | 
					 | 
				
			||||||
                <div class="row">
 | 
					 | 
				
			||||||
                    <div class="col-sm-12">
 | 
					 | 
				
			||||||
                        <div class="article-text">
 | 
					 | 
				
			||||||
                            {{ readme | markdown_to_html }}
 | 
					 | 
				
			||||||
                        </div>
 | 
					 | 
				
			||||||
                    </div>
 | 
					 | 
				
			||||||
                </div>
 | 
					 | 
				
			||||||
            </div>
 | 
					 | 
				
			||||||
        </div>
 | 
					 | 
				
			||||||
    </div>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
{% endblock %}
 | 
					 | 
				
			||||||
@@ -12,7 +12,7 @@
 | 
				
			|||||||
                <div class="d-flex flex-column align-items-center text-center p-3 py-5">
 | 
					                <div class="d-flex flex-column align-items-center text-center p-3 py-5">
 | 
				
			||||||
                    <img class="rounded-circle mt-5"
 | 
					                    <img class="rounded-circle mt-5"
 | 
				
			||||||
                         width="150px"
 | 
					                         width="150px"
 | 
				
			||||||
                         src=" {{ asset('build/images/tracer_schmolle.png') }}" alt="profile image">
 | 
					                         src=" {{ asset('build/images/tracer_schmolle150x150.png') }}" alt="profile image">
 | 
				
			||||||
                    <span class="font-weight-bold">{{ user.username }}</span>
 | 
					                    <span class="font-weight-bold">{{ user.username }}</span>
 | 
				
			||||||
                    <span class="text-white-50"><i class="fa fa-lg fa-envelope me-1"></i>{{ user.email }}</span>
 | 
					                    <span class="text-white-50"><i class="fa fa-lg fa-envelope me-1"></i>{{ user.email }}</span>
 | 
				
			||||||
                </div>
 | 
					                </div>
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -12,7 +12,7 @@
 | 
				
			|||||||
                <div class="d-flex flex-column align-items-center text-center p-3 py-5">
 | 
					                <div class="d-flex flex-column align-items-center text-center p-3 py-5">
 | 
				
			||||||
                    <img class="rounded-circle mt-5"
 | 
					                    <img class="rounded-circle mt-5"
 | 
				
			||||||
                         width="150px"
 | 
					                         width="150px"
 | 
				
			||||||
                         src=" {{ asset('build/images/tracer_schmolle.png') }}" alt="profile image">
 | 
					                         src=" {{ asset('build/images/tracer_schmolle150x150.png') }}" alt="profile image">
 | 
				
			||||||
                    <span class="font-weight-bold">{{ user.username }}</span>
 | 
					                    <span class="font-weight-bold">{{ user.username }}</span>
 | 
				
			||||||
                    <span class="font-weight-bold"><a href="{{ path('app_main', { '_switch_user': app.user.username }) }}">switch user {{ user.username }}</span>
 | 
					                    <span class="font-weight-bold"><a href="{{ path('app_main', { '_switch_user': app.user.username }) }}">switch user {{ user.username }}</span>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -1,9 +1,9 @@
 | 
				
			|||||||
const Encore = require('@symfony/webpack-encore');
 | 
					const Encore = require('@symfony/webpack-encore')
 | 
				
			||||||
const path = require('path');
 | 
					const path = require('path')
 | 
				
			||||||
const ManifestPlugin = require('webpack-manifest-plugin')
 | 
					//const ManifestPlugin = require('webpack-manifest-plugin')
 | 
				
			||||||
 | 
					
 | 
				
			||||||
if (!Encore.isRuntimeEnvironmentConfigured()) {
 | 
					if (!Encore.isRuntimeEnvironmentConfigured()) {
 | 
				
			||||||
	Encore.configureRuntimeEnvironment(process.env.NODE_ENV || 'dev');
 | 
						Encore.configureRuntimeEnvironment(process.env.NODE_ENV || 'dev')
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Encore
 | 
					Encore
 | 
				
			||||||
@@ -13,45 +13,30 @@ Encore
 | 
				
			|||||||
		from: './assets/images',
 | 
							from: './assets/images',
 | 
				
			||||||
		to: 'images/[path][name].[ext]'
 | 
							to: 'images/[path][name].[ext]'
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
	/*
 | 
					 | 
				
			||||||
	.copyFiles([
 | 
					 | 
				
			||||||
		{from: './node_modules/ckeditor4/', to: 'ckeditor/[path][name].[ext]', pattern: /\.(js|css)$/, includeSubdirectories: false},
 | 
					 | 
				
			||||||
		{from: './node_modules/ckeditor4/adapters', to: 'ckeditor/adapters/[path][name].[ext]'},
 | 
					 | 
				
			||||||
		{from: './node_modules/ckeditor4/lang', to: 'ckeditor/lang/[path][name].[ext]'},
 | 
					 | 
				
			||||||
		{from: './node_modules/ckeditor4/plugins', to: 'ckeditor/plugins/[path][name].[ext]'},
 | 
					 | 
				
			||||||
		{from: './node_modules/ckeditor4/skins', to: 'ckeditor/skins/[path][name].[ext]'},
 | 
					 | 
				
			||||||
		{from: './node_modules/ckeditor4/vendor', to: 'ckeditor/vendor/[path][name].[ext]'}
 | 
					 | 
				
			||||||
	])
 | 
					 | 
				
			||||||
	*/
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
	.addEntry('app', './assets/js/index.js')
 | 
						.addEntry('app', './assets/js/index.js')
 | 
				
			||||||
	.splitEntryChunks()
 | 
						.splitEntryChunks()
 | 
				
			||||||
 | 
						// will require an extra script tag for runtime.js
 | 
				
			||||||
// will require an extra script tag for runtime.js
 | 
						// but, you probably want this, unless you're building a single-page app
 | 
				
			||||||
// but, you probably want this, unless you're building a single-page app
 | 
					 | 
				
			||||||
	.enableSingleRuntimeChunk()
 | 
						.enableSingleRuntimeChunk()
 | 
				
			||||||
 | 
					 | 
				
			||||||
	.cleanupOutputBeforeBuild()
 | 
						.cleanupOutputBeforeBuild()
 | 
				
			||||||
	.enableBuildNotifications()
 | 
						.enableBuildNotifications()
 | 
				
			||||||
	.enableSourceMaps(!Encore.isProduction())
 | 
						.enableSourceMaps(!Encore.isProduction())
 | 
				
			||||||
	.enableVersioning(Encore.isProduction())
 | 
						.enableVersioning(Encore.isProduction())
 | 
				
			||||||
 | 
					 | 
				
			||||||
	.configureBabel((config) => {
 | 
						.configureBabel((config) => {
 | 
				
			||||||
		config.plugins.push('@babel/plugin-proposal-class-properties');
 | 
							config.plugins.push('@babel/plugin-proposal-class-properties')
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
 | 
						// enables @babel/preset-env polyfills
 | 
				
			||||||
// enables @babel/preset-env polyfills
 | 
					 | 
				
			||||||
	.configureBabelPresetEnv((config) => {
 | 
						.configureBabelPresetEnv((config) => {
 | 
				
			||||||
		config.useBuiltIns = 'usage';
 | 
							config.useBuiltIns = 'usage'
 | 
				
			||||||
		config.corejs = 3;
 | 
							config.corejs = 3
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
 | 
					 | 
				
			||||||
	.addAliases({
 | 
						.addAliases({
 | 
				
			||||||
		'@': path.resolve(__dirname, 'assets', 'js'),
 | 
							'@': path.resolve(__dirname, 'assets', 'js'),
 | 
				
			||||||
		styles: path.resolve(__dirname, 'assets', 'styles'),
 | 
							styles: path.resolve(__dirname, 'assets', 'styles')
 | 
				
			||||||
	})
 | 
						})
 | 
				
			||||||
	.enableSassLoader()
 | 
						.enableSassLoader()
 | 
				
			||||||
	.enableVueLoader()
 | 
						.enableVueLoader()
 | 
				
			||||||
 | 
						.enableTypeScriptLoader()
 | 
				
			||||||
 | 
						.autoProvidejQuery()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	.autoProvidejQuery();
 | 
					module.exports = Encore.getWebpackConfig()
 | 
				
			||||||
module.exports = Encore.getWebpackConfig();
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										433
									
								
								yarn.lock
									
									
									
									
									
								
							
							
						
						
									
										433
									
								
								yarn.lock
									
									
									
									
									
								
							@@ -259,6 +259,11 @@
 | 
				
			|||||||
    chalk "^2.0.0"
 | 
					    chalk "^2.0.0"
 | 
				
			||||||
    js-tokens "^4.0.0"
 | 
					    js-tokens "^4.0.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					"@babel/parser@^7.16.4":
 | 
				
			||||||
 | 
					  version "7.17.10"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.10.tgz#873b16db82a8909e0fbd7f115772f4b739f6ce78"
 | 
				
			||||||
 | 
					  integrity sha512-n2Q6i+fnJqzOaq2VkdXxy2TCPCWQZHiCo0XqmrCvDWcZQKRyZzYi4Z0yxlBuN0w+r2ZHmre+Q087DSrw3pbJDQ==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
"@babel/parser@^7.16.7", "@babel/parser@^7.17.9":
 | 
					"@babel/parser@^7.16.7", "@babel/parser@^7.17.9":
 | 
				
			||||||
  version "7.17.9"
 | 
					  version "7.17.9"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.9.tgz#9c94189a6062f0291418ca021077983058e171ef"
 | 
					  resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.17.9.tgz#9c94189a6062f0291418ca021077983058e171ef"
 | 
				
			||||||
@@ -959,16 +964,7 @@
 | 
				
			|||||||
    error-stack-parser "^2.0.0"
 | 
					    error-stack-parser "^2.0.0"
 | 
				
			||||||
    string-width "^4.2.3"
 | 
					    string-width "^4.2.3"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
"@nuxt/opencollective@^0.3.2":
 | 
					"@popperjs/core@^2.11.5", "@popperjs/core@^2.9.0":
 | 
				
			||||||
  version "0.3.2"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/@nuxt/opencollective/-/opencollective-0.3.2.tgz#83cb70cdb2bac5fad6f8c93529e7b11187d49c02"
 | 
					 | 
				
			||||||
  integrity sha512-XG7rUdXG9fcafu9KTDIYjJSkRO38EwjlKYIb5TQ/0WDbiTUTtUtgncMscKOYzfsY86kGs05pAuMOR+3Fi0aN3A==
 | 
					 | 
				
			||||||
  dependencies:
 | 
					 | 
				
			||||||
    chalk "^4.1.0"
 | 
					 | 
				
			||||||
    consola "^2.15.0"
 | 
					 | 
				
			||||||
    node-fetch "^2.6.1"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
"@popperjs/core@^2.11.5":
 | 
					 | 
				
			||||||
  version "2.11.5"
 | 
					  version "2.11.5"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.5.tgz#db5a11bf66bdab39569719555b0f76e138d7bd64"
 | 
					  resolved "https://registry.yarnpkg.com/@popperjs/core/-/core-2.11.5.tgz#db5a11bf66bdab39569719555b0f76e138d7bd64"
 | 
				
			||||||
  integrity sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==
 | 
					  integrity sha512-9X2obfABZuDVLCgPK9aX0a/x4jaOEweTTWE2+9sr0Qqqevj2Uv5XorvusThmc9XGYpS9yI+fhh8RTafBtGposw==
 | 
				
			||||||
@@ -1201,32 +1197,101 @@
 | 
				
			|||||||
  dependencies:
 | 
					  dependencies:
 | 
				
			||||||
    "@types/node" "*"
 | 
					    "@types/node" "*"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
"@vue/component-compiler-utils@^3.1.0":
 | 
					"@vue/compiler-core@3.2.33":
 | 
				
			||||||
  version "3.3.0"
 | 
					  version "3.2.33"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/@vue/component-compiler-utils/-/component-compiler-utils-3.3.0.tgz#f9f5fb53464b0c37b2c8d2f3fbfe44df60f61dc9"
 | 
					  resolved "https://registry.yarnpkg.com/@vue/compiler-core/-/compiler-core-3.2.33.tgz#e915d59cce85898f5c5cfebe4c09e539278c3d59"
 | 
				
			||||||
  integrity sha512-97sfH2mYNU+2PzGrmK2haqffDpVASuib9/w2/noxiFi31Z54hW+q3izKQXXQZSNhtiUpAI36uSuYepeBe4wpHQ==
 | 
					  integrity sha512-AAmr52ji3Zhk7IKIuigX2osWWsb2nQE5xsdFYjdnmtQ4gymmqXbjLvkSE174+fF3A3kstYrTgGkqgOEbsdLDpw==
 | 
				
			||||||
  dependencies:
 | 
					  dependencies:
 | 
				
			||||||
    consolidate "^0.15.1"
 | 
					    "@babel/parser" "^7.16.4"
 | 
				
			||||||
    hash-sum "^1.0.2"
 | 
					    "@vue/shared" "3.2.33"
 | 
				
			||||||
    lru-cache "^4.1.2"
 | 
					    estree-walker "^2.0.2"
 | 
				
			||||||
    merge-source-map "^1.1.0"
 | 
					    source-map "^0.6.1"
 | 
				
			||||||
    postcss "^7.0.36"
 | 
					 | 
				
			||||||
    postcss-selector-parser "^6.0.2"
 | 
					 | 
				
			||||||
    source-map "~0.6.1"
 | 
					 | 
				
			||||||
    vue-template-es2015-compiler "^1.9.0"
 | 
					 | 
				
			||||||
  optionalDependencies:
 | 
					 | 
				
			||||||
    prettier "^1.18.2 || ^2.0.0"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
"@vue/composition-api@^1.6.0":
 | 
					"@vue/compiler-dom@3.2.33":
 | 
				
			||||||
  version "1.6.0"
 | 
					  version "3.2.33"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/@vue/composition-api/-/composition-api-1.6.0.tgz#41c45672245fff2181f8be1f757c95cb6c9b0316"
 | 
					  resolved "https://registry.yarnpkg.com/@vue/compiler-dom/-/compiler-dom-3.2.33.tgz#6db84296f949f18e5d3e7fd5e80f943dbed7d5ec"
 | 
				
			||||||
  integrity sha512-m/FbsCXn0Ov2QCYUEIt4yupWJLCL6nfZg/Xx2L5VlFUqgJb2iOrbLnkYSV0TO2VUxkBLSFtTZMyG8IIHZFdKNA==
 | 
					  integrity sha512-GhiG1C8X98Xz9QUX/RlA6/kgPBWJkjq0Rq6//5XTAGSYrTMBgcLpP9+CnlUg1TFxnnCVughAG+KZl28XJqw8uQ==
 | 
				
			||||||
 | 
					  dependencies:
 | 
				
			||||||
 | 
					    "@vue/compiler-core" "3.2.33"
 | 
				
			||||||
 | 
					    "@vue/shared" "3.2.33"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
"@vue/devtools-api@^6.1.4":
 | 
					"@vue/compiler-sfc@3.2.33":
 | 
				
			||||||
 | 
					  version "3.2.33"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/@vue/compiler-sfc/-/compiler-sfc-3.2.33.tgz#7ce01dc947a8b76c099811dc6ca58494d4dc773d"
 | 
				
			||||||
 | 
					  integrity sha512-H8D0WqagCr295pQjUYyO8P3IejM3vEzeCO1apzByAEaAR/WimhMYczHfZVvlCE/9yBaEu/eu9RdiWr0kF8b71Q==
 | 
				
			||||||
 | 
					  dependencies:
 | 
				
			||||||
 | 
					    "@babel/parser" "^7.16.4"
 | 
				
			||||||
 | 
					    "@vue/compiler-core" "3.2.33"
 | 
				
			||||||
 | 
					    "@vue/compiler-dom" "3.2.33"
 | 
				
			||||||
 | 
					    "@vue/compiler-ssr" "3.2.33"
 | 
				
			||||||
 | 
					    "@vue/reactivity-transform" "3.2.33"
 | 
				
			||||||
 | 
					    "@vue/shared" "3.2.33"
 | 
				
			||||||
 | 
					    estree-walker "^2.0.2"
 | 
				
			||||||
 | 
					    magic-string "^0.25.7"
 | 
				
			||||||
 | 
					    postcss "^8.1.10"
 | 
				
			||||||
 | 
					    source-map "^0.6.1"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					"@vue/compiler-ssr@3.2.33":
 | 
				
			||||||
 | 
					  version "3.2.33"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/@vue/compiler-ssr/-/compiler-ssr-3.2.33.tgz#3e820267e4eea48fde9519f006dedca3f5e42e71"
 | 
				
			||||||
 | 
					  integrity sha512-XQh1Xdk3VquDpXsnoCd7JnMoWec9CfAzQDQsaMcSU79OrrO2PNR0ErlIjm/mGq3GmBfkQjzZACV+7GhfRB8xMQ==
 | 
				
			||||||
 | 
					  dependencies:
 | 
				
			||||||
 | 
					    "@vue/compiler-dom" "3.2.33"
 | 
				
			||||||
 | 
					    "@vue/shared" "3.2.33"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					"@vue/devtools-api@^6.0.0", "@vue/devtools-api@^6.1.4":
 | 
				
			||||||
  version "6.1.4"
 | 
					  version "6.1.4"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.1.4.tgz#b4aec2f4b4599e11ba774a50c67fa378c9824e53"
 | 
					  resolved "https://registry.yarnpkg.com/@vue/devtools-api/-/devtools-api-6.1.4.tgz#b4aec2f4b4599e11ba774a50c67fa378c9824e53"
 | 
				
			||||||
  integrity sha512-IiA0SvDrJEgXvVxjNkHPFfDx6SXw0b/TUkqMcDZWNg9fnCAHbTpoo59YfJ9QLFkwa3raau5vSlRVzMSLDnfdtQ==
 | 
					  integrity sha512-IiA0SvDrJEgXvVxjNkHPFfDx6SXw0b/TUkqMcDZWNg9fnCAHbTpoo59YfJ9QLFkwa3raau5vSlRVzMSLDnfdtQ==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					"@vue/reactivity-transform@3.2.33":
 | 
				
			||||||
 | 
					  version "3.2.33"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/@vue/reactivity-transform/-/reactivity-transform-3.2.33.tgz#286063f44ca56150ae9b52f8346a26e5913fa699"
 | 
				
			||||||
 | 
					  integrity sha512-4UL5KOIvSQb254aqenW4q34qMXbfZcmEsV/yVidLUgvwYQQ/D21bGX3DlgPUGI3c4C+iOnNmDCkIxkILoX/Pyw==
 | 
				
			||||||
 | 
					  dependencies:
 | 
				
			||||||
 | 
					    "@babel/parser" "^7.16.4"
 | 
				
			||||||
 | 
					    "@vue/compiler-core" "3.2.33"
 | 
				
			||||||
 | 
					    "@vue/shared" "3.2.33"
 | 
				
			||||||
 | 
					    estree-walker "^2.0.2"
 | 
				
			||||||
 | 
					    magic-string "^0.25.7"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					"@vue/reactivity@3.2.33":
 | 
				
			||||||
 | 
					  version "3.2.33"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/@vue/reactivity/-/reactivity-3.2.33.tgz#c84eedb5225138dbfc2472864c151d3efbb4b673"
 | 
				
			||||||
 | 
					  integrity sha512-62Sq0mp9/0bLmDuxuLD5CIaMG2susFAGARLuZ/5jkU1FCf9EDbwUuF+BO8Ub3Rbodx0ziIecM/NsmyjardBxfQ==
 | 
				
			||||||
 | 
					  dependencies:
 | 
				
			||||||
 | 
					    "@vue/shared" "3.2.33"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					"@vue/runtime-core@3.2.33":
 | 
				
			||||||
 | 
					  version "3.2.33"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/@vue/runtime-core/-/runtime-core-3.2.33.tgz#2df8907c85c37c3419fbd1bdf1a2df097fa40df2"
 | 
				
			||||||
 | 
					  integrity sha512-N2D2vfaXsBPhzCV3JsXQa2NECjxP3eXgZlFqKh4tgakp3iX6LCGv76DLlc+IfFZq+TW10Y8QUfeihXOupJ1dGw==
 | 
				
			||||||
 | 
					  dependencies:
 | 
				
			||||||
 | 
					    "@vue/reactivity" "3.2.33"
 | 
				
			||||||
 | 
					    "@vue/shared" "3.2.33"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					"@vue/runtime-dom@3.2.33":
 | 
				
			||||||
 | 
					  version "3.2.33"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/@vue/runtime-dom/-/runtime-dom-3.2.33.tgz#123b8969247029ea0d9c1983676d4706a962d848"
 | 
				
			||||||
 | 
					  integrity sha512-LSrJ6W7CZTSUygX5s8aFkraDWlO6K4geOwA3quFF2O+hC3QuAMZt/0Xb7JKE3C4JD4pFwCSO7oCrZmZ0BIJUnw==
 | 
				
			||||||
 | 
					  dependencies:
 | 
				
			||||||
 | 
					    "@vue/runtime-core" "3.2.33"
 | 
				
			||||||
 | 
					    "@vue/shared" "3.2.33"
 | 
				
			||||||
 | 
					    csstype "^2.6.8"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					"@vue/server-renderer@3.2.33":
 | 
				
			||||||
 | 
					  version "3.2.33"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/@vue/server-renderer/-/server-renderer-3.2.33.tgz#4b45d6d2ae10ea4e3d2cf8e676804cf60f331979"
 | 
				
			||||||
 | 
					  integrity sha512-4jpJHRD4ORv8PlbYi+/MfP8ec1okz6rybe36MdpkDrGIdEItHEUyaHSKvz+ptNEyQpALmmVfRteHkU9F8vxOew==
 | 
				
			||||||
 | 
					  dependencies:
 | 
				
			||||||
 | 
					    "@vue/compiler-ssr" "3.2.33"
 | 
				
			||||||
 | 
					    "@vue/shared" "3.2.33"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					"@vue/shared@3.2.33":
 | 
				
			||||||
 | 
					  version "3.2.33"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/@vue/shared/-/shared-3.2.33.tgz#69a8c99ceb37c1b031d5cc4aec2ff1dc77e1161e"
 | 
				
			||||||
 | 
					  integrity sha512-UBc1Pg1T3yZ97vsA2ueER0F6GbJebLHYlEi4ou1H5YL4KWvMOOWwpYo9/QpWq93wxKG6Wo13IY74Hcn/f7c7Bg==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
"@webassemblyjs/ast@1.11.1":
 | 
					"@webassemblyjs/ast@1.11.1":
 | 
				
			||||||
  version "1.11.1"
 | 
					  version "1.11.1"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7"
 | 
					  resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.11.1.tgz#2bfd767eae1a6996f432ff7e8d7fc75679c0b6a7"
 | 
				
			||||||
@@ -1635,11 +1700,6 @@ binary-extensions@^2.0.0:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
 | 
					  resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-2.2.0.tgz#75f502eeaf9ffde42fc98829645be4ea76bd9e2d"
 | 
				
			||||||
  integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
 | 
					  integrity sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bluebird@^3.1.1:
 | 
					 | 
				
			||||||
  version "3.7.2"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
 | 
					 | 
				
			||||||
  integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
body-parser@1.19.2:
 | 
					body-parser@1.19.2:
 | 
				
			||||||
  version "1.19.2"
 | 
					  version "1.19.2"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.2.tgz#4714ccd9c157d44797b8b5607d72c0b89952f26e"
 | 
					  resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.19.2.tgz#4714ccd9c157d44797b8b5607d72c0b89952f26e"
 | 
				
			||||||
@@ -1671,21 +1731,15 @@ boolbase@^1.0.0:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
 | 
					  resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e"
 | 
				
			||||||
  integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
 | 
					  integrity sha1-aN/1++YMUes3cl6p4+0xDcwed24=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
bootstrap-vue@^2.22.0:
 | 
					bootsdark@^1.0.16:
 | 
				
			||||||
  version "2.22.0"
 | 
					  version "1.0.16"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/bootstrap-vue/-/bootstrap-vue-2.22.0.tgz#2b3d7926d24af0bd289ddce7ba76b07000aab3e5"
 | 
					  resolved "https://registry.yarnpkg.com/bootsdark/-/bootsdark-1.0.16.tgz#36bb8a79f333956fea81098f847c43b1991dc467"
 | 
				
			||||||
  integrity sha512-denjR/ae0K7Jrcqud3TrZWw0p/crtyigeGUNunWQ4t+KFi+7rzJ6j6lx1W5/gpUtSSUgNbWrXcHH4lIWXzXOOQ==
 | 
					  integrity sha512-K6PhQaH8hkWOJF5HxT1HzIH38Fn2CS+E6qSaeLTEg3BhAwb2nI+WWFOwnIZefFPwxp2pQvtvAclqEz/MDe1dpQ==
 | 
				
			||||||
  dependencies:
 | 
					 | 
				
			||||||
    "@nuxt/opencollective" "^0.3.2"
 | 
					 | 
				
			||||||
    bootstrap "^4.6.1"
 | 
					 | 
				
			||||||
    popper.js "^1.16.1"
 | 
					 | 
				
			||||||
    portal-vue "^2.1.7"
 | 
					 | 
				
			||||||
    vue-functional-data-merge "^3.1.0"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
bootstrap@4.6, bootstrap@^4.6.1:
 | 
					bootstrap@^5.1.3:
 | 
				
			||||||
  version "4.6.1"
 | 
					  version "5.1.3"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-4.6.1.tgz#bc25380c2c14192374e8dec07cf01b2742d222a2"
 | 
					  resolved "https://registry.yarnpkg.com/bootstrap/-/bootstrap-5.1.3.tgz#ba081b0c130f810fa70900acbc1c6d3c28fa8f34"
 | 
				
			||||||
  integrity sha512-0dj+VgI9Ecom+rvvpNZ4MUZJz8dcX7WCX+eTID9+/8HgOkv3dsRzi8BGeZJCQU6flWQVYxwTQnEZFrmJSEO7og==
 | 
					  integrity sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
brace-expansion@^1.1.7:
 | 
					brace-expansion@^1.1.7:
 | 
				
			||||||
  version "1.1.11"
 | 
					  version "1.1.11"
 | 
				
			||||||
@@ -1933,18 +1987,11 @@ connect-history-api-fallback@^1.6.0:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc"
 | 
					  resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc"
 | 
				
			||||||
  integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==
 | 
					  integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
consola@^2.15.0, consola@^2.6.0:
 | 
					consola@^2.6.0:
 | 
				
			||||||
  version "2.15.3"
 | 
					  version "2.15.3"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/consola/-/consola-2.15.3.tgz#2e11f98d6a4be71ff72e0bdf07bd23e12cb61550"
 | 
					  resolved "https://registry.yarnpkg.com/consola/-/consola-2.15.3.tgz#2e11f98d6a4be71ff72e0bdf07bd23e12cb61550"
 | 
				
			||||||
  integrity sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==
 | 
					  integrity sha512-9vAdYbHj6x2fLKC4+oPH0kFzY/orMZyG2Aj+kNylHxKGJ/Ed4dpNyAQYwJOdqO4zdM7XpVHmyejQDcQHrnuXbw==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
consolidate@^0.15.1:
 | 
					 | 
				
			||||||
  version "0.15.1"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/consolidate/-/consolidate-0.15.1.tgz#21ab043235c71a07d45d9aad98593b0dba56bab7"
 | 
					 | 
				
			||||||
  integrity sha512-DW46nrsMJgy9kqAbPt5rKaCr7uFtpo4mSUvLHIUbJEjm0vo+aY5QLwBUq3FK4tRnJr/X0Psc0C4jf/h+HtXSMw==
 | 
					 | 
				
			||||||
  dependencies:
 | 
					 | 
				
			||||||
    bluebird "^3.1.1"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
content-disposition@0.5.4:
 | 
					content-disposition@0.5.4:
 | 
				
			||||||
  version "0.5.4"
 | 
					  version "0.5.4"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe"
 | 
					  resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.4.tgz#8b82b4efac82512a02bb0b1dcec9d2c5e8eb5bfe"
 | 
				
			||||||
@@ -2006,6 +2053,11 @@ core-js@^3.0.0:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.21.1.tgz#f2e0ddc1fc43da6f904706e8e955bc19d06a0d94"
 | 
					  resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.21.1.tgz#f2e0ddc1fc43da6f904706e8e955bc19d06a0d94"
 | 
				
			||||||
  integrity sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig==
 | 
					  integrity sha512-FRq5b/VMrWlrmCzwRrpDYNxyHP9BcAZC+xHJaqTgIE5091ZV1NTmyh0sGOg5XqpnHvR0svdy0sv1gWA1zmhxig==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					core-js@^3.6.5:
 | 
				
			||||||
 | 
					  version "3.22.4"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/core-js/-/core-js-3.22.4.tgz#f4b3f108d45736935aa028444a69397e40d8c531"
 | 
				
			||||||
 | 
					  integrity sha512-1uLykR+iOfYja+6Jn/57743gc9n73EWiOnSJJ4ba3B4fOEYDBv25MagmEZBxTp5cWq4b/KPx/l77zgsp28ju4w==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
core-util-is@~1.0.0:
 | 
					core-util-is@~1.0.0:
 | 
				
			||||||
  version "1.0.3"
 | 
					  version "1.0.3"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
 | 
					  resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85"
 | 
				
			||||||
@@ -2149,6 +2201,11 @@ csso@^4.2.0:
 | 
				
			|||||||
  dependencies:
 | 
					  dependencies:
 | 
				
			||||||
    css-tree "^1.1.2"
 | 
					    css-tree "^1.1.2"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					csstype@^2.6.8:
 | 
				
			||||||
 | 
					  version "2.6.20"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/csstype/-/csstype-2.6.20.tgz#9229c65ea0b260cf4d3d997cb06288e36a8d6dda"
 | 
				
			||||||
 | 
					  integrity sha512-/WwNkdXfckNgw6S5R125rrW8ez139lBHWouiBvX8dfMFtcn6V81REDqnH7+CRpRipfYlyU1CmOnOxrmGcFOjeA==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
d@1, d@^1.0.1:
 | 
					d@1, d@^1.0.1:
 | 
				
			||||||
  version "1.0.1"
 | 
					  version "1.0.1"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a"
 | 
					  resolved "https://registry.yarnpkg.com/d/-/d-1.0.1.tgz#8698095372d58dbee346ffd0c7093f99f8f9eb5a"
 | 
				
			||||||
@@ -2157,11 +2214,6 @@ d@1, d@^1.0.1:
 | 
				
			|||||||
    es5-ext "^0.10.50"
 | 
					    es5-ext "^0.10.50"
 | 
				
			||||||
    type "^1.0.1"
 | 
					    type "^1.0.1"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
de-indent@^1.0.2:
 | 
					 | 
				
			||||||
  version "1.0.2"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/de-indent/-/de-indent-1.0.2.tgz#b2038e846dc33baa5796128d0804b455b8c1e21d"
 | 
					 | 
				
			||||||
  integrity sha1-sgOOhG3DO6pXlhKNCAS0VbjB4h0=
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
debug@2.6.9, debug@^2.6.9:
 | 
					debug@2.6.9, debug@^2.6.9:
 | 
				
			||||||
  version "2.6.9"
 | 
					  version "2.6.9"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
 | 
					  resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f"
 | 
				
			||||||
@@ -2358,6 +2410,14 @@ encodeurl@~1.0.2:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
 | 
					  resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59"
 | 
				
			||||||
  integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
 | 
					  integrity sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					enhanced-resolve@^5.0.0:
 | 
				
			||||||
 | 
					  version "5.9.3"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.9.3.tgz#44a342c012cbc473254af5cc6ae20ebd0aae5d88"
 | 
				
			||||||
 | 
					  integrity sha512-Bq9VSor+kjvW3f9/MiiR4eE3XYgOl7/rS8lnSxbRbF3kS0B2r+Y9w5krBWxZgDxASVZbdYrn5wT4j/Wb0J9qow==
 | 
				
			||||||
 | 
					  dependencies:
 | 
				
			||||||
 | 
					    graceful-fs "^4.2.4"
 | 
				
			||||||
 | 
					    tapable "^2.2.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
enhanced-resolve@^5.9.2:
 | 
					enhanced-resolve@^5.9.2:
 | 
				
			||||||
  version "5.9.2"
 | 
					  version "5.9.2"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz#0224dcd6a43389ebfb2d55efee517e5466772dd9"
 | 
					  resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.9.2.tgz#0224dcd6a43389ebfb2d55efee517e5466772dd9"
 | 
				
			||||||
@@ -2647,6 +2707,11 @@ estraverse@^5.1.0, estraverse@^5.2.0:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
 | 
					  resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
 | 
				
			||||||
  integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
 | 
					  integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					estree-walker@^2.0.2:
 | 
				
			||||||
 | 
					  version "2.0.2"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac"
 | 
				
			||||||
 | 
					  integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
esutils@^2.0.2:
 | 
					esutils@^2.0.2:
 | 
				
			||||||
  version "2.0.3"
 | 
					  version "2.0.3"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
 | 
					  resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
 | 
				
			||||||
@@ -3054,15 +3119,10 @@ has@^1.0.3:
 | 
				
			|||||||
  dependencies:
 | 
					  dependencies:
 | 
				
			||||||
    function-bind "^1.1.1"
 | 
					    function-bind "^1.1.1"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
hash-sum@^1.0.2:
 | 
					hash-sum@^2.0.0:
 | 
				
			||||||
  version "1.0.2"
 | 
					  version "2.0.0"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-1.0.2.tgz#33b40777754c6432573c120cc3808bbd10d47f04"
 | 
					  resolved "https://registry.yarnpkg.com/hash-sum/-/hash-sum-2.0.0.tgz#81d01bb5de8ea4a214ad5d6ead1b523460b0b45a"
 | 
				
			||||||
  integrity sha1-M7QHd3VMZDJXPBIMw4CLvRDUfwQ=
 | 
					  integrity sha512-WdZTbAByD+pHfl/g9QSsBIIwy8IT+EsPiKDs0KNX+zSHhdDLFKdZu0BQHljvO+0QI/BasbMSUa8wYNCZTvhslg==
 | 
				
			||||||
 | 
					 | 
				
			||||||
he@^1.1.0:
 | 
					 | 
				
			||||||
  version "1.2.0"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f"
 | 
					 | 
				
			||||||
  integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
hpack.js@^2.1.6:
 | 
					hpack.js@^2.1.6:
 | 
				
			||||||
  version "2.1.6"
 | 
					  version "2.1.6"
 | 
				
			||||||
@@ -3565,15 +3625,6 @@ loader-utils@1.2.3:
 | 
				
			|||||||
    emojis-list "^2.0.0"
 | 
					    emojis-list "^2.0.0"
 | 
				
			||||||
    json5 "^1.0.1"
 | 
					    json5 "^1.0.1"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
loader-utils@^1.0.2, loader-utils@^1.1.0:
 | 
					 | 
				
			||||||
  version "1.4.0"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613"
 | 
					 | 
				
			||||||
  integrity sha512-qH0WSMBtn/oHuwjy/NucEgbx5dbxxnxup9s4PVXJUDHZBQY+s0NWA9rJf53RBnQZxfch7euUui7hpoAPvALZdA==
 | 
					 | 
				
			||||||
  dependencies:
 | 
					 | 
				
			||||||
    big.js "^5.2.2"
 | 
					 | 
				
			||||||
    emojis-list "^3.0.0"
 | 
					 | 
				
			||||||
    json5 "^1.0.1"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
loader-utils@^2.0.0:
 | 
					loader-utils@^2.0.0:
 | 
				
			||||||
  version "2.0.2"
 | 
					  version "2.0.2"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.2.tgz#d6e3b4fb81870721ae4e0868ab11dd638368c129"
 | 
					  resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-2.0.2.tgz#d6e3b4fb81870721ae4e0868ab11dd638368c129"
 | 
				
			||||||
@@ -3631,19 +3682,25 @@ lodash@^4.17.14, lodash@^4.17.20, lodash@^4.17.21:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
 | 
					  resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c"
 | 
				
			||||||
  integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
 | 
					  integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
lru-cache@^4.1.2:
 | 
					lru-cache@^6.0.0:
 | 
				
			||||||
  version "4.1.5"
 | 
					  version "6.0.0"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
 | 
					  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-6.0.0.tgz#6d6fe6570ebd96aaf90fcad1dafa3b2566db3a94"
 | 
				
			||||||
  integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==
 | 
					  integrity sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==
 | 
				
			||||||
  dependencies:
 | 
					  dependencies:
 | 
				
			||||||
    pseudomap "^1.0.2"
 | 
					    yallist "^4.0.0"
 | 
				
			||||||
    yallist "^2.1.2"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
lru-cache@^7.4.0:
 | 
					lru-cache@^7.4.0:
 | 
				
			||||||
  version "7.7.3"
 | 
					  version "7.7.3"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.7.3.tgz#98cd19eef89ce6a4a3c4502c17c833888677c252"
 | 
					  resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-7.7.3.tgz#98cd19eef89ce6a4a3c4502c17c833888677c252"
 | 
				
			||||||
  integrity sha512-WY9wjJNQt9+PZilnLbuFKM+SwDull9+6IAguOrarOMoOHTcJ9GnXSO11+Gw6c7xtDkBkthR57OZMtZKYr+1CEw==
 | 
					  integrity sha512-WY9wjJNQt9+PZilnLbuFKM+SwDull9+6IAguOrarOMoOHTcJ9GnXSO11+Gw6c7xtDkBkthR57OZMtZKYr+1CEw==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					magic-string@^0.25.7:
 | 
				
			||||||
 | 
					  version "0.25.9"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c"
 | 
				
			||||||
 | 
					  integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==
 | 
				
			||||||
 | 
					  dependencies:
 | 
				
			||||||
 | 
					    sourcemap-codec "^1.4.8"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
make-dir@^2.1.0:
 | 
					make-dir@^2.1.0:
 | 
				
			||||||
  version "2.1.0"
 | 
					  version "2.1.0"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
 | 
					  resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
 | 
				
			||||||
@@ -3686,13 +3743,6 @@ merge-descriptors@1.0.1:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
 | 
					  resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61"
 | 
				
			||||||
  integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=
 | 
					  integrity sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
merge-source-map@^1.1.0:
 | 
					 | 
				
			||||||
  version "1.1.0"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/merge-source-map/-/merge-source-map-1.1.0.tgz#2fdde7e6020939f70906a68f2d7ae685e4c8c646"
 | 
					 | 
				
			||||||
  integrity sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==
 | 
					 | 
				
			||||||
  dependencies:
 | 
					 | 
				
			||||||
    source-map "^0.6.1"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
merge-stream@^2.0.0:
 | 
					merge-stream@^2.0.0:
 | 
				
			||||||
  version "2.0.0"
 | 
					  version "2.0.0"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
 | 
					  resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60"
 | 
				
			||||||
@@ -3703,7 +3753,7 @@ methods@~1.1.2:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
 | 
					  resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee"
 | 
				
			||||||
  integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
 | 
					  integrity sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
micromatch@^4.0.2:
 | 
					micromatch@^4.0.0, micromatch@^4.0.2:
 | 
				
			||||||
  version "4.0.5"
 | 
					  version "4.0.5"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
 | 
					  resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
 | 
				
			||||||
  integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
 | 
					  integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
 | 
				
			||||||
@@ -3794,6 +3844,11 @@ nanoid@^3.3.1:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.2.tgz#c89622fafb4381cd221421c69ec58547a1eec557"
 | 
					  resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.2.tgz#c89622fafb4381cd221421c69ec58547a1eec557"
 | 
				
			||||||
  integrity sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==
 | 
					  integrity sha512-CuHBogktKwpm5g2sRgv83jEy2ijFzBwMoYA60orPDR7ynsLijJDqgsi4RDGj3OJpy3Ieb+LYwiRmIOGyytgITA==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					nanoid@^3.3.3:
 | 
				
			||||||
 | 
					  version "3.3.4"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab"
 | 
				
			||||||
 | 
					  integrity sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
natural-compare@^1.4.0:
 | 
					natural-compare@^1.4.0:
 | 
				
			||||||
  version "1.4.0"
 | 
					  version "1.4.0"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
 | 
					  resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
 | 
				
			||||||
@@ -3823,13 +3878,6 @@ next-tick@^1.1.0:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb"
 | 
					  resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.1.0.tgz#1836ee30ad56d67ef281b22bd199f709449b35eb"
 | 
				
			||||||
  integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==
 | 
					  integrity sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
node-fetch@^2.6.1:
 | 
					 | 
				
			||||||
  version "2.6.7"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/node-fetch/-/node-fetch-2.6.7.tgz#24de9fba827e3b4ae44dc8b20256a379160052ad"
 | 
					 | 
				
			||||||
  integrity sha512-ZjMPFEfVx5j+y2yF35Kzx5sF7kDzxuDj6ziH4FFbOp87zKDZNx8yExJIb05OGF4Nlt9IHFIMBkRl41VdvcNdbQ==
 | 
					 | 
				
			||||||
  dependencies:
 | 
					 | 
				
			||||||
    whatwg-url "^5.0.0"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
node-forge@^1:
 | 
					node-forge@^1:
 | 
				
			||||||
  version "1.3.1"
 | 
					  version "1.3.1"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3"
 | 
					  resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-1.3.1.tgz#be8da2af243b2417d5f646a770663a92b7e9ded3"
 | 
				
			||||||
@@ -4101,11 +4149,6 @@ path-to-regexp@0.1.7:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
 | 
					  resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c"
 | 
				
			||||||
  integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
 | 
					  integrity sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
picocolors@^0.2.1:
 | 
					 | 
				
			||||||
  version "0.2.1"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-0.2.1.tgz#570670f793646851d1ba135996962abad587859f"
 | 
					 | 
				
			||||||
  integrity sha512-cMlDqaLEqfSaW8Z7N5Jw+lyIW869EzT73/F5lhtY9cLGoVxSXznfgfXMO0Z5K0o0Q2TkTXq+0KFsdnSe3jDViA==
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
picocolors@^1.0.0:
 | 
					picocolors@^1.0.0:
 | 
				
			||||||
  version "1.0.0"
 | 
					  version "1.0.0"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
 | 
					  resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.0.0.tgz#cb5bdc74ff3f51892236eaf79d68bc44564ab81c"
 | 
				
			||||||
@@ -4165,11 +4208,6 @@ popper.js@^1.16.1:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b"
 | 
					  resolved "https://registry.yarnpkg.com/popper.js/-/popper.js-1.16.1.tgz#2a223cb3dc7b6213d740e40372be40de43e65b1b"
 | 
				
			||||||
  integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==
 | 
					  integrity sha512-Wb4p1J4zyFTbM+u6WuO4XstYx4Ky9Cewe4DWrel7B0w6VVICvPwdOpotjzcf6eD8TsckVnIMNONQyPIUFOUbCQ==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
portal-vue@^2.1.7:
 | 
					 | 
				
			||||||
  version "2.1.7"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/portal-vue/-/portal-vue-2.1.7.tgz#ea08069b25b640ca08a5b86f67c612f15f4e4ad4"
 | 
					 | 
				
			||||||
  integrity sha512-+yCno2oB3xA7irTt0EU5Ezw22L2J51uKAacE/6hMPMoO/mx3h4rXFkkBkT4GFsMDv/vEe8TNKC3ujJJ0PTwb6g==
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
portfinder@^1.0.28:
 | 
					portfinder@^1.0.28:
 | 
				
			||||||
  version "1.0.28"
 | 
					  version "1.0.28"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778"
 | 
					  resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.28.tgz#67c4622852bd5374dd1dd900f779f53462fac778"
 | 
				
			||||||
@@ -4425,13 +4463,14 @@ postcss@7.0.36:
 | 
				
			|||||||
    source-map "^0.6.1"
 | 
					    source-map "^0.6.1"
 | 
				
			||||||
    supports-color "^6.1.0"
 | 
					    supports-color "^6.1.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
postcss@^7.0.36:
 | 
					postcss@^8.1.10:
 | 
				
			||||||
  version "7.0.39"
 | 
					  version "8.4.13"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/postcss/-/postcss-7.0.39.tgz#9624375d965630e2e1f2c02a935c82a59cb48309"
 | 
					  resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.13.tgz#7c87bc268e79f7f86524235821dfdf9f73e5d575"
 | 
				
			||||||
  integrity sha512-yioayjNbHn6z1/Bywyb2Y4s3yvDAeXGOyxqD+LnVOinq6Mdmd++SW2wUNVzavyyHxd6+DxzWGIuosg6P1Rj8uA==
 | 
					  integrity sha512-jtL6eTBrza5MPzy8oJLFuUscHDXTV5KcLlqAWHl5q5WYRfnNRGSmOZmOZ1T6Gy7A99mOZfqungmZMpMmCVJ8ZA==
 | 
				
			||||||
  dependencies:
 | 
					  dependencies:
 | 
				
			||||||
    picocolors "^0.2.1"
 | 
					    nanoid "^3.3.3"
 | 
				
			||||||
    source-map "^0.6.1"
 | 
					    picocolors "^1.0.0"
 | 
				
			||||||
 | 
					    source-map-js "^1.0.2"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
postcss@^8.2.15, postcss@^8.2.9:
 | 
					postcss@^8.2.15, postcss@^8.2.9:
 | 
				
			||||||
  version "8.4.12"
 | 
					  version "8.4.12"
 | 
				
			||||||
@@ -4447,11 +4486,6 @@ prelude-ls@^1.2.1:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
 | 
					  resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396"
 | 
				
			||||||
  integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
 | 
					  integrity sha512-vkcDPrRZo1QZLbn5RLGPpg/WmIQ65qoWWhcGKf/b5eplkkarX0m9z8ppCat4mlOqUsWpyNuYgO3VRyrYHSzX5g==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
"prettier@^1.18.2 || ^2.0.0":
 | 
					 | 
				
			||||||
  version "2.6.2"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.2.tgz#e26d71a18a74c3d0f0597f55f01fb6c06c206032"
 | 
					 | 
				
			||||||
  integrity sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
pretty-error@^3.0.3:
 | 
					pretty-error@^3.0.3:
 | 
				
			||||||
  version "3.0.4"
 | 
					  version "3.0.4"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-3.0.4.tgz#94b1d54f76c1ed95b9c604b9de2194838e5b574e"
 | 
					  resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-3.0.4.tgz#94b1d54f76c1ed95b9c604b9de2194838e5b574e"
 | 
				
			||||||
@@ -4460,6 +4494,11 @@ pretty-error@^3.0.3:
 | 
				
			|||||||
    lodash "^4.17.20"
 | 
					    lodash "^4.17.20"
 | 
				
			||||||
    renderkid "^2.0.6"
 | 
					    renderkid "^2.0.6"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					primevue@^3.12.6:
 | 
				
			||||||
 | 
					  version "3.12.6"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/primevue/-/primevue-3.12.6.tgz#3c5567428a9412e840d63c8b6980c5ce61905200"
 | 
				
			||||||
 | 
					  integrity sha512-gyO1+063+JwMvcuc+F2BrIL1TWL0y3xJgLAhgKUxqMlZLLoRUF4EzOBSKnzKfr+W+33YTsh6veysZ8iQAt13xg==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
process-nextick-args@~2.0.0:
 | 
					process-nextick-args@~2.0.0:
 | 
				
			||||||
  version "2.0.1"
 | 
					  version "2.0.1"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
 | 
					  resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.1.tgz#7820d9b16120cc55ca9ae7792680ae7dba6d7fe2"
 | 
				
			||||||
@@ -4478,11 +4517,6 @@ prr@~1.0.1:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
 | 
					  resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
 | 
				
			||||||
  integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY=
 | 
					  integrity sha1-0/wRS6BplaRexok/SEzrHXj19HY=
 | 
				
			||||||
 | 
					
 | 
				
			||||||
pseudomap@^1.0.2:
 | 
					 | 
				
			||||||
  version "1.0.2"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3"
 | 
					 | 
				
			||||||
  integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM=
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
punycode@^2.1.0:
 | 
					punycode@^2.1.0:
 | 
				
			||||||
  version "2.1.1"
 | 
					  version "2.1.1"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
 | 
					  resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.1.tgz#b58b010ac40c22c5657616c8d2c2c02c7bf479ec"
 | 
				
			||||||
@@ -4502,7 +4536,7 @@ quill-delta@^3.6.2:
 | 
				
			|||||||
    extend "^3.0.2"
 | 
					    extend "^3.0.2"
 | 
				
			||||||
    fast-diff "1.1.2"
 | 
					    fast-diff "1.1.2"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
quill@^1.3.6:
 | 
					quill@^1.3.7:
 | 
				
			||||||
  version "1.3.7"
 | 
					  version "1.3.7"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/quill/-/quill-1.3.7.tgz#da5b2f3a2c470e932340cdbf3668c9f21f9286e8"
 | 
					  resolved "https://registry.yarnpkg.com/quill/-/quill-1.3.7.tgz#da5b2f3a2c470e932340cdbf3668c9f21f9286e8"
 | 
				
			||||||
  integrity sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g==
 | 
					  integrity sha512-hG/DVzh/TiknWtE6QmWAF/pxoZKYxfe3J/d/+ShUWkDvvkZQVTPeVmUJVu1uE6DDooC4fWTiCLh84ul89oNz5g==
 | 
				
			||||||
@@ -4838,6 +4872,13 @@ semver@^7.3.2, semver@^7.3.5:
 | 
				
			|||||||
  dependencies:
 | 
					  dependencies:
 | 
				
			||||||
    lru-cache "^7.4.0"
 | 
					    lru-cache "^7.4.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					semver@^7.3.4:
 | 
				
			||||||
 | 
					  version "7.3.7"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f"
 | 
				
			||||||
 | 
					  integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==
 | 
				
			||||||
 | 
					  dependencies:
 | 
				
			||||||
 | 
					    lru-cache "^6.0.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
send@0.17.2:
 | 
					send@0.17.2:
 | 
				
			||||||
  version "0.17.2"
 | 
					  version "0.17.2"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/send/-/send-0.17.2.tgz#926622f76601c41808012c8bf1688fe3906f7820"
 | 
					  resolved "https://registry.yarnpkg.com/send/-/send-0.17.2.tgz#926622f76601c41808012c8bf1688fe3906f7820"
 | 
				
			||||||
@@ -5000,6 +5041,11 @@ source-map@^0.7.3, source-map@~0.7.2:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
 | 
					  resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
 | 
				
			||||||
  integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
 | 
					  integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					sourcemap-codec@^1.4.8:
 | 
				
			||||||
 | 
					  version "1.4.8"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4"
 | 
				
			||||||
 | 
					  integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
spdy-transport@^3.0.0:
 | 
					spdy-transport@^3.0.0:
 | 
				
			||||||
  version "3.0.0"
 | 
					  version "3.0.0"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31"
 | 
					  resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-3.0.0.tgz#00d4863a6400ad75df93361a1608605e5dcdcf31"
 | 
				
			||||||
@@ -5213,6 +5259,13 @@ thunky@^1.0.2:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d"
 | 
					  resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.1.0.tgz#5abaf714a9405db0504732bbccd2cedd9ef9537d"
 | 
				
			||||||
  integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==
 | 
					  integrity sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					tippy.js@^6.2.4:
 | 
				
			||||||
 | 
					  version "6.3.7"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/tippy.js/-/tippy.js-6.3.7.tgz#8ccfb651d642010ed9a32ff29b0e9e19c5b8c61c"
 | 
				
			||||||
 | 
					  integrity sha512-E1d3oP2emgJ9dRQZdf3Kkn0qJgI6ZLpyS5z6ZkY1DF3kaQaBsGZsndEpHwx+eC+tYM41HaSNvNtLx8tU57FzTQ==
 | 
				
			||||||
 | 
					  dependencies:
 | 
				
			||||||
 | 
					    "@popperjs/core" "^2.9.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
tmp@^0.2.1:
 | 
					tmp@^0.2.1:
 | 
				
			||||||
  version "0.2.1"
 | 
					  version "0.2.1"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14"
 | 
					  resolved "https://registry.yarnpkg.com/tmp/-/tmp-0.2.1.tgz#8457fc3037dcf4719c251367a1af6500ee1ccf14"
 | 
				
			||||||
@@ -5237,10 +5290,15 @@ toidentifier@1.0.1:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35"
 | 
					  resolved "https://registry.yarnpkg.com/toidentifier/-/toidentifier-1.0.1.tgz#3be34321a88a820ed1bd80dfaa33e479fbb8dd35"
 | 
				
			||||||
  integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
 | 
					  integrity sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
tr46@~0.0.3:
 | 
					ts-loader@^9.0.0:
 | 
				
			||||||
  version "0.0.3"
 | 
					  version "9.3.0"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a"
 | 
					  resolved "https://registry.yarnpkg.com/ts-loader/-/ts-loader-9.3.0.tgz#980f4dbfb60e517179e15e10ed98e454b132159f"
 | 
				
			||||||
  integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o=
 | 
					  integrity sha512-2kLLAdAD+FCKijvGKi9sS0OzoqxLCF3CxHpok7rVgCZ5UldRzH0TkbwG9XECKjBzHsAewntC5oDaI/FwKzEUog==
 | 
				
			||||||
 | 
					  dependencies:
 | 
				
			||||||
 | 
					    chalk "^4.1.0"
 | 
				
			||||||
 | 
					    enhanced-resolve "^5.0.0"
 | 
				
			||||||
 | 
					    micromatch "^4.0.0"
 | 
				
			||||||
 | 
					    semver "^7.3.4"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
tsconfig-paths@^3.14.1:
 | 
					tsconfig-paths@^3.14.1:
 | 
				
			||||||
  version "3.14.1"
 | 
					  version "3.14.1"
 | 
				
			||||||
@@ -5287,6 +5345,11 @@ type@^2.5.0:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/type/-/type-2.6.0.tgz#3ca6099af5981d36ca86b78442973694278a219f"
 | 
					  resolved "https://registry.yarnpkg.com/type/-/type-2.6.0.tgz#3ca6099af5981d36ca86b78442973694278a219f"
 | 
				
			||||||
  integrity sha512-eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ==
 | 
					  integrity sha512-eiDBDOmkih5pMbo9OqsqPRGMljLodLcwd5XD5JbtNB0o89xZAwynY9EdCDsJU7LtcVCClu9DvM7/0Ep1hYX3EQ==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typescript@^4.6.4:
 | 
				
			||||||
 | 
					  version "4.6.4"
 | 
				
			||||||
 | 
					  resolved "https://registry.yarnpkg.com/typescript/-/typescript-4.6.4.tgz#caa78bbc3a59e6a5c510d35703f6a09877ce45e9"
 | 
				
			||||||
 | 
					  integrity sha512-9ia/jWHIEbo49HfjrLGfKbZSuWo9iTMwXO+Ca3pRsSpbsMbc7/IU8NKdCZVRRBafVPGnoJeFL76ZOAA84I9fEg==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
unbox-primitive@^1.0.1:
 | 
					unbox-primitive@^1.0.1:
 | 
				
			||||||
  version "1.0.2"
 | 
					  version "1.0.2"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e"
 | 
					  resolved "https://registry.yarnpkg.com/unbox-primitive/-/unbox-primitive-1.0.2.tgz#29032021057d5e6cdbd08c5129c226dff8ed6f9e"
 | 
				
			||||||
@@ -5385,64 +5448,53 @@ vue-eslint-parser@^8.0.1:
 | 
				
			|||||||
    lodash "^4.17.21"
 | 
					    lodash "^4.17.21"
 | 
				
			||||||
    semver "^7.3.5"
 | 
					    semver "^7.3.5"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
vue-functional-data-merge@^3.1.0:
 | 
					vue-loader@16:
 | 
				
			||||||
  version "3.1.0"
 | 
					  version "16.8.3"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/vue-functional-data-merge/-/vue-functional-data-merge-3.1.0.tgz#08a7797583b7f35680587f8a1d51d729aa1dc657"
 | 
					  resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-16.8.3.tgz#d43e675def5ba9345d6c7f05914c13d861997087"
 | 
				
			||||||
  integrity sha512-leT4kdJVQyeZNY1kmnS1xiUlQ9z1B/kdBFCILIjYYQDqZgLqCLa0UhjSSeRX6c3mUe6U5qYeM8LrEqkHJ1B4LA==
 | 
					  integrity sha512-7vKN45IxsKxe5GcVCbc2qFU5aWzyiLrYJyUuMz4BQLKctCj/fmCa0w6fGiiQ2cLFetNcek1ppGJQDCup0c1hpA==
 | 
				
			||||||
 | 
					 | 
				
			||||||
vue-hot-reload-api@^2.3.0:
 | 
					 | 
				
			||||||
  version "2.3.4"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/vue-hot-reload-api/-/vue-hot-reload-api-2.3.4.tgz#532955cc1eb208a3d990b3a9f9a70574657e08f2"
 | 
					 | 
				
			||||||
  integrity sha512-BXq3jwIagosjgNVae6tkHzzIk6a8MHFtzAdwhnV5VlvPTFxDCvIttgSiHWjdGoTJvXtmRu5HacExfdarRcFhog==
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
vue-loader@^15:
 | 
					 | 
				
			||||||
  version "15.9.8"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/vue-loader/-/vue-loader-15.9.8.tgz#4b0f602afaf66a996be1e534fb9609dc4ab10e61"
 | 
					 | 
				
			||||||
  integrity sha512-GwSkxPrihfLR69/dSV3+5CdMQ0D+jXg8Ma1S4nQXKJAznYFX14vHdc/NetQc34Dw+rBbIJyP7JOuVb9Fhprvog==
 | 
					 | 
				
			||||||
  dependencies:
 | 
					  dependencies:
 | 
				
			||||||
    "@vue/component-compiler-utils" "^3.1.0"
 | 
					    chalk "^4.1.0"
 | 
				
			||||||
    hash-sum "^1.0.2"
 | 
					    hash-sum "^2.0.0"
 | 
				
			||||||
    loader-utils "^1.1.0"
 | 
					    loader-utils "^2.0.0"
 | 
				
			||||||
    vue-hot-reload-api "^2.3.0"
 | 
					 | 
				
			||||||
    vue-style-loader "^4.1.0"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
vue-router@3:
 | 
					vue-navigation-bar@^5.0.0:
 | 
				
			||||||
  version "3.5.3"
 | 
					  version "5.0.0"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-3.5.3.tgz#041048053e336829d05dafacf6a8fb669a2e7999"
 | 
					  resolved "https://registry.yarnpkg.com/vue-navigation-bar/-/vue-navigation-bar-5.0.0.tgz#002b139de9160b05ce70836c0017c331eece3554"
 | 
				
			||||||
  integrity sha512-FUlILrW3DGitS2h+Xaw8aRNvGTwtuaxrRkNSHWTizOfLUie7wuYwezeZ50iflRn8YPV5kxmU2LQuu3nM/b3Zsg==
 | 
					  integrity sha512-inYFHrc3UdctgSV+xF+bddDfTY2ks5XoZWCwyVHu6Q/QAvAVa32fmoHZW2OpkYdVcMdiZbRVeWT7dKCAsoVJUQ==
 | 
				
			||||||
 | 
					 | 
				
			||||||
vue-style-loader@^4.1.0:
 | 
					 | 
				
			||||||
  version "4.1.3"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/vue-style-loader/-/vue-style-loader-4.1.3.tgz#6d55863a51fa757ab24e89d9371465072aa7bc35"
 | 
					 | 
				
			||||||
  integrity sha512-sFuh0xfbtpRlKfm39ss/ikqs9AbKCoXZBpHeVZ8Tx650o0k0q/YCM7FRvigtxpACezfq6af+a7JeqVTWvncqDg==
 | 
					 | 
				
			||||||
  dependencies:
 | 
					  dependencies:
 | 
				
			||||||
    hash-sum "^1.0.2"
 | 
					    tippy.js "^6.2.4"
 | 
				
			||||||
    loader-utils "^1.0.2"
 | 
					    vue-screen-size "^2.0.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
vue-template-compiler@^2.6.14:
 | 
					vue-router@4:
 | 
				
			||||||
  version "2.6.14"
 | 
					  version "4.0.15"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/vue-template-compiler/-/vue-template-compiler-2.6.14.tgz#a2f0e7d985670d42c9c9ee0d044fed7690f4f763"
 | 
					  resolved "https://registry.yarnpkg.com/vue-router/-/vue-router-4.0.15.tgz#b4a0661efe197f8c724e0f233308f8776e2c3667"
 | 
				
			||||||
  integrity sha512-ODQS1SyMbjKoO1JBJZojSw6FE4qnh9rIpUZn2EUT86FKizx9uH5z6uXiIrm4/Nb/gwxTi/o17ZDEGWAXHvtC7g==
 | 
					  integrity sha512-xa+pIN9ZqORdIW1MkN2+d9Ui2pCM1b/UMgwYUCZOiFYHAvz/slKKBDha8DLrh5aCG/RibtrpyhKjKOZ85tYyWg==
 | 
				
			||||||
  dependencies:
 | 
					  dependencies:
 | 
				
			||||||
    de-indent "^1.0.2"
 | 
					    "@vue/devtools-api" "^6.0.0"
 | 
				
			||||||
    he "^1.1.0"
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
vue-template-es2015-compiler@^1.9.0:
 | 
					vue-screen-size@^2.0.0:
 | 
				
			||||||
  version "1.9.1"
 | 
					  version "2.0.0"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/vue-template-es2015-compiler/-/vue-template-es2015-compiler-1.9.1.tgz#1ee3bc9a16ecbf5118be334bb15f9c46f82f5825"
 | 
					  resolved "https://registry.yarnpkg.com/vue-screen-size/-/vue-screen-size-2.0.0.tgz#b6e044499271f1813b4d80249ad57561dc720ced"
 | 
				
			||||||
  integrity sha512-4gDntzrifFnCEvyoO8PqyJDmguXgVPxKiIxrBKjIowvL9l+N66196+72XVYR8BBf1Uv1Fgt3bGevJ+sEmxfZzw==
 | 
					  integrity sha512-bTocFSGnty4Z24+Nu/zKea4wkOv2rFFCBoV6967uoFmTtvwFuOmaD71I7hCN5/ohNkw/axNz+Lx/xqvq+K5D7g==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
vue2-editor@^2.10.3:
 | 
					vue3-editor@^0.1.1:
 | 
				
			||||||
  version "2.10.3"
 | 
					  version "0.1.1"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/vue2-editor/-/vue2-editor-2.10.3.tgz#ada62d5d623db71613a1b613f3b738056e35e117"
 | 
					  resolved "https://registry.yarnpkg.com/vue3-editor/-/vue3-editor-0.1.1.tgz#4be5f5029599609f31a04dee553de5f54c7ec540"
 | 
				
			||||||
  integrity sha512-99rWL93xfGeFRrq8NY5L7U+Cog/Uenx+UOOJragtxtbhBE9Rv5/C3P/YhJhjMECSbQyHFjUriqv1S3mghvU9Kg==
 | 
					  integrity sha512-rH1U28wi+mHQlJFr4mvMW3D0oILnjV/BY9TslzWc6zM5zwv48I8LQk4sVzggN2KTDIGAdlDsmdReAd+7fhMYmQ==
 | 
				
			||||||
  dependencies:
 | 
					  dependencies:
 | 
				
			||||||
    quill "^1.3.6"
 | 
					    core-js "^3.6.5"
 | 
				
			||||||
 | 
					    quill "^1.3.7"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
vue@^2.5:
 | 
					vue@3:
 | 
				
			||||||
  version "2.6.14"
 | 
					  version "3.2.33"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/vue/-/vue-2.6.14.tgz#e51aa5250250d569a3fbad3a8a5a687d6036e235"
 | 
					  resolved "https://registry.yarnpkg.com/vue/-/vue-3.2.33.tgz#7867eb16a3293a28c4d190a837bc447878bd64c2"
 | 
				
			||||||
  integrity sha512-x2284lgYvjOMj3Za7kqzRcUSxBboHqtgRE2zlos1qWaOye5yUmHn42LB1250NJBLRwEcdrB0JRwyPTEPhfQjiQ==
 | 
					  integrity sha512-si1ExAlDUrLSIg/V7D/GgA4twJwfsfgG+t9w10z38HhL/HA07132pUQ2KuwAo8qbCyMJ9e6OqrmWrOCr+jW7ZQ==
 | 
				
			||||||
 | 
					  dependencies:
 | 
				
			||||||
 | 
					    "@vue/compiler-dom" "3.2.33"
 | 
				
			||||||
 | 
					    "@vue/compiler-sfc" "3.2.33"
 | 
				
			||||||
 | 
					    "@vue/runtime-dom" "3.2.33"
 | 
				
			||||||
 | 
					    "@vue/server-renderer" "3.2.33"
 | 
				
			||||||
 | 
					    "@vue/shared" "3.2.33"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
watchpack@^2.3.1:
 | 
					watchpack@^2.3.1:
 | 
				
			||||||
  version "2.3.1"
 | 
					  version "2.3.1"
 | 
				
			||||||
@@ -5459,11 +5511,6 @@ wbuf@^1.1.0, wbuf@^1.7.3:
 | 
				
			|||||||
  dependencies:
 | 
					  dependencies:
 | 
				
			||||||
    minimalistic-assert "^1.0.0"
 | 
					    minimalistic-assert "^1.0.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
webidl-conversions@^3.0.0:
 | 
					 | 
				
			||||||
  version "3.0.1"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
 | 
					 | 
				
			||||||
  integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
webpack-cli@^4.9.1:
 | 
					webpack-cli@^4.9.1:
 | 
				
			||||||
  version "4.9.2"
 | 
					  version "4.9.2"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.9.2.tgz#77c1adaea020c3f9e2db8aad8ea78d235c83659d"
 | 
					  resolved "https://registry.yarnpkg.com/webpack-cli/-/webpack-cli-4.9.2.tgz#77c1adaea020c3f9e2db8aad8ea78d235c83659d"
 | 
				
			||||||
@@ -5617,14 +5664,6 @@ websocket-extensions@>=0.1.1:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42"
 | 
					  resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.4.tgz#7f8473bc839dfd87608adb95d7eb075211578a42"
 | 
				
			||||||
  integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==
 | 
					  integrity sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
whatwg-url@^5.0.0:
 | 
					 | 
				
			||||||
  version "5.0.0"
 | 
					 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-5.0.0.tgz#966454e8765462e37644d3626f6742ce8b70965d"
 | 
					 | 
				
			||||||
  integrity sha1-lmRU6HZUYuN2RNNib2dCzotwll0=
 | 
					 | 
				
			||||||
  dependencies:
 | 
					 | 
				
			||||||
    tr46 "~0.0.3"
 | 
					 | 
				
			||||||
    webidl-conversions "^3.0.0"
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
which-boxed-primitive@^1.0.2:
 | 
					which-boxed-primitive@^1.0.2:
 | 
				
			||||||
  version "1.0.2"
 | 
					  version "1.0.2"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6"
 | 
					  resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6"
 | 
				
			||||||
@@ -5663,10 +5702,10 @@ ws@^8.4.2:
 | 
				
			|||||||
  resolved "https://registry.yarnpkg.com/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f"
 | 
					  resolved "https://registry.yarnpkg.com/ws/-/ws-8.5.0.tgz#bfb4be96600757fe5382de12c670dab984a1ed4f"
 | 
				
			||||||
  integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==
 | 
					  integrity sha512-BWX0SWVgLPzYwF8lTzEy1egjhS4S4OEAHfsO8o65WOVsrnSRGaSiUaa9e0ggGlkMTtBlmOpEXiie9RUcBO86qg==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
yallist@^2.1.2:
 | 
					yallist@^4.0.0:
 | 
				
			||||||
  version "2.1.2"
 | 
					  version "4.0.0"
 | 
				
			||||||
  resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52"
 | 
					  resolved "https://registry.yarnpkg.com/yallist/-/yallist-4.0.0.tgz#9bb92790d9c0effec63be73519e11a35019a3a72"
 | 
				
			||||||
  integrity sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=
 | 
					  integrity sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==
 | 
				
			||||||
 | 
					
 | 
				
			||||||
yaml@^1.10.2:
 | 
					yaml@^1.10.2:
 | 
				
			||||||
  version "1.10.2"
 | 
					  version "1.10.2"
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user